(S|D|C|Z)TREVC¶
Single, double, single complex, and double complex TREVC.
Description¶
Computes the left/right eigenvectors of an upper (quasi) triangular matrix T.
Upper (quasi) triangular matrices are produced during Schur factorization, for example by HSEQR.
Right eigenvectors x satisfy:

Left eigenvectors y satisfy:

Eigenvalues
are not passed explicitly, they are taken
from the diagonal of T. Optionally a matrix Q can be given that reduces
an original matrix A to upper triangular form, which allows the calculation
of the eigenvectors of A (set HOWMNY to B).
The real versions of this function accept quasi triangular form which allows 1x1 and 2x2 blocks along the diagonal of T corresponding to real and pairs of complex conjugate eigenvalues.
LAPACK Interface¶
void strevc(const char *SIDE, const char *HOWMNY, qml_int *SELECT,
const qml_long *N, float *T, const qml_long *LDT, float *VL,
const qml_long *LDVL, float *VR, const qml_long *LDVR,
const qml_long *MM, qml_long *M, float *WORK, qml_long *INFO);
void dtrevc(const char *SIDE, const char *HOWMNY, qml_int *SELECT,
const qml_long *N, double *T, const qml_long *LDT, double *VL,
const qml_long *LDVL, double *VR, const qml_long *LDVR,
const qml_long *MM, qml_long *M, double *WORK, qml_long *INFO);
void ctrevc(const char *SIDE, const char *HOWMNY, qml_int *SELECT,
const qml_long *N, qml_single_complex *T, const qml_long *LDT,
qml_single_complex *VL, const qml_long *LDVL, qml_single_complex *VR,
const qml_long *LDVR, const qml_long *MM, qml_long *M,
qml_single_complex *WORK, float *RWORK, qml_long *INFO);
void ztrevc(const char *SIDE, const char *HOWMNY, qml_int *SELECT,
const qml_long *N, qml_double_complex *T, const qml_long *LDT,
qml_double_complex *VL, const qml_long *LDVL, qml_double_complex *VR,
const qml_long *LDVR, const qml_long *MM, qml_long *M,
qml_double_complex *WORK, double *RWORK, qml_long *INFO);
Arguments¶
| SIDE | Compute right ‘R’, left ‘L’, or both ‘B’ eigenvectors |
| HOWMNY | Compute all eigenvectors ‘A’, backtransformed eigenvectors ‘B’, or selected eigenvectors ‘S’ |
| SELECT | Boolean array choosing eigenvectors used when HOWMNY is ‘S’ |
| N | Number of rows and columns of T |
| T | Upper (quasi) triangular matrix, modified but restored on exit |
| LDT | Leading dimension of T |
| VL | Matrix of size N x N containing Q, overwritten with left eigenvectors |
| LDVL | Leading dimension of VL |
| VR | Matrix of size N x N containing Q, overwritten with right eigenvectors |
| LDVR | Leading dimension of VR |
| MM | Number of columns in VL and VR |
| M | On exit set to number of columns in VL and VR used to store eigenvectors |
| WORK | Work space of size 3N |
| RWORK | Work space of size N |
| INFO | 0 on success |