nag_ztrevc (f08qxc) computes selected left and/or right eigenvectors of a complex upper triangular matrix.
nag_ztrevc (f08qxc) computes left and/or right eigenvectors of a complex upper triangular matrix
. Such a matrix arises from the Schur factorization of a complex general matrix, as computed by
nag_zhseqr (f08psc), for example.
The right eigenvector
, and the left eigenvector
, corresponding to an eigenvalue
, are defined by:
The function can compute the eigenvectors corresponding to selected eigenvalues, or it can compute all the eigenvectors. In the latter case the eigenvectors may optionally be pre-multiplied by an input matrix
. Normally
is a unitary matrix from the Schur factorization of a matrix
as
; if
is a (left or right) eigenvector of
, then
is an eigenvector of
.
The eigenvectors are computed by forward or backward substitution. They are scaled so that
.
- NE_ALLOC_FAIL
Dynamic memory allocation failed.
- NE_BAD_PARAM
On entry, argument had an illegal value.
- NE_ENUM_INT_2
On entry, , , .
Constraint: if or ,
;
if ,
.
On entry, , and .
Constraint: if or , ;
if , .
On entry, , , .
Constraint: if or ,
;
if ,
.
On entry, , and .
Constraint: if or , ;
if , .
- NE_INT
On entry, .
Constraint: , where is the number of selected eigenvectors.
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
On entry, and .
Constraint: .
- NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
If
is an exact right eigenvector, and
is the corresponding computed eigenvector, then the angle
between them is bounded as follows:
where
is the reciprocal condition number of
.
The condition number
may be computed by calling
nag_ztrsna (f08qyc).
The real analogue of this function is
nag_dtrevc (f08qkc).