Browse Source

LA: avoid some redundant range checks (perf)

la-knuth
Christoph Ruegg 14 years ago
parent
commit
6f122ed0b6
  1. 2
      src/Numerics/Distributions/Multivariate/InverseWishart.cs
  2. 6
      src/Numerics/Distributions/Multivariate/MatrixNormal.cs
  3. 6
      src/Numerics/Distributions/Multivariate/Wishart.cs
  4. 4
      src/Numerics/LinearAlgebra/Complex/DenseVector.cs
  5. 14
      src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs
  6. 4
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs
  7. 4
      src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs
  8. 2
      src/Numerics/LinearAlgebra/Complex/Factorization/UserSvd.cs
  9. 4
      src/Numerics/LinearAlgebra/Complex/Solvers/Preconditioners/Diagonal.cs
  10. 4
      src/Numerics/LinearAlgebra/Complex32/DenseVector.cs
  11. 14
      src/Numerics/LinearAlgebra/Complex32/DiagonalMatrix.cs
  12. 4
      src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs
  13. 4
      src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs
  14. 2
      src/Numerics/LinearAlgebra/Complex32/Factorization/UserSvd.cs
  15. 4
      src/Numerics/LinearAlgebra/Double/DenseVector.cs
  16. 14
      src/Numerics/LinearAlgebra/Double/DiagonalMatrix.cs
  17. 6
      src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs
  18. 6
      src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs
  19. 2
      src/Numerics/LinearAlgebra/Double/Factorization/UserSvd.cs
  20. 4
      src/Numerics/LinearAlgebra/Generic/Matrix.cs
  21. 4
      src/Numerics/LinearAlgebra/Generic/Vector.cs
  22. 4
      src/Numerics/LinearAlgebra/Single/DenseVector.cs
  23. 14
      src/Numerics/LinearAlgebra/Single/DiagonalMatrix.cs
  24. 4
      src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs
  25. 4
      src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs
  26. 2
      src/Numerics/LinearAlgebra/Single/Factorization/UserSvd.cs

2
src/Numerics/Distributions/Multivariate/InverseWishart.cs

@ -121,7 +121,7 @@ namespace MathNet.Numerics.Distributions
for (var i = 0; i < s.RowCount; i++)
{
if (s[i, i] <= 0.0)
if (s.At(i, i) <= 0.0)
{
return false;
}

6
src/Numerics/Distributions/Multivariate/MatrixNormal.cs

@ -190,7 +190,7 @@ namespace MathNet.Numerics.Distributions
for (var i = 0; i < v.RowCount; i++)
{
if (v[i, i] <= 0)
if (v.At(i, i) <= 0)
{
return false;
}
@ -198,7 +198,7 @@ namespace MathNet.Numerics.Distributions
for (var i = 0; i < k.RowCount; i++)
{
if (k[i, i] <= 0)
if (k.At(i, i) <= 0)
{
return false;
}
@ -291,7 +291,7 @@ namespace MathNet.Numerics.Distributions
{
for (var j = 0; j < p; j++)
{
r[i, j] += vector[(j * n) + i];
r.At(i, j, r.At(i, j) + vector[(j * n) + i]);
}
}

6
src/Numerics/Distributions/Multivariate/Wishart.cs

@ -114,7 +114,7 @@ namespace MathNet.Numerics.Distributions
for (var i = 0; i < s.RowCount; i++)
{
if (s[i, i] <= 0.0)
if (s.At(i, i) <= 0.0)
{
return false;
}
@ -316,14 +316,14 @@ namespace MathNet.Numerics.Distributions
var a = new DenseMatrix(count, count, 0.0);
for (var d = 0; d < count; d++)
{
a[d, d] = Math.Sqrt(Gamma.Sample(rnd, (nu - d) / 2.0, 0.5));
a.At(d, d, Math.Sqrt(Gamma.Sample(rnd, (nu - d)/2.0, 0.5)));
}
for (var i = 1; i < count; i++)
{
for (var j = 0; j < i; j++)
{
a[i, j] = Normal.Sample(rnd, 0.0, 1.0);
a.At(i, j, Normal.Sample(rnd, 0.0, 1.0));
}
}

4
src/Numerics/LinearAlgebra/Complex/DenseVector.cs

@ -172,7 +172,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
var matrix = new DenseMatrix(Count, 1);
for (var i = 0; i < Data.Length; i++)
{
matrix[i, 0] = Data[i];
matrix.At(i, 0, Data[i]);
}
return matrix;
@ -187,7 +187,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
var matrix = new DenseMatrix(1, Count);
for (var i = 0; i < Data.Length; i++)
{
matrix[0, i] = Data[i];
matrix.At(0, i, Data[i]);
}
return matrix;

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

@ -951,7 +951,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1016,7 +1016,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1236,7 +1236,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1244,7 +1244,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
{
for (var j = 0; j < lower.ColumnCount; j++)
{
result[i + RowCount, j] = lower[i, j];
result.At(i + RowCount, j, lower.At(i, j));
}
}
}
@ -1304,7 +1304,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1312,7 +1312,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
{
for (var j = 0; j < right.ColumnCount; j++)
{
result[i, j + RowCount] = right[i, j];
result.At(i, j + RowCount, right.At(i, j));
}
}
}
@ -1368,7 +1368,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.

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

@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i].Conjugate();
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i).Conjugate();
}
}
@ -870,7 +870,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
value += ((DenseMatrix)MatrixEv).Data[(i * order) + j] * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

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

@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i].Conjugate();
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i).Conjugate();
}
}
@ -865,7 +865,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
value += MatrixEv.At(j, i) * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

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

@ -866,7 +866,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
value += MatrixVT.At(i, j).Conjugate() * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

4
src/Numerics/LinearAlgebra/Complex/Solvers/Preconditioners/Diagonal.cs

@ -54,7 +54,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Preconditioners
var result = new DiagonalMatrix(_inverseDiagonals.Length);
for (var i = 0; i < _inverseDiagonals.Length; i++)
{
result[i, i] = 1 / _inverseDiagonals[i];
result.At(i, i, 1 / _inverseDiagonals[i]);
}
return result;
@ -82,7 +82,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers.Preconditioners
_inverseDiagonals = new Complex[matrix.RowCount];
for (var i = 0; i < matrix.RowCount; i++)
{
_inverseDiagonals[i] = 1 / matrix[i, i];
_inverseDiagonals[i] = 1 / matrix.At(i, i);
}
}

4
src/Numerics/LinearAlgebra/Complex32/DenseVector.cs

@ -173,7 +173,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
var matrix = new DenseMatrix(Count, 1);
for (var i = 0; i < Data.Length; i++)
{
matrix[i, 0] = Data[i];
matrix.At(i, 0, Data[i]);
}
return matrix;
@ -188,7 +188,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
var matrix = new DenseMatrix(1, Count);
for (var i = 0; i < Data.Length; i++)
{
matrix[0, i] = Data[i];
matrix.At(0, i, Data[i]);
}
return matrix;

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

@ -951,7 +951,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1016,7 +1016,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1236,7 +1236,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1244,7 +1244,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
{
for (var j = 0; j < lower.ColumnCount; j++)
{
result[i + RowCount, j] = lower[i, j];
result.At(i + RowCount, j, lower.At(i, j));
}
}
}
@ -1304,7 +1304,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1312,7 +1312,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
{
for (var j = 0; j < right.ColumnCount; j++)
{
result[i, j + RowCount] = right[i, j];
result.At(i, j + RowCount, right.At(i, j));
}
}
}
@ -1368,7 +1368,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.

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

@ -84,7 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i].Conjugate();
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i).Conjugate();
}
}
@ -874,7 +874,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
value += ((DenseMatrix)MatrixEv).Data[(i * order) + j] * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

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

@ -84,7 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i].Conjugate();
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i).Conjugate();
}
}
@ -869,7 +869,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
value += MatrixEv.At(j, i) * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

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

@ -866,7 +866,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
value += MatrixVT.At(i, j).Conjugate() * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

4
src/Numerics/LinearAlgebra/Double/DenseVector.cs

@ -181,7 +181,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
var matrix = new DenseMatrix(Count, 1);
for (var i = 0; i < Data.Length; i++)
{
matrix[i, 0] = Data[i];
matrix.At(i, 0, Data[i]);
}
return matrix;
@ -196,7 +196,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
var matrix = new DenseMatrix(1, Count);
for (var i = 0; i < Data.Length; i++)
{
matrix[0, i] = Data[i];
matrix.At(0, i, Data[i]);
}
return matrix;

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

@ -945,7 +945,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1010,7 +1010,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1230,7 +1230,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1238,7 +1238,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
{
for (var j = 0; j < lower.ColumnCount; j++)
{
result[i + RowCount, j] = lower[i, j];
result.At(i + RowCount, j, lower.At(i, j));
}
}
}
@ -1298,7 +1298,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1306,7 +1306,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
{
for (var j = 0; j < right.ColumnCount; j++)
{
result[i, j + RowCount] = right[i, j];
result.At(i, j + RowCount, right.At(i, j));
}
}
}
@ -1362,7 +1362,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.

