%
% To use:
% xdvi -paper a4r <fnam>
% dvips -tlandscape
%
\documentclass[11pt,landscape]{report}
\setlength{\parindent}{0in}
\setlength{\parskip}{0.1in}
\oddsidemargin=-.015in
\evensidemargin=-.015in
\textwidth=10in
\topmargin=-.2in
\textheight=8in
\voffset=-.75in
% \hoffset=-.6in
\pagestyle{empty}

\newcommand{\Wskip}[1]{ }

% qritem{rout name}{rout parameters}{desc}{pref}
\newcommand{\qritem}[4]{\mbox{\parbox[t]{1in}{#1}\parbox[t]{5.75in}{(#2)}\hspace{.25in}\parbox[t]{2in}{#3}\hspace{.25in}\parbox[t]{.75in}{#4}} \\}

\newcommand{\qritemf}[4]{\mbox{\parbox[t]{1in}{#1}\parbox[t]{4.0in}{(#2)}\hspace{.25in}\parbox[t]{3.75in}{#3}\hspace{.25in}\parbox[t]{.75in}{#4}} \\}

\newcommand{\Wpre}[0]{\diamondsuit}

\begin{document}

\scriptsize

{\samepage
\centerline{\Large \bf ATLAS ANSI/ISO C LAPACK API REFERENCE}
\vspace{.4in}

\qritem{\bf ROUTINE}{\bf ARGUMENTS}{\bf DESCRIPTION}{\bf PREFIXES}
\qritem{int clapack\_$\Wpre$gesv}
{
   const enum CBLAS\_ORDER Order, const int N, const int NRHS,
   TYPE *A, const int lda, int *ipiv, TYPE *B, const int ldb
}
{using $A P = L U $, $B \leftarrow A^{-1} B$, 
 $A \leftarrow LU$, $ipiv \leftarrow P$
 ($U$ is unit diagonal, $P$ pivots columns)}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$getrf}
{
   const enum CBLAS\_ORDER Order, const int M, const int N, 
   TYPE *A, const int lda, int *ipiv
}
{using $A P = L U$, $A \leftarrow LU$, $ipiv \leftarrow P$ 
 ($U$ is unit diagonal, $P$ pivots columns)}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$getrs}
{
   const enum CBLAS\_ORDER Order, const enum CBLAS\_TRANSPOSE Trans,
   const int N, const int NRHS, const TYPE *A, const int lda,
   const int *ipiv, TYPE *B, const int ldb
}
{$B \leftarrow op(A)^{-1} B$, assuming $A = LU$, $ipiv = P$,
 $op(X) = X, X^{T}, X^{H}$}
{S, D, C, Z}
\qritem{int clapack\_$\Wpre$getri}
{
   const enum CBLAS\_ORDER Order, const int N, TYPE *A, const int lda,
   const int *ipiv
}
{ $ A \leftarrow A^{-1} $, assuming on entry $A = LU$, $ipiv = P$ }
{S, D, C, Z}

\qritem{int clapack\_$\Wpre$posv}
{
   const enum CBLAS\_ORDER Order, const enum CBLAS\_UPLO Uplo,
   const int N, const int NRHS, TYPE *A, const int lda, TYPE *B, const int ldb
}
{$B \leftarrow A^{-1} B$, using $A \leftarrow U^T U$ or 
 $A \leftarrow L L^T$ or $A \leftarrow U^H U$ or $A \leftarrow L L^H$}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$potrf}
{
   const enum CBLAS\_ORDER Order, const enum CBLAS\_UPLO Uplo,
   const int N, TYPE *A, const int lda
}
{$A \leftarrow U^T U$ or $A \leftarrow L L^T$ or
 $A \leftarrow U^H U$ or $A \leftarrow L L^H$}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$potrs}
{
   const enum CBLAS\_ORDER Order, const enum CBLAS\_UPLO Uplo, const int N, 
   const int NRHS, const TYPE *A, const int lda, TYPE *B, const int ldb
}
{$B \leftarrow op(A)^{-1} B$, assuming 
 $A = U^T U$ or $A = L L^T$ or
 $A = U^H U$ or $A = L L^H$}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$potri}
{
   const enum CBLAS\_ORDER Order, const enum ATLAS\_UPLO Uplo,
   const int N, TYPE *A, const int lda
}
{$A \leftarrow A^{-1}$, assuming on entry
 $A = U^T U$ or $A = L L^T$ or
 $A = U^H U$ or $A = L L^H$}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$lauum}
%
{const enum ATLAS\_ORDER Order, const enum ATLAS\_UPLO Uplo, 
 const int N, TYPE *A, const int lda}
{$A \leftarrow U U^{H}$ or $A \leftarrow L^H L$}
{S, D, C, Z}
%
\qritem{int clapack\_$\Wpre$trtri}
{
   const enum ATLAS\_ORDER Order, const enum ATLAS\_UPLO Uplo,
   const enum ATLAS\_DIAG Diag, const int N, TYPE *A, const int lda
}
{$A \leftarrow A^{-1}$, given $A$ is an Upper or Lower triangular matrix}
{S, D, C, Z}
%
\vspace{.5in}

\mbox{
\parbox[t]{4.75in}
{
\small
\centerline{\bf NOTES:}
\begin{itemize}
\item C interface {DESCRIPTION}s assume {\tt Order == CblasRowMajor}.  For
      column-major descriptions, consult the Fortran77 descriptions.
\item All C functions return LAPACK's {\tt INFO} parameter
\item C Calling routines should include the BLAS header file, {\tt cblas.h}.
\item Cases seperated by {\em or} above depend on user input or data type.
\item More information available at {\tt http://math-atlas.sourceforge.net/}.
\end{itemize}
}
\parbox[t]{4.75in}{
\begin{center}
{\normalsize \bf PREFIX RELATED DEFINITIONS :}
\vspace{.1in}
\small
\begin{tabular}{||l|l|l|l|l||}\hline\hline
\tt
$\Wpre${\rm is} & {\rm Data operated }          & TYPE  & UTYPE & SCALAR\\\hline\hline
  s            & {\rm single precision real}    & float & float & const float\\\hline
  d            & {\rm double precision real}    & double & double & const double\\\hline
  c            & {\rm single precision complex} & void   & float  & const void*\\\hline
  z            & {\rm double precision complex} & void   & double & const void*\\\hline\hline
\end{tabular}
\end{center}
}
}
\newpage
\centerline{\Large \bf ATLAS FORTRAN77 LAPACK API REFERENCE}
\vspace{.4in}

\qritemf{\bf SUBROUTINE}{\bf ARGUMENTS}{\bf DESCRIPTION}{\bf PREFIXES}
\qritemf{$\Wpre$GESV}
{
   N, NRHS, A, LDA, IPIV, B, LDB, INFO
}
{using $P A = L U$, $B \leftarrow A^{-1} B$, 
 $A \leftarrow LU$, $IPIV \leftarrow P$
 ($L$ is unit diagonal, $P$ pivots rows)}
{S, D, C, Z}
%
\qritemf{$\Wpre$GETRF}
{
   M, N, A, LDA, IPIV, INFO
}
{using $P A = L U$, $A \leftarrow LU$, $ipiv \leftarrow P$ 
 ($L$ is unit diagonal, $P$ pivots rows)}
{S, D, C, Z}
%
\qritemf{$\Wpre$GETRS}
{
   TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO
}
{$B \leftarrow op(A)^{-1} B$, assuming $A = LU$, $ipiv = P$,
 $op(X) = X, X^{T}, X^{H}$}
{S, D, C, Z}
\qritemf{$\Wpre$GETRI}
{
   N, A, LDA, IPIV, WORK, LWORK, INFO
}
{$A \leftarrow A^{-1}$, assuming $A = LU$, $ipiv = P$ }
{S, D, C, Z}
%
\qritemf{$\Wpre$POSV}
{
   UPLO, N, NRHS, A, LDA, B, LDB, INFO
}
{$B \leftarrow A^{-1} B$, using $A \leftarrow U^T U$ or 
 $A \leftarrow L L^T$ or $A \leftarrow U^H U$ or $A \leftarrow L L^H$}
{S, D, C, Z}
%
\qritemf{$\Wpre$POTRF}
{
   UPLO, N, A, LDA, INFO
}
{$A \leftarrow U^T U$ or $A \leftarrow L L^T$ or
 $A \leftarrow U^H U$ or $A \leftarrow L L^H$}
{S, D, C, Z}
%
\qritemf{$\Wpre$POTRS}
{
   UPLO, N, NRHS, A, LDA, B, LDB, INFO
}
{$B \leftarrow op(A)^{-1} B$, assuming 
 $A = U^T U$ or $A = L L^T$ or
 $A = U^H U$ or $A = L L^H$}
{S, D, C, Z}
%
\qritemf{$\Wpre$POTRI}
{
   UPLO, N, A, LDA, INFO
}
{$B \leftarrow op(A)^{-1} B$, assuming 
 $A = U^T U$ or $A = L L^T$ or
 $A = U^H U$ or $A = L L^H$}
{S, D, C, Z}
%
\qritemf{$\Wpre$LAUUM}
{UPLO, N, A, LDA, INFO}
{$A \leftarrow U U^{H}$ or $A \leftarrow L^H L$}
{S, D, C, Z}
%
\qritemf{$\Wpre$TRTRI}
{UPLO, DIAG, N, A, LDA, INFO}
{$A \leftarrow A^{-1}$, given $A$ is an Upper or Lower triangular matrix}
{S, D, C, Z}
%
\vspace{.4in}


{\samepage
\end{document}
