(C|Z)UNGQR

Single complex and double complex UNGQR.

Description

Generates an orthonormal matrix given a set of elementary reflectors and scale factors.

Q = H_1 \mult H_2 \mult \dots \mult H_K

The elementary reflectors and scale factors are expected in the same form as generated by GEQRF.

H_i = I - \tau_i \mult v_i \mult \herm{v_i}

LAPACK Interface

void cungqr(const qml_long *M, const qml_long *N, const qml_long *K,
    qml_single_complex *A, const qml_long *LDA, qml_single_complex *TAU,
    qml_single_complex *WORK, const qml_long *LWORK, qml_long *INFO);

void zungqr(const qml_long *M, const qml_long *N, const qml_long *K,
    qml_double_complex *A, const qml_long *LDA, qml_double_complex *TAU,
    qml_double_complex *WORK, const qml_long *LWORK, qml_long *INFO);

Arguments

M Number of rows of Q
N Number of columns of Q (M >= N)
K Number of elementary reflectors (N >= K)
A Matrix of size M x N containing reflectors in columns, overwritten on exit with Q
LDA Leading dimension of A
TAU Vector of scale factors for reflectors
WORK Work space of size at least LWORK
LWORK Size of work space (-1 to query)
INFO 0 on success