comienzo = $this->_getmicrotime(); return true; } // para el cronometro y devuelve el tiempo // se puede dar una salida formateada a traves de los parametros. // // Si $formatear esta a verdadero entonces devolvera cuantos segundos // se demoro con $nroDecimales decimales (milisegundos). function stop($formatear = false, $nroDecimales = 0) { $_tiempo = $this->_getmicrotime() - $this->comienzo; return ($formatear) ? number_format($_tiempo, $nroDecimales, ',', '.') : $_tiempo; } } function bcpi($precision){ $exactitud= ($precision+5)*45/32; //Utilizar $precision a 180 tarda más o menos unos 30 segundos bcscale($precision+5); $n = 1; $bcatan1 = 0; $bcatan2 = 0; while($n < $exactitud){ //Funciones $bcatan1 = bcadd($bcatan1, bcmul(bcdiv(pow(-1, $n+1), $n * 2 - 1), bcpow(0.2, $n * 2 -1))); $bcatan2 = bcadd($bcatan2, bcmul(bcdiv(pow(-1, $n+1), $n * 2 - 1), bcpow(bcdiv(1,239), $n * 2 -1))); ++$n; } return bcmul(4,bcsub(bcmul(4, $bcatan1),$bcatan2),5); } $i=81; while($i<102){ $casio = new cronometro(); echo bcpi($i); echo "
La ejecución con precision $i, tardó " . $casio->stop(true, 2) . " segundos en su ejecucion"; $i=$i+10; ob_flush(); } ?>