(S|D)ROTMG¶
Single and double ROTMG.
Description¶
Generate a single modified plane rotation.
![H *
\left[
\begin{array}{c}
\sqrt{D_1}\mult X_1 \\
\sqrt{D_2}\mult Y_1
\end{array}
\right]
=
\left[
\begin{array}{c}
R \\
0
\end{array}
\right]](../../_images/math/21193b6d8a9ba83c96efee39b5ada04f09fdb10f.png)
The form of the generated rotation matrix H will depend on FLAG which is the first element of the PARAM input array.
![\fvar{PARAM} =
\left[
\begin{array}{c}
\fvar{FLAG} \\
\fvar{H11} \\
\fvar{H21} \\
\fvar{H12} \\
\fvar{H22}
\end{array}
\right]](../../_images/math/03438f91e7799b5c497fee9acb474375bf3babea.png)
If
:
![H =
\left[
\begin{array}{ll}
\fvar{H11} & \fvar{H12} \\
\fvar{H21} & \fvar{H22} \\
\end{array}
\right]](../../_images/math/94142020e5de34fbb25eb4fe274c41de7297ec35.png)
If
:
![H =
\left[
\begin{array}{ll}
1 & \fvar{H12} \\
\fvar{H21} & 1 \\
\end{array}
\right]](../../_images/math/bf1552b8d4b5ae21434004da663f4042fe24af14.png)
If
:
![H =
\left[
\begin{array}{ll}
\fvar{H11} & 1 \\
-1 & \fvar{H22} \\
\end{array}
\right]](../../_images/math/f9c2d455bced60729d900e343ea6c5ad312195e5.png)
If
:
![H =
\left[
\begin{array}{ll}
1 & 0 \\
0 & 1 \\
\end{array}
\right]](../../_images/math/d1723f9bad9c93aa9343af8e2d0b1149b9b7ec99.png)
BLAS Interface¶
void srotmg(float *D1, float *D2, float *X1, const float *Y1, float *PARAM);
void drotmg(double *D1, double *D2, double *X1, const double *Y1,
double *PARAM);
CBLAS Interface¶
void cblas_srotmg(float *D1, float *D2, float *X1, const float Y1,
float *PARAM);
void cblas_drotmg(double *D1, double *D2, double *X1, const double Y1,
double *PARAM);
Arguments¶
| D1 | First scaling factor |
| D2 | Second scaling factor |
| X1 | First component of vector to rotate |
| Y1 | Second component of vector to rotate |
| PARAM | Rotation parameter array of length 5 |