Browse Source

LA: align CreateIdentity with the other static create functions

pull/163/head
Christoph Ruegg 13 years ago
parent
commit
6a65aa5027
  1. 2
      src/Examples/LinearAlgebra/MatrixInitialization.cs
  2. 2
      src/Examples/LinearAlgebra/MatrixRowColumnOperations.cs
  3. 16
      src/Numerics/LinearAlgebra/Builder.cs
  4. 31
      src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs
  5. 35
      src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs
  6. 2
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs
  7. 2
      src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs
  8. 38
      src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs
  9. 31
      src/Numerics/LinearAlgebra/Complex32/DenseMatrix.cs
  10. 35
      src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs
  11. 2
      src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs
  12. 2
      src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs
  13. 38
      src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs
  14. 31
      src/Numerics/LinearAlgebra/Double/DenseMatrix.cs
  15. 35
      src/Numerics/LinearAlgebra/Double/DiagonalMatrix.cs
  16. 38
      src/Numerics/LinearAlgebra/Double/SparseMatrix.cs
  17. 31
      src/Numerics/LinearAlgebra/Single/DenseMatrix.cs
  18. 35
      src/Numerics/LinearAlgebra/Single/DiagonalMatrix.cs
  19. 38
      src/Numerics/LinearAlgebra/Single/SparseMatrix.cs
  20. 7
      src/Numerics/LinearAlgebra/Storage/SparseCompressedRowMatrixStorage.cs
  21. 4
      src/UnitTests/LinearAlgebraTests/Complex/DenseMatrixTests.cs
  22. 4
      src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs
  23. 6
      src/UnitTests/LinearAlgebraTests/Complex/Factorization/CholeskyTests.cs
  24. 6
      src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs
  25. 4
      src/UnitTests/LinearAlgebraTests/Complex/Factorization/GramSchmidtTests.cs
  26. 4
      src/UnitTests/LinearAlgebraTests/Complex/Factorization/LUTests.cs
  27. 6
      src/UnitTests/LinearAlgebraTests/Complex/Factorization/QRTests.cs
  28. 2
      src/UnitTests/LinearAlgebraTests/Complex/Factorization/SvdTests.cs
  29. 4
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs
  30. 4
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs
  31. 4
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs
  32. 4
      src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs
  33. 4
      src/UnitTests/LinearAlgebraTests/Complex/SparseMatrixTests.cs
  34. 4
      src/UnitTests/LinearAlgebraTests/Complex32/DenseMatrixTests.cs
  35. 4
      src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs
  36. 6
      src/UnitTests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs
  37. 6
      src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs
  38. 4
      src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs
  39. 4
      src/UnitTests/LinearAlgebraTests/Complex32/Factorization/LUTests.cs
  40. 6
      src/UnitTests/LinearAlgebraTests/Complex32/Factorization/QRTests.cs
  41. 2
      src/UnitTests/LinearAlgebraTests/Complex32/Factorization/SvdTests.cs
  42. 4
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs
  43. 4
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs
  44. 4
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs
  45. 4
      src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs
  46. 4
      src/UnitTests/LinearAlgebraTests/Complex32/SparseMatrixTests.cs
  47. 4
      src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs
  48. 6
      src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs
  49. 6
      src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs
  50. 6
      src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs
  51. 4
      src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs
  52. 4
      src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs
  53. 6
      src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs
  54. 2
      src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs
  55. 4
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs
  56. 4
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs
  57. 4
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs
  58. 4
      src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs
  59. 4
      src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs
  60. 4
      src/UnitTests/LinearAlgebraTests/Single/DenseMatrixTests.cs
  61. 4
      src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs
  62. 6
      src/UnitTests/LinearAlgebraTests/Single/Factorization/CholeskyTests.cs
  63. 6
      src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs
  64. 4
      src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs
  65. 4
      src/UnitTests/LinearAlgebraTests/Single/Factorization/LUTests.cs
  66. 6
      src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs
  67. 2
      src/UnitTests/LinearAlgebraTests/Single/Factorization/SvdTests.cs
  68. 4
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs
  69. 4
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs
  70. 4
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs
  71. 4
      src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs
  72. 4
      src/UnitTests/LinearAlgebraTests/Single/SparseMatrixTests.cs

2
src/Examples/LinearAlgebra/MatrixInitialization.cs

@ -78,7 +78,7 @@ namespace Examples.LinearAlgebraExamples
var matrix5 = new DenseMatrix(2, 3, new[] { 1.0, 4.0, 2.0, 5.0, 3.0, 6.0 });
// 5. Initialize a square matrix with all zero's except for ones on the diagonal. Identity matrix (http://en.wikipedia.org/wiki/Identity_matrix).
var matrixI = DenseMatrix.Identity(5);
var matrixI = DenseMatrix.CreateIdentity(5);
// Format matrix output to console
var formatProvider = (CultureInfo)CultureInfo.InvariantCulture.Clone();

2
src/Examples/LinearAlgebra/MatrixRowColumnOperations.cs

@ -119,7 +119,7 @@ namespace Examples.LinearAlgebraExamples
Console.WriteLine();
// 6. Set submatrix values
matrix.SetSubMatrix(1, 3, 1, 3, DenseMatrix.Identity(3));
matrix.SetSubMatrix(1, 3, 1, 3, DenseMatrix.CreateIdentity(3));
Console.WriteLine(@"6. Set submatrix values");
Console.WriteLine(matrix.ToString("#0.00\t", formatProvider));
Console.WriteLine();

16
src/Numerics/LinearAlgebra/Builder.cs

@ -70,7 +70,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
public override Matrix<double> Random(int rows, int columns, IContinuousDistribution distribution)
{
return DenseMatrix.CreateRandom(rows, columns, distribution);
return Dense(rows, columns, (i, j) => distribution.Sample());
}
public override IIterationStopCriterium<double>[] IterativeSolverStopCriteria(int maxIterations = 1000)
@ -109,7 +109,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
public override Vector<double> Random(int length, IContinuousDistribution distribution)
{
return new DenseVector(DenseVectorStorage<double>.OfInit(length, i => distribution.Sample()));
return Dense(length, i => distribution.Sample());
}
}
}
@ -147,7 +147,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
public override Matrix<float> Random(int rows, int columns, IContinuousDistribution distribution)
{
return DenseMatrix.CreateRandom(rows, columns, distribution);
return Dense(rows, columns, (i, j) => (float) distribution.Sample());
}
public override IIterationStopCriterium<float>[] IterativeSolverStopCriteria(int maxIterations = 1000)
@ -186,7 +186,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
public override Vector<float> Random(int length, IContinuousDistribution distribution)
{
return new DenseVector(DenseVectorStorage<float>.OfInit(length, i => (float)distribution.Sample()));
return Dense(length, i => (float) distribution.Sample());
}
}
}
@ -230,7 +230,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
public override Matrix<Complex> Random(int rows, int columns, IContinuousDistribution distribution)
{
return DenseMatrix.CreateRandom(rows, columns, distribution);
return Dense(rows, columns, (i, j) => new Complex(distribution.Sample(), distribution.Sample()));
}
public override IIterationStopCriterium<Complex>[] IterativeSolverStopCriteria(int maxIterations = 1000)
@ -269,7 +269,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
public override Vector<Complex> Random(int length, IContinuousDistribution distribution)
{
return new DenseVector(DenseVectorStorage<Complex>.OfInit(length, i => new Complex(distribution.Sample(), distribution.Sample())));
return Dense(length, i => new Complex(distribution.Sample(), distribution.Sample()));
}
}
}
@ -307,7 +307,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
public override Matrix<Numerics.Complex32> Random(int rows, int columns, IContinuousDistribution distribution)
{
return DenseMatrix.CreateRandom(rows, columns, distribution);
return Dense(rows, columns, (i, j) => new Numerics.Complex32((float) distribution.Sample(), (float) distribution.Sample()));
}
public override IIterationStopCriterium<Numerics.Complex32>[] IterativeSolverStopCriteria(int maxIterations = 1000)
@ -346,7 +346,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
public override Vector<Numerics.Complex32> Random(int length, IContinuousDistribution distribution)
{
return new DenseVector(DenseVectorStorage<Numerics.Complex32>.OfInit(length, i => new Numerics.Complex32((float)distribution.Sample(), (float)distribution.Sample())));
return Dense(length, i => new Numerics.Complex32((float) distribution.Sample(), (float) distribution.Sample()));
}
}
}

31
src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs

@ -381,6 +381,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return new DenseMatrix(DenseColumnMajorMatrixStorage<Complex>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DenseMatrix CreateIdentity(int order)
{
return new DenseMatrix(DenseColumnMajorMatrixStorage<Complex>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Create a new dense matrix with values sampled from the provided random distribution.
/// </summary>
@ -439,29 +447,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, _rowCount, _columnCount, _values);
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DenseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A dense identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DenseMatrix Identity(int order)
{
var m = new DenseMatrix(order);
for (var i = 0; i < order; i++)
{
m._values[(i * order) + i] = 1.0;
}
return m;
}
#endregion
/// <summary>
/// Multiplies each element of the matrix by a scalar and places results into the result matrix.
/// </summary>

35
src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs

@ -177,6 +177,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return new DiagonalMatrix(DiagonalMatrixStorage<Complex>.OfInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DiagonalMatrix CreateIdentity(int order)
{
return new DiagonalMatrix(DiagonalMatrixStorage<Complex>.OfInit(order, order, i => One));
}
/// <summary>
/// Create a new diagonal matrix with diagonal values sampled from the provided random distribution.
/// </summary>
@ -186,8 +194,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
i => new Complex(distribution.Sample(), distribution.Sample())));
}
#region Elementary operations
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>
@ -635,8 +641,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return result;
}
#endregion
/// <summary>
/// Returns the transpose of this matrix.
/// </summary>
@ -998,28 +1002,5 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return true;
}
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DiagonalMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A diagonal identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DiagonalMatrix Identity(int order)
{
var m = new DiagonalMatrix(order);
for (var i = 0; i < order; i++)
{
m._data[i] = 1.0;
}
return m;
}
#endregion
}
}

2
src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs

@ -74,7 +74,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
var order = matrix.RowCount;
// Initialize matrices for eigenvalues and eigenvectors
var eigenVectors = DenseMatrix.Identity(order);
var eigenVectors = DenseMatrix.CreateIdentity(order);
var blockDiagonal = new DenseMatrix(order);
var eigenValues = new DenseVector(order);

2
src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs

@ -74,7 +74,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
var order = matrix.RowCount;
// Initialize matricies for eigenvalues and eigenvectors
var eigenVectors = DenseMatrix.Identity(order);
var eigenVectors = DenseMatrix.CreateIdentity(order);
var blockDiagonal = matrix.CreateMatrix(order, order);
var eigenValues = new DenseVector(order);

38
src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs

@ -368,6 +368,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return new SparseMatrix(SparseCompressedRowMatrixStorage<Complex>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static SparseMatrix CreateIdentity(int order)
{
return new SparseMatrix(SparseCompressedRowMatrixStorage<Complex>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Returns a new matrix containing the lower triangle of this matrix.
/// </summary>
@ -726,36 +734,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
return norm;
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="SparseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>Identity <c>SparseMatrix</c></returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static SparseMatrix Identity(int order)
{
var storage = new SparseCompressedRowMatrixStorage<Complex>(order, order)
{
Values = new Complex[order],
ColumnIndices = new int[order]
};
for (var i = 0; i < order; i++)
{
storage.Values[i] = 1d;
storage.ColumnIndices[i] = i;
storage.RowPointers[i] = i;
}
storage.RowPointers[order] = order;
return new SparseMatrix(storage);
}
#endregion
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>

31
src/Numerics/LinearAlgebra/Complex32/DenseMatrix.cs

@ -376,6 +376,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return new DenseMatrix(DenseColumnMajorMatrixStorage<Complex32>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DenseMatrix CreateIdentity(int order)
{
return new DenseMatrix(DenseColumnMajorMatrixStorage<Complex32>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Create a new dense matrix with values sampled from the provided random distribution.
/// </summary>
@ -434,29 +442,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, _rowCount, _columnCount, _values);
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DenseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A dense identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DenseMatrix Identity(int order)
{
var m = new DenseMatrix(order);
for (var i = 0; i < order; i++)
{
m._values[(i * order) + i] = 1.0f;
}
return m;
}
#endregion
/// <summary>
/// Multiplies each element of the matrix by a scalar and places results into the result matrix.
/// </summary>

35
src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs

@ -172,6 +172,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return new DiagonalMatrix(DiagonalMatrixStorage<Complex32>.OfInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DiagonalMatrix CreateIdentity(int order)
{
return new DiagonalMatrix(DiagonalMatrixStorage<Complex32>.OfInit(order, order, i => One));
}
/// <summary>
/// Create a new diagonal matrix with diagonal values sampled from the provided random distribution.
/// </summary>
@ -181,8 +189,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
i => new Complex32((float) distribution.Sample(), (float) distribution.Sample())));
}
#region Elementary operations
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>
@ -630,8 +636,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return result;
}
#endregion
/// <summary>
/// Returns the transpose of this matrix.
/// </summary>
@ -993,28 +997,5 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return true;
}
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DiagonalMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A diagonal identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DiagonalMatrix Identity(int order)
{
var m = new DiagonalMatrix(order);
for (var i = 0; i < order; i++)
{
m._data[i] = 1.0f;
}
return m;
}
#endregion
}
}

2
src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs

@ -75,7 +75,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
var order = matrix.RowCount;
// Initialize matrices for eigenvalues and eigenvectors
var eigenVectors = DenseMatrix.Identity(order);
var eigenVectors = DenseMatrix.CreateIdentity(order);
var blockDiagonal = new DenseMatrix(order);
var eigenValues = new LinearAlgebra.Complex.DenseVector(order);

2
src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs

@ -73,7 +73,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
var order = matrix.RowCount;
// Initialize matricies for eigenvalues and eigenvectors
var eigenVectors = DenseMatrix.Identity(order);
var eigenVectors = DenseMatrix.CreateIdentity(order);
var blockDiagonal = matrix.CreateMatrix(order, order);
var eigenValues = new LinearAlgebra.Complex.DenseVector(order);

38
src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs

@ -363,6 +363,14 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return new SparseMatrix(SparseCompressedRowMatrixStorage<Complex32>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static SparseMatrix CreateIdentity(int order)
{
return new SparseMatrix(SparseCompressedRowMatrixStorage<Complex32>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Returns a new matrix containing the lower triangle of this matrix.
/// </summary>
@ -721,36 +729,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
return norm;
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="SparseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>Identity <c>SparseMatrix</c></returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static SparseMatrix Identity(int order)
{
var storage = new SparseCompressedRowMatrixStorage<Complex32>(order, order)
{
Values = new Complex32[order],
ColumnIndices = new int[order]
};
for (var i = 0; i < order; i++)
{
storage.Values[i] = 1f;
storage.ColumnIndices[i] = i;
storage.RowPointers[i] = i;
}
storage.RowPointers[order] = order;
return new SparseMatrix(storage);
}
#endregion
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>

31
src/Numerics/LinearAlgebra/Double/DenseMatrix.cs

@ -374,6 +374,14 @@ namespace MathNet.Numerics.LinearAlgebra.Double
return new DenseMatrix(DenseColumnMajorMatrixStorage<double>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DenseMatrix CreateIdentity(int order)
{
return new DenseMatrix(DenseColumnMajorMatrixStorage<double>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Create a new dense matrix with values sampled from the provided random distribution.
/// </summary>
@ -431,29 +439,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double
return Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, _rowCount, _columnCount, _values);
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DenseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A dense identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DenseMatrix Identity(int order)
{
var m = new DenseMatrix(order);
for (var i = 0; i < order; i++)
{
m._values[(i * order) + i] = 1.0;
}
return m;
}
#endregion
/// <summary>
/// Add a scalar to each element of the matrix and stores the result in the result vector.
/// </summary>

35
src/Numerics/LinearAlgebra/Double/DiagonalMatrix.cs

@ -171,6 +171,14 @@ namespace MathNet.Numerics.LinearAlgebra.Double
return new DiagonalMatrix(DiagonalMatrixStorage<double>.OfInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DiagonalMatrix CreateIdentity(int order)
{
return new DiagonalMatrix(DiagonalMatrixStorage<double>.OfInit(order, order, i => One));
}
/// <summary>
/// Create a new diagonal matrix with diagonal values sampled from the provided random distribution.
/// </summary>
@ -180,8 +188,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double
i => distribution.Sample()));
}
#region Elementary operations
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>
@ -624,8 +630,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double
return result;
}
#endregion
/// <summary>
/// Returns the transpose of this matrix.
/// </summary>
@ -1035,28 +1039,5 @@ namespace MathNet.Numerics.LinearAlgebra.Double
}
});
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DiagonalMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A diagonal identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DiagonalMatrix Identity(int order)
{
var m = new DiagonalMatrix(order);
for (var i = 0; i < order; i++)
{
m._data[i] = 1.0;
}
return m;
}
#endregion
}
}

38
src/Numerics/LinearAlgebra/Double/SparseMatrix.cs

@ -361,6 +361,14 @@ namespace MathNet.Numerics.LinearAlgebra.Double
return new SparseMatrix(SparseCompressedRowMatrixStorage<double>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static SparseMatrix CreateIdentity(int order)
{
return new SparseMatrix(SparseCompressedRowMatrixStorage<double>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Returns a new matrix containing the lower triangle of this matrix.
/// </summary>
@ -721,36 +729,6 @@ namespace MathNet.Numerics.LinearAlgebra.Double
return norm;
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="SparseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>Identity <c>SparseMatrix</c></returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static SparseMatrix Identity(int order)
{
var storage = new SparseCompressedRowMatrixStorage<double>(order, order)
{
Values = new double[order],
ColumnIndices = new int[order]
};
for (var i = 0; i < order; i++)
{
storage.Values[i] = 1d;
storage.ColumnIndices[i] = i;
storage.RowPointers[i] = i;
}
storage.RowPointers[order] = order;
return new SparseMatrix(storage);
}
#endregion
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>

31
src/Numerics/LinearAlgebra/Single/DenseMatrix.cs

@ -374,6 +374,14 @@ namespace MathNet.Numerics.LinearAlgebra.Single
return new DenseMatrix(DenseColumnMajorMatrixStorage<float>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DenseMatrix CreateIdentity(int order)
{
return new DenseMatrix(DenseColumnMajorMatrixStorage<float>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Create a new dense matrix with values sampled from the provided random distribution.
/// </summary>
@ -431,29 +439,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single
return Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, _rowCount, _columnCount, _values);
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DenseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A dense identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DenseMatrix Identity(int order)
{
var m = new DenseMatrix(order);
for (var i = 0; i < order; i++)
{
m._values[(i * order) + i] = 1.0f;
}
return m;
}
#endregion
/// <summary>
/// Add a scalar to each element of the matrix and stores the result in the result vector.
/// </summary>

35
src/Numerics/LinearAlgebra/Single/DiagonalMatrix.cs

@ -171,6 +171,14 @@ namespace MathNet.Numerics.LinearAlgebra.Single
return new DiagonalMatrix(DiagonalMatrixStorage<float>.OfInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static DiagonalMatrix CreateIdentity(int order)
{
return new DiagonalMatrix(DiagonalMatrixStorage<float>.OfInit(order, order, i => One));
}
/// <summary>
/// Create a new diagonal matrix with diagonal values sampled from the provided random distribution.
/// </summary>
@ -180,8 +188,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single
i => (float) distribution.Sample()));
}
#region Elementary operations
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>
@ -624,8 +630,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single
return result;
}
#endregion
/// <summary>
/// Returns the transpose of this matrix.
/// </summary>
@ -1035,28 +1039,5 @@ namespace MathNet.Numerics.LinearAlgebra.Single
}
});
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="DiagonalMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>A diagonal identity matrix.</returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static DiagonalMatrix Identity(int order)
{
var m = new DiagonalMatrix(order);
for (var i = 0; i < order; i++)
{
m._data[i] = 1.0f;
}
return m;
}
#endregion
}
}

38
src/Numerics/LinearAlgebra/Single/SparseMatrix.cs

@ -361,6 +361,14 @@ namespace MathNet.Numerics.LinearAlgebra.Single
return new SparseMatrix(SparseCompressedRowMatrixStorage<float>.OfDiagonalInit(rows, columns, init));
}
/// <summary>
/// Create a new square sparse identity matrix where each diagonal value is set to One.
/// </summary>
public static SparseMatrix CreateIdentity(int order)
{
return new SparseMatrix(SparseCompressedRowMatrixStorage<float>.OfDiagonalInit(order, order, i => One));
}
/// <summary>
/// Returns a new matrix containing the lower triangle of this matrix.
/// </summary>
@ -727,36 +735,6 @@ namespace MathNet.Numerics.LinearAlgebra.Single
return norm;
}
#region Static constructors for special matrices.
/// <summary>
/// Initializes a square <see cref="SparseMatrix"/> with all zero's except for ones on the diagonal.
/// </summary>
/// <param name="order">the size of the square matrix.</param>
/// <returns>Identity <c>SparseMatrix</c></returns>
/// <exception cref="ArgumentException">
/// If <paramref name="order"/> is less than one.
/// </exception>
public static SparseMatrix Identity(int order)
{
var storage = new SparseCompressedRowMatrixStorage<float>(order, order)
{
Values = new float[order],
ColumnIndices = new int[order]
};
for (var i = 0; i < order; i++)
{
storage.Values[i] = 1f;
storage.ColumnIndices[i] = i;
storage.RowPointers[i] = i;
}
storage.RowPointers[order] = order;
return new SparseMatrix(storage);
}
#endregion
/// <summary>
/// Adds another matrix to this matrix.
/// </summary>

7
src/Numerics/LinearAlgebra/Storage/SparseCompressedRowMatrixStorage.cs

@ -429,12 +429,13 @@ namespace MathNet.Numerics.LinearAlgebra.Storage
public static SparseCompressedRowMatrixStorage<T> OfDiagonalInit(int rows, int columns, Func<int, T> init)
{
int diagonalLength = Math.Min(rows, columns);
var storage = new SparseCompressedRowMatrixStorage<T>(rows, columns);
var rowPointers = storage.RowPointers;
var columnIndices = new List<int>();
var values = new List<T>();
var columnIndices = new List<int>(diagonalLength);
var values = new List<T>(diagonalLength);
for (int i = 0; i < Math.Min(rows, columns); i++)
for (int i = 0; i < diagonalLength; i++)
{
rowPointers[i] = values.Count;
var x = init(i);

4
src/UnitTests/LinearAlgebraTests/Complex/DenseMatrixTests.cs

@ -173,7 +173,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
[Test]
public void CanCreateIdentity()
{
var matrix = DenseMatrix.Identity(5);
var matrix = DenseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -191,7 +191,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.CreateIdentity(order));
}
}
}

