---
title: ?rotm
description: "基于修改的吉文斯转换。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_kml_16_0027.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_kml_16_0027.html
indexId: 4f8a600f0483051a31396d1bf61c961e88270bcd213477b34e5f1e8f8208874074
---
# ?rotm

基于修改的吉文斯转换。


x和y是含有n个元素的向量，h是转换矩阵元素。

#### 接口定义

C interface：

void cblas_srotm(const BLASINT N, float *X, const BLASINT incX, float *Y, const BLASINT incY, const float *P);

void cblas_drotm(const BLASINT N, double *X, const BLASINT incX, double *Y, const BLASINT incY, const double *P);

Fortran interface：

CALL SROTM(N, SX, INCX, SY, INCY, DTEMP)

CALL DROTM(N, SX, INCX, SY, INCY, DTEMP)


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| N | 整型数 | 表示X向量的元素个数。 | 输入 |
| X | 在srotm中，X是单精度浮点类型。 在drotm中，X是双精度浮点类型。 | 向量X，向量规模至少是(1+(n\-1)\*abs(incx))。 | 输入/输出 |
| incX | 整型数 | 表示x向量增长步长。 | 输入 |
| Y | 在srotm中，Y是单精度浮点类型。 在drotm中，Y是双精度浮点类型。 | 向量Y，向量规模至少是(1+(n\-1)\*abs(incy))。 | 输入/输出 |
| incY | 整型数 | 表示Y向量增长步。 | 输入 |
| P | 在srotm中，P是单精度浮点类型。 在drotm中，P是双精度浮点类型。 | 转换矩阵H。 | 输入 |


#### 依赖

#include "kblas.h"


#### 示例

C interface：

```
double d1 = 10.0, d2 = 2.0;
double x1 = 2.0, x2 = 1.0;
double p[5];
int n = 5, incx = 1, incy = 1;
double x[5]={1.0, 2.0, 1.0, 3.0, 1.0};
double y[5]={3.0, 1.0, 1.0, 5.0, 1.0};
cblas_drotmg(&d1, &d2, &x1, x2, p);
cblas_drotm(n, x, incx, y, incy, p);
/*
* Output x:  1.300000,  2.100000, 1.100000,  3.500000, 1.100000
* Output y:  2.500000,  0.000000, 0.500000,  3.500000, 0.500000
*/
```

Fortran interface：

```
REAL(8) :: D1=10.0
REAL(8) :: D2=2.0
REAL(8) :: X1=2.0
REAL(8) :: X2=1.0
REAL(8) :: P(5)
INTEGER :: N=5
INTEGER :: INCX=1
INTEGER :: INCY=1
REAL(8) :: X(5)
DATA X/1.0, 2.0, 1.0, 3.0, 1.0/
REAL(8) :: Y(5)
DATA Y/3.0, 1.0, 1.0, 5.0, 1.0/
EXTERNAL DROTMG
CALL DROTMG(D1, D2, X1, X2, P)
EXTERNAL DROTM
CALL DROTM(N, X, INCX, Y, INCY, P)
*     Output X:  1.300000,  2.100000, 1.100000,  3.500000, 1.100000
*     Output Y:  2.500000,  0.000000, 0.500000,  3.500000, 0.500000
```
