A couple of years ago, I was looking for a Java library for matrix computations, which was easy to use, versatile enough to handle different types of data, supports sparse matrices, is scalable to many rows/columns/dimensions and, of course, provided multi-threaded methods to yield high performance. Well, finally I ended up developing my own library, the Universal Java Matrix Package, because I could not find everything that I needed in one single package.

However, If you don't need sparse matrices, support for different data tyes, or many dimensions, there are quite a few options from which you can chose. While JAMA and Colt are the most popular libraries, their performance is very poor compared to other alternatives, since they don't support multi-threaded operations. Here is a list of alternatives:

Here are other links to matrix resources on the web:

Here is a list of Java libraries for linear algebra with their features. Hope this helps you to pick the best library for you!

These are the features of the **Colt** library:

- Colt Current Version: 1.2.0
- Colt Latest Release: 2004
- Colt License: BSD
- Colt Supports Java 1.4
- Colt Supports Java 5
- Colt Supports Java 6
- Colt Supports Java 7
- Colt Supports Java 8
- Colt Stores Dense Data in Single Array
- Colt Stores Sparse Data in DOK (dictionary of key-value pairs)
- Colt Can Store Double Values
- Colt Can Store Strings
- Colt Can Store Objects
- Colt Supports 2D Matrix
- Colt Supports 3D Matrix
- Colt Supports In-Place Operations
- Colt Supports Matrix Transpose: yes (flags matrix as transposed)
- Colt Supports Matrix Multiply/Divide
- Colt Supports Plus/Minus
- Colt Supports Matrix Inverse
- Colt Supports Solve Linear System: square, tall
- Colt Supports LU Decomposition: square, tall
- Colt Supports QR Decomposition: square, tall
- Colt Supports Singular Value Decomposition: all
- Colt Supports Cholesky Decomposition
- Colt Supports Eigen Decomposition
- Colt Matrix is Serializable
- Colt Number of Values per Dimension: 2
^{31}-1 - Colt Maximum Matrix Size: 16GB (Single Array)
- Colt Homepage: Colt Homepage

These are the features of the **Commons Math** library:

- Commons Math Current Version: 3.2
- Commons Math Latest Release: 2013
- Commons Math License: Apache
- Commons Math Supports Java 5
- Commons Math Supports Java 6
- Commons Math Supports Java 7
- Commons Math Supports Java 8
- Commons Math Stores Dense Data in 2D Array
- Commons Math Stores Dense Data in Block Storage
- Commons Math Stores Sparse Data in DOK (dictionary of key-value pairs)
- Commons Math Can Store Double Values
- Commons Math Can Store BigDecimal Values
- Commons Math Can Store Strings
- Commons Math Can Store Objects
- Commons Math Can Store Generic Objects
- Commons Math Can Store Complex Numbers
- Commons Math Supports 2D Matrix
- Commons Math Supports In-Place Operations
- Commons Math Supports Matrix Transpose
- Commons Math Supports Matrix Multiply/Divide
- Commons Math Supports Plus/Minus
- Commons Math Supports Matrix Inverse
- Commons Math Supports Solve Linear System: square, tall
- Commons Math Supports LU Decomposition: square (non-singular matrices only)
- Commons Math Supports QR Decomposition: all
- Commons Math Supports Singular Value Decomposition: all
- Commons Math Supports Cholesky Decomposition
- Commons Math Supports Eigen Decomposition: yes (symmetric matrices only)
- Commons Math Matrix is Serializable
- Commons Math Number of Values per Dimension: 2
^{31}-1 - Commons Math Maximum Matrix Size: ~64GB (RAM)
- Commons Math Homepage: Commons Math Homepage

These are the features of the **EJML** library:

