nag_sparse_nherm_precon_ilu_solve (f11dpc) solves a system of complex linear equations involving the incomplete
preconditioning matrix generated by
nag_sparse_nherm_fac (f11dnc).
nag_sparse_nherm_precon_ilu_solve (f11dpc) solves a system of complex linear equations
according to the value of the argument
trans, where the matrix
corresponds to an incomplete
decomposition of a complex sparse matrix stored in coordinate storage (CS) format (see
Section 2.1.1 in the f11 Chapter Introduction), as generated by
nag_sparse_nherm_fac (f11dnc).
In the above decomposition
is a lower triangular sparse matrix with unit diagonal elements,
is a diagonal matrix,
is an upper triangular sparse matrix with unit diagonal elements and,
and
are permutation matrices.
,
and
are supplied to nag_sparse_nherm_precon_ilu_solve (f11dpc) through the matrix
which is an
n by
n sparse matrix, stored in CS format, as returned by
nag_sparse_nherm_fac (f11dnc). The permutation matrices
and
are returned from
nag_sparse_nherm_fac (f11dnc) via the arrays
ipivp and
ipivq.
It is envisaged that a common use of nag_sparse_nherm_precon_ilu_solve (f11dpc) will be to carry out the preconditioning step required in the application of
nag_sparse_nherm_basic_solver (f11bsc) to sparse complex linear systems. nag_sparse_nherm_precon_ilu_solve (f11dpc) is used for this purpose by the Black Box function
nag_sparse_nherm_fac_sol (f11dqc).
nag_sparse_nherm_precon_ilu_solve (f11dpc) may also be used in combination with
nag_sparse_nherm_fac (f11dnc) to solve a sparse system of complex linear equations directly (see
Section 9.5 in nag_sparse_nherm_fac (f11dnc)). This use of nag_sparse_nherm_precon_ilu_solve (f11dpc) is illustrated in
Section 10.
None.
If
the computed solution
is the exact solution of a perturbed system of equations
, where
is a modest linear function of
, and
is the
machine precision. An equivalent result holds when
.
nag_sparse_nherm_precon_ilu_solve (f11dpc) is not threaded in any implementation.
The time taken for a call to nag_sparse_nherm_precon_ilu_solve (f11dpc) is proportional to the value of
nnzc returned from
nag_sparse_nherm_fac (f11dnc).
It is expected that a common use of nag_sparse_nherm_precon_ilu_solve (f11dpc) will be to carry out the preconditioning step required in the application of
nag_sparse_nherm_basic_solver (f11bsc) to sparse complex linear systems. In this situation nag_sparse_nherm_precon_ilu_solve (f11dpc) is likely to be called many times with the same matrix
. In the interests of both reliability and efficiency, you are recommended to set
for the first of such calls, and to set
for all subsequent calls.
This example reads in a complex sparse non-Hermitian matrix
and a vector
. It then calls
nag_sparse_nherm_fac (f11dnc), with
and
, to compute the
complete
decomposition
Finally it calls nag_sparse_nherm_precon_ilu_solve (f11dpc) to solve the system