CXML
dapply_diag_all
Apply diagonal preconditioner for any storage scheme
(Serial and Parallel Versions)
FORMAT
DAPPLY_DIAG_ALL (p, x, y, n)
Arguments
p real*8
On entry, a one-dimensional array of length at least n
containing information for use by the polynomial
preconditioner.
On exit, p is unchanged.
x real*8
On entry, a one-dimensional array of length at least n,
containing the elements of vector x, accessed with unit
increment.
On exit, x is unchanged.
y real*8
On entry, a one-dimensional array of length at least n.
On exit, array Y is overwritten by inverse(Q) * x,
where Q is the diagonal preconditioner. The elements of
Y are accessed with unit increment.
n integer*4
On entry, the order of the matrix A.
On exit, n is unchanged.
Description
DAPPLY_DIAG_ALL applies the diagonal preconditioner for a sparse matrix
stored using any one of the three storage schemes --- symmetric diagonal,
unsymmetric diagonal, or general storage by rows. The input vector, p,
contains information for use by the routine. This vector is generated by a
call to one of the routines DCREATE_DIAG_SDIA, DCREATE_DIAG_UDIA or
DCREATE_DIAG_GENR prior to a call to one of the iterative solvers with
diagonal preconditioning.
DAPPLY_DIAG_ALL applies the diagonal preconditioner, Q, using information
stored in the vector p, to the vector x and returns the result in vector y:
y = inverse(Q) * x
This routine is available in both serial and parallel versions. The routine
names and parameter list are identical for both versions. For information
about linking to the serial or to the parallel library, refer to the CXML
Reference Manual.
CXML Home Page Index of CXML Routines