Arduino library for sampling from and evaluating points in a multivariate normal distribution
Example initialization:
Vector2d mean;
mean << 0,
0;
Matrix2d covar;
covar << 10, 0,
0, 1;
EigenMultivariateNormal<double, 2> 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