bpp | R Documentation |
THe BPP algorithm consists of a double summation over specified fractions. Rather than go into the gory details here, please refer to the link in the References section.
bpp(k,pdat = c(1,16,8,4,0,0,-2,-1,-1,0,0), init = 0, chunk = 1e4,...)
k |
The number of terms in the series to calculate. Note that zero is a valid entry. If a single value, the terms |
pdat |
The parameter |
init |
If there's a previous value calculated with |
chunk |
There is a call to |
... |
Optional arguments to pass to |
The BPP algorithm calculates the sum(K=0,k, 1/(b^K) * FracSum) , where FracSum is defined by the sum(M=1,m, A[M]/(m*K + M)^s) .
This means that the number of elements of A
must equal m
. Zero values are legal and are used to reject fractions not wanted in the inner sum.
The default values for pdat
correspond to the coefficients used to generate pi (the sum to infinity is mathematically equal to pi).
Other values have been found to calculate a few other irrationals but there is as yet no known procedure to generate the pdat
set for any given number.
A list containing bppgmp
, the gmp
fraction calculated; bppval
, the mpfr
decimal representation of said fraction; and kvals
, echoing the input k
.
Carl Witthoft, carl@witthoft.com
https://en.wikipedia.org/wiki/Bailey-Borwein-Plouffe_formula and references cited there.
# Compare the decimal outputs to the first 130 digits of pi, which are:
# [1] 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4
# [26] 3 3 8 3 2 7 9 5 0 2 8 8 4 1 9 7 1 6 9 3 9 9 3 7 5
# [51] 1 0 5 8 2 0 9 7 4 9 4 4 5 9 2 3 0 7 8 1 6 4 0 6 2
# [76] 8 6 2 0 8 9 9 8 6 2 8 0 3 4 8 2 5 3 4 2 1 1 7 0 6
# [101] 7 9 8 2 1 4 8 0 8 6 5 1 3 2 8 2 3 0 6 6 4 7 0 9 3
# [126] 8 4 4 6 0
# Lots of precision, but most of the digits are inaccurate.
(bpp(5))
# extend the series.
(bpp(20))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.