24#ifndef quantlib_fft_engine_hpp
25#define quantlib_fft_engine_hpp
48 public VanillaOption::engine {
50 FFTEngine(ext::shared_ptr<StochasticProcess1D> process,
Real logStrikeSpacing);
54 void precalculate(
const std::vector<ext::shared_ptr<Instrument> >& optionList);
55 virtual std::unique_ptr<FFTEngine>
clone()
const = 0;
62 const ext::shared_ptr<Exercise>& exercise)
const;
Base class for FFT pricing engines for European vanilla options.
virtual void precalculateExpiry(Date d)=0
void calculateUncached(const ext::shared_ptr< StrikedTypePayoff > &payoff, const ext::shared_ptr< Exercise > &exercise) const
void calculate() const override
ext::shared_ptr< StochasticProcess1D > process_
void precalculate(const std::vector< ext::shared_ptr< Instrument > > &optionList)
virtual Real dividendYield(Date d) const =0
std::map< ext::shared_ptr< StrikedTypePayoff >, Real > PayoffResultMap
virtual std::complex< Real > complexFourierTransform(std::complex< Real > u) const =0
virtual Real discountFactor(Date d) const =0
virtual std::unique_ptr< FFTEngine > clone() const =0
std::map< Date, PayoffResultMap > ResultMap
ext::shared_ptr< QuantLib::Payoff > payoff
Vanilla option on a single asset.