From ec49e4155c6eaec2c164bb2e2954eff867bc846a Mon Sep 17 00:00:00 2001 From: Owen Leibman Date: Wed, 14 Jul 2021 18:05:22 -0700 Subject: [PATCH] Very Minor Simplification to Matrix Functions The external Matrix library has introduced some changes which permit the matrix functions to be slightly simplified. --- .../Calculation/MathTrig/MatrixFunctions.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PhpSpreadsheet/Calculation/MathTrig/MatrixFunctions.php b/src/PhpSpreadsheet/Calculation/MathTrig/MatrixFunctions.php index 1e3224ea4a..92e1ff8e7b 100644 --- a/src/PhpSpreadsheet/Calculation/MathTrig/MatrixFunctions.php +++ b/src/PhpSpreadsheet/Calculation/MathTrig/MatrixFunctions.php @@ -3,6 +3,7 @@ namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig; use Matrix\Builder; +use Matrix\Div0Exception as MatrixDiv0Exception; use Matrix\Exception as MatrixException; use Matrix\Matrix; use PhpOffice\PhpSpreadsheet\Calculation\Exception; @@ -84,8 +85,10 @@ public static function inverse($matrixValues) $matrix = self::getMatrix($matrixValues); return $matrix->inverse()->toArray(); + } catch (MatrixDiv0Exception $e) { + return Functions::NAN(); } catch (MatrixException $e) { - return (strpos($e->getMessage(), 'determinant') === false) ? Functions::VALUE() : Functions::NAN(); + return Functions::VALUE(); } catch (Exception $e) { return $e->getMessage(); } @@ -125,10 +128,7 @@ public static function identity($dimension) try { $dimension = (int) Helpers::validateNumericNullBool($dimension); Helpers::validatePositive($dimension, Functions::VALUE()); - $matrix = Builder::createFilledMatrix(0, $dimension)->toArray(); - for ($x = 0; $x < $dimension; ++$x) { - $matrix[$x][$x] = 1; - } + $matrix = Builder::createIdentityMatrix($dimension, 0)->toArray(); return $matrix; } catch (Exception $e) {