ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::WeibullDistribution Class Reference

The Weibull statistical parametric distribution. More...

#include <WeibullDistribution.h>

Inheritance diagram for cloudViewer::WeibullDistribution:
Collaboration diagram for cloudViewer::WeibullDistribution:

Public Member Functions

 WeibullDistribution ()
 WeibullDistribution constructor. More...
 
 WeibullDistribution (ScalarType a, ScalarType b, ScalarType valueShift=0)
 WeibullDistribution constructor. More...
 
bool getParameters (ScalarType &a, ScalarType &b) const
 Returns the distribution parameters. More...
 
bool getOtherParameters (ScalarType &mu, ScalarType &sigma2) const
 Returns the normal distribution equivalent parameters. More...
 
double computeMode () const
 Returns the distribution 'mode'. More...
 
double computeSkewness () const
 Returns the distribution 'skewness'. More...
 
bool setParameters (ScalarType a, ScalarType b, ScalarType valueShift=0)
 Sets the distribution parameters. More...
 
void setValueShift (ScalarType vs)
 Sets the distribution value shift. More...
 
ScalarType getValueShift () const
 Returns the distribution value shift. More...
 
bool computeParameters (const ScalarContainer &values) override
 Computes the distribution parameters from a set of values. More...
 
double computeP (ScalarType x) const override
 Computes the probability of x. More...
 
double computePfromZero (ScalarType x) const override
 Computes the cumulative probability between 0 and x. More...
 
double computeP (ScalarType x1, ScalarType x2) const override
 Computes the cumulative probability between x1 and x2. More...
 
double computeChi2Dist (const GenericCloud *cloud, unsigned numberOfClasses, int *histo=nullptr) override
 Computes the Chi2 distance (related to the Chi2 Test) More...
 
const char * getName () const override
 Returns distribution name. More...
 
- Public Member Functions inherited from cloudViewer::GenericDistribution
 GenericDistribution ()
 Default constructor. More...
 
virtual ~GenericDistribution ()=default
 Default destructor. More...
 
virtual bool isValid () const
 Indicates if the distribution parameters are valid. More...
 

Protected Member Functions

virtual bool setChi2ClassesPositions (unsigned numberOfClasses)
 Compute each Chi2 class limits. More...
 
- Protected Member Functions inherited from cloudViewer::GenericDistribution
void setValid (bool state)
 Sets distribution current validity. More...
 

Static Protected Member Functions

static double ComputeG (const ScalarContainer &values, double a, ScalarType valueShift, double valueRange)
 internal function for parameters evaluation from sample points More...
 
static double FindGRoot (const ScalarContainer &values, ScalarType valueShift, double valueRange)
 internal function for parameters evaluation from sample points More...
 

Protected Attributes

std::vector< ScalarType > chi2ClassesPositions
 Chi2 classes limits. More...
 
bool parametersDefined
 Parameters validity. More...
 
ScalarType m_a
 Weibull distribution parameter a (k) More...
 
ScalarType m_b
 Weibull distribution parameter b (lambda) More...
 
ScalarType m_valueShift
 Weibull distribution parameter 'value shift'. More...
 
ScalarType m_mu
 Normal distribution equivalent parameter: mean. More...
 
ScalarType m_sigma2
 Normal distribution equivalent parameter: variance. More...
 
- Protected Attributes inherited from cloudViewer::GenericDistribution
bool m_isValid
 Whether the distribution is in a valid state or not. More...
 

Additional Inherited Members

- Public Types inherited from cloudViewer::GenericDistribution
using ScalarContainer = std::vector< ScalarType >
 Scalar values container. More...
 

Detailed Description

The Weibull statistical parametric distribution.

Implementats the GenericDistribution interface.

Definition at line 18 of file WeibullDistribution.h.

Constructor & Destructor Documentation

◆ WeibullDistribution() [1/2]

WeibullDistribution::WeibullDistribution ( )

WeibullDistribution constructor.

Definition at line 89 of file WeibullDistribution.cpp.

References setParameters().

◆ WeibullDistribution() [2/2]

WeibullDistribution::WeibullDistribution ( ScalarType  a,
ScalarType  b,
ScalarType  valueShift = 0 
)

WeibullDistribution constructor.

Distrubtion parameters can be directly set during object construction.

Parameters
athe Weibull a parameter (also known as 'k')
bthe Weibull b parameter (also known as 'lambda')
valueShifta value shift ('zero')

Definition at line 91 of file WeibullDistribution.cpp.

References setParameters().

Member Function Documentation

◆ computeChi2Dist()

double WeibullDistribution::computeChi2Dist ( const GenericCloud Yk,
unsigned  numberOfClasses,
int *  histo = nullptr 
)
overridevirtual

Computes the Chi2 distance (related to the Chi2 Test)

