Package uk.ac.starlink.ttools.filter
Class SortQuantiler
- java.lang.Object
-
- uk.ac.starlink.ttools.filter.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 theQuantiler.acceptDatum(double)
calls that were made onother
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.
-
-
-
Field Detail
-
DFLT_BLOCKSIZE
public static final int DFLT_BLOCKSIZE
Default block size.- See Also:
- Constant Field Values
-
-
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 interfaceQuantiler
- 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 theQuantiler.acceptDatum(double)
calls that were made onother
had been made on this one.- Specified by:
addQuantiler
in interfaceQuantiler
- 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.
-
getValueAtQuantile
public double getValueAtQuantile(double quantile)
Description copied from interface:Quantiler
Returns the value at a given quantile.- Specified by:
getValueAtQuantile
in interfaceQuantiler
- Parameters:
quantile
- value in the range 0..1- Returns:
- value at quantile, or NaN if no data
-
-