From 501da88365c15c9d955e664925e8c956b0e61ebe Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Mon, 26 Nov 2012 13:36:04 +0100 Subject: [PATCH] Examples: F# distributions --- src/FSharpExamples/RandomAndDistributions.fs | 24 +++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/FSharpExamples/RandomAndDistributions.fs b/src/FSharpExamples/RandomAndDistributions.fs index cec6a7f5..31cdb59f 100644 --- a/src/FSharpExamples/RandomAndDistributions.fs +++ b/src/FSharpExamples/RandomAndDistributions.fs @@ -74,4 +74,26 @@ let discrete = [ poisson.Sample() poisson.Sample() geometric.Sample() - ] \ No newline at end of file + ] + +// direct sampling (without creating a configurable distribution object) +let u = Normal.Sample(Random.system(), 2.0, 4.0) +let v = Laplace.Samples(Random.mersenneTwister(), 1.0, 3.0) |> Seq.take 100 |> List.ofSeq +let w = Rayleigh.Sample(c, 1.5) +let x = Hypergeometric.Sample(h, 100, 20, 5) + +// probability distribution functions of the normal dist we configured above +let nd = normal.Density(4.0) (* pdf *) +let ndLn = normal.DensityLn(4.0) (* ln(pdf) *) +let nc = normal.CumulativeDistribution(4.0) (* cdf *) +let nic = normal.InverseCumulativeDistribution(0.7) (* invcdf *) + +// distribution properties of the gamma dist we configured above +let gammaStats = ( + gamma.Mean, + gamma.Variance, + gamma.StdDev, + gamma.Entropy, + gamma.Skewness, + gamma.Mode + )