LICENSE
 README
 docs/psblas-3.1.pdf
 docs/psblas-3.2.pdf
 docs/src/Makefile
 docs/src/commrout.tex
 docs/src/datastruct.tex
 docs/src/error.tex
 docs/src/methods.tex
 docs/src/penv.tex
 docs/src/precs.tex
 docs/src/psbrout.tex
 docs/src/toolsrout.tex
 docs/src/userguide.tex
 docs/src/userhtml.tex
 docs/src/util.tex

Changed docs. Will have to document better the sparse matrix class.
This commit is contained in:
Salvatore Filippone
2014-03-20 11:35:31 +00:00
parent 2084fbd91d
commit d805c2bee6
15 changed files with 13737 additions and 10237 deletions
+88 -120
View File
@@ -5,16 +5,15 @@
%
%% psb_cdall %%
%
\subsection*{psb\_cdall --- Allocates a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdall}
\subroutine{psb\_cdall}{Allocates a communication descriptor}
\begin{verbatim}
\begin{lstlisting}
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx])
call psb_cdall(icontxt, desc_a, info,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
\end{verbatim}
\end{lstlisting}
This subroutine initializes the communication descriptor associated
with an index space. One of the optional arguments
@@ -109,14 +108,14 @@ An integer value; 0 means no error has been detected.
optional argument is specified, then it is mandatory to
specify the argument \verb|mg| as well.
The subroutine must conform to the following interface:
\begin{verbatim}
\begin{lstlisting}
interface
subroutine psb_parts(glob_index,mg,np,pv,nv)
integer, intent (in) :: glob_index,np,mg
integer, intent (out) :: nv, pv(*)
end subroutine psb_parts
end interface
\end{verbatim}
\end{lstlisting}
The input arguments are:
\begin{description}
\item[glob\_index] The global index to be mapped;
@@ -196,13 +195,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdins %%
%
\clearpage\subsection*{psb\_cdins --- Communication descriptor insert routine}
\addcontentsline{toc}{subsection}{psb\_cdins}
\clearpage\subroutine{psb\_cdins}{Communication descriptor insert routine}
\begin{verbatim}
\begin{lstlisting}
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
\end{verbatim}
\end{lstlisting}
This subroutine examines the edges of the graph associated with the
discretization mesh (and isomorphic to the sparsity pattern of a
@@ -291,12 +289,11 @@ nor the end vertex belong to the current process.
%
%% psb_cdasb %%
%
\clearpage\subsection*{psb\_cdasb --- Communication descriptor assembly routine}
\addcontentsline{toc}{subsection}{psb\_cdasb}
\clearpage\subroutine{psb\_cdasb}{Communication descriptor assembly routine}
\begin{verbatim}
\begin{lstlisting}
call psb_cdasb(desc_a, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -333,12 +330,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdcpy %%
%
\clearpage\subsection*{psb\_cdcpy --- Copies a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdcpy}
\clearpage\subroutine{psb\_cdcpy}{Copies a communication descriptor}
\begin{verbatim}
\begin{lstlisting}
call psb_cdcpy(desc_in, desc_out, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -369,12 +365,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdfree %%
%
\clearpage\subsection*{psb\_cdfree --- Frees a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdfree}
\clearpage\subroutine{psb\_cdfree}{Frees a communication descriptor}
\begin{verbatim}
\begin{lstlisting}
call psb_cdfree(desc_a, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -400,13 +395,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdcpy %%
%
\clearpage\subsection*{psb\_cdbldext --- Build an extended communication
\clearpage\subroutine{psb\_cdbldext}{Build an extended communication
descriptor}
\addcontentsline{toc}{subsection}{psb\_cdbldext}
\begin{verbatim}
\begin{lstlisting}
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
\end{verbatim}
\end{lstlisting}
This subroutine builds an extended communication descriptor, based on
the input descriptor \verb|desc_a| and on the stencil specified
@@ -470,9 +464,8 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_cdren %%
%% %
%% \subsection*{psb\_cdren --- Applies a renumeration to a
%% \subroutine{psb\_cdren}{Applies a renumeration to a
%% communication descriptor}
%% \addcontentsline{toc}{subsection}{psb\_cdren}
%% \syntax{call psb\_cdren}{trans, iperm, desc\_a, info}
@@ -507,8 +500,7 @@ An integer value; 0 means no error has been detected.
%
%% psb_descprt %%
%
%% \subsection*{psb\_cdprt --- Prints a descriptor}
%%\addcontentsline{toc}{subsection}{psb\_cdprt}
%% \subroutine{psb\_cdprt}{Prints a descriptor}
%% \syntax{call psb\_cdprt}{iout, desc\_a, glob, short}
@@ -537,12 +529,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_spalloc %%
%
\clearpage\subsection*{psb\_spall --- Allocates a sparse matrix}
\addcontentsline{toc}{subsection}{psb\_spall}
\clearpage\subroutine{psb\_spall}{Allocates a sparse matrix}
\begin{verbatim}
\begin{lstlisting}
call psb_spall(a, desc_a, info, nnz)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -589,13 +580,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_spins %%
%
\clearpage\subsection*{psb\_spins --- Insert a cloud of elements into a sparse
\clearpage\subroutine{psb\_spins}{Insert a cloud of elements into a sparse
matrix}
\addcontentsline{toc}{subsection}{psb\_spins}
\begin{verbatim}
\begin{lstlisting}
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -695,12 +685,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_spasb %%
%
\clearpage\subsection*{psb\_spasb --- Sparse matrix assembly routine}
\addcontentsline{toc}{subsection}{psb\_spasb}
\clearpage\subroutine{psb\_spasb}{Sparse matrix assembly routine}
\begin{verbatim}
\begin{lstlisting}
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -770,9 +759,8 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_spcnv %%
%% %
%% \subsection*{psb\_spcnv --- Converts a sparse matrix storage
%% \subroutine{psb\_spcnv}{Converts a sparse matrix storage
%% format}
%%\addcontentsline{toc}{subsection}{psb\_spcnv}
%% \syntax{call psb\_spcnv}{a, b, desc\_a, info}
@@ -805,12 +793,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_spfree %%
%
\clearpage\subsection*{psb\_spfree --- Frees a sparse matrix}
\addcontentsline{toc}{subsection}{psb\_spfree}
\clearpage\subroutine{psb\_spfree}{Frees a sparse matrix}
\begin{verbatim}
\begin{lstlisting}
call psb_spfree(a, desc_a, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -842,13 +829,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_sprn %%
%
\clearpage\subsection*{psb\_sprn --- Reinit sparse matrix structure for psblas
\clearpage\subroutine{psb\_sprn}{Reinit sparse matrix structure for psblas
routines.}
\addcontentsline{toc}{subsection}{psb\_sprn}
\begin{verbatim}
\begin{lstlisting}
call psb_sprn(a, decsc_a, info, clear)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -886,8 +872,7 @@ An integer value; 0 means no error has been detected.
%
%% psb_spupdate %%
%
%% \subsection*{psb\_spupdate --- Updates a sparse matrix.}
%%\addcontentsline{toc}{subsection}{psb\_spupdate}
%% \subroutine{psb\_spupdate}{Updates a sparse matrix.}
%% \syntax{call psb\_spupdate}{a, ia, ja, blck, desc\_a, info, ix, jx, updflag}
@@ -901,9 +886,8 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_csrp %%
%% %
%% \subsection*{psb\_csrp --- Applies a right permutation to a sparse
%% \subroutine{psb\_csrp}{Applies a right permutation to a sparse
%% matrix}
%%\addcontentsline{toc}{subsection}{psb\_csrp}
%% \syntax{call psb\_csrp}{trans, iperm, a, info}
@@ -933,12 +917,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_alloc %%
%
\clearpage\subsection*{psb\_geall --- Allocates a dense matrix}
\addcontentsline{toc}{subsection}{psb\_geall}
\clearpage\subroutine{psb\_geall}{Allocates a dense matrix}
\begin{verbatim}
\begin{lstlisting}
call psb_geall(x, desc_a, info, n, lb)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -981,12 +964,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_ins %%
%
\clearpage\subsection*{psb\_geins --- Dense matrix insertion routine}
\addcontentsline{toc}{subsection}{psb\_geins}
\clearpage\subroutine{psb\_geins}{Dense matrix insertion routine}
\begin{verbatim}
\begin{lstlisting}
call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1054,12 +1036,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_asb %%
%
\clearpage\subsection*{psb\_geasb --- Assembly a dense matrix}
\addcontentsline{toc}{subsection}{psb\_geasb}
\clearpage\subroutine{psb\_geasb}{Assembly a dense matrix}
\begin{verbatim}
\begin{lstlisting}
call psb_geasb(x, desc_a, info, mold)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -1094,12 +1075,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_free %%
%
\clearpage\subsection*{psb\_gefree --- Frees a dense matrix}
\addcontentsline{toc}{subsection}{psb\_gefree}
\clearpage\subroutine{psb\_gefree}{Frees a dense matrix}
\begin{verbatim}
\begin{lstlisting}
call psb_gefree(x, desc_a, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Synchronous.
@@ -1132,13 +1112,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_gelp %%
%
\clearpage\subsection*{psb\_gelp --- Applies a left permutation to a dense
\clearpage\subroutine{psb\_gelp}{Applies a left permutation to a dense
matrix}
\addcontentsline{toc}{subsection}{psb\_gelp}
\begin{verbatim}
\begin{lstlisting}
call psb_gelp(trans, iperm, x, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1173,14 +1152,13 @@ An integer value; 0 means no error has been detected.
%
%% psb_glob_to_loc %%
%
\clearpage\subsection*{psb\_glob\_to\_loc --- Global to local indices
\clearpage\subroutine{psb\_glob\_to\_loc}{Global to local indices
convertion}
\addcontentsline{toc}{subsection}{psb\_glob\_to\_loc}
\begin{verbatim}
\begin{lstlisting}
call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
call psb_glob_to_loc(x, desc_a, info, iact,owned)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1241,14 +1219,13 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subsection*{psb\_loc\_to\_glob --- Local to global indices
\clearpage\subroutine{psb\_loc\_to\_glob}{Local to global indices
conversion}
\addcontentsline{toc}{subsection}{psb\_loc\_to\_glob}
\begin{verbatim}
\begin{lstlisting}
call psb_loc_to_glob(x, y, desc_a, info, iact)
call psb_loc_to_glob(x, desc_a, info, iact)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1298,12 +1275,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_loc_to_glob %%
%
\clearpage\subsection*{psb\_is\_owned }
\addcontentsline{toc}{subsection}{psb\_is\_owned}
\clearpage\subroutine{psb\_is\_owned }{}
\begin{verbatim}
\begin{lstlisting}
call psb_is_owned(x, desc_a)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1338,12 +1314,11 @@ Intent: {\bf out}.\\
\end{enumerate}
\clearpage\subsection*{psb\_owned\_index }
\addcontentsline{toc}{subsection}{psb\_owned\_index}
\clearpage\subroutine{psb\_owned\_index }{}
\begin{verbatim}
\begin{lstlisting}
call psb_owned_index(y, x, desc_a, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1390,12 +1365,11 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subsection*{psb\_is\_local }
\addcontentsline{toc}{subsection}{psb\_is\_local}
\clearpage\subroutine{psb\_is\_local }{}
\begin{verbatim}
\begin{lstlisting}
call psb_is_local(x, desc_a)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1429,12 +1403,11 @@ Intent: {\bf out}.\\
indices
\end{enumerate}
\clearpage\subsection*{psb\_local\_index }
\addcontentsline{toc}{subsection}{psb\_local\_index}
\clearpage\subroutine{psb\_local\_index }{}
\begin{verbatim}
\begin{lstlisting}
call psb_local_index(y, x, desc_a, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1485,12 +1458,11 @@ An integer value; 0 means no error has been detected.
%
%% psb_ins %%
%
\clearpage\subsection*{psb\_get\_boundary --- Extract list of boundary elements}
\addcontentsline{toc}{subsection}{psb\_get\_boundary}
\clearpage\subroutine{psb\_get\_boundary}{Extract list of boundary elements}
\begin{verbatim}
\begin{lstlisting}
call psb_get_boundary(bndel, desc, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1527,12 +1499,11 @@ An integer value; 0 means no error has been detected.
number of boundary elements.
\end{enumerate}
\clearpage\subsection*{psb\_get\_overlap --- Extract list of overlap elements}
\addcontentsline{toc}{subsection}{psb\_get\_overlap}
\clearpage\subroutine{psb\_get\_overlap}{Extract list of overlap elements}
\begin{verbatim}
\begin{lstlisting}
call psb_get_overlap(ovrel, desc, info)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1570,13 +1541,12 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{psb\_sp\_getrow --- Extract row(s) from a sparse matrix}
\addcontentsline{toc}{subsection}{psb\_sp\_getrow}
\clearpage\subroutine{psb\_sp\_getrow}{Extract row(s) from a sparse matrix}
\begin{verbatim}
\begin{lstlisting}
call psb_sp_getrow(row, a, nz, ia, ja, val, info, &
& append, nzin, lrw)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1663,17 +1633,16 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{psb\_sizeof --- Memory occupation}
\addcontentsline{toc}{subsection}{psb\_sizeof}
\clearpage\subroutine{psb\_sizeof}{Memory occupation}
This function computes the memory occupation of a PSBLAS object.
\begin{verbatim}
\begin{lstlisting}
isz = psb_sizeof(a)
isz = psb_sizeof(desc_a)
isz = psb_sizeof(prec)
\end{verbatim}
\end{lstlisting}
\begin{description}
\item[Type:] Asynchronous.
@@ -1702,8 +1671,7 @@ Returned as: an \verb|integer(psb_long_int_k_)| number.
\end{description}
\clearpage\subsection*{Sorting utilities}
\addcontentsline{toc}{subsection}{Sorting utilities}
\clearpage\subroutine{Sorting utilities}{}
{\par\noindent\large\bfseries psb\_msort --- Sorting by the Merge-sort
algorithm}
@@ -1712,11 +1680,11 @@ Returned as: an \verb|integer(psb_long_int_k_)| number.
algorithm}
{\par\noindent\large\bfseries psb\_hsort --- Sorting by the Heapsort algorithm}
\begin{verbatim}
\begin{lstlisting}
call psb_msort(x,ix,dir,flag)
call psb_qsort(x,ix,dir,flag)
call psb_hsort(x,ix,dir,flag)
\end{verbatim}
\end{lstlisting}
These serial routines sort a sequence $X$ into ascending or
descending order. The argument meaning is identical for the three