XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ ztrexc()

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

Reordering of Schur factorization of complex matrix

Purpose
This routine 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.
Parameters
[in]compq= 'V': Update the matrix Q of Schur vectors.
= 'N': Do not update Q.
[in]nOrder of the matrix T. (n >= 0) (If n = 0, returns without computation)
[in]ldtLeading dimension of the two dimensional array t[][]. (ldt >= max(1, n))
[in,out]t[][]Array t[lt][ldt] (lt >= n)
[in] The upper triangular matrix T.
[out] The reordered upper triangular matrix.
[in]ldqLeading dimension of the two dimensional array q[][]. (ldq >= 1 if compq = 'N', ldq >= max(1, n) if compq = 'V')
[in,out]q[][]Array q[lq][ldq] (lq >= n)
If compq = 'V',
[in] The matrix Q of Schur vectors.
[out] Q has been postmultiplied by the unitary transformation matrix Z which reorders T.
If compq = 'N', q[][] is not referenced.
[in]ifst
[in]ilstSpecify 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)
[out]info= 0: Successful exit
= -1: The argument compq had an illegal value (copq != 'V' nor 'N')
= -2: The argument n had an illegal value (n < 0)
= -3: The argument ldt had an illegal value (ldt < max(1, n))
= -5: The argument ldq had an illegal value (ldq too small)
= -7: The argument ifst had an illegal value (ifst < 0 or ifst > n)
= -8: The argument ilst had an illegal value (ilst < 0 or ilst > n)
Reference
LAPACK