I am interested in applying LAPACK to the eigenvalue problem for arbitrary complex-valued matrices (non-symmetric, non-Hermitian). In the past, I have written my own algorithms for this (involving transformations to Hessenberg, then to Schur form, etc.) and I have used other incarnations of LAPACK for this task as well. For various reasons, I'm heading to IMKL now.
Looking over the description of routines included in IMKL for the nonsymmetric eigenproblem, I noticed a 'driver routines' geev and geevx, which consist of a series of calls to several functions which should output eigenvalues and eigenvectors.I also note several 'computational routines' which perform various transformations on complex-valued matrices. All of this leads to some questions:
1) Generically, what is the difference between a computational routine and a driver rountine? Does a driver routine consist of a single function call which activates the various functions listed under it, or do I have to implement the sequence myself? (Other commercializations of LAPACK I have used have sort of an umbrella function, where one call does it all, when you want to perform a sequence of functions that could also be called individually).
2) When I see the term 'arbitrary matrix', does that generally imply arbitrary complex-valued matrix?
Any comments from users about using IMKL for arbitrary matrix eigenproblems are also appreciated.