---
title: ?rotm
description: "修改旋转平面。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0614.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0614.html
indexId: 23e24a082330f40ef37a019408042b5ab4236f9a7f3b6a00963c7c2601e8a2f461
---
# ?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 *H);

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

Fortran interface：

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

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


#### 参数

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