Main MRPT website > C++ reference
MRPT logo
Namespaces | Functions
Statistics functions, probability distributions

Detailed Description

Collaboration diagram for Statistics functions, probability distributions:

Namespaces

namespace  mrpt::math::detail
 

Functions

double BASE_IMPEXP mrpt::math::normalPDF (double x, double mu, double std)
 Evaluates the univariate normal (Gaussian) distribution at a given point "x".
 
template<class VECTORLIKE1 , class VECTORLIKE2 , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::normalPDFInf (const VECTORLIKE1 &x, const VECTORLIKE2 &mu, const MATRIXLIKE &cov_inv, const bool scaled_pdf=false)
 Evaluates the multivariate normal (Gaussian) distribution at a given point "x".
 
template<class VECTORLIKE1 , class VECTORLIKE2 , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::normalPDF (const VECTORLIKE1 &x, const VECTORLIKE2 &mu, const MATRIXLIKE &cov, const bool scaled_pdf=false)
 Evaluates the multivariate normal (Gaussian) distribution at a given point "x".
 
template<typename VECTORLIKE , typename MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::normalPDF (const VECTORLIKE &d, const MATRIXLIKE &cov)
 Evaluates the multivariate normal (Gaussian) distribution at a given point given its distance vector "d" from the Gaussian mean.
 
template<typename VECTORLIKE1 , typename MATRIXLIKE1 , typename VECTORLIKE2 , typename MATRIXLIKE2 >
double mrpt::math::KLD_Gaussians (const VECTORLIKE1 &mu0, const MATRIXLIKE1 &cov0, const VECTORLIKE2 &mu1, const MATRIXLIKE2 &cov1)
 Kullback-Leibler divergence (KLD) between two independent multivariate Gaussians.
 
double BASE_IMPEXP mrpt::math::erfc (double x)
 The complementary error function of a Normal distribution.
 
double BASE_IMPEXP mrpt::math::erf (double x)
 The error function of a Normal distribution.
 
double BASE_IMPEXP mrpt::math::normalQuantile (double p)
 Evaluates the Gaussian distribution quantile for the probability value p=[0,1].
 
double BASE_IMPEXP mrpt::math::normalCDF (double p)
 Evaluates the Gaussian cumulative density function.
 
double BASE_IMPEXP mrpt::math::chi2inv (double P, unsigned int dim=1)
 The "quantile" of the Chi-Square distribution, for dimension "dim" and probability 0<P<1 (the inverse of chi2CDF) An aproximation from the Wilson-Hilferty transformation is used.
 
template<class T >
double mrpt::math::noncentralChi2CDF (unsigned int degreesOfFreedom, T noncentrality, T arg)
 
double mrpt::math::chi2CDF (unsigned int degreesOfFreedom, double arg)
 
double mrpt::math::chi2PDF (unsigned int degreesOfFreedom, double arg, double accuracy=1e-7)
 
template<typename CONTAINER >
void mrpt::math::confidenceIntervals (const CONTAINER &data, typename CONTAINER::value_type &out_mean, typename CONTAINER::value_type &out_lower_conf_interval, typename CONTAINER::value_type &out_upper_conf_interval, const double confidenceInterval=0.1, const size_t histogramNumBins=1000)
 Return the mean and the 10%-90% confidence points (or with any other confidence value) of a set of samples by building the cummulative CDF of all the elements of the container.
 
template<class VECTOR_OF_VECTORS , class MATRIXLIKE , class VECTORLIKE , class VECTORLIKE2 , class VECTORLIKE3 >
void mrpt::math::covariancesAndMeanWeighted (const VECTOR_OF_VECTORS &elements, MATRIXLIKE &covariances, VECTORLIKE &means, const VECTORLIKE2 *weights_mean, const VECTORLIKE3 *weights_cov, const bool *elem_do_wrap2pi=NULL)
 Computes covariances and mean of any vector of containers, given optional weights for the different samples.
 
template<class VECTOR_OF_VECTORS , class MATRIXLIKE , class VECTORLIKE >
void mrpt::math::covariancesAndMean (const VECTOR_OF_VECTORS &elements, MATRIXLIKE &covariances, VECTORLIKE &means, const bool *elem_do_wrap2pi=NULL)
 Computes covariances and mean of any vector of containers.
 
