FDDividendEngineBase< Scheme > Class Template Referenceabstract

Abstract base class for dividend engines. More...

#include <ql/pricingengines/vanilla/fddividendengine.hpp>

Inheritance diagram for FDDividendEngineBase< Scheme >:

Public Member Functions

 FDDividendEngineBase (const boost::shared_ptr< GeneralizedBlackScholesProcess > &process, Size timeSteps=100, Size gridPoints=100, bool timeDependent=false)
 
- Public Member Functions inherited from FDVanillaEngine
 FDVanillaEngine (const boost::shared_ptr< GeneralizedBlackScholesProcess > &process, Size timeSteps, Size gridPoints, bool timeDependent=false)
 
const Arraygrid () const
 

Protected Member Functions

virtual void setupArguments (const PricingEngine::arguments *) const
 
void setGridLimits () const =0
 
void executeIntermediateStep (Size step) const =0
 
Real getDividendAmount (Size i) const
 
Real getDiscountedDividend (Size i) const
 
- Protected Member Functions inherited from FDMultiPeriodEngine< Scheme >
 FDMultiPeriodEngine (const boost::shared_ptr< GeneralizedBlackScholesProcess > &process, Size timeSteps=100, Size gridPoints=100, bool timeDependent=false)
 
virtual void setupArguments (const PricingEngine::arguments *args, const std::vector< boost::shared_ptr< Event > > &schedule) const
 
virtual void setupArguments (const PricingEngine::arguments *a) const
 
virtual void calculate (PricingEngine::results *) const
 
virtual void executeIntermediateStep (Size step) const =0
 
virtual void initializeStepCondition () const
 
virtual void initializeModel () const
 
Time getDividendTime (Size i) const
 
- Protected Member Functions inherited from FDVanillaEngine
virtual void setGridLimits (Real, Time) const
 
virtual void initializeInitialCondition () const
 
virtual void initializeBoundaryConditions () const
 
virtual void initializeOperator () const
 
virtual Time getResidualTime () const
 
void ensureStrikeInGrid () const
 

Additional Inherited Members

- Protected Types inherited from FDMultiPeriodEngine< Scheme >
typedef FiniteDifferenceModel
< Scheme< TridiagonalOperator > > 
model_type
 
- Protected Types inherited from FDVanillaEngine
typedef BoundaryCondition
< TridiagonalOperator
bc_type
 
- Protected Attributes inherited from FDMultiPeriodEngine< Scheme >
std::vector< boost::shared_ptr
< Event > > 
events_
 
std::vector< TimestoppingTimes_
 
Size timeStepPerPeriod_
 
SampledCurve prices_
 
boost::shared_ptr
< StandardStepCondition
stepCondition_
 
boost::shared_ptr< model_typemodel_
 
- Protected Attributes inherited from FDVanillaEngine
boost::shared_ptr
< GeneralizedBlackScholesProcess
process_
 
Size timeSteps_
 
Size gridPoints_
 
bool timeDependent_
 
Real requiredGridValue_
 
Date exerciseDate_
 
boost::shared_ptr< Payoffpayoff_
 
TridiagonalOperator finiteDifferenceOperator_
 
SampledCurve intrinsicValues_
 
std::vector< boost::shared_ptr
< bc_type > > 
BCs_
 
Real sMin_
 
Real center_
 
Real sMax_
 

Detailed Description

template<template< class > class Scheme = CrankNicolson>
class QuantLib::FDDividendEngineBase< Scheme >

Abstract base class for dividend engines.

Possible enhancements:
The dividend class really needs to be made more sophisticated to distinguish between fixed dividends and fractional dividends