Class LevyProcess

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class LevyProcess : public otyca::StochasticProcess

Abstract base class for Lévy processes.

A Lévy process is a stochastic process with stationary, independent increments, and is fully characterized by its characteristic exponent. This class defines the interface for Lévy processes used in Fourier-based option pricing.

Subclassed by otyca::BrownianMotion, otyca::CGMY, otyca::CompositeLevyProcess, otyca::Kou, otyca::LogStable, otyca::Merton, otyca::VarianceGamma

Public Functions

inline LevyProcess()

Construct a new LevyProcess object with multiplier initialized to 1.

virtual LevyProcess *clone() const = 0

Clone the current LevyProcess instance.

Returns:

A pointer to a newly allocated copy.

virtual arma::cx_colvec characteristic_exponent(const arma::cx_colvec &u) const = 0

Compute the characteristic exponent at a set of frequencies.

Parameters:

u – Complex-valued column vector of Fourier arguments.

Returns:

characteristic exponent vector.

virtual arma::cx_colvec characteristic_exponent_drift_adjustment(const arma::cx_colvec &u) const
virtual std::vector<arma::cx_colvec> characteristic_exponent_derivatives(const arma::cx_colvec &u) const = 0

Compute the derivatives of the characteristic exponent.

Parameters:

u – Complex-valued column vector of Fourier arguments.

Returns:

A vector of derivatives of characteristic exponent with respect to parameters

virtual arma::cx_mat characteristic_function(const arma::cx_colvec &u, const arma::rowvec &t) const

Compute the characteristic function φ(u, t) from the exponent.

Parameters:
  • u – Complex-valued column vector of Fourier arguments.

  • t – Row vector of time points.

Returns:

A characteristic function matrix where rows correspond to u and columns to t.

virtual std::vector<arma::cx_mat> characteristic_function_derivatives(const arma::cx_colvec &u, const arma::rowvec &t) const

Compute derivatives of the characteristic function φ(u, t).

Parameters:
  • u – Complex-valued column vector of Fourier arguments.

  • t – Row vector of time points.

Returns:

A vector of characteristic function matrix derivatives with respect to parameters.

std::vector<arma::cx_colvec> characteristic_exponent_derivatives_finite_difference(const arma::cx_colvec &u, double epsilon = 1e-6) const

Compute derivatives of the characteristic exponent using finite differences.

Parameters:
  • u – Complex-valued column vector of Fourier arguments.

  • epsilon – Finite difference step size.

Returns:

A vector of characteristic function matrix derivatives with respect to parameters.

bool compare_characteristic_exponent_derivatives(const arma::cx_colvec &u, double epsilon = 1e-6, double tolerance = 1e-6) const

Compare analytical and finite difference derivatives for debugging.

Parameters:
  • u – Complex-valued column vector of Fourier arguments.

  • epsilon – Finite difference step size.

  • tolerance – Acceptable difference for validation.

Returns:

true if derivatives match within tolerance, false otherwise.

void jump_characteristic_exponent_integrand(double x, const arma::cx_colvec &iu, arma::cx_colvec &result) const

Evaluate the jump component of the characteristic exponent integrand.

Parameters:
  • x – Integration variable.

  • iu – i * u vector.

  • result – Output integrand vector.

inline void set_multiplier(double m)

Set the multiplier applied to the process.

Parameters:

m – New multiplier value.

Protected Attributes

double _multiplier

Scalar multiplier applied to the process.