Switched to htlatex for HTML users guide.

This commit is contained in:
Salvatore Filippone
2019-12-17 19:30:27 +00:00
parent 41ef94538c
commit a5481f8a72
487 changed files with 33971 additions and 37114 deletions
+20 -7
View File
@@ -113,6 +113,7 @@ DATE = $(shell date +%Y-%m-%d)
#
LATEX = latex
LTX2HTML = latex2html -local_icons
LTX2HTML = htlatex
PDFLATEX = pdflatex
ACRO = evince
XPDF = xpdf
@@ -143,6 +144,7 @@ BASEHTML = $(patsubst %.tex,%,$(HTMLFILE))
HTML = $(join $(HTMLFILE),.html)
HTMLDIR = ../html
HTMLFLAGS = -noaddress
HTMLFLAGS = "html,3"
FIGURES = $(sort $(wildcard $(FIGDIR)/*))
GLOFILES:= $(sort $(wildcard lib/*.gdf))
@@ -159,9 +161,9 @@ TEXLNFIL = $(addprefix $(PWD)/,$(TEXFILES))
#============================================================================
all: pdf html
pdf: $(PDF) copypdf
html: $(HTML)
html: $(HTML) copyhtml
$(PDF): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile
$(header)
@@ -184,19 +186,21 @@ copypdf:
$(HTML): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile
$(header)
$(initialize)
$(latex-filter)
$(pdflatex-filter)
ifneq ($(BIBFILES),)
$(bibtex)
$(latex-filter)
$(pdflatex-filter)
endif
ifneq ($(GLOFILES),)
$(glosstex)
$(latex-filter)
$(pdflatex-filter)
endif
# $(makeindex)
$(latex-filter)
$(ltx2html-filter)
copyhtml:
$(ltx2html-cpy)
$(PS): $(PDF)
$(PDF2PS) $< $(PS)
@@ -328,7 +332,16 @@ define ltx2html-filter
@echo "----- latex -------------------------------------------------------"
@echo -n "Starting: "; date
@echo
cd tmp; ($(LTX2HTML) $(HTMLFLAGS) -dir ../$(HTMLDIR) $(HTMLFILE) 2>&1) | $(FILTER)
# cd tmp; ($(LTX2HTML) $(HTMLFLAGS) -dir ../$(HTMLDIR) $(HTMLFILE) 2>&1) | $(FILTER)
cd tmp; ($(LTX2HTML) $(HTMLFILE) $(HTMLFLAGS) 2>&1) | $(FILTER)
endef
define ltx2html-cpy
@echo
@echo "----- latex -------------------------------------------------------"
@echo -n "Starting: "; date
@echo
cd tmp; (cp *.css *.html *.png ../$(HTMLDIR)); (cp $(HTMLFILE) ../$(HTMLDIR)/index.html)
endef
#----------------------------------------------------------------------------
+6 -10
View File
@@ -8,8 +8,7 @@ The routines in this chapter implement various global communication operators
on vectors associated with a discretization mesh. For auxiliary communication
routines not tied to a discretization space see~\ref{sec:toolsrout}.
\clearpage\subsection*{psb\_halo --- Halo Data Communication}
\addcontentsline{toc}{subsection}{psb\_halo}
\clearpage\subsection{psb\_halo --- Halo Data Communication}
These subroutines gathers the values of the halo
@@ -88,7 +87,7 @@ An integer value that contains an error code.
\begin{figure}[h]
\begin{center}
\ifcase\pdfoutput
\includegraphics[scale=0.45]{figures/try8x8.eps}
\includegraphics[scale=0.45]{figures/try8x8.png}
\or
\includegraphics[scale=0.45]{figures/try8x8}
\fi
@@ -162,8 +161,7 @@ following:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_ovrl --- Overlap Update}
\addcontentsline{toc}{subsection}{psb\_ovrl}
\clearpage\subsection{psb\_ovrl --- Overlap Update}
These subroutines applies an overlap operator to the input vector:
@@ -267,7 +265,7 @@ their instances.
\begin{figure}[h]
\begin{center}
\ifcase\pdfoutput
\includegraphics[scale=0.65]{figures/try8x8_ov.eps}
\includegraphics[scale=0.65]{figures/try8x8_ov.png}
\or
{\includegraphics[scale=0.65]{figures/try8x8_ov}}
\fi
@@ -354,8 +352,7 @@ following (showing a transition among the two subdomains)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_gather --- Gather Global Dense Matrix}
\addcontentsline{toc}{subsection}{psb\_gather}
\clearpage\subsection{psb\_gather --- Gather Global Dense Matrix}
These subroutines collect the portions of global dense matrix
distributed over all process into one single array stored on one
@@ -456,8 +453,7 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_scatter --- Scatter Global Dense Matrix}
\addcontentsline{toc}{subsection}{psb\_scatter}
\clearpage\subsection{psb\_scatter --- Scatter Global Dense Matrix}
These subroutines scatters the portions of global dense matrix owned
by a process to all the processes in the processes grid.
+61 -70
View File
@@ -182,8 +182,7 @@ state, which can take the following values:
\subsubsection{Descriptor Methods}
\subsubsection*{get\_local\_rows --- Get number of local rows}
\addcontentsline{toc}{paragraph}{get\_local\_rows}
\subsubsection{get\_local\_rows --- Get number of local rows}
\begin{verbatim}
nr = desc%get_local_rows()
@@ -208,8 +207,7 @@ Scope: {\bf local}.\\
\end{description}
\subsubsection*{get\_local\_cols --- Get number of local cols}
\addcontentsline{toc}{paragraph}{get\_local\_cols}
\subsubsection{get\_local\_cols --- Get number of local cols}
\begin{verbatim}
nc = desc%get_local_cols()
@@ -235,8 +233,7 @@ Scope: {\bf local}.\\
\end{description}
\subsubsection*{get\_global\_rows --- Get number of global rows}
\addcontentsline{toc}{paragraph}{get\_global\_rows}
\subsubsection{get\_global\_rows --- Get number of global rows}
\begin{verbatim}
nr = desc%get_global_rows()
@@ -258,8 +255,7 @@ Scope: {\bf local}.\\
global index space.
\end{description}
\subsubsection*{get\_global\_cols --- Get number of global cols}
\addcontentsline{toc}{paragraph}{get\_global\_cols}
\subsubsection{get\_global\_cols --- Get number of global cols}
\begin{verbatim}
nr = desc%get_global_cols()
@@ -282,8 +278,7 @@ Scope: {\bf local}.\\
\end{description}
\subsubsection*{get\_global\_indices --- Get vector of global indices}
\addcontentsline{toc}{paragraph}{get\_global\_indices}
\subsubsection{get\_global\_indices --- Get vector of global indices}
\begin{verbatim}
myidx = desc%get_global_indices([owned])
@@ -311,8 +306,7 @@ Type: {\bf optional}; default: \verb|.true.|.\\
\subsubsection*{get\_context --- Get communication context}
\addcontentsline{toc}{paragraph}{get\_context}
\subsubsection{get\_context --- Get communication context}
\begin{verbatim}
ictxt = desc%get_context()
@@ -333,8 +327,7 @@ Scope: {\bf local}.\\
\item[Function value] The communication context.
\end{description}
\subsubsection*{Clone --- clone current object}
\addcontentsline{toc}{paragraph}{Clone}
\subsubsection{Clone --- clone current object}
\begin{verbatim}
call desc%clone(descout,info)
@@ -357,8 +350,7 @@ Scope: {\bf local}.\\
\end{description}
\subsubsection*{CNV --- convert internal storage format}
\addcontentsline{toc}{paragraph}{CNV}
\subsubsection{CNV --- convert internal storage format}
\begin{verbatim}
call desc%cnv(mold)
@@ -381,9 +373,8 @@ accelerators.
\subsubsection*{psb\_cd\_get\_large\_threshold --- Get threshold for
\subsubsection{psb\_cd\_get\_large\_threshold --- Get threshold for
index mapping switch}
\addcontentsline{toc}{paragraph}{psb\_cd\_get\_large\_threshold}
\begin{verbatim}
ith = psb_cd_get_large_threshold()
@@ -398,9 +389,9 @@ ith = psb_cd_get_large_threshold()
\subsubsection*{psb\_cd\_set\_large\_threshold --- Set threshold for
\subsubsection{psb\_cd\_set\_large\_threshold --- Set threshold for
index mapping switch}
\addcontentsline{toc}{paragraph}{psb\_cd\_set\_large\_threshold}
%\addcontentsline{toc}{paragraph}{psb\_cd\_set\_large\_threshold}
\begin{verbatim}
call psb_cd_set_large_threshold(ith)
@@ -422,8 +413,8 @@ initialized. Moreover the threshold must have the same value on all
processes.
\subsubsection*{get\_p\_adjcncy --- Get process adjacency list}
\addcontentsline{toc}{paragraph}{get\_p\_adjcncy}
\subsubsection{get\_p\_adjcncy --- Get process adjacency list}
%\addcontentsline{toc}{paragraph}{get\_p\_adjcncy}
\begin{verbatim}
list = desc%get_p_adjcncy()
@@ -438,8 +429,8 @@ list = desc%get_p_adjcncy()
\end{description}
\subsubsection*{set\_p\_adjcncy --- Set process adjacency list}
\addcontentsline{toc}{paragraph}{set\_p\_adjcncy}
\subsubsection{set\_p\_adjcncy --- Set process adjacency list}
%\addcontentsline{toc}{paragraph}{set\_p\_adjcncy}
\begin{verbatim}
call desc%set_p_adjcncy(list)
@@ -461,8 +452,8 @@ current process. The availability of this information may speed up the
execution of the assembly call \verb|psb_cdasb|.
\subsubsection*{fnd\_owner --- Find the owner process of a set of indices}
\addcontentsline{toc}{paragraph}{fnd\_owner}
\subsubsection{fnd\_owner --- Find the owner process of a set of indices}
%\addcontentsline{toc}{paragraph}{fnd\_owner}
\begin{verbatim}
call desc%fnd_owner(idx,iprc,info)
@@ -591,8 +582,8 @@ variants are obtained by conversion to/from it.
\subsubsection{Sparse Matrix Methods}
\subsubsection*{get\_nrows --- Get number of rows in a sparse matrix}
\addcontentsline{toc}{paragraph}{get\_nrows}
\subsubsection{get\_nrows --- Get number of rows in a sparse matrix}
%\addcontentsline{toc}{paragraph}{get\_nrows}
\begin{verbatim}
nr = a%get_nrows()
@@ -614,9 +605,9 @@ Scope: {\bf local}\\
\end{description}
\subsubsection*{get\_ncols --- Get number of columns in a sparse
\subsubsection{get\_ncols --- Get number of columns in a sparse
matrix}
\addcontentsline{toc}{paragraph}{get\_ncols}
%\addcontentsline{toc}{paragraph}{get\_ncols}
\begin{verbatim}
nc = a%get_ncols()
@@ -638,9 +629,9 @@ Scope: {\bf local}\\
\end{description}
\subsubsection*{get\_nnzeros --- Get number of nonzero elements
\subsubsection{get\_nnzeros --- Get number of nonzero elements
in a sparse matrix}
\addcontentsline{toc}{paragraph}{get\_nnzeros}
%\addcontentsline{toc}{paragraph}{get\_nnzeros}
\begin{verbatim}
nz = a%get_nnzeros()
@@ -668,9 +659,9 @@ Scope: {\bf local}\\
value for the same matrix may be different for different storage choices.
\end{enumerate}
\subsubsection*{get\_size --- Get maximum number of nonzero elements
\subsubsection{get\_size --- Get maximum number of nonzero elements
in a sparse matrix}
\addcontentsline{toc}{paragraph}{get\_size }
%\addcontentsline{toc}{paragraph}{get\_size }
\begin{verbatim}
maxnz = a%get_size()
@@ -692,9 +683,9 @@ Scope: {\bf local}\\
be stored in sparse matrix \verb|a| using its current memory allocation.
\end{description}
\subsubsection*{sizeof --- Get memory occupation in bytes
\subsubsection{sizeof --- Get memory occupation in bytes
of a sparse matrix}
\addcontentsline{toc}{paragraph}{sizeof }
%\addcontentsline{toc}{paragraph}{sizeof }
\begin{verbatim}
memory_size = a%sizeof()
@@ -716,8 +707,8 @@ Scope: {\bf local}\\
\end{description}
\subsubsection*{get\_fmt --- Short description of the dynamic type}
\addcontentsline{toc}{paragraph}{get\_fmt }
\subsubsection{get\_fmt --- Short description of the dynamic type}
%\addcontentsline{toc}{paragraph}{get\_fmt }
\begin{verbatim}
write(*,*) a%get_fmt()
@@ -740,8 +731,8 @@ Scope: {\bf local}\\
\verb|CSR| and \verb|CSC|.
\end{description}
\subsubsection*{is\_bld, is\_upd, is\_asb --- Status check}
\addcontentsline{toc}{paragraph}{is\_bld, is\_upd, is\_asb }
\subsubsection{is\_bld, is\_upd, is\_asb --- Status check}
%\addcontentsline{toc}{paragraph}{is\_bld, is\_upd, is\_asb }
\begin{verbatim}
if (a%is_bld()) then
@@ -765,9 +756,9 @@ Scope: {\bf local}\\
matrix is in the Build, Update or Assembled state, respectively.
\end{description}
\subsubsection*{is\_lower, is\_upper, is\_triangle, is\_unit ---
\subsubsection{is\_lower, is\_upper, is\_triangle, is\_unit ---
Format check}
\addcontentsline{toc}{paragraph}{is\_lower, is\_upper, is\_triangle, is\_unit}
%\addcontentsline{toc}{paragraph}{is\_lower, is\_upper, is\_triangle, is\_unit}
\begin{verbatim}
if (a%is_triangle()) then
@@ -795,8 +786,8 @@ Scope: {\bf local}\\
\end{description}
\subsubsection*{cscnv --- Convert to a different storage format}
\addcontentsline{toc}{paragraph}{cscnv}
\subsubsection{cscnv --- Convert to a different storage format}
%\addcontentsline{toc}{paragraph}{cscnv}
\begin{verbatim}
call a%cscnv(b,info [, type, mold, dupl])
@@ -828,8 +819,8 @@ employed to interface with special devices, such as GPUs and other
accelerators.
\subsubsection*{csclip --- Reduce to a submatrix}
\addcontentsline{toc}{paragraph}{csclip}
\subsubsection{csclip --- Reduce to a submatrix}
%\addcontentsline{toc}{paragraph}{csclip}
\begin{verbatim}
call a%csclip(b,info[,&
& imin,imax,jmin,jmax,rscale,cscale])
@@ -856,8 +847,8 @@ A variable of type \verb|psb_Tspmat_type|.
\item[info] Return code.
\end{description}
\subsubsection*{clean\_zeros --- Eliminate zero coefficients}
\addcontentsline{toc}{paragraph}{clean\_zeros}
\subsubsection{clean\_zeros --- Eliminate zero coefficients}
%\addcontentsline{toc}{paragraph}{clean\_zeros}
\begin{verbatim}
call a%clean_zeros(info)
\end{verbatim}
@@ -880,8 +871,8 @@ A variable of type \verb|psb_Tspmat_type|.
\item[info] Return code.
\end{description}
\subsubsection*{get\_diag --- Get main diagonal}
\addcontentsline{toc}{paragraph}{get\_diag}
\subsubsection{get\_diag --- Get main diagonal}
%\addcontentsline{toc}{paragraph}{get\_diag}
\begin{verbatim}
call a%get_diag(d,info)
\end{verbatim}
@@ -902,8 +893,8 @@ A one-dimensional array of the appropriate type.
\end{description}
\subsubsection*{clip\_diag --- Cut out main diagonal}
\addcontentsline{toc}{paragraph}{clip\_diag}
\subsubsection{clip\_diag --- Cut out main diagonal}
%\addcontentsline{toc}{paragraph}{clip\_diag}
\begin{verbatim}
call a%clip_diag(b,info)
\end{verbatim}
@@ -924,8 +915,8 @@ A variable of type \verb|psb_Tspmat_type|.
\end{description}
\subsubsection*{tril --- Return the lower triangle}
\addcontentsline{toc}{paragraph}{tril}
\subsubsection{tril --- Return the lower triangle}
%\addcontentsline{toc}{paragraph}{tril}
\begin{verbatim}
call a%tril(l,info[,&
& diag,imin,imax,jmin,jmax,rscale,cscale,u])
@@ -958,8 +949,8 @@ A variable of type \verb|psb_Tspmat_type|.
\item[info] Return code.
\end{description}
\subsubsection*{triu --- Return the upper triangle}
\addcontentsline{toc}{paragraph}{triu}
\subsubsection{triu --- Return the upper triangle}
%\addcontentsline{toc}{paragraph}{triu}
\begin{verbatim}
call a%triu(u,info[,&
& diag,imin,imax,jmin,jmax,rscale,cscale,l])
@@ -995,8 +986,8 @@ A variable of type \verb|psb_Tspmat_type|.
\subsubsection*{psb\_set\_mat\_default --- Set default storage format}
\addcontentsline{toc}{paragraph}{psb\_set\_mat\_default}
\subsubsection{psb\_set\_mat\_default --- Set default storage format}
%\addcontentsline{toc}{paragraph}{psb\_set\_mat\_default}
\begin{verbatim}
@@ -1015,8 +1006,8 @@ Type: required.
\subsubsection*{clone --- Clone current object}
\addcontentsline{toc}{paragraph}{clone}
\subsubsection{clone --- Clone current object}
%\addcontentsline{toc}{paragraph}{clone}
\begin{verbatim}
call a%clone(b,info)
@@ -1112,8 +1103,8 @@ private memory.
\end{figure}
\subsubsection{Vector Methods}
\subsubsection*{get\_nrows --- Get number of rows in a dense vector}
\addcontentsline{toc}{paragraph}{get\_nrows}
\subsubsection{get\_nrows --- Get number of rows in a dense vector}
%\addcontentsline{toc}{paragraph}{get\_nrows}
\begin{verbatim}
nr = v%get_nrows()
@@ -1135,9 +1126,9 @@ Scope: {\bf local}\\
\end{description}
\subsubsection*{sizeof --- Get memory occupation in bytes
\subsubsection{sizeof --- Get memory occupation in bytes
of a dense vector}
\addcontentsline{toc}{paragraph}{sizeof }
%\addcontentsline{toc}{paragraph}{sizeof }
\begin{verbatim}
memory_size = v%sizeof()
@@ -1159,8 +1150,8 @@ Scope: {\bf local}\\
\end{description}
\subsubsection*{set --- Set contents of the vector}
\addcontentsline{toc}{paragraph}{set }
\subsubsection{set --- Set contents of the vector}
%\addcontentsline{toc}{paragraph}{set }
\begin{verbatim}
call v%set(alpha[,first,last])
@@ -1197,8 +1188,8 @@ constant having the appropriate type and kind.
Scope: {\bf local}\\
\end{description}
\subsubsection*{get\_vect --- Get a copy of the vector contents}
\addcontentsline{toc}{paragraph}{get\_vect }
\subsubsection{get\_vect --- Get a copy of the vector contents}
%\addcontentsline{toc}{paragraph}{get\_vect }
\begin{verbatim}
extv = v%get_vect([n])
@@ -1227,8 +1218,8 @@ Type: {\bf optional}; default: entire vector.\\
array is the same as the internal size of the vector.
\end{description}
\subsubsection*{clone --- Clone current object}
\addcontentsline{toc}{paragraph}{clone}
\subsubsection{clone --- Clone current object}
%\addcontentsline{toc}{paragraph}{clone}
\begin{verbatim}
call x%clone(y,info)
\end{verbatim}
+8 -28
View File
@@ -119,9 +119,10 @@ Aborting...
\end{figure}
\clearpage\subroutine{psb\_errpush}{Pushes an error code onto the error
\clearpage\subsection{psb\_errpush}{Pushes an error code onto the error
stack}
\begin{lstlisting}
call psb_errpush(err_c, r_name, i_err, a_err)
\end{lstlisting}
@@ -149,7 +150,7 @@ Type: {\bf optional}\\
Specified as: a string.\\
\end{description}
\clearpage\subroutine{psb\_error}{Prints the error stack content and aborts
\clearpage\subsection{psb\_error}{Prints the error stack content and aborts
execution}
\begin{lstlisting}
@@ -168,8 +169,9 @@ Specified as: an integer.
\clearpage\subroutine{psb\_set\_errverbosity}{Sets the verbosity of error
messages.}
\clearpage\subsection{psb\_set\_errverbosity}{Sets the verbosity of error
messages}
\begin{lstlisting}
call psb_set_errverbosity(v)
@@ -185,9 +187,8 @@ Intent: {\bf in}.\\
Specified as: an integer.
\end{description}
\clearpage\subroutine{psb\_set\_erraction}{Set the type of action to be
taken upon error condition.}
\clearpage\subsection{psb\_set\_erraction}{Set the type of action to be
taken upon error condition}
\begin{lstlisting}
call psb_set_erraction(err_act)
@@ -205,27 +206,6 @@ Specified as: an integer. Possible values: \verb|psb_act_ret|,
\end{description}
%% \clearpage\subroutine{psb\_errcomm}{Error communication routine}
%% \begin{lstlisting}
%% call psb_errcomm(icontxt, err)
%% \end{lstlisting}
%% \begin{description}
%% \item[\bf On Entry]
%% \item[icontxt] the communication context.\\
%% Scope: {\bf global} \\
%% Type: {\bf required}\\
%% Intent: {\bf in}.\\
%% Specified as: an integer.
%% \item[err] the error code to be communicated\\
%% Scope: {\bf global} \\
%% Type: {\bf required}\\
%% Intent: {\bf inout}.\\
%% Specified as: an integer.\\
%% \end{description}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "userguide"
+2 -2
View File
@@ -101,7 +101,7 @@ further details on our communication layer see Sec.~\ref{sec:parenv}.
\begin{figure}[h]
\begin{center}
\ifcase\pdfoutput
\includegraphics[scale=0.65]{figures/psblas.eps}
\includegraphics[scale=0.65]{figures/psblas.png}
\or
\includegraphics[scale=0.65]{figures/psblas}
\fi
@@ -218,7 +218,7 @@ local rows) is $|{\cal I}_i| + |{\cal B}_i| +|{\cal H}_i|$.
\begin{center}
\ifcase\pdfoutput
%\rotatebox{-90}{
\includegraphics[scale=0.65]{figures/points.eps}%}
\includegraphics[scale=0.65]{figures/points.png}%}
\or
\rotatebox{-90}{\includegraphics[scale=0.65]{figures/points}}
\fi
+1 -2
View File
@@ -11,9 +11,8 @@ the module \verb|psb_krylov_mod|.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_krylov \label{krylov} --- Krylov Methods Driver
\clearpage\subsection{psb\_krylov \label{krylov} --- Krylov Methods Driver
Routine}
\addcontentsline{toc}{subsection}{psb\_krylov}
This subroutine is a driver that provides a general interface for all
the Krylov-Subspace family methods implemented in PSBLAS version 2.
+17 -34
View File
@@ -3,9 +3,8 @@
\section{Parallel environment routines}
\label{sec:parenv}
\clearpage\subsection*{psb\_init --- Initializes PSBLAS parallel
\clearpage\subsection{psb\_init --- Initializes PSBLAS parallel
environment}
\addcontentsline{toc}{subsection}{psb\_init}
\begin{verbatim}
call psb_init(icontxt, np, basectxt, ids)
@@ -62,9 +61,8 @@ Specified as: an integer variable.
\end{enumerate}
\clearpage\subsection*{psb\_info --- Return information about PSBLAS parallel
\clearpage\subsection{psb\_info --- Return information about PSBLAS parallel
environment}
\addcontentsline{toc}{subsection}{psb\_info}
\begin{verbatim}
call psb_info(icontxt, iam, np)
@@ -110,9 +108,8 @@ Specified as: an integer variable. \
\end{enumerate}
\clearpage\subsection*{psb\_exit --- Exit from PSBLAS parallel
\clearpage\subsection{psb\_exit --- Exit from PSBLAS parallel
environment}
\addcontentsline{toc}{subsection}{psb\_exit}
\begin{verbatim}
call psb_exit(icontxt)
@@ -154,8 +151,7 @@ Specified as: a logical variable, default value: true.
\end{enumerate}
\clearpage\subsection*{psb\_get\_mpi\_comm --- Get the MPI communicator}
\addcontentsline{toc}{subsection}{psb\_get\_mpi\_comm}
\clearpage\subsection{psb\_get\_mpi\_comm --- Get the MPI communicator}
\begin{verbatim}
icomm = psb_get_mpi_comm(icontxt)
@@ -185,8 +181,7 @@ Intent: {\bf out}.\\
The subroutine version \verb|psb_get_mpicomm| is still available but
is deprecated.
\clearpage\subsection*{psb\_get\_mpi\_rank --- Get the MPI rank}
\addcontentsline{toc}{subsection}{psb\_get\_mpi\_rank}
\clearpage\subsection{psb\_get\_mpi\_rank --- Get the MPI rank}
\begin{verbatim}
rank = psb_get_mpi_rank(icontxt, id)
@@ -223,8 +218,7 @@ deprecated.
\clearpage\subsection*{psb\_wtime --- Wall clock timing}
\addcontentsline{toc}{subsection}{psb\_wtime}
\clearpage\subsection{psb\_wtime --- Wall clock timing}
\begin{verbatim}
time = psb_wtime()
@@ -240,9 +234,8 @@ Returned as: a \verb|real(psb_dpk_)| variable.
\end{description}
\clearpage\subsection*{psb\_barrier --- Sinchronization point parallel
\clearpage\subsection{psb\_barrier --- Sinchronization point parallel
environment}
\addcontentsline{toc}{subsection}{psb\_barrier}
\begin{verbatim}
call psb_barrier(icontxt)
@@ -262,8 +255,7 @@ Specified as: an integer variable.
\end{description}
\clearpage\subsection*{psb\_abort --- Abort a computation}
\addcontentsline{toc}{subsection}{psb\_abort}
\clearpage\subsection{psb\_abort --- Abort a computation}
\begin{verbatim}
call psb_abort(icontxt)
@@ -285,8 +277,7 @@ Specified as: an integer variable.
\clearpage\subsection*{psb\_bcast --- Broadcast data}
\addcontentsline{toc}{subsection}{psb\_bcast}
\clearpage\subsection{psb\_bcast --- Broadcast data}
\begin{verbatim}
call psb_bcast(icontxt, dat, root)
@@ -331,8 +322,7 @@ Type, kind, rank and size must agree on all processes.
\end{description}
\clearpage\subsection*{psb\_sum --- Global sum}
\addcontentsline{toc}{subsection}{psb\_sum}
\clearpage\subsection{psb\_sum --- Global sum}
\begin{verbatim}
call psb_sum(icontxt, dat, root)
@@ -386,8 +376,7 @@ Type, kind, rank and size must agree on all processes.
\clearpage\subsection*{psb\_max --- Global maximum}
\addcontentsline{toc}{subsection}{psb\_max}
\clearpage\subsection{psb\_max --- Global maximum}
\begin{verbatim}
call psb_max(icontxt, dat, root)
@@ -440,8 +429,7 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subsection*{psb\_min --- Global minimum}
\addcontentsline{toc}{subsection}{psb\_min}
\clearpage\subsection{psb\_min --- Global minimum}
\begin{verbatim}
call psb_min(icontxt, dat, root)
@@ -494,8 +482,7 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subsection*{psb\_amx --- Global maximum absolute value}
\addcontentsline{toc}{subsection}{psb\_amx}
\clearpage\subsection{psb\_amx --- Global maximum absolute value}
\begin{verbatim}
call psb_amx(icontxt, dat, root)
@@ -548,8 +535,7 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subsection*{psb\_amn --- Global minimum absolute value}
\addcontentsline{toc}{subsection}{psb\_amn}
\clearpage\subsection{psb\_amn --- Global minimum absolute value}
\begin{verbatim}
call psb_amn(icontxt, dat, root)
@@ -602,8 +588,7 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subsection*{psb\_nrm2 --- Global 2-norm reduction}
\addcontentsline{toc}{subsection}{psb\_nrm2}
\clearpage\subsection{psb\_nrm2 --- Global 2-norm reduction}
\begin{verbatim}
call psb_nrm2(icontxt, dat, root)
@@ -663,8 +648,7 @@ Kind, rank and size must agree on all processes.
\clearpage\subsection*{psb\_snd --- Send data}
\addcontentsline{toc}{subsection}{psb\_snd}
\clearpage\subsection{psb\_snd --- Send data}
\begin{verbatim}
call psb_snd(icontxt, dat, dst, m)
@@ -715,8 +699,7 @@ same value on sending and receiving processes.
\end{enumerate}
\clearpage\subsection*{psb\_rcv --- Receive data}
\addcontentsline{toc}{subsection}{psb\_rcv}
\clearpage\subsection{psb\_rcv --- Receive data}
\begin{verbatim}
call psb_rcv(icontxt, dat, src, m)
+6 -13
View File
@@ -23,9 +23,7 @@ backward compatibility
%% package, which will characterize release 2.1 of our library.
\clearpage\subsection*{init --- Initialize a preconditioner}
\addcontentsline{toc}{subsection}{prec\%init}
\clearpage\subsection{init --- Initialize a preconditioner}
\begin{verbatim}
call prec%init(icontxt,ptype, info)
@@ -86,8 +84,7 @@ $ptype$ string as follows\footnote{The string is case-insensitive}:
\end{description}
\clearpage\subsection*{build --- Builds a preconditioner}
\addcontentsline{toc}{subsection}{prec\%build}
\clearpage\subsection{build --- Builds a preconditioner}
\begin{verbatim}
call prec%build(a, desc_a, info[,amold,vmold,imold])
@@ -152,9 +149,8 @@ accelerators.
\clearpage\subsection*{apply --- Preconditioner application
\clearpage\subsection{apply --- Preconditioner application
routine}
\addcontentsline{toc}{subsection}{prec\%apply}
\begin{verbatim}
call prec%apply(x,y,desc_a,info,trans,work)
@@ -207,9 +203,8 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{descr --- Prints a description of current
\clearpage\subsection{descr --- Prints a description of current
preconditioner}
\addcontentsline{toc}{subsection}{prec\%descr}
\begin{verbatim}
call prec%descr()
@@ -240,9 +235,8 @@ all processes will print. Default: 0.
\clearpage\subsection*{clone --- clone current
\clearpage\subsection{clone --- clone current
preconditioner}
\addcontentsline{toc}{subsection}{clone}
\begin{verbatim}
call prec%clone(precout,info)
\end{verbatim}
@@ -264,8 +258,7 @@ Scope: {\bf local}.\\
\end{description}
\clearpage\subsection*{free --- Free a preconditioner}
\addcontentsline{toc}{subsection}{prec\%free}
\clearpage\subsection{free --- Free a preconditioner}
\begin{verbatim}
call prec%free(info)
+221 -26
View File
@@ -5,8 +5,7 @@
% DENSE MATRIX SUM
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_geaxpby --- General Dense Matrix Sum}
\addcontentsline{toc}{subsection}{psb\_geaxpby}
\clearpage\subsection{psb\_geaxpby --- General Dense Matrix Sum}
This subroutine is an interface to the computational kernel for
dense matrix sum:
@@ -111,8 +110,7 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_gedot --- Dot Product}
\addcontentsline{toc}{subsection}{psb\_gedot}
\clearpage\subsection{psb\_gedot --- Dot Product}
This function computes dot product between two vectors $x$ and
$y$.\\
@@ -229,8 +227,7 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_gedots --- Generalized Dot Product}
\addcontentsline{toc}{subsection}{psb\_gedots}
\clearpage\subsection{psb\_gedots --- Generalized Dot Product}
This subroutine computes a series of dot products among the columns of
two dense matrices $x$ and $y$:
@@ -303,8 +300,7 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_normi --- Infinity-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_normi}
\clearpage\subsection{psb\_normi --- Infinity-Norm of Vector}
This function computes
the infinity-norm of a vector $x$.\\
@@ -407,8 +403,7 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_geamaxs --- Generalized Infinity Norm}
\addcontentsline{toc}{subsection}{psb\_geamaxs}
\clearpage\subsection{psb\_geamaxs --- Generalized Infinity Norm}
This subroutine computes a series of infinity norms on the columns of
a dense matrix $x$:
@@ -469,8 +464,7 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_norm1 --- 1-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_norm1}
\clearpage\subsection{psb\_norm1 --- 1-Norm of Vector}
This function computes the 1-norm of a vector $x$.\\
If $x$ is a real vector
@@ -557,8 +551,7 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subsection*{psb\_geasums --- Generalized 1-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_geasums}
\clearpage\subsection{psb\_geasums --- Generalized 1-Norm of Vector}
This subroutine computes a series of 1-norms on the columns of
a dense matrix $x$:
@@ -631,8 +624,7 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_norm2 --- 2-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_norm2}
\clearpage\subsection{psb\_norm2 --- 2-Norm of Vector}
This function computes the 2-norm of a vector $x$.\\
If $x$ is a real vector
@@ -730,8 +722,7 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{psb\_genrm2s --- Generalized 2-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_genrm2s}
\clearpage\subsection{psb\_genrm2s --- Generalized 2-Norm of Vector}
This subroutine computes a series of 2-norms on the columns of
a dense matrix $x$:
@@ -798,8 +789,7 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_norm1 --- 1-Norm of Sparse Matrix}
\addcontentsline{toc}{subsection}{psb\_norm1}
\clearpage\subsection{psb\_norm1 --- 1-Norm of Sparse Matrix}
This function computes the 1-norm of a matrix $A$:\\
@@ -863,8 +853,7 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_normi --- Infinity Norm of Sparse Matrix}
\addcontentsline{toc}{subsection}{psb\_normi}
\clearpage\subsection{psb\_normi --- Infinity Norm of Sparse Matrix}
This function computes the infinity-norm of a matrix $A$:\\
@@ -928,9 +917,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_spmm --- Sparse Matrix by Dense Matrix
\clearpage\subsection{psb\_spmm --- Sparse Matrix by Dense Matrix
Product}
\addcontentsline{toc}{subsection}{psb\_spmm}
This subroutine computes the Sparse Matrix by Dense Matrix Product:
@@ -1081,8 +1069,7 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection*{psb\_spsm --- Triangular System Solve}
\addcontentsline{toc}{subsection}{psb\_spsm}
\clearpage\subsection{psb\_spsm --- Triangular System Solve}
This subroutine computes the Triangular System Solve:
@@ -1244,8 +1231,216 @@ Intent: {\bf out}.\\
An integer value; 0 means no error has been detected.
\end{description}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% VECTOR VECTOR OPERATIONS
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subsection{psb\_gemlt --- Entrywise Product}
This function computes the entrywise product between two vectors $x$ and
$y$
\[dot \leftarrow x(i) y(i).\]
\begin{verbatim}
psb_gemlt(x, y, desc_a, info)
\end{verbatim}
%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy}
\begin{table}[h]
\begin{center}
\begin{tabular}{ll}
\hline
$dot$, $x$, $y$ & {\bf Function}\\
\hline
Short Precision Real & psb\_gemlt \\
Long Precision Real & psb\_gemlt \\
Short Precision Complex & psb\_gemlt \\
Long Precision Complex & psb\_gemlt \\
\hline
\end{tabular}
\end{center}
\caption{Data types\label{tab:f90mlt}}
\end{table}
\begin{description}
\item[Type:] Synchronous.
\item[\bf On Entry]
\item[x] the local portion of global dense vector
$x$.\\
%% This function computes the location of the first element of
%% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf in}.\\
Specified as: an object of type \vdata\
containing numbers of type specified in
Table~\ref{tab:f90dot}.
\item[y] the local portion of global dense vector
$y$. \\
%% This function computes the location of the first element of
%% local subarray used, based on $iy, jy$ and the field $matrix\_data$ of $desc\_a$ . \\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf in}.\\
Specified as: an object of type \vdata\
containing numbers of type specified in
Table~\ref{tab:f90dot}.
\item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Intent: {\bf in}.\\
Specified as: an object of type \descdata.
\item[\bf On Return]
\item[y] the local portion of result submatrix $y$.\\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf inout}.\\
Specified as: an object of type \vdata\ containing numbers of the type
indicated in Table~\ref{tab:f90mlt}.
\item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf out}.\\
An integer value; 0 means no error has been detected.
\end{description}
\clearpage\subsection{psb\_gediv --- Entrywise Division}
This function computes the entrywise division between two vectors $x$ and
$y$
\[/ \leftarrow x(i)/y(i).\]
\begin{verbatim}
psb_gediv(x, y, desc_a, info, [flag)
\end{verbatim}
%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy}
\begin{table}[h]
\begin{center}
\begin{tabular}{ll}
\hline
$/$, $x$, $y$ & {\bf Function}\\
\hline
Short Precision Real & psb\_gediv \\
Long Precision Real & psb\_gediv \\
Short Precision Complex & psb\_gediv \\
Long Precision Complex & psb\_gediv \\
\hline
\end{tabular}
\end{center}
\caption{Data types\label{tab:f90div}}
\end{table}
\begin{description}
\item[Type:] Synchronous.
\item[\bf On Entry]
\item[x] the local portion of global dense vector
$x$.\\
%% This function computes the location of the first element of
%% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf in}.\\
Specified as: an object of type \vdata\
containing numbers of type specified in
Table~\ref{tab:f90dot}.
\item[y] the local portion of global dense vector
$y$. \\
%% This function computes the location of the first element of
%% local subarray used, based on $iy, jy$ and the field $matrix\_data$ of $desc\_a$ . \\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf in}.\\
Specified as: an object of type \vdata\
containing numbers of type specified in
Table~\ref{tab:f90dot}.
\item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Intent: {\bf in}.\\
Specified as: an object of type \descdata.
\item[flag] check if any of the $y(i) = 0$, and in case returns error halting the computation.\\
Scope: {\bf local} \\
Type: {\bf optional}
Intent: {\bf in}.\\
Specified as: the logical value \verb|flag=.true.|
\item[\bf On Return]
\item[x] the local portion of result submatrix $x$.\\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf inout}.\\
Specified as: an object of type \vdata\ containing numbers of the type
indicated in Table~\ref{tab:f90mlt}.
\item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf out}.\\
An integer value; 0 means no error has been detected.
\end{description}
\clearpage\subsection{psb\_geinv --- Entrywise Inversion}
This function computes the entrywise inverse of a vector $x$ and puts it into
$y$
\[/ \leftarrow 1/x(i).\]
\begin{verbatim}
psb_geinv(x, y, desc_a, info, [flag)
\end{verbatim}
%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy}
\begin{table}[h]
\begin{center}
\begin{tabular}{ll}
\hline
$/$, $x$, $y$ & {\bf Function}\\
\hline
Short Precision Real & psb\_geinv \\
Long Precision Real & psb\_geinv \\
Short Precision Complex & psb\_geinv \\
Long Precision Complex & psb\_geinv \\
\hline
\end{tabular}
\end{center}
\caption{Data types\label{tab:f90inv}}
\end{table}
\begin{description}
\item[Type:] Synchronous.
\item[\bf On Entry]
\item[x] the local portion of global dense vector
$x$.\\
%% This function computes the location of the first element of
%% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf in}.\\
Specified as: an object of type \vdata\
containing numbers of type specified in
Table~\ref{tab:f90dot}.
\item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Intent: {\bf in}.\\
Specified as: an object of type \descdata.
\item[flag] check if any of the $x(i) = 0$, and in case returns error halting the computation.\\
Scope: {\bf local} \\
Type: {\bf optional}
Intent: {\bf in}.\\
Specified as: the logical value \verb|flag=.true.|
\item[\bf On Return]
\item[y] the local portion of result submatrix $x$.\\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf out}.\\
Specified as: an object of type \vdata\ containing numbers of the type
indicated in Table~\ref{tab:f90inv}.
\item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required} \\
Intent: {\bf out}.\\
An integer value; 0 means no error has been detected.
\end{description}
%%% Local Variables:
%%% mode: latex
+49 -64
View File
@@ -5,8 +5,7 @@
%
%% psb_cdall %%
%
\subsection*{psb\_cdall --- Allocates a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdall}
\subsection{psb\_cdall --- Allocates a communication descriptor}
\begin{verbatim}
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
@@ -196,9 +195,8 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdins %%
%
\clearpage\subsection*{psb\_cdins --- Communication descriptor insert
\clearpage\subsection{psb\_cdins --- Communication descriptor insert
routine}
\addcontentsline{toc}{subsection}{psb\_cdins}
\begin{verbatim}
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
@@ -292,9 +290,8 @@ nor the end vertex belong to the current process.
%
%% psb_cdasb %%
%
\clearpage\subsection*{psb\_cdasb --- Communication descriptor assembly
\clearpage\subsection{psb\_cdasb --- Communication descriptor assembly
routine}
\addcontentsline{toc}{subsection}{psb\_cdasb}
\begin{verbatim}
call psb_cdasb(desc_a, info [, mold])
@@ -347,8 +344,7 @@ speed up the subsequent call to \verb|psb_cdasb|.
%
%% psb_cdcpy %%
%
\clearpage\subsection*{psb\_cdcpy --- Copies a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdcpy}
\clearpage\subsection{psb\_cdcpy --- Copies a communication descriptor}
\begin{verbatim}
call psb_cdcpy(desc_in, desc_out, info)
@@ -383,8 +379,7 @@ 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\subsection{psb\_cdfree --- Frees a communication descriptor}
\begin{verbatim}
call psb_cdfree(desc_a, info)
@@ -414,9 +409,8 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdcpy %%
%
\clearpage\subsection*{psb\_cdbldext --- Build an extended communication
\clearpage\subsection{psb\_cdbldext --- Build an extended communication
descriptor}
\addcontentsline{toc}{subsection}{psb\_cdbldext}
\begin{verbatim}
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
@@ -484,9 +478,9 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_cdren %%
%% %
%% \subsection*{psb\_cdren --- Applies a renumeration to a
%% \subsection{psb\_cdren --- Applies a renumeration to a
%% communication descriptor}
%% \addcontentsline{toc}{subsection}{psb\_cdren}
%%% \addcontentsline{toc}{subsection}{psb\_cdren}
%% \syntax{call psb\_cdren}{trans, iperm, desc\_a, info}
@@ -521,8 +515,7 @@ An integer value; 0 means no error has been detected.
%
%% psb_descprt %%
%
%% \subsection*{psb\_cdprt --- Prints a descriptor}
%%\addcontentsline{toc}{subsection}{psb\_cdprt}
%% \subsection{psb\_cdprt --- Prints a descriptor}
%% \syntax{call psb\_cdprt}{iout, desc\_a, glob, short}
@@ -551,8 +544,7 @@ 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\subsection{psb\_spall --- Allocates a sparse matrix}
\begin{verbatim}
call psb_spall(a, desc_a, info, nnz)
@@ -603,9 +595,8 @@ An integer value; 0 means no error has been detected.
%
%% psb_spins %%
%
\clearpage\subsection*{psb\_spins --- Insert a set of coefficients into a sparse
\clearpage\subsection{psb\_spins --- Insert a set of coefficients into a sparse
matrix}
\addcontentsline{toc}{subsection}{psb\_spins}
\begin{verbatim}
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
@@ -730,8 +721,7 @@ 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\subsection{psb\_spasb --- Sparse matrix assembly routine}
\begin{verbatim}
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
@@ -805,9 +795,8 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_spcnv %%
%% %
%% \subsection*{psb\_spcnv --- Converts a sparse matrix storage
%% \subsection{psb\_spcnv --- Converts a sparse matrix storage
%% format}
%%\addcontentsline{toc}{subsection}{psb\_spcnv}
%% \syntax{call psb\_spcnv}{a, b, desc\_a, info}
@@ -840,8 +829,7 @@ 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\subsection{psb\_spfree --- Frees a sparse matrix}
\begin{verbatim}
call psb_spfree(a, desc_a, info)
@@ -877,9 +865,8 @@ An integer value; 0 means no error has been detected.
%
%% psb_sprn %%
%
\clearpage\subsection*{psb\_sprn --- Reinit sparse matrix structure for psblas
\clearpage\subsection{psb\_sprn --- Reinit sparse matrix structure for psblas
routines.}
\addcontentsline{toc}{subsection}{psb\_sprn}
\begin{verbatim}
call psb_sprn(a, decsc_a, info, clear)
@@ -921,8 +908,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}
%% \subsection{psb\_spupdate --- Updates a sparse matrix.}
%% \syntax{call psb\_spupdate}{a, ia, ja, blck, desc\_a, info, ix, jx, updflag}
@@ -936,9 +922,8 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_csrp %%
%% %
%% \subsection*{psb\_csrp --- Applies a right permutation to a sparse
%% \subsection{psb\_csrp --- Applies a right permutation to a sparse
%% matrix}
%%\addcontentsline{toc}{subsection}{psb\_csrp}
%% \syntax{call psb\_csrp}{trans, iperm, a, info}
@@ -968,8 +953,8 @@ 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\subsection{psb\_geall --- Allocates a dense matrix}
%\addcontentsline{toc}{subsection}{psb\_geall}
\begin{verbatim}
call psb_geall(x, desc_a, info, n, lb)
@@ -1016,8 +1001,8 @@ 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\subsection{psb\_geins --- Dense matrix insertion routine}
%\addcontentsline{toc}{subsection}{psb\_geins}
\begin{verbatim}
call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
@@ -1089,8 +1074,8 @@ 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\subsection{psb\_geasb --- Assembly a dense matrix}
%\addcontentsline{toc}{subsection}{psb\_geasb}
\begin{verbatim}
call psb_geasb(x, desc_a, info, mold)
@@ -1129,8 +1114,8 @@ 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\subsection{psb\_gefree --- Frees a dense matrix}
%\addcontentsline{toc}{subsection}{psb\_gefree}
\begin{verbatim}
call psb_gefree(x, desc_a, info)
@@ -1167,9 +1152,9 @@ An integer value; 0 means no error has been detected.
%
%% psb_gelp %%
%
\clearpage\subsection*{psb\_gelp --- Applies a left permutation to a dense
\clearpage\subsection{psb\_gelp --- Applies a left permutation to a dense
matrix}
\addcontentsline{toc}{subsection}{psb\_gelp}
%\addcontentsline{toc}{subsection}{psb\_gelp}
\begin{verbatim}
call psb_gelp(trans, iperm, x, info)
@@ -1208,9 +1193,9 @@ 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\subsection{psb\_glob\_to\_loc --- Global to local indices
convertion}
\addcontentsline{toc}{subsection}{psb\_glob\_to\_loc}
%\addcontentsline{toc}{subsection}{psb\_glob\_to\_loc}
\begin{verbatim}
call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
@@ -1276,9 +1261,9 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subsection*{psb\_loc\_to\_glob --- Local to global indices
\clearpage\subsection{psb\_loc\_to\_glob --- Local to global indices
conversion}
\addcontentsline{toc}{subsection}{psb\_loc\_to\_glob}
%\addcontentsline{toc}{subsection}{psb\_loc\_to\_glob}
\begin{verbatim}
call psb_loc_to_glob(x, y, desc_a, info, iact)
@@ -1333,8 +1318,8 @@ 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\subsection{psb\_is\_owned --- }
%\addcontentsline{toc}{subsection}{psb\_is\_owned }
\begin{verbatim}
call psb_is_owned(x, desc_a)
@@ -1373,8 +1358,8 @@ Intent: {\bf out}.\\
\end{enumerate}
\clearpage\subsection*{psb\_owned\_index --- }
\addcontentsline{toc}{subsection}{psb\_owned\_index }
\clearpage\subsection{psb\_owned\_index --- }
%\addcontentsline{toc}{subsection}{psb\_owned\_index }
\begin{verbatim}
call psb_owned_index(y, x, desc_a, info)
@@ -1425,8 +1410,8 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subsection*{psb\_is\_local --- }
\addcontentsline{toc}{subsection}{psb\_is\_local }
\clearpage\subsection{psb\_is\_local --- }
%\addcontentsline{toc}{subsection}{psb\_is\_local }
\begin{verbatim}
call psb_is_local(x, desc_a)
@@ -1464,8 +1449,8 @@ Intent: {\bf out}.\\
indices
\end{enumerate}
\clearpage\subsection*{psb\_local\_index --- }
\addcontentsline{toc}{subsection}{psb\_local\_index }
\clearpage\subsection{psb\_local\_index --- }
%\addcontentsline{toc}{subsection}{psb\_local\_index }
\begin{verbatim}
call psb_local_index(y, x, desc_a, info)
@@ -1520,9 +1505,9 @@ An integer value; 0 means no error has been detected.
%
%% psb_ins %%
%
\clearpage\subsection*{psb\_get\_boundary --- Extract list of boundary
\clearpage\subsection{psb\_get\_boundary --- Extract list of boundary
elements}
\addcontentsline{toc}{subsection}{psb\_get\_boundary}
%\addcontentsline{toc}{subsection}{psb\_get\_boundary}
\begin{verbatim}
call psb_get_boundary(bndel, desc, info)
@@ -1563,9 +1548,9 @@ 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
\clearpage\subsection{psb\_get\_overlap --- Extract list of overlap
elements}
\addcontentsline{toc}{subsection}{psb\_get\_overlap}
%\addcontentsline{toc}{subsection}{psb\_get\_overlap}
\begin{verbatim}
call psb_get_overlap(ovrel, desc, info)
@@ -1607,9 +1592,9 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{psb\_sp\_getrow --- Extract row(s) from a sparse
\clearpage\subsection{psb\_sp\_getrow --- Extract row(s) from a sparse
matrix}
\addcontentsline{toc}{subsection}{psb\_sp\_getrow}
%\addcontentsline{toc}{subsection}{psb\_sp\_getrow}
\begin{verbatim}
call psb_sp_getrow(row, a, nz, ia, ja, val, info, &
@@ -1701,8 +1686,8 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{psb\_sizeof --- Memory occupation}
\addcontentsline{toc}{subsection}{psb\_sizeof}
\clearpage\subsection{psb\_sizeof --- Memory occupation}
%\addcontentsline{toc}{subsection}{psb\_sizeof}
This function computes the memory occupation of a PSBLAS object.
@@ -1740,8 +1725,8 @@ Returned as: an \verb|integer(psb_long_int_k_)| number.
\end{description}
\clearpage\subsection*{Sorting utilities --- }
\addcontentsline{toc}{subsection}{Sorting utilities}
\clearpage\subsection{Sorting utilities --- }
%\addcontentsline{toc}{subsection}{Sorting utilities}
{\par\noindent\large\bfseries psb\_msort --- Sorting by the Merge-sort
algorithm}
-13
View File
@@ -8,7 +8,6 @@
bookmarksnumbered=true,
bookmarksopen=false,
plainpages=false,
pdfpagelabels,
colorlinks,
linkcolor=blue]{hyperref}
\usepackage{ifthen}
@@ -21,18 +20,6 @@
%\setboolean{mtc}{true}
\pdfoutput=0
% \relax
% \pdfcompresslevel=0 %-- 0 = none, 9 = best
% \pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari)
% /Title (Parallel Sparse BLAS V. 3.7.0)
% /Subject (Parallel Sparse Basic Linear Algebra Subroutines)
% /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners)
% /Creator (pdfLaTeX)
% /Producer ($Id: userguide.tex 1978 2007-10-19 14:51:12Z sfilippo $)
% }
% \pdfcatalog{ %-- Catalog dictionary of PDF output.
% /URI (http://ce.uniroma2.it/psblas)
% }
\newcounter{subroutine}[subsection]
\newcounter{example}[subroutine]
+6 -12
View File
@@ -9,9 +9,8 @@ module \verb|psb_util_mod|.
%\subroutine{PSB\_HBIO\_MOD}{Input/Output in Harwell-Boeing format}
\clearpage\subsection*{ hb\_read --- Read a sparse matrix from a file in the
\clearpage\subsection{ hb\_read --- Read a sparse matrix from a file in the
Harwell--Boeing format}
\addcontentsline{toc}{subsection}{hb\_read}
\begin{lstlisting}
@@ -53,9 +52,8 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{hb\_write --- Write a sparse matrix to a file
\clearpage\subsection{hb\_write --- Write a sparse matrix to a file
in the Harwell--Boeing format}
\addcontentsline{toc}{subsection}{hb\_write}
\begin{lstlisting}
@@ -107,9 +105,8 @@ An integer value; 0 means no error has been detected.
%\subroutine{PSB\_MMIO\_MOD}{Input/Output in MatrixMarket format}
\clearpage\subsection*{mm\_mat\_read --- Read a sparse matrix from a
\clearpage\subsection{mm\_mat\_read --- Read a sparse matrix from a
file in the MatrixMarket format}
\addcontentsline{toc}{subsection}{mm\_mat\_read}
\begin{lstlisting}
call mm_mat_read(a, iret, iunit, filename)
@@ -139,9 +136,8 @@ An integer value; 0 means no error has been detected.
\end{description}
\clearpage\subsection*{mm\_array\_read --- Read a dense array from a
\clearpage\subsection{mm\_array\_read --- Read a dense array from a
file in the MatrixMarket format}
\addcontentsline{toc}{subsection}{mm\_array\_read}
\begin{lstlisting}
call mm_array_read(b, iret, iunit, filename)
@@ -174,9 +170,8 @@ An integer value; 0 means no error has been detected.
\clearpage\subsection*{mm\_mat\_write --- Write a sparse matrix to a
\clearpage\subsection{mm\_mat\_write --- Write a sparse matrix to a
file in the MatrixMarket format}
\addcontentsline{toc}{subsection}{mm\_mat\_write}
\begin{lstlisting}
@@ -210,9 +205,8 @@ An integer value; 0 means no error has been detected.
\end{description}
\clearpage\subsection*{mm\_array\_write --- Write a dense array from a
\clearpage\subsection{mm\_array\_write --- Write a dense array from a
file in the MatrixMarket format}
\addcontentsline{toc}{subsection}{mm\_array\_write}
\begin{lstlisting}
call mm_array_write(b, iret, iunit, filename)