# ungl2 - Man Page

{un,or}gl2: generate explicit Q, level 2, step in unglq

## Synopsis

### Functions

subroutine **cungl2** (m, n, k, a, lda, tau, work, info)**CUNGL2** generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm).

subroutine **dorgl2** (m, n, k, a, lda, tau, work, info)**DORGL2**

subroutine **sorgl2** (m, n, k, a, lda, tau, work, info)**SORGL2**

subroutine **zungl2** (m, n, k, a, lda, tau, work, info)**ZUNGL2** generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm).

## Detailed Description

## Function Documentation

### subroutine cungl2 (integer m, integer n, integer k, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex, dimension( * ) work, integer info)

**CUNGL2** generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm).

**Purpose:**

CUNGL2 generates an m-by-n 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 . . . H(2)**H H(1)**H as returned by CGELQF.

**Parameters***M*M is INTEGER The number of rows of the matrix Q. M >= 0.

*N*N is INTEGER The number of columns of the matrix Q. N >= M.

*K*K is INTEGER The number of elementary reflectors whose product defines the matrix Q. M >= K >= 0.

*A*A is COMPLEX 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 CGELQF in the first k rows of its array argument A. On exit, the m by n matrix Q.

*LDA*LDA is INTEGER The first dimension of the array A. LDA >= max(1,M).

*TAU*TAU is COMPLEX array, dimension (K) TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CGELQF.

*WORK*WORK is COMPLEX array, dimension (M)

*INFO*INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument has an illegal value

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **112** of file **cungl2.f**.

### subroutine dorgl2 (integer m, integer n, integer k, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer info)

**DORGL2**

**Purpose:**

DORGL2 generates an m by n real 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) as returned by DGELQF.

**Parameters***M*M is INTEGER The number of rows of the matrix Q. M >= 0.

*N*N is INTEGER The number of columns of the matrix Q. N >= M.

*K*K is INTEGER The number of elementary reflectors whose product defines the matrix Q. M >= K >= 0.

*A*A is DOUBLE PRECISION 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 DGELQF in the first k rows of its array argument A. On exit, the m-by-n matrix Q.

*LDA*LDA is INTEGER The first dimension of the array A. LDA >= max(1,M).

*TAU*TAU is DOUBLE PRECISION array, dimension (K) TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by DGELQF.

*WORK*WORK is DOUBLE PRECISION array, dimension (M)

*INFO*INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument has an illegal value

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **112** of file **dorgl2.f**.

### subroutine sorgl2 (integer m, integer n, integer k, real, dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real, dimension( * ) work, integer info)

**SORGL2**

**Purpose:**

SORGL2 generates an m by n real 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) as returned by SGELQF.

**Parameters***M*M is INTEGER The number of rows of the matrix Q. M >= 0.

*N*N is INTEGER The number of columns of the matrix Q. N >= M.

*K*K is INTEGER The number of elementary reflectors whose product defines the matrix Q. M >= K >= 0.

*A*A is REAL 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 SGELQF in the first k rows of its array argument A. On exit, the m-by-n matrix Q.

*LDA*LDA is INTEGER The first dimension of the array A. LDA >= max(1,M).

*TAU*TAU is REAL array, dimension (K) TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SGELQF.

*WORK*WORK is REAL array, dimension (M)

*INFO*INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument has an illegal value

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **112** of file **sorgl2.f**.

### subroutine zungl2 (integer m, integer n, integer k, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * ) work, integer info)

**ZUNGL2** generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm).

**Purpose:**

ZUNGL2 generates an m-by-n 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 . . . H(2)**H H(1)**H as returned by ZGELQF.

**Parameters***M*M is INTEGER The number of rows of the matrix Q. M >= 0.

*N*N is INTEGER The number of columns of the matrix Q. N >= M.

*K*K is INTEGER The number of elementary reflectors whose product defines the matrix Q. M >= K >= 0.

*A*A is COMPLEX*16 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 ZGELQF in the first k rows of its array argument A. On exit, the m by n matrix Q.

*LDA*LDA is INTEGER The first dimension of the array A. LDA >= max(1,M).

*TAU*TAU is COMPLEX*16 array, dimension (K) TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by ZGELQF.

*WORK*WORK is COMPLEX*16 array, dimension (M)

*INFO*INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument has an illegal value

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **112** of file **zungl2.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.