4
src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs

@ -182,7 +182,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
[Test]
public void CanCreateIdentity()
{
var matrix = DiagonalMatrix.Identity(5);
var matrix = DiagonalMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -200,7 +200,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.CreateIdentity(order));
}
/// <summary>

6
src/UnitTests/LinearAlgebraTests/Complex/Factorization/CholeskyTests.cs

@ -46,7 +46,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky().Factor;
Assert.AreEqual(matrixI.RowCount, factorC.RowCount);
@ -67,7 +67,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[Test]
public void CholeskyFailsWithDiagonalNonPositiveDefiniteMatrix()
{
var matrixI = DenseMatrix.Identity(8);
var matrixI = DenseMatrix.CreateIdentity(8);
matrixI[3, 3] = -4.0;
Assert.Throws<ArgumentException>(() => matrixI.Cholesky());
}
@ -91,7 +91,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky();
Assert.AreEqual(Complex.One, factorC.Determinant);
Assert.AreEqual(Complex.Zero, factorC.DeterminantLn);

6
src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs

@ -1,4 +1,4 @@
// <copyright file="EvdTests.cs" company="Math.NET">
// <copyright file="EvdTests.cs" company="Math.NET">
// Math.NET Numerics, part of the Math.NET Project
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
@ -45,7 +45,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
var eigenValues = factorEvd.EigenValues;
var eigenVectors = factorEvd.EigenVectors;
@ -184,7 +184,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
Assert.AreEqual(Complex.One, factorEvd.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Complex/Factorization/GramSchmidtTests.cs

@ -56,7 +56,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
var q = factorGramSchmidt.Q;
var r = factorGramSchmidt.R;
@ -104,7 +104,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
Assert.AreEqual(Complex.One, factorGramSchmidt.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Complex/Factorization/LUTests.cs

@ -46,7 +46,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorLU = matrixI.LU();
// Check lower triangular part.
@ -93,7 +93,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var lu = matrixI.LU();
Assert.AreEqual(Complex.One, lu.Determinant);
}

6
src/UnitTests/LinearAlgebraTests/Complex/Factorization/QRTests.cs

@ -57,7 +57,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
var r = factorQR.R;
@ -89,7 +89,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentityUsingThinQR(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR(QRMethod.Thin);
var r = factorQR.R;
@ -121,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
Assert.AreEqual(Complex.One, factorQR.Determinant);
}

2
src/UnitTests/LinearAlgebraTests/Complex/Factorization/SvdTests.cs

@ -46,7 +46,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorSvd = matrixI.Svd();
var u = factorSvd.U;
var vt = factorSvd.VT;

4
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => Complex.One);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(new Complex(Math.PI, Math.PI), matrix);

4
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Complex/SparseMatrixTests.cs

@ -158,7 +158,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
[Test]
public void CanCreateIdentity()
{
var matrix = SparseMatrix.Identity(5);
var matrix = SparseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -176,7 +176,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.CreateIdentity(order));
}
/// <summary>

4
src/UnitTests/LinearAlgebraTests/Complex32/DenseMatrixTests.cs

@ -173,7 +173,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
[Test]
public void CanCreateIdentity()
{
var matrix = DenseMatrix.Identity(5);
var matrix = DenseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -191,7 +191,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.CreateIdentity(order));
}
}
}

4
src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs

@ -182,7 +182,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
[Test]
public void CanCreateIdentity()
{
var matrix = DiagonalMatrix.Identity(5);
var matrix = DiagonalMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -200,7 +200,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.CreateIdentity(order));
}
/// <summary>

6
src/UnitTests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs

@ -45,7 +45,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky().Factor;
Assert.AreEqual(matrixI.RowCount, factorC.RowCount);
@ -66,7 +66,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[Test]
public void CholeskyFailsWithDiagonalNonPositiveDefiniteMatrix()
{
var matrixI = DenseMatrix.Identity(10);
var matrixI = DenseMatrix.CreateIdentity(10);
matrixI[3, 3] = -4.0f;
Assert.Throws<ArgumentException>(() => matrixI.Cholesky());
}
@ -90,7 +90,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky();
Assert.AreEqual(Complex32.One, factorC.Determinant);
Assert.AreEqual(Complex32.Zero, factorC.DeterminantLn);

6
src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs

