From 3ab191f97cae7e85d6a5d5eb19ad0f26673ed036 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Sun, 25 Nov 2012 02:02:10 +0100 Subject: [PATCH] Distributions: fix geometric sampling #31 --- src/Numerics/Distributions/Discrete/Geometric.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Numerics/Distributions/Discrete/Geometric.cs b/src/Numerics/Distributions/Discrete/Geometric.cs index c880a785..93b67cac 100644 --- a/src/Numerics/Distributions/Discrete/Geometric.cs +++ b/src/Numerics/Distributions/Discrete/Geometric.cs @@ -324,7 +324,7 @@ namespace MathNet.Numerics.Distributions /// private static int DoSample(Random rnd, double p) { - return (int)Math.Ceiling(-Math.Log(rnd.NextDouble()) / p); + return p == 1.0 ? 1 : (int)Math.Ceiling(-Math.Log(1.0 - rnd.NextDouble(), 1.0 - p)); } } }