Hi all, on the weekend, I committed the port of JAMA to commons-math.
It is composed of the following changes (splitting up the JAMA code in more manageable parts): * add a HessenbergTransformer to transform a general real matrix to Hessenberg form * add a SchurTransformer to transform a matrix in Hessenberg form to (quasi) Schur form * update EigenvalueDecomposition to support non-symmetric matrices The results are the same as for JAMA. I have also checked with eigen (c++ lib), which is also based on JAMA, but there the results differ slightly. As eigen is under GPL, I sticked to the original JAMA code so far. What is still missing: * the internal DecompositionSolver currently only works for real eigenvalues, not for complex ones * review of certain double comparisons (original code did not use epsilons at some places -> might be intentional / problematic) * more tests Any help is welcome, if anybody has the time / expertise to do some meaningful test cases I would be very grateful. In general, I tried to stick to the existing interface, not changing anything to keep backwards compatibility for 3.1. For 4.0 we should change the interface to better support complex values imho. Thanks in advance, Thomas