?ROTG_
List
srotg_ | 単精度実 数で与えられた点に対してy座標をゼロにするGivens回転を求める |
drotg_ | 倍精度実 数で与えられた点に対してy座標をゼロにするGivens回転を求める |
crotg_ | 単精度複素数で与えられた点に対してy座標をゼロにするGivens回転を求める |
zrotg_ | 倍精度複素数で与えられた点に対してy座標をゼロにするGivens回転を求める |
概略
点P(a,b)を与えます。 この点をGivens回転させ、y座標をゼロにするようなパラメータa,b,c,sを計算させます。QR分解などに応用が可能です。このとき返ってくるc,sを?rot_に与えると、求めた回転が実行されます計算式
c * a + s * b = r-s * a + c * b = 0
r = ||(a,b)||
c^2 + s^2 = 1
z=s if |a| > |b|
z=1/c if |a| <= |b| and c != 0 and r != 0
を満たすr,z,c,sを求めます。
ただし、r=0になる場合はz = 0, c = 1,s = 0が返ってきます。
また、c=0になる場合で、|a| <= |b| and c != 0 and r != 0 の場合は、z=1 が返ってきます
プロトタイプ宣言
void srotg_(float *a,float *b, float *c, float *s);void drotg_(double *a,double *b, double *c, double *s);
void crotg_(complex *a,complex *b, float *c, float *s);
void zrotg_(doublecomplex *a,doublecomplex *b, double *c, double *s);
引数/戻り値
変数名 | 型 | 概要 |
a | double* | Pのx座標 : 求めたrの値が格納され返ってくる |
b | double* | Pのy座標 : 求めたzの値が格納され返ってくる |
c | double* | 求めたcの値が格納される |
s | double* | 求めたsの値が格納される |
戻り値 | void |