# ?spmv

Computes a matrix-vector product for complex vectors using a complex symmetric packed matrix.

## Syntax

call cspmv( uplo, n, alpha, ap, x, incx, beta, y, incy )

call zspmv( uplo, n, alpha, ap, x, incx, beta, y, incy )

## Description

These routines perform a matrix-vector operation defined as

`y := alpha*a*x + beta*y`,

where:

alpha and beta are complex scalars,

x and y are n-element complex vectors

a is an n-by-n complex symmetric matrix, supplied in packed form.

These routines have their real equivalents in BLAS (see ?spmv in Chapter “BLAS and Sparse BLAS Routines”).

## Input Parameters

uplo

  CHARACTER*1. Specifies whether the upper or lower triangular part of the matrix a is supplied in the packed array ap.

  If `uplo = 'U'` or 'u', the upper triangular part of the matrix a is supplied in the array ap.

  If `uplo = 'L'` or 'l', the lower triangular part of the matrix a is supplied in the array ap .

n

  INTEGER.

  Specifies the order of the matrix a.

  The value of n must be at least zero.

alpha, beta

  COMPLEX for cspmv

  COMPLEX*16 for zspmv

  Specify complex scalars alpha and beta. When beta is supplied as zero, then y need not be set on input.

ap

  COMPLEX for cspmv

  COMPLEX*16 for zspmv

  Array, DIMENSION at least `((n*(n + 1))/2)`. Before entry, with `uplo = 'U'` or 'u', the array ap must contain the upper triangular part of the symmetric matrix packed sequentially, column-by-column, so that `ap(1)` contains `A(1, 1)`, `ap(2)` and `ap(3)` contain `A(1, 2)` and `A(2, 2)` respectively, and so on. Before entry, with `uplo = 'L'` or 'l', the array ap must contain the lower triangular part of the symmetric matrix packed sequentially, column-by-column, so that `ap(1)` contains `a(1, 1)`, `ap(2)` and `ap(3)` contain `a(2, 1)` and `a(3, 1)` respectively, and so on.

x

  COMPLEX for cspmv

  COMPLEX*16 for zspmv

  Array, DIMENSION at least `(1 + (n - 1)*abs(incx))`. Before entry, the incremented array x must contain the n-element vector x.

incx

  INTEGER. Specifies the increment for the elements of x. The value of incx must not be zero.

y

  COMPLEX for cspmv

  COMPLEX*16 for zspmv

  Array, DIMENSION at least `(1 + (n - 1)*abs(incy))`. Before entry, the incremented array y must contain the n-element vector y.

incy

  INTEGER. Specifies the increment for the elements of y. The value of incy must not be zero.

## Output Parameters

y

  Overwritten by the updated vector y.

Parent topic: Auxiliary Routines