CXML

DLAEXC (3lapack)


SYNOPSIS

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

      LOGICAL        WANTQ

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

      DOUBLE         PRECISION Q( LDQ, * ), T( LDT, * ), WORK( * )

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.

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) 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     (input)  INTEGER
          The leading dimension of the array T. LDT >= max(1,N).

  Q       (input/output) 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     (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) DOUBLE PRECISION 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.

CXML Home Page

Index of CXML Routines