The Conjugate Gradient method is not suitable for nonsymmetric systems because the residual vectors cannot be made orthogonal with short recurrences (for proof of this see Voevodin  or Faber and Manteuffel ). The GMRES method retains orthogonality of the residuals by using long recurrences, at the cost of a larger storage demand. The BiConjugate Gradient method takes another approach, replacing the orthogonal sequence of residuals by two mutually orthogonal sequences, at the price of no longer providing a minimization.
The update relations for residuals in the Conjugate Gradient method are augmented in the BiConjugate Gradient method by relations that are similar but based on instead of . Thus we update two sequences of residuals
and two sequences of search directions
ensure the bi-orthogonality relations
The pseudocode for the Preconditioned BiConjugate Gradient Method with preconditioner is given in Figure .
Figure: The Preconditioned BiConjugate Gradient Method