Colt (libraries)

Colt
Original author(s) NIST
Stable release
1.2.0 / September 9, 2004 (2004-09-09)
Operating system Cross-platform
Type Library
License CERN and LGPL
Website acs.lbl.gov/software/colt/

Colt is a set of Open Source Libraries for High Performance Scientific and Technical Computing written in Java and developed at CERN. Colt was developed with a focus on High Energy Physics, but is applicable to many other problems. Colt was last updated in 2004 (when Java 1.4 was the current release) and its code base has been incorporated into the Parallel Colt code base, which has received more recent development.

Colt 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.

Capabilities

The following is an overview of Colt's capabilities, as listed on the project's website:[1]

FeatureDescription
Templated Lists and MapsDynamically resizing lists holding objects or primitive data types such as int, double, etc. Operations on primitive arrays, algorithms on Colt lists and JAL algorithms (see below) can freely be mixed at zero copy overhead. More details. Automatically growing and shrinking maps holding objects or primitive data types such as int, double, etc.
Templated Multi-dimensional matricesDense and sparse fixed sized (non-resizable) 1,2, 3 and d-dimensional matrices holding objects or primitive data types such as int, double, etc.; Also known as multi-dimensional arrays or Data Cubes.
Linear AlgebraStandard matrix operations and decompositions. LU, QR, Cholesky, Eigenvalue, Singular value.
HistogrammingCompact, extensible, modular and performant histogramming functionality. AIDA offers the histogramming features of HTL and HBOOK.
MathematicsTools for basic and advanced mathematics: Arithmetics and Algebra, Polynomials and Chebyshev series, Bessel and Airy functions, Constants and Units, Trigonometric functions, etc.
StatisticsTools for basic and advanced statistics: Estimators, Gamma functions, Beta functions, Probabilities, Special integrals, etc.
Random Numbers and Random SamplingStrong yet quick. Partly a port of CLHEP.
util.concurrentEfficient utility classes commonly encountered in parallel & concurrent programming.

Usage Example

Example of Singular Value Decomposition (SVD):

SingularValueDecomposition s = new SingularValueDecomposition(matA);
DoubleMatrix2D U = s.getU();
DoubleMatrix2D S = s.getS();
DoubleMatrix2D V = s.getV();

Example of matrix multiplication:

Algebra alg = new Algebra();
DoubleMatrix2D result = alg.mult(matA,matB);

References

  1. "Colt Project Page". Colt. Retrieved June 15, 2013.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.