Code Duplication    Length = 38-38 lines in 2 locations

src/PhpSpreadsheet/Calculation/Statistical.php 2 locations

@@ 3652-3689 (lines=38) @@
3649
     *
3650
     * @return float
3651
     */
3652
    public static function VARA(...$args)
3653
    {
3654
        $returnValue = Functions::DIV0();
3655
3656
        $summerA = $summerB = 0;
3657
3658
        // Loop through arguments
3659
        $aArgs = Functions::flattenArrayIndexed($args);
3660
        $aCount = 0;
3661
        foreach ($aArgs as $k => $arg) {
3662
            if ((is_string($arg)) &&
3663
                (Functions::isValue($k))) {
3664
                return Functions::VALUE();
3665
            } elseif ((is_string($arg)) &&
3666
                (!Functions::isMatrixValue($k))) {
3667
            } else {
3668
                // Is it a numeric value?
3669
                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3670
                    if (is_bool($arg)) {
3671
                        $arg = (int) $arg;
3672
                    } elseif (is_string($arg)) {
3673
                        $arg = 0;
3674
                    }
3675
                    $summerA += ($arg * $arg);
3676
                    $summerB += $arg;
3677
                    ++$aCount;
3678
                }
3679
            }
3680
        }
3681
3682
        if ($aCount > 1) {
3683
            $summerA *= $aCount;
3684
            $summerB *= $summerB;
3685
            $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1));
3686
        }
3687
3688
        return $returnValue;
3689
    }
3690
3691
    /**
3692
     * VARP.
@@ 3750-3787 (lines=38) @@
3747
     *
3748
     * @return float
3749
     */
3750
    public static function VARPA(...$args)
3751
    {
3752
        $returnValue = Functions::DIV0();
3753
3754
        $summerA = $summerB = 0;
3755
3756
        // Loop through arguments
3757
        $aArgs = Functions::flattenArrayIndexed($args);
3758
        $aCount = 0;
3759
        foreach ($aArgs as $k => $arg) {
3760
            if ((is_string($arg)) &&
3761
                (Functions::isValue($k))) {
3762
                return Functions::VALUE();
3763
            } elseif ((is_string($arg)) &&
3764
                (!Functions::isMatrixValue($k))) {
3765
            } else {
3766
                // Is it a numeric value?
3767
                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3768
                    if (is_bool($arg)) {
3769
                        $arg = (int) $arg;
3770
                    } elseif (is_string($arg)) {
3771
                        $arg = 0;
3772
                    }
3773
                    $summerA += ($arg * $arg);
3774
                    $summerB += $arg;
3775
                    ++$aCount;
3776
                }
3777
            }
3778
        }
3779
3780
        if ($aCount > 0) {
3781
            $summerA *= $aCount;
3782
            $summerB *= $summerB;
3783
            $returnValue = ($summerA - $summerB) / ($aCount * $aCount);
3784
        }
3785
3786
        return $returnValue;
3787
    }
3788
3789
    /**
3790
     * WEIBULL.