Software:Jblas: Linear Algebra for Java

From HandWiki
Revision as of 15:52, 9 February 2024 by John Stpola (talk | contribs) (linkage)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Linear algebra library
Jblas: Linear Algebra for Java
Original author(s)Mikio L. Braun
Stable release
1.2.4 / May 12, 2015 (2015-05-12)
Operating systemCross-platform
TypeLibrary
LicenseBSD Revised
Websitejblas.org

jblas is a linear algebra library, created by Mikio Braun, for the Java programming language built upon BLAS and LAPACK. Unlike most other Java linear algebra libraries, jblas is designed to be used with native code through the Java Native Interface (JNI) and comes with precompiled binaries. When used on one of the targeted architectures, it will automatically select the correct binary to use and load it. This allows it to be used out of the box and avoid a potentially tedious compilation process. jblas provides an easier to use high level API on top of the archaic API provided by BLAS and LAPACK, removing much of the tediousness.

Since its initial release, jblas has been gaining popularity in scientific computing. With applications in a range of applications, such as text classification,[1] network analysis,[2] and stationary subspace analysis.[3] It is part of software packages, such as JLabGroovy,[4] and Universal Java Matrix Library (UJMP).[5] In a performance study of Java matrix libraries,[6] jblas was the highest performing library, when libraries with native code are considered.

Capabilities

The following is an overview of jblas's capabilities, as listed on the project's website:

  • Eigen – eigendecomposition
  • Solve – solving linear equations
  • Singular – singular value decomposition
  • Decompose – LU, Cholesky, ...
  • Geometry – centering, normalizing, ...

Usage example

Example of Eigenvalue Decomposition:

DoubleMatrix[] evd = Eigen.symmetricEigenvectors(matA);
DoubleMatrix V = evd[0];
DoubleMatrix D = evd[1];

Example of matrix multiplication:

DoubleMatrix result = matA.mmul(matB);

See also

References

  1. C. Dharmadhikar, Shweta; Maya Ingle; Parag Kulkarn (July 2012). "A Novel Multi label Text Classification Model using Semi supervised learning". International Journal of Data Mining & Knowledge Ma Nagement Process (IJDKP) 2 (4). 
  2. Davis, Nicholas; Ahwan Pandey; B. A. McKinney (2011). "Real-world comparison of CPU and GPU implementations of SNPrank: a network analysis tool for GWAS". Bioinformatics 27 (2): 284–285. doi:10.1093/bioinformatics/btq638. PMID 21115438. 
  3. Muller, Jan Saputra; Paul von Bunau; Frank C. Meinecke; Franz J. Kiraly; Klaus-Robert Muller (2011). SSA Toolbox 1.3 Manual. https://github.com/downloads/paulbuenau/SSA-Toolbox/ssa_toolbox_manual-1.3.pdf. Retrieved September 25, 2013. 
  4. Papadimitriou, Stergios. "JLabGroovy". https://code.google.com/p/jlabgroovy/. Retrieved September 23, 2013. 
  5. Arndt, Holger. "Universal Java Matrix Package". http://sourceforge.net/projects/ujmp/. Retrieved September 25, 2013. 
  6. Abeles, Peter. "Java Matrix Benchmark". https://code.google.com/p/java-matrix-benchmark/. Retrieved September 23, 2013.