Code Duplication    Length = 37-37 lines in 2 locations

src/PhpSpreadsheet/Calculation/Statistical.php 2 locations

@@ 3219-3255 (lines=37) @@
3216
     *
3217
     * @return float
3218
     */
3219
    public static function STDEVA(...$args)
3220
    {
3221
        $aArgs = Functions::flattenArrayIndexed($args);
3222
3223
        $returnValue = null;
3224
3225
        $aMean = self::AVERAGEA($aArgs);
3226
        if (!is_null($aMean)) {
3227
            $aCount = -1;
3228
            foreach ($aArgs as $k => $arg) {
3229
                if ((is_bool($arg)) &&
3230
                    (!Functions::isMatrixValue($k))) {
3231
                } else {
3232
                    // Is it a numeric value?
3233
                    if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3234
                        if (is_bool($arg)) {
3235
                            $arg = (int) $arg;
3236
                        } elseif (is_string($arg)) {
3237
                            $arg = 0;
3238
                        }
3239
                        if (is_null($returnValue)) {
3240
                            $returnValue = pow(($arg - $aMean), 2);
3241
                        } else {
3242
                            $returnValue += pow(($arg - $aMean), 2);
3243
                        }
3244
                        ++$aCount;
3245
                    }
3246
                }
3247
            }
3248
3249
            if (($aCount > 0) && ($returnValue >= 0)) {
3250
                return sqrt($returnValue / $aCount);
3251
            }
3252
        }
3253
3254
        return Functions::DIV0();
3255
    }
3256
3257
    /**
3258
     * STDEVP.
@@ 3318-3354 (lines=37) @@
3315
     *
3316
     * @return float
3317
     */
3318
    public static function STDEVPA(...$args)
3319
    {
3320
        $aArgs = Functions::flattenArrayIndexed($args);
3321
3322
        $returnValue = null;
3323
3324
        $aMean = self::AVERAGEA($aArgs);
3325
        if (!is_null($aMean)) {
3326
            $aCount = 0;
3327
            foreach ($aArgs as $k => $arg) {
3328
                if ((is_bool($arg)) &&
3329
                    (!Functions::isMatrixValue($k))) {
3330
                } else {
3331
                    // Is it a numeric value?
3332
                    if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3333
                        if (is_bool($arg)) {
3334
                            $arg = (int) $arg;
3335
                        } elseif (is_string($arg)) {
3336
                            $arg = 0;
3337
                        }
3338
                        if (is_null($returnValue)) {
3339
                            $returnValue = pow(($arg - $aMean), 2);
3340
                        } else {
3341
                            $returnValue += pow(($arg - $aMean), 2);
3342
                        }
3343
                        ++$aCount;
3344
                    }
3345
                }
3346
            }
3347
3348
            if (($aCount > 0) && ($returnValue >= 0)) {
3349
                return sqrt($returnValue / $aCount);
3350
            }
3351
        }
3352
3353
        return Functions::DIV0();
3354
    }
3355
3356
    /**
3357
     * STEYX.