?ROT_

List

srot_ 単精度実 数で与えられた点に対して回転を行う
drot_ 倍精度実 数で与えられた点に対して回転を行う
csrot_単精度複素数で与えられた点に対して回転を行う
zdrot_倍精度複素数で与えられた点に対して回転を行う

概略

長さが同じベクトルX,Yを与えます。これは(X(i),Y(i))で点が与えられているものと解釈されます。ここに、実数c,sを与えます。c=cos A, s=sin Aとすると、角度Aでこれらの点を回転させた結果がX,Yに上書きされます。つまり、回転行列を掛けた結果が返ってくるということになります。

c,sの値は必ず実数になりますので注意してください。

計算式

X(i) := c * X(i) + s * Y(i)
Y(i) :=-s * X(i) + c * Y(i)

プロトタイプ宣言

void srot_(int *n, float *x, int *incx, float *y, int *incy, float *c, float *s);
void drot_(int *n, double *x, int *incx, double *y, int *incy, double *c, double *s);
void csrot_(int *n, complex *x, int *incx, complex *y, int *incy, float *c, float *s);
void zdrot_(int *n, doublecomplex *x, int *incx, doublecomplex *y, int *incy, double *c, double *s);

引数/戻り値

変数名概要
n int* ベクトルX,Yの大きさ(長さ)
X double*ベクトルXの先頭ポインタ
incX int* Xのインクリメント幅(通常1を指定すれば良い)
Y double*ベクトルYの先頭ポインタ
incY int* Yのインクリメント幅(通常1を指定すれば良い)
c double*実数(通常はcos Aの値 または、rotgで求めた値)
s double*実数(通常はsin Aの値 または、rotgで求めた値)
戻り値void