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 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-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)\) .