Intel® oneAPI Math Kernel Library Developer Reference - Fortran
Computes the QL factorization of a general rectangular matrix using an unblocked algorithm.
call sgeql2( m, n, a, lda, tau, work, info )
call dgeql2( m, n, a, lda, tau, work, info )
call cgeql2( m, n, a, lda, tau, work, info )
call zgeql2( m, n, a, lda, tau, work, info )
The routine computes a QL factorization of a real/complex m-by-n matrix A as A = Q*L.
The routine does not form the matrix Q explicitly. Instead, Q is represented as a product of min(m, n) elementary reflectors :
Q = H(k)* ... *H(2)*H(1), where k = min(m, n).
Each H(i) has the form
H(i) = I - tau*v*vT for real flavors, or
H(i) = I - tau*v*vH for complex flavors
where tau is a real/complex scalar stored in tau(i), and v is a real/complex vector with v(m-k+i+1:m) = 0 and v(m-k+i) = 1.
On exit, v(1:m-k+i-1) is stored in a(1:m-k+i-1, n-k+i).
INTEGER. The number of rows in the matrix A (m≥ 0).
INTEGER. The number of columns in A (n≥ 0).
REAL for sgeql2
DOUBLE PRECISION for dgeql2
COMPLEX for cgeql2
DOUBLE COMPLEX for zgeql2.
Arrays:
a(lda,*) contains the m-by-n matrix A.
The second dimension of a must be at least max(1, n).
work(m) is a workspace array.
INTEGER. The leading dimension of a; at least max(1, m).
Overwritten by the factorization data as follows:
on exit, if m≥n, the lower triangle of the subarray a(m-n+1:m, 1:n) contains the n-by-n lower triangular matrix L; if m < n, the elements on and below the (n-m)th superdiagonal contain the m-by-n lower trapezoidal matrix L; the remaining elements, with the array tau, represent the orthogonal/unitary matrix Q as a product of elementary reflectors.
REAL for sgeql2
DOUBLE PRECISION for dgeql2
COMPLEX for cgeql2
DOUBLE COMPLEX for zgeql2.
Array, DIMENSION at least max(1, min(m, n)).
Contains scalar factors of the elementary reflectors.
INTEGER.
If info = 0, the execution is successful.
If info = -i, the i-th parameter had an illegal value.