A Set of Conjugate Gradient Routines for Real and Complex Arithmetics

In this report we describe the implementations of the preconditioned conjugate gradient (CG) algorithm for both real and complex, single and double precision arithmetics suitable for serial, shared memory and distributed memory computers. For the sake of simplicity, flexibility and efficiency the CG solvers have been implemented using the reverse communication mechanism for the matrix-vector product, the preconditioning and the dot product computations. Finally the implemented stopping criterion is based on a normwise backward error. After a short presentation of the CG algorithm we give a detailed description of the user interface.