\newpage
{\bf \Huge linv}
\rule{2in}{1mm}
\vspace{0.25in}


{\bf Summary}

\begin{quote}
Pseudoinverse of a lower-triangular matrix $L$
\end{quote}

{\bf Command line}

\begin{verse}
{\tt void linv(int *np, double *L, double *X)} \\
\end{verse}

{\bf Arguments}

\begin{quote}
\begin{tabbing}
{\tt np} \qquad \= points to the integer specifying the square dimension of $L$. \\
{\tt L} \> points to the address of the first element of $L$. \\
{\tt X} \> points to the address of the first element of $X$. \\
\end{tabbing}
\end{quote}

{\bf Description}

\begin{quote}
{\tt linv} computes the pseudoinverse of a lower-triangular matrix. {\tt linv} produces a lower-triangular matrix $X$ of the same dimension as $L$ such that $L \ast X = I$.

If $L$ is singular, {\tt linv} requires that the row and column corresponding to zero entries on the diagonal must be zero.
\end{quote}

{\bf Algorithm}

\begin{quote}
This subroutine is an implementation of an algorithm developed for the Applied Physics Laboratory by the Parallel Computing and Imaging Laboratory. It is designed to minimize memory references.
\end{quote}

\newpage
{\bf \Huge uinv}
\rule{2in}{1mm}
\vspace{0.25in}


{\bf Summary}

\begin{quote}
Pseudoinverse of an upper-triangular matrix $U$
\end{quote}

{\bf Command line}

\begin{verse}
{\tt void uinv(int *np, double *U, double *X)} \\
\end{verse}

{\bf Arguments}

\begin{quote}
\begin{tabbing}
{\tt np} \qquad \= points to the integer specifying the square dimension of $U$. \\
{\tt U} \> points to the address of the first element of $U$. \\
{\tt X} \> points to the address of the first element of $X$. \\
\end{tabbing}
\end{quote}

{\bf Description}

\begin{quote}
{\tt uinv} computes the pseudoinverse of an upper-triangular matrix. {\tt uinv} produces an upper-triangular matrix $X$ of the same dimension as $U$ such that $U \ast X = I$.

If $U$ is singular, {\tt uinv} requires that the row and column corresponding to zero entries on the diagonal must be zero.
\end{quote}

{\bf Algorithm}

\begin{quote}
This subroutine is an implementation of an algorithm developed for the Applied Physics Laboratory by the Parallel Computing and Imaging Laboratory. It is designed to minimize memory references.
\end{quote}

\newpage