Previous: zlaev2 Up: ../lapack-z.html Next: zlagtm

# zlags2

```
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

PURPOSE
ZLAGS2 computes 2-by-2 unitary matrices U, V and Q, such
that if ( UPPER ) then
( -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) entry 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 tri-
angular.
= .FALSE.: the input matrices A and B are lower tri-
angular.

A1      (input) DOUBLE PRECISION
A2      (input) COMPLEX*16 A3      (input) DOUBLE
PRECISION On entry, A1, A2 and A3 are entries 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 entries 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.
```