SparseSolverTransformation<T>.CreateSymmetricEquilibration Method

Creates a Hermitian-preserving, symmetrically equilibrated sparse system snapshot.

Definition

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

Parameters

matrix  SparseMatrix<T>
A square Hermitian 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 with identical positive row/column factors equal to the reciprocal square root of each original row's maximum magnitude. Empty rows use one.

Remarks

Positive congruence preserves Hermitian structure and positive definiteness in exact arithmetic. This is a single equilibration step; it does not guarantee a particular condition number.

Exceptions

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

See Also