nag_sparse_sym_matvec (f11xec) computes a matrix-vector product involving a real sparse symmetric matrix stored in symmetric coordinate storage format.
nag_sparse_sym_matvec (f11xec) computes the matrix-vector product
where
is an
by
symmetric sparse matrix, of arbitrary sparsity pattern, stored in symmetric coordinate storage (SCS) format (see
Section 2.1.2 in the f11 Chapter Introduction). The array
a stores all nonzero elements in the lower triangular part of
, while arrays
irow and
icol store the corresponding row and column indices respectively.
It is envisaged that a common use of nag_sparse_sym_matvec (f11xec) will be to compute the matrix-vector product required in the application of
nag_sparse_sym_basic_solver (f11gec) to sparse symmetric linear systems. An illustration of this usage appears in
nag_sparse_sym_precon_ssor_solve (f11jdc).
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_SCS
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_sym_sort (f11zbc) to reorder and sum or remove duplicates.
The computed vector
satisfies the error bound
where
is a modest linear function of
, and
is the
machine precision.
The time taken for a call to nag_sparse_sym_matvec (f11xec) is proportional to
nnz.
It is expected that a common use of nag_sparse_sym_matvec (f11xec) will be to compute the matrix-vector product required in the application of
nag_sparse_sym_basic_solver (f11gec) to sparse symmetric linear systems. In this situation nag_sparse_sym_matvec (f11xec) 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.