rotmg(3)

πŸ’– rotmg(3) β€” Library Functions Manual πŸ’–

okay bestie, we're in the Library Functions Manual for rotmg(3), and this page is all about making modified (fast) plane rotations happen. It's giving linear algebra but make it cute. ✨

πŸ’– NAME πŸ’–

rotmg β€” rotmg: generate modified (fast) plane rotation. Yes, it says rotmg twice, and honestly? she ate. πŸ’…

✨ SYNOPSIS ✨

🌈 Functions 🌈

  • subroutine drotmg (dd1, dd2, dx1, dy1, dparam) β€” DROTMG
  • subroutine srotmg (sd1, sd2, sx1, sy1, sparam) β€” SROTMG

πŸ¦‹ Detailed Description πŸ¦‹

okay so the Detailed Description is literally just the heading before the function docs β€” no extra lore, no hidden side quest. The real tea is right below. πŸ‘‡

🌸 Function Documentation 🌸

πŸŽ€ subroutine drotmg (double precision dd1, double precision dd2, double precision dx1, double precision dy1, double precision, dimension(5) dparam) πŸŽ€

DROTMG

πŸ”₯ Purpose πŸ”₯

bestie, here's the Purpose block exactly as the source serves it, because the matrix forms are the whole moment:

           !>
           !>    CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS
           !>    THE SECOND COMPONENT OF THE 2-VECTOR  (DSQRT(DD1)*DX1,DSQRT(DD2)*>    DY2)**T.
           !>    WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
           !>
           !>    DFLAG=-1.D0     DFLAG=0.D0        DFLAG=1.D0     DFLAG=-2.D0
           !>
           !>      (DH11  DH12)    (1.D0  DH12)    (DH11  1.D0)    (1.D0  0.D0)
           !>    H=(          )    (          )    (          )    (          )
           !>      (DH21  DH22),   (DH21  1.D0),   (-1.D0 DH22),   (0.D0  1.D0).
           !>    LOCATIONS 2-4 OF DPARAM CONTAIN DH11, DH21, DH12, AND DH22
           !>    RESPECTIVELY. (VALUES OF 1.D0, -1.D0, OR 0.D0 IMPLIED BY THE
           !>    VALUE OF DPARAM(1) ARE NOT STORED IN DPARAM.)
           !>
           !>    THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE
           !>    INEXACT.  THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE
           !>    OF DD1 AND DD2.  ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
           !>
           !>

Translation for the group chat: it constructs the modified Givens transformation matrix H that zeros the second component of the 2-vector (DSQRT(DD1)*DX1,DSQRT(DD2)*> DY2)**T. β€” yes, that > is in the original, and we're keeping it exactly. With DPARAM(1)=DFLAG, H has one of the forms above. Locations 2-4 of DPARAM contain DH11, DH21, DH12, and DH22 respectively, and the 1.D0, -1.D0, or 0.D0 values implied by DPARAM(1) are not stored in DPARAM. Also: GAMSQ and RGAMSQ set in the DATA statement may be inexact β€” that's okay because they're only used for testing the size of DD1 and DD2; all actual scaling of data is done using GAM.

πŸ’… Parameters πŸ’…

  • DD1 β€” yup, DD1 is DOUBLE PRECISION.
  • DD2 β€” DD2 is DOUBLE PRECISION.
  • DX1 β€” DX1 is DOUBLE PRECISION.
  • DY1 β€” DY1 is DOUBLE PRECISION.
  • DPARAM β€” DPARAM is DOUBLE PRECISION array, dimension (5). The slots go:
    • DPARAM(1)=DFLAG
    • DPARAM(2)=DH11
    • DPARAM(3)=DH21
    • DPARAM(4)=DH12
    • DPARAM(5)=DH22

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition: Definition at line 89 of file drotmg.f.

πŸŽ€ subroutine srotmg (real sd1, real sd2, real sx1, real sy1, real, dimension(5) sparam) πŸŽ€

SROTMG

πŸ”₯ Purpose πŸ”₯

same energy, exact block:

           !>
           !>    CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS
           !>    THE SECOND COMPONENT OF THE 2-VECTOR  (SQRT(SD1)*SX1,SQRT(SD2)*>    SY2)**T.
           !>    WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
           !>
           !>    SFLAG=-1.E0     SFLAG=0.E0        SFLAG=1.E0     SFLAG=-2.E0
           !>
           !>      (SH11  SH12)    (1.E0  SH12)    (SH11  1.E0)    (1.E0  0.E0)
           !>    H=(          )    (          )    (          )    (          )
           !>      (SH21  SH22),   (SH21  1.E0),   (-1.E0 SH22),   (0.E0  1.E0).
           !>    LOCATIONS 2-4 OF SPARAM CONTAIN SH11,SH21,SH12, AND SH22
           !>    RESPECTIVELY. (VALUES OF 1.E0, -1.E0, OR 0.E0 IMPLIED BY THE
           !>    VALUE OF SPARAM(1) ARE NOT STORED IN SPARAM.)
           !>
           !>    THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE
           !>    INEXACT.  THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE
           !>    OF SD1 AND SD2.  ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
           !>
           !>

Translation: it constructs the modified Givens transformation matrix H that zeros the second component of the 2-vector (SQRT(SD1)*SX1,SQRT(SD2)*> SY2)**T. β€” again, that > stays because it's in the original. With SPARAM(1)=SFLAG, H has one of the forms above. Locations 2-4 of SPARAM contain SH11, SH21, SH12, and SH22 respectively, and the 1.E0, -1.E0, or 0.E0 values implied by SPARAM(1) are not stored in SPARAM. Same note as before: GAMSQ and RGAMSQ set in the DATA statement may be inexact, which is fine because they're only used for testing the size of SD1 and SD2; all actual scaling of data is done using GAM.

πŸ’… Parameters πŸ’…

  • SD1 β€” SD1 is REAL.
  • SD2 β€” SD2 is REAL.
  • SX1 β€” SX1 is REAL.
  • SY1 β€” SY1 is REAL.
  • SPARAM β€” SPARAM is REAL array, dimension (5). The slots go:
    • SPARAM(1)=SFLAG
    • SPARAM(2)=SH11
    • SPARAM(3)=SH21
    • SPARAM(4)=SH12
    • SPARAM(5)=SH22

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition: Definition at line 89 of file srotmg.f.

🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code.


okay that's the whole page, bestie 🫢 β€” this one is LAPACK Version 3.12.0, and the page is rotmg(3). There's no date in the footer, just those source/version vibes, and the sign-off is lowkey iconic. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from