Python speed vs csharp

David M. Cooke cookedm+news at physics.mcmaster.ca
Fri Aug 1 16:14:47 EDT 2003


At some point, Mike <mike at nospam.com> wrote:
[...]
> # Rational approximation for erfc(x) (Abramowitz & Stegun, Sec. 7.1.26)
> # Fifth order approximation. |error| <= 1.5e-7 for all x
> #
> def erfc( x ):
>    p  =  0.3275911
>    a1 =  0.254829592
>    a2 = -0.284496736
>    a3 =  1.421413741
>    a4 = -1.453152027
>    a5 =  1.061405429
>
>    t = 1.0 / (1.0 + p*float(x))
>    erfcx = ( (a1 + (a2 + (a3 +
>              (a4 + a5*t)*t)*t)*t)*t ) * math.exp(-(x**2))
>    return erfcx

Since no else has mentioned this, and it's not in the comments: the
above code is no good for x < 0 (erfc(-3)=84337, for instance). You'll
need a check for x < 0, and if so, use the identity
erfc(x) = 2 - erfc(-x). That'll slow you down a tad again :)

-- 
|>|\/|<
/--------------------------------------------------------------------------\
|David M. Cooke
|cookedm(at)physics(dot)mcmaster(dot)ca




More information about the Python-list mailing list