Directory listing of /ftp/pub/software/gen/
The pLab-package includes portable high-performance implementations of the linear congruential, quadratic congruential, inversive congruential, and explicit inversive congruential random number generators (LCG, QCG, ICG, and EICG, respectively), which were designed and implemented by Otmar Lendl. Here, you can get the code for the generators themselves in ANSI C, without the overhead of the whole pLab-package.
The generators are generic in the sense that you are free to choose their parameters. Well known example-generators are supplied. The supported range of parameters depends on the word-size of your machine.
A brief overview of these generators including the problem of choosing parameters to achieve the maximal possible period length is given by Hannes Leeb in his Master's thesis. A complete theoretical discussion of inversive generators in general and of the ICG and EICG in particular can be found in Andreas Weingartners' Master's thesis. Since the choice of maximal period parameters for the ICG is non-trivial, Peter Hellekalek presents algorithms for finding such parameters in 'Study of algorithms for primitive polynomials'. Together with M. Mayer and A. Weingartner, he also gives applications of these algorithms, e.g. tables of parameters for full-period ICGs in 'Implementation of algorithms for IMP-polynomials'.
Version 2.0 of the PRNG library introduced a new, more generic interface to the application, as well as support for Compound and File-based generators.
Version 2.1 added support for the Digital Inversive Congruential Generator and Splitting Facilities.
New in the version 2.2 are a collection of recently proposed specific generators (CTG, MRG, CMRG, TT800) and performance improvements.
Latest News (2001/04/16):
Version 3.0 is a major overhaul of the package done by Josef Leydold who added "ANTI" and the Mersenne Twister. The configuration is now handled via a GNU-style
configurescript. The documentation has been expanded as well.
As an alternative to the old licence, the code is now available under the terms of the GNU public licence as well.
The tar archive contains the complete distribution, including documentation. It is available in gzip'ed format, too. If you have problems dealing with tar archives, you can download the distribution file by file.
Interested ? Then please read the licence, the readme-file and then download the whole package.
You also might want to have a look at Josef's pages.