Tuesday, December 13, 2005

Math libraries for Java?

I drop in on the #classpath channel of IRC network, where the #cdk channel runs too. The #classpath channel is for the Classpath project which is developing the free Java libraries used by most open source virtual machines.

A item was mentioned "Java Is So 90s". It lead to a funny discussion about what that would make C/C++ and Fortran. A more serious question was brought up: where are the efficient and super fast Java linear algebra and complex number libraries?

There is Weka but it is more aimed at data analysis. I believe it has support principle component analysis, so it must have singular value decomposition. There is a book called Java Number Cruncher: The Java Programmer's Guide to Numerical Computing by Ronald Mak, 2003, Prentice Hall.

After some further asking about it on the channel, they mentioned the Apache commons math project, which seems promising. The website mentions complex numbers, linear algebra, statistics and numerical analysis, but have not looked at the full API, so not sure how well populated these areas are.

Anyone, with experience in the area of numerical computing and Java?


  1. There is also Java Numerics with lots of links.

  2. PCA doesn't require SVD. It can also be carried out by getting the eigenvectors of the covariance matrix (but this is not supposed to be so numerically stable).