Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?gem2vu

Computes two matrix-vector products using a general matrix (real data)

Syntax

call sgem2vu(m, n, alpha, a, lda, x1, incx1, x2, incx2, beta, y1, incy1, y2, incy2)

call dgem2vu(m, n, alpha, a, lda, x1, incx1, x2, incx2, beta, y1, incy1, y2, incy2)

call gem2vu(a, x1, x2, y1, y2 [,alpha][,beta] )

Include Files

  • mkl.fi, blas.f90

Description

The ?gem2vu routines perform two matrix-vector operations defined as

y1 := alpha*A*x1 + beta*y1,

and

y2 := alpha*A'*x2 + beta*y2,

where:

alpha and beta are scalars,

x1, x2, y1, and y2 are vectors,

A is an m-by-n matrix.

Input Parameters

m

INTEGER. Specifies the number of rows of the matrix A. The value of m must be at least zero.

n

INTEGER. Specifies the number of columns of the matrix A. The value of n must be at least zero.

alpha

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Specifies the scalar alpha.

a

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Array, size (lda, n). Before entry, the leading m-by-n part of the array a must contain the matrix of coefficients.

lda

INTEGER. Specifies the leading dimension of a as declared in the calling (sub)program. The value of lda must be at least max(1, m).

x1

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Array, size at least (1+(n-1)*abs(incx1)). Before entry, the incremented array x1 must contain the vector x1.

incx1

INTEGER. Specifies the increment for the elements of x1.

The value of incx1 must not be zero.

x2

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Array, size at least (1+(m-1)*abs(incx2)). Before entry, the incremented array x2 must contain the vector x2.

incx2

INTEGER. Specifies the increment for the elements of x2.

The value of incx2 must not be zero.

beta

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Specifies the scalar beta. When beta is set to zero, then y1 and y2 need not be set on input.

y1

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Array, size at least (1+(m-1)*abs(incy1)). Before entry with non-zero beta, the incremented array y1 must contain the vector y1.

incy1

INTEGER. Specifies the increment for the elements of y1.

The value of incy1 must not be zero.

y

REAL for sgem2vu

DOUBLE PRECISION for dgem2vu

Array, size at least (1+(n-1)*abs(incy2)). Before entry with non-zero beta, the incremented array y2 must contain the vector y2.

incy2

INTEGER. Specifies the increment for the elements of y2.

The value of incy2 must not be zero.

Output Parameters

y1

Updated vector y1.

y2

Updated vector y2.

BLAS 95 Interface Notes

Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or reconstructible arguments, see BLAS 95 Interface Conventions.

Specific details for the routine gem2vu interface are the following:

a

Holds the matrix A of size (m,n).

x1

Holds the vector with the number of elements rx1 where rx1 = n.

x2

Holds the vector with the number of elements rx2 where rx2 = m.

y1

Holds the vector with the number of elements ry1 where ry1 = m.

y2

Holds the vector with the number of elements ry2 where ry2 = n.

alpha

The default value is 1.

beta

The default value is 0.