From 5bebd9310d6a6409cb4e4fb597d0dba39eb5694a Mon Sep 17 00:00:00 2001 From: Jens True Date: Thu, 15 Feb 2024 09:08:01 +0000 Subject: [PATCH] Optimization efforts --- .gitignore | 2 +- phpbench.json | 2 ++ src/Numerics/BasicMath.php | 4 ++-- src/Numerics/DiagonalMatrix.php | 8 +++----- src/Numerics/SquareMatrix.php | 9 ++++----- src/TrueSkill/Factors/GaussianWeightedSumFactor.php | 1 - 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index a2bb31f..54a0eea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -.vscode +.*/ vendor .*.cache/ *.phar diff --git a/phpbench.json b/phpbench.json index 71cc53e..de606f9 100644 --- a/phpbench.json +++ b/phpbench.json @@ -4,6 +4,7 @@ "runner.php_disable_ini": true, "runner.retry_threshold": 5, "runner.iterations": 10, + "storage.xml_storage_path": "output/benchmarking/", "report.outputs": { "build-artifact": { "renderer": "html", @@ -11,4 +12,5 @@ "title": "Benchmarking" } } + } diff --git a/src/Numerics/BasicMath.php b/src/Numerics/BasicMath.php index ce7f4db..9b5cdf4 100644 --- a/src/Numerics/BasicMath.php +++ b/src/Numerics/BasicMath.php @@ -15,11 +15,11 @@ class BasicMath /** * Squares the input (x^2 = x * x) * - * @param float $x Value to square (x) + * @param $x Value to square (x) * * @return float The squared value (x^2) */ - public static function square($x): float + public static function square(float $x): float { return $x * $x; } diff --git a/src/Numerics/DiagonalMatrix.php b/src/Numerics/DiagonalMatrix.php index 6802763..05fad9d 100644 --- a/src/Numerics/DiagonalMatrix.php +++ b/src/Numerics/DiagonalMatrix.php @@ -12,13 +12,11 @@ class DiagonalMatrix extends Matrix public function __construct(array $diagonalValues) { $diagonalCount = count($diagonalValues); - $rowCount = $diagonalCount; - $colCount = $rowCount; - parent::__construct($rowCount, $colCount); + parent::__construct($diagonalCount, $diagonalCount); - for ($currentRow = 0; $currentRow < $rowCount; $currentRow++) { - for ($currentCol = 0; $currentCol < $colCount; $currentCol++) { + for ($currentRow = 0; $currentRow < $diagonalCount; $currentRow++) { + for ($currentCol = 0; $currentCol < $diagonalCount; $currentCol++) { if ($currentRow === $currentCol) { $this->setValue($currentRow, $currentCol, $diagonalValues[$currentRow]); } else { diff --git a/src/Numerics/SquareMatrix.php b/src/Numerics/SquareMatrix.php index be73c8a..8b9c4df 100644 --- a/src/Numerics/SquareMatrix.php +++ b/src/Numerics/SquareMatrix.php @@ -8,18 +8,17 @@ class SquareMatrix extends Matrix { public function __construct(float|int ...$allValues) { - $rows = (int)sqrt(count($allValues)); - $cols = $rows; + $size = (int)sqrt(count($allValues)); $matrixData = []; $allValuesIndex = 0; - for ($currentRow = 0; $currentRow < $rows; $currentRow++) { - for ($currentColumn = 0; $currentColumn < $cols; $currentColumn++) { + for ($currentRow = 0; $currentRow < $size; $currentRow++) { + for ($currentColumn = 0; $currentColumn < $size; $currentColumn++) { $matrixData[$currentRow][$currentColumn] = $allValues[$allValuesIndex++]; } } - parent::__construct($rows, $cols, $matrixData); + parent::__construct($size, $size, $matrixData); } } diff --git a/src/TrueSkill/Factors/GaussianWeightedSumFactor.php b/src/TrueSkill/Factors/GaussianWeightedSumFactor.php index 03c2139..51c64c5 100644 --- a/src/TrueSkill/Factors/GaussianWeightedSumFactor.php +++ b/src/TrueSkill/Factors/GaussianWeightedSumFactor.php @@ -181,7 +181,6 @@ class GaussianWeightedSumFactor extends GaussianFactor } $newPrecision = 1.0 / $inverseOfNewPrecisionSum; - $anotherNewPrecision = 1.0 / $anotherInverseOfNewPrecisionSum; $newPrecisionMean = $newPrecision * $weightedMeanSum;