From e4e41574641d74a7f9efc36d96bdcdf041e8d5ec Mon Sep 17 00:00:00 2001 From: Forrest Voight Date: Mon, 23 Jan 2012 23:42:35 -0500 Subject: [PATCH] separated root finder in util.math --- p2pool/util/math.py | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/p2pool/util/math.py b/p2pool/util/math.py index 745f0ca..5b6aba7 100644 --- a/p2pool/util/math.py +++ b/p2pool/util/math.py @@ -95,13 +95,16 @@ def erf(x): y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*math.exp(-x*x) return sign*y # erf(-x) = -erf(x) -def ierf(z, steps=10): +def find_root(f, fp, start, steps=10): guess = 0 for i in xrange(steps): - d = 2*math.e**(-guess**2)/math.sqrt(math.pi) - guess = guess - (erf(guess) - z)/d + d = fp(guess) + guess = guess - f(guess)/d return guess +def ierf(z): + return find_root(lambda x: erf(x) - z, lambda guess: 2*math.e**(-guess**2)/math.sqrt(math.pi), 0) + try: from scipy import special except ImportError: -- 1.7.1