AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig;use PhpOffice\PhpSpreadsheet\Calculation\ArrayEnabled;use PhpOffice\PhpSpreadsheet\Calculation\Exception;use PhpOffice\PhpSpreadsheet\Calculation\Functions;class SeriesSum{use ArrayEnabled;/*** SERIESSUM.** Returns the sum of a power series** @param mixed $x Input value* @param mixed $n Initial power* @param mixed $m Step* @param mixed[] $args An array of coefficients for the Data Series** @return array|float|int|string The result, or a string containing an error*/public static function evaluate(mixed $x, mixed $n, mixed $m, ...$args): array|string|float|int{if (is_array($x) || is_array($n) || is_array($m)) {return self::evaluateArrayArgumentsSubset([self::class, __FUNCTION__], 3, $x, $n, $m, ...$args);}try {$x = Helpers::validateNumericNullSubstitution($x, 0);$n = Helpers::validateNumericNullSubstitution($n, 0);$m = Helpers::validateNumericNullSubstitution($m, 0);// Loop through arguments$aArgs = Functions::flattenArray($args);$returnValue = 0;$i = 0;foreach ($aArgs as $argx) {if ($argx !== null) {$arg = Helpers::validateNumericNullSubstitution($argx, 0);$returnValue += $arg * $x ** ($n + ($m * $i));++$i;}}} catch (Exception $e) {return $e->getMessage();}return $returnValue;}}