## Types in MathNet.Numerics.LinearAlgebra.Complex32.Solvers

Type ILUTPPreconditioner

Namespace MathNet.Numerics.LinearAlgebra.Complex32.Solvers

Interfaces IPreconditioner<T>

This class performs an Incomplete LU factorization with drop tolerance and partial pivoting. The drop tolerance indicates which additional entries will be dropped from the factorized LU matrices.
The ILUTP-Mem algorithm was taken from: ILUTP_Mem: a Space-Efficient Incomplete LU Preconditioner Tzu-Yi Chen, Department of Mathematics and Computer Science, Pomona College, Claremont CA 91711, USA Published in: Lecture Notes in Computer Science Volume 3046 / 2004 pp. 20 - 28 Algorithm is described in Section 2, page 22

### Public Constructors

#### ILUTPPreconditioner()

Initializes a new instance of the ILUTPPreconditioner class with the default settings.

#### ILUTPPreconditioner(double fillLevel, double dropTolerance, double pivotTolerance)

Initializes a new instance of the ILUTPPreconditioner class with the specified settings.
##### Parameters
###### `double` fillLevel

The amount of fill that is allowed in the matrix. The value is a fraction of the number of non-zero entries in the original matrix. Values should be positive.

###### `double` dropTolerance

The absolute drop tolerance which indicates below what absolute value an entry will be dropped from the matrix. A drop tolerance of 0.0 means that no values will be dropped. Values should always be positive.

###### `double` pivotTolerance

The pivot tolerance which indicates at what level pivoting will take place. A value of 0.0 means that no pivoting will take place.

### Public Methods

#### voidApproximate(Vector<T> rhs, Vector<T> lhs)

Approximates the solution to the matrix equation .
##### Parameters
###### `Vector<T>` rhs

The right hand side vector.

###### `Vector<T>` lhs

The left hand side vector. Also known as the result vector.

#### voidInitialize(Matrix<T> matrix)

Initializes the preconditioner and loads the internal data structures.
##### Parameters
###### `Matrix<T>` matrix

The Matrix upon which this preconditioner is based. Note that the method takes a general matrix type. However internally the data is stored as a sparse matrix. Therefore it is not recommended to pass a dense matrix.

### Public Properties

#### doubleDropTolerance get; set;

Gets or sets the absolute drop tolerance which indicates below what absolute value an entry will be dropped from the matrix. The standard value is 0.0001.

The values should always be positive and can be larger than 1.0. A low value will keep more small numbers in the preconditioner matrix. A high value will remove more small numbers from the preconditioner matrix.

Note that any changes to the after creating the preconditioner will invalidate the created preconditioner and will require a re-initialization of the preconditioner.

#### doubleFillLevel get; set;

Gets or sets the amount of fill that is allowed in the matrix. The value is a fraction of the number of non-zero entries in the original matrix. The standard value is 200.

Values should always be positive and can be higher than 1.0. A value lower than 1.0 means that the eventual preconditioner matrix will have fewer non-zero entries as the original matrix. A value higher than 1.0 means that the eventual preconditioner can have more non-zero values than the original matrix.

Note that any changes to the after creating the preconditioner will invalidate the created preconditioner and will require a re-initialization of the preconditioner.

#### doublePivotTolerance get; set;

Gets or sets the pivot tolerance which indicates at what level pivoting will take place. The standard value is 0.0 which means pivoting will never take place.

The pivot tolerance is used to calculate if pivoting is necessary. Pivoting will take place if any of the values in a row is bigger than the diagonal value of that row divided by the pivot tolerance, i.e. pivoting will take place if for any that is not equal to.

Note that any changes to the after creating the preconditioner will invalidate the created preconditioner and will require a re-initialization of the preconditioner.

### Public fields

#### double DefaultFillLevel

The default fill level.
 `return double`

#### double DefaultDropTolerance

The default drop tolerance.
 `return double`