diff --git a/src/Numerics/LinearAlgebra/Complex/Factorization/DenseGramSchmidt.cs b/src/Numerics/LinearAlgebra/Complex/Factorization/DenseGramSchmidt.cs index 05e8f6f0..d6791452 100644 --- a/src/Numerics/LinearAlgebra/Complex/Factorization/DenseGramSchmidt.cs +++ b/src/Numerics/LinearAlgebra/Complex/Factorization/DenseGramSchmidt.cs @@ -58,7 +58,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization /// If is null. /// If row count is less then column count /// If is rank deficient - public static DenseGramSchmidt Create(DenseMatrix matrix) + public static DenseGramSchmidt Create(Matrix matrix) { if (matrix.RowCount < matrix.ColumnCount) { diff --git a/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseGramSchmidt.cs b/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseGramSchmidt.cs index 3e19518c..7e38db04 100644 --- a/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseGramSchmidt.cs +++ b/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseGramSchmidt.cs @@ -53,7 +53,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization /// If is null. /// If row count is less then column count /// If is rank deficient - public static DenseGramSchmidt Create(DenseMatrix matrix) + public static DenseGramSchmidt Create(Matrix matrix) { if (matrix.RowCount < matrix.ColumnCount) { diff --git a/src/Numerics/LinearAlgebra/Double/Factorization/DenseGramSchmidt.cs b/src/Numerics/LinearAlgebra/Double/Factorization/DenseGramSchmidt.cs index 4406c032..d180ddb7 100644 --- a/src/Numerics/LinearAlgebra/Double/Factorization/DenseGramSchmidt.cs +++ b/src/Numerics/LinearAlgebra/Double/Factorization/DenseGramSchmidt.cs @@ -44,14 +44,14 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization internal sealed class DenseGramSchmidt : GramSchmidt { /// - /// Initializes a new instance of the class. This object creates an orthogonal matrix + /// Initializes a new instance of the class. This object creates an orthogonal matrix /// using the modified Gram-Schmidt method. /// /// The matrix to factor. /// If is null. /// If row count is less then column count /// If is rank deficient - public static DenseGramSchmidt Create(DenseMatrix matrix) + public static DenseGramSchmidt Create(Matrix matrix) { if (matrix.RowCount < matrix.ColumnCount) { @@ -109,7 +109,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization { dot += q[(k1 * rowsQ) + index] * q[(j1 * rowsQ) + index]; } - + r[(j * columnsQ) + k] = dot; for (var i = 0; i < rowsQ; i++) { diff --git a/src/Numerics/LinearAlgebra/Single/Factorization/DenseGramSchmidt.cs b/src/Numerics/LinearAlgebra/Single/Factorization/DenseGramSchmidt.cs index 9a405621..e445972b 100644 --- a/src/Numerics/LinearAlgebra/Single/Factorization/DenseGramSchmidt.cs +++ b/src/Numerics/LinearAlgebra/Single/Factorization/DenseGramSchmidt.cs @@ -51,7 +51,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization /// If is null. /// If row count is less then column count /// If is rank deficient - public static DenseGramSchmidt Create(DenseMatrix matrix) + public static DenseGramSchmidt Create(Matrix matrix) { if (matrix.RowCount < matrix.ColumnCount) { diff --git a/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs b/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs index 7b06843c..df91f4d8 100644 --- a/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs @@ -249,12 +249,8 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 0.00043049126899076171)] public void ValidateDensity(double nu, double density) { - const int Order = 1; - var matrix = new DenseMatrix(Order); - matrix[0, 0] = 1; - - var x = new DenseMatrix(Order); - x[0, 0] = 5; + var matrix = Matrix.Build.Dense(1, 1, 1.0); + var x = Matrix.Build.Dense(1, 1, 5.0); var d = new InverseWishart(nu, matrix); AssertHelpers.AlmostEqualRelative(density, d.Density(x), 16); diff --git a/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs b/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs index 964cddca..747ac91b 100644 --- a/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs @@ -223,26 +223,27 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { const int Rows = 2; const int Cols = 2; - var m = new DenseMatrix(Rows, Cols); + var m = Matrix.Build.Dense(Rows, Cols); m[0, 0] = 0.156065579983862; m[0, 1] = -0.568039841576594; m[1, 0] = -0.806288628097313; m[1, 1] = -1.20004405005077; - var v = new DenseMatrix(Rows, Rows); + var v = Matrix.Build.Dense(Rows, Rows); v[0, 0] = 0.674457817054746; v[0, 1] = 0.878930403442185; v[1, 0] = 0.878930403442185; v[1, 1] = 1.76277498368061; - var k = new DenseMatrix(Cols, Cols); + var k = Matrix.Build.Dense(Cols, Cols); k[0, 0] = 0.674457817054746; k[0, 1] = 0.878930403442185; k[1, 0] = 0.878930403442185; k[1, 1] = 1.76277498368061; + var d = new MatrixNormal(m, v, k); - var x = new DenseMatrix(Rows, Cols); + var x = Matrix.Build.Dense(Rows, Cols); x[0, 0] = 2; x[0, 1] = 2; diff --git a/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs b/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs index 30e1aac1..4f4346e1 100644 --- a/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs @@ -241,12 +241,8 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 0.12204152134938706)] public void ValidateDensity(double nu, double density) { - const int Order = 1; - var matrix = new DenseMatrix(Order); - matrix[0, 0] = 1; - - var x = new DenseMatrix(Order); - x[0, 0] = 5; + var matrix = Matrix.Build.Dense(1, 1, 1.0); + var x = Matrix.Build.Dense(1, 1, 5.0); var d = new Wishart(nu, matrix); AssertHelpers.AlmostEqualRelative(density, d.Density(x), 16); diff --git a/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs b/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs index c6a9039a..2e50b594 100644 --- a/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs +++ b/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs @@ -560,7 +560,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double [Test] public void CanSolveUsingCholesky() { - var matrix = new DenseMatrix(3, 3, new double[] {1, 1, 1, 1, 2, 3, 1, 3, 6}); + var matrix = Matrix.Build.Dense(3, 3, new double[] { 1, 1, 1, 1, 2, 3, 1, 3, 6 }); var a = new double[] {1, 1, 1, 1, 2, 3, 1, 3, 6}; var b = new[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; @@ -611,8 +611,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var q = new double[matrix.RowCount*matrix.RowCount]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau); - var mq = new DenseMatrix(matrix.RowCount, matrix.RowCount, q); - var mr = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, q); + var mr = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -638,8 +638,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var q = new double[matrix.RowCount*matrix.RowCount]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau); - var mr = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); - var mq = new DenseMatrix(matrix.RowCount, matrix.RowCount, q); + var mr = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, q); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -665,8 +665,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var q = new double[matrix.RowCount*matrix.RowCount]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau); - var mr = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); - var mq = new DenseMatrix(matrix.RowCount, matrix.RowCount, q); + var mr = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, q); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -693,8 +693,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var work = new double[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau, work); - var mq = new DenseMatrix(matrix.RowCount, matrix.RowCount, q); - var mr = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, q); + var mr = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -721,8 +721,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var work = new double[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau, work); - var mr = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); - var mq = new DenseMatrix(matrix.RowCount, matrix.RowCount, q); + var mr = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, q); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -749,8 +749,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var work = new double[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau, work); - var mr = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); - var mq = new DenseMatrix(matrix.RowCount, matrix.RowCount, q); + var mr = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, r).UpperTriangle(); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, q); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -776,8 +776,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau); - var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); - var mr = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, r); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, q); + var mr = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, r); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -803,8 +803,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau); - var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); - var mr = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, r); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, q); + var mr = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, r); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -831,8 +831,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var work = new double[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); - var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); - var mr = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, r); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, q); + var mr = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, r); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) @@ -859,8 +859,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var work = new double[matrix.ColumnCount*Control.BlockSize]; Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau, work); - var mq = new DenseMatrix(matrix.RowCount, matrix.ColumnCount, q); - var mr = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, r); + var mq = Matrix.Build.Dense(matrix.RowCount, matrix.ColumnCount, q); + var mr = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, r); var a = mq*mr; for (var row = 0; row < matrix.RowCount; row++) { @@ -887,7 +887,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 3, a, matrix); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -914,7 +914,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 2, a, matrix); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -941,7 +941,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 3, a, matrix); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -970,7 +970,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 2, a, matrix); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -998,7 +998,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -1028,7 +1028,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -1057,7 +1057,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, work); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -1088,7 +1088,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, work); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -1113,7 +1113,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 3, a, matrix); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -1140,7 +1140,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 2, a, matrix); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -1167,7 +1167,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 3, a, matrix); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -1196,7 +1196,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 2, a, matrix); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -1224,7 +1224,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, QRMethod.Thin); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -1254,7 +1254,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, QRMethod.Thin); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -1283,7 +1283,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, work, QRMethod.Thin); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqualRelative(mb[0, 0], b[0], 13); @@ -1314,7 +1314,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, work, QRMethod.Thin); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqualRelative(test[0, 0], x[0], 13); @@ -1345,8 +1345,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double w[index, index] = s[index]; } - var mU = new DenseMatrix(matrix.RowCount, matrix.RowCount, u); - var mV = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, vt); + var mU = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, u); + var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); @@ -1382,8 +1382,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double w[index, index] = s[index]; } - var mU = new DenseMatrix(matrix.RowCount, matrix.RowCount, u); - var mV = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, vt); + var mU = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, u); + var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); @@ -1416,8 +1416,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double w[index, index] = s[index]; } - var mU = new DenseMatrix(matrix.RowCount, matrix.RowCount, u); - var mV = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, vt); + var mU = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, u); + var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); @@ -1452,8 +1452,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double w[index, index] = s[index]; } - var mU = new DenseMatrix(matrix.RowCount, matrix.RowCount, u); - var mV = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, vt); + var mU = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, u); + var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); @@ -1491,8 +1491,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double w[index, index] = s[index]; } - var mU = new DenseMatrix(matrix.RowCount, matrix.RowCount, u); - var mV = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, vt); + var mU = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, u); + var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); @@ -1527,8 +1527,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double w[index, index] = s[index]; } - var mU = new DenseMatrix(matrix.RowCount, matrix.RowCount, u); - var mV = new DenseMatrix(matrix.ColumnCount, matrix.ColumnCount, vt); + var mU = Matrix.Build.Dense(matrix.RowCount, matrix.RowCount, u); + var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); @@ -1555,7 +1555,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 3, a, matrix); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqual(mb[0, 0], b[0], 13); @@ -1582,7 +1582,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double NotModified(3, 2, a, matrix); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqual(test[0, 0], x[0], 14); @@ -1612,7 +1612,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.SvdSolveFactored(matrix.RowCount, matrix.ColumnCount, s, u, vt, b, 2, x); - var mx = new DenseMatrix(matrix.ColumnCount, 2, x); + var mx = Matrix.Build.Dense(matrix.ColumnCount, 2, x); var mb = matrix*mx; AssertHelpers.AlmostEqual(mb[0, 0], b[0], 13); @@ -1644,7 +1644,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double var x = new double[matrix.ColumnCount*2]; Control.LinearAlgebraProvider.SvdSolveFactored(matrix.RowCount, matrix.ColumnCount, s, u, vt, b, 2, x); - var mb = new DenseMatrix(matrix.RowCount, 2, b); + var mb = Matrix.Build.Dense(matrix.RowCount, 2, b); var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; AssertHelpers.AlmostEqual(test[0, 0], x[0], 14); diff --git a/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs index f3716de0..9193e926 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs @@ -70,11 +70,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { var testData = new Dictionary> { - {"Singular3x3", new DenseMatrix(3, 3, new[] {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0})}, - {"Square3x3", new DenseMatrix(3, 3, new[] {-1.1, 0.0, -4.4, -2.2, 1.1, 5.5, -3.3, 2.2, 6.6})}, - {"Square4x4", new DenseMatrix(4, 4, new[] {-1.1, 0.0, 1.0, -4.4, -2.2, 1.1, 2.1, 5.5, -3.3, 2.2, 6.2, 6.6, -4.4, 3.3, 4.3, -7.7})}, - {"Tall3x2", new DenseMatrix(3, 2, new[] {-1.1, 0.0, -4.4, -2.2, 1.1, 5.5})}, - {"Wide2x3", new DenseMatrix(2, 3, new[] {-1.1, 0.0, -2.2, 1.1, -3.3, 2.2})} + {"Singular3x3", Matrix.Build.Dense(3, 3, new[] {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0})}, + {"Square3x3", Matrix.Build.Dense(3, 3, new[] {-1.1, 0.0, -4.4, -2.2, 1.1, 5.5, -3.3, 2.2, 6.6})}, + {"Square4x4", Matrix.Build.Dense(4, 4, new[] {-1.1, 0.0, 1.0, -4.4, -2.2, 1.1, 2.1, 5.5, -3.3, 2.2, 6.2, 6.6, -4.4, 3.3, 4.3, -7.7})}, + {"Tall3x2", Matrix.Build.Dense(3, 2, new[] {-1.1, 0.0, -4.4, -2.2, 1.1, 5.5})}, + {"Wide2x3", Matrix.Build.Dense(2, 3, new[] {-1.1, 0.0, -2.2, 1.1, -3.3, 2.2})} }; foreach (var name in testData.Keys) @@ -90,7 +90,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void MatrixFrom1DArrayIsReference() { var data = new double[] {1, 1, 1, 1, 1, 1, 2, 2, 2}; - var matrix = new DenseMatrix(3, 3, data); + var matrix = Matrix.Build.Dense(3, 3, data); matrix[0, 0] = 10.0; Assert.AreEqual(10.0, data[0]); } diff --git a/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs index 8fa8aa87..cebc517e 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs @@ -152,7 +152,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanCreateDenseMatrix() { - var vector = new DenseVector(3); + var vector = Vector.Build.Dense(3); var matrix = Matrix.Build.SameAs(vector, 2, 3); Assert.IsInstanceOf(matrix); Assert.AreEqual(2, matrix.RowCount); @@ -189,7 +189,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanCallUnaryPlusOperatorOnDenseVector() { - var vector = new DenseVector(Data); + var vector = Vector.Build.Dense(Data); var other = +vector; for (var i = 0; i < Data.Length; i++) { @@ -203,8 +203,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanAddTwoDenseVectorsUsingOperator() { - var vector = new DenseVector(Data); - var other = new DenseVector(Data); + var vector = Vector.Build.Dense(Data); + var other = Vector.Build.Dense(Data); var result = vector + other; CollectionAssert.AreEqual(Data, vector, "Making sure the original vector wasn't modified."); CollectionAssert.AreEqual(Data, other, "Making sure the original vector wasn't modified."); @@ -221,7 +221,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanCallUnaryNegationOperatorOnDenseVector() { - var vector = new DenseVector(Data); + var vector = Vector.Build.Dense(Data); var other = -vector; for (var i = 0; i < Data.Length; i++) { @@ -235,8 +235,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanSubtractTwoDenseVectorsUsingOperator() { - var vector = new DenseVector(Data); - var other = new DenseVector(Data); + var vector = Vector.Build.Dense(Data); + var other = Vector.Build.Dense(Data); var result = vector - other; CollectionAssert.AreEqual(Data, vector, "Making sure the original vector wasn't modified."); CollectionAssert.AreEqual(Data, other, "Making sure the original vector wasn't modified."); @@ -253,7 +253,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanMultiplyDenseVectorByScalarUsingOperators() { - var vector = new DenseVector(Data); + var vector = Vector.Build.Dense(Data); vector = vector * 2.0; for (var i = 0; i < Data.Length; i++) @@ -267,7 +267,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double Assert.AreEqual(Data[i] * 2.0, vector[i]); } - vector = new DenseVector(Data); + vector = Vector.Build.Dense(Data); vector = 2.0 * vector; for (var i = 0; i < Data.Length; i++) @@ -288,7 +288,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void CanDivideDenseVectorByScalarUsingOperators() { - var vector = new DenseVector(Data); + var vector = Vector.Build.Dense(Data); vector = vector / 2.0; for (var i = 0; i < Data.Length; i++) diff --git a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs index 50cae94e..3e8fe8fc 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs @@ -375,13 +375,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double // [ 0 0 ] // [ 2 0 ] var subM2 = diagMatrix.SubMatrix(0, 2, 1, 2); - Assert.IsTrue(subM2.Equals(new DenseMatrix(2, 2, new[] {0d, 2d, 0d, 0d}))); + Assert.IsTrue(subM2.Equals(Matrix.Build.Dense(2, 2, new[] { 0d, 2d, 0d, 0d }))); // [ 0 0 ] // [ 2 0 ] // [ 0 3 ] var subM3 = diagMatrix.SubMatrix(0, 3, 1, 2); - Assert.IsTrue(subM3.Equals(new DenseMatrix(3, 2, new[] {0d, 2d, 0d, 0d, 0d, 3d}))); + Assert.IsTrue(subM3.Equals(Matrix.Build.Dense(3, 2, new[] { 0d, 2d, 0d, 0d, 0d, 3d }))); } [Test] diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs index 26f0136b..d548a7f4 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs @@ -77,7 +77,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void CholeskyFailsWithNonSquareMatrix() { - var matrix = new DenseMatrix(3, 2); + var matrix = Matrix.Build.Dense(3, 2); Assert.That(() => matrix.Cholesky(), Throws.ArgumentException); } @@ -281,7 +281,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var chol = matrixA.Cholesky(); var matrixB = Matrix.Build.Random(row, col, 1); var matrixBCopy = matrixB.Clone(); - var matrixX = new DenseMatrix(row, col); + var matrixX = Matrix.Build.Dense(row, col); chol.Solve(matrixB, matrixX); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs index 2d1ecc08..7f04134f 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs @@ -116,7 +116,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void CanCheckRankOfSquareSingular([Values(10, 50, 100)] int order) { - var A = new DenseMatrix(order, order); + var A = Matrix.Build.Dense(order, order); A[0, 0] = 1; A[order - 1, order - 1] = 1; for (var i = 1; i < order - 1; i++) @@ -245,7 +245,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var B = Matrix.Build.Random(order, order, 2); var BCopy = B.Clone(); - var X = new DenseMatrix(order, order); + var X = Matrix.Build.Dense(order, order); evd.Solve(B, X); // The solution X row dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs index f6d802b4..61567820 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs @@ -43,7 +43,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void ConstructorWideMatrixThrowsInvalidMatrixOperationException() { - Assert.That(() => DenseGramSchmidt.Create(new DenseMatrix(3, 4)), Throws.ArgumentException); + Assert.That(() => DenseGramSchmidt.Create(Matrix.Build.Dense(3, 4)), Throws.ArgumentException); } /// @@ -293,7 +293,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); - var matrixX = new DenseMatrix(order, order); + var matrixX = Matrix.Build.Dense(order, order); factorGramSchmidt.Solve(matrixB, matrixX); // The solution X row dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs index 7bf940eb..78eb6afc 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs @@ -79,7 +79,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void LUFailsWithNonSquareMatrix() { - var matrix = new DenseMatrix(3, 2); + var matrix = Matrix.Build.Dense(3, 2); Assert.That(() => matrix.LU(), Throws.ArgumentException); } @@ -302,7 +302,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); - var matrixX = new DenseMatrix(order, order); + var matrixX = Matrix.Build.Dense(order, order); factorLU.Solve(matrixB, matrixX); // The solution X row dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs index 34d2b809..5c62d729 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs @@ -45,7 +45,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void ConstructorWideMatrixThrowsInvalidMatrixOperationException() { - Assert.That(() => UserQR.Create(new DenseMatrix(3, 4)), Throws.ArgumentException); + Assert.That(() => UserQR.Create(Matrix.Build.Dense(3, 4)), Throws.ArgumentException); } /// @@ -394,7 +394,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); - var matrixX = new DenseMatrix(order, order); + var matrixX = Matrix.Build.Dense(order, order); factorQR.Solve(matrixB, matrixX); // The solution X row dimension is equal to the column dimension of A @@ -583,7 +583,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); - var matrixX = new DenseMatrix(order, order); + var matrixX = Matrix.Build.Dense(order, order); factorQR.Solve(matrixB, matrixX); // The solution X row dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs index 30811477..b18a3b36 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs @@ -163,7 +163,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanCheckRankOfSquareSingular(int order) { - var matrixA = new DenseMatrix(order, order); + var matrixA = Matrix.Build.Dense(order, order); matrixA[0, 0] = 1; matrixA[order - 1, order - 1] = 1; for (var i = 1; i < order - 1; i++) @@ -358,7 +358,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization var matrixB = Matrix.Build.Random(row, column, 1); var matrixBCopy = matrixB.Clone(); - var matrixX = new DenseMatrix(column, column); + var matrixX = Matrix.Build.Dense(column, column); factorSvd.Solve(matrixB, matrixX); // The solution X row dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs index 5cef153a..e270f0e2 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs @@ -66,7 +66,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void CanMultiplyWithVector() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); var y = matrix*x; Assert.AreEqual(matrix.RowCount, y.Count); @@ -86,8 +86,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void CanMultiplyWithVectorIntoResult() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); - var y = new DenseVector(3); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); + var y = Vector.Build.Dense(3); matrix.Multiply(x, y); for (var i = 0; i < matrix.RowCount; i++) @@ -105,13 +105,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void CanMultiplyWithVectorIntoResultWhenUpdatingInputArgument() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); var y = x; matrix.Multiply(x, x); Assert.AreSame(y, x); - y = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + y = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); for (var i = 0; i < matrix.RowCount; i++) { var ar = matrix.Row(i); @@ -127,8 +127,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void MultiplyWithVectorIntoLargerResultThrowsArgumentException() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); - Vector y = new DenseVector(4); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); + Vector y = Vector.Build.Dense(4); Assert.That(() => matrix.Multiply(x, y), Throws.ArgumentException); } @@ -569,7 +569,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void CanTransposeThisAndMultiplyWithVector() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); var y = matrix.TransposeThisAndMultiply(x); Assert.AreEqual(matrix.ColumnCount, y.Count); @@ -589,8 +589,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void CanTransposeThisAndMultiplyWithVectorIntoResult() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); - var y = new DenseVector(3); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); + var y = Vector.Build.Dense(3); matrix.TransposeThisAndMultiply(x, y); for (var j = 0; j < matrix.ColumnCount; j++) @@ -608,13 +608,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void CanTransposeThisAndMultiplyWithVectorIntoResultWhenUpdatingInputArgument() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); var y = x; matrix.TransposeThisAndMultiply(x, x); Assert.AreSame(y, x); - y = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + y = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); for (var j = 0; j < matrix.ColumnCount; j++) { var ar = matrix.Column(j); @@ -630,8 +630,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double public void TransposeThisAndMultiplyWithVectorIntoLargerResultThrowsArgumentException() { var matrix = TestMatrices["Singular3x3"]; - var x = new DenseVector(new[] { 1.0, 2.0, 3.0 }); - Vector y = new DenseVector(4); + var x = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); + Vector y = Vector.Build.Dense(4); Assert.That(() => matrix.TransposeThisAndMultiply(x, y), Throws.ArgumentException); } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs index e03ee2da..e32ccda7 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/DivergenceStopCriteriumTest.cs @@ -103,9 +103,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite { var status = criterion.DetermineStatus( i, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { (i + 1)*(Increase + 0.1) })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { (i + 1)*(Increase + 0.1) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -127,9 +127,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite { var status = criterion.DetermineStatus( i, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { (i + 1)*(Increase - 0.01) })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { (i + 1)*(Increase - 0.01) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -151,9 +151,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite { var status = criterion.DetermineStatus( i, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { (i + 1)*(Increase - 0.01) })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { (i + 1)*(Increase - 0.01) })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -161,9 +161,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite // Now make it fail by throwing in a NaN var status2 = criterion.DetermineStatus( Iterations, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { double.NaN })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { double.NaN })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -186,9 +186,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite previous *= 1 + Increase + 0.01; var status = criterion.DetermineStatus( i, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { previous })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { previous })); Assert.AreEqual(IterationStatus.Continue, status, "Status check fail."); } @@ -197,9 +197,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite previous *= 1 + Increase + 0.01; var status2 = criterion.DetermineStatus( Iterations - 1, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { previous })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { previous })); Assert.AreEqual(IterationStatus.Diverged, status2, "Status check fail."); } @@ -218,9 +218,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite // Add residuals. Blow it up instantly var status = criterion.DetermineStatus( 1, - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { 1.0 }), - new DenseVector(new[] { double.NaN })); + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { 1.0 }), + Vector.Build.Dense(new[] { double.NaN })); Assert.AreEqual(IterationStatus.Diverged, status, "Status check fail."); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs index 51753933..518e34c1 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/StopCriterion/FailureStopCriteriumTest.cs @@ -85,9 +85,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite var criterion = new FailureStopCriterion(); Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] { 1.0, 1.0, 2.0 }); - var source = new DenseVector(new[] { 1001.0, 0, 2003.0 }); - var residual = new DenseVector(new[] { 1000, double.NaN, 2001 }); + var solution = Vector.Build.Dense(new[] { 1.0, 1.0, 2.0 }); + var source = Vector.Build.Dense(new[] { 1001.0, 0, 2003.0 }); + var residual = Vector.Build.Dense(new[] { 1000, double.NaN, 2001 }); var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); @@ -102,9 +102,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite var criterion = new FailureStopCriterion(); Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] { 1.0, 1.0, double.NaN }); - var source = new DenseVector(new[] { 1001.0, 0.0, 2003.0 }); - var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 }); + var solution = Vector.Build.Dense(new[] { 1.0, 1.0, double.NaN }); + var source = Vector.Build.Dense(new[] { 1001.0, 0.0, 2003.0 }); + var residual = Vector.Build.Dense(new[] { 1000.0, 1000.0, 2001.0 }); var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); @@ -119,9 +119,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite var criterion = new FailureStopCriterion(); Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] { 3.0, 2.0, 1.0 }); - var source = new DenseVector(new[] { 1001.0, 0.0, 2003.0 }); - var residual = new DenseVector(new[] { 1.0, 2.0, 3.0 }); + var solution = Vector.Build.Dense(new[] { 3.0, 2.0, 1.0 }); + var source = Vector.Build.Dense(new[] { 1001.0, 0.0, 2003.0 }); + var residual = Vector.Build.Dense(new[] { 1.0, 2.0, 3.0 }); var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); @@ -136,9 +136,9 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.StopCrite var criterion = new FailureStopCriterion(); Assert.IsNotNull(criterion, "There should be a criterion"); - var solution = new DenseVector(new[] { 1.0, 1.0, 2.0 }); - var source = new DenseVector(new[] { 1001.0, 0.0, 2003.0 }); - var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 }); + var solution = Vector.Build.Dense(new[] { 1.0, 1.0, 2.0 }); + var source = Vector.Build.Dense(new[] { 1001.0, 0.0, 2003.0 }); + var residual = Vector.Build.Dense(new[] { 1000.0, 1000.0, 2001.0 }); var status = criterion.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Continue, status, "Should be running"); diff --git a/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs index 23e9fd50..9266913f 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs @@ -213,7 +213,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double sparseResult.Add(sparseResult, sparseResult); Assert.IsTrue(sparseResult.Equals(2*sum1)); - Matrix denseResult = new DenseMatrix(1, 3); + Matrix denseResult = Matrix.Build.Dense(1, 3); denseResult.Add(m2, denseResult); Assert.IsTrue(denseResult.Equals(sum1)); @@ -257,7 +257,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double sparseResult.Subtract(sparseResult, sparseResult); Assert.IsTrue(sparseResult.Equals(0*diff1)); - Matrix denseResult = new DenseMatrix(1, 3); + Matrix denseResult = Matrix.Build.Dense(1, 3); denseResult.Subtract(m2, denseResult); Assert.IsTrue(denseResult.Equals(diff1));