Arduino library for sampling from a multivariate normal distribution
Example initialization:
Vector2d mean;
mean << 0,
0;
Matrix2d covar;
covar << 10, 0,
0, 1;
EigenMultivariateNormal<double> multVNorm(mean, covar);
To take N number of samples from the distribution (Note that the distribution has M number of dimensions):
Matrix<double, N, M> samples = multVNorm.samples(N).transpose();
To evaluate the probability of a given vector against the distribution:
double prob = multVNorm.eval(vector);
https://github.com/beniz/eigenmvn https://stackoverflow.com/a/41548972/9860973