Frequently Asked Questions

  1. What is Colt? Why should I use it?
  2. How do I download Colt? What is included in a download?
  3. How do I install it? How do I set the CLASSPATH?
  4. What about requirements? On which Platforms and Virtual Machines does it run?
  5. Where is the documentation?
  6. What is the difference between the Colt distribution and the Colt library? Isn't there a name clash?
  7. How do I report bugs?

What is Colt? Why should I use it?

The Colt distribution provides an infrastructure for scalable scientific and technical computing in Java. 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 and Monte Carlo Simulation, Parallel & Concurrent Programming.

The Colt distribution consists of several free Java libraries, for user convenience bundled under one single uniform umbrella. Namely the Colt library, the Jet library, the JAL library, the RngPack library, the CoreJava library, the Concurrent library and the VNI library. The Colt library provides fundamental general-purpose data structures optimized for numerical data, such as resizable arrays, dense and sparse matrices (multi-dimensional arrays), linear algebra, associative containers and buffer management. The Jet library contains mathematical and statistical tools for data analysis, powerful histogramming functionality, Random Number Generators and Distributions useful for (event) simulations, and more. The JAL library, a partial port of the C++ Standard Template Library developed by Silicon Graphics, contains a wide range of efficiently coded general-purpose algorithms on arrays. The RngPack library contains random number generators. The CoreJava library contains C-like print formatting. The Concurrent library contains standardized, efficient utility classes commonly encountered in parallel & concurrent programming. Finally, the VNI library contains mathematical functions and complex numbers.

You should use Colt if your applications consume significant ressources and mainly deal with numerical concepts. In overlapping areas, the kit 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, JGL (all Java), in terms of performance, (re)usability and functionality.
 

How do I download Colt? What is included in the download?

Colt is available on the CERN Colt homepage. Follow the instructions to download it. A distribution download contains

HTML documentation Executive summary, installation details, a tutorial, a reference manual, FAQs, news, and feedback
Javadoc HTML API documentation Extensive documentation for each package, class, and method.
One single cross-platform shared library The file colt.jar is a cross-platform shared library containing the entire distribution compiled to immediately executable format. Thus, a user can start to work by setting one single environment variable. He/she never needs to bother about compilation/architecture/linker issues.
Source code for all libraries and everything else needed to build the entire distribution from scratch - in case you want to have fun
Makefile Automatically builds the entire download file from scratch. Everything from compilation, HTML documentation, javadoc, jarring, zipping, packaging, etc. is build by this makefile, even the sentence you currently read.
Note People interested in using but not building the distribution will never need the source codes and the makefile; they can be deleted.

 

How do I install it? How do I set the CLASSPATH?

  1. Download the Colt distribution
  2. Extract the colt1.0.1.zip file just downloaded into a convenient, preferably empty directory.
  3. For example by using Winzip, or
    jar -xvf colt1.0.1.zip (ships with the JDK and can be found in the same directory as javac), or by typing
    unzip colt1.0.1.zip

    IMPORTANT: Using tools other than jar may produce subtle inconsistencies. On Digital Unix unzip may produce lowercase file names where they should be upper case. On Linux, Solaris and other Unixes unzip may not correctly restore file and directory permissions, preventing you from browsing the HTML documentation (although you can manually correct that). In short, tools other than jar are not officially supported.

    The directory should now contain a README.html file, the files colt.jar, src.zip and a directory doc.

  4. Add the colt.jar file to your CLASSPATH environment variable, or import the file into your integrated development environment.

    Unix

    The command to set environment variables may be one of set, export, or setenv. For example,
    CLASSPATH=usr/local/lib/colt.jar:$CLASSPATH; export CLASSPATH

    In case of problems, see the JDK documentation Solaris CLASSPATH.

Windows

    set CLASSPATH=D:\colt\colt.jar;%CLASSPATH%
    In case of problems, see the JDK documentation Windows CLASSPATH.

You should now be able to compile and run the demonstration application.

What about requirements? On which Platforms and Virtual Machines does it run?

The entire distribution is implemented in 100% pure Java, and runs on any platform that uses Sun's JDK or other compatible VMs. Colt, Jet and util.concurrent require JDK 1.2.0 or higher. JAL, RngPack, CoreJava and VNI require JDK 1.1.x or higher. It has been tested on Linux, Solaris and NT. In addition, users are running it on AIX, Digital Unix, SGI and HP.

Where is the documentation?

Documentation is provided in HTML files in the download package.

What is the difference between the Colt distribution and the Colt library? Isn't there a name clash?

Yes. There is a name clash. Colt is both a Java library and the name of a larger distribution containing several libraries, including the Colt library. The Colt library is not shipped separately, only as part of the Colt distribution.

How do I report bugs?

Please first check the list of known problems. Send bug reports and comments to wolfgang.hoschek@cern.ch.