template <class LapackMatA, class LapackMatVL, class LapackMatVR, class VectorComplex> int geev(int jobv, LapackMatA& a, VectorComplex& w, LapackMatVL& vl, LapackMatVR& vr) ;
|
Compute for an N-by-N non-symmetric matrix A, the eigenvalues, and, optionally, the left and/or right eigenvectors (simple driver).
- jobv (IN - int) Specifies which eigenvectors to solve for (left, right, both, or neither). One of four values:
GEEV_CALC_LEFT - function computes left eigenvectors.
GEEV_CALC_RIGHT - function computes right eigenvectors.
GEEV_CALC_BOTH - function computes both left and right eigenvectors.
GEEV_CALC_NONE - function computes neither left nor right eigenvectors.
- a (IN/OUT - matrix(M,N)) The coefficient matrix A on entry, and is overwritten on exit.
- w (OUT - vector(N)) Std::Complex Vector with same base precision as A. The computed real and imaginary parts of the eigenvectors.
- vl (OUT - matrix(N,N)) Matrix of same numerical type as A. Used to store left eigenvectors if they are computed.
- vr (OUT - matrix(N,N)) Matrix of same numerical type as A. Used to store right eigenvectors if they are computed.
- info (OUT - int)
0 : function completed normally
< 0 : The ith argument, where i = abs(return value) had an illegal value.
> 0 : The QR algorithm failed to compute all the eigenvalues and no eigenvectors have been computed.
|