random-variates-0.1.0.0: src/Stochastic/Binomial.hs
module Stochastic.Binomial(Binomial, mkBinomial) where
import Stochastic.Distribution
import Stochastic.Bernoulli
import Helpers
data Binomial = Binomial Int Bernoulli
mkBinomial :: Bernoulli -> Int -> Binomial
mkBinomial base n = Binomial n base
instance DiscreteDistribution Binomial where
randIntIn (a, b) (Binomial n g0) =
mapTuple
(\xs -> (a - 1) + (sum xs))
(Binomial n)
(randInts (b - a + 1) g0)
randInt (Binomial n g0) = randIntIn (0, n) (Binomial n g0)
toDbl = fromInteger . toInteger