Inverse iteration failed to compute all the specified eigenvectors. If an eigenvector failed to converge, the corresponding column of v is set to zero.
On entry, while .
On entry, .
On entry, .
The QR algorithm failed to compute all the eigenvalues. No eigenvectors have been computed.
There are more than mest eigenvalues in the specified range. The actual number of eigenvalues in the range is returned in m. No eigenvectors have been computed.
Rerun with the second dimension of .
If is an exact eigenvalue, and is the corresponding computed value, then
where is a modestly increasing function of , is the machine precision, and is the reciprocal condition number of ; is the balanced form of the original matrix , and .
If is the corresponding exact eigenvector, and is the corresponding computed eigenvector, then the angle between them is bounded as follows:
where is the reciprocal condition number of .
8Parallelism and Performance
Background information to multithreading can be found in the Multithreading documentation.
f02gcc is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this function. Please also consult the Users' Note for your implementation for any additional implementation-specific information.
f02gcc first balances the matrix, using a diagonal similarity transformation to reduce its norm; and then reduces the balanced matrix to upper Hessenberg form , using a unitary similarity transformation: . The function uses the Hessenberg algorithm to compute all the eigenvalues of , which are the same as the eigenvalues of . It computes the eigenvectors of which correspond to the selected eigenvalues, using inverse iteration. It premultiplies the eigenvectors by to form the eigenvectors of ; and finally transforms the eigenvectors to those of the original matrix .
Each eigenvector is normalized so that , and the element of largest absolute value is real and positive.
The inverse iteration function may make a small perturbation to the real parts of close eigenvalues, and this may shift their moduli just outside the specified bounds. If you are relying on eigenvalues being within the bounds, you should test them on return from f02gcc.
The time taken by the function is approximately proportional to .
The function can be used to compute all eigenvalues and eigenvectors, by setting wl large and negative, and wu large and positive.
To compute those eigenvalues of the matrix whose moduli lie in the range , and their corresponding eigenvectors, where