|
|
|
@ -82,21 +82,21 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
{ |
|
|
|
var result = new Complex32[_y.Length]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.AddVectorToScaledVector(_y, 0, _x, result); |
|
|
|
LinearAlgebraControl.Provider.AddVectorToScaledVector(_y, 0, _x, result); |
|
|
|
for (var i = 0; i < _y.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_y[i], result[i]); |
|
|
|
} |
|
|
|
|
|
|
|
Array.Copy(_y, result, _y.Length); |
|
|
|
Control.LinearAlgebraProvider.AddVectorToScaledVector(result, 1, _x, result); |
|
|
|
LinearAlgebraControl.Provider.AddVectorToScaledVector(result, 1, _x, result); |
|
|
|
for (var i = 0; i < _y.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_y[i] + _x[i], result[i]); |
|
|
|
} |
|
|
|
|
|
|
|
Array.Copy(_y, result, _y.Length); |
|
|
|
Control.LinearAlgebraProvider.AddVectorToScaledVector(result, (Complex32) Math.PI, _x, result); |
|
|
|
LinearAlgebraControl.Provider.AddVectorToScaledVector(result, (Complex32) Math.PI, _x, result); |
|
|
|
for (var i = 0; i < _y.Length; i++) |
|
|
|
{ |
|
|
|
AssertHelpers.AlmostEqualRelative(_y[i] + ((Complex32) Math.PI*_x[i]), result[i], 5); |
|
|
|
@ -111,14 +111,14 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
{ |
|
|
|
var result = new Complex32[_y.Length]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.ScaleArray(1, _y, result); |
|
|
|
LinearAlgebraControl.Provider.ScaleArray(1, _y, result); |
|
|
|
for (var i = 0; i < _y.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_y[i], result[i]); |
|
|
|
} |
|
|
|
|
|
|
|
Array.Copy(_y, result, _y.Length); |
|
|
|
Control.LinearAlgebraProvider.ScaleArray((Complex32) Math.PI, result, result); |
|
|
|
LinearAlgebraControl.Provider.ScaleArray((Complex32) Math.PI, result, result); |
|
|
|
for (var i = 0; i < _y.Length; i++) |
|
|
|
{ |
|
|
|
AssertHelpers.AlmostEqualRelative(_y[i]*(Complex32) Math.PI, result[i], 5); |
|
|
|
@ -131,7 +131,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
[Test] |
|
|
|
public void CanComputeDotProduct() |
|
|
|
{ |
|
|
|
var result = Control.LinearAlgebraProvider.DotProduct(_x, _y); |
|
|
|
var result = LinearAlgebraControl.Provider.DotProduct(_x, _y); |
|
|
|
AssertHelpers.AlmostEqualRelative(152.35f, result, 5); |
|
|
|
} |
|
|
|
|
|
|
|
@ -142,7 +142,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanAddArrays() |
|
|
|
{ |
|
|
|
var result = new Complex32[_y.Length]; |
|
|
|
Control.LinearAlgebraProvider.AddArrays(_x, _y, result); |
|
|
|
LinearAlgebraControl.Provider.AddArrays(_x, _y, result); |
|
|
|
for (var i = 0; i < result.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_x[i] + _y[i], result[i]); |
|
|
|
@ -156,7 +156,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanSubtractArrays() |
|
|
|
{ |
|
|
|
var result = new Complex32[_y.Length]; |
|
|
|
Control.LinearAlgebraProvider.SubtractArrays(_x, _y, result); |
|
|
|
LinearAlgebraControl.Provider.SubtractArrays(_x, _y, result); |
|
|
|
for (var i = 0; i < result.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_x[i] - _y[i], result[i]); |
|
|
|
@ -170,7 +170,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanPointWiseMultiplyArrays() |
|
|
|
{ |
|
|
|
var result = new Complex32[_y.Length]; |
|
|
|
Control.LinearAlgebraProvider.PointWiseMultiplyArrays(_x, _y, result); |
|
|
|
LinearAlgebraControl.Provider.PointWiseMultiplyArrays(_x, _y, result); |
|
|
|
for (var i = 0; i < result.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_x[i]*_y[i], result[i]); |
|
|
|
@ -184,7 +184,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanPointWiseDivideArrays() |
|
|
|
{ |
|
|
|
var result = new Complex32[_y.Length]; |
|
|
|
Control.LinearAlgebraProvider.PointWiseDivideArrays(_x, _y, result); |
|
|
|
LinearAlgebraControl.Provider.PointWiseDivideArrays(_x, _y, result); |
|
|
|
for (var i = 0; i < result.Length; i++) |
|
|
|
{ |
|
|
|
Assert.AreEqual(_x[i]/_y[i], result[i]); |
|
|
|
@ -198,7 +198,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanComputeMatrixL1Norm() |
|
|
|
{ |
|
|
|
var matrix = _matrices["Square3x3"]; |
|
|
|
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); |
|
|
|
var norm = LinearAlgebraControl.Provider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); |
|
|
|
AssertHelpers.AlmostEqualRelative(12.1f, norm, 5); |
|
|
|
} |
|
|
|
|
|
|
|
@ -209,7 +209,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanComputeMatrixFrobeniusNorm() |
|
|
|
{ |
|
|
|
var matrix = _matrices["Square3x3"]; |
|
|
|
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); |
|
|
|
var norm = LinearAlgebraControl.Provider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); |
|
|
|
AssertHelpers.AlmostEqualRelative(10.777754868246f, norm, 5); |
|
|
|
} |
|
|
|
|
|
|
|
@ -220,7 +220,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanComputeMatrixInfinityNorm() |
|
|
|
{ |
|
|
|
var matrix = _matrices["Square3x3"]; |
|
|
|
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); |
|
|
|
var norm = LinearAlgebraControl.Provider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); |
|
|
|
Assert.AreEqual(16.5, norm); |
|
|
|
} |
|
|
|
|
|
|
|
@ -234,7 +234,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var y = _matrices["Square3x3"]; |
|
|
|
var c = new DenseMatrix(x.RowCount, y.ColumnCount); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.MatrixMultiply(x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, c.Values); |
|
|
|
LinearAlgebraControl.Provider.MatrixMultiply(x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, c.Values); |
|
|
|
|
|
|
|
for (var i = 0; i < c.RowCount; i++) |
|
|
|
{ |
|
|
|
@ -255,7 +255,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var y = _matrices["Tall3x2"]; |
|
|
|
var c = new DenseMatrix(x.RowCount, y.ColumnCount); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.MatrixMultiply(x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, c.Values); |
|
|
|
LinearAlgebraControl.Provider.MatrixMultiply(x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, c.Values); |
|
|
|
|
|
|
|
for (var i = 0; i < c.RowCount; i++) |
|
|
|
{ |
|
|
|
@ -276,7 +276,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var y = _matrices["Wide2x3"]; |
|
|
|
var c = new DenseMatrix(x.RowCount, y.ColumnCount); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.MatrixMultiply(x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, c.Values); |
|
|
|
LinearAlgebraControl.Provider.MatrixMultiply(x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, c.Values); |
|
|
|
|
|
|
|
for (var i = 0; i < c.RowCount; i++) |
|
|
|
{ |
|
|
|
@ -297,7 +297,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var y = _matrices["Square3x3"]; |
|
|
|
var c = new DenseMatrix(x.RowCount, y.ColumnCount); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.DontTranspose, 2.2f, x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, 1.0f, c.Values); |
|
|
|
LinearAlgebraControl.Provider.MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.DontTranspose, 2.2f, x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, 1.0f, c.Values); |
|
|
|
|
|
|
|
for (var i = 0; i < c.RowCount; i++) |
|
|
|
{ |
|
|
|
@ -318,7 +318,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var y = _matrices["Tall3x2"]; |
|
|
|
var c = new DenseMatrix(x.RowCount, y.ColumnCount); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.DontTranspose, 2.2f, x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, 1.0f, c.Values); |
|
|
|
LinearAlgebraControl.Provider.MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.DontTranspose, 2.2f, x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, 1.0f, c.Values); |
|
|
|
|
|
|
|
for (var i = 0; i < c.RowCount; i++) |
|
|
|
{ |
|
|
|
@ -339,7 +339,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var y = _matrices["Wide2x3"]; |
|
|
|
var c = new DenseMatrix(x.RowCount, y.ColumnCount); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.DontTranspose, 2.2f, x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, 1.0f, c.Values); |
|
|
|
LinearAlgebraControl.Provider.MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.DontTranspose, 2.2f, x.Values, x.RowCount, x.ColumnCount, y.Values, y.RowCount, y.ColumnCount, 1.0f, c.Values); |
|
|
|
|
|
|
|
for (var i = 0; i < c.RowCount; i++) |
|
|
|
{ |
|
|
|
@ -370,7 +370,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var ipiv = new int[matrix.RowCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.LUFactor(a, matrix.RowCount, ipiv); |
|
|
|
LinearAlgebraControl.Provider.LUFactor(a, matrix.RowCount, ipiv); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(a[0], -4.4f, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(a[1], 0.25f, 5); |
|
|
|
@ -396,7 +396,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var a = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
Array.Copy(matrix.Values, a, a.Length); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.LUInverse(a, matrix.RowCount); |
|
|
|
LinearAlgebraControl.Provider.LUInverse(a, matrix.RowCount); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(a[0], -0.454545454545454f, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(a[1], -0.909090909090908f, 5); |
|
|
|
@ -422,8 +422,8 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var ipiv = new int[matrix.RowCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.LUFactor(a, matrix.RowCount, ipiv); |
|
|
|
Control.LinearAlgebraProvider.LUInverseFactored(a, matrix.RowCount, ipiv); |
|
|
|
LinearAlgebraControl.Provider.LUFactor(a, matrix.RowCount, ipiv); |
|
|
|
LinearAlgebraControl.Provider.LUInverseFactored(a, matrix.RowCount, ipiv); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(a[0], -0.454545454545454f, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(a[1], -0.909090909090908f, 5); |
|
|
|
@ -447,7 +447,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
Array.Copy(matrix.Values, a, a.Length); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
Control.LinearAlgebraProvider.LUSolve(2, a, matrix.RowCount, b); |
|
|
|
LinearAlgebraControl.Provider.LUSolve(2, a, matrix.RowCount, b); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726f, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815f, 5); |
|
|
|
@ -470,10 +470,10 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
Array.Copy(matrix.Values, a, a.Length); |
|
|
|
|
|
|
|
var ipiv = new int[matrix.RowCount]; |
|
|
|
Control.LinearAlgebraProvider.LUFactor(a, matrix.RowCount, ipiv); |
|
|
|
LinearAlgebraControl.Provider.LUFactor(a, matrix.RowCount, ipiv); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
Control.LinearAlgebraProvider.LUSolveFactored(2, a, matrix.RowCount, ipiv, b); |
|
|
|
LinearAlgebraControl.Provider.LUSolveFactored(2, a, matrix.RowCount, ipiv, b); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(b[0], -1.477272727272726f, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(b[1], -4.318181818181815f, 5); |
|
|
|
@ -490,7 +490,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
public void CanComputeCholeskyFactor() |
|
|
|
{ |
|
|
|
var matrix = new Complex32[] {1, 1, 1, 1, 1, 5, 5, 5, 1, 5, 14, 14, 1, 5, 14, 15}; |
|
|
|
Control.LinearAlgebraProvider.CholeskyFactor(matrix, 4); |
|
|
|
LinearAlgebraControl.Provider.CholeskyFactor(matrix, 4); |
|
|
|
Assert.AreEqual(matrix[0].Real, 1); |
|
|
|
Assert.AreEqual(matrix[1].Real, 1); |
|
|
|
Assert.AreEqual(matrix[2].Real, 1); |
|
|
|
@ -519,7 +519,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var a = new Complex32[] {1, 1, 1, 1, 2, 3, 1, 3, 6}; |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
Control.LinearAlgebraProvider.CholeskySolve(a, 3, b, 2); |
|
|
|
LinearAlgebraControl.Provider.CholeskySolve(a, 3, b, 2); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(b[0], 0, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(b[1], 1, 5); |
|
|
|
@ -539,10 +539,10 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
{ |
|
|
|
var a = new Complex32[] {1, 1, 1, 1, 2, 3, 1, 3, 6}; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.CholeskyFactor(a, 3); |
|
|
|
LinearAlgebraControl.Provider.CholeskyFactor(a, 3); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
Control.LinearAlgebraProvider.CholeskySolveFactored(a, 3, b, 2); |
|
|
|
LinearAlgebraControl.Provider.CholeskySolveFactored(a, 3, b, 2); |
|
|
|
|
|
|
|
AssertHelpers.AlmostEqualRelative(b[0], 0, 5); |
|
|
|
AssertHelpers.AlmostEqualRelative(b[1], 1, 5); |
|
|
|
@ -564,7 +564,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[3]; |
|
|
|
var q = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
LinearAlgebraControl.Provider.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(); |
|
|
|
@ -591,7 +591,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[3]; |
|
|
|
var q = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
LinearAlgebraControl.Provider.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); |
|
|
|
@ -618,7 +618,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[3]; |
|
|
|
var q = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
Control.LinearAlgebraProvider.QRFactor(r, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
LinearAlgebraControl.Provider.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); |
|
|
|
@ -645,7 +645,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var q = new Complex32[matrix.RowCount*matrix.ColumnCount]; |
|
|
|
Array.Copy(matrix.Values, q, q.Length); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau); |
|
|
|
LinearAlgebraControl.Provider.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); |
|
|
|
@ -672,7 +672,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var q = new Complex32[matrix.RowCount*matrix.ColumnCount]; |
|
|
|
Array.Copy(matrix.Values, q, q.Length); |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.ThinQRFactor(q, matrix.RowCount, matrix.ColumnCount, r, tau); |
|
|
|
LinearAlgebraControl.Provider.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); |
|
|
|
@ -699,7 +699,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
|
|
|
|
NotModified(3, 3, a, matrix); |
|
|
|
|
|
|
|
@ -726,7 +726,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
|
|
|
|
NotModified(3, 2, a, matrix); |
|
|
|
|
|
|
|
@ -752,11 +752,11 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[matrix.ColumnCount]; |
|
|
|
var q = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
Control.LinearAlgebraProvider.QRFactor(a, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
LinearAlgebraControl.Provider.QRFactor(a, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x); |
|
|
|
|
|
|
|
var mx = new DenseMatrix(matrix.ColumnCount, 2, x); |
|
|
|
var mb = matrix*mx; |
|
|
|
@ -782,11 +782,11 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[matrix.ColumnCount]; |
|
|
|
var q = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
Control.LinearAlgebraProvider.QRFactor(a, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
LinearAlgebraControl.Provider.QRFactor(a, matrix.RowCount, matrix.ColumnCount, q, tau); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.QRSolveFactored(q, a, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x); |
|
|
|
|
|
|
|
var mb = new DenseMatrix(matrix.RowCount, 2, b); |
|
|
|
var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; |
|
|
|
@ -809,7 +809,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x, QRMethod.Thin); |
|
|
|
LinearAlgebraControl.Provider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x, QRMethod.Thin); |
|
|
|
|
|
|
|
NotModified(3, 3, a, matrix); |
|
|
|
|
|
|
|
@ -836,7 +836,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x, QRMethod.Thin); |
|
|
|
LinearAlgebraControl.Provider.QRSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x, QRMethod.Thin); |
|
|
|
|
|
|
|
NotModified(3, 2, a, matrix); |
|
|
|
|
|
|
|
@ -862,11 +862,11 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[matrix.ColumnCount]; |
|
|
|
var r = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
Control.LinearAlgebraProvider.ThinQRFactor(a, matrix.RowCount, matrix.ColumnCount, r, tau); |
|
|
|
LinearAlgebraControl.Provider.ThinQRFactor(a, matrix.RowCount, matrix.ColumnCount, r, tau); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, QRMethod.Thin); |
|
|
|
LinearAlgebraControl.Provider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, QRMethod.Thin); |
|
|
|
|
|
|
|
var mx = new DenseMatrix(matrix.ColumnCount, 2, x); |
|
|
|
var mb = matrix*mx; |
|
|
|
@ -892,11 +892,11 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var tau = new Complex32[matrix.ColumnCount]; |
|
|
|
var r = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
Control.LinearAlgebraProvider.ThinQRFactor(a, matrix.RowCount, matrix.ColumnCount, r, tau); |
|
|
|
LinearAlgebraControl.Provider.ThinQRFactor(a, matrix.RowCount, matrix.ColumnCount, r, tau); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, QRMethod.Thin); |
|
|
|
LinearAlgebraControl.Provider.QRSolveFactored(a, r, matrix.RowCount, matrix.ColumnCount, tau, b, 2, x, QRMethod.Thin); |
|
|
|
|
|
|
|
var mb = new DenseMatrix(matrix.RowCount, 2, b); |
|
|
|
var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; |
|
|
|
@ -921,7 +921,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var u = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
var vt = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
LinearAlgebraControl.Provider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
|
|
|
|
var w = new DenseMatrix(matrix.RowCount, matrix.ColumnCount); |
|
|
|
for (var index = 0; index < s.Length; index++) |
|
|
|
@ -958,7 +958,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var u = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
var vt = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
LinearAlgebraControl.Provider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
|
|
|
|
var w = new DenseMatrix(matrix.RowCount, matrix.ColumnCount); |
|
|
|
for (var index = 0; index < s.Length; index++) |
|
|
|
@ -992,7 +992,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var u = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
var vt = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
LinearAlgebraControl.Provider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
|
|
|
|
var w = new DenseMatrix(matrix.RowCount, matrix.ColumnCount); |
|
|
|
for (var index = 0; index < s.Length; index++) |
|
|
|
@ -1024,7 +1024,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.SvdSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.SvdSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
|
|
|
|
NotModified(3, 3, a, matrix); |
|
|
|
|
|
|
|
@ -1051,7 +1051,7 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.SvdSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.SvdSolve(a, matrix.RowCount, matrix.ColumnCount, b, 2, x); |
|
|
|
|
|
|
|
NotModified(3, 2, a, matrix); |
|
|
|
|
|
|
|
@ -1079,11 +1079,11 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var u = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
var vt = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
LinearAlgebraControl.Provider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.SvdSolveFactored(matrix.RowCount, matrix.ColumnCount, s, u, vt, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.SvdSolveFactored(matrix.RowCount, matrix.ColumnCount, s, u, vt, b, 2, x); |
|
|
|
|
|
|
|
var mx = new DenseMatrix(matrix.ColumnCount, 2, x); |
|
|
|
var mb = matrix*mx; |
|
|
|
@ -1111,11 +1111,11 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32 |
|
|
|
var u = new Complex32[matrix.RowCount*matrix.RowCount]; |
|
|
|
var vt = new Complex32[matrix.ColumnCount*matrix.ColumnCount]; |
|
|
|
|
|
|
|
Control.LinearAlgebraProvider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
LinearAlgebraControl.Provider.SingularValueDecomposition(true, a, matrix.RowCount, matrix.ColumnCount, s, u, vt); |
|
|
|
|
|
|
|
var b = new[] {new Complex32(1.0f, 0.0f), 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; |
|
|
|
var x = new Complex32[matrix.ColumnCount*2]; |
|
|
|
Control.LinearAlgebraProvider.SvdSolveFactored(matrix.RowCount, matrix.ColumnCount, s, u, vt, b, 2, x); |
|
|
|
LinearAlgebraControl.Provider.SvdSolveFactored(matrix.RowCount, matrix.ColumnCount, s, u, vt, b, 2, x); |
|
|
|
|
|
|
|
var mb = new DenseMatrix(matrix.RowCount, 2, b); |
|
|
|
var test = (matrix.Transpose()*matrix).Inverse()*matrix.Transpose()*mb; |
|
|
|
|