(S|D)ORGQR

Single and double ORGQR.

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 sorgqr(const qml_long *M, const qml_long *N, const qml_long *K, float *A,
    const qml_long *LDA, float *TAU, float *WORK, const qml_long *LWORK,
    qml_long *INFO);

void dorgqr(const qml_long *M, const qml_long *N, const qml_long *K, double *A,
    const qml_long *LDA, double *TAU, double *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