This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.

Working on a Java project, I face the following problem:

I would like to solve a linear equation system of the form

A * x = b.

Therein, the matrix ‘A’ and both vectors ‘x’ and ‘b’ contain several thousand array elements. ‘A’, however, is a sparse matrix and only a small number of diagonals of ‘A’ may contain values that differ from zero.

The use of Java standard solvers results in very long computation times as these solvers normally do not use the specific properties of sparse matrices. Therefore I would like to ask if someone knows packages that include linear equation solvers which are able to solve systems as described above in a reasonable time.

The Apache Commons Math library can handle linear equation systems, but it's not optimized for sparse matrices, so it'll most likely not work with systems of this size.

The Colt library hasn't been updated in a long time, but it does claim to support sparse matrices, so may be worth checking out.