Hi, I just wanted to mention that I have just published 
[Alea](https://github.com/unicredit/alea), a library to work with random 
variables.

It is still in a pretty early stage, and some things may not work very well, 
but this is an example of use:
    
    
    import alea, future
    import random/urandom, random/mersenne
    
    type Coin = enum Head, Tails
    
    proc asInt(x: float): int = x.int
    
    lift(asInt)
    
    var rng = wrap(initMersenneTwister(urandom(16)))
    let
      p = poisson(20).asInt.filter((x: int) => x mod 2 == 0)
      g = gaussian(mu = 3, sigma = 12).where(p, (t: int) => t > 6)
      coin = choose(@[Head, Tails])
    
    echo rng.stddev(g)
    echo rng.sample(coin)
    

Reply via email to