<?php
bcscale(100);
/*
* Computes the natural logarithm using a series.
* @author Thomas Oldbury.
* @license Public domain.
*/
function bcln($a, $iter = 10)
{
$result = "0.0";
for($i = 0; $i < $iter; $i++)
{
$pow = (1 + (2 * $i));
$mul = bcdiv("1.0", $pow);
$fraction = bcmul($mul, bcpow(bcsub($a, "1.0") / bcadd($a, "1.0"), $pow));
$result = bcadd($fraction, $result);
}
return bcmul("2.0", $result);
}
/*
* Computes the base2 log using baseN log.
* @note Requires above functions.
* @author Thomas Oldbury.
* @license Public domain.
*/
function bclog2($a, $iter = 10)
{
return bcdiv(bcln($a, $iter), bcln("2", $iter));
}
/*
* Computes the base10 log using baseN log.
* @note Requires above functions.
* @author Thomas Oldbury.
* @license Public domain.
*/
function bclog10($a, $iter = 10)
{
return bcdiv(bcln($a, $iter), bcln("10", $iter));
}
?>
bcpow
(PHP 4, PHP 5)
bcpow — Effettua l'elevamento a potenza
Descrizione
string bcpow
( string
$x
, string $y
[, int $precisione
] )
Eleva x alla potenza
y. Il parametro opzionale
precisione può essere usato per impostare il numero di cifre
dopo il punto decimale nel risultato.
Esempi
Example #1 bcpow() example
<?php
echo bcpow(4.2, 3, 2); // 74.08
?>
Vedere anche:
thomas at tgohome dot com ¶
3 years ago
Michael Bailey (jinxidoru at byu dot net) ¶
8 years ago
bcpow() only supports exponents less than or equal to 2^31-1. Also, bcpow() does not support decimal numbers. If you have scale set to 0, then the exponent is converted to an interger; otherwise an error is generated.
--
Michael Bailey
http://www.jinxidoru.com
