dsp-0.1: Numeric/Random/Distribution/Binomial.hs
-----------------------------------------------------------------------------
-- |
-- Module : Numeric.Random.Distribution.Binomial
-- Copyright : (c) Matthew Donadio 2003
-- License : GPL
--
-- Maintainer : m.p.donadio@ieee.org
-- Stability : experimental
-- Portability : portable
--
-- UNTESTED
--
-- Module for transforming a list of uniform random variables into a
-- list of binomial random variables.
--
-- Reference: Ross
--
----------------------------------------------------------------------------
module Numeric.Random.Distribution.Binomial (binomial) where
-- * Functions
-- | Generates a list of binomial random variables from a list
-- of uniforms
binomial :: Int -- ^ n
-> Double -- ^ p
-> [Double] -- ^ U
-> [Double] -- ^ X
binomial n p us = sum xi : binomial n p (drop n us)
where xi = map (\u -> if u < p then 1 else 0) (take n us)