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

?larf

Applies an elementary reflector to a general rectangular matrix.

Syntax

call slarf( side, m, n, v, incv, tau, c, ldc, work )

call dlarf( side, m, n, v, incv, tau, c, ldc, work )

call clarf( side, m, n, v, incv, tau, c, ldc, work )

call zlarf( side, m, n, v, incv, tau, c, ldc, work )

Include Files

  • mkl.fi

Description

The routine applies a real/complex elementary reflector H to a real/complex m-by-n matrix C, from either the left or the right. H is represented in one of the following forms:

  • H = I - tau*v*vT

    where tau is a real scalar and v is a real vector.

    If tau = 0, then H is taken to be the unit matrix.

  • H = I - tau*v*vH

    where tau is a complex scalar and v is a complex vector.

    If tau = 0, then H is taken to be the unit matrix. For clarf/zlarf, to apply HH (the conjugate transpose of H), supply conjg(tau) instead of tau.

Input Parameters

side

CHARACTER*1.

If side = 'L': form H*C

If side = 'R': form C*H.

m

INTEGER. The number of rows of the matrix C.

n

INTEGER. The number of columns of the matrix C.

v

REAL for slarf

DOUBLE PRECISION for dlarf

COMPLEX for clarf

DOUBLE COMPLEX for zlarf

Array, DIMENSION

(1 + (m-1)*abs(incv)) if side = 'L' or

(1 + (n-1)*abs(incv)) if side = 'R'. The vector v in the representation of H. v is not used if tau = 0.

incv

INTEGER. The increment between elements of v.

incv 0.

tau

REAL for slarf

DOUBLE PRECISION for dlarf

COMPLEX for clarf

DOUBLE COMPLEX for zlarf

The value tau in the representation of H.

c

REAL for slarf

DOUBLE PRECISION for dlarf

COMPLEX for clarf

DOUBLE COMPLEX for zlarf

Array, DIMENSION (ldc,n).

On entry, the m-by-n matrix C.

ldc

INTEGER. The leading dimension of the array c.

ldc max(1,m).

work

REAL for slarf

DOUBLE PRECISION for dlarf

COMPLEX for clarf

DOUBLE COMPLEX for zlarf

Workspace array, DIMENSION

(n) if side = 'L' or

(m) if side = 'R'.

Output Parameters

c

On exit, C is overwritten by the matrix H*C if side = 'L', or C*H if side = 'R'.