# dlaexc.f man page

dlaexc.f —

## Synopsis

### Functions/Subroutines

subroutinedlaexc(WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO)DLAEXCswaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.

## Function/Subroutine Documentation

### subroutine dlaexc (logicalWANTQ, integerN, double precision, dimension( ldt, * )T, integerLDT, double precision, dimension( ldq, * )Q, integerLDQ, integerJ1, integerN1, integerN2, double precision, dimension( * )WORK, integerINFO)

**DLAEXC** swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.

**Purpose:**

```
DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in
an upper quasi-triangular matrix T by an orthogonal similarity
transformation.
T must be in Schur canonical form, that is, block upper triangular
with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block
has its diagonal elemnts equal and its off-diagonal elements of
opposite sign.
```

**Parameters:**

*WANTQ*

```
WANTQ is LOGICAL
= .TRUE. : accumulate the transformation in the matrix Q;
= .FALSE.: do not accumulate the transformation.
```

*N*

```
N is INTEGER
The order of the matrix T. N >= 0.
```

*T*

```
T is DOUBLE PRECISION array, dimension (LDT,N)
On entry, the upper quasi-triangular matrix T, in Schur
canonical form.
On exit, the updated matrix T, again in Schur canonical form.
```

*LDT*

```
LDT is INTEGER
The leading dimension of the array T. LDT >= max(1,N).
```

*Q*

```
Q is DOUBLE PRECISION array, dimension (LDQ,N)
On entry, if WANTQ is .TRUE., the orthogonal matrix Q.
On exit, if WANTQ is .TRUE., the updated matrix Q.
If WANTQ is .FALSE., Q is not referenced.
```

*LDQ*

```
LDQ is INTEGER
The leading dimension of the array Q.
LDQ >= 1; and if WANTQ is .TRUE., LDQ >= N.
```

*J1*

```
J1 is INTEGER
The index of the first row of the first block T11.
```

*N1*

```
N1 is INTEGER
The order of the first block T11. N1 = 0, 1 or 2.
```

*N2*

```
N2 is INTEGER
The order of the second block T22. N2 = 0, 1 or 2.
```

*WORK*

`WORK is DOUBLE PRECISION array, dimension (N)`

*INFO*

```
INFO is INTEGER
= 0: successful exit
= 1: the transformed matrix T would be too far from Schur
form; the blocks are not swapped and T and Q are
unchanged.
```

**Author:**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date:**

September 2012

Definition at line 138 of file dlaexc.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

dlaexc(3) is an alias of dlaexc.f(3).