# zlags2 (l) - Linux Manuals

## NAME

ZLAGS2 - computes 2-by-2 unitary matrices U, V and Q, such that if ( UPPER ) then Uaq*A*Q = Uaq*( A1 A2 )*Q = ( x 0 ) ( 0 A3 ) ( x x ) and Vaq*B*Q = Vaq*( B1 B2 )*Q = ( x 0 ) ( 0 B3 ) ( x x ) or if ( .NOT.UPPER ) then Uaq*A*Q = Uaq*( A1 0 )*Q = ( x x ) ( A2 A3 ) ( 0 x ) and Vaq*B*Q = Vaq*( 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 )

CSQ      SNQ )

-CONJG(SNQ)  CSQ )
Zaq 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.