Class EnhancedLeapableGenerator

All Implemented Interfaces:
RandomGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.StreamableGenerator
Direct Known Subclasses:
EnhancedArbitrarilyJumpableGenerator

public class EnhancedLeapableGenerator extends EnhancedJumpableGenerator implements RandomGenerator.LeapableGenerator

An EnhancedLeapableGenerator is used to wrap an object of any class that implements RandomGenerator.LeapableGenerator for the purpose of adding all of the functionality of the RandomIndexer and RandomVariates. See the superclass EnhancedRandomGenerator for documentation of the enhanced functionality that is added to the wrapped object.

The methods of the RandomGenerator.LeapableGenerator interface, such as leaps(), that return streams of RandomGenerator.JumpableGenerator are implemented to return streams of EnhancedJumpableGenerator objects that wrap the RandomGenerator.JumpableGenerator objects in the streams returned by the enclosed RandomGenerator.LeapableGenerator. However, additionally this class provides a counterpart, such as eleaps(), for each of these methods whose return type is explicitly a stream of EnhancedJumpableGenerator objects to simplify usage without the need to cast the objects of the stream in order to utilize the enhancements.