Class SortQuantiler

java.lang.Object
uk.ac.starlink.ttools.filter.SortQuantiler
All Implemented Interfaces:
Quantiler

public class SortQuantiler extends 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 final int
    Default block size.
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    void
    acceptDatum(double value)
    Accepts a value to accumulate for quantile calculations.
    void
    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
    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 Details

    • DFLT_BLOCKSIZE

      public static final int DFLT_BLOCKSIZE
      Default block size.
      See Also:
  • Constructor Details

    • 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 Details

    • 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