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

Type MlkBiCgStab

Namespace MathNet.Numerics.LinearAlgebra.Single.Solvers

Interfaces IIterativeSolver<T>

A Multiple-Lanczos Bi-Conjugate Gradient stabilized iterative matrix solver.

The Multiple-Lanczos Bi-Conjugate Gradient stabilized (ML(k)-BiCGStab) solver is an 'improvement' of the standard BiCgStab solver.

The algorithm was taken from: ML(k)BiCGSTAB: A BiCGSTAB variant based on multiple Lanczos starting vectors Man-Chung Yeung and Tony F. Chan SIAM Journal of Scientific Computing Volume 21, Number 4, pp. 1263 - 1290

The example code below provides an indication of the possible use of the solver.

### Public Methods

#### voidResetNumberOfStartingVectors()

Resets the number of starting vectors to the default value.

#### voidSolve(Matrix<T> matrix, Vector<T> input, Vector<T> result, Iterator<T> iterator, IPreconditioner<T> preconditioner)

Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the solution vector and x is the unknown vector.
##### Parameters
###### `Matrix<T>` matrix

The coefficient matrix, `A`.

###### `Vector<T>` input

The solution vector, `b`

###### `Vector<T>` result

The result vector, `x`

###### `Iterator<T>` iterator

The iterator to use to control when to stop iterating.

###### `IPreconditioner<T>` preconditioner

The preconditioner to use for approximations.

### Public Properties

#### intNumberOfStartingVectors get; set;

Gets or sets the number of starting vectors.
Must be larger than 1 and smaller than the number of variables in the matrix that for which this solver will be used.

#### IList<Vector<float>>StartingVectors get; set;

Gets or sets a series of orthonormal vectors which will be used as basis for the Krylov sub-space.