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

Reply via email to