Project details for jblas

Screenshot jblas 1.1.1

by mikio - September 1, 2010, 13:53:51 CET [ Project Homepage BibTeX Download ]

view (13 today), download ( 1 today ), 0 subscriptions

OverallWhole StarWhole StarWhole Star1/2 StarEmpty Star
FeaturesWhole StarWhole StarWhole Star1/2 StarEmpty Star
UsabilityWhole StarWhole StarWhole Star1/2 StarEmpty Star
DocumentationWhole StarWhole StarWhole Star1/2 StarEmpty Star
(based on 2 votes)

jblas is a fast linear algebra library for Java. jblas is based on BLAS and LAPACK, the de-facto industry standard for matrix computations, and uses state-of-the-art implementations like ATLAS for all its computational routines, making jBLAS very fast.

jblas can is essentially a light-wight wrapper around the BLAS and LAPACK routines. These packages have originated in the Fortran community which explains their archaic API. On the other hand modern implementations are hard to beat performance wise. jblas aims to make this functionality available to Java programmers such that they do not have to worry about writing JNI interfaces and calling conventions of Fortran code.

jblas is the only actively developed matrix library which is based on native implementations (The other such project is netlib-java which is apparently not maintained anymore). Therefore, jblas is much faster than other projects, in particular for large complex tasks like matrix-matrix multiplication, solving linear equations, or eigenproblems.

There also exists a wrapper for jblas from jruby. See the project's page

Changes to previous version:

Changes from 1.0:

  • Added singular value decomposition
  • Fixed bug with returning complex values
  • Many other minor improvements
BibTeX Entry: Download
Supported Operating Systems: Cygwin, Linux, Windows, Mac Os X
Data Formats: Ascii
Tags: Linear Algebra, Matrix, Icml2010
Archive: download here

Other available revisons

Version Changelog Date

Changes from 1.0:

  • Added singular value decomposition
  • Fixed bug with returning complex values
  • Many other minor improvements
September 1, 2010, 13:53:51

Release 1.0 - December 22, 2009

Changes from 0.2:

  • Default jar now contains JNI libraries including ATLAS for Windows, Linux, and Mac OS X, 32bit and 64bit (64bit version for Windows missing right now)

  • Build for Mac OS X

  • configure script has been overhauled.

  • Matrix classes are now serializable.

  • added LAPACK functions [sdcz]geev, [sd]getrf, [sd]potrf

  • Added interfaces ConvertsToDoubleMatrix and ConverstToFloatMatrix

  • Added class Decompose which provides LUDecomposition (based on getrf), and Cholesky decomposition (based on potrf)

  • Matrix classes:

  • Added read-only AbstractList views for elements, rows, and columns for better interfacing with Java's collection API.

  • Added matrix exponentials (MatrixFunctions.expm) based on Pade approximation provided by Jan Saptra Müller. These should be pretty fast!

  • Added prod() which returns the product of all elements.

  • Added project() which projects one vector on another.

  • Added diviRowVector().

  • Added loadCSVFile().

  • Added MatrixFunctions.min() and .max() for integers.

  • Added Permutations class for generating random permutations and subsets based on the algorithms from Knuth's "The Art of Computer Programming", Vol. 2.

December 22, 2009, 10:47:12

Release v2.0 - May 8, 2009

Release v2.0 mostly adds features to the build process and renames some packages and classes to make the structure simpler. No new significant functionality has been added.

Changes from version v1.0:

  • fixed a bug in DoubleMatrix.copy()
  • Renamed packages to make structure simpler -> org.jblas -> org.jblas.exceptions -> org.jblas.ranges org.jblas.core -> moved content to org.jblas and org.jblas.util

  • Renamed classes

Blas -> NativeBlas

  • Build process can now generate different kinds of jar files, and also generate shared libraries which are statically linked against BLAS, LAPACK or ATLAS. You can also generate a multiplatform jar file which contains shared libraries for different platforms.

  • Generated wrapper code has been optimized a bit:

  • in the lapack wrapper with automatic workspace allocation, only small dummy arrays are passed in the workspace query, meaning that the real arrays are only passed once, not twice.

  • The wrapper now also parses information whether output variables are input or output and releases the arrays with JNI_ABORT in case they are not output variables. This should also reduce the amount of copying.

May 8, 2009, 12:34:39

added logo to mloss page

March 30, 2009, 14:37:03


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.