1DTREXC(1)                LAPACK routine (version 3.1)                DTREXC(1)
2
3
4

NAME

6       DTREXC - the real Schur factorization of a real matrix A = Q*T*Q**T, so
7       that the diagonal block of T with row index IFST is moved to row ILST
8

SYNOPSIS

10       SUBROUTINE DTREXC( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, WORK, INFO )
11
12           CHARACTER      COMPQ
13
14           INTEGER        IFST, ILST, INFO, LDQ, LDT, N
15
16           DOUBLE         PRECISION Q( LDQ, * ), T( LDT, * ), WORK( * )
17

PURPOSE

19       DTREXC reorders the real Schur factorization  of  a  real  matrix  A  =
20       Q*T*Q**T,  so that the diagonal block of T with row index IFST is moved
21       to row ILST.
22
23       The real Schur form T is reordered by an orthogonal  similarity  trans‐
24       formation  Z**T*T*Z,  and  optionally  the matrix Q of Schur vectors is
25       updated by postmultiplying it with Z.
26
27       T must be in Schur canonical form (as returned  by  DHSEQR),  that  is,
28       block  upper  triangular  with  1-by-1 and 2-by-2 diagonal blocks; each
29       2-by-2 diagonal block has its diagonal elements equal and its off-diag‐
30       onal elements of opposite sign.
31
32

ARGUMENTS

34       COMPQ   (input) CHARACTER*1
35               = 'V':  update the matrix Q of Schur vectors;
36               = 'N':  do not update Q.
37
38       N       (input) INTEGER
39               The order of the matrix T. N >= 0.
40
41       T       (input/output) DOUBLE PRECISION array, dimension (LDT,N)
42               On  entry,  the upper quasi-triangular matrix T, in Schur Schur
43               canonical form.  On exit, the reordered upper  quasi-triangular
44               matrix, again in Schur canonical form.
45
46       LDT     (input) INTEGER
47               The leading dimension of the array T. LDT >= max(1,N).
48
49       Q       (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
50               On  entry,  if  COMPQ = 'V', the matrix Q of Schur vectors.  On
51               exit, if COMPQ = 'V', Q has been postmultiplied by the orthogo‐
52               nal  transformation matrix Z which reorders T.  If COMPQ = 'N',
53               Q is not referenced.
54
55       LDQ     (input) INTEGER
56               The leading dimension of the array Q.  LDQ >= max(1,N).
57
58       IFST    (input/output) INTEGER
59               ILST    (input/output) INTEGER Specify the  reordering  of  the
60               diagonal  blocks  of T.  The block with row index IFST is moved
61               to row ILST, by a sequence of transpositions  between  adjacent
62               blocks.  On exit, if IFST pointed on entry to the second row of
63               a 2-by-2 block, it is changed to point to the first  row;  ILST
64               always  points to the first row of the block in its final posi‐
65               tion (which may differ from its input value by +1 or -1).  1 <=
66               IFST <= N; 1 <= ILST <= N.
67
68       WORK    (workspace) DOUBLE PRECISION array, dimension (N)
69
70       INFO    (output) INTEGER
71               = 0:  successful exit
72               < 0:  if INFO = -i, the i-th argument had an illegal value
73               =  1:   two adjacent blocks were too close to swap (the problem
74               is very ill-conditioned); T may have been partially  reordered,
75               and ILST points to the first row of the current position of the
76               block being moved.
77
78
79
80 LAPACK routine (version 3.1)    November 2006                       DTREXC(1)
Impressum