ThresholdIncompleteCholeskyPreconditioner<T> Class

Represents threshold incomplete Cholesky preconditioning with bounded column fill.

Definition

Namespace: Numerics.NET.LinearAlgebra.IterativeSolvers.Preconditioners
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
C#
public sealed class ThresholdIncompleteCholeskyPreconditioner<T> : Preconditioner<T>
Inheritance
Object  →  LinearOperator<T>  →  Preconditioner<T>  →  ThresholdIncompleteCholeskyPreconditioner<T>

Type Parameters

T
The real or complex floating-point scalar type.

Remarks

Successful lower factors have positive real diagonals and define Hermitian positive definite preconditioners. This does not certify the input as positive definite. Incomplete Cholesky may break down on positive definite inputs; shifts and ordering are explicit options.

Zero drop tolerance and a cap of at least the matrix order minus one permit complete Cholesky. Setup generates candidate fill one column at a time using retained sparse factors. The cap bounds retained storage, while setup cost depends on intersections of retained columns. Application work is proportional to retained entries.

The source is retained for Refresh() and never modified. Applications accept and return original-coordinate vectors. Distinct-destination applications may run concurrently; refresh requires exclusive access.

Constructors

ThresholdIncompleteCholeskyPreconditioner<T>(SparseMatrix<T>, T, Int32)Constructs threshold incomplete Cholesky with explicit dropping, fill, pivot protection and modification options.
ThresholdIncompleteCholeskyPreconditioner<T>(SparseMatrix<T>, T, Int32, T, T, Boolean, Boolean, Permutation)Constructs threshold incomplete Cholesky with explicit dropping, fill, pivot protection and modification options.

Properties

ColumnCount Gets the number of columns in the matrix.
(Inherited from LinearOperator<T>)
ColumnIndex Gets or sets the index of labels for the columns of the matrix.
(Inherited from LinearOperator<T>)
DroppedEntryCountGets the number of nonzero Schur off-diagonal candidates discarded in the last successful factorization.
DropToleranceGets the requested relative drop tolerance.
ElementType Gets the element type of the matrix.
(Inherited from LinearOperator<T>)
FactorizationCountGets the number of successful factorizations, including construction.
FactorNonzeroCountGets the number of retained lower factor entries, including the diagonal.
LinearOperator Gets the linear operator to which the Preconditioner<T> applies.
(Inherited from Preconditioner<T>)
MaximumNonzerosPerColumnGets the requested cap on off-diagonal factor entries per column.
MinimumRelativePivotGets the minimum pivot before taking its square root, relative to its shifted row maximum, or zero for an empty system.
ModifiedGets whether dropped real Schur coefficients are compensated on both incident diagonals.
RowCount Gets the number of rows in the matrix.
(Inherited from LinearOperator<T>)
RowIndex Gets or sets the index of labels for the rows of the matrix.
(Inherited from LinearOperator<T>)

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
EstimateConditionNumber Calculates an estimate for the condition number of a matrix.
(Inherited from LinearOperator<T>)
GetDeterminant Calculates the determinant of a matrix.
(Inherited from LinearOperator<T>)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetInverse() Calculates the inverse matrix..
(Inherited from LinearOperator<T>)
GetInverse(Boolean) Calculates the inverse of the factorized matrix.
(Inherited from LinearOperator<T>)
GetTypeGets the Type of the current instance.
(Inherited from Object)
IsSingular Gets whether the matrix is singular.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(Matrix<T>) Solves the system of linear equations for the specified right-hand side matrix in the least squares sense.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(Vector<T>) Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(DenseMatrix<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense matrix in the least squares sense and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(DenseVector<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense vector in the least squares sense and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
LeastSquaresSolveInto(Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides in the least squares sense.
(Inherited from LinearOperator<T>)
LeastSquaresSolveInto(Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side in the least squares sense.
(Inherited from Preconditioner<T>)
Multiply(Matrix<T>)Applies the linear operator to a matrix.
(Inherited from LinearOperator<T>)
Multiply(Vector<T>)Applies the linear operator to a vector.
(Inherited from LinearOperator<T>)
MultiplyTranspose(Matrix<T>)Applies the transpose of the linear operator to a matrix.
(Inherited from LinearOperator<T>)
MultiplyTranspose(Vector<T>)Applies the (conjugate) transpose of the linear operator to a vector.
(Inherited from LinearOperator<T>)
Rank() Returns the numerical rank of a matrix.
(Inherited from LinearOperator<T>)
Rank(T) Returns the numerical rank of a matrix using the specified tolerance.
(Inherited from Preconditioner<T>)
RefreshRebuilds factors from the current logical matrix coefficients and original options.
Solve(Matrix<T>) Solves the system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperator<T>)
Solve(Vector<T>) Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator<T>)
Solve(DenseMatrix<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense matrix and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
Solve(DenseVector<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense vector and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
SolveInto(Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperator<T>)
SolveInto(Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperator<T>)
SolveInto(TransposeOperation, Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side.
(Overrides Preconditioner<T>.SolveInto(TransposeOperation, Vector<T>, Vector<T>))
SolveInto(TransposeOperation, Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperator<T>)
SolveTranspose(Matrix<T>) Solves the transposed system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperator<T>)
SolveTranspose(Vector<T>) Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator<T>)
SolveTranspose(DenseMatrix<T>, Boolean) Solves the transposed system of linear equations for the specified right-hand side dense matrix and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
SolveTranspose(DenseVector<T>, Boolean) Solves the transposed system of linear equations for the specified right-hand side dense vector and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
SolveTransposeInto(Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperator<T>)
SolveTransposeInto(Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperator<T>)
ToStringReturns a string that represents the current object.
(Inherited from Object)

See Also