Home : Map : Chapter 12 : Java : Tech : Physics :
Math & Physics Resources
Course Map
Chapter 12

  Demo 1
Cursor Icons
  Demo 2
  Demo 3
  Demo 4
  Demo 5
  Demo 6
Timing & Speed
  Demo 7
  Demo 8
  Demo 9

Java Beans
More APIs
Java & Browsers
  Demo 1
     About JavaTech
     Codes List
     Topic Index
     Course Guide
     What's New

We will highlight here a sample of the Java software libraries (i.e. packages) available to support program development in physics. The math software will, of course, be useful in any technical programming.

Chapter 12: Tech section has a page with a sample of General Science & Technical Programming Libraries and the Java Resources page provides additional links to math and physics Java software on the web. Note that the NIST Java Numerics - Libraries page, in particular, holds a long list of links to Java numerical analysis packages.

Most of the following packages are free.

Physics/Science Analysis Packages

  • COLT
    "a set of Open Source Libraries for High Performance Scientific and Technical Computing in Java". Developed at CERN for analysis of high energy physics data.
    • " This distribution provides an infrastructure for scalable scientific and technical computing in Java. It is particularly useful in the domain of High Energy Physics at CERN: It contains, among others, efficient and usable data structures and algorithms for Off-line and On-line Data Analysis, Linear Algebra, Multi-dimensional arrays, Statistics, Histogramming, Monte Carlo Simulation, Parallel & Concurrent Programming. It summons some of the best concepts, designs and implementations thought up over time by the community, ports or improves them and introduces new approaches where need arises. In overlapping areas, it is competitive or superior to toolkits such as STL, Root, HTL, CLHEP, TNT, GSL, C-RAND / WIN-RAND, (all C/C++) as well as IBM Array, JDK 1.2 Collections framework (all Java), in terms of performance (!), functionality and (re)usability."
    • API Documentation

  • FreeHEP Java Library
    "The goal of the FreeHEP library is to encourage the sharing and reuse of Java code in High Energy Physics. Although some of the code is fairly specific to HEP, other code is more generic and could be used by anyone. To maximize reuse we strive to keep the dependencies between various packages in the FreeHEP library to a minimum, so you can use which ever parts interest you without being forced to use the entire library."

    "Java implementation of the Abstract Interfaces for Data Analysis (AIDA); it is part of the FreeHEP library. Java programmers to quickly and easily create histograms, scatter plots and tuples, perform fits, view plots and store and retrieve analysis objects from files. JAIDA can be used either in a non-graphical environment (for batch processing) or with a GUI to be used just to display plots."
  • Java Analysis Studio
    General purpose, open-source, data analysis tool developed at the Stanford Linear Accel. Center. Uses JAIDA libraires
  • jscience.org
    "JavaTMTools and Libraries for the Advancement of Sciences." Includes classes for physics, math, and finance. Math capabilities include linear algebra, symbolic math analysis, and number types. Physics classes provide for models of physical quantities plus tools to handling units.
  • JSci
    A science API for JavaTM
    • "Abstract math interfaces
    • Linear algebra (support for various matrix and vector types)
    • Statistics (including probability distributions)
    • Wavelets
    • Newtonian mechanics
    • Chart/graph components (AWT and Swing)
    • MathML DOM implementation
    • Lots more..."
    • API Documentation

  • Mantissa (Mathematical Algorithms for Numerical Tasks In Space System Applications)
    "Mantissa is a collection of various mathematical tools aimed towards for simulation. It is not a complete mathematical library like GSL, NAG or IMSL, but it contains various algorithms useful for dynamics simulation and 3D geometry computation."
  • EPIC - Software - Java
    Oceanographic and meterological data analysis software libraries
  • Mirage
    "Mirage is a Java-based software tool for exploratory analysis and visualization of images and numerical vectors from an arbitrary application domain. The tool shows projected images of points, point classes, or proximity structures in one, two, or higher dimensional subspaces, in linked views of tables, histograms, scatter plots, parallel coordinate plots, graphs, and trees, and over image or hypertext backgrounds. It also facilitates flexible plot configuration, manual or automatic classification, and intuitive graphical querying. Analysis and visualization operations are controlled by a small, interpreted command language. "

Math Packages

  • JMathTools - "collection of independant packages designed to fit common engineering/scientific computing needs For now, JMathTools contains:


  • JUMP - "Java Ultimate Math Package". "
    • Java-based extensible high-precision math package. Includes support for computations based on fractions. Support is included for converting to floating point numbers and BigDecimals.
    • API Documentation (Vers.0.5)

  • JAMA : A Java Matrix Package
    This NIST library "is a basic linear algebra package for Java. It provides user-level classes for constructing and manipulating real, dense matrices. It is meant to provide sufficient functionality for routine problems, packaged in a way that is natural and understandable to non-experts. It is intended to serve as the standard matrix class for Java, ..."
  • Matrix Toolkits for Java (MTJ)
    "The Matrix Toolkits for Java (MTJ) is a comprehensive collection of matrix datastructures, linear solvers (direct and iterative), least squares methods, eigenvalue- and singular value decompositions. MTJ is designed to be used as a library for developing numerical applications, both for small and large scale computations..."

  • javax.vecmath in Java3D API
    Provides a number of vector and matrix classes.


Random Number Generation

  • RngPack - "RngPack is a pseudorandom number generator package for Java. Pseudorandom means that the "random" numbers are generated by a deterministic mathematical process, not by a fundamentally random physical process such as radioactive decay or Johnson noise. RngPack contains base classes that add value to random number generators, four research grade generators, as well as a wrapper for Java's built in random number generator and a demonstration application"
  • SSJ: Stochastic Simulation in Java
    SSJ is a Java library for stochastic simulation, developed in the Département d'Informatique et de Recherche Opérationnelle (DIRO), at the Université de Montréal. It provides facilities for generating uniform and nonuniform random variates, computing different measures related to probability distributions, performing goodness-of-fit tests, applying quasi-Monte Carlo methods, collecting (elementary) statistics, and programming discrete-event simulations with both events and processes.
  • randomX package for Java
    "an upward compatible superset of the standard Java API class java.util.Random. Unlike the standard Random class, randomX defines an abstract superclass which supports derived classes based on a variety of random and pseudorandom byte stream generators. The derived class need only supply methods to construct a new generator and return successive bytes; randomX provides all the higher level functionality of the standard Java Random class. (A derived class is, of course, free to override randomX's implementation of the higher level methods, where appropriate.)..."



Most recent update: Nov. 19, 2005


Tech APIs

Math/Science APIs
JAIDA Program
  Demo 1
Demo 1 Discussion

  Part I Part II Part III
Java Core 1  2  3  4  5  6  7  8  9  10  11  12 13 14 15 16 17
18 19 20
22 23 24

1  2  3  4  5  6  7  8  9  10  11  12

Tech 1  2  3  4  5  6  7  8  9  10  11  12
Physics 1  2  3  4  5  6  7  8  9  10  11  12

Java is a trademark of Sun Microsystems, Inc.