nag_sparse_nherm_matvec (f11xnc) computes a matrix-vector or conjugate transposed matrix-vector product involving a complex sparse non-Hermitian matrix stored in coordinate storage format.
nag_sparse_nherm_matvec (f11xnc) computes either the matrix-vector product
, or the conjugate transposed matrix-vector product
, according to the value of the argument
trans, where
is a complex
by
sparse non-Hermitian matrix, of arbitrary sparsity pattern. The matrix
is stored in coordinate storage (CS) format (see
Section 2.1.1 in the f11 Chapter Introduction). The array
a stores all the nonzero elements of
, while arrays
irow and
icol store the corresponding row and column indices respectively.
It is envisaged that a common use of nag_sparse_nherm_matvec (f11xnc) will be to compute the matrix-vector product required in the application of
nag_sparse_nherm_basic_solver (f11bsc) to sparse complex linear systems. This is illustrated in
Section 9 in nag_sparse_nherm_precon_ssor_solve (f11drc).
None.
- NE_BAD_PARAM
On entry, argument had an illegal value.
- NE_INT
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
On entry, and .
Constraint: .
- NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
- NE_INVALID_CS
On entry, , ,
.
Constraint: and .
On entry, , ,
.
Constraint: and .
- NE_NOT_STRICTLY_INCREASING
On entry, is out of order:
.
On entry, the location (
) is a duplicate:
. Consider calling
nag_sparse_nherm_sort (f11znc) to reorder and sum or remove duplicates.
The computed vector
satisfies the error bound:
- , if , or
- ,
if ,
where
is a modest linear function of
, and
is the
machine precision.
The time taken for a call to nag_sparse_nherm_matvec (f11xnc) is proportional to
nnz.
It is expected that a common use of nag_sparse_nherm_matvec (f11xnc) will be to compute the matrix-vector product required in the application of
nag_sparse_nherm_basic_solver (f11bsc) to sparse complex linear systems. In this situation nag_sparse_nherm_matvec (f11xnc) 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.