From be231a8d455645180cb384a036b3a7a84476f941 Mon Sep 17 00:00:00 2001 From: Marcus Cuda Date: Thu, 13 Jan 2011 23:56:30 +0800 Subject: [PATCH] vector: changed row and column enumerator to return tuples as well --- .../LinearAlgebra/MatrixDataAccessor.cs | 4 +-- src/Examples/LinearAlgebra/MatrixNorms.cs | 8 +++--- src/Numerics/LinearAlgebra/Generic/Matrix.cs | 24 ++++++++-------- src/Numerics/LinearAlgebra/IO/MatlabWriter.cs | 28 +++++++++---------- .../Complex/DiagonalMatrixTests.cs | 4 +-- .../Complex32/DiagonalMatrixTests.cs | 4 +-- .../Double/DiagonalMatrixTests.cs | 4 +-- .../Single/DiagonalMatrixTests.cs | 4 +-- 8 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/Examples/LinearAlgebra/MatrixDataAccessor.cs b/src/Examples/LinearAlgebra/MatrixDataAccessor.cs index f0a35442..ce0a5fde 100644 --- a/src/Examples/LinearAlgebra/MatrixDataAccessor.cs +++ b/src/Examples/LinearAlgebra/MatrixDataAccessor.cs @@ -139,7 +139,7 @@ namespace Examples.LinearAlgebra Console.WriteLine(@"9. Get columns using column enumerator"); foreach (var keyValuePair in matrix.ColumnEnumerator(2, 4)) { - Console.WriteLine(@"Column {0}: {1}", keyValuePair.Key, keyValuePair.Value.ToString("#0.00\t", formatProvider)); + Console.WriteLine(@"Column {0}: {1}", keyValuePair.Item1, keyValuePair.Item2.ToString("#0.00\t", formatProvider)); } Console.WriteLine(); @@ -148,7 +148,7 @@ namespace Examples.LinearAlgebra Console.WriteLine(@"10. Get rows using row enumerator"); foreach (var keyValuePair in matrix.RowEnumerator(4, 3)) { - Console.WriteLine(@"Row {0}: {1}", keyValuePair.Key, keyValuePair.Value.ToString("#0.00\t", formatProvider)); + Console.WriteLine(@"Row {0}: {1}", keyValuePair.Item1, keyValuePair.Item2.ToString("#0.00\t", formatProvider)); } Console.WriteLine(); diff --git a/src/Examples/LinearAlgebra/MatrixNorms.cs b/src/Examples/LinearAlgebra/MatrixNorms.cs index 39a765a6..ff95a41a 100644 --- a/src/Examples/LinearAlgebra/MatrixNorms.cs +++ b/src/Examples/LinearAlgebra/MatrixNorms.cs @@ -97,7 +97,7 @@ namespace Examples.LinearAlgebra Console.WriteLine(@"5. Normalize matrix columns: before normalize"); foreach (var keyValuePair in matrix.ColumnEnumerator()) { - Console.WriteLine(@"Column {0} 2-nd norm is: {1}", keyValuePair.Key, keyValuePair.Value.Norm(2)); + Console.WriteLine(@"Column {0} 2-nd norm is: {1}", keyValuePair.Item1, keyValuePair.Item2.Norm(2)); } Console.WriteLine(); @@ -105,7 +105,7 @@ namespace Examples.LinearAlgebra Console.WriteLine(@"5. Normalize matrix columns: after normalize"); foreach (var keyValuePair in normalized.ColumnEnumerator()) { - Console.WriteLine(@"Column {0} 2-nd norm is: {1}", keyValuePair.Key, keyValuePair.Value.Norm(2)); + Console.WriteLine(@"Column {0} 2-nd norm is: {1}", keyValuePair.Item1, keyValuePair.Item2.Norm(2)); } Console.WriteLine(); @@ -114,7 +114,7 @@ namespace Examples.LinearAlgebra Console.WriteLine(@"6. Normalize matrix rows: before normalize"); foreach (var keyValuePair in matrix.RowEnumerator()) { - Console.WriteLine(@"Row {0} 2-nd norm is: {1}", keyValuePair.Key, keyValuePair.Value.Norm(2)); + Console.WriteLine(@"Row {0} 2-nd norm is: {1}", keyValuePair.Item1, keyValuePair.Item2.Norm(2)); } Console.WriteLine(); @@ -122,7 +122,7 @@ namespace Examples.LinearAlgebra Console.WriteLine(@"6. Normalize matrix rows: after normalize"); foreach (var keyValuePair in normalized.RowEnumerator()) { - Console.WriteLine(@"Row {0} 2-nd norm is: {1}", keyValuePair.Key, keyValuePair.Value.Norm(2)); + Console.WriteLine(@"Row {0} 2-nd norm is: {1}", keyValuePair.Item1, keyValuePair.Item2.Norm(2)); } } } diff --git a/src/Numerics/LinearAlgebra/Generic/Matrix.cs b/src/Numerics/LinearAlgebra/Generic/Matrix.cs index f98ff2a9..a38faf5d 100644 --- a/src/Numerics/LinearAlgebra/Generic/Matrix.cs +++ b/src/Numerics/LinearAlgebra/Generic/Matrix.cs @@ -637,11 +637,11 @@ namespace MathNet.Numerics.LinearAlgebra.Generic /// /// An that enumerates over the matrix columns /// - public virtual IEnumerable>> ColumnEnumerator() + public virtual IEnumerable>> ColumnEnumerator() { for (var i = 0; i < ColumnCount; i++) { - yield return new KeyValuePair>(i, Column(i)); + yield return new Tuple>(i, Column(i)); } } @@ -658,7 +658,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic /// (index + length) >= Columns. /// /// If is not positive. - public virtual IEnumerable>> ColumnEnumerator(int index, int length) + public virtual IEnumerable>> ColumnEnumerator(int index, int length) { if (index >= ColumnCount || index < 0) { @@ -678,7 +678,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic var maxIndex = index + length; for (var i = index; i < maxIndex; i++) { - yield return new KeyValuePair>(i, Column(i)); + yield return new Tuple>(i, Column(i)); } } @@ -694,7 +694,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic /// or greater than or equal to the number of rows. /// (index + length) >= Rows. /// If is not positive. - public virtual IEnumerable>> RowEnumerator(int index, int length) + public virtual IEnumerable>> RowEnumerator(int index, int length) { if (index >= RowCount || index < 0) { @@ -714,7 +714,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic var maxi = index + length; for (var i = index; i < maxi; i++) { - yield return new KeyValuePair>(i, Row(i)); + yield return new Tuple>(i, Row(i)); } } @@ -723,11 +723,11 @@ namespace MathNet.Numerics.LinearAlgebra.Generic /// /// An that enumerates over the matrix rows /// - public virtual IEnumerable>> RowEnumerator() + public virtual IEnumerable>> RowEnumerator() { for (var i = 0; i < RowCount; i++) { - yield return new KeyValuePair>(i, Row(i)); + yield return new Tuple>(i, Row(i)); } } @@ -1250,8 +1250,8 @@ namespace MathNet.Numerics.LinearAlgebra.Generic var ret = new T[RowCount * ColumnCount]; foreach (var column in ColumnEnumerator()) { - var columnIndex = column.Key * RowCount; - foreach (var element in column.Value.GetIndexedEnumerator()) + var columnIndex = column.Item1 * RowCount; + foreach (var element in column.Item2.GetIndexedEnumerator()) { ret[columnIndex + element.Item1] = element.Item2; } @@ -1275,8 +1275,8 @@ namespace MathNet.Numerics.LinearAlgebra.Generic foreach (var row in RowEnumerator()) { - var rowIndex = row.Key * ColumnCount; - foreach (var element in row.Value.GetIndexedEnumerator()) + var rowIndex = row.Item1 * ColumnCount; + foreach (var element in row.Item2.GetIndexedEnumerator()) { ret[rowIndex + element.Item1] = element.Item2; } diff --git a/src/Numerics/LinearAlgebra/IO/MatlabWriter.cs b/src/Numerics/LinearAlgebra/IO/MatlabWriter.cs index fc6292bd..815c0669 100644 --- a/src/Numerics/LinearAlgebra/IO/MatlabWriter.cs +++ b/src/Numerics/LinearAlgebra/IO/MatlabWriter.cs @@ -481,7 +481,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item1); } @@ -500,7 +500,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO int count = 0; foreach (var column in matrix.ColumnEnumerator()) { - count += ((Double.SparseVector)column.Value).NonZerosCount; + count += ((Double.SparseVector)column.Item2).NonZerosCount; dataWriter.Write(count); } @@ -516,7 +516,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item2); } @@ -549,7 +549,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item1); } @@ -568,7 +568,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO int count = 0; foreach (var column in matrix.ColumnEnumerator()) { - count += ((Single.SparseVector)column.Value).NonZerosCount; + count += ((Single.SparseVector)column.Item2).NonZerosCount; dataWriter.Write(count); } @@ -584,7 +584,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item2); } @@ -620,7 +620,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item1); } @@ -639,7 +639,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO int count = 0; foreach (var column in matrix.ColumnEnumerator()) { - count += ((Complex.SparseVector)column.Value).NonZerosCount; + count += ((Complex.SparseVector)column.Item2).NonZerosCount; dataWriter.Write(count); } @@ -655,7 +655,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item2.Real); } @@ -666,7 +666,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item2.Real); } @@ -699,7 +699,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item1); } @@ -718,7 +718,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO int count = 0; foreach (var column in matrix.ColumnEnumerator()) { - count += ((Complex32.SparseVector)column.Value).NonZerosCount; + count += ((Complex32.SparseVector)column.Item2).NonZerosCount; dataWriter.Write(count); } @@ -734,7 +734,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item2.Real); } @@ -748,7 +748,7 @@ namespace MathNet.Numerics.LinearAlgebra.IO foreach (var column in matrix.ColumnEnumerator()) { - foreach (var row in column.Value.GetIndexedEnumerator()) + foreach (var row in column.Item2.GetIndexedEnumerator()) { dataWriter.Write(row.Item2.Real); } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs index cf969338..acca934a 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs @@ -556,7 +556,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex item = enumerator.Current; Assert.AreEqual(1, item.Item1); Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); + Assert.AreEqual(Complex.Zero, item.Item3); enumerator.MoveNext(); item = enumerator.Current; @@ -580,7 +580,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex item = enumerator.Current; Assert.AreEqual(2, item.Item1); Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex(2.0, 1.0), item.Item3); + Assert.AreEqual(new Complex(3.0, 1.0), item.Item3); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs index d1ba3e6f..450beaa6 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs @@ -556,7 +556,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 item = enumerator.Current; Assert.AreEqual(1, item.Item1); Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); + Assert.AreEqual(Complex32.Zero, item.Item3); enumerator.MoveNext(); item = enumerator.Current; @@ -580,7 +580,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 item = enumerator.Current; Assert.AreEqual(2, item.Item1); Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3); + Assert.AreEqual(new Complex32(3.0f, 1.0f), item.Item3); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs index 20b6796f..dd6a47c9 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs @@ -556,7 +556,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double item = enumerator.Current; Assert.AreEqual(1, item.Item1); Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0, item.Item3); + Assert.AreEqual(0.0, item.Item3); enumerator.MoveNext(); item = enumerator.Current; @@ -580,7 +580,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double item = enumerator.Current; Assert.AreEqual(2, item.Item1); Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0, item.Item3); + Assert.AreEqual(3.0, item.Item3); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs index c3b6b7cb..582454d2 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs @@ -555,7 +555,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single item = enumerator.Current; Assert.AreEqual(1, item.Item1); Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0f, item.Item3); + Assert.AreEqual(0.0f, item.Item3); enumerator.MoveNext(); item = enumerator.Current; @@ -579,7 +579,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single item = enumerator.Current; Assert.AreEqual(2, item.Item1); Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0f, item.Item3); + Assert.AreEqual(3.0f, item.Item3); } } }