Class SortQuantiler

  • All Implemented Interfaces:
    Quantiler

    public class SortQuantiler
    extends java.lang.Object
    implements Quantiler
    Quantiler that retains all data samples, sorts them when ready, and uses the sorted array to answer questions about quantiles. This is exact, but consumes approximately 8 bytes per sample, so not suited for unlimited sized datasets.
    Since:
    3 Dec 2020
    Author:
    Mark Taylor
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DFLT_BLOCKSIZE
      Default block size.
    • Constructor Summary

      Constructors 
      Constructor Description
      SortQuantiler()
      Constructor with default block size.
      SortQuantiler​(int blocksize)
      Constructor with supplied block size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void acceptDatum​(double value)
      Accepts a value to accumulate for quantile calculations.
      void addQuantiler​(Quantiler o)
      Merges the state of another compatible accumulator into this one; the effect is as if all the Quantiler.acceptDatum(double) calls that were made on other had been made on this one.
      double getValueAtQuantile​(double quantile)
      Returns the value at a given quantile.
      void ready()
      Call after all data has been accumulated and before quantiles are to be calculated.
      • Methods inherited from class java.lang.Object

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

      • DFLT_BLOCKSIZE

        public static final int DFLT_BLOCKSIZE
        Default block size.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SortQuantiler

        public SortQuantiler()
        Constructor with default block size.
      • SortQuantiler

        public SortQuantiler​(int blocksize)
        Constructor with supplied block size.
        Parameters:
        blocksize - tuning parameter, block size in bytes
    • Method Detail

      • acceptDatum

        public void acceptDatum​(double value)
        Description copied from interface: Quantiler
        Accepts a value to accumulate for quantile calculations. NaN values are ignored.
        Specified by:
        acceptDatum in interface Quantiler
        Parameters:
        value - value to accumulate
      • addQuantiler

        public void addQuantiler​(Quantiler o)
        Description copied from interface: Quantiler
        Merges the state of another compatible accumulator into this one; the effect is as if all the Quantiler.acceptDatum(double) calls that were made on other had been made on this one.
        Specified by:
        addQuantiler in interface Quantiler
        Parameters:
        o - compatible quantiler to merge with this
      • ready

        public void ready()
        Description copied from interface: Quantiler
        Call after all data has been accumulated and before quantiles are to be calculated.
        Specified by:
        ready in interface Quantiler
      • getValueAtQuantile

        public double getValueAtQuantile​(double quantile)
        Description copied from interface: Quantiler
        Returns the value at a given quantile.
        Specified by:
        getValueAtQuantile in interface Quantiler
        Parameters:
        quantile - value in the range 0..1
        Returns:
        value at quantile, or NaN if no data