Gauss-Legendre Algorithm

Gauss-Legendre algorithm

1. Initial value setting;

    a = 1    b = 1 / SqRt(2)    t = 1/4    x = 1

2. Repeat the following statements until the difference of a and b is within the desired accuracy;

    y = a

    a = (a+b) / 2

    b = SqRt(b*y)

    t = t - x * (y-a)^2

    x = 2 * x

3. Pi is approximated with a, b and t as;

    Pi = ((a+b)^2) / (4*t)

The algorithm has second order convergent nature. Then if you want to calculate up to n digits, iteration count of the order log2 n is sufficient. E.g. 19 times for 1 million decimal digits, 31 times for 3.2 billon decimal digits.

Note: The text is from the program SuperPi.Exe. The equations were converted to standard character set by Harry Smith.

Return to Computing Pi
Return to Harry's Home Page