Sparse Solver Transformation<T>.Create Symmetric Equilibration 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#
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.
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
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
| Argument | matrix is null. |
| Dimension | The matrix is not square or the ordering length is incorrect. |
| Argument | The matrix is not Hermitian, the ordering is invalid, coefficients or magnitudes are nonfinite, or a required positive scaling factor is unrepresentable. |
| Overflow | A scaled nonzero coefficient is unrepresentable. |
| Not | The sparse matrix structure is unsupported. |