Lanczos Approximation - Simple Implementation

Simple Implementation

The following implementation in the Python programming language works for complex arguments and typically gives 15 correct decimal places:

from cmath import * # Coefficients used by the GNU Scientific Library g = 7 p = [0.99999999999980993, 676.5203681218851, -1259.1392167224028, 771.32342877765313, -176.61502916214059, 12.507343278686905, -0.13857109526572012, 9.9843695780195716e-6, 1.5056327351493116e-7] def gamma(z): z = complex(z) # Reflection formula if z.real < 0.5: return pi / (sin(pi*z)*gamma(1-z)) else: z -= 1 x = p for i in range(1, g+2): x += p/(z+i) t = z + g + 0.5 return sqrt(2*pi) * t**(z+0.5) * exp(-t) * x

Read more about this topic:  Lanczos Approximation

Famous quotes containing the word simple:

    He prayed more deeply for simple selflessness than he had ever prayed before—and, feeling an uprush of grace in the very intention, shed the night in his heart and called it light. And walking out of the little church he felt confirmed in not only the worth of his whispered prayer but in the realization, as well, that Christ had become man and not some bell-shaped Corinthian column with volutes for veins and a mandala of stone foliage for a heart.
    Alexander Theroux (b. 1940)