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

Type GpBiCg

Namespace MathNet.Numerics.LinearAlgebra.Double.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.