(C|Z)UNGHR
==========
Single complex and double complex UNGHR.

Description
-----------
Generates a unitary matrix given a set of elementary reflectors
and scale factors.

.. math::

    Q = H_{ILO} \mult H_{ILO+1} \mult \dots \mult H_{IHI-1}

The elementary reflectors and scale factors are expected in the same
form as generated by :doc:`GEHRD<gehrd>`.


LAPACK Interface
----------------
.. code-block:: c

    void cunghr(const qml_long *N, const qml_long *ILO, const qml_long *IHI,
        qml_single_complex *A, const qml_long *LDA, qml_single_complex *TAU,
        qml_single_complex *WORK, const qml_long *LWORK, qml_long *INFO);
    
    void zunghr(const qml_long *N, const qml_long *ILO, const qml_long *IHI,
        qml_double_complex *A, const qml_long *LDA, qml_double_complex *TAU,
        qml_double_complex *WORK, const qml_long *LWORK, qml_long *INFO);


Arguments
---------
======   =====================================================================
N        Number of rows and columns of A
ILO      Lower index
IHI      Upper index, 1 <= ILO <= IHI <= N
A        Elementary reflector vectors, overwritten with Q on exit
LDA      Leading dimension of A
TAU      Array 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
======   =====================================================================
