LARTG - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void lartg(T *f, T *g, T *cs, T *sn, T *r__)#

LARTG generates a plane rotation with real cosine and real sine.

Purpose:

   LARTG generate a plane rotation so that

      [  CS  SN  ]  .  [ F ]  =  [ R ]   where CS**2 + SN**2 = 1.
      [ -SN  CS  ]     [ G ]     [ 0 ]

   This is a slower, more accurate version of the BLAS1 routine SROTG,
   with the following other differences:
      F and G are unchanged on   return.
      If G=0, then CS=1 and SN=0.
      If F=0 and (G .ne. 0), then CS=0 and SN=1 without doing any
         floating point operations (saves work in SBDSQR when
         there are zeros on the diagonal).

   If F exceeds G in magnitude, CS will be positive.

Parameters:
  • F[in]

    F is REAL

    The first component of vector to be rotated.

  • G[in]

    G is REAL

    The second component of vector to be rotated.

  • CS[out]

    CS is REAL

    The cosine of the rotation.

  • SN[out]

    SN is REAL

    The sine of the rotation.

  • R[out]

    R is REAL

    The nonzero component of the rotated vector.

    This version has a few statements commented out for thread safety (machine parameters are computed on each entry). 10 feb 03, SJH.
template<typename T, typename Ta>
void lartg(T *f, T *g, Ta *cs, T *sn, T *r__)#