Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?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. nm.

k

INTEGER. The number of elementary reflectors whose product defines the matrix Q. mk 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.