?latrz

Factors an upper trapezoidal matrix by means of orthogonal/unitary transformations.

Syntax

call slatrz( m, n, l, a, lda, tau, work )

call dlatrz( m, n, l, a, lda, tau, work )

call clatrz( m, n, l, a, lda, tau, work )

call zlatrz( m, n, l, a, lda, tau, work )

Include Files

  • mkl.fi

Description

The routine ?latrz factors the m-by-(m+l) real/complex upper trapezoidal matrix

[A1 A2] = [A(1:m,1:m) A(1: m, n-l+1:n)]

as ( R 0 )* Z, by means of orthogonal/unitary transformations. Z is an (m+l)-by-(m+l) orthogonal/unitary matrix and R and A1 are m-by -m upper triangular matrices.

Input Parameters

m

INTEGER. The number of rows of the matrix A. m 0.

n

INTEGER. The number of columns of the matrix A. n 0.

l

INTEGER. The number of columns of the matrix A containing the meaningful part of the Householder vectors.

n-ml 0.

a

REAL for slatrz

DOUBLE PRECISION for dlatrz

COMPLEX for clatrz

DOUBLE COMPLEX for zlatrz.

Array, DIMENSION (lda, n).

On entry, the leading m-by-n upper trapezoidal part of the array a must contain the matrix to be factorized.

lda

INTEGER. The leading dimension of the array a. lda max(1,m).

work

REAL for slatrz

DOUBLE PRECISION for dlatrz

COMPLEX for clatrz

DOUBLE COMPLEX for zlatrz.

Workspace array, DIMENSION (m).

Output Parameters

a

On exit, the leading m-by-m upper triangular part of a contains the upper triangular matrix R, and elements n-l+1 to n of the first m rows of a, with the array tau, represent the orthogonal/unitary matrix Z as a product of m elementary reflectors.

tau

REAL for slatrz

DOUBLE PRECISION for dlatrz

COMPLEX for clatrz

DOUBLE COMPLEX for zlatrz.

Array, DIMENSION (m).

The scalar factors of the elementary reflectors.

Application Notes

The factorization is obtained by Householder's method. The k-th transformation matrix, z(k), which is used to introduce zeros into the (m - k + 1)-th row of A, is given in the form


Equation

where for real flavors


Equation

and for complex flavors


Equation

tau is a scalar and z(k) is an l-element vector. tau and z(k) are chosen to annihilate the elements of the k-th row of A2.

The scalar tau is returned in the k-th element of tau and the vector u(k) in the k-th row of A2, such that the elements of z(k) are in a(k, l+1), ..., a(k, n).

The elements of r are returned in the upper triangular part of A1.

Z is given by

Z = Z(1)*Z(2)*...*Z(m).

For more complete information about compiler optimizations, see our Optimization Notice.