strexc(3)

NAME

STREXC - reorder the real Schur factorization of a real
matrix A = Q*T*Q**T, so that the diagonal block of T with row in
dex IFST is moved to row ILST

SYNOPSIS

SUBROUTINE STREXC( COMPQ, N, T, LDT, Q, LDQ,  IFST,  ILST,
WORK, INFO )
    CHARACTER      COMPQ
    INTEGER        IFST, ILST, INFO, LDQ, LDT, N
    REAL           Q( LDQ, * ), T( LDT, * ), WORK( * )

PURPOSE

STREXC reorders the real Schur factorization of a real ma
trix A = Q*T*Q**T, so that the diagonal block of T with row index
IFST is moved to row ILST. The real Schur form T is reordered by
an orthogonal similarity transformation Z**T*T*Z, and optionally
the matrix Q of Schur vectors is updated by postmultiplying it
with Z.
T must be in Schur canonical form (as returned by SHSEQR),
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.

ARGUMENTS

COMPQ (input) CHARACTER*1
= 'V': update the matrix Q of Schur vectors;
= 'N': do not update Q.
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 Schur canonical form. On exit, the reordered upper quasi
triangular matrix, 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 COMPQ = 'V', the matrix Q of Schur
vectors. On exit, if COMPQ = 'V', Q has been postmultiplied by
the orthogonal transformation matrix Z which reorders T. If COM
PQ = 'N', Q is not referenced.
LDQ (input) INTEGER
The leading dimension of the array Q. LDQ >=
max(1,N).
IFST (input/output) INTEGER
ILST (input/output) INTEGER Specify the re
ordering of the diagonal blocks of T. The block with row index
IFST is moved to row ILST, by a sequence of transpositions be
tween adjacent blocks. On exit, if IFST pointed on entry to the
second row of a 2-by-2 block, it is changed to point to the first
row; ILST always points to the first row of the block in its fi
nal position (which may differ from its input value by +1 or -1).
1 <= IFST <= N; 1 <= ILST <= N.
WORK (workspace) REAL array, dimension (N)
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille
gal value
= 1: two adjacent blocks were too close to swap
(the problem is very ill-conditioned); T may have been partially
reordered, and ILST points to the first row of the current posi
tion of the block being moved.
LAPACK version 3.0 15 June 2000
Copyright © 2010-2025 Platon Technologies, s.r.o.           Index | Man stránky | tLDP | Dokumenty | Utilitky | O projekte
Design by styleshout