LAGS2 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void lags2(logical *upper, T *a1, T *a2, T *a3, T *b1, T *b2, T *b3, T *csu, T *snu, T *csv, T *snv, T *csq, T *snq)#

LAGS2 computes 2-by-2 orthogonal matrices U, V, and Q, and applies them

to matrices A and B such that the rows of the transformed A and B are parallel.

Purpose:

 LAGS2 computes 2-by-2 orthogonal matrices U, V and Q, such
 that if (UPPER) then

           U**T *A*Q = U**T *(A1 A2)*Q = (x  0 )
                             (0  A3)     (x  x )
 and
           V**T*B*Q = V**T *(B1 B2)*Q = (x  0 )
                            (0  B3)     (x  x )

 or if (.NOT.UPPER) then

           U**T *A*Q = U**T *(A1 0 )*Q = (x  x )
                             (A2 A3)     (0  x )
 and
           V**T*B*Q = V**T*(B1 0 )*Q = (x  x )
                           (B2 B3)     (0  x )

 The rows of the transformed A and B are parallel, where

   U = ( CSU  SNU), V = ( CSV SNV), Q = ( CSQ   SNQ)
       (-SNU  CSU)      (-SNV CSV)      (-SNQ   CSQ)

 Z**T denotes the transpose of Z.
Parameters:
  • UPPER[in]

    UPPER is LOGICAL

    = .TRUE.: the input matrices A and B are upper triangular.

    = .FALSE.: the input matrices A and B are lower triangular.
  • A1[in] A1 is REAL

  • A2[in] A2 is REAL

  • A3[in]

    A3 is REAL

    On entry, A1, A2 and A3 are elements of the input 2-by-2 upper (lower) triangular matrix A.

  • B1[in] B1 is REAL

  • B2[in] B2 is REAL

  • B3[in]

    B3 is REAL

    On entry, B1, B2 and B3 are elements of the input 2-by-2 upper (lower) triangular matrix B.

  • CSU[out] CSU is REAL

  • SNU[out]

    SNU is REAL

    The desired orthogonal matrix U.

  • CSV[out] CSV is REAL

  • SNV[out]

    SNV is REAL

    The desired orthogonal matrix V.

  • CSQ[out] CSQ is REAL

  • SNQ[out]

    SNQ is REAL

    The desired orthogonal matrix Q.

template<typename T, typename Ta>
void lags2(logical *upper, Ta *a1, T *a2, Ta *a3, Ta *b1, T *b2, Ta *b3, Ta *csu, T *snu, Ta *csv, T *snv, Ta *csq, T *snq)#