@@ 3612-3640 (lines=29) @@ | ||
3609 | * |
|
3610 | * @return float |
|
3611 | */ |
|
3612 | public static function VARFunc() |
|
3613 | { |
|
3614 | $returnValue = Functions::DIV0(); |
|
3615 | ||
3616 | $summerA = $summerB = 0; |
|
3617 | ||
3618 | // Loop through arguments |
|
3619 | $aArgs = Functions::flattenArray(func_get_args()); |
|
3620 | $aCount = 0; |
|
3621 | foreach ($aArgs as $arg) { |
|
3622 | if (is_bool($arg)) { |
|
3623 | $arg = (int) $arg; |
|
3624 | } |
|
3625 | // Is it a numeric value? |
|
3626 | if ((is_numeric($arg)) && (!is_string($arg))) { |
|
3627 | $summerA += ($arg * $arg); |
|
3628 | $summerB += $arg; |
|
3629 | ++$aCount; |
|
3630 | } |
|
3631 | } |
|
3632 | ||
3633 | if ($aCount > 1) { |
|
3634 | $summerA *= $aCount; |
|
3635 | $summerB *= $summerB; |
|
3636 | $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1)); |
|
3637 | } |
|
3638 | ||
3639 | return $returnValue; |
|
3640 | } |
|
3641 | ||
3642 | /** |
|
3643 | * VARA. |
|
@@ 3709-3738 (lines=30) @@ | ||
3706 | * |
|
3707 | * @return float |
|
3708 | */ |
|
3709 | public static function VARP() |
|
3710 | { |
|
3711 | // Return value |
|
3712 | $returnValue = Functions::DIV0(); |
|
3713 | ||
3714 | $summerA = $summerB = 0; |
|
3715 | ||
3716 | // Loop through arguments |
|
3717 | $aArgs = Functions::flattenArray(func_get_args()); |
|
3718 | $aCount = 0; |
|
3719 | foreach ($aArgs as $arg) { |
|
3720 | if (is_bool($arg)) { |
|
3721 | $arg = (int) $arg; |
|
3722 | } |
|
3723 | // Is it a numeric value? |
|
3724 | if ((is_numeric($arg)) && (!is_string($arg))) { |
|
3725 | $summerA += ($arg * $arg); |
|
3726 | $summerB += $arg; |
|
3727 | ++$aCount; |
|
3728 | } |
|
3729 | } |
|
3730 | ||
3731 | if ($aCount > 0) { |
|
3732 | $summerA *= $aCount; |
|
3733 | $summerB *= $summerB; |
|
3734 | $returnValue = ($summerA - $summerB) / ($aCount * $aCount); |
|
3735 | } |
|
3736 | ||
3737 | return $returnValue; |
|
3738 | } |
|
3739 | ||
3740 | /** |
|
3741 | * VARPA. |