Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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 A 1 are m -by - m upper triangular matrices.
Input Parameters
- m
-
INTEGER. The number of rows in the matrix A. The value of m must be at least zero.
- n
-
INTEGER. The number of columns in the matrix A. The value of n must be at least zero.
- l
-
INTEGER . The number of columns of the matrix A containing the meaningful part of the Householder vectors. n-m≥l≥ 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
where for real flavors
and for complex flavors
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 \(A\) 2.
The scalar tau is returned in the k- th element of tau and the vector u(k) in the k- th row of \(A\) 2, 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 \(A\) 1.
\(Z\) is given by
\(Z = Z(1) Z(2) \cdots Z(m)\) .