SRC/slartg.f90(3)

πŸ’… SRC/slartg.f90(3) πŸ’…

Library Functions Manual β€” okay bestie, this is the page for SRC/slartg.f90, and it is literally all about generating a plane rotation with real cosine and real sine. Slay. ✨

✨ NAME ✨

SRC/slartg.f90

πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine slartg (f, g, c, s, r) β€” SLARTG generates a plane rotation with real cosine and real sine.

πŸŽ€ Function/Subroutine Documentation πŸŽ€

πŸ’– subroutine slartg (real(wp) f, real(wp) g, real(wp) c, real(wp) s, real(wp) r) πŸ’–

subroutine slartg (real(wp) f, real(wp) g, real(wp) c, real(wp) s, real(wp)
       r)

SLARTG generates a plane rotation with real cosine and real sine. Iconic behavior, no cap. πŸ’…

🌟 Purpose 🌟

SLARTG generates a plane rotation so that

   [  C  S  ]  .  [ F ]  =  [ R ]
   [ -S  C  ]     [ G ]     [ 0 ]

where C**2 + S**2 = 1.

The mathematical formulas used for C and S are

R = sign(F) * sqrt(F**2 + G**2)
C = F / R
S = G / R

Hence C >= 0. The algorithm used to compute these quantities incorporates scaling to avoid overflow or underflow in computing the square root of the sum of squares. Very careful, very demure. πŸŽ€

🚨 Caveat bestie: this version is discontinuous in R at F = 0, but it returns the same C and S as CLARTG for complex inputs (F,0) and (G,0).

This is a more accurate version of the BLAS1 routine SROTG, with the following other differences:

  • F and G are unchanged on return.
  • If G=0, then C=1 and S=0.
  • If F=0 and (G .ne. 0), then C=0 and S=sign(1,G) without doing any floating point operations (saves work in SBDSQR when there are zeros on the diagonal).
  • Below, wp=>sp stands for single precision from LA_CONSTANTS module.

🌸 Parameters 🌸

  • F β€” F is REAL(wp). The first component of vector to be rotated.
  • G β€” G is REAL(wp). The second component of vector to be rotated.
  • C β€” C is REAL(wp). The cosine of the rotation.
  • S β€” S is REAL(wp). The sine of the rotation.
  • R β€” R is REAL(wp). The nonzero component of the rotated vector.

πŸ‘‘ Author πŸ‘‘

Edward Anderson, Lockheed Martin

πŸ“… Date πŸ“…

July 2016

🫢 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 110 of file slartg.f90.

🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code.


🫢 That’s the whole page, bestie β€” LAPACK Version 3.12.0, source SRC/slartg.f90(3), date July 2016. Periodt. πŸ’–
πŸ“¦ where this page comes from