https://github.com/powerbroker2/multivariatenormal
Arduino library for sampling from a multivariate normal distribution
https://github.com/powerbroker2/multivariatenormal
Last synced: 6 months ago
JSON representation
Arduino library for sampling from a multivariate normal distribution
- Host: GitHub
- URL: https://github.com/powerbroker2/multivariatenormal
- Owner: PowerBroker2
- License: lgpl-3.0
- Created: 2022-04-24T21:18:39.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-06T00:32:39.000Z (about 4 years ago)
- Last Synced: 2025-01-16T11:27:02.525Z (over 1 year ago)
- Language: C++
- Size: 19.5 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MultivariateNormal
[](https://badge.fury.io/gh/PowerBroker2%2FMultivariateNormal) [](https://www.ardu-badge.com/MultivariateNormal)
Arduino library for sampling from and evaluating points in a multivariate normal distribution
# API:
Example initialization:
```C++
Vector2d mean;
mean << 0,
0;
Matrix2d covar;
covar << 10, 0,
0, 1;
EigenMultivariateNormal multVNorm(mean, covar);
```
To take N number of samples from the distribution (Note that the distribution has M number of dimensions):
```C++
Matrix samples = multVNorm.samples(N).transpose();
```
To evaluate the probability of a given vector against the distribution:
```C++
double prob = multVNorm.eval(vector);
```
# Credit:
[https://github.com/beniz/eigenmvn](https://github.com/beniz/eigenmvn)
[https://stackoverflow.com/a/41548972/9860973](https://stackoverflow.com/a/41548972/9860973)