An Object-Oriented Random-Number Package with Many Long Streams and Substreams

Multiple independent streams of random numbers are often required in simulation studies, for instance, to facilitate synchronization for variance-reduction purposes, and for making independent replications. A portable set of software utilities is described for uniform random-number generation. It provides for multiple generators streams running simultaneously, and each generator stream has its sequence of numbers partitioned into many long disjoint contiguous substreams. The basic underlying generator for this implementation is a combined multiple-recursive generator with period length of approximately 2191, proposed by L'Ecuyer 1999a. A C++ interface is described here. Portable implementations are available in C, C++, and Java as supplemental material at http://dx.doi.org/10.1287/opre.50.6.1073.358