---
name: "slaexc"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/slaexc/3lapack"
---

# slaexc(3lapack)

swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an upper quasi-triangular matrix T by an orthogonal similarity transformation

## NAME

SLAEXC - swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an upper quasi-triangular matrix T by an orthogonal similarity transformation

## SYNOPSIS

- SUBROUTINE SLAEXC(

  WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO )

- LOGICAL

  WANTQ

- INTEGER

  INFO, J1, LDQ, LDT, N, N1, N2

- REAL

  Q( LDQ, \* ), T( LDT, \* ), WORK( \* )

## PURPOSE

SLAEXC 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.\

## ARGUMENTS

- WANTQ (input) LOGICAL

  \= .TRUE. : accumulate the transformation in the matrix Q;\
   \= .FALSE.: do not accumulate the transformation.

- N (input) INTEGER

  The order of the matrix T. N \>= 0.

- T (input/output) REAL 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 (input) INTEGER

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

- Q (input/output) REAL 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 (input) INTEGER

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

- J1 (input) INTEGER

  The index of the first row of the first block T11.

- N1 (input) INTEGER

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

- N2 (input) INTEGER

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

- WORK (workspace) REAL array, dimension (N)

  - INFO (output) 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.
