Class GammaProcess

  • All Implemented Interfaces:
    Serializable, IndependentIncrements

    public class GammaProcess
    extends Object
    implements IndependentIncrements, Serializable
    Implementation of a time-discrete n-dimensional Gamma process \( \Gamma = (\Gamma_{1},\ldots,\Gamma_{n}) \), where \( \Gamma_{i} \) is a Gamma process and \( \Gamma_{i} \), \( \Gamma_{j} \) are independent for i not equal j. The increments \( \Delta \Gamma \) are Gamma distributed with shape parameter shape * (t-s) for \( t-s = \Delta t \) and scale parameter 1. Here the dimension n is called factors since this Gamma process is used to generate multi-dimensional multi-factor Levy processes and there one might use a different number of factors to generate Levy processes of different dimension. The quintruppel (time discretization, number of factors, number of paths, seed, shape) defines the state of an object of this class, i.e., GammaProcess for which there parameters agree, generate the same random numbers. The class is immutable and thread safe. It uses lazy initialization.
    Version:
    1.6
    Author:
    Christian Fries
    See Also:
    Serialized Form
    • Constructor Detail

      • GammaProcess

        public GammaProcess​(TimeDiscretization timeDiscretization,
                            int numberOfFactors,
                            int numberOfPaths,
                            int seed,
                            double shape,
                            double scale)
        Construct a Gamma process with a given shape parameter.
        Parameters:
        timeDiscretization - The time discretization used for the Gamma increments.
        numberOfFactors - Number of factors.
        numberOfPaths - Number of paths to simulate.
        seed - The seed of the random number generator.
        shape - The shape parameter of the Gamma distribution.
        scale - The scale parameter of the Gamma distribution.
      • GammaProcess

        public GammaProcess​(TimeDiscretization timeDiscretization,
                            int numberOfFactors,
                            int numberOfPaths,
                            int seed,
                            double shape)
        Construct a Gamma process with a given shape parameter.
        Parameters:
        timeDiscretization - The time discretization used for the Gamma increments.
        numberOfFactors - Number of factors.
        numberOfPaths - Number of paths to simulate.
        seed - The seed of the random number generator.
        shape - The shape parameter of the Gamma distribution.
    • Method Detail

      • getCloneWithModifiedSeed

        public IndependentIncrements getCloneWithModifiedSeed​(int seed)
        Description copied from interface: IndependentIncrements
        Return a new object implementing BrownianMotion having the same specifications as this object but a different seed for the random number generator. This method is useful if you like to make Monte-Carlo samplings by changing the seed.
        Specified by:
        getCloneWithModifiedSeed in interface IndependentIncrements
        Parameters:
        seed - New value for the seed.
        Returns:
        New object implementing BrownianMotion.
      • getIncrement

        public RandomVariable getIncrement​(int timeIndex,
                                           int factor)
        Description copied from interface: IndependentIncrements
        Return the increment for a given timeIndex and given factor. The method returns the random variable Δ Xj(ti) := Xj(ti+1)-X(ti) for the given time index i and a given factor (index) j
        Specified by:
        getIncrement in interface IndependentIncrements
        Parameters:
        timeIndex - The time index (corresponding to the this class's time discretization)
        factor - The index of the factor (independent scalar increment)
        Returns:
        The factor (component) of the increments (a random variable)
      • getRandomVariableForConstant

        public RandomVariable getRandomVariableForConstant​(double value)
        Description copied from interface: IndependentIncrements
        Returns a random variable which is initialized to a constant, but has exactly the same number of paths or discretization points as the ones used by this BrownianMotion.
        Specified by:
        getRandomVariableForConstant in interface IndependentIncrements
        Parameters:
        value - The constant value to be used for initialized the random variable.
        Returns:
        A new random variable.
      • getSeed

        public int getSeed()
        Returns:
        Returns the seed.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object