Description

Parallel Colt is an attempt to implement fully multithreaded version of Colt. Current features, not available in Colt 1.2, include:

  • Multithreading
    To fully utilize modern, multicore CPUs, one needs to use a multithreaded library. Currently Parallel Colt supports multiple threads of execution only for dense (complex and real) matrices. Threads are used automatically when computations are done on a machine with multiple CPUs. Literally zero configuration is needed. For low-level concurrency CachedThreadPool is used.
    Limitation: number of threads must be a power of two number.
  • Complex matrices
    Both dense and sparse 1-, 2-, and 3-dimensional complex matrices. A complex element is represented by two double values in sequence (real and imaginary part).
  • JTransforms
    JTransforms is the first, open source, multithreaded FFT library written in pure Java.
    Limitation: size of each dimension of a matrix must be a power of 2 number.
    Example 1: compute 2D Discrete Fourier Transform (DFT) of a random complex matrix:
    DComplexMatrix2D M = DComplexFactory2D.dense.random(1024, 1024); //random matrix
    M.fft2();// compute 2D DFT in-place
    Example 2: compute 1D DFT of each column of a random complex matrix:
    DComplexMatrix2D M = DComplexFactory2D.dense.random(1024, 1024); //random matrix
    M.fftColumns();// compute 1D DFT (in-place) of each column of M
    Example 3: compute 2D Discrete Cosine Transform (DCT) of a random real matrix:
    DoubleMatrix2D M = DoubleFactory2D.dense.random(1024, 1024); //random matrix
    M.dct2();// compute 2D DCT in-place

  • JLAPACK
    JLAPACK is an automatic translation of LAPACK to Java. API documentation for JLAPACK can be found here. All classes of JLAPACK are available in Parallel Colt, but currently only wrappers for Dgesdd and Sgesdd are provided (cern.colt.matrix.linalg.DoubleSingularValueDecompositionDC and cern.colt.matrix.linalg.FloatSingularValueDecompositionDC).
  • Single and double precision
    All classes are implemented in single and double precision.
  • JUnit tests
    Hundreds of unit tests for dense matrices.
  • Parallel quicksort algorithm

Features of Colt (quoted from Colt website)

  • Templated Lists and Maps
    Dynamically resizing lists holding objects or primitive data types such as int, double, etc. Operations on primitive arrays and algorithms on Colt lists can freely be mixed at zero copy overhead. Automatically growing and shrinking maps holding objects or primitive data types such as int, double, etc. Space efficient high performance BitVectors and BitMatrices.
  • Templated Multi-dimensional matrices
    Dense 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 Algebra
    Standard matrix operations and decompositions. LU, QR, Cholesky, Eigenvalue, Singular value.
  • Histogramming
    Compact, extensible, modular and performant histogramming functionality. It offers the histogramming features of HTL and HBOOK.
  • Mathematics
    Tools for basic and advanced mathematics: Arithmetics and Algebra, Polynomials and Chebyshev series, Bessel and Airy functions, Constants and Units, Trigonometric functions, etc.
  • Statistics
    Tools for basic and advanced statistics: Estimators, Gamma functions, Beta functions, Probabilities, Special integrals, etc.
  • Random Numbers and Random Sampling
    Strong yet quick. Partly a port of CLHEP.

Documentation

View Javadoc API

License

Packages cern.colt* , cern.jet*, cern.clhep

Copyright © 1999 CERN - European Organization for Nuclear Research

Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. CERN makes no representations about the suitability of this software for any purpose. It is provided "as is" without expressed or implied warranty.

Packages hep.aida.*

Written by Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, Andreas Pfeiffer, and others. Check the FreeHEP home page for more info. Permission to use and/or redistribute this work is granted under the terms of the LGPL License, with the exception that any usage related to military applications is expressly forbidden. The software and documentation made available under the terms of this license are provided with no warranty.

Packages edu.emory.mathcs.jtransforms.*

JTransforms is distributed under the terms of the MPL/LGPL/GPL tri-license.

Download

The source code distribution, besides Ant build file, contains also Eclipse project files.

version 0.4 (April 17, 2008) changelog.txt

binary:   

source: