F06PAF (DGEMV) (PDF version)
F06 Chapter Contents
F06 Chapter Introduction
NAG Library Manual

NAG Library Routine Document

F06PAF (DGEMV)

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

+ Contents

    1  Purpose
    7  Accuracy
    9  Example

1  Purpose

F06PAF (DGEMV) computes the matrix-vector product for a real general matrix or its transpose.

2  Specification

SUBROUTINE F06PAF ( TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
INTEGER  M, N, LDA, INCX, INCY
REAL (KIND=nag_wp)  ALPHA, A(LDA,*), X(*), BETA, Y(*)
CHARACTER(1)  TRANS
The routine may be called by its BLAS name dgemv.

3  Description

F06PAF (DGEMV) performs one of the matrix-vector operations
yαAx + βy ,   or   yαATx + βy ,
where A is an m by n real matrix, x and y are real vectors, and α and β are real scalars.
If m=0 or n=0, no operation is performed.

4  References

None.

5  Parameters

1:     TRANS – CHARACTER(1)Input
On entry: specifies the operation to be performed.
TRANS='N'
yαAx+βy.
TRANS='T' or 'C'
yαATx+βy.
Constraint: TRANS='N', 'T' or 'C'.
2:     M – INTEGERInput
On entry: m, the number of rows of the matrix A.
Constraint: M0.
3:     N – INTEGERInput
On entry: n, the number of columns of the matrix A.
Constraint: N0.
4:     ALPHA – REAL (KIND=nag_wp)Input
On entry: the scalar α.
5:     A(LDA,*) – REAL (KIND=nag_wp) arrayInput
Note: the second dimension of the array A must be at least N.
On entry: the m by n matrix A.
6:     LDA – INTEGERInput
On entry: the first dimension of the array A as declared in the (sub)program from which F06PAF (DGEMV) is called.
Constraint: LDA max1,M .
7:     X(*) – REAL (KIND=nag_wp) arrayInput
Note: the dimension of the array X must be at least max1, 1+ N-1 ×INCX if TRANS='N' and at least max1, 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 X1+i-1×INCX, for i=1,2,,N;
  • if INCX<0, xi must be stored in X1-N-i×INCX, for i=1,2,,N.
If TRANS='T' or 'C',
  • if INCX>0, xi must be stored in X1+i-1×INCX, for i=1,2,,M;
  • if INCX<0, xi must be stored in X1-M-i×INCX, for i=1,2,,M.
8:     INCX – INTEGERInput
On entry: the increment in the subscripts of X between successive elements of x.
Constraint: INCX0.
9:     BETA – REAL (KIND=nag_wp)Input
On entry: the scalar β.
10:   Y(*) – REAL (KIND=nag_wp) arrayInput/Output
Note: the dimension of the array Y must be at least max1,1+M-1 ×INCY if TRANS='N' and at least max1,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 Y1+i-1×INCY, for i=1,2,,M;
  • if INCY<0, yi must be stored in Y1-M-i×INCY, for i=1,2,,M.
If TRANS='T' or 'C',
  • if INCY>0, yi must be stored in Y1+i-1×INCY, for i=1,2,,N;
  • if INCY<0, yi must be stored in Y1-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 – INTEGERInput
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  Further Comments

None.

9  Example

None.

F06PAF (DGEMV) (PDF version)
F06 Chapter Contents
F06 Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012