@ -1,4 +1,4 @@
// <copyright file="EvdTests.cs" company="Math.NET">
// <copyright file="EvdTests.cs" company="Math.NET">
// Math.NET Numerics, part of the Math.NET Project
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
@ -46,7 +46,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
var eigenValues = factorEvd.EigenValues;
var eigenVectors = factorEvd.EigenVectors;
@ -181,7 +181,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
Assert.AreEqual(Complex32.One, factorEvd.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs

@ -56,7 +56,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
var q = factorGramSchmidt.Q;
var r = factorGramSchmidt.R;
@ -104,7 +104,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
Assert.AreEqual(Complex32.One, factorGramSchmidt.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Complex32/Factorization/LUTests.cs

@ -46,7 +46,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorLU = matrixI.LU();
// Check lower triangular part.
@ -93,7 +93,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var lu = matrixI.LU();
Assert.AreEqual(Complex32.One, lu.Determinant);
}

6
src/UnitTests/LinearAlgebraTests/Complex32/Factorization/QRTests.cs

@ -57,7 +57,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
var r = factorQR.R;
@ -89,7 +89,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentityUsingThinQR(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR(QRMethod.Thin);
var r = factorQR.R;
@ -122,7 +122,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
Assert.AreEqual(Complex32.One, factorQR.Determinant);
}

2
src/UnitTests/LinearAlgebraTests/Complex32/Factorization/SvdTests.cs

@ -46,7 +46,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorSvd = matrixI.Svd();
var u = factorSvd.U;
var vt = factorSvd.VT;

4
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => Complex32.One);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(new Complex32((float) Math.PI, (float) Math.PI), matrix);

4
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -128,7 +128,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Complex32/SparseMatrixTests.cs

@ -158,7 +158,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
[Test]
public void CanCreateIdentity()
{
var matrix = SparseMatrix.Identity(5);
var matrix = SparseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -176,7 +176,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.CreateIdentity(order));
}
/// <summary>

4
src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs

@ -171,7 +171,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[Test]
public void CanCreateIdentity()
{
var matrix = DenseMatrix.Identity(5);
var matrix = DenseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -189,7 +189,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.CreateIdentity(order));
}
}
}

6
src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs

@ -180,7 +180,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[Test]
public void CanCreateIdentity()
{
var matrix = DiagonalMatrix.Identity(5);
var matrix = DiagonalMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -198,7 +198,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.CreateIdentity(order));
}
/// <summary>
@ -405,7 +405,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[Test]
public void DiagonalDenseMatrixMultiplication_IssueCP5706()
{
Matrix<double> diagonal = DiagonalMatrix.Identity(3);
Matrix<double> diagonal = DiagonalMatrix.CreateIdentity(3);
Matrix<double> dense = DenseMatrix.OfArray(new double[,] {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}});
var test = diagonal*dense;
var test2 = dense*diagonal;

6
src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky().Factor;
Assert.AreEqual(matrixI.RowCount, factorC.RowCount);
@ -65,7 +65,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[Test]
public void CholeskyFailsWithDiagonalNonPositiveDefiniteMatrix()
{
var matrixI = DenseMatrix.Identity(10);
var matrixI = DenseMatrix.CreateIdentity(10);
matrixI[3, 3] = -4.0;
Assert.Throws<ArgumentException>(() => matrixI.Cholesky());
}
@ -89,7 +89,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky();
Assert.AreEqual(1.0, factorC.Determinant);
Assert.AreEqual(0.0, factorC.DeterminantLn);

6
src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs

@ -1,4 +1,4 @@
// <copyright file="EvdTests.cs" company="Math.NET">
// <copyright file="EvdTests.cs" company="Math.NET">
// Math.NET Numerics, part of the Math.NET Project
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
@ -45,7 +45,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
var eigenValues = factorEvd.EigenValues;
var eigenVectors = factorEvd.EigenVectors;
@ -185,7 +185,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
Assert.AreEqual(1.0, factorEvd.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs

@ -54,7 +54,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
var q = factorGramSchmidt.Q;
var r = factorGramSchmidt.R;
@ -102,7 +102,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
Assert.AreEqual(1.0, factorGramSchmidt.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorLU = matrixI.LU();
// Check lower triangular part.
@ -91,7 +91,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var lu = matrixI.LU();
Assert.AreEqual(1.0, lu.Determinant);
}

6
src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs

@ -55,7 +55,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
var r = factorQR.R;
@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentityUsingThinQR(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR(QRMethod.Thin);
var r = factorQR.R;
@ -119,7 +119,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
Assert.AreEqual(1.0, factorQR.Determinant);
}

2
src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorSvd = matrixI.Svd();
var u = factorSvd.U;
var vt = factorSvd.VT;

4
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply(Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs

@ -156,7 +156,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[Test]
public void CanCreateIdentity()
{
var matrix = SparseMatrix.Identity(5);
var matrix = SparseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -174,7 +174,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.CreateIdentity(order));
}
/// <summary>

4
src/UnitTests/LinearAlgebraTests/Single/DenseMatrixTests.cs

@ -171,7 +171,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
[Test]
public void CanCreateIdentity()
{
var matrix = DenseMatrix.Identity(5);
var matrix = DenseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -189,7 +189,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DenseMatrix.CreateIdentity(order));
}
}
}

