Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
jblas – Linear Algebra for Java
jblas is a linear algebra library for Java which uses BLAS and LAPACK libraries for maximum performance. BLAS and LAPACK are very large libraries dating back several decades with the original version being written in FORTRAN. BLAS (Basic Linear Algebra Subroutines) covers basic operations like vector addition, vector copying, and also matrix-vector and matrix-matrix multiplication.
LAPACK covers more high-level matrix routines, as for example, solving linear equations, or computing eigenvalues. LAPACK typically uses BLAS for all the low-level computations. High performance libraries for these libraries exist, often consisting of hand-tuned assembler code for the innermost loops. One very popular open source variant is ATLAS, which automatically tunes the innermost loops for maximum throughput.
Here are some pointers do get you started (see also the list on the right hand side)
- Very Brief Introduction: A small example showing how to construct a matrix, and perform some computations.
- LAPACK Coverage, Supported Platforms: Some information on what jblas covers and where you can run it.
- Java Native Code Background: For those wanting to know about limitations of JNI relevant for jblas.
- Benchmarks: Some links to benchmarks.
- Future Plans: A list of features I’d like to implement eventually.
- Multithreaded ATLAS: Some notes on using multithreaded ATLAS.
If you run into odd error messages or bugs, first check these pages: