?rot
基于平面上的点旋转。
即:
x和y是含有n个元素的向量,c是旋转角的余弦,s是旋转角的正弦。
接口定义
C interface:
void cblas_srot(const BLASINT N, float *X, const BLASINT incX, float *Y, const BLASINT incY, const float c, const float s);
void cblas_drot(const BLASINT N, double *X, const BLASINT incX, double *Y, const BLASINT incY, const double c, const double s);
void cblas_csrot(const BLASINT N, float *X, const BLASINT incX, float *Y, const BLASINT incY, const float c, const float s);
void cblas_zdrot(const BLASINT N, double *X, const BLASINT incX, double *Y, const BLASINT incY, const double c, const double s);
Fortran interface:
CALL SROT(N, SX, INCX, SY, INCY, SC, SS)
CALL DROT(N, SX, INCX, SY, INCY, SC, SS)
CALL CSROT(N, SX, INCX, SY, INCY, SC, SS)
CALL ZDROT(N, SX, INCX, SY, INCY, SC, SS)
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
N |
整型数 |
表示X向量的元素个数。 |
输入 |
X |
|
向量X,向量规模至少是(1+(n-1)*abs(incx))。 |
输入/输出 |
incX |
整型数 |
表示X向量增长步长。 |
输入 |
Y |
|
向量Y,向量规模至少是(1+(n-1)*abs(incy))。 |
输入/输出 |
incY |
整型数 |
表示Y向量增长步长。 |
输入 |
c |
|
旋转角的余弦。 |
输入 |
s |
|
旋转角的正弦。 |
输入 |
依赖
#include "kblas.h"
示例
C interface:
int n = 5, incx = 1, incy=1; float c = 1, s = 1; /* * C = 1, S = 1 * Input X: 0.340188, -0.105617, 0.283099, 0.298440, 0.411647 * Input Y: -0.302449, -0.164777, 0.268230, -0.222225, 0.053970 **/ float x[5] = {0.340188, -0.105617, 0.283099, 0.298440, 0.411647}; float y[5] = {-0.302449, -0.164777, 0.268230, -0.222225, 0.053970}; cblas_srot(n, x, incx, y, incy, c, s); /* * Output X: 0.037739, -0.270394, 0.551329, 0.076215, 0.465617 * Output Y: -0.642636, -0.059160, -0.014870, -0.520665, -0.357677 **/
Fortran interface:
INTEGER :: N=5 INTEGER :: INCX=1 INTEGER :: INCY=1 REAL(4) :: C=1 REAL(4) :: S=1 REAL(4) :: X(5) DATA X /0.340188, -0.105617, 0.283099, 0.298440, 0.411647/ REAL(4) :: Y(5) DATA Y /-0.302449, -0.164777, 0.268230, -0.222225, 0.053970/ EXTERNAL SROT CALL SROT(N, X, INCX, Y, INCY, C, S) * Output X: 0.037739, -0.270394, 0.551329, 0.076215, 0.465617 * Output Y: -0.642636, -0.059160, -0.014870, -0.520665, -0.357677