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 non-zero 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 non-zero values
in the range over which samples were presented, perhaps
extended over a given range.
|
int |
getBinCount()
Returns the number of non-empty 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 sub-bin 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 non-zero 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 sub-bin boundary shifts along axis
normally in range 0..1combiner
- aggregation modeCopyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.