---
name: "dlartgp.f"
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/dlartgp.f"
---

# dlartgp.f(3)

## NAME

SRC/dlartgp.f

## SYNOPSIS

### Functions/Subroutines

subroutine **dlartgp** (f, g, cs, sn, r)\
 **DLARTGP** generates a plane rotation so that the diagonal is nonnegative.

## Function/Subroutine Documentation

### subroutine dlartgp (double precision f, double precision g, double precision cs, double precision sn, double precision r)

**DLARTGP** generates a plane rotation so that the diagonal is nonnegative.

**Purpose:**

```
!>
!> DLARTGP generates a plane rotation so that
!>
!>    [  CS  SN  ]  .  [ F ]  =  [ R ]   where CS**2 + SN**2 = 1.
!>    [ -SN  CS  ]     [ G ]     [ 0 ]
!>
!> This is a slower, more accurate version of the Level 1 BLAS routine DROTG,
!> with the following other differences:
!>    F and G are unchanged on return.
!>    If G=0, then CS=(+/-)1 and SN=0.
!>    If F=0 and (G .ne. 0), then CS=0 and SN=(+/-)1.
!>
!> The sign is chosen so that R >= 0.
!>
```

**Parameters**

*F*

```
!>          F is DOUBLE PRECISION
!>          The first component of vector to be rotated.
!>
```

*G*

```
!>          G is DOUBLE PRECISION
!>          The second component of vector to be rotated.
!>
```

*CS*

```
!>          CS is DOUBLE PRECISION
!>          The cosine of the rotation.
!>
```

*SN*

```
!>          SN is DOUBLE PRECISION
!>          The sine of the rotation.
!>
```

*R*

```
!>          R is DOUBLE PRECISION
!>          The nonzero component of the rotated vector.
!>
!>  This version has a few statements commented out for thread safety
!>  (machine parameters are computed on each entry). 10 feb 03, SJH.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **94** of file **dlartgp.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
