|
|
|
@ -27,6 +27,7 @@ |
|
|
|
namespace MathNet.Numerics.LinearAlgebra.Complex32 |
|
|
|
{ |
|
|
|
using System; |
|
|
|
using Algorithms.LinearAlgebra; |
|
|
|
using Generic; |
|
|
|
using Numerics; |
|
|
|
using Properties; |
|
|
|
@ -222,55 +223,21 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32 |
|
|
|
/// <returns>The L1 norm of the matrix.</returns>
|
|
|
|
public override Complex32 L1Norm() |
|
|
|
{ |
|
|
|
var norm = 0.0f; |
|
|
|
for (var j = 0; j < ColumnCount; j++) |
|
|
|
{ |
|
|
|
var s = 0.0f; |
|
|
|
for (var i = 0; i < RowCount; i++) |
|
|
|
{ |
|
|
|
s += Data[(j * RowCount) + i].Magnitude; |
|
|
|
} |
|
|
|
|
|
|
|
norm = Math.Max(norm, s); |
|
|
|
} |
|
|
|
|
|
|
|
return norm; |
|
|
|
return Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, RowCount, ColumnCount, Data); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>Calculates the Frobenius norm of this matrix.</summary>
|
|
|
|
/// <returns>The Frobenius norm of this matrix.</returns>
|
|
|
|
public override Complex32 FrobeniusNorm() |
|
|
|
{ |
|
|
|
var transpose = (DenseMatrix)Transpose(); |
|
|
|
var aat = (DenseMatrix)(this * transpose); |
|
|
|
|
|
|
|
var norm = 0.0f; |
|
|
|
for (var i = 0; i < RowCount; i++) |
|
|
|
{ |
|
|
|
norm += aat.Data[(i * RowCount) + i].Magnitude; |
|
|
|
} |
|
|
|
|
|
|
|
norm = Convert.ToSingle(Math.Sqrt(norm)); |
|
|
|
return norm; |
|
|
|
return Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, RowCount, ColumnCount, Data); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>Calculates the infinity norm of this matrix.</summary>
|
|
|
|
/// <returns>The infinity norm of this matrix.</returns>
|
|
|
|
public override Complex32 InfinityNorm() |
|
|
|
{ |
|
|
|
var norm = 0.0f; |
|
|
|
for (var i = 0; i < RowCount; i++) |
|
|
|
{ |
|
|
|
var s = 0.0f; |
|
|
|
for (var j = 0; j < ColumnCount; j++) |
|
|
|
{ |
|
|
|
s += Data[(j * RowCount) + i].Magnitude; |
|
|
|
} |
|
|
|
|
|
|
|
norm = Math.Max(norm, s); |
|
|
|
} |
|
|
|
|
|
|
|
return norm; |
|
|
|
return Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, RowCount, ColumnCount, Data); |
|
|
|
} |
|
|
|
|
|
|
|
#region Elementary operations
|
|
|
|
|