Class LeapfrogRandomStreams creates several independent streams of random numbers using the method know as leapfrogging.

Namespace:  CenterSpace.NMath.Core
Assembly:  NMath (in NMath.dll) Version: 5.1.0.0

Syntax

C#
public class LeapfrogRandomStreams : IndependentRandomStreams
Visual Basic (Declaration)
Public Class LeapfrogRandomStreams _
	Inherits IndependentRandomStreams
Visual C++
public ref class LeapfrogRandomStreams : public IndependentRandomStreams

Remarks

The independent sequences are created by splitting the original sequence into k disjoint subsets, where k is the number of independent streams, is such a way that the first stream would generate the random numbers x1, xk+1, x2k+1, x3k+1,..., the second stream would generate the numbers x2, xk+2, x2k+2, x3k+2,..., and, finally, the kth stream would generate xk, x2k, x3k...

Leapfrog streams are only supported for basic random number generator types which provide a more efficient algorithm than generation of that full sequence to pick out a required subsequence. The static variable LeapfrogStream.SupportedGeneratorTypes contains a list of the supported types, which currently include:
RandomNumberStream.BasicRandGenType.MultiplicativeCongruent31,
RandomNumberStream.BasicRandGenType.MultipleCongruential59,
RandomNumberStream.BasicRandGenType.WinchannHillCombined.

Inheritance Hierarchy

System..::.Object
  CenterSpace.NMath.Core..::.IndependentRandomStreams
    CenterSpace.NMath.Core..::.LeapfrogRandomStreams

See Also