FPL Statistics Group





Linear Algebra for Statistics Java Package

This package contains unofficial Java versions of many of the BLAS (Basic Linear Algebra Subroutines), and the LINPACK Cholesky decomposition (dpofa, dposl, and dpodi), QR decomposition (dqrdc and dqrsl), singular value decomposition (dsvdc), and LU decomposition (dgefa, dgesl, and dgedi) routines. The nonprofit Society for Industrial and Applied Mathematics (SIAM) sells copies of the LINPACK Users' Guide.


Other sources of Java linear algebra software:

New as of 8/7/98: Numerical analysts at MathWorks and NIST have combined to produce a public domain Java linear algebra package called JAMA. (MathWorks maintains links to a variety of Java-based tools for science and engineering at http://www.mathtools.net/Java/index.html.)

New as of 2/24/99: G.W. Stewart has produced a public domain Java linear algebra package called Jampack.

New as of 7/21/99: A US Government NIST (National Institute of Standards and Technology) site links to a wide variety of numerical Java resources.

New as of 7/21/99: Links to proprietary Java linear algebra packages.


Warning!!! --- Cholesky Decomposition --- Warning!!!

While doing some testing on 2/8/03 I came across a case in which CholTest_f77 and CholTest_j yielded poor results (random starting value = 412323, n = 20, randlow = .1, randhigh = 10). I will try to investigate this by 4/15/03.



Warning!!!

DISCLAIMER OF WARRANTIES

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. THE AUTHOR/TRANSLATOR DOES NOT WARRANT, GUARANTEE OR MAKE ANY REPRESENTATIONS REGARDING THE SOFTWARE OR DOCUMENTATION IN TERMS OF THEIR CORRECTNESS, RELIABILITY, CURRENTNESS, OR OTHERWISE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. IN NO CASE WILL ANY PARTY INVOLVED WITH THE CREATION OR DISTRIBUTION OF THE SOFTWARE BE LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF THIS SOFTWARE.

Sorry about that.

Documentation

Here is the documentation generated by javadoc. The routines are also documented in the code.

Installation

The code is available in compressed tar, Windows 95 zip, and Windows 98 and later zip form. Alternatively, the code comes in twenty-five files:
  1. Blas_f77.java,
  2. Cholesky_f77.java,
  3. CholTest_f77.java,
  4. QR_f77.java,
  5. QRTest_f77.java,
  6. SVDC_f77.java,
  7. SVDCTest_f77.java,
  8. LU_f77.java,
  9. LUTest_f77.java,
  10. Blas_j.java,
  11. Cholesky_j.java,
  12. CholTest_j.java,
  13. QR_j.java,
  14. QRTest_j.java,
  15. SVDC_j.java,
  16. SVDCTest_j.java,
  17. LU_j.java,
  18. LUTest_j.java,
  19. Cholesky.java,
  20. Triangular.java,
  21. CholTest.java,
  22. NotPosDefException.java,
  23. SVDCException.java,
  24. NotFullRankException.java,
  25. Console.java.

Given the manner in which the routines are currently written, you will need to import them (see the beginning of CholTest_f77.java). All of the classes will have to be placed in subdirectories of a directory in your CLASSPATH. For the linear algebra classes, this subdirectory will have to be called linear_algebra. Console.class will have to be placed in a subdirectory called corejava.

Note that if you install the software in this manner, then to run, for example, CholTest_f77 you will have to issue the command:

java linear_algebra.CholTest_f77
Alternatively, you could remove the package statements in the *.java files (and the import linear_algebra and import corejava statements from CholTest_f77.java, QRTest_f77.java, SVDCTest_f77.java, LUTest_f77.java, CholTest_j.java, QRTest_j.java, SVDCTest_j.java, LUTest_j.java, and CholTest.java), and compile these files in the same directory in which you are compiling the java code that calls them.

Console.java

Console.java is software described in Cornell and Horstmann's Core Java (SunSoft Press/Prentice-Hall). (I like this book.) It may be used for non-commerical purposes. I only make use of it in the testing routines. It is not part of Blas_f77.java, Cholesky_f77.java, QR_f77.java, SVDC_f77.java, LU_f77.java, Blas_j.java, Cholesky_j.java, QR_j.java, SVDC_j.java, LU_j.java, Cholesky.java, or Triangular.java.

Support

If you have questions about this software, or suggestions for improvement, please contact me at sverrill@fs.fed.us or 608-231-9375. Also see this link to the FPL Statistics Group.

Bugs


[Forest Service] [Forest Products Lab] [FPL Statistics Group]


Last modified on 4/3/03.

As of last midnight, this page had been accessed times.