Computes the Chi2 distance from a group of point, accordingly to a certain number of classes (see Chi2 test theory for more information). The result of projecting each point (or more precisely each scalar value associated to each point) in the different classes can be stored in an array (of the same size as the number of classes). To do so, such an array (already allocated in memory) should be passed as an argument. Warning: be sure to activate an OUTPUT scalar field on the input cloud

Parameters
Yka group of points
numberOfClassesthe number of classes for the Chi2 Test
histoan array to store the values projection result (optional)
Returns
the Chi2 distance (or -1.0 if an error occurred)

Implements cloudViewer::GenericDistribution.

Definition at line 328 of file WeibullDistribution.cpp.

References chi2ClassesPositions, cloudViewer::ScalarFieldTools::countScalarFieldValidValues(), cloudViewer::GenericCloud::getPointScalarValue(), setChi2ClassesPositions(), cloudViewer::GenericCloud::size(), and cloudViewer::ScalarField::ValidValue().

◆ ComputeG()

double WeibullDistribution::ComputeG ( const ScalarContainer values,
double  a,
ScalarType  valueShift,
double  valueRange 
)
staticprotected

internal function for parameters evaluation from sample points

inverseVmax can be optionally specified for overflow-safe version

Definition at line 222 of file WeibullDistribution.cpp.

References cloudViewer::GreaterThanEpsilon(), cloudViewer::ScalarField::ValidValue(), and ZERO_TOLERANCE_D.

Referenced by FindGRoot().

◆ computeMode()

double WeibullDistribution::computeMode ( ) const

Returns the distribution 'mode'.

Definition at line 420 of file WeibullDistribution.cpp.

References m_a, m_b, and m_valueShift.

Referenced by ccEntityAction::computeStatParams(), and define_WeibullDistribution().

◆ computeP() [1/2]

double WeibullDistribution::computeP ( ScalarType  x) const
overridevirtual

Computes the probability of x.

Parameters
xthe variable
Returns
the probabilty

Implements cloudViewer::GenericDistribution.

Definition at line 195 of file WeibullDistribution.cpp.

References m_a, m_b, and m_valueShift.

◆ computeP() [2/2]

double WeibullDistribution::computeP ( ScalarType  x1,
ScalarType  x2 
) const
overridevirtual

Computes the cumulative probability between x1 and x2.

x1 should be lower than x2

Parameters
x1the lower boundary
x2the upper boundary
Returns
the cumulative probabilty

Implements cloudViewer::GenericDistribution.

Definition at line 211 of file WeibullDistribution.cpp.

References m_a, m_b, and m_valueShift.

◆ computeParameters()

bool WeibullDistribution::computeParameters ( const ScalarContainer values)
overridevirtual

Computes the distribution parameters from a set of values.

Parameters
valuesa set of scalar values
Returns
true (if the computation succeeded) or false (if not)

Implements cloudViewer::GenericDistribution.

Definition at line 137 of file WeibullDistribution.cpp.

References FindGRoot(), setParameters(), cloudViewer::GenericDistribution::setValid(), and cloudViewer::ScalarField::ValidValue().

◆ computePfromZero()

double WeibullDistribution::computePfromZero ( ScalarType  x) const
overridevirtual

Computes the cumulative probability between 0 and x.

Parameters
xthe upper boundary
Returns
the cumulative probabilty

Implements cloudViewer::GenericDistribution.

Definition at line 203 of file WeibullDistribution.cpp.

References m_a, m_b, and m_valueShift.

◆ computeSkewness()

double WeibullDistribution::computeSkewness ( ) const

Returns the distribution 'skewness'.

Definition at line 428 of file WeibullDistribution.cpp.

References abs(), Gamma_cc(), cloudViewer::GenericDistribution::isValid(), m_a, m_b, m_mu, and m_sigma2.

Referenced by ccEntityAction::computeStatParams(), and define_WeibullDistribution().

◆ FindGRoot()

double WeibullDistribution::FindGRoot ( const ScalarContainer values,
ScalarType  valueShift,
double  valueRange 
)
staticprotected

internal function for parameters evaluation from sample points

Definition at line 275 of file WeibullDistribution.cpp.

References abs(), ComputeG(), cloudViewer::GreaterThanEpsilon(), and cloudViewer::LessThanEpsilon().

Referenced by computeParameters().

◆ getName()

const char* cloudViewer::WeibullDistribution::getName ( ) const
inlineoverridevirtual

Returns distribution name.

Implements cloudViewer::GenericDistribution.

Definition at line 75 of file WeibullDistribution.h.

◆ getOtherParameters()

bool WeibullDistribution::getOtherParameters ( ScalarType &  mu,
ScalarType &  sigma2 
) const

Returns the normal distribution equivalent parameters.

Parameters
mua field to transmit the equivalent mean
sigma2a field to transmit the equivalent variance
Returns
the parameters validity

