CUPGTR(3f)

NAME
CUPGTR - a complex unitary matrix Q which is defined as the product of n-1 elementary reflectors H(i) of order n, as returned by CHPTRD using packed storage

SYNOPSIS

SUBROUTINE CUPGTR(
    UPLO, N, AP, TAU, Q, LDQ, WORK, INFO )

CHARACTER
    UPLO

INTEGER
    INFO, LDQ, N

COMPLEX
    AP( * ), Q( LDQ, * ), TAU( * ), WORK( * )

PURPOSE
CUPGTR generates a complex unitary matrix Q which is defined as the product of n-1 elementary reflectors H(i) of order n, as returned by CHPTRD using packed storage: if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),
if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).

ARGUMENTS

UPLO    (input) CHARACTER*1
    = 'U': Upper triangular packed storage used in previous call to CHPTRD; = 'L': Lower triangular packed storage used in previous call to CHPTRD.

N       (input) INTEGER
    The order of the matrix Q. N >= 0.

AP      (input) COMPLEX array, dimension (N*(N+1)/2)
    The vectors which define the elementary reflectors, as returned by CHPTRD.

TAU     (input) COMPLEX array, dimension (N-1)
    TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CHPTRD.

Q       (output) COMPLEX array, dimension (LDQ,N)
    The N-by-N unitary matrix Q.

LDQ     (input) INTEGER
    The leading dimension of the array Q. LDQ >= max(1,N).

WORK    (workspace) COMPLEX array, dimension (N-1)

INFO    (output) INTEGER
    = 0: successful exit
    < 0: if INFO = -i, the i-th argument had an illegal value