Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?gelqt3
?gelqt3 recursively computes a LQ factorization of a general real or complex M-by-N matrix A , using the compact WY representation of Q .
Syntax
call sgelqt3(m, n, a, lda, t, ldt, info)
call dgelqt3(m, n, a, lda, t, ldt, info)
call cgelqt3(m, n, a, lda, t, ldt, info)
call zgelqt3(m, n, a, lda, t, ldt, info)
Description
?gelqt3 recursively computes a LQ factorization of a real or complex m -by- n matrix A , using the compact WY representation of Q . Based on the algorithm of Elmroth and Gustavson [Elmroth00].
The matrix V stores the elementary reflectors H(i) in the i -th row above the diagonal. For example, if m =5 and n =3, the matrix V is
V = ( 1 v 1 v 1 v 1 v 1 ) ( 1 v 2 v 2 v 2 ) ( 1 v 3 v 3 )
where the vi s represent the vectors which define H(i), which are returned in the array a . The 1 elements along the diagonal of V are not stored in a . The block reflector H is then given by
H = I - V * T * VT for real matrices, or
H = I - V * T * VH for complex 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.
- a
-
REAL for sgelqt3 DOUBLE PRECISION for dgelqt3 COMPLEX for cgelqt3 COMPLEX*16 for zgelqt3 Array of size ( lda , n ). On entry, the real or complex m -by- n matrix A .
lda
INTEGER . The leading dimension of the array a . lda ≥ max(1, m ).
ldt
INTEGER . The leading dimension of the array t . ldt ≥ max(1, n ).
Output Parameters
- a
-
On exit, the elements on and below the diagonal contain the n -by- n lower triangular matrix L ; the elements above the diagonal are the rows of V . See Description for further details.
- t
-
REAL for sgelqt3 DOUBLE PRECISION for dgelqt3 COMPLEX for cgelqt3 COMPLEX*16 for zgelqt3 Array of size ( ldt , n ). The n -by- n upper triangular factor of the block reflector. The elements on and above the diagonal contain the block reflector T ; the elements below the diagonal are not used. See Description for further details.
info
INTEGER .
info = 0: successful exit.
info < 0: if info = - i , the i -th argument had an illegal value.