gml_THistogram Class Reference

#include <gml_Histogram.h>

Collaboration diagram for gml_THistogram:

Collaboration graph
[legend]
List of all members.

Detailed Description

N-dimensional histogram objects. Most checks in this class are done using assertions; compile with -DNDEBUG to remove parameter checking.


Public Member Functions

gml_TError Init (UInt8 dimensions, UInt32 *resolution)
 Allocate an histogram of dimension dim. The resolution in dimension k is specified by <resolution[k]>.
void Dispose ()
 Release the ressources allocated by this object.
gml_TError Setup (UInt8 dimension, Float32 start, Float32 stepWidth)
 Setup the scale of the histogram.
UInt8 Dim () const
 Return the dimension of the histogram.
UInt32 Resolution (UInt8 dim=0) const
 Return the resolution for dimension dim.
Float32 Start (UInt8 dim=0) const
 Return the lower bound for dimension dim.
Float32 Step (UInt8 dim=0) const
 Return the bucket width for dimension dim.
UInt32 Samples () const
 Return the current number of samples.
UInt32 Get (UInt32 i) const
 Return histogram value for the interval number i. Valid only for 1D histograms.
UInt32 Get (UInt32 *i) const
 Returns histogram value for the interval indexed by i.
UInt32 Get (Float32 sample) const
 Return histogram value for the interval corresponding to sample sample. Valid only for 1D histograms.
UInt32 Get (Float32 *sample) const
 Return histogram value for the interval corresponding to sample sample.
bool Next (UInt32 *index, Float32 *sample)
 Walk to the index following index and update sample accordingly Return true iff overflowing (i.e. walking back to index zero).
void Reset ()
 Reset to a blank histogram.
void Increment (UInt32 samples=1)
 Increment the number of samples by samples.
void Push (Float32 sample, UInt32 count=1)
 Increment the frequency for the interval corresponding to sample sample (one dimention). returns the new value of histogram in that interval.
void Push (Float32 *sample, UInt32 count=1)
 Increment the frequency for the interval corresponding to sample sample. returns the new value of histogram in that interval.
void Push (UInt32 index, UInt32 count=1)
 Increment the frequency for the interval number i (one dimention). returns the new value of histogram in that interval.
void Push (UInt32 *index, UInt32 count=1)
 Increment the frequency for the interval number indexed by i. returns the new value of histogram in that interval.
Float32 SampleMin ()
 Return the samples minimum. All the samples used to build this histogram are greater than or equal to the returned value. Return NAN if the histogram is emtpy.
Float32 SampleMax ()
 Return the samples minimum. All the samples used to build this histogram are strictly lower than the returned value. Return NAN if the histogram is emtpy.
UInt32 BucketMin ()
 Return the maximum sample count in a single bucket.
UInt32 BucketMax ()
 Return the minimal sample count in a single bucket.
gml_TError Mean (Float32 *mean, gml_TBoolean robust)
 Compute the mean histogram value, as statistical average (robust == false) or the median (robust == true). Valid only for 1D histograms.
gml_TError Moments (Float32 *mean, Float32 *deviation, gml_TBoolean robust)
 Compute the order 1 and 2 moments of histogram, either as the statistical average and standard deviation, either as the median and median absolute deviation. Use Mean () eventually. Currently valid only for 1D histograms.
gml_TError Entropy (Float32 *entropy)
 Compute the order 1 entropy of the histogram. Currently valid only for 1D histograms.
void Desaturate ()
 Remove the samples in the extremal bucket.
gml_TError Quantiles (gml_TArray< Float32 > &quantiles)
gml_TError Scale (UInt8 a, UInt8 b)
 Scale the histogram sample counts by a factor a/2^b.
gml_TError Shift (UInt8 a)
 Shift up all values in the histogram by a.

Static Public Attributes

static gml_TError sErrorValidFor1DOnly = (gml_TError)-1
static gml_TError sErrorWrongDimension = (gml_TError)-1
static gml_TError sErrorWrongResolution = (gml_TError)-1
static const UInt32 sDefaultResolution = 256
static const UInt8 sMomentsGaussian = 0 << 0
static const UInt8 sMomentsRobust = 1 << 0

Protected Member Functions

UInt32 Index (UInt32 *sample) const
 Flat index of a sample in fData, given its N-D index.
UInt32 Index (Float32 sample) const
 Flat index of a sample in fData, given its 1-D floating-point value.
UInt32 Index (Float32 *sample) const
 Flat index of a sample in fData, given its N-D floating-point value.

Static Protected Member Functions

static void ClassInit ()
 class setup

Protected Attributes

UInt8 fDim
 number of dimensions of histogram array
UInt32fData
 array of histogram values
UInt32 fSize
 size of fData (product of resolutions)
UInt32 fSamples
 sum of histogram values
UInt32fOffset
 sub-dimension array sizes
UInt32fIndex
 temporary n-dimensional index storage
UInt32fResolution
 number of intervals
Float32fStart
 lower bound of first interval
Float32fStep
 width of intervals
Float32fStepR
 reciprocates of fStep

Static Protected Attributes

static bool sModuleInited = false
 was ClassInit() called ?

Member Function Documentation

gml_TError Init ( UInt8  dimensions,
UInt32 resolution 
)

Allocate an histogram of dimension dim. The resolution in dimension k is specified by <resolution[k]>.

If the resolutions aren't specified (NULL), they default to sDefaultResolution

Parameters:
dimensions  histogram dimensions
resolution  resolution for each dimension

gml_TError Setup ( UInt8  dimension,
Float32  start,
Float32  stepWidth 
)

Setup the scale of the histogram.

Parameters:
dimension  index of the dimension to set up
start  lower bound of first interval
stepWidth  width of each bucket

void Push ( Float32  sample,
UInt32  count = 1 
) [inline]

Increment the frequency for the interval corresponding to sample sample (one dimention). returns the new value of histogram in that interval.

Warning:
Push() doesn't increment the number of samples.
Valid only for 1D histograms.

void Push ( Float32 sample,
UInt32  count = 1 
) [inline]

Increment the frequency for the interval corresponding to sample sample. returns the new value of histogram in that interval.

Warning:
Push() doesn't increment the number of samples.

void Push ( UInt32  index,
UInt32  count = 1 
) [inline]

Increment the frequency for the interval number i (one dimention). returns the new value of histogram in that interval.

Warning:
Push() doesn't increment the number of samples.
Valid only for 1D histograms.

void Push ( UInt32 index,
UInt32  count = 1 
) [inline]

Increment the frequency for the interval number indexed by i. returns the new value of histogram in that interval.

Warning:
Push() doesn't increment the number of samples.


The documentation for this class was generated from the following files:
Generated on Tue Jun 12 14:03:28 2007 for gml by Doxygen 1.5.2.