0 | module Statistics.Distribution.Poisson
 1 |
 2 | import Statistics.Distribution.GSL
 3 |
 4 | ||| Sample from Geometric distribution
 5 | %foreign "C:gsl_ran_poisson,libgsl"
 6 | gsl_poisson_c : (seed : AnyPtr) -> (mu : Double) -> PrimIO Int
 7 |
 8 | export
 9 | gsl_poisson : (mu : Double) -> GslRng -> IO Nat
10 | gsl_poisson mu (MkGslRng seed) = primIO (gsl_poisson_c seed mu) >>= pure . cast
11 |
12 | ||| Compute PDF from Geometric distribution
13 | %foreign "C:gsl_ran_poisson_pdf,libgsl"
14 | gsl_poisson_pdf_c : (obs : Int) -> (p : Double) -> Double
15 |
16 | export
17 | gsl_poisson_pdf : (p : Double) -> (obs : Nat) -> Double
18 | gsl_poisson_pdf p y = gsl_poisson_pdf_c (cast y) p