Class StableRandomGenerator

  • All Implemented Interfaces:
    NormalizedRandomGenerator

    public class StableRandomGenerator
    extends java.lang.Object
    implements NormalizedRandomGenerator

    This class provides a stable normalized random generator. It samples from a stable distribution with location parameter 0 and scale 1.

    The implementation uses the Chambers-Mallows-Stuck method as described in Handbook of computational statistics: concepts and methods by James E. Gentle, Wolfgang Härdle, Yuichi Mori.

    Since:
    3.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private double alpha
      stability parameter
      private double beta
      skewness parameter
      private RandomGenerator generator
      Underlying generator.
      private double zeta
      cache of expression value used in generation
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double nextNormalizedDouble()
      Generate a random scalar with zero location and unit scale.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • alpha

        private final double alpha
        stability parameter
      • beta

        private final double beta
        skewness parameter
      • zeta

        private final double zeta
        cache of expression value used in generation
    • Constructor Detail

      • StableRandomGenerator

        public StableRandomGenerator​(RandomGenerator generator,
                                     double alpha,
                                     double beta)
                              throws NullArgumentException,
                                     OutOfRangeException
        Create a new generator.
        Parameters:
        generator - underlying random generator to use
        alpha - Stability parameter. Must be in range (0, 2]
        beta - Skewness parameter. Must be in range [-1, 1]
        Throws:
        NullArgumentException - if generator is null
        OutOfRangeException - if alpha <= 0 or alpha > 2 or beta < -1 or beta > 1
    • Method Detail

      • nextNormalizedDouble

        public double nextNormalizedDouble()
        Generate a random scalar with zero location and unit scale.
        Specified by:
        nextNormalizedDouble in interface NormalizedRandomGenerator
        Returns:
        a random scalar with zero location and unit scale