21#ifndef quantlib_multistep_period_caplets_swaptions_hpp
22#define quantlib_multistep_period_caplets_swaptions_hpp
29 class StrikedTypePayoff;
35 const std::vector<Time>& rateTimes,
36 const std::vector<Time>& forwardOptionPaymentTimes,
37 const std::vector<Time>& swaptionPaymentTimes,
38 std::vector<ext::shared_ptr<StrikedTypePayoff> > forwardPayOffs,
39 std::vector<ext::shared_ptr<StrikedTypePayoff> > swapPayOffs,
47 void reset()
override;
49 std::vector<Size>& numberCashFlowsThisStep,
50 std::vector<std::vector<CashFlow> >& cashFlowsGenerated)
override;
51 std::unique_ptr<MarketModelMultiProduct>
clone()
const override;
73 inline std::vector<Time>
Curve state for market-model simulations
Multiple-step market-model product.
std::vector< Time > paymentTimes_
std::vector< ext::shared_ptr< StrikedTypePayoff > > forwardPayOffs_
std::unique_ptr< MarketModelMultiProduct > clone() const override
returns a newly-allocated copy of itself
bool nextTimeStep(const CurveState ¤tState, std::vector< Size > &numberCashFlowsThisStep, std::vector< std::vector< CashFlow > > &cashFlowsGenerated) override
return value indicates whether path is finished, TRUE means done
std::vector< Time > swaptionPaymentTimes_
std::vector< Time > possibleCashFlowTimes() const override
std::vector< Time > forwardOptionPaymentTimes_
std::vector< ext::shared_ptr< StrikedTypePayoff > > swapPayOffs_
Size maxNumberOfCashFlowsPerProductPerStep() const override
Size numberOfProducts() const override
void reset() override
during simulation put product at start of path
std::size_t Size
size of a container
Maps shared_ptr to either the boost or std implementation.