From cc744568d9581ddf3459867c35bc56476ae218e4 Mon Sep 17 00:00:00 2001 From: Dom <97384583+tosemml@users.noreply.github.com> Date: Fri, 18 Aug 2023 01:03:45 -0700 Subject: [PATCH 1/3] use np.dot --- arithmetic_analysis/gaussian_elimination.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arithmetic_analysis/gaussian_elimination.py b/arithmetic_analysis/gaussian_elimination.py index f0f20af8e417..aa87fec91077 100644 --- a/arithmetic_analysis/gaussian_elimination.py +++ b/arithmetic_analysis/gaussian_elimination.py @@ -33,10 +33,9 @@ def retroactive_resolution( x: NDArray[float64] = np.zeros((rows, 1), dtype=float) for row in reversed(range(rows)): - total = 0 - for col in range(row + 1, columns): - total += coefficients[row, col] * x[col] - + total = np.dot([coefficients[row, col] + for col in range(row + 1, columns)], + [x[col] for col in range(row + 1, columns)]) x[row, 0] = (vector[row] - total) / coefficients[row, row] return x From c9871e71b67aca63ccf7ae3cb9e049417cd44c69 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 18 Aug 2023 08:06:27 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- arithmetic_analysis/gaussian_elimination.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arithmetic_analysis/gaussian_elimination.py b/arithmetic_analysis/gaussian_elimination.py index aa87fec91077..10fad16de70a 100644 --- a/arithmetic_analysis/gaussian_elimination.py +++ b/arithmetic_analysis/gaussian_elimination.py @@ -33,9 +33,10 @@ def retroactive_resolution( x: NDArray[float64] = np.zeros((rows, 1), dtype=float) for row in reversed(range(rows)): - total = np.dot([coefficients[row, col] - for col in range(row + 1, columns)], - [x[col] for col in range(row + 1, columns)]) + total = np.dot( + [coefficients[row, col] for col in range(row + 1, columns)], + [x[col] for col in range(row + 1, columns)], + ) x[row, 0] = (vector[row] - total) / coefficients[row, row] return x From 244ec4049fda5d5c4f52ee1a79eb547f701a7b94 Mon Sep 17 00:00:00 2001 From: Dom <97384583+tosemml@users.noreply.github.com> Date: Sun, 20 Aug 2023 13:11:53 -0700 Subject: [PATCH 3/3] further improvements using array slicing Co-authored-by: Tianyi Zheng --- arithmetic_analysis/gaussian_elimination.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/arithmetic_analysis/gaussian_elimination.py b/arithmetic_analysis/gaussian_elimination.py index 10fad16de70a..13f509a4f117 100644 --- a/arithmetic_analysis/gaussian_elimination.py +++ b/arithmetic_analysis/gaussian_elimination.py @@ -33,10 +33,7 @@ def retroactive_resolution( x: NDArray[float64] = np.zeros((rows, 1), dtype=float) for row in reversed(range(rows)): - total = np.dot( - [coefficients[row, col] for col in range(row + 1, columns)], - [x[col] for col in range(row + 1, columns)], - ) + total = np.dot(coefficients[row, row + 1 :], x[row + 1 :]) x[row, 0] = (vector[row] - total) / coefficients[row, row] return x