> > We have been using it in Carrot2. If I remember right this library is an > assembly of other libraries (including Jama) and some code written by the > author.
I fact, Colt uses Jama code only for SVD, AFAIR. It has its own implementation of matrix operations, which are slightly faster and have much more memory usage-friendly API (e.g. adding two matrices leaving the result in one of them) compared to Jama. Finally, Colt is 100% Java, but if you'd like some extra performance boost at the cost of using native code, you may want to check this: http://carrot2.svn.sourceforge.net/viewvc/carrot2/trunk/carrot2/components/carrot2-util-matrix/ This package provides an alternative implementation of Colt's dense matrix that is backed by NNI (http://ressim.berlios.de/nni.html). If a native ATLAS (http://acts.nersc.gov/atlas/index.html) is available (binaries for some platforms are provided in the repository), you may get 4-10x performance boost. Otherwise, the code defaults to standard Colt implementations. Also, carrot2-util-matrix provides implementations of various flavours of NMF decompositions (only for dense matrices though). Staszek