- EJML Current Version: 0.25
- EJML Latest Release: 2014
- EJML License: Apache
- EJML Supports Java 6
- EJML Supports Java 7
- EJML Supports Java 8
- EJML Stores Dense Data in Single Array
- EJML Stores Dense Data in Block Storage
- EJML Can Store Double Values
- EJML Supports 2D Matrix
- EJML Supports In-Place Operations
- EJML Supports Matrix Transpose
- EJML Supports Matrix Multiply/Divide
- EJML Supports Plus/Minus
- EJML Supports Matrix Inverse
- EJML Supports Solve Linear System: square, tall
- EJML Supports LU Decomposition: all
- EJML Supports QR Decomposition: square
- EJML Supports Singular Value Decomposition: all
- EJML Supports Cholesky Decomposition: yes (error in implementation)
- EJML Supports Eigen Decomposition
- EJML Matrix is Serializable
- EJML Number of Values per Dimension: 2
^{31}-1 - EJML Maximum Matrix Size: 16GB (Single Array)
- EJML Homepage: EJML Homepage

These are the features of the **JAMA** library:

- JAMA Current Version: 1.0.3
- JAMA Latest Release: 2012
- JAMA License: PD
- JAMA Supports Java 1.4
- JAMA Supports Java 5
- JAMA Supports Java 6
- JAMA Supports Java 7
- JAMA Supports Java 8
- JAMA Stores Dense Data in 2D Array
- JAMA Can Store Double Values
- JAMA Supports 2D Matrix
- JAMA Supports Matrix Transpose
- JAMA Supports Matrix Multiply/Divide
- JAMA Supports Plus/Minus
- JAMA Supports Matrix Inverse
- JAMA Supports Solve Linear System: square, tall
- JAMA Supports LU Decomposition: square, tall
- JAMA Supports QR Decomposition: square, tall
- JAMA Supports Singular Value Decomposition: square, tall
- JAMA Supports Cholesky Decomposition
- JAMA Supports Eigen Decomposition
- JAMA Matrix is Serializable
- JAMA Number of Values per Dimension: 2
^{31}-1 - JAMA Maximum Matrix Size: ~64GB (RAM)
- JAMA Homepage: JAMA Homepage

These are the features of the **jblas** library:

- jblas Current Version: 1.2.3
- jblas Latest Release: 2013
- jblas License: BSD
- jblas Supports Java 5
- jblas Supports Java 6
- jblas Supports Java 7
- jblas Supports Java 8
- jblas Stores Dense Data in Single Array
- jblas Can Store Double Values
- jblas Can Store Float Values
- jblas Can Store Complex Numbers
- jblas Supports 2D Matrix
- jblas Uses Multi-Threaded Operations: yes (using native machine code)
- jblas Supports In-Place Operations
- jblas Supports Matrix Transpose
- jblas Supports Matrix Multiply/Divide
- jblas Supports Plus/Minus
- jblas Supports Matrix Inverse
- jblas Supports Solve Linear System: square
- jblas Supports LU Decomposition: all
- jblas Supports Cholesky Decomposition
- jblas Supports Eigen Decomposition: yes (symmetric matrices only)
- jblas Matrix is Serializable
- jblas Number of Values per Dimension: 2
^{31}-1 - jblas Maximum Matrix Size: 16GB (Single Array)
- jblas Homepage: jblas Homepage

These are the features of the **JLinAlg** library:

- JLinAlg Current Version: 0.6
- JLinAlg Latest Release: 2009
- JLinAlg License: GPL
- JLinAlg Supports Java 6
- JLinAlg Supports Java 7
- JLinAlg Supports Java 8
- JLinAlg Stores Dense Data in 2D Array
- JLinAlg Can Store Double Values
- JLinAlg Can Store BigDecimal Values
- JLinAlg Can Store Strings
- JLinAlg Can Store Objects
- JLinAlg Can Store Generic Objects
- JLinAlg Can Store Complex Numbers
- JLinAlg Supports 2D Matrix
- JLinAlg Supports In-Place Operations
- JLinAlg Supports Matrix Transpose
- JLinAlg Supports Matrix Multiply/Divide
- JLinAlg Supports Plus/Minus
- JLinAlg Supports Matrix Inverse
- JLinAlg Supports Solve Linear System: no (only for $A \cdot X = \mbox{vector}$)
- JLinAlg Matrix is Serializable
- JLinAlg Number of Values per Dimension: 2
^{31}-1 - JLinAlg Maximum Matrix Size: ~64GB (RAM)
- JLinAlg Homepage: JLinAlg Homepage

These are the features of the **JMathArray** library:

- JMathArray Current Version:
- JMathArray Latest Release: 2008
- JMathArray License: BSD
- JMathArray Supports Java 5
- JMathArray Supports Java 6
- JMathArray Supports Java 7
- JMathArray Supports Java 8
- JMathArray Stores Dense Data in 2D Array
- JMathArray Can Store Double Values
- JMathArray Supports 2D Matrix
- JMathArray Supports Matrix Transpose
- JMathArray Supports Matrix Multiply/Divide
- JMathArray Supports Plus/Minus
- JMathArray Supports Matrix Inverse
- JMathArray Supports Solve Linear System: square, tall
- JMathArray Supports LU Decomposition: square, tall
- JMathArray Supports QR Decomposition: square, tall
- JMathArray Supports Singular Value Decomposition: square, tall
- JMathArray Supports Cholesky Decomposition
- JMathArray Supports Eigen Decomposition
- JMathArray Matrix is Serializable
- JMathArray Number of Values per Dimension: 2
^{31}-1 - JMathArray Maximum Matrix Size: ~64GB (RAM)
- JMathArray Homepage: JMathArray Homepage

These are the features of the **JMatrices** library:

- JMatrices Current Version: 0.6
- JMatrices Latest Release: 2004
- JMatrices License: LGPL
- JMatrices Supports Java 1.4
- JMatrices Supports Java 5
- JMatrices Supports Java 6
- JMatrices Supports Java 7
- JMatrices Supports Java 8
- JMatrices Stores Dense Data in 2D Array
- JMatrices Can Store Double Values
- JMatrices Can Store BigDecimal Values
- JMatrices Can Store Complex Numbers
- JMatrices Supports 2D Matrix
- JMatrices Supports Matrix Transpose
- JMatrices Supports Matrix Multiply/Divide
- JMatrices Supports Plus/Minus
- JMatrices Supports Matrix Inverse
- JMatrices Supports Solve Linear System: square, tall
- JMatrices Supports LU Decomposition: square, tall
- JMatrices Supports QR Decomposition: square, tall
- JMatrices Supports Singular Value Decomposition: square
- JMatrices Supports Cholesky Decomposition
- JMatrices Supports Eigen Decomposition
- JMatrices Matrix is Serializable
- JMatrices Number of Values per Dimension: 2
^{31}-1 - JMatrices Maximum Matrix Size: ~64GB (RAM)
- JMatrices Homepage: JMatrices Homepage

These are the features of the **JSci** library:

- JSci Current Version: 1.5.2
- JSci Latest Release: 2009
- JSci License: LGPL
- JSci Supports Java 1.4
- JSci Supports Java 5
- JSci Supports Java 6
- JSci Supports Java 7
- JSci Supports Java 8
- JSci Stores Dense Data in 2D Array
- JSci Stores Sparse Data in Yale Format
- JSci Can Store Double Values
- JSci Can Store Complex Numbers
- JSci Supports 2D Matrix
- JSci Supports Matrix Transpose
- JSci Supports Matrix Multiply/Divide
- JSci Supports Plus/Minus
- JSci Supports Matrix Inverse
- JSci Supports Solve Linear System: no (only for $A \cdot X = \mbox{vector}$)
- JSci Supports LU Decomposition: square (non-singular matrices only)
- JSci Supports QR Decomposition: square
- JSci Supports Singular Value Decomposition: square
- JSci Supports Cholesky Decomposition
- JSci Supports Eigen Decomposition: yes (symmetric matrices only) (results not directly accessible)
- JSci Matrix is Serializable
- JSci Number of Values per Dimension: 2
^{31}-1 - JSci Maximum Matrix Size: ~64GB (RAM)
- JSci Homepage: JSci Homepage

These are the features of the **JScience** library:

- JScience Current Version: 4.3.1
- JScience Latest Release: 2007
- JScience License: BSD
- JScience Supports Java 5
- JScience Supports Java 6
- JScience Supports Java 7
- JScience Supports Java 8
- JScience Stores Dense Data in 2D Array
- JScience Stores Sparse Data in DOK (dictionary of key-value pairs)
- JScience Stores Sparse Data in LIL (list of lists)
- JScience Can Store Double Values
- JScience Can Store Strings
- JScience Can Store Objects
- JScience Can Store Generic Objects
- JScience Can Store Complex Numbers
- JScience Supports 2D Matrix
- JScience Uses Multi-Threaded Operations
- JScience Supports Matrix Transpose: yes (flags matrix as transposed)
- JScience Supports Matrix Multiply/Divide
- JScience Supports Plus/Minus
- JScience Supports Matrix Inverse
- JScience Supports Solve Linear System: square
- JScience Supports LU Decomposition: square (non-singular matrices only)
- JScience Number of Values per Dimension: 2
^{31}-1 - JScience Maximum Matrix Size: ~64GB (RAM)
- JScience Homepage: JScience Homepage

These are the features of the **la4j** library:

- la4j Current Version: 0.4.9
- la4j Latest Release: 2014
- la4j License: Apache
- la4j Supports Java 5
- la4j Supports Java 6
- la4j Supports Java 7
- la4j Supports Java 8
- la4j Stores Dense Data in 2D Array
- la4j Stores Sparse Data in CRS/CCS (compressed sparse row/column storare)
- la4j Can Store Double Values
- la4j Supports 2D Matrix
- la4j Supports In-Place Operations
- la4j Supports Matrix Transpose
- la4j Supports Matrix Multiply/Divide
- la4j Supports Plus/Minus
- la4j Supports Matrix Inverse
- la4j Supports Solve Linear System: square, tall
- la4j Supports LU Decomposition: square
- la4j Supports QR Decomposition: square, tall
- la4j Supports Singular Value Decomposition: all
- la4j Supports Cholesky Decomposition
- la4j Supports Eigen Decomposition
- la4j Matrix is Serializable
- la4j Number of Values per Dimension: 2
^{31}-1 - la4j Maximum Matrix Size: ~64GB (RAM)
- la4j Homepage: la4j Homepage

These are the features of the **Mantissa** library:

- Mantissa Current Version: 7.2
- Mantissa Latest Release: 2007
- Mantissa License: BSD
- Mantissa Supports Java 1.4
- Mantissa Supports Java 5
- Mantissa Supports Java 6
- Mantissa Supports Java 7
- Mantissa Supports Java 8
- Mantissa Stores Dense Data in Single Array
- Mantissa Can Store Double Values
- Mantissa Supports 2D Matrix
- Mantissa Supports In-Place Operations
- Mantissa Supports Matrix Transpose
- Mantissa Supports Matrix Multiply/Divide
- Mantissa Supports Plus/Minus
- Mantissa Supports Matrix Inverse
- Mantissa Supports Solve Linear System: square
- Mantissa Supports LU Decomposition: square (results not directly accessible)
- Mantissa Matrix is Serializable
- Mantissa Number of Values per Dimension: 2
^{31}-1 - Mantissa Maximum Matrix Size: 16GB (Single Array)
- Mantissa Homepage: Mantissa Homepage

These are the features of the **MTJ** library:

- MTJ Current Version: 1.0.1
- MTJ Latest Release: 2013
- MTJ License: LGPL
- MTJ Supports Java 5
- MTJ Supports Java 6
- MTJ Supports Java 7
- MTJ Supports Java 8
- MTJ Stores Dense Data in Single Array
- MTJ Stores Sparse Data in LIL (list of lists)
- MTJ Stores Sparse Data in CRS/CCS (compressed sparse row/column storare)
- MTJ Stores Sparse Data in CDS (compressed sparse diagonal)
- MTJ Can Store Double Values
- MTJ Supports 2D Matrix
- MTJ Uses Multi-Threaded Operations: yes (using native machine code)
- MTJ Supports In-Place Operations
- MTJ Supports Matrix Transpose
- MTJ Supports Matrix Multiply/Divide
- MTJ Supports Plus/Minus
- MTJ Supports Matrix Inverse
- MTJ Supports Solve Linear System: square, tall
- MTJ Supports LU Decomposition: all (error in implementation)
- MTJ Supports QR Decomposition: square, tall
- MTJ Supports Singular Value Decomposition: all
- MTJ Supports Cholesky Decomposition: yes (error in implementation)
- MTJ Supports Eigen Decomposition: yes (symmetric matrices only)
- MTJ Matrix is Serializable
- MTJ Number of Values per Dimension: 2
^{31}-1 - MTJ Maximum Matrix Size: 16GB (Single Array)
- MTJ Homepage: MTJ Homepage

