# NSPCG

The most recent research-oriented software package developed as part of the ITPACK Project is called “NSPCG” since it contains many nonsymmetric preconditioned conjugate gradient procedures. It is designed to solve large sparse systems of linear algebraic equations by a variety of different iterative methods. One of the main purposes for the development of the package is to provide a common modular structure for research on iterative methods for nonsymmetric matrices. Another purpose for the development of the package is to investigate the suitability of several iterative methods for vector computers.\parSince the vectorizability of an iterative method depends greatly on the matrix structure, NSPCG allows great flexibility in the operator representation. The coefficient matrix can be passed in one of several different matrix data storage schemes. These sparse data formats allow matrices with a wide range of structures from highly structured ones such as those with all nonzeros along a relatively small number of diagonals to completely unstructured sparse matrices. Alternatively, the package allows the user to call the accelerators directly with user-supplied routines for performing certain matrix operations. In this case, one can use the data format from an application program and not be required to copy the matrix into one of the package formats. This is particularly advantageous when memory space is limited.\parSome of the basic preconditioners that are available are point methods such as Jacobi, incomplete $LU$ decomposition and symmetric successive overrelaxation as well as block and multicolor preconditioners. The user can select from a large collection of accelerators such as conjugate gradient (CG), Chebyshev (SI, for semi-iterative), generalized minimal residual (GMRES), biconjugate gradient squared (BCGS) and many others. The package is modular so that almost any accelerator can be used with almost any preconditioner.