Class AbstractStateIndependentJumpComponent

java.lang.Object
net.finmath.finitedifference.assetderivativevaluation.models.AbstractStateIndependentJumpComponent
All Implemented Interfaces:
Serializable, JumpComponent
Direct Known Subclasses:
MertonJumpComponent, VarianceGammaJumpComponent

public abstract class AbstractStateIndependentJumpComponent extends Object implements JumpComponent
Minimal abstract base class for a state-independent jump component.

This class provides boilerplate for jump components whose Levy density does not depend on the current PDE state variables. It is intended as a convenient base for models such as Bates and Variance Gamma, where the jump law is typically specified directly in terms of the log-jump size.

The jump contribution is understood in the compensated form

integral [ u(..., x exp(y), ...) - u(..., x, ...)
         - x (exp(y) - 1) partial_x u(..., x, ...) ] nu(dy),

where y denotes the log-relative jump size and x is the affected state variable.

The integration bounds returned by this class are interpreted as numerical truncation bounds for the jump variable. For finite-support models they may coincide with the true support; for infinite-support models they are numerical cutoffs chosen by the implementation.

Author:
Alessandro Gnoatto
See Also:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    AbstractStateIndependentJumpComponent(double lowerIntegrationBound, double upperIntegrationBound, boolean finiteActivity, boolean finiteVariation)
    Creates a state-independent jump component acting on the first state variable.
    protected
    AbstractStateIndependentJumpComponent(int stateVariableIndex, double lowerIntegrationBound, double upperIntegrationBound, boolean finiteActivity, boolean finiteVariation)
    Creates a state-independent jump component.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract double
    getLevyDensity(double time, double jumpSize)
    Returns the Levy density at the given log-jump size.
    final double
    getLevyDensity(double time, double jumpSize, double... stateVariables)
    Returns the Levy density evaluated at the given jump size.
    double
    getLowerIntegrationBound(double time, double... stateVariables)
    Returns the lower integration bound for the jump variable.
    int
    Returns the index of the state variable affected by the jump operator.
    double
    getUpperIntegrationBound(double time, double... stateVariables)
    Returns the upper integration bound for the jump variable.
    boolean
    Returns whether the jump component has finite activity.
    boolean
    Returns whether the jump component has finite variation.
    boolean
    Returns whether the jump density depends explicitly on the current state.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AbstractStateIndependentJumpComponent

      protected AbstractStateIndependentJumpComponent(double lowerIntegrationBound, double upperIntegrationBound, boolean finiteActivity, boolean finiteVariation)
      Creates a state-independent jump component acting on the first state variable.
      Parameters:
      lowerIntegrationBound - Lower integration bound for the log-jump variable.
      upperIntegrationBound - Upper integration bound for the log-jump variable.
      finiteActivity - true if the jump measure has finite activity.
      finiteVariation - true if the jump part has finite variation.
    • AbstractStateIndependentJumpComponent

      protected AbstractStateIndependentJumpComponent(int stateVariableIndex, double lowerIntegrationBound, double upperIntegrationBound, boolean finiteActivity, boolean finiteVariation)
      Creates a state-independent jump component.
      Parameters:
      stateVariableIndex - Index of the affected state variable.
      lowerIntegrationBound - Lower integration bound for the log-jump variable.
      upperIntegrationBound - Upper integration bound for the log-jump variable.
      finiteActivity - true if the jump measure has finite activity.
      finiteVariation - true if the jump part has finite variation.
  • Method Details

    • getStateVariableIndex

      public int getStateVariableIndex()
      Description copied from interface: JumpComponent
      Returns the index of the state variable affected by the jump operator.

      The default is 0, corresponding to the first PDE state variable.

      Specified by:
      getStateVariableIndex in interface JumpComponent
      Returns:
      The index of the affected state variable.
    • getLowerIntegrationBound

      public double getLowerIntegrationBound(double time, double... stateVariables)
      Description copied from interface: JumpComponent
      Returns the lower integration bound for the jump variable.

      The jump variable is interpreted as a log-relative jump size y. For infinite-support models this bound will typically be a numerical truncation chosen by the implementation.

      Specified by:
      getLowerIntegrationBound in interface JumpComponent
      Parameters:
      time - The evaluation time.
      stateVariables - The current PDE state variables.
      Returns:
      The lower integration bound.
    • getUpperIntegrationBound

      public double getUpperIntegrationBound(double time, double... stateVariables)
      Description copied from interface: JumpComponent
      Returns the upper integration bound for the jump variable.

      The jump variable is interpreted as a log-relative jump size y. For infinite-support models this bound will typically be a numerical truncation chosen by the implementation.

      Specified by:
      getUpperIntegrationBound in interface JumpComponent
      Parameters:
      time - The evaluation time.
      stateVariables - The current PDE state variables.
      Returns:
      The upper integration bound.
    • getLevyDensity

      public final double getLevyDensity(double time, double jumpSize, double... stateVariables)
      Description copied from interface: JumpComponent
      Returns the Levy density evaluated at the given jump size.

      The argument jumpSize is interpreted as the log-relative jump y. In the standard stock-coordinate convention, the affected state variable x jumps to x * exp(y).

      Specified by:
      getLevyDensity in interface JumpComponent
      Parameters:
      time - The evaluation time.
      jumpSize - The log-relative jump size.
      stateVariables - The current PDE state variables.
      Returns:
      The Levy density nu(y).
    • isStateDependent

      public boolean isStateDependent()
      Description copied from interface: JumpComponent
      Returns whether the jump density depends explicitly on the current state.

      Bates and Variance Gamma in their standard forms are typically state- independent in the jump part, so the default is false.

      Specified by:
      isStateDependent in interface JumpComponent
      Returns:
      true if the jump density depends on the current state variables.
    • isFiniteActivity

      public boolean isFiniteActivity()
      Description copied from interface: JumpComponent
      Returns whether the jump component has finite activity.

      This is metadata only and may be useful for later numerical choices.

      Specified by:
      isFiniteActivity in interface JumpComponent
      Returns:
      true if the jump measure has finite total mass.
    • isFiniteVariation

      public boolean isFiniteVariation()
      Description copied from interface: JumpComponent
      Returns whether the jump component has finite variation.

      This is metadata only and may be useful for later numerical choices.

      Specified by:
      isFiniteVariation in interface JumpComponent
      Returns:
      true if the jump part has finite variation.
    • getLevyDensity

      protected abstract double getLevyDensity(double time, double jumpSize)
      Returns the Levy density at the given log-jump size.

      Implementations only need to provide the state-independent density nu(y). Dependence on the PDE state variables is intentionally excluded from this base class.

      Parameters:
      time - The evaluation time.
      jumpSize - The log-relative jump size.
      Returns:
      The Levy density at the given jump size.