Class GKQuantiler

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

public class GKQuantiler extends Object implements Quantiler
Quantiler based on the method of Greenwald and Kanna, via the implementation in https://github.com/DataDog/sketches-java. It's not that fast and not that accurate, but it can cope with any number of samples.
Since:
3 Dec 2020
Author:
Mark Taylor
See Also:
  • Field Details

    • DFLT_RANK_ACCURACY

      public static final double DFLT_RANK_ACCURACY
      Default rank accuracy.
      See Also:
  • Constructor Details

    • GKQuantiler

      public GKQuantiler()
      Constructor with default accumulator.
    • GKQuantiler

      public GKQuantiler(GKArray gkArray)
      Constructor with custom accumulator.
  • 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 other)
      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:
      other - 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