ベイリー＝ボールウェイン＝プラウフの公式
↑ Bailey, Borwein & Plouffe 1997 では b の指数は ck となっていて、正整数 c が付け加わっている。
↑ この mod 演算の対象は整数に限らず、x − [x / y] y の意味で使う。ここで [⋅] は引数の整数部を取り出す関数である。文献によっては引数の小数部を表す関数を {⋅} と定義し、mod の代わりに使用している(x mod y = {x / y}y)。
↑ 浮動小数点数の割り算と足し算も行うが、冪剰余の計算が支配的となる。
↑ 対数の底の異なりは定数としてしか寄与しないため、オーダーの計算では底を書かない。
↑ M の引数が log n となっているのは、除数 q に対する冪剰余の計算には q を表せる長さを持つ整数型が必要となるためである。q のビット長は 1 + 2log2 q であり、これは漸近的に log q に等しい。BBPアルゴリズムによる π の計算では除数は高々 n のオーダーになるから、q ≈ n と考えてよく、ビット長は log n 程度と見積もれる。π 以外の例では q の取りうる大きさは異なり、例えば q ≈ n などになり得る。ビット計算量の見積もりには顕れないが、ナイーブな方法では浮動小数点数の精度が不足し得る。
{ b n − 1 P ( 1 , m , b , A ) } mod 1 = { ∑ j = 1 m a j [ ∑ k = 0 ∞ b ( n − 1 ) − k mod ( m k + j ) m k + j ] } mod 1 {\displaystyle \left\{b^{n-1}P(1,m,b,A)\right\}{\bmod {1}}=\left\{\sum _{j=1}^{m}a_{j}\left[\sum _{k=0}^{\infty }{\frac {b^{(n-1)-k}{\bmod {(}}mk+j)}{mk+j}}\right]\right\}{\bmod {1}}}
ここで x mod y は x を y で割った余りを表す。和の中の剰余算が必要となるのは分子が分母より大きくなる場合のみであり、分子が小さい場合には必要ない。そのため、上述の bP の例では、k ≤ n − 1 となる最初の項だけ剰余算を行う。
上述の手順に従い π の16進法での小数点以下 n 桁目の計算を以下に示す。まずBBP公式を以下のように変形する:
16 n − 1 π = 4 ∑ k = 0 ∞ 16 ( n − 1 ) − k 8 k + 1 − 2 ∑ k = 0 ∞ 16 ( n − 1 ) − k 8 k + 4 − ∑ k = 0 ∞ 16 ( n − 1 ) − k 8 k + 5 − ∑ k = 0 ∞ 16 ( n − 1 ) − k 8 k + 6 {\displaystyle 16^{n-1}\pi =4\sum _{k=0}^{\infty }{\frac {16^{(n-1)-k}}{8k+1}}-2\sum _{k=0}^{\infty }{\frac {16^{(n-1)-k}}{8k+4}}-\sum _{k=0}^{\infty }{\frac {16^{(n-1)-k}}{8k+5}}-\sum _{k=0}^{\infty }{\frac {16^{(n-1)-k}}{8k+6}}}