6
src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs

@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i];
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i);
}
}
@ -108,7 +108,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
for (var i = 0; i < order; i++)
{
MatrixD[i, i] = d[i];
MatrixD.At(i, i, d[i]);
if (e[i] > 0)
{
@ -1142,7 +1142,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
value += ((DenseMatrix)MatrixEv).Data[(i * order) + j] * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

6
src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs

@ -83,7 +83,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i];
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i);
}
}
@ -108,7 +108,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
for (var i = 0; i < order; i++)
{
MatrixD[i, i] = d[i];
MatrixD.At(i, i, d[i]);
if (e[i] > 0)
{
@ -1138,7 +1138,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
value += MatrixEv.At(j, i) * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

2
src/Numerics/LinearAlgebra/Double/Factorization/UserSvd.cs

@ -850,7 +850,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
value += MatrixVT.At(i, j) * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

4
src/Numerics/LinearAlgebra/Generic/Matrix.cs

@ -1165,7 +1165,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
{
for (int i = rowIndex, ii = 0; i < rowMax; i++, ii++)
{
At(i, j, subMatrix[ii, j - columnIndex]);
At(i, j, subMatrix.At(ii, j - columnIndex));
}
}
}
@ -1438,7 +1438,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
{
var col = i%ColumnCount;
var row = (i - col)/RowCount;
hash = hash*31 + this[row, col].GetHashCode();
hash = hash*31 + At(row, col).GetHashCode();
}
}
return hash;

4
src/Numerics/LinearAlgebra/Generic/Vector.cs

@ -1303,7 +1303,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
var matrix = CreateMatrix(Count, 1);
for (var i = 0; i < Count; i++)
{
matrix[i, 0] = this[i];
matrix.At(i, 0, this[i]);
}
return matrix;
@ -1320,7 +1320,7 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
var matrix = CreateMatrix(1, Count);
for (var i = 0; i < Count; i++)
{
matrix[0, i] = this[i];
matrix.At(0, i, this[i]);
}
return matrix;

4
src/Numerics/LinearAlgebra/Single/DenseVector.cs

@ -181,7 +181,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
var matrix = new DenseMatrix(Count, 1);
for (var i = 0; i < Data.Length; i++)
{
matrix[i, 0] = Data[i];
matrix.At(i, 0, Data[i]);
}
return matrix;
@ -196,7 +196,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
var matrix = new DenseMatrix(1, Count);
for (var i = 0; i < Data.Length; i++)
{
matrix[0, i] = Data[i];
matrix.At(0, i, Data[i]);
}
return matrix;

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

@ -945,7 +945,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1010,7 +1010,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
result.Clear();
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
}
@ -1230,7 +1230,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1238,7 +1238,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
{
for (var j = 0; j < lower.ColumnCount; j++)
{
result[i + RowCount, j] = lower[i, j];
result.At(i + RowCount, j, lower.At(i, j));
}
}
}
@ -1298,7 +1298,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.
@ -1306,7 +1306,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
{
for (var j = 0; j < right.ColumnCount; j++)
{
result[i, j + RowCount] = right[i, j];
result.At(i, j + RowCount, right.At(i, j));
}
}
}
@ -1362,7 +1362,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
// Copy the diagonal part into the result matrix.
for (var i = 0; i < _data.Length; i++)
{
result[i, i] = _data[i];
result.At(i, i, _data[i]);
}
// Copy the lower matrix into the result matrix.

4
src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs

@ -84,7 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i];
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i);
}
}
@ -1143,7 +1143,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
value += ((DenseMatrix)MatrixEv).Data[(i * order) + j] * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

4
src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs

@ -84,7 +84,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
{
for (var j = 0; j < order & IsSymmetric; j++)
{
IsSymmetric &= matrix[i, j] == matrix[j, i];
IsSymmetric &= matrix.At(i, j) == matrix.At(j, i);
}
}
@ -1139,7 +1139,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
value += MatrixEv.At(j, i) * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

2
src/Numerics/LinearAlgebra/Single/Factorization/UserSvd.cs

@ -850,7 +850,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
value += MatrixVT.At(i, j) * tmp[i];
}
result[j, k] = value;
result.At(j, k, value);
}
}
}

Loading…
Cancel
Save