Class EnhancedArbitrarilyJumpableGenerator

All Implemented Interfaces:
RandomGenerator, RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.StreamableGenerator

public class EnhancedArbitrarilyJumpableGenerator extends EnhancedLeapableGenerator implements RandomGenerator.ArbitrarilyJumpableGenerator

An EnhancedArbitrarilyJumpableGenerator is used to wrap an object of any class that implements RandomGenerator.ArbitrarilyJumpableGenerator 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.ArbitrarilyJumpableGenerator interface, such as jumps(double), that return streams of RandomGenerator.ArbitrarilyJumpableGenerator are implemented to return streams of EnhancedArbitrarilyJumpableGenerator objects that wrap the RandomGenerator.ArbitrarilyJumpableGenerator objects in the streams returned by the enclosed RandomGenerator.ArbitrarilyJumpableGenerator. However, additionally this class provides a counterpart, such as ejumps(double), for each of these methods whose return type is explicitly a stream of EnhancedArbitrarilyJumpableGenerator objects to simplify usage without the need to cast the objects of the stream in order to utilize the enhancements.