Class LevyProcess
Defined in File levy_process.hpp
Inheritance Relationships
Base Type
public otyca::StochasticProcess
(Class StochasticProcess)
Derived Types
public otyca::BrownianMotion
(Class BrownianMotion)public otyca::CGMY
(Class CGMY)public otyca::CompositeLevyProcess
(Class CompositeLevyProcess)public otyca::Kou
(Class Kou)public otyca::LogStable
(Class LogStable)public otyca::Merton
(Class Merton)public otyca::VarianceGamma
(Class VarianceGamma)
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.
-
inline LevyProcess()