0 | module Statistics.Distribution.Hypergeometric
2 | import Statistics.Distribution.GSL
5 | %foreign "C:gsl_ran_hypergeometric,libgsl"
6 | gsl_hypergeometric_c : (seed : AnyPtr) -> (n1 : Int) -> (n2 : Int) -> (t : Int) -> PrimIO Int
9 | gsl_hypergeometric : (n1 : Nat) -> (n2 : Nat) -> (t : Nat) -> GslRng -> IO Nat
10 | gsl_hypergeometric n1 n2 t (MkGslRng seed) = primIO (gsl_hypergeometric_c seed (cast n1) (cast n2) (cast t)) >>= pure . cast
13 | %foreign "C:gsl_ran_hypergeometric_pdf,libgsl"
14 | gsl_hypergeometric_pdf_c : (obs : Int) -> (n1 : Int) -> (n2 : Int) -> (t : Int) -> Double
17 | gsl_hypergeometric_pdf : (n1 : Nat) -> (n2 : Nat) -> (t : Nat) -> (k : Nat) -> Double
18 | gsl_hypergeometric_pdf n1 n2 t k = gsl_hypergeometric_pdf_c (cast k) (cast n1) (cast n2) (cast t)