Class DoubleQuantileEstimator

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected DoubleQuantileEstimator()
      Makes this class non instantiable, but still let's others inherit from it.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(double value)
      Adds a value to the receiver.
      void addAllOf​(DoubleArrayList values)
      Adds all values of the specified list to the receiver.
      void addAllOfFromTo​(DoubleArrayList values, int from, int to)
      Adds the part of the specified list between indexes from (inclusive) and to (inclusive) to the receiver.
      protected DoubleBuffer[] buffersToCollapse()
      Not yet commented.
      void clear()
      Removes all elements from the receiver.
      java.lang.Object clone()
      Returns a deep copy of the receiver.
      protected void collapse()
      Not yet commented.
      boolean contains​(double element)
      Returns whether the specified element is contained in the receiver.
      boolean forEach​(DoubleProcedure procedure)
      Applies a procedure to each element of the receiver, if any.
      long memory()
      Returns the number of elements currently needed to store all contained elements.
      protected abstract void newBuffer()
      Not yet commented.
      double phi​(double element)
      Returns how many percent of the elements contained in the receiver are <= element.
      protected abstract void postCollapse​(DoubleBuffer[] toCollapse)
      Not yet commented.
      protected DoubleArrayList preProcessPhis​(DoubleArrayList phis)
      Default implementation does nothing.
      DoubleArrayList quantileElements​(DoubleArrayList phis)
      Computes the specified quantile elements over the values previously added.
      protected abstract boolean sampleNextElement()
      Not yet commented.
      protected void setUp​(int b, int k)
      Initializes the receiver
      long size()
      Returns the number of elements currently contained in the receiver (identical to the number of values added so far).
      java.lang.String toString()
      Returns a String representation of the receiver.
      long totalMemory()
      Returns the number of elements currently needed to store all contained elements.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • currentBufferToFill

        protected DoubleBuffer currentBufferToFill
      • totalElementsFilled

        protected int totalElementsFilled
    • Constructor Detail

      • DoubleQuantileEstimator

        protected DoubleQuantileEstimator()
        Makes this class non instantiable, but still let's others inherit from it.
    • Method Detail

      • add

        public void add​(double value)
        Adds a value to the receiver.
        Specified by:
        add in interface DoubleQuantileFinder
        Parameters:
        value - the value to add.
      • addAllOf

        public void addAllOf​(DoubleArrayList values)
        Adds all values of the specified list to the receiver.
        Specified by:
        addAllOf in interface DoubleQuantileFinder
        Parameters:
        values - the list of which all values shall be added.
      • addAllOfFromTo

        public void addAllOfFromTo​(DoubleArrayList values,
                                   int from,
                                   int to)
        Adds the part of the specified list between indexes from (inclusive) and to (inclusive) to the receiver.
        Specified by:
        addAllOfFromTo in interface DoubleQuantileFinder
        Parameters:
        values - the list of which elements shall be added.
        from - the index of the first element to be added (inclusive).
        to - the index of the last element to be added (inclusive).
      • buffersToCollapse

        protected DoubleBuffer[] buffersToCollapse()
        Not yet commented.
      • clear

        public void clear()
        Removes all elements from the receiver. The receiver will be empty after this call returns, and its memory requirements will be close to zero.
        Specified by:
        clear in interface DoubleQuantileFinder
      • collapse

        protected void collapse()
        Not yet commented.
      • contains

        public boolean contains​(double element)
        Returns whether the specified element is contained in the receiver.
      • forEach

        public boolean forEach​(DoubleProcedure procedure)
        Applies a procedure to each element of the receiver, if any. Iterates over the receiver in no particular order.
        Specified by:
        forEach in interface DoubleQuantileFinder
        Parameters:
        procedure - the procedure to be applied. Stops iteration if the procedure returns false, otherwise continues.
        Returns:
        false if the procedure stopped before all elements where iterated over, true otherwise.
      • memory

        public long memory()
        Returns the number of elements currently needed to store all contained elements. This number usually differs from the results of method size(), according to the underlying datastructure.
        Specified by:
        memory in interface DoubleQuantileFinder
      • newBuffer

        protected abstract void newBuffer()
        Not yet commented.
      • phi

        public double phi​(double element)
        Returns how many percent of the elements contained in the receiver are <= element. Does linear interpolation if the element is not contained but lies in between two contained elements.
        Specified by:
        phi in interface DoubleQuantileFinder
        Parameters:
        the - element to search for.
        Returns:
        the percentage p of elements <= element (0.0 <= p <=1.0).
      • postCollapse

        protected abstract void postCollapse​(DoubleBuffer[] toCollapse)
        Not yet commented.
      • quantileElements

        public DoubleArrayList quantileElements​(DoubleArrayList phis)
        Computes the specified quantile elements over the values previously added.
        Specified by:
        quantileElements in interface DoubleQuantileFinder
        Parameters:
        phis - the quantiles for which elements are to be computed. Each phi must be in the interval [0.0,1.0]. phis must be sorted ascending.
        Returns:
        the approximate quantile elements.
      • sampleNextElement

        protected abstract boolean sampleNextElement()
        Not yet commented.
      • setUp

        protected void setUp​(int b,
                             int k)
        Initializes the receiver
      • size

        public long size()
        Returns the number of elements currently contained in the receiver (identical to the number of values added so far).
        Specified by:
        size in interface DoubleQuantileFinder
      • toString

        public java.lang.String toString()
        Returns a String representation of the receiver.
        Overrides:
        toString in class java.lang.Object
      • totalMemory

        public long totalMemory()
        Returns the number of elements currently needed to store all contained elements. This number usually differs from the results of method size(), according to the underlying datastructure.
        Specified by:
        totalMemory in interface DoubleQuantileFinder