22#include <ql/experimental/inflation/cpicapfloorengines.hpp>
23#include <ql/experimental/inflation/cpicapfloortermpricesurface.hpp>
24#include <ql/time/daycounters/actualactual.hpp>
33 : priceSurf_(
std::move(priceSurf)) {
47 QL_REQUIRE(lagDiff >=
Period(0,
Months),
"InterpolatingCPICapFloorEngine: "
48 "lag difference must be non-negative: " << lagDiff);
69 Real priceStart = 0.0;
91 npv = priceStart + (priceEnd - priceStart) * (effectiveMaturity - dd.first)
CPI::InterpolationType observationInterpolation
ext::shared_ptr< ZeroInflationIndex > index
CPICapFloor::results results_
CPICapFloor::arguments arguments_
Shared handle to an observable.
Handle< CPICapFloorTermPriceSurface > priceSurf_
void calculate() const override
InterpolatingCPICapFloorEngine(Handle< CPICapFloorTermPriceSurface >)
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
std::pair< Date, Date > inflationPeriod(const Date &d, Frequency frequency)
utility function giving the inflation period for a given date
@ AsIndex
same interpolation as index
@ Flat
flat from previous fixing