# ungr2 - Man Page

{un,or}gr2: step in ungrq

## Synopsis

### Functions

subroutine **cungr2** (m, n, k, a, lda, tau, work, info)**CUNGR2** generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (unblocked algorithm).

subroutine **dorgr2** (m, n, k, a, lda, tau, work, info)**DORGR2** generates all or part of the orthogonal matrix Q from an RQ factorization determined by sgerqf (unblocked algorithm).

subroutine **sorgr2** (m, n, k, a, lda, tau, work, info)**SORGR2** generates all or part of the orthogonal matrix Q from an RQ factorization determined by sgerqf (unblocked algorithm).

subroutine **zungr2** (m, n, k, a, lda, tau, work, info)**ZUNGR2** generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (unblocked algorithm).

## Detailed Description

## Function Documentation

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

**CUNGR2** generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (unblocked algorithm).

**Purpose:**

CUNGR2 generates an m by n complex matrix Q with orthonormal rows, which is defined as the last m rows of a product of k elementary reflectors of order n Q = H(1)**H H(2)**H . . . H(k)**H as returned by CGERQF.

**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 (m-k+i)-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGERQF in the last 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 CGERQF.

*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 **113** of file **cungr2.f**.

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

**DORGR2** generates all or part of the orthogonal matrix Q from an RQ factorization determined by sgerqf (unblocked algorithm).

**Purpose:**

DORGR2 generates an m by n real matrix Q with orthonormal rows, which is defined as the last m rows of a product of k elementary reflectors of order n Q = H(1) H(2) . . . H(k) as returned by DGERQF.

**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 (m-k+i)-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by DGERQF in the last 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 DGERQF.

*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 **113** of file **dorgr2.f**.

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

**SORGR2** generates all or part of the orthogonal matrix Q from an RQ factorization determined by sgerqf (unblocked algorithm).

**Purpose:**

SORGR2 generates an m by n real matrix Q with orthonormal rows, which is defined as the last m rows of a product of k elementary reflectors of order n Q = H(1) H(2) . . . H(k) as returned by SGERQF.

**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 (m-k+i)-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by SGERQF in the last 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 SGERQF.

*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 **113** of file **sorgr2.f**.

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

**ZUNGR2** generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (unblocked algorithm).

**Purpose:**

ZUNGR2 generates an m by n complex matrix Q with orthonormal rows, which is defined as the last m rows of a product of k elementary reflectors of order n Q = H(1)**H H(2)**H . . . H(k)**H as returned by ZGERQF.

**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 (m-k+i)-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by ZGERQF in the last 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 ZGERQF.

*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 **113** of file **zungr2.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.