diff --git a/docs/content/Matrix.fsx b/docs/content/Matrix.fsx
index f481c819..2888b573 100644
--- a/docs/content/Matrix.fsx
+++ b/docs/content/Matrix.fsx
@@ -35,7 +35,7 @@ spatial problems, geography and geometry have quite different usage patterns and
to linear algebra. All places where Math.NET Numerics can be used have a strong
programming language with their own data structures. For example, if you have a collection of vectors,
consider to store them in a list or array of vectors, not in a matrix (unless you need matrix operations, of course).
-
+
Storage Layout
--------------
@@ -224,8 +224,8 @@ let m = matrix [[ 1.0; 4.0; 7.0 ]
let v = vector [ 10.0; 20.0; 30.0 ]
-let v2 = m * v
-let m2 = m + 2.0*m
+let v' = m * v
+let m' = m + 2.0*m
(**
### Arithmetic Instance Methods
@@ -265,7 +265,7 @@ that are more efficient:
X.TransposeThisAndMultiply(X).Inverse() * X.TransposeThisAndMultiply(y)
Of course in practice you would not use the matrix inverse but a decomposition:
-
+
[lang=csharp]
X.TransposeThisAndMultiply(X).Cholesky().Solve(X.TransposeThisAndMultiply(y))
@@ -333,7 +333,8 @@ Trace and Determinant
For a square matrix, the trace of a matrix is the sum of the elements on the main diagonal,
which is equal to the sum of all its eigenvalues with multiplicities. Similarly, the determinant
of a square matrix is the product of all its eigenvalues with multiplicities.
-If the determinant is not zero, the matrix is invertible and the linear equation system it
+A matrix is said to be *singular* if its determinant is zero and *non-singular* otherwise.
+In the latter case the matrix is invertible and the linear equation system it
represents has a single unique solution.
[lang=csharp]
diff --git a/src/FSharp/LinearAlgebra.Matrix.fs b/src/FSharp/LinearAlgebra.Matrix.fs
index 2ae77f57..d99bd807 100644
--- a/src/FSharp/LinearAlgebra.Matrix.fs
+++ b/src/FSharp/LinearAlgebra.Matrix.fs
@@ -353,7 +353,8 @@ module Matrix =
let inline nullity (A: #Matrix<_>) = A.Nullity()
let inline kernel (A: #Matrix<_>) = A.Kernel()
let inline range (A: #Matrix<_>) = A.Range()
- let inline symmetric (A: #Matrix<_>) = A.IsSymmetric
+ let inline symmetric (A: #Matrix<_>) = A.IsSymmetric()
+ let inline hermitian (A: #Matrix<_>) = A.IsHermitian()
let inline cholesky (A: #Matrix<_>) = A.Cholesky()
let inline lu (A: #Matrix<_>) = A.LU()
diff --git a/src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs b/src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs
index f1cd2171..e3f45005 100644
--- a/src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs
@@ -1254,9 +1254,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override bool IsConjugateSymmetric()
+ public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
diff --git a/src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs b/src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs
index 04fb7f65..fce362c0 100644
--- a/src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs
@@ -1014,9 +1014,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override sealed bool IsConjugateSymmetric()
+ public override sealed bool IsHermitian()
{
for (var k = 0; k < _data.Length; k ++)
{
diff --git a/src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs b/src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs
index a8869a5d..f9a51f2f 100644
--- a/src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs
@@ -82,14 +82,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
bool isSymmetric;
switch (symmetricity)
{
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
isSymmetric = false;
break;
default:
- isSymmetric = matrix.IsConjugateSymmetric();
+ isSymmetric = matrix.IsHermitian();
break;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs b/src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs
index 5b3c2a8b..81eb8104 100644
--- a/src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs
@@ -82,14 +82,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
bool isSymmetric;
switch (symmetricity)
{
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
isSymmetric = false;
break;
default:
- isSymmetric = matrix.IsConjugateSymmetric();
+ isSymmetric = matrix.IsHermitian();
break;
}
diff --git a/src/Numerics/LinearAlgebra/Complex/Matrix.cs b/src/Numerics/LinearAlgebra/Complex/Matrix.cs
index 4c28604e..24fa7b08 100644
--- a/src/Numerics/LinearAlgebra/Complex/Matrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex/Matrix.cs
@@ -709,9 +709,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override bool IsConjugateSymmetric()
+ public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
diff --git a/src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs b/src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs
index 34e524f1..2ae00785 100644
--- a/src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs
@@ -1246,9 +1246,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override bool IsConjugateSymmetric()
+ public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
diff --git a/src/Numerics/LinearAlgebra/Complex32/DenseMatrix.cs b/src/Numerics/LinearAlgebra/Complex32/DenseMatrix.cs
index fd6a295f..c0015979 100644
--- a/src/Numerics/LinearAlgebra/Complex32/DenseMatrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/DenseMatrix.cs
@@ -1251,9 +1251,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override bool IsConjugateSymmetric()
+ public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
diff --git a/src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs b/src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs
index 7a25a5d6..ca47a63e 100644
--- a/src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs
@@ -1008,9 +1008,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override sealed bool IsConjugateSymmetric()
+ public override sealed bool IsHermitian()
{
for (var k = 0; k < _data.Length; k++)
{
diff --git a/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs b/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs
index b5110bba..eef2918b 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs
@@ -83,14 +83,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
bool isSymmetric;
switch (symmetricity)
{
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
isSymmetric = false;
break;
default:
- isSymmetric = matrix.IsConjugateSymmetric();
+ isSymmetric = matrix.IsHermitian();
break;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs b/src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs
index 88a81ba1..e8a7918f 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs
@@ -81,14 +81,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
bool isSymmetric;
switch (symmetricity)
{
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
isSymmetric = false;
break;
default:
- isSymmetric = matrix.IsConjugateSymmetric();
+ isSymmetric = matrix.IsHermitian();
break;
}
diff --git a/src/Numerics/LinearAlgebra/Complex32/Matrix.cs b/src/Numerics/LinearAlgebra/Complex32/Matrix.cs
index 19d418ed..bee3b5c6 100644
--- a/src/Numerics/LinearAlgebra/Complex32/Matrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/Matrix.cs
@@ -704,9 +704,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override bool IsConjugateSymmetric()
+ public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
diff --git a/src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs b/src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs
index 0bb049d7..3e779217 100644
--- a/src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs
+++ b/src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs
@@ -1240,9 +1240,9 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override bool IsConjugateSymmetric()
+ public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
diff --git a/src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs b/src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs
index 1f41f894..027ded73 100644
--- a/src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs
+++ b/src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs
@@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
switch (symmetricity)
{
case Symmetricity.Symmetric:
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
diff --git a/src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs b/src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs
index 99ac3278..192d875d 100644
--- a/src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs
+++ b/src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs
@@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
switch (symmetricity)
{
case Symmetricity.Symmetric:
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
diff --git a/src/Numerics/LinearAlgebra/Double/Matrix.cs b/src/Numerics/LinearAlgebra/Double/Matrix.cs
index 57224988..68d3b0e6 100644
--- a/src/Numerics/LinearAlgebra/Double/Matrix.cs
+++ b/src/Numerics/LinearAlgebra/Double/Matrix.cs
@@ -705,9 +705,9 @@ namespace MathNet.Numerics.LinearAlgebra.Double
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override sealed bool IsConjugateSymmetric()
+ public override sealed bool IsHermitian()
{
return IsSymmetric();
}
diff --git a/src/Numerics/LinearAlgebra/Matrix.cs b/src/Numerics/LinearAlgebra/Matrix.cs
index e0003d03..4bb626f9 100644
--- a/src/Numerics/LinearAlgebra/Matrix.cs
+++ b/src/Numerics/LinearAlgebra/Matrix.cs
@@ -1307,10 +1307,19 @@ namespace MathNet.Numerics.LinearAlgebra
return true;
}
+ ///
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
+ ///
+ public abstract bool IsHermitian();
+
///
/// Evaluates whether this matrix is conjugate symmetric.
///
- public abstract bool IsConjugateSymmetric();
+ [Obsolete("Use IsHermitian instead. Will be removed in v4.")]
+ public bool IsConjugateSymmetric()
+ {
+ return IsHermitian();
+ }
///
/// Returns this matrix as a multidimensional array.
diff --git a/src/Numerics/LinearAlgebra/Options.cs b/src/Numerics/LinearAlgebra/Options.cs
index a157d41d..5330aa36 100644
--- a/src/Numerics/LinearAlgebra/Options.cs
+++ b/src/Numerics/LinearAlgebra/Options.cs
@@ -28,6 +28,8 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
+using System;
+
namespace MathNet.Numerics.LinearAlgebra
{
public enum ExistingData
@@ -72,8 +74,11 @@ namespace MathNet.Numerics.LinearAlgebra
Symmetric = 1,
///
- /// A matrix is complex conjugate symmetric.
+ /// A matrix is hermitian (conjugate symmetric).
///
+ Hermitian = 2,
+
+ [Obsolete("Use Hermitian instead. Will be removed in v4.")]
ConjugateSymmetric = 2,
///
diff --git a/src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs b/src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs
index 68eec0a4..f7dae03d 100644
--- a/src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs
+++ b/src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs
@@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
switch (symmetricity)
{
case Symmetricity.Symmetric:
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
diff --git a/src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs b/src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs
index fc06c2e3..35b2de78 100644
--- a/src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs
+++ b/src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs
@@ -82,7 +82,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
switch (symmetricity)
{
case Symmetricity.Symmetric:
- case Symmetricity.ConjugateSymmetric:
+ case Symmetricity.Hermitian:
isSymmetric = true;
break;
case Symmetricity.Asymmetric:
diff --git a/src/Numerics/LinearAlgebra/Single/Matrix.cs b/src/Numerics/LinearAlgebra/Single/Matrix.cs
index f941a595..6abc5669 100644
--- a/src/Numerics/LinearAlgebra/Single/Matrix.cs
+++ b/src/Numerics/LinearAlgebra/Single/Matrix.cs
@@ -704,9 +704,9 @@ namespace MathNet.Numerics.LinearAlgebra.Single
}
///
- /// Evaluates whether this matrix is conjugate symmetric.
+ /// Evaluates whether this matrix is hermitian (conjugate symmetric).
///
- public override sealed bool IsConjugateSymmetric()
+ public override sealed bool IsHermitian()
{
return IsSymmetric();
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs
index ccff616d..079e1fbd 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs
@@ -90,7 +90,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanFactorizeRandomSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var factorEvd = A.Evd();
var V = factorEvd.EigenVectors;
var λ = factorEvd.D;
@@ -149,7 +149,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -177,7 +177,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -210,7 +210,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -238,7 +238,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs
index 76b3bea5..f2f01f8a 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs
@@ -202,7 +202,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -229,7 +229,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -262,7 +262,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -290,7 +290,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs
index 10a6d9c3..cf7e08b6 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs
@@ -91,7 +91,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanFactorizeRandomSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var factorEvd = A.Evd();
var V = factorEvd.EigenVectors;
var λ = factorEvd.D;
@@ -150,7 +150,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -177,7 +177,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -210,7 +210,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -238,7 +238,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = Matrix.Build.RandomPositiveDefinite(order, 1);
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs
index 42116af7..19f17c91 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs
@@ -201,7 +201,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -228,7 +228,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -261,7 +261,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
@@ -289,7 +289,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven([Values(1, 2, 5, 10, 50, 100)] int order)
{
var A = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray());
- MatrixHelpers.ForceConjugateSymmetric(A);
+ MatrixHelpers.ForceHermitian(A);
var ACopy = A.Clone();
var evd = A.Evd();
diff --git a/src/UnitTests/LinearAlgebraTests/MatrixHelpers.cs b/src/UnitTests/LinearAlgebraTests/MatrixHelpers.cs
index 4fbfac7a..64280a62 100644
--- a/src/UnitTests/LinearAlgebraTests/MatrixHelpers.cs
+++ b/src/UnitTests/LinearAlgebraTests/MatrixHelpers.cs
@@ -61,11 +61,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests
}
///
- /// Forces a matrix elements to conjugate symmetric. Copies the conjugate of the values
+ /// Forces a matrix elements to hermitian (conjugate symmetric). Copies the conjugate of the values
/// from the lower triangle to the upper triangle.
///
/// The matrix to make conjugate symmetric.
- static public void ForceConjugateSymmetric(Matrix matrix)
+ static public void ForceHermitian(Matrix matrix)
{
if (matrix.RowCount != matrix.ColumnCount)
{
@@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests
/// from the lower triangle to the upper triangle.
///
/// The matrix to make conjugate symmetric.
- public static void ForceConjugateSymmetric(Matrix matrix)
+ public static void ForceHermitian(Matrix matrix)
{
if (matrix.RowCount != matrix.ColumnCount)
{