This manual relates to an old release of the Library.
The documentation for the current release is also available on this site.

NAG FL Interface
f06saf (zgemv)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

f06saf computes the matrix-vector product for a complex general matrix, its transpose or its conjugate transpose.

2 Specification

Fortran Interface
Subroutine f06saf ( trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
Integer, Intent (In) :: m, n, lda, incx, incy
Complex (Kind=nag_wp), Intent (In) :: alpha, a(lda,*), x(*), beta
Complex (Kind=nag_wp), Intent (Inout) :: y(*)
Character (1), Intent (In) :: trans
C Header Interface
#include <nag.h>
void  f06saf_ (const char *trans, const Integer *m, const Integer *n, const Complex *alpha, const Complex a[], const Integer *lda, const Complex x[], const Integer *incx, const Complex *beta, Complex y[], const Integer *incy, const Charlen length_trans)
The routine may be called by the names f06saf, nagf_blas_zgemv or its BLAS name zgemv.

3 Description

f06saf performs one of the matrix-vector operations
yαAx + βy ,   yαATx + βy   or   yαAHx + βy ,  
where A is an m×n complex matrix, x and y are complex vectors, and α and β are complex scalars.
If m=0 or n=0, no operation is performed.

4 References

None.

5 Arguments

1: trans Character(1) Input
On entry: specifies the operation to be performed.
trans='N'
yαAx+βy.
trans='T'
yαATx+βy.
trans='C'
yαAHx+βy.
Constraint: trans='N', 'T' or 'C'.
2: m Integer Input
On entry: m, the number of rows of the matrix A.
Constraint: m0.
3: n Integer Input
On entry: n, the number of columns of the matrix A.
Constraint: n0.
4: alpha Complex (Kind=nag_wp) Input
On entry: the scalar α.
5: a(lda,*) Complex (Kind=nag_wp) array Input
Note: the second dimension of the array a must be at least n.
On entry: the m×n matrix A.
6: lda Integer Input
On entry: the first dimension of the array a as declared in the (sub)program from which f06saf is called.
Constraint: lda max(1,m) .
7: x(*) Complex (Kind=nag_wp) array Input
Note: the dimension of the array x must be at least max(1, 1+ (n-1) ×|incx| ) if trans='N' and at least max(1, 1+ (m-1) ×|incx| ) if trans='T' or 'C'.
On entry: the vector x.
If trans='N',
  • if incx>0, xi must be stored in x(1+(i-1)×incx) , for i=1,2,,n;
  • if incx<0, xi must be stored in x(1-(n-i)×incx) , for i=1,2,,n.
If trans='T' or 'C',
  • if incx>0, xi must be stored in x(1+(i-1)×incx) , for i=1,2,,m;
  • if incx<0, xi must be stored in x(1-(m-i)×incx) , for i=1,2,,m.
8: incx Integer Input
On entry: the increment in the subscripts of x between successive elements of x.
Constraint: incx0.
9: beta Complex (Kind=nag_wp) Input
On entry: the scalar β.
10: y(*) Complex (Kind=nag_wp) array Input/Output
Note: the dimension of the array y must be at least max(1,1+(m-1) ×|incy|) if trans='N' and at least max(1,1+(n-1) ×|incy|) if trans='T' or 'C'.
On entry: the vector y, if beta=0.0, y need not be set.
If trans='N',
  • if incy>0, yi must be stored in y(1+(i-1)×incy) , for i=1,2,,m;
  • if incy<0, yi must be stored in y(1-(m-i)×incy) , for i=1,2,,m.
If trans='T' or 'C',
  • if incy>0, yi must be stored in y(1+(i-1)×incy) , for i=1,2,,n;
  • if incy<0, yi must be stored in y(1-(n-i)×incy) , for i=1,2,,n.
On exit: the updated vector y stored in the array elements used to supply the original vector y.
11: incy Integer Input
On entry: the increment in the subscripts of y between successive elements of y.
Constraint: incy0.

6 Error Indicators and Warnings

None.

7 Accuracy

Not applicable.

8 Parallelism and Performance

f06saf is not threaded in any implementation.

9 Further Comments

None.

10 Example

None.