laexc(3)

NAME
laexc - laexc: reorder Schur form

SYNOPSIS

  Functions

subroutine dlaexc (wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info)
DLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.
subroutine slaexc (wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info)
SLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.

Detailed Description

Function Documentation

  subroutine dlaexc (logical wantq, integer n, double precision, dimension( ldt, * ) t, integer ldt, double precision, dimension( ldq, * ) q, integer ldq, integer j1, integer n1, integer n2, double precision, dimension( * ) work, integer info)

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 elements 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.

  subroutine slaexc (logical wantq, integer n, real, dimension( ldt, * ) t, integer ldt, real, dimension( ldq, * ) q, integer ldq, integer j1, integer n1, integer n2, real, dimension( * ) work, integer info)

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

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 elements 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 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

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

    Q

    !>          Q is 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

    !>          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 REAL 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.

Author

Generated automatically by Doxygen for LAPACK from the source code.