@@ 3453-3480 (lines=28) @@ | ||
3450 | * @param mixed $arg,... Data values |
|
3451 | * @return float |
|
3452 | */ |
|
3453 | public static function VARFunc() |
|
3454 | { |
|
3455 | $returnValue = Functions::DIV0(); |
|
3456 | ||
3457 | $summerA = $summerB = 0; |
|
3458 | ||
3459 | // Loop through arguments |
|
3460 | $aArgs = Functions::flattenArray(func_get_args()); |
|
3461 | $aCount = 0; |
|
3462 | foreach ($aArgs as $arg) { |
|
3463 | if (is_bool($arg)) { |
|
3464 | $arg = (integer) $arg; |
|
3465 | } |
|
3466 | // Is it a numeric value? |
|
3467 | if ((is_numeric($arg)) && (!is_string($arg))) { |
|
3468 | $summerA += ($arg * $arg); |
|
3469 | $summerB += $arg; |
|
3470 | ++$aCount; |
|
3471 | } |
|
3472 | } |
|
3473 | ||
3474 | if ($aCount > 1) { |
|
3475 | $summerA *= $aCount; |
|
3476 | $summerB *= $summerB; |
|
3477 | $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1)); |
|
3478 | } |
|
3479 | ||
3480 | return $returnValue; |
|
3481 | } |
|
3482 | ||
3483 | /** |
|
@@ 3546-3574 (lines=29) @@ | ||
3543 | * @param mixed $arg,... Data values |
|
3544 | * @return float |
|
3545 | */ |
|
3546 | public static function VARP() |
|
3547 | { |
|
3548 | // Return value |
|
3549 | $returnValue = Functions::DIV0(); |
|
3550 | ||
3551 | $summerA = $summerB = 0; |
|
3552 | ||
3553 | // Loop through arguments |
|
3554 | $aArgs = Functions::flattenArray(func_get_args()); |
|
3555 | $aCount = 0; |
|
3556 | foreach ($aArgs as $arg) { |
|
3557 | if (is_bool($arg)) { |
|
3558 | $arg = (integer) $arg; |
|
3559 | } |
|
3560 | // Is it a numeric value? |
|
3561 | if ((is_numeric($arg)) && (!is_string($arg))) { |
|
3562 | $summerA += ($arg * $arg); |
|
3563 | $summerB += $arg; |
|
3564 | ++$aCount; |
|
3565 | } |
|
3566 | } |
|
3567 | ||
3568 | if ($aCount > 0) { |
|
3569 | $summerA *= $aCount; |
|
3570 | $summerB *= $summerB; |
|
3571 | $returnValue = ($summerA - $summerB) / ($aCount * $aCount); |
|
3572 | } |
|
3573 | ||
3574 | return $returnValue; |
|
3575 | } |
|
3576 | ||
3577 | /** |