Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?orgl2/?ungl2
Generates all or part of the orthogonal/unitary matrix Q from an LQ factorization determined by ?gelqf (unblocked algorithm).
Syntax
call sorgl2 ( m , n , k , a , lda , tau , work , info )
call dorgl2 ( m , n , k , a , lda , tau , work , info )
call cungl2 ( m , n , k , a , lda , tau , work , info )
call zungl2 ( m , n , k , a , lda , tau , work , info )
Include Files
mkl.fi
Description
The routine ?orgl2 / ?ungl2 generates a m -by- n real/complex matrix Q with orthonormal rows, which is defined as the first m rows of a product of k elementary reflectors of order n
Q = H(k)*...*H(2)*H(1) for real flavors, or Q = (H(k))^{H}*...*(H(2))^{H}*(H(1))^{H} for complex flavors as returned by ?gelqf .
Input Parameters
- m
-
INTEGER . The number of rows of the matrix Q . m≥ 0 .
- n
-
INTEGER . The number of columns of the matrix Q . n≥m .
- k
-
INTEGER . The number of elementary reflectors whose product defines the matrix Q . m≥k≥ 0 .
- a
-
REAL for sorgl2 DOUBLE PRECISION for dorgl2 COMPLEX for cungl2 DOUBLE COMPLEX for zungl2 . Array, DIMENSION ( lda , n ). On entry, the i -th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,..., k , as returned by ?gelqf in the first k rows of its array argument a .
- lda
-
INTEGER . The leading dimension of the array a . lda≥ max(1,m) .
- tau
-
REAL for sorgl2 DOUBLE PRECISION for dorgl2 COMPLEX for cungl2 DOUBLE COMPLEX for zungl2 . Array, DIMENSION ( k ). tau(i) must contain the scalar factor of the elementary reflector H(i), as returned by ?gelqf .
- work
-
REAL for sorgl2 DOUBLE PRECISION for dorgl2 COMPLEX for cungl2 DOUBLE COMPLEX for zungl2 . Workspace array, DIMENSION ( m ).
Output Parameters
- a
-
On exit, the m -by- n matrix Q .
info
INTEGER .
= 0: successful exit
< 0: if info = -i , the i -th argument has an illegal value.