Code Duplication    Length = 38-38 lines in 2 locations

src/PhpSpreadsheet/Calculation/Statistical.php 2 locations

@@ 3492-3529 (lines=38) @@
3489
     * @param    mixed        $arg,...        Data values
3490
     * @return    float
3491
     */
3492
    public static function VARA()
3493
    {
3494
        $returnValue = Functions::DIV0();
3495
3496
        $summerA = $summerB = 0;
3497
3498
        // Loop through arguments
3499
        $aArgs = Functions::flattenArrayIndexed(func_get_args());
3500
        $aCount = 0;
3501
        foreach ($aArgs as $k => $arg) {
3502
            if ((is_string($arg)) &&
3503
                (Functions::isValue($k))) {
3504
                return Functions::VALUE();
3505
            } elseif ((is_string($arg)) &&
3506
                (!Functions::isMatrixValue($k))) {
3507
            } else {
3508
                // Is it a numeric value?
3509
                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3510
                    if (is_bool($arg)) {
3511
                        $arg = (integer) $arg;
3512
                    } elseif (is_string($arg)) {
3513
                        $arg = 0;
3514
                    }
3515
                    $summerA += ($arg * $arg);
3516
                    $summerB += $arg;
3517
                    ++$aCount;
3518
                }
3519
            }
3520
        }
3521
3522
        if ($aCount > 1) {
3523
            $summerA *= $aCount;
3524
            $summerB *= $summerB;
3525
            $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1));
3526
        }
3527
3528
        return $returnValue;
3529
    }
3530
3531
    /**
3532
     * VARP
@@ 3586-3623 (lines=38) @@
3583
     * @param    mixed        $arg,...        Data values
3584
     * @return    float
3585
     */
3586
    public static function VARPA()
3587
    {
3588
        $returnValue = Functions::DIV0();
3589
3590
        $summerA = $summerB = 0;
3591
3592
        // Loop through arguments
3593
        $aArgs = Functions::flattenArrayIndexed(func_get_args());
3594
        $aCount = 0;
3595
        foreach ($aArgs as $k => $arg) {
3596
            if ((is_string($arg)) &&
3597
                (Functions::isValue($k))) {
3598
                return Functions::VALUE();
3599
            } elseif ((is_string($arg)) &&
3600
                (!Functions::isMatrixValue($k))) {
3601
            } else {
3602
                // Is it a numeric value?
3603
                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3604
                    if (is_bool($arg)) {
3605
                        $arg = (integer) $arg;
3606
                    } elseif (is_string($arg)) {
3607
                        $arg = 0;
3608
                    }
3609
                    $summerA += ($arg * $arg);
3610
                    $summerB += $arg;
3611
                    ++$aCount;
3612
                }
3613
            }
3614
        }
3615
3616
        if ($aCount > 0) {
3617
            $summerA *= $aCount;
3618
            $summerB *= $summerB;
3619
            $returnValue = ($summerA - $summerB) / ($aCount * $aCount);
3620
        }
3621
3622
        return $returnValue;
3623
    }
3624
3625
    /**
3626
     * WEIBULL