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

Type GpBiCg

Namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers

Interfaces IIterativeSolver<T>

A Generalized Product Bi-Conjugate Gradient iterative matrix solver.

The Generalized Product Bi-Conjugate Gradient (GPBiCG) solver is an alternative version of the Bi-Conjugate Gradient stabilized (CG) solver. Unlike the CG solver the GPBiCG solver can be used on non-symmetric matrices. Note that much of the success of the solver depends on the selection of the proper preconditioner.

The GPBiCG algorithm was taken from: GPBiCG(m,l): A hybrid of BiCGSTAB and GPBiCG methods with efficiency and robustness S. Fujino Applied Numerical Mathematics, Volume 41, 2002, pp 107 - 117

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

### Public Methods

#### 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

#### intNumberOfBiCgStabSteps get; set;

Gets or sets the number of steps taken with the `BiCgStab` algorithm before switching over to the `GPBiCG` algorithm.

#### intNumberOfGpBiCgSteps get; set;

Gets or sets the number of steps taken with the `GPBiCG` algorithm before switching over to the `BiCgStab` algorithm.