Closed stylewarning closed 1 year ago
@jcguu95 Want to give this a quick look over?
Most of the complexity is parsing LAPACK's eigenvector format. They work hard to compress the representation a lot (e.g., real eigenvectors are inlined without complex components; only one of each pair of conjugate eigenvectors are stored). Now, EIG returns complex eigenvectors no matter what, even if by chance all vectors happen to be real. The eigenvalues, however, will be stored as either real or complex.
Thanks for your fix! I'm under a temporary contract that prohibits me from doing "substantial work", so I probably should not review the change in depth. I'd say as long as it works as expected it should be fine. Sorry for not being able to work for these months.
By the way, this is not as relevant but one thing that prevented me from making the changes directly back then was the extensive use of macros. Are they really necessary (can we change them to functions)? Replacing them with functions makes it easier to do changes interactively.
I think many of the macros can be vastly improved (e.g., individual DEFINE-FOO style macros) or eliminated altogether. I agree, the two layers of macros is not necessary, and it prioritized economy of typing over understandability.
Fixes #177.
Thanks to @jcguu95 for the investigation.