?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);
Fortran interface:
CALL SROT(N, SX, INCX, SY, INCY, SC, SS)
CALL DROT(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
父主题: KML_BLAS Level 1函数