Class StableRandomGenerator

java.lang.Object
org.apache.commons.math3.random.StableRandomGenerator
All Implemented Interfaces:
NormalizedRandomGenerator

public class StableRandomGenerator extends 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 Details

    • generator

      private final RandomGenerator generator
      Underlying generator.
    • 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 Details

    • 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 Details

    • 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