4.13 psb_spsm — Triangular System Solve

This subroutine computes the Triangular System Solve:

y  ←   αT- 1x + βy
           -1
y  ←   αDT   x +βy
y  ←   αT- 1Dx  +βy
y  ←   αT- Tx+ βy
y  ←   αDT -Tx + βy
         - T
y  ←   αT   Dx + βy
y  ←   αT- Hx +βy
y  ←   αDT -Hx + βy
y  ←   αT- HDx + βy

where:

x
is the global dense matrix x:,:
y
is the global dense matrix y:,:
T
is the global sparse block triangular submatrix T
D
is the scaling diagonal matrix.

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)




T, x, y, D, α, β Subroutine


Short Precision Real psb_spsm
Long Precision Real psb_spsm
Short Precision Complexpsb_spsm
Long Precision Complex psb_spsm



Table 13: Data types

Type:
Synchronous.
On Entry
alpha
the scalar α.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 13.
t
the global portion of the sparse matrix T.
Scope: local
Type: required
Intent: in.
Specified as: an object 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 or an object of type psb_T_vect_type containing numbers of type specified in Table 13. The rank of x must be the same of y.
beta
the scalar β.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 13.
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 psb_T_vect_type containing numbers of type specified in Table 13. 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 psb_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(noscaling)
Specified as: a rank one array containing numbers of the type indicated in Table 13.
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 13.
info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.