Matrix-vector multiply

 

 

SGEMV/DGEMV/CGEMV/ZGEMV

 

y

Array containing the vector y. The number of elements

 

 

of y and the value of leny, the dimension of the array y,

 

 

depend on trans:

 

 

 

’N’ or ’n’

y has m elements

leny = (m−1)⋅incy+1

 

 

otherwise

y has n elements

leny = (n−1)⋅incy+1

 

 

Not used as input if beta = 0.

 

 

incy

Increment for the array y, incy ≠ 0:

 

 

incy > 0

y is stored forward in array y; that is,

 

 

 

yi is stored in y((i−1)⋅incy+1).

 

 

incy < 0

y is stored backward in array y; that

 

 

 

is, if trans = ’N’ or ’n’, then yi is stored

 

 

 

in y((im)⋅incy+1); otherwise, yi is

 

 

 

stored in y((in)⋅incy+1).

 

 

Use incy = 1 if the vector y is stored contiguously in

 

 

array y, that is, if yi is stored in y(i). Refer to “BLAS

 

 

Indexing Conventions” in the introduction to

 

 

Chapter 2.

 

 

Output

y

The updated y vector replaces the input.

Notes These subprograms conform to specifications of the Level 2 BLAS.

If an error in the arguments is detected, the subprograms call error handler XERBLA, which writes an error message onto the standard error file and terminates execution. The standard version of XERBLA (refer to the end of this chapter) can be replaced with a user-supplied version to change the error procedure. Error conditions are

trans ≠ ’N’ or ’n’ or ’T’ or ’t’ or ’C’ or ’c’ m < 0

n < 0

lda < max(m,1) incx = 0

incy = 0

Actual character arguments in a subroutine call can be longer than the corresponding dummy arguments. Therefore, readability of the CALL statement may be improved by coding the trans argument as ’NORMAL’ or ’NONTRANS’ for ’N’, ’TRANSPOSE’ for ’T’, or ’CTRANS’ for ’C’. Refer to “Example 2.”

Chapter 3 Basic Matrix Operations 235