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

Background information to multithreading can be found in the Multithreading documentation.
f06saf is not threaded in any implementation.

9 Further Comments

None.

10 Example

None.