
gotTranspose
boolean gotTranspose
True if we have the transpose graph.

weight
int[] weight
An array of nonnegative node weights, or null
.

systolic
boolean systolic
True if we started a systolic computation.

preLocal
boolean preLocal
True if we are preparing a local computation (we are
HyperBall.systolic
and less than 1% nodes were modified).

local
boolean local
True if we started a local computation.

doSumOfDistances
boolean doSumOfDistances
Whether the sum of distances from each node (inverse of
positive closeness centrality) should be computed; if false,
HyperBall.sumOfDistances
is
null
.

doSumOfInverseDistances
boolean doSumOfInverseDistances

neighbourhoodFunction
DoubleArrayList neighbourhoodFunction
The neighbourhood function, if requested.

sumOfDistances
float[] sumOfDistances
The sum of the distances from every given node, if requested.

sumOfInverseDistances
float[] sumOfInverseDistances
The sum of inverse distances from each given node, if requested.

discountFunction
Int2DoubleFunction[] discountFunction
A number of discounted centralities to be computed, possibly none.

discountedCentrality
float[][] discountedCentrality

numNodes
int numNodes
The number of nodes of the graph, cached.

numArcs
long numArcs
The number of arcs of the graph, cached.

squareNumNodes
double squareNumNodes

numberOfThreads
int numberOfThreads
The number of cores used in the computation.

bufferSize
int bufferSize
The size of an I/O buffer, in counters.

granularity
int granularity
The number of actually scanned nodes per task in a multithreaded environment. Must be a multiple of Long.SIZE
.

adaptiveGranularity
long adaptiveGranularity
The number of nodes per task (obtained by adapting
HyperBall.granularity
to the current ratio of modified nodes).
Must be a multiple of
Long.SIZE
.

last
double last
The value computed by the last iteration.

current
double current
The value computed by the current iteration.

iteration
int iteration
The current iteration.

updateFile
java.io.File updateFile
If
HyperBall.external
is true, the name of the temporary file that will be used to write the update list.

fileChannel
java.nio.channels.FileChannel fileChannel

randomAccessFile
java.io.RandomAccessFile randomAccessFile

cumulativeOutdegrees
EliasFanoCumulativeOutdegreeList cumulativeOutdegrees
The cumulative list of outdegrees.

pl
ProgressLogger pl
A progress logger, or null
.

lock
java.util.concurrent.locks.ReentrantLock lock
The lock protecting all critical sections.

allWaiting
java.util.concurrent.locks.Condition allWaiting
A condition that is notified when all iteration threads are waiting to be started.

start
java.util.concurrent.locks.Condition start
The condition on which all iteration threads wait before starting a new phase.

phase
int phase
The current computation phase.

closed
boolean closed
Whether this approximator has been already closed.

thread
it.unimi.dsi.webgraph.algo.HyperBall.IterationThread[] thread
The threads performing the computation.

nodes
java.util.concurrent.atomic.AtomicInteger nodes
An atomic integer keeping track of the number of node processed so far.

arcs
java.util.concurrent.atomic.AtomicLong arcs
An atomic integer keeping track of the number of arcs processed so far.

aliveThreads
int aliveThreads
A variable used to wait for all threads to complete their iteration.

completed
boolean completed
True if the computation is over.

numberOfWrites
long numberOfWrites

totalIoMillis
long totalIoMillis

nextNode
int nextNode
The starting node of the next chunk of nodes to be processed.

nextArcs
long nextArcs

modified
java.util.concurrent.atomic.AtomicInteger modified

unwritten
java.util.concurrent.atomic.AtomicInteger unwritten
Counts the number of unwritten entries when
HyperBall.external
is true, or
the number of counters that did not change their value.

relativeIncrement
double relativeIncrement
The relative increment of the neighbourhood function for the last iteration.

external
boolean external
Whether we should used an update list on disk, instead of computing results in core memory.

resultBits
long[][] resultBits

resultRegisters
LongBigList[] resultRegisters

modifiedCounter
boolean[] modifiedCounter
For each counter, whether it has changed its value. We use an array of boolean (instead of a
LongArrayBitVector
) just for access speed.

modifiedResultCounter
boolean[] modifiedResultCounter
For each newly computed counter, whether it has changed its value.
HyperBall.modifiedCounter
will be updated with the content of this bit vector by the end of the iteration.

nextMustBeChecked
boolean[] nextMustBeChecked
For each counter, whether it has changed its value. We use an array of boolean (instead of a
LongArrayBitVector
) just for access speed.

mustBeChecked
boolean[] mustBeChecked
For each newly computed counter, whether it has changed its value.
HyperBall.modifiedCounter
will be updated with the content of this bit vector by the end of the iteration.

localCheckList
int[] localCheckList
If
HyperBall.local
is true, the sorted list of nodes that should be scanned.

localNextMustBeChecked
IntSet localNextMustBeChecked
If
HyperBall.preLocal
is true, the set of nodes that should be scanned on the next iteration. Note that this set is synchronized.

threadThrowable
java.lang.Throwable threadThrowable
One of the throwables thrown by some of the threads, if at least one thread has thrown a throwable.