dirichletVar

Dirichlet distribution.

  1. struct DirichletVariable(T)
  2. DirichletVariable!T dirichletVar(T[] alpha)
    dirichletVar
    (
    T
    )
    (
    in T[] alpha
    )
    if (
    isFloatingPoint!T
    )
  3. alias dirichletVariable = dirichletVar

Examples

import mir.random.engine;
import mir.math.common: fabs;

auto rv = dirichletVar([1.0, 5.7, 0.3]);
double[3] x;
rv(rne, x);
assert(x[0] >= 0 && x[1] >= 0 && x[2] >= 0);
assert(fabs(x[0] + x[1] + x[2] - 1) < 1e-10);
import mir.random.engine;
import mir.math.common: fabs;

Random* gen = threadLocalPtr!Random;
auto rv = DirichletVariable!double([1.0, 5.7, 0.3]);
double[3] x;
rv(gen, x);
assert(x[0] >= 0 && x[1] >= 0 && x[2] >= 0);
assert(fabs(x[0] + x[1] + x[2] - 1) < 1e-10);

Meta