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:

    The threadbare trees, so poor and thin,
    They are no wealthier than I;
    But with as brave a core within
    They rear their boughs to the October sky.
    Poor knights they are which bravely wait
    The charge of Winter’s cavalry,
    Keeping a simple Roman state,
    Discumbered of their Persian luxury.
    Henry David Thoreau (1817–1862)