[gnumeric] RANGLOG: Fix.



commit c461ad89e4f40dcfdad107466a64b427da5267c1
Author: Morten Welinder <terra gnome org>
Date:   Fri Mar 20 07:38:28 2015 -0400

    RANGLOG: Fix.
    
    A sign got flipped in the middle of the formula about 14 years ago.

 ChangeLog        |    4 ++++
 NEWS             |    3 ++-
 src/gnm-random.c |    2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index ee1ed9e..79d3f2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-20  Morten Welinder  <terra gnome org>
+
+       * src/gnm-random.c (random_logarithmic): Fix.  See #746449.
+
 2015-03-19  Morten Welinder  <terra gnome org>
 
        * src/func.c (dump_samples): New function to dump all sample in
diff --git a/NEWS b/NEWS
index c2176ee..a31d6a7 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,8 @@ Morten:
        * Actually implement DECIMAL.
        * Fix BETA problem with special case.
        * Fix MIDB and REPLACEB length check.
-       * Fix PERMUATIONA.
+       * Fix PERMUATIONA corner case.
+       * Fix RANDLOG.
 
 --------------------------------------------------------------------------
 Gnumeric 1.12.21
diff --git a/src/gnm-random.c b/src/gnm-random.c
index 0e9de1a..6ea42d0 100644
--- a/src/gnm-random.c
+++ b/src/gnm-random.c
@@ -830,7 +830,7 @@ random_logarithmic (gnm_float p)
                do {
                        u = random_01 ();
                } while (u == 0);
-               q = gnm_expm1 (c * u);
+               q = -gnm_expm1 (c * u);
 
                if (v <= q * q)
                        return gnm_floor (1 + gnm_log (v) / gnm_log (q));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]