poissonVar

$(WIKI_D Poisson).

  1. struct PoissonVariable(T)
  2. PoissonVariable!T poissonVar(T rate)
    poissonVar
    (
    T = double
    )
    (
    in T rate = 1.0
    )
    if (
    isFloatingPoint!T
    )
  3. alias poissonVariable = poissonVar

Examples

import mir.random;
auto rv = poissonVar;
static assert(isRandomVariable!(typeof(rv)));
size_t[ulong] hist;
foreach(_; 0..1000)
    hist[rv(rne)]++;
//import std.stdio;
//foreach(i; 0..100)
//    if(auto count = i in hist)
//        write(*count, ", ");
//    else
//        write("0, ");
//writeln();
import mir.random.engine;
Random* gen = threadLocalPtr!Random;
auto rv = PoissonVariable!double(10);
size_t[ulong] hist;
foreach(_; 0..10)
    hist[rv(gen)]++;

Meta