These are the features of the **ojAlgo** library:

- ojAlgo Current Version: 35.0
- ojAlgo Latest Release: 2013
- ojAlgo License: MIT
- ojAlgo Supports Java 5
- ojAlgo Supports Java 6
- ojAlgo Supports Java 7
- ojAlgo Supports Java 8
- ojAlgo Stores Dense Data in Single Array
- ojAlgo Can Store Double Values
- ojAlgo Can Store Float Values
- ojAlgo Can Store BigDecimal Values
- ojAlgo Can Store Complex Numbers
- ojAlgo Supports 2D Matrix
- ojAlgo Uses Multi-Threaded Operations
- ojAlgo Supports In-Place Operations
- ojAlgo Supports Matrix Transpose: yes (flags matrix as transposed)
- ojAlgo Supports Matrix Multiply/Divide
- ojAlgo Supports Plus/Minus
- ojAlgo Supports Matrix Inverse
- ojAlgo Supports Solve Linear System: square, tall
- ojAlgo Supports LU Decomposition: all
- ojAlgo Supports QR Decomposition: all
- ojAlgo Supports Singular Value Decomposition: all
- ojAlgo Supports Cholesky Decomposition
- ojAlgo Supports Eigen Decomposition
- ojAlgo Matrix is Serializable
- ojAlgo Number of Values per Dimension: 2
^{31}-1 - ojAlgo Maximum Matrix Size: 16GB (Single Array)
- ojAlgo Homepage: ojAlgo Homepage

These are the features of the **Parallel Colt** library:

- Parallel Colt Current Version: 0.10.1
- Parallel Colt Latest Release: 2013
- Parallel Colt License: BSD
- Parallel Colt Supports Java 1.4
- Parallel Colt Supports Java 5
- Parallel Colt Supports Java 6
- Parallel Colt Supports Java 7
- Parallel Colt Supports Java 8
- Parallel Colt Stores Dense Data in Single Array
- Parallel Colt Stores Dense Data in 2D Array
- Parallel Colt Stores Sparse Data in DOK (dictionary of key-value pairs)
- Parallel Colt Stores Sparse Data in LIL (list of lists)
- Parallel Colt Stores Sparse Data in CRS/CCS (compressed sparse row/column storare)
- Parallel Colt Can Store Double Values
- Parallel Colt Can Store Float Values
- Parallel Colt Can Store Strings
- Parallel Colt Can Store Objects
- Parallel Colt Can Store Complex Numbers
- Parallel Colt Supports 2D Matrix
- Parallel Colt Supports 3D Matrix
- Parallel Colt Uses Multi-Threaded Operations
- Parallel Colt Supports In-Place Operations
- Parallel Colt Supports Matrix Transpose: yes (flags matrix as transposed)
- Parallel Colt Supports Matrix Multiply/Divide
- Parallel Colt Supports Plus/Minus
- Parallel Colt Supports Matrix Inverse
- Parallel Colt Supports Solve Linear System: square, tall
- Parallel Colt Supports LU Decomposition: square, tall
- Parallel Colt Supports QR Decomposition: square, tall
- Parallel Colt Supports Singular Value Decomposition: all
- Parallel Colt Supports Cholesky Decomposition
- Parallel Colt Supports Eigen Decomposition
- Parallel Colt Matrix is Serializable
- Parallel Colt Number of Values per Dimension: 2
^{31}-1 - Parallel Colt Maximum Matrix Size: ~64GB (RAM)
- Parallel Colt Homepage: Parallel Colt Homepage

These are the features of the **SST** library:

- SST Current Version: 1.11
- SST Latest Release: 2010
- SST License: LGPL
- SST Supports Java 5: yes (jar does not work with Java 5)
- SST Supports Java 6
- SST Supports Java 7
- SST Supports Java 8
- SST Stores Dense Data in Single Array
- SST Stores Sparse Data in DOK (dictionary of key-value pairs)
- SST Can Store Double Values
- SST Can Store Strings
- SST Can Store Objects
- SST Can Store Generic Objects
- SST Can Store Complex Numbers
- SST Supports 2D Matrix
- SST Supports 3D Matrix
- SST Supports >3D Matrix
- SST Supports In-Place Operations
- SST Supports Matrix Transpose
- SST Supports Matrix Multiply/Divide
- SST Supports Plus/Minus
- SST Supports Matrix Inverse
- SST Supports Singular Value Decomposition: all
- SST Supports Eigen Decomposition
- SST Number of Values per Dimension: 2
^{31}-1 - SST Maximum Matrix Size: 16GB (Single Array)
- SST Homepage: SST Homepage

These are the features of the **UJMP** library:

- UJMP Current Version: 0.3.0
- UJMP Latest Release: 2014
- UJMP License: LGPL
- UJMP Supports Java 5
- UJMP Supports Java 6
- UJMP Supports Java 7
- UJMP Supports Java 8
- UJMP Stores Dense Data in Single Array
- UJMP Stores Dense Data in 2D Array
- UJMP Stores Dense Data in Block Storage
- UJMP Stores Sparse Data in DOK (dictionary of key-value pairs)
- UJMP Stores Sparse Data in LIL (list of lists)
- UJMP Can Store Double Values
- UJMP Can Store Float Values
- UJMP Can Store BigDecimal Values
- UJMP Can Store Strings
- UJMP Can Store Objects
- UJMP Can Store Generic Objects
- UJMP Supports 2D Matrix
- UJMP Supports 3D Matrix
- UJMP Supports >3D Matrix
- UJMP Uses Multi-Threaded Operations
- UJMP Supports In-Place Operations
- UJMP Supports Matrix Transpose
- UJMP Supports Matrix Multiply/Divide
- UJMP Supports Plus/Minus
- UJMP Supports Matrix Inverse
- UJMP Supports Solve Linear System: square, tall
- UJMP Supports LU Decomposition: all
- UJMP Supports QR Decomposition: square, tall
- UJMP Supports Singular Value Decomposition: all
- UJMP Supports Cholesky Decomposition
- UJMP Supports Eigen Decomposition
- UJMP Can Import/Export CSV
- UJMP Can Import/Export JDBC
- UJMP Matrix is Serializable
- UJMP Number of Values per Dimension: 2
^{63}-1 - UJMP Maximum Matrix Size: ~4TB (Disk)
- UJMP Homepage: UJMP Homepage

These are the features of the **vecmath** library:

- vecmath Current Version: 1.5.2
- vecmath Latest Release: 2001?
- vecmath License: other
- vecmath Supports Java 5
- vecmath Supports Java 6
- vecmath Supports Java 7
- vecmath Supports Java 8
- vecmath Stores Dense Data in 2D Array
- vecmath Can Store Double Values
- vecmath Supports 2D Matrix
- vecmath Supports In-Place Operations
- vecmath Supports Matrix Transpose
- vecmath Supports Plus/Minus
- vecmath Supports Matrix Inverse
- vecmath Supports LU Decomposition: square (non-singular matrices only)
- vecmath Supports Singular Value Decomposition: square (error in implementation)
- vecmath Matrix is Serializable
- vecmath Number of Values per Dimension: 2
^{31}-1 - vecmath Maximum Matrix Size: ~64GB (RAM)
- vecmath Homepage: vecmath Homepage

And now everything in one huge table:

Colt | Commons Math | EJML | JAMA | jblas | JLinAlg | JMathArray | JMatrices | JSci | JScience | la4j | Mantissa | MTJ | ojAlgo | Parallel Colt | SST | UJMP | vecmath | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

