Libraries
|
General Numerics
-
Apfloat is a
arbitrary precision floating-point arithmetic package.
-
ArciMath BigDecimal is an extension of java.math.BigDecimal based on IBM's Java Specification Request.
-
Colt is a free Java
toolkit containing data structures and utilities intended for high performance
computing.
-
A translation of the ELEFUNT
Elementary Functions Testing Package has been ported to Java.
The collection also contains extensions to java.lang.Math and new classes
for numeric output formatting.
-
IBM's AlphaWorks contains several tools of interest, including
-
JADE (Java Additions to
Default Environment) contains packages for numerical linear algebra,
for computing with units (e.g., kg., sec.), for using enumerated types,
and for creating objects from XML representations.
-
Java Numerical Toolkit (JNT)
-
Java Ultimate
Math Package, a framework for arbitrary precision computations.
-
The Java3D effort produced a matrix package for use in graphics.
-
JSci, a set of Java
packages for linear algebra, statistics, wavelets. Includes chart/graph
components and a partial MathML DOM implementation.
-
Jspline+
is a spline approximation library for Java developed at the
Institute of Computational Mathematics and Mathematical Geophysics (RAS) in
Novosibirsk. It contains classes for univariate and multivariate spline
approximation on scattered meshes, as well as core matrix and linear system
solution classes.
-
JMSL, a collection of
mathematical, statistical and charting classes, written in 100% Java, marketed
by Visual Numeric, Inc. Includes linear algebra, zero finding, splines,
ordinary differential equations, linear programming, nonlinear optimization,
FFTs, special functions, regression, ANOVA, ARMA, Kalman filters.
-
Least Squares Software markets the jCrunch[tm] class libraries for numerical computing.
-
mpjava
is a Java implementation of David Bailey's Fortran-based multiprecision
package. The package performs multi precision floating point arithmetic
with arbitrary precision level. It takes advantage of Java's inheritance
facility to provide smooth transition from primitive arithmetic types.
-
netlib has a small collection of Java numerical classes.
-
A
Numerical Library in Java for Scientists and Engineers, a book published
by CRC Press, contains a CD-ROM with translation into Java of the library
NUMAL (NUMerical procedures in Algol 60).
-
OpsResearch has developed a freeware library of more than 450 Operations Research objects, including packages for linear programming, graph-theoretic problems, linear algebra, nonlinear equations, probability and geometry.
-
The Orbital library is a class library providing object-oriented
representations and algorithms for logic, mathematics and artificial intelligence.
It includes theorem proving, computer algebra, search and planning, as well as
machine learning algorithms.
-
A set of Java classes from the book Ordinary and Partial
Differential Equation Routines in C, C++, Fortran, Java, Maple and Matlab
can be obtained from author William Schiesser.
-
RngPack 1.0, a pseudorandom
number generator library.
Linear Algebra, BLAS
-
JAMA (JAva MAtrix package)
provides factorizatons (LU, Cholesky, QR, SVD) and
symmetric/non-symmetric eigenvalue problems. Jama is a proposed
interface standard for dense linear algebra computations.
The package has been relesed for comment by the MathWorks and NIST.
-
Jampack (JAva Matrix
PACKage) is a collection of cooperating Java classes for numerical linear
algebra.
Jampack fully supports complex matrices. Developed by Pete Stewart of the
University of Maryland and NIST, Jampack is preliminary and incomplete, but is
being released to see if there is sufficient interest to continue its
development.
-
The beta release of Java
Lapack is now available from the University of Tennessee at Knoxville.
This code was automatically translated using f2j.
Some rudimentary documentation
is available.
-
JLAPACK is an
implementation of the general linear equation solver of LAPACK that takes
advantage of object-oriented features of Java. It was produced by the
HARPOON project of
the University of North Carolina.
-
JMP is a sparse matrix
library for Java. It features thread safe assembly of matrices, parallel
matrix/vector operations (using Java threads), a suite of Krylov-subspace
solvers with preconditioners, common decompositions such as QR, LU and SVD,
and simple eigenvalue/eigenvector solvers.
-
The Linear
Algebra component of the Java Numerical Toolkit (JNT) provides LU,
QR factorizations, optimized BLAS, and sparse matrices.
-
OpsResearch has developed a freeware library of more than 450 Operations Research objects which include a complete implementation of the BLAS in both serial and parallel versions.
-
The OwlPack: a general purpose
linear algebra library in polymorphic, object-oriented style Java, based on the
standard Fortran LINPACK library. Not meant for high-performance applications.
Rather, serves an exercise in writing scientific programs in Java in an
elegant, object-oriented style, given sufficient compiler technologies to
ameliorate the performance problems
-
Steve Verrill developed one of the first Java linear
algebra packages from the Fortran BLAS and LINPACK.
-
The vecmath
package in the Java 3D(TM)
API provides general matrix and vector classes (GMatrix,
GVector)
along with its specialized matrix classes for graphics applications.
|
Tools / Utilities
|
Formatted I/O for Java
-
Henrik Bengtsson's Java
printf(), package provides C-like formatted output.
-
Lava Rocks, by Charlton
D. Rose, provides text parsing classes for scientific I/O, including an
implementation of printf().
-
JNT NumericReader()
class: readapts java.io.Reader to correctly parse floating point
numbers in scientific notation.
Multidimensional Arrays
Extended Languages for Java
-
Robert Tolksdorf keeps a list
of langauages (compilers, interpreters, preprocessors, assemblers) for
the Java Virtual Machine (JVM).
-
cj, a Java compiler that
implements complex as a primitive type.
-
HPJava, is an environment for scientific
and parallel programming using Java. It is an extension of Java that incorporates
data parallel programming features similar to those in HPF. It also includes
Fortran-style multiarrays.
-
Jython, an implementation of the high-level,
dynamic, object-oriented language Python written in 100% Pure Java, and
seamlessly integrated with the Java platform.
-
Timber is a static compiler
for Spar/Java, a superset of Java with constructs for high-performance computing.
The additions include support for data parallelism and task parallelism,
tuples, multi-dimensional arrays, generic classes and interfaces through
templates, complex numbers, and subscript operator overloading.
-
zeta, a Java compiler
that admits infix notation for operations on complex variables
Linking Java to Other Technical Computing Packages
-
JavaMath
is free software to enable mathematical programs in Java to use the computational
capabilities of existing compute engines, either stand-alone applications or
Web-based client-server applications.
-
J/Link for Mathematica
provides tools to call Java from Mathematica and Mathematica from Java.
Scientific Visualization
-
Java 3D(TM) API
is a set of classes for writing three-dimensional graphics applications.
-
The NCSA Horizon Image
Data Browser Package is a toolkit for visualizing multi-dimensional
arrays in a format-independent way.
-
Visual Numeric's JWAVE
provides a set of Netscape IFC based Java components for data visualization
and numerics, using a PV-WAVE server.
-
The Scientific Graphics
Toolkit of NOAA's NOAAServer Project
aims to provide Java classes to produce publication
quality, object oriented graphics of scientific data. Features include user
settable or automatically scaled axes, automatically self-scaling time axes,
labels as movable, customizable objects, and automatic generation of legends.
-
VisAD, from the
SSEC Visualization Project,
is a Java class library for interactive and collaborative visualization
and analysis of numerical data.
|
|
Related Papers, Talks
|
From flop to megaflops: Java for technical computing
José E. Moreira, Samuel P. Midkiff and Manish Gupta
ACM Transactions on Programming Languages and Systems
Volume 22 , Issue 2 (2000), pp. 265-295.
Just when you thought your little language was safe:
`Expression Templates' in Java
Todd L. Veldhuizen
Indiana University CS Technical Report Numer 539, July 2000
Postscript
Digital Journey,
Work of the Java Grande Forum featured in
video-taped interviews with
John Gage at JavaOne 2000.
Towards a Science of Reliable Programming
Bill Joy
ACM Java Grande Conference, June 1999.
Slides in Powerpoint
Efficient Support for Complex Numbers in Java
Peng Wu, Sam Midkiff, Jose Moreira and Manish Gupta
ACM Java Grande Conference, June 1999.
Postscript
PDF
Slides in PDF
An Evaluation of Java for Numerical Computing
B.L. Blount and S. Chatterjee
January 1999.
PDF
Numerical Performance in Java
Jon Meyer
Working Paper, January 1999.
Is Java ready for computational science?
Michael Philippsen
Euro-PDS'98, the 2nd European Parallel and Distributed
Systems Conference, July 1998.
Postscript
Floating-Point Performance in Java
Marc Snir, Jose Moreira, Manish Gupta, Lois Haibt and Sam Midkiff
Slides from presentation at the May 1998 Java Grande Forum.
PDF
Developing numerical libraries in Java
Ronald F. Boisvert,
Jack J. Dongarra, Roldan Pozo, Karin A. Remington, and G. W. Stewart
ACM 1998 Workshop
on Java for High-Performance Network Computing, March 1998.
Postscript
PDF
How Java's Floating-Point Hurts Everyone Everywhere
W. Kahan and Joseph D. Darcy
Slides from presentation at the
ACM 1998 Workshop on Java for
High-Performance Network Computing, March 1998.
PDF
A Proposal for RealJava
Jerome Coonen
July 1997
|
|
Related Links
|
Borneo, a Java
dialect with true support for the IEEE 754 floating-point standard
Joseph D. Darcy
validlab's Java numerics page
David Hough
List of Java Compilers and Virtual Machines
Marco Schmidt
Index of Scientific Java resources on the Web
Mathtools.net
Java at Sun
Sun Microsystems
Java Community Process
Sun Microsystems
Other NIST Projects Related to Java
|
|