From 3c212163ec5fadeabf4070c2b2e22bd85e2d2aa0 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sat, 19 Jul 2008 00:42:03 +0000 Subject: [PATCH] Improve accuracy of gamma test function --- Lib/test/test_random.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index 07e12d3129..8ad701b448 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -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): -- 2.40.0