The Chudnovsky algorithm is a fast method for calculating the digits of
, based on
Ramanujan’s
formulae. It was published by the
Chudnovsky brothers
David Volfovich Chudnovsky (born January 22, 1947 in Kyiv) and Gregory Volfovich Chudnovsky (born April 17, 1952 in Kyiv) are Ukrainian-born American mathematicians and engineers known for their world-record mathematical calculations and developing ...
in 1988.
It was used in the
world record
A world record is usually the best global and most important performance that is ever recorded and officially verified in a specific skill, sport, or other kind of activity. The book '' Guinness World Records'' and other world records organizati ...
calculations of 2.7 trillion digits of in December 2009,
10 trillion digits in October 2011, 22.4 trillion digits in November 2016, 31.4 trillion digits in September 2018–January 2019, 50 trillion digits on January 29, 2020, 62.8 trillion digits on August 14, 2021, and 100 trillion digits on March 21, 2022.
Algorithm
The algorithm is based on the negated
Heegner number In number theory, a Heegner number (as termed by Conway and Guy) is a square-free positive integer ''d'' such that the imaginary quadratic field \Q\left sqrt\right/math> has class number 1. Equivalently, its ring of integers has unique factoriz ...
, the
''j''-function , and on the following rapidly convergent
generalized hypergeometric series
In mathematics, a generalized hypergeometric series is a power series in which the ratio of successive coefficients indexed by ''n'' is a rational function of ''n''. The series, if convergent, defines a generalized hypergeometric function, whic ...
:
:
A detailed proof of this formula can be found here:
For a high performance iterative implementation, this can be simplified to
:
There are 3 big integer terms (the multinomial term ''M
q'', the linear term ''L
q'', and the exponential term ''X
q'') that make up the series and
equals the constant ''C'' divided by the sum of the series, as below:
:
, where:
:
,
:
,
:
,
:
.
The terms ''M
q'', ''L
q'', and ''X
q'' satisfy the following recurrences and can be computed as such:
:
The computation of ''M
q'' can be further optimized by introducing an additional term ''K
q'' as follows:
:
Note that
:
and
:
:
:
This identity is similar to some of
Ramanujan's formulas involving ,
and is an example of a
Ramanujan–Sato series.
The
time complexity
In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
of the algorithm is
.
See also
*
Borwein's algorithm
*
Numerical approximations of
*
Ramanujan–Sato series
References
{{reflist
Pi algorithms