double BASE_IMPEXP mrpt::math::averageLogLikelihood (const vector_double &logLikelihoods)
 A numerically-stable method to compute average likelihood values with strongly different ranges (unweighted likelihoods: compute the arithmetic mean).
 
double BASE_IMPEXP mrpt::math::averageWrap2Pi (const vector_double &angles)
 Computes the average of a sequence of angles in radians taking into account the correct wrapping in the range $ ]-\pi,\pi [ $, for example, the mean of (2,-2) is $ \pi $, not 0.
 
double BASE_IMPEXP mrpt::math::averageLogLikelihood (const vector_double &logWeights, const vector_double &logLikelihoods)
 A numerically-stable method to average likelihood values with strongly different ranges (weighted likelihoods).
 
std::string BASE_IMPEXP mrpt::math::MATLAB_plotCovariance2D (const CMatrixFloat &cov22, const vector_float &mean, const float &stdCount, const std::string &style=std::string("b"), const size_t &nEllipsePoints=30)
 Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('float' version).
 
std::string BASE_IMPEXP mrpt::math::MATLAB_plotCovariance2D (const CMatrixDouble &cov22, const vector_double &mean, const float &stdCount, const std::string &style=std::string("b"), const size_t &nEllipsePoints=30)
 Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('double' version).
 

Probability density distributions (pdf) distance metrics

template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT >
VECTORLIKE1::value_type mrpt::math::mahalanobisDistance2 (const VECTORLIKE1 &X, const VECTORLIKE2 &MU, const MAT &COV)
 Computes the squared mahalanobis distance of a vector X given the mean MU and the covariance inverse COV_inv

\[ d^2 = (X-MU)^\top \Sigma^{-1} (X-MU) \]

.

 
template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT >
VECTORLIKE1::value_type mrpt::math::mahalanobisDistance (const VECTORLIKE1 &X, const VECTORLIKE2 &MU, const MAT &COV)
 Computes the mahalanobis distance of a vector X given the mean MU and the covariance inverse COV_inv

\[ d = \sqrt{ (X-MU)^\top \Sigma^{-1} (X-MU) } \]

.

 
template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 >
VECTORLIKE::value_type mrpt::math::mahalanobisDistance2 (const VECTORLIKE &mean_diffs, const MAT1 &COV1, const MAT2 &COV2, const MAT3 &CROSS_COV12)
 Computes the squared mahalanobis distance between two non-independent Gaussians, given the two covariance matrices and the vector with the difference of their means.
 
template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 >
VECTORLIKE::value_type mrpt::math::mahalanobisDistance (const VECTORLIKE &mean_diffs, const MAT1 &COV1, const MAT2 &COV2, const MAT3 &CROSS_COV12)
 Computes the mahalanobis distance between two non-independent Gaussians (or independent if CROSS_COV12=NULL), given the two covariance matrices and the vector with the difference of their means.
 
template<class VECTORLIKE , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::mahalanobisDistance2 (const VECTORLIKE &delta_mu, const MATRIXLIKE &cov)
 Computes the squared mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point.
 
template<class VECTORLIKE , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::mahalanobisDistance (const VECTORLIKE &delta_mu, const MATRIXLIKE &cov)
 Computes the mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point.
 
template<typename T >
mrpt::math::productIntegralTwoGaussians (const std::vector< T > &mean_diffs, const CMatrixTemplateNumeric< T > &COV1, const CMatrixTemplateNumeric< T > &COV2)
 Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2".
 
template<typename T , size_t DIM>
mrpt::math::productIntegralTwoGaussians (const std::vector< T > &mean_diffs, const CMatrixFixedNumeric< T, DIM, DIM > &COV1, const CMatrixFixedNumeric< T, DIM, DIM > &COV2)
 Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2".
 
template<typename T , class VECLIKE , class MATLIKE1 , class MATLIKE2 >
void mrpt::math::productIntegralAndMahalanobisTwoGaussians (const VECLIKE &mean_diffs, const MATLIKE1 &COV1, const MATLIKE2 &COV2, T &maha2_out, T &intprod_out, const MATLIKE1 *CROSS_COV12=NULL)
 Computes both, the integral of the product of two Gaussians and their square Mahalanobis distance.
 
template<typename T , class VECLIKE , class MATRIXLIKE >
void mrpt::math::mahalanobisDistance2AndLogPDF (const VECLIKE &diff_mean, const MATRIXLIKE &cov, T &maha2_out, T &log_pdf_out)
 Computes both, the logarithm of the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian.
 
template<typename T , class VECLIKE , class MATRIXLIKE >
void mrpt::math::mahalanobisDistance2AndPDF (const VECLIKE &diff_mean, const MATRIXLIKE &cov, T &maha2_out, T &pdf_out)
 Computes both, the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian.
 

Function Documentation

double BASE_IMPEXP mrpt::math::averageLogLikelihood ( const vector_double &  logLikelihoods)

A numerically-stable method to compute average likelihood values with strongly different ranges (unweighted likelihoods: compute the arithmetic mean).

This method implements this equation:

\[ return = - \log N + \log \sum_{i=1}^N e^{ll_i-ll_{max}} + ll_{max} \]

See also the tutorial page.

Referenced by mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF >::PF_SLAM_particlesEvaluator_AuxPFOptimal(), and mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF >::PF_SLAM_particlesEvaluator_AuxPFStandard().

double BASE_IMPEXP mrpt::math::averageLogLikelihood ( const vector_double &  logWeights,
const vector_double &  logLikelihoods 
)

A numerically-stable method to average likelihood values with strongly different ranges (weighted likelihoods).

This method implements this equation:

\[ return = \log \left( \frac{1}{\sum_i e^{lw_i}} \sum_i e^{lw_i} e^{ll_i} \right) \]

See also the tutorial page.

double BASE_IMPEXP mrpt::math::averageWrap2Pi ( const vector_double &  angles)

Computes the average of a sequence of angles in radians taking into account the correct wrapping in the range $ ]-\pi,\pi [ $, for example, the mean of (2,-2) is $ \pi $, not 0.

double mrpt::math::chi2CDF ( unsigned int  degreesOfFreedom,
double  arg 
)
inline

Cumulative chi square distribution.

            Computes the cumulative density of a chi square distribution with \a degreesOfFreedom
            and tolerance \a accuracy at the given argument \a arg, i.e. the probability that
            a random number drawn from the distribution is below \a arg
            by calling <tt>noncentralChi2CDF(degreesOfFreedom, 0.0, arg, accuracy)</tt>.
Note
Function code from the Vigra project (http://hci.iwr.uni-heidelberg.de/vigra/); code under "MIT X11 License", GNU GPL-compatible.

Definition at line 193 of file distributions.h.

References mrpt::math::noncentralChi2CDF().

double BASE_IMPEXP mrpt::math::chi2inv ( double  P,
unsigned int  dim = 1 
)

The "quantile" of the Chi-Square distribution, for dimension "dim" and probability 0<P<1 (the inverse of chi2CDF) An aproximation from the Wilson-Hilferty transformation is used.

Referenced by mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), and mrpt::slam::PF_implementation< PARTICLE_TYPE, MYSELF >::PF_SLAM_implementation_pfStandardProposal().

double mrpt::math::chi2PDF ( unsigned int  degreesOfFreedom,
double  arg,
double  accuracy = 1e-7 
)
inline

Chi square distribution.

            Computes the density of a chi square distribution with \a degreesOfFreedom
            and tolerance \a accuracy at the given argument \a arg
            by calling <tt>noncentralChi2(degreesOfFreedom, 0.0, arg, accuracy)</tt>.
Note
Function code from the Vigra project (http://hci.iwr.uni-heidelberg.de/vigra/); code under "MIT X11 License", GNU GPL-compatible.

Definition at line 295 of file distributions.h.

References mrpt::math::detail::noncentralChi2CDF_exact().

template<typename CONTAINER >
void mrpt::math::confidenceIntervals ( const CONTAINER &  data,
typename CONTAINER::value_type out_mean,
typename CONTAINER::value_type out_lower_conf_interval,
typename CONTAINER::value_type out_upper_conf_interval,
const double  confidenceInterval = 0.1,
const size_t  histogramNumBins = 1000 
)

Return the mean and the 10%-90% confidence points (or with any other confidence value) of a set of samples by building the cummulative CDF of all the elements of the container.

The container can be any MRPT container (CArray, matrices, vectors).

Parameters
confidenceIntervalA number in the range (0,1) such as the confidence interval will be [100*confidenceInterval, 100*(1-confidenceInterval)].

Definition at line 305 of file distributions.h.

References ASSERT_, mrpt::math::cumsum(), mrpt::math::distance(), mrpt::math::histogram(), mrpt::math::mean(), mrpt::math::minimum_maximum(), MRPT_END, and MRPT_START.

template<class VECTOR_OF_VECTORS , class MATRIXLIKE , class VECTORLIKE >
void mrpt::math::covariancesAndMean ( const VECTOR_OF_VECTORS &  elements,
MATRIXLIKE &  covariances,
VECTORLIKE &  means,
const bool *  elem_do_wrap2pi = NULL 
)

Computes covariances and mean of any vector of containers.

Parameters
elementsAny kind of vector of vectors/arrays, eg. std::vector<vector_double>, with all the input samples, each sample in a "row".
covariancesOutput estimated covariance; it can be a fixed/dynamic matrix or a matrixview.
meansOutput estimated mean; it can be vector_double/CArrayDouble, etc...
elem_do_wrap2piIf !=NULL; it must point to an array of "bool" of size()==dimension of each element, stating if it's needed to do a wrap to [-pi,pi] to each dimension.

Definition at line 336 of file base/include/mrpt/math/utils.h.

Referenced by mrpt::math::transform_gaussian_montecarlo().

template<class VECTOR_OF_VECTORS , class MATRIXLIKE , class VECTORLIKE , class VECTORLIKE2 , class VECTORLIKE3 >
void mrpt::math::covariancesAndMeanWeighted ( const VECTOR_OF_VECTORS &  elements,
MATRIXLIKE &  covariances,
VECTORLIKE &  means,
const VECTORLIKE2 *  weights_mean,
const VECTORLIKE3 *  weights_cov,
const bool *  elem_do_wrap2pi = NULL 
)
inline

Computes covariances and mean of any vector of containers, given optional weights for the different samples.

Parameters
elementsAny kind of vector of vectors/arrays, eg. std::vector<vector_double>, with all the input samples, each sample in a "row".
covariancesOutput estimated covariance; it can be a fixed/dynamic matrix or a matrixview.
meansOutput estimated mean; it can be vector_double/CArrayDouble, etc...
weights_meanIf !=NULL, it must point to a vector of size()==number of elements, with normalized weights to take into account for the mean.
weights_covIf !=NULL, it must point to a vector of size()==number of elements, with normalized weights to take into account for the covariance.
elem_do_wrap2piIf !=NULL; it must point to an array of "bool" of size()==dimension of each element, stating if it's needed to do a wrap to [-pi,pi] to each dimension.
See Also
This method is used in mrpt::math::unscented_transform_gaussian

Definition at line 233 of file base/include/mrpt/math/utils.h.

References ASSERTDEB_, ASSERTMSG_, M_2PI, M_PI, and mrpt::math::wrapToPi().

Referenced by mrpt::math::transform_gaussian_unscented().

double BASE_IMPEXP mrpt::math::erf ( double  x)

The error function of a Normal distribution.

Referenced by mrpt::math::noncentralChi2CDF(), and mrpt::math::detail::noncentralChi2CDF_exact().

double BASE_IMPEXP mrpt::math::erfc ( double  x)

The complementary error function of a Normal distribution.

template<typename VECTORLIKE1 , typename MATRIXLIKE1 , typename VECTORLIKE2 , typename MATRIXLIKE2 >
double mrpt::math::KLD_Gaussians ( const VECTORLIKE1 &  mu0,
const MATRIXLIKE1 &  cov0,
const VECTORLIKE2 &  mu1,
const MATRIXLIKE2 &  cov1 
)

Kullback-Leibler divergence (KLD) between two independent multivariate Gaussians.

$ D_\mathrm{KL}(\mathcal{N}_0 \| \mathcal{N}_1) = { 1 \over 2 } ( \log_e ( { \det \Sigma_1 \over \det \Sigma_0 } ) + \mathrm{tr} ( \Sigma_1^{-1} \Sigma_0 ) + ( \mu_1 - \mu_0 )^\top \Sigma_1^{-1} ( \mu_1 - \mu_0 ) - N ) $

Definition at line 116 of file distributions.h.

References ASSERT_, MRPT_END, MRPT_START, mrpt::math::multiply_HCHt_scalar(), and mrpt::math::size().

template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT >
VECTORLIKE1::value_type mrpt::math::mahalanobisDistance ( const VECTORLIKE1 &  X,
const VECTORLIKE2 &  MU,
const MAT &  COV 
)
inline

Computes the mahalanobis distance of a vector X given the mean MU and the covariance inverse COV_inv

\[ d = \sqrt{ (X-MU)^\top \Sigma^{-1} (X-MU) } \]

.

Definition at line 853 of file base/include/mrpt/math/utils.h.

References mrpt::math::mahalanobisDistance2().

Referenced by mrpt::math::mahalanobisDistance().

template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 >
VECTORLIKE::value_type mrpt::math::mahalanobisDistance ( const VECTORLIKE &  mean_diffs,
const MAT1 &  COV1,
const MAT2 &  COV2,
const MAT3 &  CROSS_COV12 
)
inline

Computes the mahalanobis distance between two non-independent Gaussians (or independent if CROSS_COV12=NULL), given the two covariance matrices and the vector with the difference of their means.

\[ d = \sqrt{ \Delta_\mu^\top (\Sigma_1 + \Sigma_2 - 2 \Sigma_12 )^{-1} \Delta_\mu } \]

Definition at line 894 of file base/include/mrpt/math/utils.h.

References mrpt::math::mahalanobisDistance().

template<class VECTORLIKE , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::mahalanobisDistance ( const VECTORLIKE &  delta_mu,
const MATRIXLIKE &  cov 
)
inline

Computes the mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point.

\[ d^2 = \sqrt( \Delta_\mu^\top \Sigma^{-1} \Delta_\mu ) \]

Definition at line 920 of file base/include/mrpt/math/utils.h.

References mrpt::math::mahalanobisDistance2().

template<class VECTORLIKE1 , class VECTORLIKE2 , class MAT >
VECTORLIKE1::value_type mrpt::math::mahalanobisDistance2 ( const VECTORLIKE1 &  X,
const VECTORLIKE2 &  MU,
const MAT &  COV 
)

Computes the squared mahalanobis distance of a vector X given the mean MU and the covariance inverse COV_inv

\[ d^2 = (X-MU)^\top \Sigma^{-1} (X-MU) \]

.

Definition at line 830 of file base/include/mrpt/math/utils.h.

References ASSERT_, MRPT_END, MRPT_START, mrpt::math::multiply_HCHt_scalar(), and mrpt::math::size().

Referenced by mrpt::math::mahalanobisDistance().

template<class VECTORLIKE , class MAT1 , class MAT2 , class MAT3 >
VECTORLIKE::value_type mrpt::math::mahalanobisDistance2 ( const VECTORLIKE &  mean_diffs,
const MAT1 &  COV1,
const MAT2 &  COV2,
const MAT3 &  CROSS_COV12 
)

Computes the squared mahalanobis distance between two non-independent Gaussians, given the two covariance matrices and the vector with the difference of their means.

\[ d^2 = \Delta_\mu^\top (\Sigma_1 + \Sigma_2 - 2 \Sigma_12 )^{-1} \Delta_\mu \]

Definition at line 867 of file base/include/mrpt/math/utils.h.

References ASSERT_, MRPT_END, MRPT_START, mrpt::math::multiply_HCHt_scalar(), and mrpt::math::size().

template<class VECTORLIKE , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::mahalanobisDistance2 ( const VECTORLIKE &  delta_mu,
const MATRIXLIKE &  cov 
)
inline

Computes the squared mahalanobis distance between a point and a Gaussian, given the covariance matrix and the vector with the difference between the mean and the point.

\[ d^2 = \Delta_\mu^\top \Sigma^{-1} \Delta_\mu \]

Definition at line 908 of file base/include/mrpt/math/utils.h.

References ASSERTDEB_, and mrpt::math::multiply_HCHt_scalar().

template<typename T , class VECLIKE , class MATRIXLIKE >
void mrpt::math::mahalanobisDistance2AndLogPDF ( const VECLIKE &  diff_mean,
const MATRIXLIKE &  cov,
T &  maha2_out,
T &  log_pdf_out 
)

Computes both, the logarithm of the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian.

See Also
productIntegralTwoGaussians, mahalanobisDistance2, normalPDF, mahalanobisDistance2AndPDF

Definition at line 1001 of file base/include/mrpt/math/utils.h.

References ASSERTDEB_, M_2PI, MRPT_END, MRPT_START, and mrpt::math::multiply_HCHt_scalar().

Referenced by mrpt::math::mahalanobisDistance2AndPDF().

template<typename T , class VECLIKE , class MATRIXLIKE >
void mrpt::math::mahalanobisDistance2AndPDF ( const VECLIKE &  diff_mean,
const MATRIXLIKE &  cov,
T &  maha2_out,
T &  pdf_out 
)
inline

Computes both, the PDF and the square Mahalanobis distance between a point (given by its difference wrt the mean) and a Gaussian.

See Also
productIntegralTwoGaussians, mahalanobisDistance2, normalPDF

Definition at line 1025 of file base/include/mrpt/math/utils.h.

References mrpt::math::mahalanobisDistance2AndLogPDF().

std::string BASE_IMPEXP mrpt::math::MATLAB_plotCovariance2D ( const CMatrixFloat &  cov22,
const vector_float &  mean,
const float &  stdCount,
const std::string &  style = std::string("b"),
const size_t &  nEllipsePoints = 30 
)

Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('float' version).

Parameters
cov22The 2x2 covariance matrix
meanThe 2-length vector with the mean
stdCountHow many "quantiles" to get into the area of the ellipse: 2: 95%, 3:99.97%,...
styleA matlab style string, for colors, line styles,...
nEllipsePointsThe number of points in the ellipse to generate
std::string BASE_IMPEXP mrpt::math::MATLAB_plotCovariance2D ( const CMatrixDouble &  cov22,
const vector_double &  mean,
const float &  stdCount,
const std::string &  style = std::string("b"),
const size_t &  nEllipsePoints = 30 
)

Generates a string with the MATLAB commands required to plot an confidence interval (ellipse) for a 2D Gaussian ('double' version).

Parameters
cov22The 2x2 covariance matrix
meanThe 2-length vector with the mean
stdCountHow many "quantiles" to get into the area of the ellipse: 2: 95%, 3:99.97%,...
styleA matlab style string, for colors, line styles,...
nEllipsePointsThe number of points in the ellipse to generate
template<class T >
double mrpt::math::noncentralChi2CDF ( unsigned int  degreesOfFreedom,
noncentrality,
arg 
)

Cumulative non-central chi square distribution (approximate).

            Computes approximate values of the cumulative density of a chi square distribution with \a degreesOfFreedom,
            and noncentrality parameter \a noncentrality at the given argument
            \a arg, i.e. the probability that a random number drawn from the distribution is below \a arg
            It uses the approximate transform into a normal distribution due to Wilson and Hilferty
            (see Abramovitz, Stegun: "Handbook of Mathematical Functions", formula 26.3.32).
            The algorithm's running time is independent of the inputs. The accuracy is only
            about 0.1 for few degrees of freedom, but reaches about 0.001 above dof = 5.
Note
Function code from the Vigra project (http://hci.iwr.uni-heidelberg.de/vigra/); code under "MIT X11 License", GNU GPL-compatible.

Definition at line 176 of file distributions.h.

References mrpt::math::erf(), mrpt::utils::square(), and t().

Referenced by mrpt::math::chi2CDF().

double BASE_IMPEXP mrpt::math::normalCDF ( double  p)

Evaluates the Gaussian cumulative density function.

The employed approximation is that from W. J. Cody freely available in http://www.netlib.org/specfun/erf

double BASE_IMPEXP mrpt::math::normalPDF ( double  x,
double  mu,
double  std 
)

Evaluates the univariate normal (Gaussian) distribution at a given point "x".

template<class VECTORLIKE1 , class VECTORLIKE2 , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::normalPDF ( const VECTORLIKE1 &  x,
const VECTORLIKE2 &  mu,
const MATRIXLIKE &  cov,
const bool  scaled_pdf = false 
)
inline

Evaluates the multivariate normal (Gaussian) distribution at a given point "x".

Parameters
xA vector or column or row matrix with the point at which to evaluate the pdf.
muA vector or column or row matrix with the Gaussian mean.
covThe covariance matrix of the Gaussian.
scaled_pdfIf set to true, the PDF will be scaled to be in the range [0,1], in contrast to its integral from [-inf,+inf] being 1.

Definition at line 85 of file distributions.h.

References mrpt::math::normalPDFInf().

template<typename VECTORLIKE , typename MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::normalPDF ( const VECTORLIKE &  d,
const MATRIXLIKE &  cov 
)

Evaluates the multivariate normal (Gaussian) distribution at a given point given its distance vector "d" from the Gaussian mean.

Definition at line 98 of file distributions.h.

References ASSERTDEB_, M_2PI, MRPT_END, MRPT_START, and mrpt::math::multiply_HCHt_scalar().

template<class VECTORLIKE1 , class VECTORLIKE2 , class MATRIXLIKE >
MATRIXLIKE::value_type mrpt::math::normalPDFInf ( const VECTORLIKE1 &  x,
const VECTORLIKE2 &  mu,
const MATRIXLIKE &  cov_inv,
const bool  scaled_pdf = false 
)
inline

Evaluates the multivariate normal (Gaussian) distribution at a given point "x".

Parameters
xA vector or column or row matrix with the point at which to evaluate the pdf.
muA vector or column or row matrix with the Gaussian mean.
cov_invThe inverse covariance (information) matrix of the Gaussian.
scaled_pdfIf set to true, the PDF will be scaled to be in the range [0,1], in contrast to its integral from [-inf,+inf] being 1.

Definition at line 62 of file distributions.h.

References ASSERTDEB_, M_2PI, MRPT_END, MRPT_START, mrpt::math::multiply_HCHt_scalar(), and mrpt::math::size().

Referenced by mrpt::math::normalPDF().

double BASE_IMPEXP mrpt::math::normalQuantile ( double  p)

Evaluates the Gaussian distribution quantile for the probability value p=[0,1].

The employed approximation is that from Peter J. Acklam (pjack.nosp@m.lam@.nosp@m.onlin.nosp@m.e.no), freely available in http://home.online.no/~pjacklam.

template<typename T , class VECLIKE , class MATLIKE1 , class MATLIKE2 >
void mrpt::math::productIntegralAndMahalanobisTwoGaussians ( const VECLIKE &  mean_diffs,
const MATLIKE1 &  COV1,
const MATLIKE2 &  COV2,
T &  maha2_out,
T &  intprod_out,
const MATLIKE1 *  CROSS_COV12 = NULL 
)

Computes both, the integral of the product of two Gaussians and their square Mahalanobis distance.

See Also
productIntegralTwoGaussians, mahalanobisDistance2

Definition at line 974 of file base/include/mrpt/math/utils.h.

References ASSERT_, and M_2PI.

template<typename T >
T mrpt::math::productIntegralTwoGaussians ( const std::vector< T > &  mean_diffs,
const CMatrixTemplateNumeric< T > &  COV1,
const CMatrixTemplateNumeric< T > &  COV2 
)

Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2".

\[ D = \frac{1}{(2 \pi)^{0.5 N} \sqrt{} } \exp( \Delta_\mu^\top (\Sigma_1 + \Sigma_2 - 2 \Sigma_12)^{-1} \Delta_\mu) \]

Definition at line 929 of file base/include/mrpt/math/utils.h.

References ASSERT_, and M_2PI.

template<typename T , size_t DIM>
T mrpt::math::productIntegralTwoGaussians ( const std::vector< T > &  mean_diffs,
const CMatrixFixedNumeric< T, DIM, DIM > &  COV1,
const CMatrixFixedNumeric< T, DIM, DIM > &  COV2 
)

Computes the integral of the product of two Gaussians, with means separated by "mean_diffs" and covariances "COV1" and "COV2".

\[ D = \frac{1}{(2 \pi)^{0.5 N} \sqrt{} } \exp( \Delta_\mu^\top (\Sigma_1 + \Sigma_2)^{-1} \Delta_\mu) \]

Definition at line 952 of file base/include/mrpt/math/utils.h.

References ASSERT_, M_2PI, and mrpt::math::UNINITIALIZED_MATRIX.




Page generated by Doxygen 1.8.3 for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013