]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Improve accuracy of gamma test function
authorRaymond Hettinger <python@rcn.com>
Sat, 19 Jul 2008 00:42:03 +0000 (00:42 +0000)
committerRaymond Hettinger <python@rcn.com>
Sat, 19 Jul 2008 00:42:03 +0000 (00:42 +0000)
Lib/test/test_random.py

index 07e12d312964924d48eac3bdbaf5e1801c4b8599..8ad701b448dc3625752da3b4666b72300164f771 100644 (file)
@@ -5,7 +5,7 @@ import random
 import time
 import pickle
 import warnings
-from math import log, exp, sqrt, pi
+from math import log, exp, sqrt, pi, sum as msum
 from test import test_support
 
 class TestBasicOps(unittest.TestCase):
@@ -465,11 +465,9 @@ _gammacoeff = (0.9999999999995183, 676.5203681218835, -1259.139216722289,
 
 def gamma(z, cof=_gammacoeff, g=7):
     z -= 1.0
-    sum = cof[0]
-    for i in xrange(1,len(cof)):
-        sum += cof[i] / (z+i)
+    s = msum([cof[0]] + [cof[i] / (z+i) for i in range(1,len(cof))])
     z += 0.5
-    return (z+g)**z / exp(z+g) * sqrt(2*pi) * sum
+    return (z+g)**z / exp(z+g) * sqrt(2.0*pi) * s
 
 class TestDistributions(unittest.TestCase):
     def test_zeroinputs(self):