Multisets (bags) with efficient statistics operations defined upon; This package requires the Colt distribution.
Bins contain information about the data filled into them. They can be asked for various descriptive statistical measures, such as the minimum, maximum, size, mean, rms, variance, etc.
Bins come in two flavours: Dynamic and Static. Dynamic bins preserve
all the values filled into them and can return these exact values, when asked
to do so. They are rebinnable.
Static bins do not preserve the values filled into them. They merely collect
basic statistics incrementally while they are being filled. They immediately
forget about the filled values and keep only the derived statistics. They are
not rebinnable.
The data filled into static bins is not preserved. As a consequence infinitely many elements can be added to such bins. As a further consequence such bins cannot compute more than basic statistics. They are also not rebinnable. If these drawbacks matter, consider to use a {@link hep.aida.bin.DynamicBin1D}, which overcomes them at the expense of increased memory requirements.
The data filled into dynamic bins is fully preserved. Technically speaking, they are k-dimensional multisets (or bags) with efficient statistics operations defined upon. As a consequence such bins can compute more than only basic statistics. They are also rebinnable. On the other hand side, if many elements are filled into them, one may quickly run out of memory (each double element takes 8 bytes). If these drawbacks matter, consider to use a {@link hep.aida.bin.StaticBin1D}, which overcomes them at the expense of limited functionality.
Static 1-dimensional bins currently offered are: {@link hep.aida.bin.StaticBin1D},
{@link hep.aida.bin.MightyStaticBin1D} and {@link hep.aida.bin.QuantileBin1D}.
Dynamic 1-dimensional bins currently offered are: {@link hep.aida.bin.DynamicBin1D}.
In case not each and every statistics measure needed is directly provided by methods of bins one can use dynamic bins and retrieve their filled elements. From these elements, one can compute whatever necessary, either by using a statistics library or self written functions. Use methods like {@link hep.aida.bin.DynamicBin1D#elements()} and, for example, the descriptive statistics library {@link cern.jet.stat.Descriptive}.