Current Version | 1.2.0 | 3.2 | 0.25 | 1.0.3 | 1.2.3 | 0.6 | 0.6 | 1.5.2 | 4.3.1 | 0.4.9 | 7.2 | 1.0.1 | 35.0 | 0.10.1 | 1.11 | 0.3.0 | 1.5.2 | |

Latest Release | 2004 | 2013 | 2014 | 2012 | 2013 | 2009 | 2008 | 2004 | 2009 | 2007 | 2014 | 2007 | 2013 | 2013 | 2013 | 2010 | 2014 | 2001? |

License | BSD | Apache | Apache | PD | BSD | GPL | BSD | LGPL | LGPL | BSD | Apache | BSD | LGPL | MIT | BSD | LGPL | LGPL | other |

Supports Java 1.4 | ||||||||||||||||||

Supports Java 5 | ||||||||||||||||||

Supports Java 6 | ||||||||||||||||||

Supports Java 7 | ||||||||||||||||||

Supports Java 8 | ||||||||||||||||||

Stores Dense Data in Single Array | ||||||||||||||||||

Stores Dense Data in 2D Array | ||||||||||||||||||

Stores Dense Data in Block Storage | ||||||||||||||||||

Stores Sparse Data in DOK | ||||||||||||||||||

Stores Sparse Data in LIL | ||||||||||||||||||

Stores Sparse Data in Yale Format | ||||||||||||||||||

Stores Sparse Data in CRS/CCS | ||||||||||||||||||

Stores Sparse Data in CDS | ||||||||||||||||||

Can Store Double Values | ||||||||||||||||||

Can Store Float Values | ||||||||||||||||||

Can Store BigDecimal Values | ||||||||||||||||||

Can Store Strings | ||||||||||||||||||

Can Store Objects | ||||||||||||||||||

Can Store Generic Objects | ||||||||||||||||||

Can Store Complex Numbers | ||||||||||||||||||

Supports 2D Matrix | ||||||||||||||||||

Supports 3D Matrix | ||||||||||||||||||

Supports >3D Matrix | ||||||||||||||||||

Uses Multi-Threaded Operations | ||||||||||||||||||

Supports In-Place Operations | ||||||||||||||||||

Supports Matrix Transpose | ||||||||||||||||||

Supports Matrix Multiply/Divide | ||||||||||||||||||

Supports Plus/Minus | ||||||||||||||||||

Supports Matrix Inverse | ||||||||||||||||||

Supports Solve Linear System | ||||||||||||||||||

Supports LU Decomposition | ||||||||||||||||||

Supports QR Decomposition | ||||||||||||||||||

Supports Singular Value Decomposition | ||||||||||||||||||

Supports Cholesky Decomposition | ||||||||||||||||||

Supports Eigen Decomposition | ||||||||||||||||||

Can Import/Export CSV | ||||||||||||||||||

Can Import/Export JDBC | ||||||||||||||||||

Matrix is Serializable | ||||||||||||||||||

Number of Values per Dimension | 2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{31}-1 |
2^{63}-1 |
2^{31}-1 |

Maximum Matrix Size | 16GB (Single Array) | ~64GB (RAM) | 16GB (Single Array) | ~64GB (RAM) | 16GB (Single Array) | ~64GB (RAM) | ~64GB (RAM) | ~64GB (RAM) | ~64GB (RAM) | ~64GB (RAM) | ~64GB (RAM) | 16GB (Single Array) | 16GB (Single Array) | 16GB (Single Array) | ~64GB (RAM) | 16GB (Single Array) | ~4TB (Disk) | ~64GB (RAM) |

Homepage | Colt Homepage | Commons Math Homepage | EJML Homepage | JAMA Homepage | jblas Homepage | JLinAlg Homepage | JMathArray Homepage | JMatrices Homepage | JSci Homepage | JScience Homepage | la4j Homepage | Mantissa Homepage | MTJ Homepage | ojAlgo Homepage | Parallel Colt Homepage | SST Homepage | UJMP Homepage | vecmath Homepage |