26#ifndef quantlib_piecewise_yoy_inflation_curve_hpp
27#define quantlib_piecewise_yoy_inflation_curve_hpp
37 template <
class Interpolator,
38 template <
class>
class Bootstrap = IterativeBootstrap,
39 class Traits = YoYInflationTraits>
60 std::vector<ext::shared_ptr<typename Traits::helper> > instruments,
61 const ext::shared_ptr<Seasonality>&
seasonality = {},
62 Real accuracy = 1.0e-12,
63 const Interpolator& i = Interpolator())
78 [[deprecated(
"Use the overload without indexIsInterpolated")]]
86 std::vector<ext::shared_ptr<typename Traits::helper> > instruments,
87 const ext::shared_ptr<Seasonality>&
seasonality = {},
88 Real accuracy = 1.0e-12,
89 const Interpolator& i = Interpolator())
104 const std::vector<Time>&
times()
const;
105 const std::vector<Date>&
dates()
const;
106 const std::vector<Real>&
data()
const;
107 std::vector<std::pair<Date, Real> >
nodes()
const;
129 template <
class I,
template <
class>
class B,
class T>
132 return base_curve::maxDate();
135 template <
class I,
template <
class>
class B,
class T>
138 return base_curve::times();
141 template <
class I,
template <
class>
class B,
class T>
144 return base_curve::dates();
147 template <
class I,
template <
class>
class B,
class T>
150 return base_curve::data();
153 template <
class I,
template <
class>
class B,
class T>
154 std::vector<std::pair<Date, Real> >
157 return base_curve::nodes();
160 template <
class I,
template <
class>
class B,
class T>
162 bootstrap_.calculate();
165 template <
class I,
template <
class>
class B,
class T>
168 return base_curve::yoyRateImpl(
t);
171 template <
class I,
template <
class>
class B,
class T>
173 base_curve::update();
ext::shared_ptr< Seasonality > seasonality() const
virtual Date baseDate() const
minimum (base) date
virtual Frequency frequency() const
Inflation term structure based on interpolated year-on-year rates.
Framework for calculation on demand and result caching.
Piecewise year-on-year inflation term structure.
Rate yoyRateImpl(Time t) const override
to be defined in derived classes
void performCalculations() const override
Bootstrap< this_curve > bootstrap_
const std::vector< Date > & dates() const
const std::vector< Real > & data() const
std::vector< std::pair< Date, Real > > nodes() const
Interpolator interpolator_type
const std::vector< Time > & times() const
std::vector< ext::shared_ptr< typename Traits::helper > > instruments_
Date maxDate() const override
the latest date for which the curve can return values
PiecewiseYoYInflationCurve(const Date &referenceDate, Date baseDate, Rate baseYoYRate, Frequency frequency, const DayCounter &dayCounter, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const ext::shared_ptr< Seasonality > &seasonality={}, Real accuracy=1.0e-12, const Interpolator &i=Interpolator())
PiecewiseYoYInflationCurve< Interpolator, Bootstrap, Traits > this_curve
InterpolatedYoYInflationCurve< Interpolator > base_curve
friend class Bootstrap< this_curve >
PiecewiseYoYInflationCurve(const Date &referenceDate, Date baseDate, Rate baseYoYRate, Frequency frequency, bool indexIsInterpolated, const DayCounter &dayCounter, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const ext::shared_ptr< Seasonality > &seasonality={}, Real accuracy=1.0e-12, const Interpolator &i=Interpolator())
virtual const Date & referenceDate() const
the date at which discount = 1.0 and/or variance = 0.0
virtual DayCounter dayCounter() const
the day counter used for date/time conversion
virtual bool indexIsInterpolated() const
bool indexIsInterpolated_
Frequency
Frequency of events.
Real Time
continuous quantity with 1-year units
inflation bootstrap traits
universal piecewise-term-structure boostrapper.
framework for calculation on demand and result caching
#define QL_DEPRECATED_DISABLE_WARNING
#define QL_DEPRECATED_ENABLE_WARNING