(S|D|C|Z)LARTG

Single, double, single complex, and double complex LARTG.

Description

Generates a plane rotation such that:

\left[
  \begin{matrix}
    \fvar{CS} & \fvar{SN} \\
    -\sconj{\fvar{SN}} & \fvar{CS} \\
  \end{matrix}
\right]
\mult
\left[
  \begin{matrix}
    \fvar{F} \\ \fvar{G}
  \end{matrix}
\right]
=
\left[
  \begin{matrix}
    \fvar{R} \\ 0
  \end{matrix}
\right]

where \fvar{CS}^2+|\fvar{SN}|^2 = 1.

LAPACK Interface

void slartg(const float *F, const float *G, float *CS, float *SN, float *R);

void dlartg(const double *F, const double *G, double *CS, double *SN, double *R);

void clartg(const qml_single_complex *F, const qml_single_complex *G,
    float *CS, qml_single_complex *SN, qml_single_complex *R);

void zlartg(const qml_double_complex *F, const qml_double_complex *G,
    double *CS, qml_double_complex *SN, qml_double_complex *R);

Arguments

F First part of vector to rotate
G Second part of vector to rotate
CS Cosine part of rotation matrix
SN Sine part of rotatione matrix
R Residual after rotation