26 const ext::shared_ptr<VarianceGammaProcess>& process,
Real logStrikeSpacing)
33 ext::shared_ptr<VarianceGammaProcess> process =
34 ext::dynamic_pointer_cast<VarianceGammaProcess>(
process_);
40 ext::shared_ptr<VarianceGammaProcess> process =
41 ext::dynamic_pointer_cast<VarianceGammaProcess>(
process_);
44 process->dividendYield()->discount(
d);
46 process->riskFreeRate()->discount(
d);
48 DayCounter rfdc = process->riskFreeRate()->dayCounter();
60 std::complex<Real> i1(0, 1);
63 std::complex<Real> phi = std::exp(i1 * u * (std::log(
s) + omega *
t_))
72 ext::shared_ptr<VarianceGammaProcess> process =
73 ext::dynamic_pointer_cast<VarianceGammaProcess>(
process_);
74 return process->riskFreeRate()->discount(
d);
79 ext::shared_ptr<VarianceGammaProcess> process =
80 ext::dynamic_pointer_cast<VarianceGammaProcess>(
process_);
81 return process->dividendYield()->discount(
d);
Time yearFraction(const Date &, const Date &, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date()) const
Returns the period between two dates as a fraction of year.
Base class for FFT pricing engines for European vanilla options.
ext::shared_ptr< StochasticProcess1D > process_
FFT engine for vanilla options under a Variance Gamma process.
void precalculateExpiry(Date d) override
std::complex< Real > complexFourierTransform(std::complex< Real > u) const override
DiscountFactor riskFreeDiscount_
std::unique_ptr< FFTEngine > clone() const override
DiscountFactor dividendDiscount_
FFTVarianceGammaEngine(const ext::shared_ptr< VarianceGammaProcess > &process, Real logStrikeSpacing=0.001)
Real dividendYield(Date d) const override
Real discountFactor(Date d) const override
Option exercise classes and payoff function.
FFT engine for vanilla options under a Variance Gamma process.