Main MRPT website > C++ reference for MRPT 1.5.7
Functions
Gaussian PDF transformation functions

Detailed Description

Collaboration diagram for Gaussian PDF transformation functions:

Functions

template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 >
void mrpt::math::transform_gaussian_unscented (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const bool *elem_do_wrap2pi=NULL, const double alpha=1e-3, const double K=0, const double beta=2.0)
 Scaled unscented transformation (SUT) for estimating the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More...
 
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 >
void mrpt::math::transform_gaussian_montecarlo (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const size_t num_samples=1000, typename mrpt::aligned_containers< VECTORLIKE3 >::vector_t *out_samples_y=NULL)
 Simple Montecarlo-base estimation of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More...
 
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 >
void mrpt::math::transform_gaussian_linear (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const VECTORLIKE1 &x_increments)
 First order uncertainty propagation estimator of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More...
 

Function Documentation

◆ transform_gaussian_linear()

template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 >
void mrpt::math::transform_gaussian_linear ( const VECTORLIKE1 &  x_mean,
const MATLIKE1 &  x_cov,
void(*)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y functor,
const USERPARAM &  fixed_param,
VECTORLIKE2 &  y_mean,
MATLIKE2 &  y_cov,
const VECTORLIKE1 &  x_increments 
)

First order uncertainty propagation estimator of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user.

The user must supply the function in "functor" which takes points in the X space and returns the mapped point in Y, optionally using an extra, constant parameter ("fixed_param") which remains constant. The Jacobians are estimated numerically using the vector of small increments "x_increments".

See also
The example in MRPT/samples/unscented_transform_test
transform_gaussian_unscented, transform_gaussian_montecarlo

Definition at line 127 of file transform_gaussian.h.

References mrpt::math::jacobians::jacob_numeric_estimate(), MRPT_END, and MRPT_START.

Referenced by Pose3DQuatPDFGaussTests::testInverse(), Pose3DPDFGaussTests::testPoseComposition(), Pose3DQuatPDFGaussTests::testPoseComposition(), PosePDFGaussTests::testPoseInverse(), Pose3DPDFGaussTests::testPoseInverseComposition(), and Pose3DQuatPDFGaussTests::testPoseInverseComposition().

◆ transform_gaussian_montecarlo()

template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 >
void mrpt::math::transform_gaussian_montecarlo ( const VECTORLIKE1 &  x_mean,
const MATLIKE1 &  x_cov,
void(*)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y functor,
const USERPARAM &  fixed_param,
VECTORLIKE2 &  y_mean,
MATLIKE2 &  y_cov,
const size_t  num_samples = 1000,
typename mrpt::aligned_containers< VECTORLIKE3 >::vector_t *  out_samples_y = NULL 
)

Simple Montecarlo-base estimation of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user.

The user must supply the function in "functor" which takes points in the X space and returns the mapped point in Y, optionally using an extra, constant parameter ("fixed_param") which remains constant.

Parameters
out_samples_yIf !=NULL, this vector will contain, upon return, the sequence of random samples generated and propagated through the functor().
See also
The example in MRPT/samples/unscented_transform_test
transform_gaussian_unscented, transform_gaussian_linear

Definition at line 98 of file transform_gaussian.h.

References mrpt::math::covariancesAndMean(), mrpt::random::CRandomGenerator::drawGaussianMultivariateMany(), MRPT_END, MRPT_START, and mrpt::random::randomGenerator.

Referenced by mrpt::maps::COccupancyGridMap2D::laserScanSimulatorWithUncertainty().

◆ transform_gaussian_unscented()

template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 >
void mrpt::math::transform_gaussian_unscented ( const VECTORLIKE1 &  x_mean,
const MATLIKE1 &  x_cov,
void(*)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y functor,
const USERPARAM &  fixed_param,
VECTORLIKE2 &  y_mean,
MATLIKE2 &  y_cov,
const bool *  elem_do_wrap2pi = NULL,
const double  alpha = 1e-3,
const double  K = 0,
const double  beta = 2.0 
)

Scaled unscented transformation (SUT) for estimating the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user.

The user must supply the function in "functor" which takes points in the X space and returns the mapped point in Y, optionally using an extra, constant parameter ("fixed_param") which remains constant.

The parameters alpha, K and beta are the common names of the SUT method, and the default values are those recommended in most papers.

Parameters
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
The example in MRPT/samples/unscented_transform_test
transform_gaussian_montecarlo, transform_gaussian_linear

Definition at line 39 of file transform_gaussian.h.

References mrpt::math::covariancesAndMeanWeighted(), MRPT_END, and MRPT_START.

Referenced by mrpt::poses::CPose3DQuatPDFGaussian::copyFrom(), mrpt::poses::CPose3DPDFGaussian::copyFrom(), and mrpt::maps::COccupancyGridMap2D::laserScanSimulatorWithUncertainty().




Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019