\documentstyle{article}
\oddsidemargin 0.0in 
\evensidemargin 0.0in
\pagestyle{empty}
\topmargin -0.5in
\textheight 9.0in 
\textwidth 6.5in 
\def \la{\langle}
\def \ra{\rangle}
\def \lb{\left[}
\def \rb{\right]}
\def \ha{\frac{1}{2}}
\begin{document}

\centerline{\bf NSPCG Quick Reference}

\bigskip
\noindent
{\bf Calls to Top Level Routines}
\bigskip

\begin{tabular}{l}
{\tt   CALL DFAULT (IPARM,RPARM)} \\
{\tt   CALL VFILL (N,U,VAL)} \\
{\tt   CALL NSPCG ($\la$~{\em precon}~$\ra$,$\la$~{\em accel}~$\ra$,
      NDIM,MDIM,N,MAXNZ,COEF,JCOEF,P,IP,U,UBAR,RHS,} \\
{\tt \hspace*{2.5in} WKSP,IWKSP,NW,INW,IPARM,RPARM,IER) } 
\end{tabular}

\bigskip
\noindent
{\bf Calls to Accelerators in Matrix Format-Free Mode} 
\bigskip

\begin{tabular}{l}
{\tt CGW (SUBA,SUBQL,
  COEF,JCOEF,WFAC,JWFAC,N,U,UBAR,RHS,WKSP,NW,IPARM,RPARM,IER) } \\
{\tt SIW (SUBA,SUBQL,COEF,\ldots ) } \\
{\tt SORW (SUBA,SUBQ,COEF,\ldots ) } \\
{\tt SRCGW (SUBA,SUBQL,SUBADP,COEF,\ldots ) } \\
{\tt SRSIW (SUBA,SUBQL,SUBADP,COEF,\ldots ) } \\
{\tt BASICW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt MEW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt CGNRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt LSQRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt ODIRW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt OMINW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt ORESW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt IOMW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt GMRESW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\
{\tt USLQW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt USQRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt LDIRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt LMINW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt LRESW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\
{\tt BCGSW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } 
\end{tabular}

\bigskip
\noindent
{\bf Calls to Matrix Format-Free Operations}
\bigskip

\begin{tabular}{l}
{\tt   CALL SUBA (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBAT (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBQL (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBQR (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBQLT (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBQRT (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBQ (COEF,JCOEF,WFAC,JWFAC,N,U,RHS,UNEW)} \\
{\tt   CALL COPY (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\
{\tt   CALL SUBADP (COEF,JCOEF,WFAC,JWFAC,N,P,R,PDP,PLDUP)} \\
                         \\
{\tt   LOGICAL OMGADP} \\
{\tt   COMMON / ITCOM5 / OMGADP, OMEGA, ALPHAB, BETAB, FFF, SPECR} 
\end{tabular}

\bigskip
\noindent
{\bf Calls to Coloring Routines}
\bigskip

\begin{tabular}{l}
{\tt   CALL REDBLK (NDIM,N,MAXNZ,COEF,JCOEF,P,IP,NSTORE,IWKSP,IER)} \\
{\tt   CALL COLOR (NXP,NYP,NZP,NX,NY,NZ,PATT,P)} 
\end{tabular}

\newpage
\noindent
{\bf Parameter Definitions}
\bigskip

\begin{tabular}{ll}
$\la$~{\em precon}~$\ra$ & preconditioning routine \\
$\la$~{\em accel}~$\ra$  & acceleration routine \\
NDIM   & row dimension of COEF array \\
MDIM   & column dimension of COEF array \\
N      & order of the linear system \\
MAXNZ  & active column width of COEF array \\
COEF   & matrix nonzero coefficients \\
JCOEF  & auxiliary matrix nonzero information \\
P      & optional permutation vector \\
IP     & inverse permutation vector \\
U      & solution vector \\
UBAR   & optional true solution \\
RHS    & right hand side \\
WKSP   & real workspace \\
IWKSP  & integer workspace \\
NW     & length of WKSP \\
INW    & length of IWKSP 
\end{tabular}
\begin{tabular}{ll}
IPARM  & integer parameters \\
RPARM  & real parameters \\
IER    & error flag \\
       &             \\
WFAC   & real factorization workspace \\
JWFAC  & integer factorization workspace \\
X      & input vector \\
Y      & output vector \\
       &               \\
NXP,NYP,NZP & dimensions of pattern \\
NX,NY,NZ    & dimensions of grid \\
PATT        & pattern \\
       &              \\
P      & CG direction vector \\
R      & real workspace length N \\
PDP    & $(p,Dp)$ where $A=D-C_L-C_U$ \\
PLDUP  & $(p,C_LD^{-1}C_Up)$.
\end{tabular}

\bigskip
\noindent
{\bf Preconditioners}
\bigskip

\begin{tabular}{lll}
RICH$i$  & Richardson's method
         & $(i=1,2,3,4,5)$                            \\
JAC$i$   & Jacobi method
         & $(i=1,2,3,4,5)$                            \\
LJAC$i$  & Line Jacobi method
         & $(i=2,3)$                                  \\
LJACX$i$ & Line Jacobi method (approx. inverse)
         & $(i=2,3)$                                  \\
SOR$i$   & Successive Overrelaxation
         & $(i=1,2,3,6,7)$                            \\
SSOR$i$  & Symmetric SOR
         & $(i=1,2,3,6,7)$                            \\
IC$i$    & Incomplete Cholesky
         & $(i=1,2,3,6)$                              \\
         & (Note:  IC7 = BIC7 or BICX7)
         &                                            \\
MIC$i$   & Modified Incomplete Cholesky
         & $(i=1,2,3,6)$                              \\
         & (Note:  MIC7 = MBIC7 or MBICX7)
         &                                            \\
LSP$i$   & Least Squares Polynomial
         & $(i=1,2,3,4,5)$                            \\
NEU$i$   & Neumann Polynomial
         & $(i=1,2,3,4,5)$                            \\
LSOR$i$  & Line SOR
         & $(i=2,3)$                                  \\
LSSOR$i$ & Line SSOR
         & $(i=2,3)$                                  \\
LLSP$i$  & Line Least Squares Polynomial
         & $(i=2,3)$                                  \\
LNEU$i$  & Line Neumann Polynomial
         & $(i=2,3)$                                  \\
BIC$i$   & Block Incomplete Cholesky (ver. 1)
         & $(i=2,3,7)$                                \\
BICX$i$  & Block Incomplete Cholesky (ver. 2)
         & $(i=2,3,7)$                                \\
MBIC$i$  & Modified Block Incomplete Cholesky (ver. 1)
         & $(i=2,3,7)$                                \\
MBICX$i$ & Modified Block Incomplete Cholesky (ver. 2)
         & $(i=2,3,7)$                                \\
RS$i$    & Reduced System Method
         & $(i=6,7)$
\end{tabular}

\bigskip
\begin{tabular}{rl}
       $i = 1$ & primary storage format  \\
       $  = 2$ & symmetric diagonal storage        \\
       $  = 3$ & nonsymmetric diagonal storage     \\
       $  = 4$ & symmetric coordinate storage      \\
       $  = 5$ & nonsymmetric coordinate storage   \\
       $  = 6$ & permuted primary storage format   \\
       $  = 7$ & permuted diagonal storage (symmetric
                   or nonsymmetric)
\end{tabular}

\newpage
\noindent
{\bf Stopping Tests Associated with NTEST}
\bigskip

\[ \begin{array}{ll}
  (1) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac
        {\la r^{(n)},\tilde z^{(n)}\ra }
        {\la b,Q^{-1}b \ra} \rb ^\ha < \zeta }    \\ 
  (2) & {\displaystyle \frac{1}{\mbox{EMIN}} \lb \frac
        {\la \tilde z^{(n)},\tilde z^{(n)}\ra }
        {\la u^{(n)},u^{(n)}\ra } \rb ^\ha < \zeta }  \\
  (3) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac
        {\la \tilde z^{(n)},\tilde z^{(n)}\ra}
        {\la Q^{-1}b,Q^{-1}b\ra } \rb ^\ha < \zeta } \\ 
  (4) & {\displaystyle \lb \frac{\la \tilde z^{(n)},\tilde z^{(n)}\ra }
        {\la Q^{-1}b,Q^{-1}b\ra } \rb ^\ha < \zeta } \\ 
  (5) & {\displaystyle \lb \frac{\la r^{(n)},r^{(n)}\ra}
        {\la b,b \ra } \rb ^\ha < \zeta }   
\end{array}
\begin{array}{ll}
  (6) & {\displaystyle \lb \frac{\la u^{(n)}-\bar{u},u^{(n)}-\bar{u} \ra }  
        {\la \bar{u},\bar{u} \ra } \rb^\ha < \zeta }  \\
  (7) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac
        {\la r^{(n)},z^{(n)}\ra }
        {\la b,Q_L^{-1}b \ra} \rb ^\ha < \zeta } \\
  (8) & {\displaystyle \frac{1}{\mbox{EMIN}} \lb \frac
        {\la z^{(n)},z^{(n)}\ra }
        {\la u^{(n)},u^{(n)}\ra } \rb ^\ha < \zeta } \\
  (9) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac
        {\la z^{(n)},z^{(n)}\ra}
        {\la Q_L^{-1}b,Q_L^{-1}b\ra } \rb ^\ha < \zeta } \\ 
 (10) & {\displaystyle \lb \frac{\la z^{(n)},z^{(n)}\ra }
        {\la Q_L^{-1}b,Q_L^{-1}b\ra } \rb ^\ha < \zeta }
\end{array}  \]

\bigskip
\noindent
{\bf IER Error Codes}
\bigskip

\begin{tabular}{|c|p{3.5in}|}  \hline
       IER   &    Meaning    \\   \hline
       $0$   &    No error detected \\   \hline
      $-1$   &    Nonpositive matrix size N \\
      $-2$   &    Insufficient real workspace \\
      $-3$   &    Insufficient integer workspace \\
      $-4$   &    Nonpositive diagonal element \\
      $-5$   &    Nonexistent diagonal element \\
      $-6$   &    $A$ is not positive definite \\
      $-7$   &    $Q$ is not positive definite \\
      $-8$   &    Cannot permute matrix as requested \\
      $-9$   &    MDIM is not large enough to allow expansion
                    of matrix \\
     $-10$   &    Inadmissible parameter encountered \\
     $-11$   &    Incorrect storage mode for block method \\
     $-12$   &    Zero pivot encountered in factorization \\
     $-13$   &    Breakdown in direction vector calculation \\
     $-14$   &    Breakdown in attempt to perform rotation \\
     $-15$   &    Breakdown in iterate calculation \\
     $-16$   &    Unimplemented combination of parameters \\
     $-18$   &    Unable to perform eigenvalue estimation \\  \hline
       $1$   &    Failure to converge in ITMAX iterations \\
       $2$   &    ZETA too small -- reset to $500*$SRELPR \\
       $3$   &    ZBRENT failed to converge in MAXFN iterations
                    (signifies difficulty in eigenvalue
                     estimation)                       \\
       $4$   &    In ZBRENT, $f(a)$ and $f(b)$ have the same sign
                        (signifies difficulty in eigenvalue
                         estimation)                  \\
       $5$   &    Negative pivot encountered in factorization  \\
                  \hline
\end{tabular}

\newpage
\begin{center}
{\bf Defaults for IPARM and RPARM Parameters}
\bigskip

\begin{tabular}{|l|l|c|}                    \hline
  Position   &   Name   &   Default \\     \hline
  IPARM(1)   &   NTEST  &     $2$   \\     \hline
  IPARM(2)   &   ITMAX  &    $100$  \\     \hline
  IPARM(3)   &   LEVEL  &     $0$   \\     \hline
  IPARM(4)   &   NOUT   &     $6$   \\     \hline
  IPARM(5)   &   IDGTS  &     $0$   \\     \hline
  IPARM(6)   &   MAXADP &     $1$   \\     \hline
  IPARM(7)   &   MINADP &     $1$   \\     \hline
  IPARM(8)   &   IOMGAD &     $1$   \\     \hline
  IPARM(9)   &   NS1    &     $5$   \\     \hline
  IPARM(10)  &   NS2    &  $100000$ \\     \hline
  IPARM(11)  &   NS3    &     $0$   \\     \hline
  IPARM(12)  &   NSTORE &     $2$   \\     \hline
  IPARM(13)  &   ISCALE &     $0$   \\     \hline
  IPARM(14)  &   IPERM  &     $0$   \\     \hline
  IPARM(15)  &   IFACT  &     $1$   \\     \hline
  IPARM(16)  &   LVFILL &     $0$   \\     \hline
  IPARM(17)  &   LTRUNC &     $0$   \\     \hline
  IPARM(18)  &   IPROPA &     $2$   \\     \hline
  IPARM(19)  &   KBLSZ  &    $-1$   \\     \hline
  IPARM(20)  &   NBL2D  &    $-1$   \\     \hline
  IPARM(21)  &   IFCTV  &     $1$   \\     \hline
  IPARM(22)  &   IQLR   &     $1$   \\     \hline
  IPARM(23)  &   ISYMM  &     $2$   \\     \hline
  IPARM(24)  &   IELIM  &     $0$   \\     \hline
  IPARM(25)  &   NDEG   &     $1$   \\     \hline
\end{tabular}  \hspace*{0.5in}
\begin{tabular}{|l|l|c|}                       \hline
  Position   &   Name   &   Default     \\    \hline
  RPARM(1)   &   ZETA   &   $10^{-6}$   \\    \hline
  RPARM(2)   &   EMAX   &    $2.0$      \\    \hline
  RPARM(3)   &   EMIN   &    $1.0$      \\    \hline
  RPARM(4)   &   FF     &    $0.75$     \\    \hline
  RPARM(5)   &   FFF    &    $0.75$     \\    \hline
  RPARM(6)   &   TIMIT  &    $0.0$      \\    \hline
  RPARM(7)   &   DIGIT1 &    $0.0$      \\    \hline
  RPARM(8)   &   DIGIT2 &    $0.0$      \\    \hline
  RPARM(9)   &   OMEGA  &    $1.0$      \\    \hline
  RPARM(10)  &   ALPHAB &    $0.0$      \\    \hline
  RPARM(11)  &   BETAB  &    $0.25$     \\    \hline
  RPARM(12)  &   SPECR  &    $0.0$      \\    \hline
  RPARM(13)  &   TIMFAC &    $0.0$      \\    \hline
  RPARM(14)  &   TIMTOT &    $0.0$      \\    \hline
  RPARM(15)  &   TOL    &  $500*\mbox{SRELPR}$  \\    \hline
  RPARM(16)  &   AINF   &    $0.0$      \\    \hline
\end{tabular}
\end{center}

\end{document}