4
src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs

@ -180,7 +180,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
[Test]
public void CanCreateIdentity()
{
var matrix = DiagonalMatrix.Identity(5);
var matrix = DiagonalMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -198,7 +198,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => DiagonalMatrix.CreateIdentity(order));
}
/// <summary>

6
src/UnitTests/LinearAlgebraTests/Single/Factorization/CholeskyTests.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky().Factor;
Assert.AreEqual(matrixI.RowCount, factorC.RowCount);
@ -65,7 +65,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[Test]
public void CholeskyFailsWithDiagonalNonPositiveDefiniteMatrix()
{
var matrixI = DenseMatrix.Identity(10);
var matrixI = DenseMatrix.CreateIdentity(10);
matrixI[3, 3] = -4.0f;
Assert.Throws<ArgumentException>(() => matrixI.Cholesky());
}
@ -89,7 +89,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorC = matrixI.Cholesky();
Assert.AreEqual(1.0, factorC.Determinant);
Assert.AreEqual(0.0, factorC.DeterminantLn);

6
src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs

@ -1,4 +1,4 @@
// <copyright file="EvdTests.cs" company="Math.NET">
// <copyright file="EvdTests.cs" company="Math.NET">
// Math.NET Numerics, part of the Math.NET Project
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
@ -45,7 +45,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
var eigenValues = factorEvd.EigenValues;
var eigenVectors = factorEvd.EigenVectors;
@ -174,7 +174,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorEvd = matrixI.Evd();
Assert.AreEqual(1.0, factorEvd.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs

@ -54,7 +54,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
var q = factorGramSchmidt.Q;
var r = factorGramSchmidt.R;
@ -102,7 +102,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorGramSchmidt = matrixI.GramSchmidt();
Assert.AreEqual(1.0, factorGramSchmidt.Determinant);
}

4
src/UnitTests/LinearAlgebraTests/Single/Factorization/LUTests.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorLU = matrixI.LU();
// Check lower triangular part.
@ -91,7 +91,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var lu = matrixI.LU();
Assert.AreEqual(1.0, lu.Determinant);
}

6
src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs

@ -55,7 +55,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
var r = factorQR.R;
@ -87,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentityUsingThinQR(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR(QRMethod.Thin);
var r = factorQR.R;
@ -120,7 +120,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void IdentityDeterminantIsOne(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorQR = matrixI.QR();
Assert.AreEqual(1.0, factorQR.Determinant);
}

2
src/UnitTests/LinearAlgebraTests/Single/Factorization/SvdTests.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization
[TestCase(100)]
public void CanFactorizeIdentity(int order)
{
var matrixI = DenseMatrix.Identity(order);
var matrixI = DenseMatrix.CreateIdentity(order);
var factorSvd = matrixI.Svd();
var u = factorSvd.U;
var vt = factorSvd.VT;

4
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs

@ -86,7 +86,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -127,7 +127,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs

@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Create the y vector
var y = DenseVector.Create(matrix.RowCount, i => 1);
@ -126,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative
public void SolveScaledUnitMatrixAndBackMultiply()
{
// Create the identity matrix
var matrix = SparseMatrix.Identity(100);
var matrix = SparseMatrix.CreateIdentity(100);
// Scale it with a funny number
matrix.Multiply((float) Math.PI, matrix);

4
src/UnitTests/LinearAlgebraTests/Single/SparseMatrixTests.cs

@ -156,7 +156,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
[Test]
public void CanCreateIdentity()
{
var matrix = SparseMatrix.Identity(5);
var matrix = SparseMatrix.CreateIdentity(5);
for (var i = 0; i < matrix.RowCount; i++)
{
for (var j = 0; j < matrix.ColumnCount; j++)
@ -174,7 +174,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
[TestCase(-1)]
public void IdentityWithWrongOrderThrowsArgumentOutOfRangeException(int order)
{
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.Identity(order));
Assert.Throws<ArgumentOutOfRangeException>(() => SparseMatrix.CreateIdentity(order));
}
/// <summary>

Loading…
Cancel
Save