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:

    What have Massachusetts and the North sent a few sane representatives to Congress for, of late years?... All their speeches put together and boiled down ... do not match for manly directness and force, and for simple truth, the few casual remarks of crazy John Brown on the floor of the Harper’s Ferry engine-house,—that man whom you are about to hang, to send to the other world, though not to represent you there.
    Henry David Thoreau (1817–1862)