0 | module Statistics.Distribution.Normal
2 | import Statistics.Distribution.GSL
6 | %foreign "C:gsl_ran_gaussian,libgsl"
7 | gsl_normal_c : (seed : AnyPtr) -> (std : Double) -> PrimIO Double
10 | gsl_normal : (mu : Double) -> (std : Double) -> GslRng -> IO Double
11 | gsl_normal mu std (MkGslRng seed) = primIO (gsl_normal_c seed std) >>= pure . (+ mu)
14 | %foreign "C:gsl_ran_gaussian_pdf,libgsl"
15 | gsl_normal_pdf_c : (obs_around_zero : Double) -> (std : Double) -> Double
18 | gsl_normal_pdf : (mu : Double) -> (std : Double) -> (obs : Double) -> Double
19 | gsl_normal_pdf mu std y = gsl_normal_pdf_c (y - mu) std
22 | %foreign "C:gsl_cdf_gaussian_Pinv,libgsl"
23 | gsl_normal_cdf_inv_c : (r : Double) -> (std : Double) -> Double
26 | gsl_normal_cdf_inv : (mu : Double) -> (std : Double) -> (r : Double) -> Double
27 | gsl_normal_cdf_inv mu std r = mu + gsl_normal_cdf_inv_c r std