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

NAME

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

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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