psb_spmm -- Sparse Matrix by Dense Matrix Product

This subroutine computes the Sparse Matrix by Dense Matrix Product:


\begin{displaymath}
y \leftarrow \alpha A x + \beta y
\end{displaymath} (1)


\begin{displaymath}
y \leftarrow \alpha A^T x + \beta y
\end{displaymath} (2)


\begin{displaymath}
y \leftarrow \alpha A^H x + \beta y
\end{displaymath} (3)

where:

$x$
is the global dense matrix $x_{:, :}$
$y$
is the global dense matrix $y_{:, :}$
$A$
is the global sparse matrix $A$


Table 12: Data types
$A$, $x$, $y$, $\alpha$, $\beta$ Subroutine
Short Precision Real psb_spmm
Long Precision Real psb_spmm
Short Precision Complex psb_spmm
Long Precision Complex psb_spmm


call psb_spmm(alpha, a, x, beta, y, desc_a, info)
call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
             & trans, work)

Type:
Synchronous.
On Entry
alpha
the scalar $\alpha$.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 12.
a
the local portion of the sparse matrix $A$.
Scope: local
Type: required
Intent: in.
Specified as: an object of type spdatapsb_Tspmat_type.
x
the local portion of global dense matrix $x$.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 12. The rank of $x$ must be the same of $y$.
beta
the scalar $\beta$.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 12.
y
the local portion of global dense matrix $y$.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of type specified in Table 12. The rank of $y$ must be the same of $x$.
desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
trans
indicates what kind of operation to perform.
trans = N
the operation is specified by equation 1
trans = T
the operation is specified by equation 2
trans = C
the operation is specified by equation 3
Scope: global
Type: optional
Intent: in.
Default: $trans = N$
Specified as: a character variable.

work
work array.
Scope: local
Type: optional
Intent: inout.
Specified as: a rank one array of the same type of $x$ and $y$ with the TARGET attribute.

On Return
y
the local portion of result matrix $y$.
Scope: local
Type: required
Intent: inout.
Specified as: an array of rank one or two containing numbers of type specified in Table 12.
info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.