?larz

Applies an elementary reflector (as returned by ?tzrzf) to a general matrix.

Syntax

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

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

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

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

Include Files

The FORTRAN 77 interfaces are specified in the mkl_lapack.fi include file (to be used in Fortran programs) and in the mkl_lapack.h include file (to be used in C programs).

Description

The routine ?larz 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 the form

H = I-tau*v*v',

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

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

For complex flavors, to apply HH (the conjugate transpose of H), supply conjg(tau) instead of tau.

H is a product of k elementary reflectors as returned by ?tzrzf.

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.

l

INTEGER. The number of entries of the vector v containing the meaningful part of the Householder vectors.

If side = 'L', m L 0,

if side = 'R', n L 0.

v

REAL for slarz

DOUBLE PRECISION for dlarz

COMPLEX for clarz

COMPLEX*16 for zlarz

Array, DIMENSION (1+(l-1)*abs(incv)).

The vector v in the representation of H as returned by ?tzrzf.

v is not used if tau = 0.

incv

INTEGER. The increment between elements of v.

incv 0.

tau

REAL for slarz

DOUBLE PRECISION for dlarz

COMPLEX for clarz

COMPLEX*16 for zlarz

The value tau in the representation of H.

c

REAL for slarz

DOUBLE PRECISION for dlarz

COMPLEX for clarz

COMPLEX*16 for zlarz

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 slarz

DOUBLE PRECISION for dlarz

COMPLEX for clarz

COMPLEX*16 for zlarz

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'.


Submit feedback on this help topic

Copyright © 1994 - 2010, Intel Corporation. All rights reserved.