| 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.
  |