The Bi-Conjugate Gradient Stabilized (BiCGStab) solver is an 'improvement' of the standard Conjugate Gradient (CG) solver. Unlike the CG solver the BiCGStab 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 Bi-CGSTAB algorithm was taken from: Templates for the solution of linear systems: Building blocks for iterative methods Richard Barrett, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijkhout, Roldan Pozo, Charles Romine and Henk van der Vorst Url: Algorithm is described in Chapter 2, section 2.3.8, page 27
The example code below provides an indication of the possible use of the solver.