(S|D|C|Z)LARFG

Single, double, single complex, and double complex LARFG.

Description

Generates a single elementary reflector matrix.

\herm{H} \mult
    \left[
        \begin{matrix}
            \alpha \\ x
        \end{matrix}
    \right]
=
\left[
    \begin{matrix}
        \beta \\ 0
    \end{matrix}
\right]

\herm{H} \mult H = I

The reflector matrix is represented in the form:

H = I - \tau \mult
    \left[
        \begin{matrix}
            1 \\ v
        \end{matrix}
    \right]
\mult
    \left[
        \begin{matrix}
            1 & \herm{v}
        \end{matrix}
    \right]

LAPACK Interface

void slarfg(const qml_long *N, float *ALPHA, float *X, const qml_long *INCX,
    float *TAU);

void dlarfg(const qml_long *N, double *ALPHA, double *X, const qml_long *INCX,
    double *TAU);

void clarfg(const qml_long *N, qml_single_complex *ALPHA, qml_single_complex *X,
    const qml_long *INCX, qml_single_complex *TAU);

void zlarfg(const qml_long *N, qml_double_complex *ALPHA, qml_double_complex *X,
    const qml_long *INCX, qml_double_complex *TAU);

Arguments

N Order of the elementary reflector matrix
ALPHA On entry \alpha, on exit holds \beta
X On entry the vector x, on exit the vector v
INCX The stride between elements of x
TAU On exit the value \tau