multivariateNormalVariable

Multivariate normal distribution. Beta version (has not properly tested).

  1. auto multivariateNormalVar(M mu, S sigma, bool chol)
  2. alias multivariateNormalVariable = multivariateNormalVar
    alias multivariateNormalVariable = multivariateNormalVar

Examples

// mir.ndslice package is required for 'multivariateNormalVar', it can be found in 'mir-algorithm'
static if (is(typeof({ import mir.ndslice.slice; })))
{
    import mir.random.engine;
    import mir.ndslice.slice: sliced;
    auto mu = [10.0, 0.0].sliced;
    auto sigma = [2.0, -1.5, -1.5, 2.0].sliced(2,2);
    auto rv = multivariateNormalVar(mu, sigma);
    double[2] x;
    rv(rne, x[]);
}
// mir.ndslice package is required for 'multivariateNormalVar', it can be found in 'mir-algorithm'
static if (is(typeof({ import mir.ndslice.slice; })))
{
    import mir.ndslice.slice: sliced;
    import mir.random.engine;

    Random* gen = threadLocalPtr!Random;
    auto mu = [10.0, 0.0].sliced;
    auto sigma = [2.0, -1.5, -1.5, 2.0].sliced(2,2);
    auto rv = multivariateNormalVar(mu, sigma);
    double[2] x;
    rv(gen, x[]);
}

Meta