---
name: "clags2.f"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/clags2.f"
---

# clags2.f(3)

## NAME

SRC/clags2.f

## SYNOPSIS

### Functions/Subroutines

subroutine **clags2** (upper, a1, a2, a3, b1, b2, b3, csu, snu, csv, snv, csq, snq)\
 **CLAGS2**

## Function/Subroutine Documentation

### subroutine clags2 (logical upper, real a1, complex a2, real a3, real b1, complex b2, real b3, real csu, complex snu, real csv, complex snv, real csq, complex snq)

**CLAGS2**

**Purpose:**

```
!>
!> CLAGS2 computes 2-by-2 unitary matrices U, V and Q, such
!> that if ( UPPER ) then
!>
!>           U**H *A*Q = U**H *( A1 A2 )*Q = ( x  0  )
!>                             ( 0  A3 )     ( x  x  )
!> and
!>           V**H*B*Q = V**H *( B1 B2 )*Q = ( x  0  )
!>                            ( 0  B3 )     ( x  x  )
!>
!> or if ( .NOT.UPPER ) then
!>
!>           U**H *A*Q = U**H *( A1 0  )*Q = ( x  x  )
!>                             ( A2 A3 )     ( 0  x  )
!> and
!>           V**H *B*Q = V**H *( B1 0  )*Q = ( x  x  )
!>                             ( B2 B3 )     ( 0  x  )
!> where
!>
!>   U = (   CSU    SNU ), V = (  CSV    SNV ),
!>       ( -SNU**H  CSU )      ( -SNV**H CSV )
!>
!>   Q = (   CSQ    SNQ )
!>       ( -SNQ**H  CSQ )
!>
!> 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.
!>
```

**Parameters**

*UPPER*

```
!>          UPPER is LOGICAL
!>          = .TRUE.: the input matrices A and B are upper triangular.
!>          = .FALSE.: the input matrices A and B are lower triangular.
!>
```

*A1*

```
!>          A1 is REAL
!>
```

*A2*

```
!>          A2 is COMPLEX
!>
```

*A3*

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

*B1*

```
!>          B1 is REAL
!>
```

*B2*

```
!>          B2 is COMPLEX
!>
```

*B3*

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

*CSU*

```
!>          CSU is REAL
!>
```

*SNU*

```
!>          SNU is COMPLEX
!>          The desired unitary matrix U.
!>
```

*CSV*

```
!>          CSV is REAL
!>
```

*SNV*

```
!>          SNV is COMPLEX
!>          The desired unitary matrix V.
!>
```

*CSQ*

```
!>          CSQ is REAL
!>
```

*SNQ*

```
!>          SNQ is COMPLEX
!>          The desired unitary matrix Q.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **156** of file **clags2.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
