21#ifndef quantlib_market_model_pathwise_caplet_hpp
22#define quantlib_market_model_pathwise_caplet_hpp
32 class EvolutionDescription;
49 const std::vector<Time>& rateTimes,
50 const std::vector<Real>& accruals,
51 const std::vector<Time>& paymentTimes,
52 const std::vector<Rate>& strikes);
67 void reset()
override;
72 std::vector<Size>& numberCashFlowsThisStep,
73 std::vector<std::vector<MarketModelPathwiseMultiProduct::CashFlow> >&
74 cashFlowsGenerated)
override;
77 std::unique_ptr<MarketModelPathwiseMultiProduct>
clone()
const override;
96 const std::vector<Time>& rateTimes,
97 const std::vector<Real>& accruals,
98 const std::vector<Time>& paymentTimes,
99 const std::vector<Rate>& strikes);
102 const std::vector<Real>& accruals,
103 const std::vector<Time>& paymentTimes,
119 void reset()
override;
124 std::vector<Size>& numberCashFlowsThisStep,
125 std::vector<std::vector<MarketModelPathwiseMultiProduct::CashFlow> >&
126 cashFlowsGenerated)
override;
129 std::unique_ptr<MarketModelPathwiseMultiProduct>
clone()
const override;
152 const std::vector<Real>& accruals,
153 const std::vector<Time>& paymentTimes,
155 std::vector<std::pair<Size, Size> > startsAndEnds);
171 void reset()
override;
176 std::vector<Size>& numberCashFlowsThisStep,
177 std::vector<std::vector<MarketModelPathwiseMultiProduct::CashFlow> >&
178 cashFlowsGenerated)
override;
181 std::unique_ptr<MarketModelPathwiseMultiProduct>
clone()
const override;
Curve state for market-model simulations
Market-model evolution description.
market-model pathwise caplet
std::vector< Time > paymentTimes_
std::vector< Size > suggestedNumeraires() const override
bool nextTimeStep(const CurveState ¤tState, std::vector< Size > &numberCashFlowsThisStep, std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > &cashFlowsGenerated) override
return value indicates whether path is finished, TRUE means done
std::unique_ptr< MarketModelPathwiseMultiProduct > clone() const override
returns a newly-allocated copy of itself
~MarketModelPathwiseMultiCaplet() override=default
bool alreadyDeflated() const override
std::vector< Time > possibleCashFlowTimes() const override
const EvolutionDescription & evolution() const override
Size maxNumberOfCashFlowsPerProductPerStep() const override
EvolutionDescription evolution_
Size numberOfProducts() const override
std::vector< Rate > strikes_
std::vector< Real > rateTimes_
std::vector< Real > accruals_
void reset() override
during simulation put product at start of path
std::vector< Size > suggestedNumeraires() const override
bool nextTimeStep(const CurveState ¤tState, std::vector< Size > &numberCashFlowsThisStep, std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > &cashFlowsGenerated) override
return value indicates whether path is finished, TRUE means done
~MarketModelPathwiseMultiDeflatedCap() override=default
std::unique_ptr< MarketModelPathwiseMultiProduct > clone() const override
returns a newly-allocated copy of itself
MarketModelPathwiseMultiDeflatedCaplet underlyingCaplets_
std::vector< std::pair< Size, Size > > startsAndEnds_
bool alreadyDeflated() const override
std::vector< Time > possibleCashFlowTimes() const override
const EvolutionDescription & evolution() const override
Size maxNumberOfCashFlowsPerProductPerStep() const override
std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > innerCashFlowsGenerated_
Size numberOfProducts() const override
std::vector< Size > innerCashFlowSizes_
void reset() override
during simulation put product at start of path
std::vector< Time > paymentTimes_
std::vector< Size > suggestedNumeraires() const override
~MarketModelPathwiseMultiDeflatedCaplet() override=default
bool nextTimeStep(const CurveState ¤tState, std::vector< Size > &numberCashFlowsThisStep, std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > &cashFlowsGenerated) override
return value indicates whether path is finished, TRUE means done
std::unique_ptr< MarketModelPathwiseMultiProduct > clone() const override
returns a newly-allocated copy of itself
bool alreadyDeflated() const override
std::vector< Time > possibleCashFlowTimes() const override
const EvolutionDescription & evolution() const override
Size maxNumberOfCashFlowsPerProductPerStep() const override
EvolutionDescription evolution_
Size numberOfProducts() const override
std::vector< Rate > strikes_
std::vector< Real > rateTimes_
std::vector< Real > accruals_
void reset() override
during simulation put product at start of path
market-model pathwise product
std::size_t Size
size of a container