---
name: "rotm"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rotm"
---

# rotm(3)

rotm: apply modified (fast) plane rotation

## NAME

rotm - rotm: apply modified (fast) plane rotation

## SYNOPSIS

### Functions

subroutine **drotm** (n, dx, incx, dy, incy, dparam)\
 **DROTM**  subroutine **srotm** (n, sx, incx, sy, incy, sparam)\
 **SROTM**

## Detailed Description

## Function Documentation

### subroutine drotm (integer n, double precision, dimension(\*) dx, integer incx, double precision, dimension(\*) dy, integer incy, double precision, dimension(5) dparam)

**DROTM**

**Purpose:**

```
!>
!>    APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
!>
!>    (DX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF DX ARE IN
!>    (DY**T)
!>
!>    DX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE
!>    LX = (-INCX)*N, AND SIMILARLY FOR SY USING LY AND INCY.
!>    WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
!>
!>    DFLAG=-1.D0     DFLAG=0.D0        DFLAG=1.D0     DFLAG=-2.D0
!>
!>      (DH11  DH12)    (1.D0  DH12)    (DH11  1.D0)    (1.D0  0.D0)
!>    H=(          )    (          )    (          )    (          )
!>      (DH21  DH22),   (DH21  1.D0),   (-1.D0 DH22),   (0.D0  1.D0).
!>    SEE DROTMG FOR A DESCRIPTION OF DATA STORAGE IN DPARAM.
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>         number of elements in input vector(s)
!>
```

*DX*

```
!>          DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
!>
```

*INCX*

```
!>          INCX is INTEGER
!>         storage spacing between elements of DX
!>
```

*DY*

```
!>          DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
!>
```

*INCY*

```
!>          INCY is INTEGER
!>         storage spacing between elements of DY
!>
```

*DPARAM*

```
!>          DPARAM is DOUBLE PRECISION array, dimension (5)
!>     DPARAM(1)=DFLAG
!>     DPARAM(2)=DH11
!>     DPARAM(3)=DH21
!>     DPARAM(4)=DH12
!>     DPARAM(5)=DH22
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **95** of file **drotm.f**.

### subroutine srotm (integer n, real, dimension(\*) sx, integer incx, real, dimension(\*) sy, integer incy, real, dimension(5) sparam)

**SROTM**

**Purpose:**

```
!>
!>    APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
!>
!>    (SX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF SX ARE IN
!>    (SX**T)
!>
!>    SX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE
!>    LX = (-INCX)*N, AND SIMILARLY FOR SY USING USING LY AND INCY.
!>    WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
!>
!>    SFLAG=-1.E0     SFLAG=0.E0        SFLAG=1.E0     SFLAG=-2.E0
!>
!>      (SH11  SH12)    (1.E0  SH12)    (SH11  1.E0)    (1.E0  0.E0)
!>    H=(          )    (          )    (          )    (          )
!>      (SH21  SH22),   (SH21  1.E0),   (-1.E0 SH22),   (0.E0  1.E0).
!>    SEE  SROTMG FOR A DESCRIPTION OF DATA STORAGE IN SPARAM.
!>
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>         number of elements in input vector(s)
!>
```

*SX*

```
!>          SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
!>
```

*INCX*

```
!>          INCX is INTEGER
!>         storage spacing between elements of SX
!>
```

*SY*

```
!>          SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
!>
```

*INCY*

```
!>          INCY is INTEGER
!>         storage spacing between elements of SY
!>
```

*SPARAM*

```
!>          SPARAM is REAL array, dimension (5)
!>     SPARAM(1)=SFLAG
!>     SPARAM(2)=SH11
!>     SPARAM(3)=SH21
!>     SPARAM(4)=SH12
!>     SPARAM(5)=SH22
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **96** of file **srotm.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