Definition at line 104 of file WeibullDistribution.cpp.

References cloudViewer::GenericDistribution::isValid(), m_mu, and m_sigma2.

Referenced by define_WeibullDistribution().

◆ getParameters()

bool WeibullDistribution::getParameters ( ScalarType &  a,
ScalarType &  b 
) const

Returns the distribution parameters.

Parameters
athe Weibull a parameter (also known as 'k')
bthe Weibull b parameter (also known as 'lambda')
Returns
the parameters validity

Definition at line 97 of file WeibullDistribution.cpp.

References cloudViewer::GenericDistribution::isValid(), m_a, and m_b.

Referenced by ccEntityAction::computeStatParams(), and define_WeibullDistribution().

◆ getValueShift()

ScalarType cloudViewer::WeibullDistribution::getValueShift ( ) const
inline

Returns the distribution value shift.

Definition at line 65 of file WeibullDistribution.h.

Referenced by ccEntityAction::computeStatParams(), and define_WeibullDistribution().

◆ setChi2ClassesPositions()

bool WeibullDistribution::setChi2ClassesPositions ( unsigned  numberOfClasses)
protectedvirtual

Compute each Chi2 class limits.

This method is used (internally) to accelerate the Chi2 distance computation.

Parameters
numberOfClassesthe number of classes that will be used for Chi2 distance computation
Returns
success

Definition at line 386 of file WeibullDistribution.cpp.

References chi2ClassesPositions, cloudViewer::GenericDistribution::isValid(), m_a, and m_b.

Referenced by computeChi2Dist().

◆ setParameters()

bool WeibullDistribution::setParameters ( ScalarType  a,
ScalarType  b,
ScalarType  valueShift = 0 
)

Sets the distribution parameters.

Parameters
athe Weibull a parameter (also known as 'k')
bthe Weibull b parameter (also known as 'lambda')
valueShifta value shift ('zero')
Returns
the parameters validity

Definition at line 112 of file WeibullDistribution.cpp.

References chi2ClassesPositions, Gamma_cc(), cloudViewer::GenericDistribution::isValid(), m_a, m_b, m_mu, m_sigma2, m_valueShift, and cloudViewer::GenericDistribution::setValid().

Referenced by computeParameters(), define_WeibullDistribution(), CommandStatTest::process(), ccEntityAction::statisticalTest(), and WeibullDistribution().

◆ setValueShift()

void WeibullDistribution::setValueShift ( ScalarType  vs)

Sets the distribution value shift.

Parameters
vsvalue shift

Definition at line 414 of file WeibullDistribution.cpp.

References m_valueShift, and cloudViewer::GenericDistribution::setValid().

Referenced by define_WeibullDistribution().

Member Data Documentation

◆ chi2ClassesPositions

std::vector<ScalarType> cloudViewer::WeibullDistribution::chi2ClassesPositions
protected

Chi2 classes limits.

Used internally. Stores both limits for each class in a vector (min_class_1, max_class_1, min_class_2, max_class_2, etc.).

Definition at line 89 of file WeibullDistribution.h.

Referenced by computeChi2Dist(), setChi2ClassesPositions(), and setParameters().

◆ m_a

ScalarType cloudViewer::WeibullDistribution::m_a
protected

Weibull distribution parameter a (k)

Definition at line 94 of file WeibullDistribution.h.

Referenced by computeMode(), computeP(), computePfromZero(), computeSkewness(), getParameters(), setChi2ClassesPositions(), and setParameters().

◆ m_b

ScalarType cloudViewer::WeibullDistribution::m_b
protected

Weibull distribution parameter b (lambda)

Definition at line 96 of file WeibullDistribution.h.

Referenced by computeMode(), computeP(), computePfromZero(), computeSkewness(), getParameters(), setChi2ClassesPositions(), and setParameters().

◆ m_mu

ScalarType cloudViewer::WeibullDistribution::m_mu
protected

Normal distribution equivalent parameter: mean.

Definition at line 101 of file WeibullDistribution.h.

Referenced by computeSkewness(), getOtherParameters(), and setParameters().

◆ m_sigma2

ScalarType cloudViewer::WeibullDistribution::m_sigma2
protected

Normal distribution equivalent parameter: variance.

Definition at line 103 of file WeibullDistribution.h.

Referenced by computeSkewness(), getOtherParameters(), and setParameters().

◆ m_valueShift

ScalarType cloudViewer::WeibullDistribution::m_valueShift
protected

Weibull distribution parameter 'value shift'.

Definition at line 98 of file WeibullDistribution.h.

Referenced by computeMode(), computeP(), computePfromZero(), setParameters(), and setValueShift().

◆ parametersDefined

bool cloudViewer::WeibullDistribution::parametersDefined
protected

Parameters validity.

Definition at line 92 of file WeibullDistribution.h.


The documentation for this class was generated from the following files: