From a52c2c1b9e04665f59634170f2be1465802152bd Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Tue, 10 Dec 2013 21:50:59 +0100 Subject: [PATCH] Providers: fix tests against native providers --- .../Mkl/MklLinearAlgebraProvider.Complex.cs | 8 +- .../Mkl/MklLinearAlgebraProvider.Complex32.cs | 8 +- .../Mkl/MklLinearAlgebraProvider.Single.cs | 8 +- .../Multivariate/InverseWishartTests.cs | 1 - .../Complex/LinearAlgebraProviderTests.cs | 84 ++++++------ .../Complex32/LinearAlgebraProviderTests.cs | 52 +++---- .../Double/LinearAlgebraProviderTests.cs | 129 +++++++++--------- .../Single/LinearAlgebraProviderTests.cs | 36 ++--- .../Complex/MatrixTests.Arithmetic.cs | 18 +-- .../LinearAlgebraTests/Complex/MatrixTests.cs | 7 +- .../Complex/Solvers/Iterative/TFQMRTest.cs | 15 +- .../Complex/Solvers/IteratorTest.cs | 1 - .../IterationCountStopCriteriumTest.cs | 1 - .../ResidualStopCriteriumTest.cs | 1 - .../Factorization/GramSchmidtTests.cs | 4 +- .../Complex32/MatrixTests.Arithmetic.cs | 24 ++-- .../Complex32/MatrixTests.cs | 6 +- .../Complex32/Solvers/Iterative/TFQMRTest.cs | 15 +- .../Complex32/Solvers/IteratorTest.cs | 1 - .../IterationCountStopCriteriumTest.cs | 1 - .../Double/Factorization/QRTests.cs | 10 +- .../Double/MatrixTests.Arithmetic.cs | 22 +-- .../Double/Solvers/Iterative/TFQMRTest.cs | 15 +- .../Double/Solvers/IteratorTest.cs | 1 - .../DivergenceStopCriteriumTest.cs | 1 - .../IterationCountStopCriteriumTest.cs | 1 - .../Single/Factorization/EvdTests.cs | 4 +- .../Single/Factorization/GramSchmidtTests.cs | 4 +- .../Single/Factorization/QRTests.cs | 8 +- .../Single/MatrixTests.Arithmetic.cs | 28 ++-- .../Single/Solvers/Iterative/TFQMRTest.cs | 15 +- .../Single/Solvers/IteratorTest.cs | 1 - .../DivergenceStopCriteriumTest.cs | 1 - .../IterationCountStopCriteriumTest.cs | 1 - 34 files changed, 242 insertions(+), 290 deletions(-) diff --git a/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex.cs b/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex.cs index 44226a5f..7a4b8e71 100644 --- a/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex.cs +++ b/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex.cs @@ -774,7 +774,7 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Mkl throw new ArgumentNullException("q"); } - if (q.Length != rowsA * columnsA) + if (q.Length != rowsA*columnsA) { throw new ArgumentException(string.Format(Resources.ArgumentArrayWrongLength, "rowsR * columnsR"), "q"); } @@ -784,15 +784,15 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Mkl throw new ArgumentException(string.Format(Resources.ArrayTooSmall, "min(m,n)"), "tau"); } - if (r.Length != columnsA * columnsA) + if (r.Length != columnsA*columnsA) { throw new ArgumentException( string.Format(Resources.ArgumentArrayWrongLength, "columnsA * columnsA"), "r"); } - if (work.Length < columnsA * Control.BlockSize) + if (work.Length < columnsA*Control.BlockSize) { - work[0] = columnsA * Control.BlockSize; + work[0] = columnsA*Control.BlockSize; throw new ArgumentException(Resources.WorkArrayTooSmall, "work"); } diff --git a/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex32.cs b/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex32.cs index fea0881e..01322ae4 100644 --- a/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex32.cs +++ b/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Complex32.cs @@ -773,7 +773,7 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Mkl throw new ArgumentNullException("q"); } - if (q.Length != rowsA * columnsA) + if (q.Length != rowsA*columnsA) { throw new ArgumentException(string.Format(Resources.ArgumentArrayWrongLength, "rowsR * columnsR"), "q"); } @@ -783,15 +783,15 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Mkl throw new ArgumentException(string.Format(Resources.ArrayTooSmall, "min(m,n)"), "tau"); } - if (r.Length != columnsA * columnsA) + if (r.Length != columnsA*columnsA) { throw new ArgumentException( string.Format(Resources.ArgumentArrayWrongLength, "columnsA * columnsA"), "r"); } - if (work.Length < columnsA * Control.BlockSize) + if (work.Length < columnsA*Control.BlockSize) { - work[0] = columnsA * Control.BlockSize; + work[0] = columnsA*Control.BlockSize; throw new ArgumentException(Resources.WorkArrayTooSmall, "work"); } diff --git a/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Single.cs b/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Single.cs index 7a9cd46c..0297d638 100644 --- a/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Single.cs +++ b/src/Numerics/Providers/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Single.cs @@ -774,7 +774,7 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Mkl throw new ArgumentNullException("q"); } - if (q.Length != rowsA * columnsA) + if (q.Length != rowsA*columnsA) { throw new ArgumentException(string.Format(Resources.ArgumentArrayWrongLength, "rowsR * columnsR"), "q"); } @@ -784,15 +784,15 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Mkl throw new ArgumentException(string.Format(Resources.ArrayTooSmall, "min(m,n)"), "tau"); } - if (r.Length != columnsA * columnsA) + if (r.Length != columnsA*columnsA) { throw new ArgumentException( string.Format(Resources.ArgumentArrayWrongLength, "columnsA * columnsA"), "r"); } - if (work.Length < columnsA * Control.BlockSize) + if (work.Length < columnsA*Control.BlockSize) { - work[0] = columnsA * Control.BlockSize; + work[0] = columnsA*Control.BlockSize; throw new ArgumentException(Resources.WorkArrayTooSmall, "work"); } diff --git a/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs b/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs index 8c325c28..432b7295 100644 --- a/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs @@ -28,7 +28,6 @@ using System; using MathNet.Numerics.Distributions; using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Double; -using MathNet.Numerics.Random; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate diff --git a/src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs b/src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs index c8763dd2..7508a520 100644 --- a/src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs +++ b/src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs @@ -54,12 +54,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex /// /// The Y Complex test vector. /// - readonly Complex[] _y = new[] {new Complex(1.1, 0), 2.2, 3.3, 4.4, 5.5}; + readonly Complex[] _y = {new Complex(1.1, 0), 2.2, 3.3, 4.4, 5.5}; /// /// The X Complex test vector. /// - readonly Complex[] _x = new[] {new Complex(6.6, 0), 7.7, 8.8, 9.9, 10.1}; + readonly Complex[] _x = {new Complex(6.6, 0), 7.7, 8.8, 9.9, 10.1}; static readonly IContinuousDistribution Dist = new Normal(); @@ -245,7 +245,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex { for (var j = 0; j < c.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(x.Row(i)*y.Column(j), c[i, j], 15); + AssertHelpers.AlmostEqualRelative(x.Row(i)*y.Column(j), c[i, j], 14); } } } @@ -266,7 +266,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex { for (var j = 0; j < c.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(x.Row(i)*y.Column(j), c[i, j], 15); + AssertHelpers.AlmostEqualRelative(x.Row(i)*y.Column(j), c[i, j], 14); } } } @@ -287,7 +287,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex { for (var j = 0; j < c.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(x.Row(i)*y.Column(j), c[i, j], 15); + AssertHelpers.AlmostEqualRelative(x.Row(i)*y.Column(j), c[i, j], 14); } } } @@ -308,7 +308,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex { for (var j = 0; j < c.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(2.2*x.Row(i)*y.Column(j), c[i, j], 15); + AssertHelpers.AlmostEqualRelative(2.2*x.Row(i)*y.Column(j), c[i, j], 14); } } } @@ -329,7 +329,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex { for (var j = 0; j < c.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(2.2*x.Row(i)*y.Column(j), c[i, j], 15); + AssertHelpers.AlmostEqualRelative(2.2*x.Row(i)*y.Column(j), c[i, j], 14); } } } @@ -350,7 +350,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex { for (var j = 0; j < c.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(2.2*x.Row(i)*y.Column(j), c[i, j], 15); + AssertHelpers.AlmostEqualRelative(2.2*x.Row(i)*y.Column(j), c[i, j], 14); } } } @@ -500,12 +500,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var b = new[] {new Complex(1.0, 0), 2.0, 3.0, 4.0, 5.0, 6.0}; Control.LinearAlgebraProvider.LUSolve(2, a, matrix.RowCount, b); - AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 14); - AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 14); - AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 14); - AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 14); - AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 14); - AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 14); + AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 13); + AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 13); + AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 13); + AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 13); + AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 13); + AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 13); NotModified(matrix.RowCount, matrix.ColumnCount, a, matrix); } @@ -526,12 +526,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var b = new[] {new Complex(1.0, 0), 2.0, 3.0, 4.0, 5.0, 6.0}; Control.LinearAlgebraProvider.LUSolveFactored(2, a, matrix.RowCount, ipiv, b); - AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 14); - AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 14); - AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 14); - AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 14); - AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 14); - AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 14); + AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 13); + AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 13); + AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 13); + AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 13); + AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 13); + AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 13); } /// @@ -834,7 +834,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var q = new Complex[matrix.RowCount*matrix.ColumnCount]; Array.Copy(matrix.Values, q, q.Length); - var work = new Complex[matrix.RowCount*matrix.ColumnCount]; + var work = new Complex[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); @@ -862,7 +862,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var q = new Complex[matrix.RowCount*matrix.ColumnCount]; Array.Copy(matrix.Values, q, q.Length); - var work = new Complex[matrix.RowCount*matrix.ColumnCount]; + var work = new Complex[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); @@ -1563,12 +1563,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 13); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 13); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 13); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 13); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 13); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 13); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 13); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 13); } /// @@ -1590,10 +1590,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 13); } /// @@ -1620,12 +1620,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 13); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 13); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 13); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 13); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 13); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 13); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 13); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 13); } /// @@ -1652,10 +1652,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 13); } [TestCase("Wide10x50000", "Tall50000x10")] diff --git a/src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs b/src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs index ee6d3102..d13ea874 100644 --- a/src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs +++ b/src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs @@ -50,12 +50,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 /// /// The Y Complex32 test vector. /// - readonly Complex32[] _y = new[] {new Complex32(1.1f, 0f), 2.2f, 3.3f, 4.4f, 5.5f}; + readonly Complex32[] _y = {new Complex32(1.1f, 0f), 2.2f, 3.3f, 4.4f, 5.5f}; /// /// The X Complex32 test vector. /// - readonly Complex32[] _x = new[] {new Complex32(6.6f, 0f), 7.7f, 8.8f, 9.9f, 10.1f}; + readonly Complex32[] _x = {new Complex32(6.6f, 0f), 7.7f, 8.8f, 9.9f, 10.1f}; static readonly IContinuousDistribution Dist = new Normal(); @@ -696,10 +696,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 { var matrix = _matrices["Square3x3"]; var r = new Complex32[matrix.RowCount*matrix.ColumnCount]; - Array.Copy(matrix.Values, r, r.Length); - var tau = new Complex32[3]; var q = new Complex32[matrix.RowCount*matrix.RowCount]; + Array.Copy(matrix.Values, r, r.Length); + var work = new Complex32[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau, work); @@ -838,7 +838,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 var q = new Complex32[matrix.RowCount*matrix.ColumnCount]; Array.Copy(matrix.Values, q, q.Length); - var work = new Complex32[matrix.RowCount*matrix.ColumnCount]; + var work = new Complex32[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); @@ -866,7 +866,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 var q = new Complex32[matrix.RowCount*matrix.ColumnCount]; Array.Copy(matrix.Values, q, q.Length); - var work = new Complex32[matrix.RowCount*matrix.ColumnCount]; + var work = new Complex32[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); @@ -1568,12 +1568,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 5); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 5); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 4); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 4); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 4); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 4); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 5); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 5); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 4); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 4); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 4); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 4); } /// @@ -1595,10 +1595,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 5); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 5); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 5); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 5); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 5); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 5); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 5); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 5); } /// @@ -1625,12 +1625,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 5); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 5); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 4); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 4); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 4); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 4); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 5); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 5); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 4); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 4); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 4); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 4); } /// @@ -1657,10 +1657,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32 var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 5); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 5); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 5); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 5); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 5); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 5); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 5); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 5); } [TestCase("Wide10x50000", "Tall50000x10")] diff --git a/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs b/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs index 56045c62..c6a9039a 100644 --- a/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs +++ b/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs @@ -494,12 +494,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var b = new[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; Control.LinearAlgebraProvider.LUSolve(2, a, matrix.RowCount, b); - AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 14); - AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 14); - AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 14); - AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 14); - AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 14); - AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 14); + AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 13); + AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 13); + AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 13); + AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 13); + AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 13); + AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 13); NotModified(matrix.RowCount, matrix.ColumnCount, a, matrix); } @@ -520,12 +520,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var b = new[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; Control.LinearAlgebraProvider.LUSolveFactored(2, a, matrix.RowCount, ipiv, b); - AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 14); - AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 14); - AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 14); - AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 14); - AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 14); - AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 14); + AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726, 13); + AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815, 13); + AssertHelpers.AlmostEqualRelative(b[2], 3.068181818181816, 13); + AssertHelpers.AlmostEqualRelative(b[3], -4.204545454545451, 13); + AssertHelpers.AlmostEqualRelative(b[4], -12.499999999999989, 13); + AssertHelpers.AlmostEqualRelative(b[5], 8.522727272727266, 13); } /// @@ -833,7 +833,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); var mr = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, r); - var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -918,10 +917,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -974,10 +973,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1032,10 +1031,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1092,10 +1091,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1144,10 +1143,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1200,10 +1199,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1258,10 +1257,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1318,10 +1317,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); + AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 13); + AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 13); + AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 13); } /// @@ -1559,12 +1558,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 13); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 13); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 13); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 13); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 13); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 13); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 13); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 13); } /// @@ -1586,10 +1585,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 14); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 14); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 14); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 14); } /// @@ -1616,12 +1615,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 13); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 13); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 13); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 13); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 13); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 13); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 13); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 13); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 13); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 13); } /// @@ -1648,10 +1647,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 14); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 14); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 14); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 14); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 14); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 14); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 14); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 14); } [TestCase("Wide10x50000", "Tall50000x10")] diff --git a/src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs b/src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs index f1376f6b..3a52ff78 100644 --- a/src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs +++ b/src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs @@ -836,7 +836,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single var q = new float[matrix.RowCount*matrix.ColumnCount]; Array.Copy(matrix.Values, q, q.Length); - var work = new float[matrix.RowCount*matrix.ColumnCount]; + var work = new float[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); @@ -864,7 +864,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single var q = new float[matrix.RowCount*matrix.ColumnCount]; Array.Copy(matrix.Values, q, q.Length); - var work = new float[matrix.RowCount*matrix.ColumnCount]; + var work = new float[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); @@ -1566,12 +1566,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 5); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 5); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 4); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 4); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 5); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 5); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 5); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 5); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 4); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 4); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 4); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 4); } /// @@ -1593,10 +1593,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single var mb = new DenseMatrix(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; - AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 5); - AssertHelpers.AlmostEqualRelative(test[1, 0], x[1], 5); - AssertHelpers.AlmostEqualRelative(test[0, 1], x[2], 5); - AssertHelpers.AlmostEqualRelative(test[1, 1], x[3], 5); + AssertHelpers.AlmostEqual(test[0, 0], x[0], 5); + AssertHelpers.AlmostEqual(test[1, 0], x[1], 5); + AssertHelpers.AlmostEqual(test[0, 1], x[2], 5); + AssertHelpers.AlmostEqual(test[1, 1], x[3], 5); } /// @@ -1623,12 +1623,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single var mx = new DenseMatrix(matrix.ColumnCount, 2, x); var mb = matrix*mx; - AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 5); - AssertHelpers.AlmostEqualRelative(mb[1, 0], b[1], 5); - AssertHelpers.AlmostEqualRelative(mb[2, 0], b[2], 4); - AssertHelpers.AlmostEqualRelative(mb[0, 1], b[3], 4); - AssertHelpers.AlmostEqualRelative(mb[1, 1], b[4], 5); - AssertHelpers.AlmostEqualRelative(mb[2, 1], b[5], 5); + AssertHelpers.AlmostEqual(mb[0, 0], b[0], 5); + AssertHelpers.AlmostEqual(mb[1, 0], b[1], 5); + AssertHelpers.AlmostEqual(mb[2, 0], b[2], 4); + AssertHelpers.AlmostEqual(mb[0, 1], b[3], 4); + AssertHelpers.AlmostEqual(mb[1, 1], b[4], 4); + AssertHelpers.AlmostEqual(mb[2, 1], b[5], 4); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.Arithmetic.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.Arithmetic.cs index 2d450e16..7c371dee 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.Arithmetic.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.Arithmetic.cs @@ -429,7 +429,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 12); } } } @@ -455,7 +455,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 12); } } } @@ -489,7 +489,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 14); } } } @@ -527,7 +527,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 12); } } } @@ -567,7 +567,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 12); } } } @@ -666,7 +666,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 12); } } } @@ -704,7 +704,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 12); } } } @@ -843,7 +843,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex for (var j = 0; j < result.ColumnCount; j++) { var col = result.Column(j); - AssertHelpers.AlmostEqualRelative(Complex.One, col.Norm(p), 12); + AssertHelpers.AlmostEqual(Complex.One, col.Norm(p), 12); } } @@ -868,7 +868,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex for (var i = 0; i < matrix.RowCount; i++) { var row = matrix.Row(i); - AssertHelpers.AlmostEqualRelative(Complex.One, row.Norm(p), 12); + AssertHelpers.AlmostEqual(Complex.One, row.Norm(p), 12); } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs index 0e8d70fa..1161c4a1 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs @@ -140,12 +140,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex public virtual void CanComputeL2Norm() { var matrix = TestMatrices["Square3x3"]; - AssertHelpers.AlmostEqualRelative(10.638175225153, matrix.L2Norm(), 14); + AssertHelpers.AlmostEqualRelative(10.638175225153, matrix.L2Norm(), 12); matrix = TestMatrices["Wide2x3"]; - AssertHelpers.AlmostEqualRelative(5.2058554445283, matrix.L2Norm(), 14); + AssertHelpers.AlmostEqualRelative(5.2058554445283, matrix.L2Norm(), 12); + matrix = TestMatrices["Tall3x2"]; - AssertHelpers.AlmostEqualRelative(7.35826643761172, matrix.L2Norm(), 14); + AssertHelpers.AlmostEqualRelative(7.35826643761172, matrix.L2Norm(), 12); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs index 701f6882..753ac4a8 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs @@ -120,10 +120,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, (y[i] - z[i]).Magnitude, "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -164,10 +161,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, (y[i] - z[i]).Magnitude, "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -241,10 +235,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, (y[i] - z[i]).Magnitude, "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs index 290f0c44..0398f145 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/IteratorTest.cs @@ -31,7 +31,6 @@ using System; using System.Collections.Generic; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs index c8dcde6f..2228f52e 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs @@ -30,7 +30,6 @@ using System; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs index 3a867af8..26c0aeb1 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/StopCriterium/ResidualStopCriteriumTest.cs @@ -31,7 +31,6 @@ using System; using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; -using MathNet.Numerics.LinearAlgebra.Complex.Solvers; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs index 47a710c1..7341b9b8 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs @@ -398,7 +398,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { for (var j = 0; j < matrixX.ColumnCount; j++) { - AssertHelpers.AlmostEqual(test[i, j], matrixX[i, j], 6); + AssertHelpers.AlmostEqual(test[i, j], matrixX[i, j], 5); } } @@ -432,7 +432,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization for (var i = 0; i < vectorX.Count; i++) { - AssertHelpers.AlmostEqual(test[i], vectorX[i], 6); + AssertHelpers.AlmostEqual(test[i], vectorX[i], 5); } // Make sure A didn't change. diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.Arithmetic.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.Arithmetic.cs index 98aecf1e..71688d77 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.Arithmetic.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.Arithmetic.cs @@ -425,7 +425,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -451,7 +451,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 5); } } } @@ -485,7 +485,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 5); } } } @@ -523,7 +523,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 5); } } } @@ -563,7 +563,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -584,7 +584,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { var ar = matrix.Column(j); var dot = ar * x; - AssertHelpers.AlmostEqualRelative(dot, y[j], 6); + AssertHelpers.AlmostEqual(dot, y[j], 5); } } @@ -603,7 +603,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { var ar = matrix.Column(j); var dot = ar * x; - AssertHelpers.AlmostEqualRelative(dot, y[j], 6); + AssertHelpers.AlmostEqual(dot, y[j], 5); } } @@ -625,7 +625,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { var ar = matrix.Column(j); var dot = ar * y; - AssertHelpers.AlmostEqualRelative(dot, x[j], 6); + AssertHelpers.AlmostEqual(dot, x[j], 5); } } @@ -662,7 +662,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -700,7 +700,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -839,7 +839,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 for (var j = 0; j < result.ColumnCount; j++) { var col = result.Column(j); - AssertHelpers.AlmostEqualRelative(1d, col.Norm(p), 6); + AssertHelpers.AlmostEqual(1d, col.Norm(p), 5); } } @@ -864,7 +864,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 for (var i = 0; i < matrix.RowCount; i++) { var row = matrix.Row(i); - AssertHelpers.AlmostEqualRelative(1d, row.Norm(p), 6); + AssertHelpers.AlmostEqual(1d, row.Norm(p), 5); } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs index 313c7217..936977a0 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs @@ -92,13 +92,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 public virtual void CanComputeFrobeniusNorm() { var matrix = TestMatrices["Square3x3"]; - AssertHelpers.AlmostEqual(11.1427106217473f, matrix.FrobeniusNorm(), 6); + AssertHelpers.AlmostEqual(11.1427106217473f, matrix.FrobeniusNorm(), 5); matrix = TestMatrices["Wide2x3"]; - AssertHelpers.AlmostEqual(5.29055762656452f, matrix.FrobeniusNorm(), 6); + AssertHelpers.AlmostEqual(5.29055762656452f, matrix.FrobeniusNorm(), 5); matrix = TestMatrices["Tall3x2"]; - AssertHelpers.AlmostEqual(7.86574853399217, matrix.FrobeniusNorm(), 6); + AssertHelpers.AlmostEqual(7.86574853399217, matrix.FrobeniusNorm(), 5); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs index 929d1529..6421f5a6 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs @@ -116,10 +116,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, (y[i] - z[i]).Magnitude, "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -160,10 +157,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, (y[i] - z[i]).Magnitude, "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -237,10 +231,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, (y[i] - z[i]).Magnitude, "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs index 19aa3309..e7f8855d 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/IteratorTest.cs @@ -31,7 +31,6 @@ using System; using System.Collections.Generic; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs index a65e97f3..efb4bb41 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs @@ -30,7 +30,6 @@ using System; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs index 8b95d7a7..e1bb6e93 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs @@ -473,7 +473,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization // Check the reconstruction. for (var i = 0; i < order; i++) { - AssertHelpers.AlmostEqualRelative(vectorb[i], matrixBReconstruct[i], 9); + AssertHelpers.AlmostEqual(vectorb[i], matrixBReconstruct[i], 9); } // Make sure A didn't change. @@ -518,7 +518,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization { for (var j = 0; j < matrixB.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixB[i, j], matrixBReconstruct[i, j], 9); + AssertHelpers.AlmostEqual(matrixB[i, j], matrixBReconstruct[i, j], 9); } } @@ -559,7 +559,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization // Check the reconstruction. for (var i = 0; i < vectorb.Count; i++) { - AssertHelpers.AlmostEqualRelative(vectorb[i], matrixBReconstruct[i], 9); + AssertHelpers.AlmostEqual(vectorb[i], matrixBReconstruct[i], 9); } // Make sure A didn't change. @@ -613,7 +613,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization { for (var j = 0; j < matrixB.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixB[i, j], matrixBReconstruct[i, j], 9); + AssertHelpers.AlmostEqual(matrixB[i, j], matrixBReconstruct[i, j], 9); } } @@ -699,7 +699,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization for (var i = 0; i < vectorX.Count; i++) { - AssertHelpers.AlmostEqualRelative(test[i], vectorX[i], 9); + AssertHelpers.AlmostEqual(test[i], vectorX[i], 9); } // Make sure A didn't change. diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs index 3937de25..80fb7e8c 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs @@ -419,7 +419,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 15); } } } @@ -445,7 +445,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); } } } @@ -479,7 +479,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); } } } @@ -517,7 +517,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 15); } } } @@ -557,7 +557,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 15); } } } @@ -656,7 +656,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 15); } } } @@ -694,7 +694,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 15); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 15); } } } @@ -1021,7 +1021,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(matrix[row, column] % 3.2, mod[row, column], 14); + AssertHelpers.AlmostEqual(matrix[row, column] % 3.2, mod[row, column], 14); } } } @@ -1040,7 +1040,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(matrix[row, column] % 3.2, mod[row, column], 14); + AssertHelpers.AlmostEqual(matrix[row, column] % 3.2, mod[row, column], 14); } } } @@ -1059,7 +1059,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(data[row, column] % 3.2, matrix[row, column], 14); + AssertHelpers.AlmostEqual(data[row, column] % 3.2, matrix[row, column], 14); } } } @@ -1076,7 +1076,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(matrix[row, column] % 3.2, mod[row, column], 14); + AssertHelpers.AlmostEqual(matrix[row, column] % 3.2, mod[row, column], 14); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs index 46f26cf2..10ed3716 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs @@ -114,10 +114,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, Math.Abs(y[i] - z[i]), "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -158,10 +155,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, Math.Abs(y[i] - z[i]), "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -235,10 +229,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, Math.Abs(y[i] - z[i]), "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs index 7b37abf8..a9b66d01 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/IteratorTest.cs @@ -31,7 +31,6 @@ using System; using System.Collections.Generic; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Double; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs index 517ab1ea..79f04b72 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs @@ -31,7 +31,6 @@ using System; using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Double; -using MathNet.Numerics.LinearAlgebra.Double.Solvers; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs index c17af6a9..a4f54af1 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs @@ -30,7 +30,6 @@ using System; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Double; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs index c49cc43a..8d03f4d7 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs @@ -213,7 +213,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization // Check the reconstruction. for (var i = 0; i < vectorb.Count; i++) { - Assert.AreEqual(vectorb[i], matrixBReconstruct[i], 1e-3); + Assert.AreEqual(vectorb[i], matrixBReconstruct[i], 1e-2); } // Make sure A didn't change. @@ -301,7 +301,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization // Check the reconstruction. for (var i = 0; i < vectorb.Count; i++) { - Assert.AreEqual(vectorb[i], matrixBReconstruct[i], 1e-3); + Assert.AreEqual(vectorb[i], matrixBReconstruct[i], 1e-2); } // Make sure A didn't change. diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs index 1ff4ce2e..6a339911 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs @@ -372,7 +372,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { for (var j = 0; j < matrixX.ColumnCount; j++) { - AssertHelpers.AlmostEqual(test[i, j], matrixX[i, j], 6); + AssertHelpers.AlmostEqual(test[i, j], matrixX[i, j], 5); } } @@ -406,7 +406,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization for (var i = 0; i < vectorX.Count; i++) { - AssertHelpers.AlmostEqual(test[i], vectorX[i], 6); + AssertHelpers.AlmostEqual(test[i], vectorX[i], 5); } // Make sure A didn't change. diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs index d24dc5a1..f533847f 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs @@ -474,7 +474,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization // Check the reconstruction. for (var i = 0; i < order; i++) { - AssertHelpers.AlmostEqualRelative(vectorb[i], matrixBReconstruct[i], 3); + AssertHelpers.AlmostEqual(vectorb[i], matrixBReconstruct[i], 3); } // Make sure A didn't change. @@ -560,7 +560,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization // Check the reconstruction. for (var i = 0; i < vectorb.Count; i++) { - AssertHelpers.AlmostEqualRelative(vectorb[i], matrixBReconstruct[i], 3); + AssertHelpers.AlmostEqual(vectorb[i], matrixBReconstruct[i], 3); } // Make sure A didn't change. @@ -664,7 +664,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { for (var j = 0; j < matrixX.ColumnCount; j++) { - AssertHelpers.AlmostEqual(test[i, j], matrixX[i, j], 6); + AssertHelpers.AlmostEqual(test[i, j], matrixX[i, j], 5); } } @@ -700,7 +700,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization for (var i = 0; i < vectorX.Count; i++) { - AssertHelpers.AlmostEqual(test[i], vectorX[i], 6); + AssertHelpers.AlmostEqual(test[i], vectorX[i], 5); } // Make sure A didn't change. diff --git a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.Arithmetic.cs b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.Arithmetic.cs index bb4e35e8..00ba92b8 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.Arithmetic.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.Arithmetic.cs @@ -419,7 +419,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -445,7 +445,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 5); } } } @@ -479,7 +479,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); } } } @@ -517,7 +517,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Row(j), matrixC[i, j], 5); } } } @@ -557,7 +557,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Row(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -576,7 +576,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single for (var j = 0; j < matrix.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrix.Column(j) * x, y[j], 6); + AssertHelpers.AlmostEqual(matrix.Column(j) * x, y[j], 6); } } @@ -593,7 +593,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single for (var j = 0; j < matrix.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrix.Column(j) * x, y[j], 6); + AssertHelpers.AlmostEqual(matrix.Column(j) * x, y[j], 6); } } @@ -613,7 +613,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single y = new DenseVector(new[] { 1.0f, 2.0f, 3.0f }); for (var j = 0; j < matrix.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrix.Column(j) * y, x[j], 6); + AssertHelpers.AlmostEqual(matrix.Column(j) * y, x[j], 6); } } @@ -650,7 +650,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -688,7 +688,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var j = 0; j < matrixC.ColumnCount; j++) { - AssertHelpers.AlmostEqualRelative(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 6); + AssertHelpers.AlmostEqual(matrixA.Column(i) * matrixB.Column(j), matrixC[i, j], 5); } } } @@ -1015,7 +1015,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(matrix[row, column] % 3.2f, mod[row, column], 6); + AssertHelpers.AlmostEqual(matrix[row, column] % 3.2f, mod[row, column], 6); } } } @@ -1034,7 +1034,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(matrix[row, column] % 3.2f, mod[row, column], 6); + AssertHelpers.AlmostEqual(matrix[row, column] % 3.2f, mod[row, column], 6); } } } @@ -1053,7 +1053,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(data[row, column] % 3.2f, matrix[row, column], 6); + AssertHelpers.AlmostEqual(data[row, column] % 3.2f, matrix[row, column], 6); } } } @@ -1070,7 +1070,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { for (var column = 0; column < matrix.ColumnCount; column++) { - AssertHelpers.AlmostEqualRelative(matrix[row, column] % 3.2f, mod[row, column], 6); + AssertHelpers.AlmostEqual(matrix[row, column] % 3.2f, mod[row, column], 6); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs index 59046b3b..51eaaff3 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs @@ -114,10 +114,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, Math.Abs(y[i] - z[i]), "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -158,10 +155,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, Math.Abs(y[i] - z[i]), "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// @@ -235,10 +229,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative Assert.IsTrue(monitor.Status == IterationStatus.Converged, "#04"); // Now compare the vectors - for (var i = 0; i < y.Count; i++) - { - Assert.GreaterOrEqual(ConvergenceBoundary, Math.Abs(y[i] - z[i]), "#05-" + i); - } + Assert.LessOrEqual(Distance.Chebyshev(y, z), 2*ConvergenceBoundary); } /// diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs index eb481d94..0aa5ffe5 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/IteratorTest.cs @@ -31,7 +31,6 @@ using System; using System.Collections.Generic; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs index c91c6476..3a8a2b57 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/DivergenceStopCriteriumTest.cs @@ -31,7 +31,6 @@ using System; using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single; -using MathNet.Numerics.LinearAlgebra.Single.Solvers; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework; diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs index 147003be..e5a4c403 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/StopCriterium/IterationCountStopCriteriumTest.cs @@ -30,7 +30,6 @@ using System; using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Solvers; using NUnit.Framework;