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