Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-269

Use F2J translated BLAS/LAPACK

    XMLWordPrintableJSON

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

      Commons Math currently uses hand-crafted BLAS/LAPACK-like methods, whereas the F2J has maintained a full Java translation of the BLAS and LAPACK fortran code, and is applicable to most of the scientific code built on top of those libraries (e.g. ARPACK). It enables maintenance to BLAS/LAPACK to be handled by the netlib team, even for the Java translation. BLAS and LAPACK are industry standard APIs.

      This proposal is to incorporate the translations into the commons-math project. A follow-up RFE will to define the API to be used in place of the existing code (i.e. incorporate netlib-java). I do not recommend making the F2J translations a part of the public API.

      The code translated by F2J follows the same BSD licence as the netlib libraries. I understand this is compatible with the Apache licence.

      F2J translations can be directed to any package name, currently they output in the "org.netlib.

      {blas,lapack}

      " domain, but commons-math may prefer to use "org.apache.commons.math.netlib".

      There is a caveat: the translation of Fortran code introduces a language feature not available in Java - the GOTO statement. Java translations are post-compile processed by a "javab" tool (distributed with F2J) which augments the bytecode and allows the code to behave as the Fortran original. This rules out the possibility of simply including the source code in the commons-math tree, unless the javab tool becomes part of the build process.

      The alternative is to maintain a custom binary (built using F2J from netlib sources), or to use a maven dependency.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              fommil Sam Halliday
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: