2010-08-26 19:14:53 +00:00
|
|
|
<?php
|
|
|
|
/**
|
2015-05-12 09:22:06 +00:00
|
|
|
* @package JAMA
|
2010-08-26 19:14:53 +00:00
|
|
|
*
|
2015-05-12 09:22:06 +00:00
|
|
|
* Pythagorean Theorem:
|
2010-08-26 19:14:53 +00:00
|
|
|
*
|
2015-05-12 09:22:06 +00:00
|
|
|
* a = 3
|
|
|
|
* b = 4
|
|
|
|
* r = sqrt(square(a) + square(b))
|
|
|
|
* r = 5
|
2010-08-26 19:14:53 +00:00
|
|
|
*
|
2015-05-12 09:22:06 +00:00
|
|
|
* r = sqrt(a^2 + b^2) without under/overflow.
|
2010-08-26 19:14:53 +00:00
|
|
|
*/
|
|
|
|
function hypo($a, $b) {
|
2015-05-12 09:22:06 +00:00
|
|
|
if (abs($a) > abs($b)) {
|
|
|
|
$r = $b / $a;
|
|
|
|
$r = abs($a) * sqrt(1 + $r * $r);
|
|
|
|
} elseif ($b != 0) {
|
|
|
|
$r = $a / $b;
|
|
|
|
$r = abs($b) * sqrt(1 + $r * $r);
|
|
|
|
} else {
|
|
|
|
$r = 0.0;
|
|
|
|
}
|
|
|
|
return $r;
|
|
|
|
} // function hypo()
|
2010-08-26 19:14:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
2015-05-12 09:22:06 +00:00
|
|
|
* Mike Bommarito's version.
|
|
|
|
* Compute n-dimensional hyotheneuse.
|
2010-08-26 19:14:53 +00:00
|
|
|
*
|
|
|
|
function hypot() {
|
2015-05-12 09:22:06 +00:00
|
|
|
$s = 0;
|
|
|
|
foreach (func_get_args() as $d) {
|
|
|
|
if (is_numeric($d)) {
|
|
|
|
$s += pow($d, 2);
|
|
|
|
} else {
|
|
|
|
throw new PHPExcel_Calculation_Exception(JAMAError(ArgumentTypeException));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return sqrt($s);
|
2010-08-26 19:14:53 +00:00
|
|
|
}
|
|
|
|
*/
|