Code Duplication    Length = 34-36 lines in 2 locations

src/PhpSpreadsheet/Calculation/Statistical.php 2 locations

@@ 708-741 (lines=34) @@
705
     * @param    mixed        $arg,...        Data values
706
     * @return    float
707
     */
708
    public static function AVEDEV()
709
    {
710
        $aArgs = Functions::flattenArrayIndexed(func_get_args());
711
712
        // Return value
713
        $returnValue = null;
714
715
        $aMean = self::AVERAGE($aArgs);
716
        if ($aMean != Functions::DIV0()) {
717
            $aCount = 0;
718
            foreach ($aArgs as $k => $arg) {
719
                if ((is_bool($arg)) &&
720
                    ((!Functions::isCellValue($k)) || (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
721
                    $arg = (integer) $arg;
722
                }
723
                // Is it a numeric value?
724
                if ((is_numeric($arg)) && (!is_string($arg))) {
725
                    if (is_null($returnValue)) {
726
                        $returnValue = abs($arg - $aMean);
727
                    } else {
728
                        $returnValue += abs($arg - $aMean);
729
                    }
730
                    ++$aCount;
731
                }
732
            }
733
734
            // Return
735
            if ($aCount == 0) {
736
                return Functions::DIV0();
737
            }
738
739
            return $returnValue / $aCount;
740
        }
741
742
        return Functions::NAN();
743
    }
744
@@ 1451-1486 (lines=36) @@
1448
     * @param    mixed        $arg,...        Data values
1449
     * @return    float
1450
     */
1451
    public static function DEVSQ()
1452
    {
1453
        $aArgs = Functions::flattenArrayIndexed(func_get_args());
1454
1455
        // Return value
1456
        $returnValue = null;
1457
1458
        $aMean = self::AVERAGE($aArgs);
1459
        if ($aMean != Functions::DIV0()) {
1460
            $aCount = -1;
1461
            foreach ($aArgs as $k => $arg) {
1462
                // Is it a numeric value?
1463
                if ((is_bool($arg)) &&
1464
                    ((!Functions::isCellValue($k)) ||
1465
                    (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
1466
                    $arg = (integer) $arg;
1467
                }
1468
                if ((is_numeric($arg)) && (!is_string($arg))) {
1469
                    if (is_null($returnValue)) {
1470
                        $returnValue = pow(($arg - $aMean), 2);
1471
                    } else {
1472
                        $returnValue += pow(($arg - $aMean), 2);
1473
                    }
1474
                    ++$aCount;
1475
                }
1476
            }
1477
1478
            // Return
1479
            if (is_null($returnValue)) {
1480
                return Functions::NAN();
1481
            } else {
1482
                return $returnValue;
1483
            }
1484
        }
1485
1486
        return self::NA();
1487
    }
1488
1489
    /**