mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-14 09:59:06 +00:00
Merge branch 'merge-paraggr' into merge-paraggr-newops
# Conflicts: # docs/html/index.html # docs/html/userhtml.css # docs/html/userhtml.html # docs/psblas-3.7.pdf # docs/src/psbrout.tex
This commit is contained in:
+22
-9
@@ -113,6 +113,7 @@ DATE = $(shell date +%Y-%m-%d)
|
||||
#
|
||||
LATEX = latex
|
||||
LTX2HTML = latex2html -local_icons
|
||||
LTX2HTML = htlatex
|
||||
PDFLATEX = pdflatex
|
||||
ACRO = evince
|
||||
XPDF = xpdf
|
||||
@@ -138,11 +139,12 @@ PDF = $(join $(BASEFILE),.pdf)
|
||||
PS = $(join $(BASEFILE),.ps)
|
||||
GXS = $(join $(BASEFILE),.gxs)
|
||||
GLX = $(join $(BASEFILE),.glx)
|
||||
TARGETPDF= ../psblas-3.6.pdf
|
||||
TARGETPDF= ../psblas-3.7.pdf
|
||||
BASEHTML = $(patsubst %.tex,%,$(HTMLFILE))
|
||||
HTML = $(join $(HTMLFILE),.html)
|
||||
HTML = $(join $(BASEHTML),.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 $(HTML) ../$(HTMLDIR)/index.html)
|
||||
endef
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
+6
-10
@@ -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.
|
||||
|
||||
+127
-66
@@ -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])
|
||||
@@ -306,13 +301,12 @@ Type: {\bf optional}; default: \verb|.true.|.\\
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[Function value] The global indices, returned as an allocatable
|
||||
integer array of rank 1.
|
||||
integer array of kind \verb|psb_lpk_| and rank 1.
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\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)
|
||||
@@ -369,7 +361,7 @@ call desc%cnv(mold)
|
||||
\item[\bf On Entry]
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope: {\bf local}.\\
|
||||
\item[mold] the desred integer storage format.\\
|
||||
\item[mold] the desired integer storage format.\\
|
||||
Scope: {\bf local}.\\
|
||||
% Type: {\bf required}.\\
|
||||
% Intent: {\bf in}.\\
|
||||
@@ -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)
|
||||
@@ -421,6 +412,76 @@ has no effect on communication descriptors that have already been
|
||||
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}
|
||||
|
||||
\begin{verbatim}
|
||||
list = desc%get_p_adjcncy()
|
||||
\end{verbatim}
|
||||
|
||||
\begin{description}
|
||||
\item[Type:] Asynchronous.
|
||||
\item[\bf On Return]
|
||||
\item[Function value] The current list of adjacent processes,
|
||||
i.e. processes with which the current one has to exchange halo
|
||||
data.
|
||||
|
||||
\end{description}
|
||||
|
||||
\subsubsection{set\_p\_adjcncy --- Set process adjacency list}
|
||||
%\addcontentsline{toc}{paragraph}{set\_p\_adjcncy}
|
||||
|
||||
\begin{verbatim}
|
||||
call desc%set_p_adjcncy(list)
|
||||
\end{verbatim}
|
||||
|
||||
\begin{description}
|
||||
\item[Type:] Asynchronous.
|
||||
\item[\bf On Entry]
|
||||
\item[list] the list of adjacent processes.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a one-dimensional array of integers of kind \verb|psb_ipk_|.
|
||||
\end{description}
|
||||
Note: this method can be called after a call to \verb|psb_cdall| and
|
||||
before a call to \verb|psb_cdasb|. The user is specifying here some
|
||||
knowledge about which processes are topological neighbours of the
|
||||
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}
|
||||
|
||||
\begin{verbatim}
|
||||
call desc%fnd_owner(idx,iprc,info)
|
||||
\end{verbatim}
|
||||
|
||||
\begin{description}
|
||||
\item[Type:] Synchronous.
|
||||
\item[\bf On Entry]
|
||||
\item[idx] the list of global indices for which we need the owning processes.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a one-dimensional array of integers of kind \verb|psb_lpk_|.
|
||||
\item[\bf On Return]
|
||||
\item[iprc] the list of processes owning the indices in \verb|idx|.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an allocatable one-dimensional array of integers of kind \verb|psb_ipk_|.
|
||||
\end{description}
|
||||
Note: this method may or may not actually require communications, depending on
|
||||
the exact internal data storage; given that the choice of storage may
|
||||
be altered by runtime parameters, it is necessary for safety that this
|
||||
method is called by all processes.
|
||||
|
||||
|
||||
|
||||
|
||||
\subsubsection{Named Constants}
|
||||
\label{sec:cd_constants}
|
||||
\begin{description}
|
||||
@@ -521,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()
|
||||
@@ -544,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()
|
||||
@@ -568,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()
|
||||
@@ -598,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()
|
||||
@@ -622,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()
|
||||
@@ -646,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()
|
||||
@@ -670,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
|
||||
@@ -695,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
|
||||
@@ -725,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])
|
||||
@@ -758,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])
|
||||
@@ -786,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}
|
||||
@@ -810,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}
|
||||
@@ -832,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}
|
||||
@@ -854,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])
|
||||
@@ -888,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])
|
||||
@@ -925,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}
|
||||
@@ -945,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)
|
||||
@@ -1042,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()
|
||||
@@ -1065,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()
|
||||
@@ -1089,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])
|
||||
@@ -1127,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])
|
||||
@@ -1157,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
@@ -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
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
+30
-40
@@ -1,10 +1,10 @@
|
||||
|
||||
|
||||
\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)
|
||||
@@ -61,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)
|
||||
@@ -109,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)
|
||||
@@ -153,14 +151,13 @@ Specified as: a logical variable, default value: true.
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\clearpage\subsection*{psb\_get\_mpicomm --- Get the MPI communicator}
|
||||
\addcontentsline{toc}{subsection}{psb\_get\_mpicomm}
|
||||
\clearpage\subsection{psb\_get\_mpi\_comm --- Get the MPI communicator}
|
||||
|
||||
\begin{verbatim}
|
||||
call psb_get_mpicomm(icontxt, icomm)
|
||||
icomm = psb_get_mpi_comm(icontxt)
|
||||
\end{verbatim}
|
||||
|
||||
This subroutine returns the MPI communicator associated with a PSBLAS context
|
||||
This function returns the MPI communicator associated with a PSBLAS context
|
||||
\begin{description}
|
||||
\item[Type:] Asynchronous.
|
||||
\item[\bf On Entry ]
|
||||
@@ -174,21 +171,23 @@ Specified as: an integer variable.
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[icomm] The MPI communicator associated with the PSBLAS virtual parallel machine.\\
|
||||
\item[Function value] The MPI communicator associated with the PSBLAS virtual parallel machine.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
\end{description}
|
||||
|
||||
{\par\noindent\large\bfseries Notes}
|
||||
The subroutine version \verb|psb_get_mpicomm| is still available but
|
||||
is deprecated.
|
||||
|
||||
\clearpage\subsection*{psb\_get\_rank --- Get the MPI rank}
|
||||
\addcontentsline{toc}{subsection}{psb\_get\_rank}
|
||||
\clearpage\subsection{psb\_get\_mpi\_rank --- Get the MPI rank}
|
||||
|
||||
\begin{verbatim}
|
||||
call psb_get_rank(rank, icontxt, id)
|
||||
rank = psb_get_mpi_rank(icontxt, id)
|
||||
\end{verbatim}
|
||||
|
||||
This subroutine returns the MPI rank of the PSBLAS process $id$
|
||||
This function returns the MPI rank of the PSBLAS process $id$
|
||||
\begin{description}
|
||||
\item[Type:] Asynchronous.
|
||||
\item[\bf On Entry ]
|
||||
@@ -207,17 +206,19 @@ Specified as: an integer value. $0 \le id \le np-1$\
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[rank] The MPI rank associated with the PSBLAS process $id$.\\
|
||||
\item[Funciton value] The MPI rank associated with the PSBLAS process $id$.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
\end{description}
|
||||
|
||||
{\par\noindent\large\bfseries Notes}
|
||||
The subroutine version \verb|psb_get_rank| is still available but is
|
||||
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()
|
||||
@@ -233,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)
|
||||
@@ -255,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)
|
||||
@@ -278,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)
|
||||
@@ -324,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)
|
||||
@@ -379,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)
|
||||
@@ -433,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)
|
||||
@@ -487,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)
|
||||
@@ -541,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)
|
||||
@@ -595,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)
|
||||
@@ -656,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)
|
||||
@@ -708,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
@@ -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)
|
||||
|
||||
+16
-32
@@ -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:
|
||||
|
||||
@@ -1251,8 +1238,7 @@ An integer value; 0 means no error has been detected.
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
\clearpage\subsection*{psb\_gemlt --- Entrywise Product}
|
||||
\addcontentsline{toc}{subsection}{psb\_gemlt}
|
||||
\clearpage\subsection{psb\_gemlt --- Entrywise Product}
|
||||
|
||||
This function computes the entrywise product between two vectors $x$ and
|
||||
$y$
|
||||
@@ -1320,8 +1306,7 @@ psb_gemlt(x, y, desc_a, info)
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
\clearpage\subsection*{psb\_gediv --- Entrywise Division}
|
||||
\addcontentsline{toc}{subsection}{psb\_gediv}
|
||||
\clearpage\subsection{psb\_gediv --- Entrywise Division}
|
||||
|
||||
This function computes the entrywise division between two vectors $x$ and
|
||||
$y$
|
||||
@@ -1394,8 +1379,7 @@ psb_gediv(x, y, desc_a, info, [flag)
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
\clearpage\subsection*{psb\_geinv --- Entrywise Inversion}
|
||||
\addcontentsline{toc}{subsection}{psb\_geinv}
|
||||
\clearpage\subsection{psb\_geinv --- Entrywise Inversion}
|
||||
|
||||
This function computes the entrywise inverse of a vector $x$ and puts it into
|
||||
$y$
|
||||
|
||||
+58
-66
@@ -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])
|
||||
@@ -334,14 +331,20 @@ An integer value; 0 means no error has been detected.
|
||||
\item On exit from this routine the descriptor is in the assembled
|
||||
state.
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
This call will set up all the necessary information for the halo data
|
||||
exchanges. In doing so, the library will need to identify the set of
|
||||
processes owning the halo indices through the use of the
|
||||
\verb|desc%fnd_owner()| method; the owning processes are the
|
||||
topological neighbours of the calling process. If the user has some
|
||||
background information on the processes that are neighbours of the
|
||||
current one, it is possible to specify explicitly the list of adjacent
|
||||
processes with a call to \verb|desc%set_p_adjcncy(list)|; this will
|
||||
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)
|
||||
@@ -376,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)
|
||||
@@ -407,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)
|
||||
@@ -477,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}
|
||||
|
||||
@@ -514,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}
|
||||
|
||||
@@ -544,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)
|
||||
@@ -596,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])
|
||||
@@ -723,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)
|
||||
@@ -798,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}
|
||||
|
||||
@@ -833,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)
|
||||
@@ -870,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)
|
||||
@@ -914,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}
|
||||
|
||||
@@ -929,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}
|
||||
|
||||
@@ -961,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)
|
||||
@@ -1009,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])
|
||||
@@ -1082,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)
|
||||
@@ -1122,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)
|
||||
@@ -1160,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)
|
||||
@@ -1201,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)
|
||||
@@ -1269,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)
|
||||
@@ -1326,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)
|
||||
@@ -1366,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)
|
||||
@@ -1418,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)
|
||||
@@ -1457,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)
|
||||
@@ -1513,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)
|
||||
@@ -1556,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)
|
||||
@@ -1600,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, &
|
||||
@@ -1694,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.
|
||||
|
||||
@@ -1733,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}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
\relax
|
||||
\pdfcompresslevel=0 %-- 0 = none, 9 = best
|
||||
\pdfinfo{ %-- Info dictionary of PDF output /Author (Alfredo Buttari)
|
||||
/Title (Parallel Sparse BLAS V. 3.6.0)
|
||||
/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)
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
\begin{document}
|
||||
|
||||
\pdfbookmark{PSBLAS-v3.6.0 User's Guide}{title}
|
||||
\pdfbookmark{PSBLAS-v3.7.0 User's Guide}{title}
|
||||
\lstset{language=Fortran}
|
||||
\newlength{\centeroffset}
|
||||
\setlength{\centeroffset}{-0.5\oddsidemargin}
|
||||
@@ -98,7 +98,7 @@
|
||||
\vspace*{\stretch{1}}
|
||||
\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth}
|
||||
\flushright
|
||||
{\Huge\bfseries PSBLAS 3.6.0 User's guide
|
||||
{\Huge\bfseries PSBLAS 3.7.0 User's guide
|
||||
}
|
||||
\noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex]
|
||||
\hfill\emph{\Large A reference guide for the Parallel Sparse BLAS library}
|
||||
@@ -110,7 +110,7 @@
|
||||
{\bfseries
|
||||
by Salvatore Filippone\\
|
||||
and Alfredo Buttari}\\
|
||||
Dec 1st, 2018
|
||||
Jan 7th, 2020
|
||||
\end{minipage}}
|
||||
|
||||
%\addtolength{\textwidth}{\centeroffset}
|
||||
|
||||
+2
-15
@@ -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.6.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]
|
||||
@@ -93,9 +80,9 @@
|
||||
Alfredo Buttari } \\
|
||||
%\\[10ex]
|
||||
%\today
|
||||
Software version: 3.6.0\\
|
||||
Software version: 3.7.0\\
|
||||
%\today
|
||||
Dec 1st, 2018
|
||||
Jan 7th, 2020
|
||||
\cleardoublepage
|
||||
\begingroup
|
||||
\renewcommand*{\thepage}{toc}
|
||||
|
||||
+6
-12
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user