f08qxf 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
f08psf, for example.
The right eigenvector
, and the left eigenvector
, corresponding to an eigenvalue
, are defined by:
The routine 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
.
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
f08qyf.
Background information to multithreading can be found in the
Multithreading documentation.
Please consult the
X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the
Users' Note for your implementation for any additional implementation-specific information.
The real analogue of this routine is
f08qkf.