Sponsor:

Your company here, and a link to your site. Click to find out more.

drotg.f90 - Man Page

BLAS/SRC/drotg.f90

Synopsis

Functions/Subroutines

subroutine drotg (a, b, c, s)
DROTG

Function/Subroutine Documentation

subroutine drotg (real(wp) a, real(wp) b, real(wp) c, real(wp) s)

DROTG

Purpose:

 DROTG constructs a plane rotation
    [  c  s ] [ a ] = [ r ]
    [ -s  c ] [ b ]   [ 0 ]
 satisfying c**2 + s**2 = 1.

 The computation uses the formulas
    sigma = sgn(a)    if |a| >  |b|
          = sgn(b)    if |b| >= |a|
    r = sigma*sqrt( a**2 + b**2 )
    c = 1; s = 0      if r = 0
    c = a/r; s = b/r  if r != 0
 The subroutine also computes
    z = s    if |a| > |b|,
      = 1/c  if |b| >= |a| and c != 0
      = 1    if c = 0
 This allows c and s to be reconstructed from z as follows:
    If z = 1, set c = 0, s = 1.
    If |z| < 1, set c = sqrt(1 - z**2) and s = z.
    If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2).
See also

lartg:          generate plane rotation, more accurate than BLAS rot,

lartgp:         generate plane rotation, more accurate than BLAS rot

Parameters

A

          A is DOUBLE PRECISION
          On entry, the scalar a.
          On exit, the scalar r.

B

          B is DOUBLE PRECISION
          On entry, the scalar b.
          On exit, the scalar z.

C

          C is DOUBLE PRECISION
          The scalar c.

S

          S is DOUBLE PRECISION
          The scalar s.
Author

Edward Anderson, Lockheed Martin

Contributors:

Weslley Pereira, University of Colorado Denver, USA

Further Details:

  Anderson E. (2017)
  Algorithm 978: Safe Scaling in the Level 1 BLAS
  ACM Trans Math Softw 44:1--28
  https://doi.org/10.1145/3061665

Definition at line 91 of file drotg.f90.

Author

Generated automatically by Doxygen for LAPACK from the source code.

Referenced By

The man page drotg(3) is an alias of drotg.f90(3).

Tue Nov 28 2023 12:08:41 Version 3.12.0 LAPACK