20#ifndef quantlib_multistep_tarn_hpp
21#define quantlib_multistep_tarn_hpp
30 const std::vector<Real>& accruals,
31 const std::vector<Real>& accrualsFloating,
32 const std::vector<Time>& paymentTimes,
33 const std::vector<Time>& paymentTimesFloating,
35 const std::vector<Real>& strikes,
36 std::vector<Real> multipliers,
37 const std::vector<Real>& floatingSpreads);
43 void reset()
override;
45 std::vector<Size>& numberCashFlowsThisStep,
46 std::vector<std::vector<CashFlow> >& cashFlowsGenerated)
override;
47 std::unique_ptr<MarketModelMultiProduct>
clone()
const override;
Curve state for market-model simulations
Multiple-step market-model product.
std::vector< Time > paymentTimes_
std::vector< Time > allPaymentTimes_
std::unique_ptr< MarketModelMultiProduct > clone() const override
returns a newly-allocated copy of itself
std::vector< Real > floatingSpreads_
std::vector< Real > strikes_
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 > paymentTimesFloating_
std::vector< Time > possibleCashFlowTimes() const override
std::vector< Real > multipliers_
Size maxNumberOfCashFlowsPerProductPerStep() const override
Size numberOfProducts() const override
std::vector< Real > accruals_
void reset() override
during simulation put product at start of path
std::vector< Real > accrualsFloating_
std::size_t Size
size of a container