drotg(3f) - [BLAS:SINGLE_BLAS_LEVEL1] constructs a plane rotation
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine DROTG( a, b, c, s )
.. Scalar Arguments .. real(wp),intent(inout) :: a, b real(wp),intent(out) :: c, s
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 != 0The subroutine also computes
z = s if |a| > |b|, = 1/c if |b| >= |a| and c != 0 = 1 if c = 0This 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).
On entry, the scalar a. On exit, the scalar r.
On entry, the scalar b. On exit, the scalar z.
The scalar c.
The scalar s.
o Edward Anderson, Lockheed Martin \par Contributors:Weslley Pereira, University of Colorado Denver, USA
\ingroup single_blas_level1
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
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | drotg (3) | February 23, 2025 |