naginterfaces.library.rand.init_nonrepeat(genid, subid=0)[source]

init_nonrepeat initializes the selected base generator to generate a non-repeatable sequence of variates. The base generator can then be used by the group of pseudorandom number functions (see init_leapfrog()init_skipahead(), permute(), sample(), times_garch_asym1()times_mv_varma(), matrix_orthog()matrix_2waytable(), copula_students_t(), copula_normal(), multivar_students_t(), multivar_normal() and dist_uniform01()int_uniform()) and the quasi-random scrambled sequence initialization function, quasi_init_scrambled().

For full information please refer to the NAG Library document for g05kg


Must contain the type of base generator to use.

NAG basic generator.

Wichmann Hill I generator.

Mersenne Twister.

Wichmann Hill II generator.

ACORN generator.

L’Ecuyer MRG32k3a generator.

See the G05 Introduction for details of each of the base generators.

subidint, optional

If , indicates which of the sub-generators to use. In this case, the sub-generator is used.

If , indicates the values of and to use, where is the order of the generator, and controls the size of the modulus, , with .

If , the default values of and are used, otherwise values for and are calculated from the formula, .

If and the range of the generator is set to , otherwise the range is set to ; in this case the sequence is identical to the implementation of MRG32k3a in TestU01 (see L’Ecuyer and Simard (2002)) for identical seeds.

For all other values of , is not referenced.

statecommdict, RNG communication object

RNG communication structure.

(errno )

On entry, .

Constraint: , , , , or .


init_nonrepeat selects a base generator through the input value of the arguments and , and then initializes it based on the values taken from the real-time clock, resulting in the same base generator yielding different sequences of random numbers each time the calling program is run. It should be noted that there is no guarantee of statistical properties between sequences, only within sequences.

A definition of some of the terms used in this description, along with details of the various base generators can be found in the G05 Introduction.


L’Ecuyer, P and Simard, R, 2002, TestU01: a software library in ANSI C for empirical testing of random number generators, Departement d’Informatique et de Recherche Operationnelle, Universite de Montreal,

Maclaren, N M, 1989, The generation of multiple independent sequences of pseudorandom numbers, Appl. Statist. (38), 351–359

Matsumoto, M and Nishimura, T, 1998, Mersenne twister: a 623-dimensionally equidistributed uniform pseudorandom number generator, ACM Transactions on Modelling and Computer Simulations

Wichmann, B A and Hill, I D, 2006, Generating good pseudo-random numbers, Computational Statistics and Data Analysis (51), 1614–1622

Wikramaratna, R S, 1989, ACORN - a new method for generating sequences of uniformly distributed pseudo-random numbers, Journal of Computational Physics (83), 16–31