From 9a4441c9460dd57b839475a580a45bbc2c4e1d6a Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 7 Apr 2011 22:18:38 +0800 Subject: [PATCH] (Strictly)Upper/Lower Triangle(): Now using iterations that only go through the necessary elements instead of having nested if statements. Reduced nesting and improved efficiency. --- src/Numerics/LinearAlgebra/Generic/Matrix.cs | 21 ++++++-------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/Numerics/LinearAlgebra/Generic/Matrix.cs b/src/Numerics/LinearAlgebra/Generic/Matrix.cs index adcd6e59..d9648503 100644 --- a/src/Numerics/LinearAlgebra/Generic/Matrix.cs +++ b/src/Numerics/LinearAlgebra/Generic/Matrix.cs @@ -519,12 +519,9 @@ namespace MathNet.Numerics.LinearAlgebra.Generic for (var row = 0; row < RowCount; row++) { - for (var column = 0; column < ColumnCount; column++) + for (var column = row; column < ColumnCount; column++) { - if (row <= column) - { - ret.At(row, column, At(row, column)); - } + ret.At(row, column, At(row, column)); } } @@ -751,12 +748,9 @@ namespace MathNet.Numerics.LinearAlgebra.Generic for (var row = 0; row < RowCount; row++) { - for (var column = 0; column < ColumnCount; column++) + for (var column = 0; column < row; column++) { - if (row > column) - { - result.At(row, column, At(row, column)); - } + result.At(row, column, At(row, column)); } } @@ -801,12 +795,9 @@ namespace MathNet.Numerics.LinearAlgebra.Generic for (var row = 0; row < RowCount; row++) { - for (var column = 0; column < ColumnCount; column++) + for (var column = row + 1; column < ColumnCount; column++) { - if (row < column) - { - result.At(row, column, At(row, column)); - } + result.At(row, column, At(row, column)); } }