zlags2(3S)

ZLAGS2 - compute 2-by-2 unitary matrices U, V and Q, such that if ( UPPER ) then U'*A*Q = U'*( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x ) and V'*B*Q = V'*( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x ) or if ( .NOT.UPPER ) then U'*A*Q = U'*( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x ) and V'*B*Q = V'*( B1 0 )*Q = ( x x ) ( B2 B3 ) ( 0 x ) where U = ( CSU SNU ), V = ( CSV SNV ),

As shipped in IRIX 6.5.15. Added in IRIX 6.5.15.

NAME
     ZLAGS2 - compute 2-by-2 unitary matrices U, V and Q, such that if ( UPPER
     ) then  U'*A*Q = U'*( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x ) and V'*B*Q =
     V'*( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x )  or if ( .NOT.UPPER ) then
     U'*A*Q = U'*( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x ) and V'*B*Q = V'*( B1 0
     )*Q = ( x x ) ( B2 B3 ) ( 0 x ) where  U = ( CSU SNU ), V = ( CSV SNV ),

SYNOPSIS
     SUBROUTINE ZLAGS2( UPPER, A1, A2, A3, B1, B2, B3, CSU, SNU, CSV, SNV,
                        CSQ, SNQ )

         LOGICAL        UPPER

         DOUBLE         PRECISION A1, A3, B1, B3, CSQ, CSU, CSV

         COMPLEX*16     A2, B2, SNQ, SNU, SNV

IMPLEMENTATION
     These routines are part of the SCSL Scientific Library and can be loaded
     using either the -lscs or the -lscs_mp option.  The -lscs_mp option
     directs the linker to use the multi-processor version of the library.

     When linking to SCSL with -lscs or -lscs_mp, the default integer size is
     4 bytes (32 bits). Another version of SCSL is available in which integers
     are 8 bytes (64 bits).  This version allows the user access to larger
     memory sizes and helps when porting legacy Cray codes.  It can be loaded
     by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
     only one of the two versions; 4-byte integer and 8-byte integer library
     calls cannot be mixed.

PURPOSE
     ZLAGS2 computes 2-by-2 unitary matrices U, V and Q, such that if ( UPPER
     ) then U'*A*Q = U'*( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x ) and V'*B*Q =
     V'*( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x ) or if ( .NOT.UPPER ) then
     U'*A*Q = U'*( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x ) and V'*B*Q = V'*( B1 0
     )*Q = ( x x ) ( B2 B3 ) ( 0 x ) where U = ( CSU SNU ), V = ( CSV SNV ),
     ( -CONJG(SNU)  CSU )      ( -CONJG(SNV) CSV )

       Q = (     CSQ      SNQ )
           ( -CONJG(SNQ)  CSQ )

     Z' denotes the conjugate transpose of Z.

     The rows of the transformed A and B are parallel. Moreover, if the input
     2-by-2 matrix A is not zero, then the transformed (1,1) entry of A is not
     zero. If the input matrices A and B are both not zero, then the
     transformed (2,2) element of B is not zero, except when the first rows of
     input A and B are parallel and the second rows are zero.
ARGUMENTS
     UPPER   (input) LOGICAL
             = .TRUE.: the input matrices A and B are upper triangular.
             = .FALSE.: the input matrices A and B are lower triangular.

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

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

     CSU     (output) DOUBLE PRECISION
             SNU     (output) COMPLEX*16 The desired unitary matrix U.

     CSV     (output) DOUBLE PRECISION
             SNV     (output) COMPLEX*16 The desired unitary matrix V.

     CSQ     (output) DOUBLE PRECISION
             SNQ     (output) COMPLEX*16 The desired unitary matrix Q.

SEE ALSO
     INTRO_LAPACK(3S), INTRO_SCSL(3S)

     This man page is available only online.