?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函数