Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
2.1
-
None
-
None
-
None
Description
This is part of the proposal to integrate MTJ, netlib-java and commons-math which has been well received on the developers' list, @see http://www.nabble.com/commons-math,-matrix-toolkits-java-and-consolidation-tt23537813.html
This depends on issue MATH-269.
Netlib-java provides a wrapper layer around Java implementations of BLAS and LAPACK, the industry standard APIs for linear algebra calculation. This functionality would be of great benefit to commons-math both internally and as part of the public API.
A major advantage of using netlib-java rather than direct access to Java translations of BLAS/LAPACK is that natively optimised implementations can be configured at runtime. For most normal desktop machines, the performance difference is negligible (hey, Java is seriously fast these days!), but for machines with custom hardware and BLAS/LAPACK implementations (e.g. GPU, FPGA, otherwise parallel) the performance difference can be orders of magnitude.
The idea would be that commons-math would define an API and use it internally for linear algebra calculations. The decision to make this part of the public API can be decided afterward.
The author of netlib-java (i.e. me!) is more than happy to release this code under an Apache licence, however the APIs are copyright the authors of BLAS/LAPACK and therefore BSD licenced (which I understand is compatible).