0 | module Statistics.Distribution.Binomial
 1 |
 2 | import Statistics.Distribution.GSL
 3 |
 4 | ||| Sample from Binomial distribution
 5 | %foreign "C:gsl_ran_binomial, libgsl"
 6 | gsl_binomial_c : (seed : AnyPtr) -> (p : Double) -> (n : Int) -> PrimIO Int
 7 |
 8 | export
 9 | gsl_binomial : (n : Nat) -> (p : Double) -> GslRng -> IO Nat
10 | gsl_binomial n p (MkGslRng seed) = primIO (gsl_binomial_c seed p (cast n)) >>= pure . cast
11 |
12 | ||| Compute PDF from Binomial distribution
13 | %foreign "C:gsl_ran_binomial_pdf,libgsl"
14 | gsl_binomial_pdf_c : (obs : Int) -> (p : Double) -> (n : Int) -> Double
15 |
16 | export
17 | gsl_binomial_pdf : (n : Nat) -> (p : Double) -> (obs : Nat) -> Double
18 | gsl_binomial_pdf n p y = gsl_binomial_pdf_c (cast y) p (cast n)