mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-24 14:51:49 +00:00
psblas3:
Fixes to user's guide.
This commit is contained in:
@@ -49,7 +49,7 @@ call psb_halo(x, desc_a, info, alpha, work, data)
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array with the TARGET attribute
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90halo}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
@@ -67,8 +67,7 @@ Specified as: a number of the data type indicated in Table~\ref{tab:f90halo}.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one array of the same type of $x$ with the
|
||||
POINTER attribute.
|
||||
Specified as: a rank one array of the same type of $x$.
|
||||
\item[data] index list selector.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional} \\
|
||||
@@ -209,7 +208,7 @@ call psb_ovrl(x, desc_a, info, update=update_type, work=work)
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90ovrl}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
|
||||
+38
-30
@@ -14,17 +14,22 @@ the module \verb|psb_base_mod|; this will have to be included by every
|
||||
user subroutine that makes use of the library. The preconditioners are
|
||||
defined in the module \verb|psb_prec_mod|
|
||||
|
||||
Real and complex data types are parametrized with a kind type defined
|
||||
in the library as follows:
|
||||
Integer, real and complex data types are parametrized with a kind type
|
||||
defined in the library as follows:
|
||||
\begin{description}
|
||||
\item[psb\_spk\_] Kind parameter for short precision real and complex
|
||||
data; corresponds to a \verb|REAL| declaration and is
|
||||
normally 4 bytes.
|
||||
normally 4 bytes;
|
||||
\item[psb\_dpk\_] Kind parameter for long precision real and complex
|
||||
data; corresponds to a \verb|DOUBLE PRECISION| declaration and is
|
||||
normally 8 bytes.
|
||||
\item[psb\_long\_int\_k\_] Kind parameter for long integers, used by
|
||||
the \verb|psb_sizeof| utility.
|
||||
normally 8 bytes;
|
||||
\item[psb\_ipk\_] Kind parameter for integer data;
|
||||
with default build options this is a 4 bytes integer, but there is
|
||||
(highly) experimental support for 8-bytes integers;
|
||||
\item[psb\_mpik\_] Kind parameter for 4-bytes integer data, as is
|
||||
always used by MPI;
|
||||
\item[psb\_long\_int\_k\_] Kind parameter for long (8 bytes) integers,
|
||||
which are always used by the \verb|sizeof| methods.
|
||||
\end{description}
|
||||
Together with the classes attributes we also discuss their
|
||||
methods. Most methods detailed here only act on the local variable,
|
||||
@@ -184,7 +189,7 @@ nr = desc%get_local_rows()
|
||||
Scope: {\bf local}.\\
|
||||
% Type: {\bf required}.\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \descdata.
|
||||
% Specified as: a object of type \descdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -210,7 +215,7 @@ nc = desc%get_local_cols()
|
||||
Scope: {\bf local}.\\
|
||||
% Type: {\bf required}.\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \descdata.
|
||||
% Specified as: a object of type \descdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -237,7 +242,7 @@ nr = desc%get_global_rows()
|
||||
Scope: {\bf local}.\\
|
||||
% Type: {\bf required}.\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \descdata.
|
||||
% Specified as: a object of type \descdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -260,7 +265,7 @@ nr = desc%get_global_cols()
|
||||
Scope: {\bf local}.\\
|
||||
% Type: {\bf required}.\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \descdata.
|
||||
% Specified as: a object of type \descdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -282,7 +287,7 @@ ictxt = desc%get_context()
|
||||
Scope: {\bf local}.\\
|
||||
% Type: {\bf required}.\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \descdata.
|
||||
% Specified as: a object of type \descdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -365,7 +370,7 @@ processes.
|
||||
|
||||
\subsection{Sparse Matrix class}
|
||||
\label{sec:spmat}
|
||||
The \hypertarget{spdata}{{\tt psb\_spmat\_type}} class
|
||||
The \hypertarget{spdata}{{\tt psb\_Tspmat\_type}} class
|
||||
contains all information about the local portion of the sparse matrix and
|
||||
its storage mode. Its design is
|
||||
based on the STATE design pattern~\cite{DesignPatterns} as detailed
|
||||
@@ -378,7 +383,8 @@ data type and precision variants
|
||||
\item[C] Single precision complex;
|
||||
\item[Z] Double precision complex.
|
||||
\end{description}
|
||||
The actual data is contained in the polymorphic component \verb|a%a|; its
|
||||
The actual data is contained in the polymorphic component \verb|a%a|
|
||||
of type \hypertarget{spbasedata}{{\tt psb\_T\_base\_sparse\_mat}}; its
|
||||
specific layout can be chosen dynamically among the predefined types,
|
||||
or an entirely new storage layout can be implemented and passed to the
|
||||
library at runtime via the \verb|psb_spasb| routine.
|
||||
@@ -442,7 +448,7 @@ nr = a%get_nrows()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -465,7 +471,7 @@ nc = a%get_ncols()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -489,7 +495,7 @@ nz = a%get_nnzeros()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -519,7 +525,7 @@ maxnz = a%get_size()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -543,7 +549,7 @@ memory_size = a%sizeof()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -566,7 +572,7 @@ write(*,*) a%get_fmt()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -592,7 +598,7 @@ if (a%is_asb()) then
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -621,8 +627,8 @@ Scope: {\bf local}\\
|
||||
|
||||
|
||||
\subsection{Dense Vector Data Structure}
|
||||
\label{sec:spmat}
|
||||
The \hypertarget{vdata}{{\tt psb\_vect\_type}} data structure
|
||||
\label{sec:vecttype}
|
||||
The \hypertarget{vdata}{{\tt psb\_T\_vect\_type}} data structure
|
||||
encapsulates the dense vectors in a way similar to sparse matrices.
|
||||
The user will not, in general, access the vector components directly,
|
||||
but rather via the routines of sec.~\ref{sec:toolsrout}. Among other
|
||||
@@ -640,10 +646,12 @@ data type and precision variants
|
||||
\item[C] Single precision complex;
|
||||
\item[Z] Double precision complex.
|
||||
\end{description}
|
||||
The actual data is contained in the polymorphic component \verb|a%a|; its
|
||||
specific layout can be chosen dynamically among the predefined types,
|
||||
or an entirely new storage layout can be implemented and passed to the
|
||||
library at runtime via the \verb|psb_spasb| routine.
|
||||
The actual data is contained in the polymorphic component \verb|v%v|;
|
||||
the separation between the application and the actual data is
|
||||
essential for cases where it is necessary to link to data storage made
|
||||
available elsewhere outside the direct control of the
|
||||
compiler/application, e.g. data stored in a graphics accelerator's
|
||||
private memory.
|
||||
\begin{figure}[h!]
|
||||
\begin{Sbox}
|
||||
\begin{minipage}[tl]{0.85\textwidth}
|
||||
@@ -665,7 +673,7 @@ library at runtime via the \verb|psb_spasb| routine.
|
||||
\end{center}
|
||||
\caption{\label{fig:vectype}
|
||||
The PSBLAS defined data type that
|
||||
contains a dense vector..}
|
||||
contains a dense vector.}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{Methods}
|
||||
@@ -683,7 +691,7 @@ nr = v%get_nrows()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -709,7 +717,7 @@ memory_size = v%sizeof()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -732,7 +740,7 @@ extv = v%get_vect()
|
||||
Scope: {\bf local}\\
|
||||
% Type: {\bf required}\\
|
||||
% Intent: {\bf in}.\\
|
||||
% Specified as: a structured data of type \spdata.
|
||||
% Specified as: a object of type \spdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
|
||||
+55
-57
@@ -52,7 +52,7 @@ $x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type
|
||||
specified in Table~\ref{tab:f90axpby}. The rank of $x$ must be the same of $y$.
|
||||
\item[beta] the scalar $\beta$.\\
|
||||
@@ -65,13 +65,13 @@ $y$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
Specified as: a rank one or two array or an object of type \vdata\ containing numbers of the type
|
||||
indicated in Table~\ref{tab:f90axpby}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
%% \item[n] number of columns in dense submatrices $x$ and $y$.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}; can only be present if $x$ and $y$ are of rank 2.\\
|
||||
@@ -98,7 +98,7 @@ Specified as: a structured data of type \descdata.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
Specified as: a rank one or two array or an object of type \vdata\ containing numbers of the type
|
||||
indicated in Table~\ref{tab:f90axpby}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
@@ -160,7 +160,7 @@ $x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90dot}. The rank of $x$ must be the same of $y$.
|
||||
\item[y] the local portion of global dense matrix
|
||||
@@ -170,14 +170,14 @@ $y$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90dot}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
%% \item[jx] the column index of global dense matrix $x$,
|
||||
%% identifying the column of subvector $x$.\\
|
||||
%% Scope: {\bf global} \\
|
||||
@@ -244,7 +244,7 @@ $x$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90mdot}. The rank of $x$ must be the same of $y$.
|
||||
\item[y] the local portion of global dense matrix
|
||||
@@ -252,14 +252,14 @@ $y$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90mdot}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
\item[\bf On Return]
|
||||
\item[res] is the dot product of subvectors $x$ and $y$.\\
|
||||
Scope: {\bf global} \\
|
||||
@@ -288,7 +288,7 @@ This function computes
|
||||
If $x$ is a real vector
|
||||
it computes infinity norm as:
|
||||
\[ amax \leftarrow \max_i |x_i|\]
|
||||
else if $x$ is a complex vector then it computes infinity-norm as:
|
||||
else if $x$ is a complex vector then it computes the infinity-norm as:
|
||||
\[ amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}\]
|
||||
%% where:
|
||||
%% \begin{description}
|
||||
@@ -327,14 +327,14 @@ $x$. %% This function computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90amax}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
%% \item[jx] the column index of global dense matrix $x$,
|
||||
%% identifying the column of subvector $x$.\\
|
||||
%% Scope: {\bf global} \\
|
||||
@@ -393,14 +393,14 @@ $x$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90mamax}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
\item[\bf On Return]
|
||||
\item[res] is the infinity norm of the columns of $x$.\\
|
||||
Scope: {\bf global} \\
|
||||
@@ -427,7 +427,7 @@ This function computes the 1-norm of a vector $x$.\\
|
||||
If $x$ is a real vector
|
||||
it computes 1-norm as:
|
||||
\[ asum \leftarrow \|x_i\|\]
|
||||
else if $x$ is a vector then it computes 1-norm as:
|
||||
else if $x$ is a complex vector then it computes 1-norm as:
|
||||
\[ asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1\]
|
||||
|
||||
|
||||
@@ -461,14 +461,14 @@ $x$. %% This function computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90asum}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[Function value] is the 1-norm of vector $x$.\\
|
||||
@@ -526,14 +526,14 @@ $x$. %% This function computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90asums}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[res] contains the 1-norm of (the columns of) $x$.\\
|
||||
@@ -560,10 +560,10 @@ An integer value; 0 means no error has been detected.
|
||||
\addcontentsline{toc}{subsection}{psb\_geasums}
|
||||
|
||||
This function computes the 2-norm of a vector $x$.\\
|
||||
If $x$ is a double precision real vector
|
||||
If $x$ is a real vector
|
||||
it computes 2-norm as:
|
||||
\[ nrm2 \leftarrow \sqrt{x^T x}\]
|
||||
else if $x$ is double precision complex vector then it computes 2-norm as:
|
||||
else if $x$ is a complex vector then it computes 2-norm as:
|
||||
\[ nrm2 \leftarrow \sqrt{x^H x}\]
|
||||
%% where:
|
||||
%% \begin{description}
|
||||
@@ -601,14 +601,14 @@ $x$.%% This function computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90nrm2}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
%% \item[jx] the column index of global dense matrix $x$,
|
||||
%% identifying the column of subvector $x$.\\
|
||||
%% Scope: {\bf global} \\
|
||||
@@ -668,14 +668,14 @@ $x$. %% This function computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90nrm2s}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[res] contains the 1-norm of (the columns of) $x$.\\
|
||||
@@ -737,12 +737,12 @@ $A$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
Specified as: an object of type \spdata.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
\item[\bf On Return]
|
||||
\item[Function value] is the infinity-norm of sparse submatrix $A$.\\
|
||||
Scope: {\bf global} \\
|
||||
@@ -768,24 +768,23 @@ An integer value; 0 means no error has been detected.
|
||||
This subroutine computes the Sparse Matrix by Dense Matrix Product:
|
||||
|
||||
\begin{equation}
|
||||
y \leftarrow \alpha P_r A P_c x + \beta y
|
||||
y \leftarrow \alpha A x + \beta y
|
||||
\label{eq:f90spmm_no_tra}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
y \leftarrow \alpha P_r A^T P_c x + \beta y
|
||||
y \leftarrow \alpha A^T x + \beta y
|
||||
\label{eq:f90spmm_tra}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
y \leftarrow \alpha P_r A^H P_c x + \beta y
|
||||
y \leftarrow \alpha A^H x + \beta y
|
||||
\label{eq:f90spmm_con}
|
||||
\end{equation}
|
||||
|
||||
where:
|
||||
\begin{description}
|
||||
\item[$x$] is the global dense submatrix $x_{:, :}$
|
||||
\item[$y$] is the global dense submatrix $y_{:, :}$
|
||||
\item[$A$] is the global sparse submatrix $A$
|
||||
\item[$P_r, P_c$] are the permutation matrices.
|
||||
\item[$x$] is the global dense matrix $x_{:, :}$
|
||||
\item[$y$] is the global dense matrix $y_{:, :}$
|
||||
\item[$A$] is the global sparse matrix $A$
|
||||
\end{description}
|
||||
|
||||
\begin{table}[h]
|
||||
@@ -824,7 +823,7 @@ $A$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
Specified as: an object of type \spdata.
|
||||
\item[x] the local portion of global dense matrix
|
||||
$x$. %% This subroutine computes the location of the first element of
|
||||
%% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ .
|
||||
@@ -832,7 +831,7 @@ $x$. %% This subroutine computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spmm}. The rank of $x$ must be the same of $y$.
|
||||
\item[beta] the scalar $\beta$.\\
|
||||
@@ -847,15 +846,15 @@ $y$. %% This subroutine computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spmm}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[trans] indicate what kind of operation to perform.
|
||||
Specified as: an object of type \descdata.
|
||||
\item[trans] indicates what kind of operation to perform.
|
||||
\begin{description}
|
||||
\item[trans = N] the operation is specified by equation \ref{eq:f90spmm_no_tra}
|
||||
\item[trans = T] the operation is specified by equation
|
||||
@@ -894,7 +893,7 @@ Specified as: a rank one array of the same type of $x$ and $y$ with
|
||||
the TARGET attribute.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[y] the local portion of result submatrix $y$.\\
|
||||
\item[y] the local portion of result matrix $y$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
@@ -921,25 +920,24 @@ An integer value; 0 means no error has been detected.
|
||||
This subroutine computes the Triangular System Solve:
|
||||
|
||||
\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha P_r T^{-1} P_c x + \beta y\\
|
||||
y &\leftarrow& \alpha D P_r T^{-1} P_c x + \beta y\\
|
||||
y &\leftarrow& \alpha P_r T^{-1} P_c D x + \beta y\\
|
||||
y &\leftarrow& \alpha P_r T^{-T} P_c x + \beta y\\
|
||||
y &\leftarrow& \alpha D P_r T^{-T} P_c x + \beta y\\
|
||||
y &\leftarrow& \alpha P_r T^{-T} P_c D x + \beta y\\
|
||||
y &\leftarrow& \alpha P_r T^{-H} P_c x + \beta y\\
|
||||
y &\leftarrow& \alpha D P_r T^{-H} P_c x + \beta y\\
|
||||
y &\leftarrow& \alpha P_r T^{-H} P_c D x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-1} D x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-T} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-T} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-T} D x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-H} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-H} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-H} D x + \beta y\\
|
||||
\end{eqnarray*}
|
||||
|
||||
|
||||
where:
|
||||
\begin{description}
|
||||
\item[$x$] is the global dense submatrix $x_{:, :}$
|
||||
\item[$y$] is the global dense submatrix $y_{:, :}$
|
||||
\item[$x$] is the global dense matrix $x_{:, :}$
|
||||
\item[$y$] is the global dense matrix $y_{:, :}$
|
||||
\item[$T$] is the global sparse block triangular submatrix $T$
|
||||
\item[$D$] is the scaling diagonal matrix.
|
||||
\item[$P_r, P_c$] are the permutation matrices.
|
||||
\end{description}
|
||||
|
||||
\begin{verbatim}
|
||||
@@ -980,7 +978,7 @@ $T$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data type specified in
|
||||
Specified as: an object type specified in
|
||||
\S~\ref{sec:datastruct}.
|
||||
\item[x] the local portion of global dense matrix
|
||||
$x$. %% This subroutine computes the location of the first element of
|
||||
@@ -989,7 +987,7 @@ $x$. %% This subroutine computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spsm}. The rank of $x$ must be the same of $y$.
|
||||
\item[beta] the scalar $\beta$.\\
|
||||
@@ -1004,14 +1002,14 @@ $y$. %% This subroutine computes the location of the first element of
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array
|
||||
Specified as: a rank one or two array or an object of type \vdata\
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spsm}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
Specified as: an object of type \descdata.
|
||||
\item[trans] specify with {\em unitd} the operation to perform.
|
||||
\begin{description}
|
||||
\item[trans = 'N'] the operation is with no transposed matrix
|
||||
|
||||
@@ -641,7 +641,7 @@ An integer value; 0 means no error has been detected.
|
||||
\addcontentsline{toc}{subsection}{psb\_spasb}
|
||||
|
||||
\begin{verbatim}
|
||||
call psb_spasb(a, desc_a, info, afmt, upd, dupl)
|
||||
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
|
||||
\end{verbatim}
|
||||
|
||||
\begin{description}
|
||||
@@ -653,7 +653,7 @@ Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[afmt] the storage format for the sparse matrix.\\
|
||||
Scope: {\bf global}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of characters. Defalt: 'CSR'.
|
||||
@@ -668,6 +668,11 @@ Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: integer, possible values: \verb|psb_dupl_ovwrt_|,
|
||||
\verb|psb_dupl_add_|, \verb|psb_dupl_err_|.
|
||||
\item[mold] The desired dynamic type for the internal matrix storage.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an object of a class derived from \spbasedata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
@@ -696,6 +701,8 @@ An integer value; 0 means no error has been detected.
|
||||
calls to \verb|psb_spins| to update the matrix must be arranged in
|
||||
such a way as to produce exactly the same sequence of coefficient
|
||||
values as encountered at the first assembly;
|
||||
\item The output storage format need not be the same on all
|
||||
processes;
|
||||
\item On exit from this routine the matrix is in the assembled state,
|
||||
and thus is suitable for the computational routines.
|
||||
\end{enumerate}
|
||||
|
||||
@@ -73,7 +73,9 @@
|
||||
|
||||
\newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_prec\_type}}}
|
||||
\newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}}
|
||||
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_spmat\_type}}}
|
||||
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_Tspmat\_type}}}
|
||||
\newcommand{\vdata}{\hyperlink{vdata}{{\tt psb\_T\_vect\_type}}}
|
||||
\newcommand{\spbasedata}{\hypertarget{spbasedata}{{\tt psb\_T\_base\_sparse\_mat}}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
@@ -72,8 +72,9 @@
|
||||
|
||||
\newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_prec\_type}}}
|
||||
\newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}}
|
||||
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_spmat\_type}}}
|
||||
|
||||
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_Tspmat\_type}}}
|
||||
\newcommand{\vdata}{\hyperlink{vdata}{{\tt psb\_T\_vect\_type}}}
|
||||
\newcommand{\spbasedata}{\hypertarget{spbasedata}{{\tt psb\_T\_base\_sparse\_mat}}}
|
||||
\begin{document}
|
||||
{\LARGE\bfseries PSBLAS\\[.8ex] User's and Reference
|
||||
Guide}\\[\baselineskip]
|
||||
|
||||
Reference in New Issue
Block a user