44     class VECTORLIKE1, 
class MATLIKE1, 
class USERPARAM, 
class VECTORLIKE2,
    45     class VECTORLIKE3, 
class MATLIKE2>
    47     const VECTORLIKE1& x_mean, 
const MATLIKE1& x_cov,
    49         const VECTORLIKE1& x, 
const USERPARAM& fixed_param, VECTORLIKE3& y),
    50     const USERPARAM& fixed_param, VECTORLIKE2& y_mean, MATLIKE2& y_cov,
    51     const bool* elem_do_wrap2pi = 
nullptr, 
const double alpha = 1e-3,
    52     const double K = 0, 
const double beta = 2.0)
    55     const size_t Nx = x_mean.size();  
    56     const double lambda = alpha * alpha * (Nx + K) - Nx;
    57     const double c = Nx + lambda;
    60     const double Wi = 0.5 / c;
    61     std::vector<double> W_mean(1 + 2 * Nx, Wi), W_cov(1 + 2 * Nx, Wi);
    62     W_mean[0] = lambda / c;
    63     W_cov[0] = W_mean[0] + (1 - alpha * alpha + beta);
    67     const bool valid = x_cov.chol(L);
    69         throw std::runtime_error(
    70             "transform_gaussian_unscented: Singular covariance matrix in "    77     std::vector<VECTORLIKE3> Y(1 + 2 * Nx);  
    78     VECTORLIKE1 X = x_mean;
    79     functor(X, fixed_param, Y[0]);
    83     for (
size_t i = 0; i < Nx; i++)
    85         for (
size_t k = 0; k < Nx; k++) delta[k] = L(i, k);
    88         functor(X, fixed_param, Y[row++]);
    91         functor(X, fixed_param, Y[row++]);
    96         Y, y_cov, y_mean, &W_mean, &W_cov, elem_do_wrap2pi);
   112     class VECTORLIKE1, 
class MATLIKE1, 
class USERPARAM, 
class VECTORLIKE2,
   113     class VECTORLIKE3, 
class MATLIKE2>
   115     const VECTORLIKE1& x_mean, 
const MATLIKE1& x_cov,
   117         const VECTORLIKE1& x, 
const USERPARAM& fixed_param, VECTORLIKE3& y),
   118     const USERPARAM& fixed_param, VECTORLIKE2& y_mean, MATLIKE2& y_cov,
   119     const size_t num_samples = 1000,
   120     std::vector<VECTORLIKE3>* out_samples_y = 
nullptr)
   123     std::vector<VECTORLIKE1> samples_x;
   125         samples_x, num_samples, x_cov, &x_mean);
   126     std::vector<VECTORLIKE3> samples_y(num_samples);
   127     for (
size_t i = 0; i < num_samples; i++)
   128         functor(samples_x[i], fixed_param, samples_y[i]);
   132         out_samples_y->clear();
   133         samples_y.swap(*out_samples_y);
   150     class VECTORLIKE1, 
class MATLIKE1, 
class USERPARAM, 
class VECTORLIKE2,
   151     class VECTORLIKE3, 
class MATLIKE2>
   153     const VECTORLIKE1& x_mean, 
const MATLIKE1& x_cov,
   155         const VECTORLIKE1& x, 
const USERPARAM& fixed_param, VECTORLIKE3& y),
   156     const USERPARAM& fixed_param, VECTORLIKE2& y_mean, MATLIKE2& y_cov,
   157     const VECTORLIKE1& x_increments)
   161     functor(x_mean, fixed_param, y_mean);
   164         double, VECTORLIKE3::RowsAtCompileTime, VECTORLIKE1::RowsAtCompileTime>
   169             const VECTORLIKE1& x, 
const USERPARAM& fixed_param,
   170             VECTORLIKE3& y)>(functor),
   171         x_increments, fixed_param, H);
 A compile-time fixed-size numeric matrix container. 
 
This file implements miscelaneous matrix and matrix/vector operations, and internal functions in mrpt...
 
This base provides a set of functions for maths stuff. 
 
void covariancesAndMean(const VECTOR_OF_VECTORS &elements, MATRIXLIKE &covariances, VECTORLIKE &means, const bool *elem_do_wrap2pi=nullptr)
Computes covariances and mean of any vector of containers. 
 
void drawGaussianMultivariateMany(VECTOR_OF_VECTORS &ret, size_t desiredSamples, const COVMATRIX &cov, const typename VECTOR_OF_VECTORS::value_type *mean=nullptr)
Generate a given number of multidimensional random samples according to a given covariance matrix...
 
void estimateJacobian(const VECTORLIKE &x, const std::function< void(const VECTORLIKE &x, const USERPARAM &y, VECTORLIKE3 &out)> &functor, const VECTORLIKE2 &increments, const USERPARAM &userParam, MATRIXLIKE &out_Jacobian)
Estimate the Jacobian of a multi-dimensional function around a point "x", using finite differences of...
 
void covariancesAndMeanWeighted(const VECTOR_OF_VECTORS &elements, MATRIXLIKE &covariances, VECTORLIKE &means, const VECTORLIKE2 *weights_mean, const VECTORLIKE3 *weights_cov, const bool *elem_do_wrap2pi=nullptr)
Computes covariances and mean of any vector of containers, given optional weights for the different s...
 
CRandomGenerator & getRandomGenerator()
A static instance of a CRandomGenerator class, for use in single-thread applications. 
 
void multiply_HCHt(const MAT_H &H, const MAT_C &C, MAT_R &R, bool accumResultInOutput=false)
R = H * C * H^t.