SparseSolverTransformation<T>.CreateRowColumnEquilibration Method

Creates a sparse system snapshot equilibrated by row and column maximum magnitudes.

Definition

Namespace: Numerics.NET.LinearAlgebra.IterativeSolvers
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
C#
public static SparseSolverTransformation<T> CreateRowColumnEquilibration(
	SparseMatrix<T> matrix,
	int[]? ordering = null
)

Parameters

matrix  SparseMatrix<T>
A square sparse matrix with finite logical coefficients and magnitudes.
ordering  Int32[]  (Optional)
An optional copied permutation mapping new coordinates to original coordinates.

Return Value

SparseSolverTransformation<T>
A transformation using reciprocal row maxima followed by reciprocal column maxima of the row-scaled matrix. Empty rows and columns use one.

Remarks

Independent row/column scaling generally changes Hermitian structure. Use it with general solvers such as GMRES, FGMRES or BiCGStab. Zero rows/columns remain zero; scaling does not repair singularity. Required factors and intermediate nonzeros must be representable.

Exceptions

ArgumentNullExceptionmatrix is null.
DimensionMismatchExceptionThe matrix is not square or the ordering length is incorrect.
ArgumentExceptionThe ordering is invalid, coefficients or magnitudes are nonfinite, or a required positive scaling factor is unrepresentable.
OverflowExceptionA scaled nonzero or intermediate row-scaled coefficient is unrepresentable.
NotSupportedExceptionThe sparse matrix structure is unsupported.

See Also