Universal Java Matrix Package

author: Arndt Holger, Freelance IT consultant
published: July 20, 2010,   recorded: June 2010,   views: 6410


Related Open Educational Resources

Related content

Report a problem or upload files

If you have found a problem with this lecture or would like to send us extra material, articles, exercises, etc., please use our ticket system to describe your request and upload the data.
Enter your e-mail into the 'Cc' field, and we will keep you updated with your request's status.
Lecture popularity: You need to login to cast your vote.


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!

See Also:

Download slides icon Download slides: icml2010_holger_ujmp_01.pdf (444.8 KB)

Download slides icon Download slides: icml2010_holger_ujmp_01.v1.pdf (339.2 KB)

Download slides icon Download slides: icml2010_holger_ujmp_01.ppt (892.0 KB)

Help icon Streaming Video Help

Link this page

Would you like to put a link to this lecture on your homepage?
Go ahead! Copy the HTML snippet !

Write your own review or comment:

make sure you have javascript enabled or clear this field: