Efficient Jump Ahead for F^sub 2^-Linear Random Number Generators

The fastest long-period random number generators currently available are based on linear recurrences modulo 2. So far, software that provides multiple disjoint streams and substreams has not been available for these generators because of the lack of efficient jump-ahead facilities. In principle, it...

Full description

Saved in:
Bibliographic Details
Published inINFORMS journal on computing Vol. 20; no. 3; p. 385
Main Authors Haramoto, Hiroshi, Matsumoto, Makoto, Nishimura, Takuji, Panneton, François, L'Ecuyer, Pierre
Format Journal Article
LanguageEnglish
Published Linthicum Institute for Operations Research and the Management Sciences 01.07.2008
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:The fastest long-period random number generators currently available are based on linear recurrences modulo 2. So far, software that provides multiple disjoint streams and substreams has not been available for these generators because of the lack of efficient jump-ahead facilities. In principle, it suffices to multiply the state (a k-bit vector) by an appropriate k × k binary matrix to find the new state far ahead in the sequence. However, when k is large (e.g., for a generator such as the popular Mersenne twister, for which k = 19,937), this matrix-vector multiplication is slow, and a large amount of memory is required to store the k × k matrix. In this paper, we provide a faster algorithm to jump ahead by a large number of steps in a linear recurrence modulo 2. The method uses much less than the k^sup 2^ bits of memory required by the matrix method. It is based on polynomial calculus modulo the characteristic polynomial of the recurrence, and uses a sliding window algorithm for the multiplication. [PUBLICATION ABSTRACT]
ISSN:1091-9856
1091-9856