public class BinBag extends Object
Modifier and Type  Class and Description 

static interface 
BinBag.Bin
Describes the extent of a bin and the value it contains.

Constructor and Description 

BinBag(boolean log,
double binWidth,
double binPhase,
Combiner combiner,
double point)
Constructor.

Modifier and Type  Method and Description 

void 
add(BinBag other)
Adds the contents of another compatible BinBag to this one.

Iterator<double[]> 
barIterator(double lo,
double hi)
Iterates over all the bins defined by this bin bag in a given
data interval.

Iterator<BinBag.Bin> 
binIterator(Cumulation cumul,
Normalisation norm,
Unit unit)
Returns a sorted iterator over all bins with nonzero values
in the range over which samples were presented.

Iterator<BinBag.Bin> 
binIterator(Cumulation cumul,
Normalisation norm,
Unit unit,
double[] range)
Returns a sorted iterator over all bins with nonzero values
in the range over which samples were presented, perhaps
extended over a given range.

int 
getBinCount()
Returns the number of nonempty bins in this bag.

double 
getBinWidth()
Returns the bin width used by this histogram model.

Combiner 
getCombiner()
Returns this bin bag's combiner.

boolean 
matches(boolean log,
double binWidth,
double binPhase,
Combiner combiner)
Indicates whether the bin boundaries and aggregation mode
used by this object are the same as a given bin set specification.

void 
submitToBin(double point,
double datum)
Submits a value for aggregation in the bin in which a given point falls.

public BinBag(boolean log, double binWidth, double binPhase, Combiner combiner, double point)
log=false
:
binWidth*(0+binPhase), binWidth*(1+binPhase), ...and for
log=true
:
binWidth**(0+binPhase), binWidth**(1+binPhase), ...
The point
parameter is used internally to determine
the zero point of the bins. In principle this should make no
difference to behaviour, but in case that the data is situated
a very long way from 1, setting it close to
the actual data point locations may avoid rounding errors.
log
 false for linear axis scaling, true for logarithmicbinWidth
 width of each bin; this is additive for linear
and multiplicative for logarithmic scalingbinPhase
 determines subbin boundary shifts along axis,
normally in range 0..1combiner
 aggregation modepoint
 representative point on axis near which bins are
situatedpublic void submitToBin(double point, double datum)
point
 axis coordinatedatum
 value to aggregate into bin valuepublic Iterator<BinBag.Bin> binIterator(Cumulation cumul, Normalisation norm, Unit unit)
cumul
 flag for bins of a cumulative histogramnorm
 normalisation modeunit
 axis unit scalingpublic Iterator<BinBag.Bin> binIterator(Cumulation cumul, Normalisation norm, Unit unit, double[] range)
The purpose of the supplied extension range is to extend the number of bins returned, specifically for the purpose of cumulative histograms, where bins outside the range of the presented samples can have nonzero values. At present the range is not used to cut down the number of bins returned; that could be done to improve efficiency, though the effect is not likely to be large since bin counts are usually fairly modest.
cumul
 flag for bins of a cumulative histogramnorm
 normalisation modeunit
 axis unit scalingrange
 required range for extending datapublic Iterator<double[]> barIterator(double lo, double hi)
lo
 lower bound of interesthi
 upper bound of interestpublic double getBinWidth()
public Combiner getCombiner()
public int getBinCount()
public void add(BinBag other)
other
is undefined.other
 compatible accumulatorpublic boolean matches(boolean log, double binWidth, double binPhase, Combiner combiner)
log
 false for linear scaling, true for logarithmicbinWidth
 width of each bin; this is additive for linear
and multiplicative for logarithmic scalingbinPhase
 determines subbin boundary shifts along axis
normally in range 0..1combiner
 aggregation modeCopyright © 2023 Central Laboratory of the Research Councils. All Rights Reserved.