| 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." 
                  
                JAIDA 
                "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 librairesjscience.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) WaveletsNewtonian 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 JavaSSJ 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 |