The computation of has a long and colourful history (at least by mathematical standards), and has been much studied. The method chosen to implement an algorithm here is to use some identities due to the the mathematician John Machin in 1706. A fuller discussion of approaches to computing is available in [2].

Perhaps the simplest identity (by James Gregory and Gottfried Wilhelm Leibniz ) is:

However this identity is impractical because the sequence for arctan
converges far too slowly with *x*=1 to be of value. Over 300 terms of
the expansion of given in section 5.4.1 would be
required for two decimal places, and to achieve 100 correct digits
would require a massive 10^{50} terms.

Machin's variation uses the tan double angle angle formula

to derive

There are other similar identities. The one used in this implementation is:

These identities give a much faster of convergence because the sequence which approximates is generated with inputs much closer to zero.

These identities are not the most effective method of computing .In fact more recent approaches allow the computation of an arbitrary hexadecimal digit of without any computation of the preceding digits.