nag_sparse_nsym_matvec (f11xac) computes a matrix-vector or transposed matrix-vector product involving a real sparse nonsymmetric matrix stored in coordinate storage format.
nag_sparse_nsym_matvec (f11xac) computes either the matrix-vector product
, or the transposed matrix-vector product
, according to the value of the argument
trans, where
is an
by
sparse nonsymmetric 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 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_nsym_matvec (f11xac) will be to compute the matrix-vector product required in the application of
nag_sparse_nsym_basic_solver (f11bec) to sparse linear systems. An illustration of this usage appears in
Section 9 in nag_sparse_nsym_precon_ssor_solve (f11ddc).
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_nsym_sort (f11zac) 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_nsym_matvec (f11xac) is proportional to
nnz.
It is expected that a common use of nag_sparse_nsym_matvec (f11xac) will be to compute the matrix-vector product required in the application of
nag_sparse_nsym_basic_solver (f11bec) to sparse linear systems. In this situation nag_sparse_nsym_matvec (f11xac) 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.