Code Duplication    Length = 37-37 lines in 2 locations

src/PhpSpreadsheet/Calculation/Statistical.php 2 locations

@@ 3079-3115 (lines=37) @@
3076
     * @param    mixed        $arg,...        Data values
3077
     * @return    float
3078
     */
3079
    public static function STDEVA()
3080
    {
3081
        $aArgs = Functions::flattenArrayIndexed(func_get_args());
3082
3083
        $returnValue = null;
3084
3085
        $aMean = self::AVERAGEA($aArgs);
3086
        if (!is_null($aMean)) {
3087
            $aCount = -1;
3088
            foreach ($aArgs as $k => $arg) {
3089
                if ((is_bool($arg)) &&
3090
                    (!Functions::isMatrixValue($k))) {
3091
                } else {
3092
                    // Is it a numeric value?
3093
                    if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3094
                        if (is_bool($arg)) {
3095
                            $arg = (integer) $arg;
3096
                        } elseif (is_string($arg)) {
3097
                            $arg = 0;
3098
                        }
3099
                        if (is_null($returnValue)) {
3100
                            $returnValue = pow(($arg - $aMean), 2);
3101
                        } else {
3102
                            $returnValue += pow(($arg - $aMean), 2);
3103
                        }
3104
                        ++$aCount;
3105
                    }
3106
                }
3107
            }
3108
3109
            if (($aCount > 0) && ($returnValue >= 0)) {
3110
                return sqrt($returnValue / $aCount);
3111
            }
3112
        }
3113
3114
        return Functions::DIV0();
3115
    }
3116
3117
    /**
3118
     * STDEVP
@@ 3174-3210 (lines=37) @@
3171
     * @param    mixed        $arg,...        Data values
3172
     * @return    float
3173
     */
3174
    public static function STDEVPA()
3175
    {
3176
        $aArgs = Functions::flattenArrayIndexed(func_get_args());
3177
3178
        $returnValue = null;
3179
3180
        $aMean = self::AVERAGEA($aArgs);
3181
        if (!is_null($aMean)) {
3182
            $aCount = 0;
3183
            foreach ($aArgs as $k => $arg) {
3184
                if ((is_bool($arg)) &&
3185
                    (!Functions::isMatrixValue($k))) {
3186
                } else {
3187
                    // Is it a numeric value?
3188
                    if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
3189
                        if (is_bool($arg)) {
3190
                            $arg = (integer) $arg;
3191
                        } elseif (is_string($arg)) {
3192
                            $arg = 0;
3193
                        }
3194
                        if (is_null($returnValue)) {
3195
                            $returnValue = pow(($arg - $aMean), 2);
3196
                        } else {
3197
                            $returnValue += pow(($arg - $aMean), 2);
3198
                        }
3199
                        ++$aCount;
3200
                    }
3201
                }
3202
            }
3203
3204
            if (($aCount > 0) && ($returnValue >= 0)) {
3205
                return sqrt($returnValue / $aCount);
3206
            }
3207
        }
3208
3209
        return Functions::DIV0();
3210
    }
3211
3212
    /**
3213
     * STEYX