MAJA: Matrix Computation in Java

MAJA is a package for MAtrix computation in JAva. The package allows defining various kinds of structured matrices operating in an unified way; General, Symmetric, Sparse, Band, Toeplitz, Circulant matrices are implemented among the others. It is possible also to operate on Block matrices, Additive Structures, Tensor Products, Implicit Inverses and so on. The package organization is similar to the Java Collections API. It is easy to exploit the presence of more than one processor without affecting the final user code. The source code is platform independent and has been tested on Linux, Windows, and Macintosh computers; test benchmarks are presented, both on single and double-processor computers. Also examples of implementation of involved linear algebra algorithms are presented.