Previous: ctrevc Up: ../lapack-c.html Next: ctrrfs


ctrexc


 NAME
      CTREXC - reorder the Schur factorization of a complex matrix
      A = Q*T*Q**H, so that the diagonal element of T with row
      index IFST is moved to row ILST

 SYNOPSIS
      SUBROUTINE CTREXC( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST,
                         INFO )

          CHARACTER      COMPQ

          INTEGER        IFST, ILST, INFO, LDQ, LDT, N

          COMPLEX        Q( LDQ, * ), T( LDT, * )

 PURPOSE
      CTREXC reorders the Schur factorization of a complex matrix
      A = Q*T*Q**H, so that the diagonal element of T with row
      index IFST is moved to row ILST.

      The Schur form T is reordered by a unitary similarity
      transformation Z**H*T*Z, and optionally the matrix Q of
      Schur vectors is updated by postmultiplying it with Z.

 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) COMPLEX array, dimension (LDT,N)
              On entry, the upper triangular matrix T.  On exit,
              the reordered upper triangular matrix.

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

      Q       (input/output) COMPLEX array, dimension (LDQ,N)
              On entry, if COMPQ = 'V', the matrix Q of Schur vec-
              tors.  On exit, if COMPQ = 'V', Q has been postmul-
              tiplied by the unitary transformation matrix Z which
              reorders T.  If COMPQ = 'N', Q is not referenced.

      LDQ     (input) INTEGER
              The leading dimension of the array Q.  LDQ >=
              max(1,N).

      IFST    (input) INTEGER

              ILST    (input) INTEGER Specify the reordering of
              the diagonal elements of T: The element with row
              index IFST is moved to row ILST by a sequence of
              transpositions between adjacent elements.  1 <= IFST
              <= N; 1 <= ILST <= N.

      INFO    (output) INTEGER
              = 0:  successful exit
              < 0:  if INFO = -i, the i-th argument had an illegal
              value