MRPT  1.9.9
Gaussian PDF transformation functions

## Detailed Description

Collaboration diagram for Gaussian PDF transformation functions:


This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.

## 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=nullptr, 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, std::vector< VECTORLIKE3 > *out_samples_y=nullptr)
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...

## ◆ 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".

The example in MRPT/samples/unscented_transform_test
transform_gaussian_unscented, transform_gaussian_montecarlo
Note
This function requires `#include <Eigen/Dense>`

Definition at line 152 of file transform_gaussian.h.

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ 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`, std::vector< VECTORLIKE3 > * out_samples_y = `nullptr` )

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_y If !=nullptr, this vector will contain, upon return, the sequence of random samples generated and propagated through the functor().
The example in MRPT/samples/unscented_transform_test
transform_gaussian_unscented, transform_gaussian_linear

Definition at line 114 of file transform_gaussian.h.

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ 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 = `nullptr`, 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_wrap2pi If !=nullptr; 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.