Serialized Form


Package it.unimi.dsi.webgraph.algo

Class it.unimi.dsi.webgraph.algo.HyperApproximateNeighbourhoodFunction extends IntHyperLogLogCounterArray implements Serializable

serialVersionUID: 1L

Serialization Methods

writeObject

private void writeObject(ObjectOutputStream oos)
                  throws IOException
Throws a NotSerializableException, as this class implements Serializable because it extends IntHyperLogLogCounterArray, but it's not really.

Throws:
IOException
Serialized Fields

gotTranpose

boolean gotTranpose
True if we have the tranpose graph.


systolic

boolean systolic
True if we started a systolic computation.


preLocal

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


local

boolean local
True if we started a local computation.


bits

long[][] bits
A cached copy of the bit vectors used for counting.


doSumOfDistances

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


doHarmonicCentrality

boolean doHarmonicCentrality
Whether harmonic centrality should be computed; if false, HyperApproximateNeighbourhoodFunction.harmonicCentrality is null.


sumOfDistances

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


harmonicCentrality

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


longwordAligned

boolean longwordAligned
Whether counters are aligned to longwords.


counterResidualMask

long counterResidualMask
A mask for the residual bits of a counter (the IntHyperLogLogCounterArray.counterSize % Long.SIZE lowest bits).


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
The square of HyperApproximateNeighbourhoodFunction.numNodes, cached.


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

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


last

double last
The value computed by the last call to HyperApproximateNeighbourhoodFunction.iterate() .


iteration

int iteration
The current iteration.


updateFile

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


fileChannel

FileChannel fileChannel
If HyperApproximateNeighbourhoodFunction.external is true, a file channel used to write to the update list.


randomAccessFile

RandomAccessFile randomAccessFile
If HyperApproximateNeighbourhoodFunction.external is true, the random-access file underlying HyperApproximateNeighbourhoodFunction.fileChannel.


byteBuffer

ByteBuffer byteBuffer
A byte buffer used to bulk read/write the update list.


pl

ProgressLogger pl
A progress logger, or null.


lock

ReentrantLock lock
The lock protecting all critical sections.


allWaiting

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


start

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


msbMask

long[] msbMask
A mask containing a one in the most significant bit of each register (i.e., in positions of the form registerSize * (i + 1) - 1).


lsbMask

long[] lsbMask
A mask containing a one in the least significant bit of each register (i.e., in positions of the form registerSize * i).


phase

int phase
The current computation phase.


closed

boolean closed
Whether this approximator has been already closed.


thread

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


nodes

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


arcs

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


result

double[] result
An array used to gather the harmonic partial sums.


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
Total number of write operation performed on HyperApproximateNeighbourhoodFunction.fileChannel.


totalIoMillis

long totalIoMillis
Total wait time in milliseconds of I/O activity on HyperApproximateNeighbourhoodFunction.fileChannel.


nextNode

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


modified

AtomicInteger modified
The number of register modified by the last call to HyperApproximateNeighbourhoodFunction.iterate().


unwritten

AtomicInteger unwritten
Counts the number of unwritten entries when HyperApproximateNeighbourhoodFunction.external is true, or the number of counters that did not change their value.


counterLongwords

int counterLongwords
The size of a counter in longwords (ceiled if there are less then Long.SIZE registers per counter).


lastBlockSum

double[] lastBlockSum
The last computed harmonic partial sum for blocks of 64 counters. It is used to speed up the computation when few nodes change.


external

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


resultBits

long[][] resultBits
If HyperApproximateNeighbourhoodFunction.external is false, the arrays where results are stored.


resultBitVector

LongArrayBitVector[] resultBitVector
If HyperApproximateNeighbourhoodFunction.external is false, bit vectors wrapping HyperApproximateNeighbourhoodFunction.resultBits.


resultRegisters

LongBigList[] resultRegisters
If HyperApproximateNeighbourhoodFunction.external is false, a IntHyperLogLogCounterArray.registerSize-bit views of HyperApproximateNeighbourhoodFunction.resultBits.


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. HyperApproximateNeighbourhoodFunction.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. HyperApproximateNeighbourhoodFunction.modifiedCounter will be updated with the content of this bit vector by the end of the iteration.


localCheckList

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


localNextMustBeChecked

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


threadThrowable

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