{S,D}SYMV (uplo, n, alpha, a, lda, x, incx, beta, y, incy) {C,Z}HEMV (uplo, n, alpha, a, lda, x, incx, beta, y, incy)
uplo character*1 On entry, specifies whether the upper- or lower- triangular part of the array A is referenced: If uplo = 'U' or 'u', the upper-triangular part of A is referenced. If uplo = 'L' or 'l', the lower-triangular part of A is referenced. On exit, uplo is unchanged. n integer*4 On entry, the order of the matrix A; n >= 0. On exit, n is unchanged. alpha real*4 | real*8 | complex*8 | complex*16 On entry, the scalar alpha*. On exit, alpha is unchanged. a real*4 | real*8 | complex*8 | complex*16 On entry, a two-dimensional array with dimensions lda by n. When uplo specifies the upper portion of the matrix, the leading n by n part of the array contains the upper-triangular part of the matrix, and the lower-triangular part of array A is not referenced. When uplo specifies the lower portion of the matrix, the leading n by n part of the array contains the lower-triangular part of the matrix, and the upper-triangular part of array A is not referenced. For CHEMV and ZHEMV routines, the imaginary parts of the diagonal elements are not accessed, need not be set, and are assumed to be zero. On exit, a is unchanged. lda integer*4 On entry, the first dimension of array A; lda >= MAX(1,n). On exit, lda is unchanged. x real*4 | real*8 | complex*8 | complex*16 On entry, a one-dimensional array X of length at least (1+(n-1)*|incx|). Array X contains the vector x. On exit, x is unchanged. incx integer*4 On entry, the increment for the elements of X; incx must not equal zero. On exit, incx is unchanged. beta real*4 | real*8 | complex*8 | complex*16 On entry, the scalar beta. On exit, beta is unchanged. y real*4 | real*8 | complex*8 | complex*16 On entry, a one-dimensional array Y of length at least (1+(n-1)*|incy|). If beta= 0, y need not be set. If betais not equal to zero, the incremented array Y must contain the vector y. On exit, y is overwritten by the updated vector y. incy integer*4 On entry, the increment for the elements of Y; incy must not equal zero. On exit, incy is unchanged.
SSYMV and DSYMV compute a matrix-vector product for a real symmetric matrix. CHEMV and ZHEMV compute a matrix-vector product for a complex Hermitian matrix. Both products are described by the following operation: y = alpha*Ax + beta*y alpha and beta are scalars, x and y are vectors with n elements, and A is an n by n matrix. In the case of SSYMV and DSYMV, matrix A is a symmetric matrix and in the case of CHEMV and ZHEMV, matrix A is a Hermitian matrix.
REAL*8 A(100,40), X(40), Y(40), alpha, beta N = 40 INCX = 1 INCY = 1 alpha = 1.0D0 beta = 0.0D0 LDA = 100 CALL DSYMV('U',N,alpha,A,LDA,X,INCX,beta,Y,INCY) This FORTRAN code computes the product y = Ax where A is a symmetric matrix, of order 40, with its upper-triangular part stored. COMPLEX*8 A(100,40), X(40), Y(40), alpha, beta N = 40 INCX = 1 INCY = 1 alpha = (1.0, 0.5) beta = (0.0, 0.0) LDA = 100 CALL CHEMV('U',N,alpha,A,LDA,X,INCX,beta,Y,INCY) This FORTRAN code computes the product y = Ax where A is a Hermitian matrix, of order 40, with its upper-triangular part stored.