ANSIC is the generator employed by the ANSI C rand() function, BSD version. Note that some versions of the unix online-manual incorrectly claim this generator's period to be .
Quote: First suggested by Lewis, Goodman, and Miller in 1969  ( based largely on the fact that this generator is a full period generator) , this generator has in subsequent years passed all new theoretical tests, and (perhaps more importantly) has accumulated a large amount of successful use. Park and Miller do not claim that the generator is ``perfect'' (we will see below that it is not), but only that it is a good minimal standard against which other generators should be judged.
Quote: Our guess is that at some future point we will switch to either or . This choice will lead to better spectral test LCGs (see below).
Quote: Many multiplicative linear congruential generators are descendants of the infamous RANDU ( System/360 Scientific Subroutine Package, Version III, Programmer's Manual. IBM, White Plains, New York, 1968, p. 77.). This generator was first introduced in the early 1960s; its use soon became widespread ( examples are given ) . In retrospect RANDU was a mistake. The non-prime modulus was selected to facilitate the mod operation and the multiplier was selected primarily because of the simplicity of its binary representation. Research and experience has now made it clear that RANDU represents a flawed generator with no significant redeeming features. It does not have a full period and it has some distinctly non-random characteristics. Knuth calls it ``really horrible'' [126, p. 173].
Implemented in the SIMSCRIPT II and INSIGHT simulation programming language and employed by the FORTRAN RAN function . For references, implementations, empirical tests, execution times and lattice tests see [12,17,24,37,74,75,73,91,104,118,128,130,131,133,139,140,146,145,137,130,160,169,171,193,192,202,203]. Source codes in FORTRAN, Pascal and C, which support seed management in order to provide disjoint streams of random numbers, are given in [130, Sect. 7.6].
Note that . Quote : Lehmer [153,226] suggested (a prime Mersenne number). Fourteen was chosen because it is a primitive root modulo ; a multiplicative group of order (cycle length) was generated. Raising 14 to the -th power where is relatively prime to the cycle length gives another primitive root modulo . Choosing introduces ``randomness'' into the number sequence.
Spectral test for dim. :
Quote : This generator comes from Knuth [126, p. 102] and is contained in the totally portable random number generator HSRPUN from BCSLIB (Boeing Computer Services). The age of this generator is apparent from its modulus, which dates back to the days of 36-bit computers (e.g. implemented on UNIVAC machines [130, p. 428]).
The multiplicative versions is implemented in the programming language SIMULA, and the version with modulus on CDC computers  [25, V104]. In  a version with modulus is tested in different parallel settings (see also Sect. ). Empirical and theoretical tests of these generators are given in [8,36,46,42,85,107].
Spectral test for dimensions :
This generator corresponds to the URN12 (URN11) generator in [51,118]. The latter books contain empirical tests and implementations. Note that where is the multiplier of BCSLIB. Further empirical results are given in [12,52,140,137,146,145].
Quote : This generator was for example used in the CUPL language (ref. given) and was studied by Coveyou and MacPherson .
Spectral test for dim. :
Implemented on Apple Computers [118,110,216]. Spectral test for dimensions and different moduli :
Quote:[126, p. 104] The generators (with multiplier and (BCSLIB) ) are reminders of the good old days - they were once used extensively since O. Taussky first suggested them in the early 1950s (see also [109,153,212]).
Better spectral test results exhibits a LCG with the same multiplier but with modulus ,  or . The latter version is implemented in the simulation language SIMULA for BS 2000. Empirical results for different moduli are given in [12,109]. Jansson  used modulus .
This generator, proposed by George Marsaglia [163,168,165], is part of a combined Generator called SUPER-DUPER5 (combined with a shift-register generator).
Quote : As a candidate for the best of all multipliers, I nominate 69069 . This palindromically convoluted multiplier is easy to remember and has a nearly cubic lattice for moduli , , . Super-Duper was sometimes implemented in the form , see [85, p. 89] and [118,233].
Spectral test for dimensions and different moduli:
The version yields ``better'' spectral test results (The spectral test results of this version are given in , instead of the original). The exact discrepancy calculation for overlapping tuples in dimension 2 has been carried out in . For the versions with modulus and critical distances are given in . Super-Duper exhibits rather bad splitting properties, see Section .
These are the best spectral and lattice test multipliers from a study of Hoaglin . Theoretical and empirical tests are given in [12,51,74,99,104,118,193] and implementations in . For implementations of multiplier 397204094 (SAS and IMSL Library) and its theoretical and empirical results see [75,79,130,179,227]. Fishman[75, p. 40] writes: Our top five multipliers do not dominate (respectively discrepancy bounds) and (SIMSCRIPT) unambiguously, as in the earlier tables. This lack of discrimination on the part of the lower bounds on discrepancy may be due to the fact that discrepancy is not a rotation invariant measure. Spectral tests for dim. :
The parameters in the table below determine the top five generators respectively in an exhaustive analysis of multiplicative congruential random number generators made by Fishman and Moore [72,73,75].
Quote : Here a multiplier is said to be optimal if the distance between adjacent parallel hyperplanes on which -tuples lie does not exceed the minimal achievable distance by more than 25 percent for . This means that the spectral test values are greater than 0.8 (see the table below and for the first two generators see also [104,131]). Further references and empirical results for Fishman-LCGs (mainly for generator 1 and 2) can be found in [67,69,68,70,85,87,91,92,89,103,107,112,117,150,133,140,137,146,145,151,156,171,193,234]. Generator 1 and 6 are used in  and  to study transformation methods for non-uniform variates. An implementation is given in . Generator 1 is implemented in the simulation language GPSS/H [130,139,157,169,207].
A list of 30 LCGs including RANDU, BCSLIB, APPLE, Super-Duper, DERIVE, and their spectral tests is given in Knuth . These LCGs have been selected according to various criteria (``random'' multiplier, multiplier that guarantee fast implementations, multiplier close to power of two which produce bad lattice structures [73,126,181] ). Some of them stem from a search for optimal multipliers with respect to two-dimensional discrepancy made by Borosh and Niederreiter Niederreiter . Empirical and theoretical results of these generators can be found in [69,42,73,101,102,196,227,228]. The spectral tests in dimensions of some Borosh and Niederreiter's LCGs [15, Table 2] are given in the table below. Note that the spectral tests in dimension 2 perform excellent but as one may guess in higher dimensions some bad values occur. An extension of Borosh and Niederreiter`s search to prime moduli is given in . Note that the generators, obtained by the latter study, behave satisfactory in the spectral test in higher dimensions as well.
Using the spectral test, Anderson  made a search for good multipliers for multiplicative LCGs with modulus . Different to Fishman  who did an exhaustive search, Anderson used a LCG (see Sect. ) to perform a partial search over multiplier . In the table below we give the list of 20 ``acceptable'' (, ) multiplier with their spectral tests. The search of Anderson was extended by Masuda and Zimmerman . They got 1615 multiplier for modulus and 527 for . Both searches were motivated in order to obtain LCGs for use in parallel environments.
Email(From email@example.com Mar 14 1996): The DERIVE random number generator maintains a random integer in the interval to calculate user requested random integers in a given range. Given a random integer n, the next random integer is generated by the formula MOD (3141592653*n + 1, ). Information: Soft Warehouse, Inc. (the authors of DERIVE, A Mathematical Assistant), 3660 Waialae Avenue, Suite 304 Honolulu, HI 96816-3236 U.S.A. http://www.derive.com
The multiplier probably stems from Knuth [126, p. 32,44,102], who studied , (note that the digits of the multiplier equal the first digits of in its decimal representation).
Quote:[126, p. 103] The latter LCG shows a ``random'' multiplier; this generator has satisfactorily passed numerous empirical tests for randomness, but it does not have especially good spectral test values for dimensions .
Empirical results from DERIVE are given in . Ripley  quotes a similar multiplier which was used on Atari ST machines. Further ``related'' generators are from  (see also Sect. A) and , 314159269, 453806245, 0) which was proposed in [127, p. 240] (quote from ). The latter multiplier is also mentioned in [165, make.txt]. Anderson  used , 3141592653, 2718281, 1) to perform a random search for good multiplier with respect to the spectral test for multiplicative LCGs with modulus (see also ). The table below presents spectral tests for DERIVE with different moduli (observe the poor result for in dimension ):
This section contains further LCGs implemented in different software or some of which are mentioned in the literature.