{S,D,C,Z}GEMV (trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
trans character*1 On entry, specifies the operation to be performed: If trans = 'N' or 'n', the operation is y = alpha*Ax + beta*y. If trans = 'T' or 't', the operation is y = alpha*transp(A)*x + beta*y. If trans = 'C' or 'c', the operation is y = alpha*conjug_transp(A)*x + beta*y. On exit, trans is unchanged. m integer*4 On entry, the number of rows of the matrix A; m >= 0. On exit, m is unchanged. n integer*4 On entry, the number of columns 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. The leading m by n part of the array contains the elements of the matrix A. On exit, a is unchanged. lda integer*4 On entry, the first dimension of array A; lda >= MAX(1,m). On exit, lda is unchanged. x real*4 | real*8 | complex*8 | complex*16 On entry, a one-dimensional array containing the vector x. When trans is equal to 'N' or (1+(n-1)*|incx|). Otherwise, the length is at least (1+(m-1)*|incx|). 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 containing the vector x. When trans is equal to 'N' or (1+(m-1)*|incy|). Otherwise, the length is at least (1+(n-1)*|incy|). If beta= 0, y need not be set. If beta is 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.
The _GEMV subprograms compute a matrix-vector product for either a general matrix or its transpose: y = alpha*Ax + beta*y y = alpha*transp(A)*x + beta*y In addition to these operations, the CGEMV and ZGEMV subprograms compute the matrix-vector product for the conjugate transpose: y = alpha*conjug_transp(A)*x + beta*y alphaand betaare scalars, x and y are vectors, and A is an m by n matrix.
REAL*8 A(20,20), X(20), Y(20), alpha, beta INCX = 1 INCY = 1 LDA = 20 M = 20 N = 20 alpha = 1.0D0 beta = 0.0D0 CALL DGEMV('T',M,N,alpha,A,LDA,X,INCX,beta,Y,INCY) This FORTRAN code computes the product y = transp(A)*x. COMPLEX*8 A(20,20), X(20), Y(20), alpha, beta INCX = 1 INCY = 1 LDA = 20 M = 20 N = 20 alpha = (1.0, 1.0) beta = (0.0, 0.0) CALL CGEMV('T',M,N,alpha,A,LDA,X,INCX,beta,Y,INCY) This FORTRAN code computes the product y = transp(A)*x.