ztrexc


NAME

ztrexc - 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 ZTREXC( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO)
  CHARACTER * 1 COMPQ
  DOUBLE COMPLEX T(LDT,*), Q(LDQ,*)
  INTEGER N, LDT, LDQ, IFST, ILST, INFO
 
  SUBROUTINE ZTREXC_64( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO)
  CHARACTER * 1 COMPQ
  DOUBLE COMPLEX T(LDT,*), Q(LDQ,*)
  INTEGER*8 N, LDT, LDQ, IFST, ILST, INFO
 

F95 INTERFACE

  SUBROUTINE TREXC( COMPQ, [N], T, [LDT], Q, [LDQ], IFST, ILST, [INFO])
  CHARACTER(LEN=1) :: COMPQ
  COMPLEX(8), DIMENSION(:,:) :: T, Q
  INTEGER :: N, LDT, LDQ, IFST, ILST, INFO
 
  SUBROUTINE TREXC_64( COMPQ, [N], T, [LDT], Q, [LDQ], IFST, ILST, 
 *       [INFO])
  CHARACTER(LEN=1) :: COMPQ
  COMPLEX(8), DIMENSION(:,:) :: T, Q
  INTEGER(8) :: N, LDT, LDQ, IFST, ILST, INFO
 

C INTERFACE

#include <sunperf.h>

void ztrexc(char compq, int n, doublecomplex *t, int ldt, doublecomplex *q, int ldq, int ifst, int ilst, int *info);

void ztrexc_64(char compq, long n, doublecomplex *t, long ldt, doublecomplex *q, long ldq, long ifst, long ilst, long *info);


PURPOSE

ztrexc 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 postmultplying it with Z.


ARGUMENTS

* COMPQ (input)
* N (input)
The order of the matrix T. N >= 0.

* T (input/output)
On entry, the upper triangular matrix T. On exit, the reordered upper triangular matrix.

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

* Q (input)
On entry, if COMPQ = 'V', the matrix Q of Schur vectors. On exit, if COMPQ = 'V', Q has been postmultiplied by the unitary transformation matrix Z which reorders T. If COMPQ = 'N', Q is not referenced.

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

* IFST (input)
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.

* ILST (input)
See the description of IFST.

* INFO (output)