25#ifndef quantlib_analytic_discrete_geometric_average_price_asian_heston_engine_hpp
26#define quantlib_analytic_discrete_geometric_average_price_asian_heston_engine_hpp
68 ext::shared_ptr<HestonProcess> process,
Real xiRightLimit = 100.0);
72 std::complex<Real>
Phi(std::complex<Real>
s,
77 const std::vector<Time>& t_n,
78 const std::vector<Time>& tauK)
const;
109 std::complex<Real>
F(
const std::complex<Real>& z1,
110 const std::complex<Real>& z2,
113 std::complex<Real>
F_tilde(
const std::complex<Real>& z1,
114 const std::complex<Real>& z2,
118 std::complex<Real>
z(
const std::complex<Real>&
s,
119 const std::complex<Real>& w,
123 std::complex<Real>
omega(
const std::complex<Real>&
s,
124 const std::complex<Real>& w,
128 std::complex<Real>
a(
const std::complex<Real>&
s,
129 const std::complex<Real>& w,
131 const std::vector<Time>& t_n)
const;
134 std::complex<Real>
omega_tilde(
const std::complex<Real>&
s,
135 const std::complex<Real>& w,
137 const std::vector<Time>& tauK)
const;
Asian option on a single asset.
Pricing engine for European discrete geometric average price Asian.
ext::shared_ptr< HestonProcess > process_
std::complex< Real > F_tilde(const std::complex< Real > &z1, const std::complex< Real > &z2, Time tau) const
std::complex< Real > omega(const std::complex< Real > &s, const std::complex< Real > &w, Size k, Size kStar, Size n) const
std::map< Size, std::complex< Real > > omegaTildeLookupTable_
std::complex< Real > z(const std::complex< Real > &s, const std::complex< Real > &w, Size k, Size n) const
std::vector< Real > tkr_tk_
void calculate() const override
std::complex< Real > Phi(std::complex< Real > s, std::complex< Real > w, Time t, Time T, Size kStar, const std::vector< Time > &t_n, const std::vector< Time > &tauK) const
GaussLegendreIntegration integrator_
std::complex< Real > a(const std::complex< Real > &s, const std::complex< Real > &w, Time t, Time T, Size kStar, const std::vector< Time > &t_n) const
Handle< YieldTermStructure > dividendYield_
std::complex< Real > omega_tilde(const std::complex< Real > &s, const std::complex< Real > &w, Size k, Size kStar, Size n, const std::vector< Time > &tauK) const
Handle< YieldTermStructure > riskFreeRate_
Discrete-averaging Asian engine base class.
Gauss-Legendre integration.
Shared handle to an observable.
Option exercise classes and payoff function.
Integral of a 1-dimensional function using the Gauss quadratures.
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container
Heston stochastic process.