The Universal Java Matrix Package (UJMP) is an open source Java library which provides sparse and dense matrix classes, as well as a large number of calculations for linear algebra like matrix multiplication or matrix inverse. Operations such as mean, correlation, standard deviation, replacement of missing values or the calculation of mutual information are supported also.
The Universal Java Matrix Package provides various visualization methods, import and export filters for a large number of file formats, and the possibility to link to tables in JDBC databases. Multi-dimensional matrices as well as generic matrices with a specified object type are supported and very large matrices with up to 2^63 rows and columns can be handled even when they do not fit into memory.
A central concept of UJMP is the separation of interfaces, abstract classes and their implementations, which makes it very easy to exchange the underlying data storage. Thus, a matrix in our framework can be an array of values in main memory, a file on disk or a table in an SQL database. In fact, the actual storage implementation becomes secondary and UJMP can even integrate other matrix libraries such as JAMA or Colt, making UJMP’s visualization and import and export filters available to these libraries.
On the other hand, UJMP can also decide to redirect calculations to other matrix libraries, depending on matrix size and computer hardware. UJMP uses multiple threads for calculations, which results in much better performance compared to JAMA or Colt on modern hardware.
UJMP also includes interfaces to Matlab, Octave and R, which makes it easy to perform calculations not available in Java.
While some parts of UJMP are pretty stable by now, a lot of development is still going on in other parts. Developers are welcome to contribute!
- Changes to previous version:
Initial Announcement on mloss.org.
- BibTeX Entry: Download
- Corresponding Paper BibTeX Entry: Download
- URL: Project Homepage
- Supported Operating Systems: Platform Independent
- Data Formats: Ascii, Binary, Matlab, Java Arrays, Lucene, Txt, Wav
- Tags: Large Scale, Matlab, Octave, Matrix Library, High Dimensional Data, Parallel, Algorithms, Pca, Missing Data, Lapack, Linear Algebra, Matrix, Matrix Factorization, Large Datasets, Java, Icml2010
- Archive: download here
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.