3v4l.org

run code in 300+ PHP versions simultaneously
<?php function calcPi($precision){ $limit = ceil(log($precision)/log(2))-1; bcscale($precision+6); $a = 1; $b = bcdiv(1,bcsqrt(2)); $t = 1/4; $p = 1; for($n = 0; $n < $limit; $n++){ $x = bcdiv(bcadd($a,$b),2); $y = bcsqrt(bcmul($a, $b)); $t = bcsub($t, bcmul($p,bcpow(bcsub($a,$x),2))); $a = $x; $b = $y; $p = bcmul(2,$p); } return bcdiv(bcpow(bcadd($a, $b),2),bcmul(4,$t),$precision); } echo calcPi(100);

preferences:
40.43 ms | 402 KiB | 5 Q