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