srotg(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Generate Givens rotation.
Synopsis
Definition
Options
A
B
Authors
Further Details
See Also
subroutine srotg( a, b, c, s )
.. Scalar Arguments .. real(wp),intent(inout) :: a, b real(wp),intent(out) :: c, s .. .. Local Scalars .. real(wp) :: anorm, bnorm, scl, sigma, r, z ..
SROTG 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).
A is REAL On entry, the scalar a. On exit, the scalar r.
B is REAL On entry, the scalar b. On exit, the scalar z.
C is REAL The scalar c.
S is REAL The scalar s.
o Edward Anderson, Lockheed Martin \par Contributors:Weslley Pereira, University of Colorado Denver, USA
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 | srotg (3) | February 23, 2025 |