OpenVDB 9.0.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | List of all members
Stats< ValueT, 0 > Class Template Reference

This class computes statistics (minimum value, maximum value, mean, variance and standard deviation) of a population of floating-point values. More...

#include <nanovdb/util/GridStats.h>

Inherits Extrema< ValueT, 0 >.

Public Types

using ValueType = ValueT
 

Public Member Functions

 Stats ()
 
 Stats (const ValueT &val)
 
Statsadd (const ValueT &val)
 Add a single sample. More...
 
Statsadd (const ValueT &val, uint64_t n)
 Add n samples with constant value val. More...
 
Statsadd (const Stats &other)
 Add the samples from the other Stats instance. More...
 
size_t size () const
 
double avg () const
 Return the arithmetic mean, i.e. average, value. More...
 
double mean () const
 
double var () const
 Return the population variance. More...
 
double variance () const
 
double std () const
 Return the standard deviation (=Sqrt(variance)) as defined from the (biased) population variance. More...
 
double stdDev () const
 
Extremamin (const ValueT &v)
 
const ValueT & min () const
 
Extremamax (const ValueT &v)
 
const ValueT & max () const
 
Extremaadd (const Extrema &other)
 
 operator bool () const
 

Static Public Member Functions

static constexpr bool hasMinMax ()
 
static constexpr bool hasAverage ()
 
static constexpr bool hasStdDeviation ()
 
static constexpr size_t size ()
 

Protected Types

using BaseT = Extrema< ValueT, 0 >
 
using RealT = double
 

Protected Attributes

size_t mSize
 
double mAvg
 
double mAux
 
ValueT mMin
 
ValueT mMax
 

Detailed Description

template<typename ValueT>
class nanovdb::Stats< ValueT, 0 >

This class computes statistics (minimum value, maximum value, mean, variance and standard deviation) of a population of floating-point values.

variance = Mean[ (X-Mean[X])^2 ] = Mean[X^2] - Mean[X]^2, standard deviation = sqrt(variance)

Note
This class employs incremental computation and double precision.

Member Typedef Documentation

◆ BaseT

using BaseT = Extrema<ValueT, 0>
protected

◆ RealT

using RealT = double
protected

◆ ValueType

using ValueType = ValueT

Constructor & Destructor Documentation

◆ Stats() [1/2]

Stats ( )
inline

◆ Stats() [2/2]

Stats ( const ValueT &  val)
inline

Member Function Documentation

◆ add() [1/4]

Extrema & add ( const Extrema< ValueT, 0 > &  other)
inlineinherited

◆ add() [2/4]

Stats & add ( const Stats< ValueT, 0 > &  other)
inline

Add the samples from the other Stats instance.

◆ add() [3/4]

Stats & add ( const ValueT &  val)
inline

Add a single sample.

◆ add() [4/4]

Stats & add ( const ValueT &  val,
uint64_t  n 
)
inline

Add n samples with constant value val.

◆ avg()

double avg ( ) const
inline

Return the arithmetic mean, i.e. average, value.

◆ hasAverage()

static constexpr bool hasAverage ( )
inlinestaticconstexpr

◆ hasMinMax()

static constexpr bool hasMinMax ( )
inlinestaticconstexpr

◆ hasStdDeviation()

static constexpr bool hasStdDeviation ( )
inlinestaticconstexpr

◆ max() [1/2]

const ValueT & max ( ) const
inlineinherited

◆ max() [2/2]

Extrema & max ( const ValueT &  v)
inlineinherited

◆ mean()

double mean ( ) const
inline

◆ min() [1/2]

const ValueT & min ( ) const
inlineinherited

◆ min() [2/2]

Extrema & min ( const ValueT &  v)
inlineinherited

◆ operator bool()

operator bool ( ) const
inlineinherited

◆ size() [1/2]

static constexpr size_t size ( )
inlinestaticconstexprinherited

◆ size() [2/2]

size_t size ( ) const
inline

◆ std()

double std ( ) const
inline

Return the standard deviation (=Sqrt(variance)) as defined from the (biased) population variance.

◆ stdDev()

double stdDev ( ) const
inline

◆ var()

double var ( ) const
inline

Return the population variance.

Note
The unbiased sample variance = population variance * num/(num-1)

◆ variance()

double variance ( ) const
inline

Member Data Documentation

◆ mAux

double mAux
protected

◆ mAvg

double mAvg
protected

◆ mMax

ValueT mMax
protectedinherited

◆ mMin

ValueT mMin
protectedinherited

◆ mSize

size_t mSize
protected