Class AbstractHyperLogLogPlusPlus

All Implemented Interfaces:, java.lang.AutoCloseable, Releasable
Direct Known Subclasses:

public abstract class AbstractHyperLogLogPlusPlus
extends java.lang.Object
implements Releasable
Base class for HLL++ algorithms. It contains methods for cloning and serializing the data structure.
  • Field Details

  • Constructor Details

    • AbstractHyperLogLogPlusPlus

      public AbstractHyperLogLogPlusPlus​(int precision)
  • Method Details

    • getAlgorithm

      protected abstract boolean getAlgorithm​(long bucketOrd)
      Algorithm used in the given bucket
    • getLinearCounting

      protected abstract AbstractLinearCounting.HashesIterator getLinearCounting​(long bucketOrd)
      Get linear counting algorithm
    • getHyperLogLog

      protected abstract AbstractHyperLogLog.RunLenIterator getHyperLogLog​(long bucketOrd)
      Get HyperLogLog algorithm
    • maxOrd

      public abstract long maxOrd()
      Get the number of data structures
    • collect

      public abstract void collect​(long bucketOrd, long hash)
      Collect a value in the given bucket
    • clone

      public AbstractHyperLogLogPlusPlus clone​(long bucketOrd, BigArrays bigArrays)
      Clone the data structure at the given bucket
    • writeTo

      public void writeTo​(long bucket, StreamOutput out) throws
    • readFrom

      public static AbstractHyperLogLogPlusPlus readFrom​(StreamInput in, BigArrays bigArrays) throws
    • equals

      public boolean equals​(long thisBucket, AbstractHyperLogLogPlusPlus other, long otherBucket)
    • hashCode

      public int hashCode​(long bucket)
    • precision

      public int precision()
      Precision of the algorithm
    • cardinality

      public abstract long cardinality​(long bucketOrd)
      Returns the current computed cardinality