next up previous contents
Next: Communication routines Up: Computational routines Previous: psb_spmm Sparse   Contents

psb_spsm -- Triangular System Solve

This subroutine computes the Triangular System Solve:

\begin{eqnarray*}
y &\leftarrow& \alpha P_r T^{-1} P_c x + \beta y\\
y &\leftar...
...\beta y\\
y &\leftarrow& \alpha P_r T^{-H} P_c D x + \beta y\\
\end{eqnarray*}

where:

$x$
is the global dense submatrix $x_{:, :}$
$y$
is the global dense submatrix $y_{:, :}$
$T$
is the global sparse block triangular submatrix $T$
$D$
is the scaling diagonal matrix.
$P_r, P_c$
are the permutation matrices.

call psb_spsm(alpha, t, x, beta, y, desc_a, info)
call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
             & trans, unit, choice, diag, work)


Table 12: Data types
$T$, $x$, $y$, $D$, $\alpha$, $\beta$ Subroutine
Short Precision Real psb_spsm
Long Precision Real psb_spsm
Short Precision Complex psb_spsm
Long Precision Complex psb_spsm


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.
t
the global portion of the sparse matrix $T$.
Scope: local
Type: required
Intent: in.
Specified as: a structured data type specified in § 3.
x
the local portion of global dense matrix $x$.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array 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 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: a structured data of type descdatapsb_desc_type.
trans
specify with unitd the operation to perform.
trans = 'N'
the operation is with no transposed matrix
trans = 'T'
the operation is with transposed matrix.
trans = 'C'
the operation is with conjugate transposed matrix.
Scope: global
Type: optional
Intent: in.
Default: $trans = N$
Specified as: a character variable.
unitd
specify with trans the operation to perform.
unitd = 'U'
the operation is with no scaling
unitd = 'L'
the operation is with left scaling
unitd = 'R'
the operation is with right scaling.
Scope: global
Type: optional
Intent: in.
Default: $unitd = U$
Specified as: a character variable.
choice
specifies the update of overlap elements to be performed on exit:
psb_none_
psb_sum_
psb_avg_
psb_square_root_
Scope: global
Type: optional
Intent: in.
Default: psb_avg_
Specified as: an integer variable.
diag
the diagonal scaling matrix.
Scope: local
Type: optional
Intent: in.
Default: $diag(1) = 1 (no scaling)$
Specified as: a rank one array containing numbers of the type indicated in Table 12.
work
a work array.
Scope: local
Type: optional
Intent: inout.
Specified as: a rank one array of the same type of $x$ with the TARGET attribute.

On Return
y
the local portion of global dense 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.


next up previous contents
Next: Communication routines Up: Computational routines Previous: psb_spmm Sparse   Contents