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>
59 std::vector<ext::shared_ptr<typename Traits::helper> > instruments,
60 const ext::shared_ptr<Seasonality>&
seasonality = {},
61 Real accuracy = 1.0e-12,
62 const Interpolator& i = Interpolator())
91 std::vector<ext::shared_ptr<typename Traits::helper> > instruments,
92 Real accuracy = 1.0e-12,
93 const Interpolator& i = Interpolator())
116 const std::vector<Time>&
times()
const;
117 const std::vector<Date>&
dates()
const;
118 const std::vector<Real>&
data()
const;
119 std::vector<std::pair<Date, Real> >
nodes()
const;
140 template <
class I,
template <
class>
class B,
class T>
142 if (!this->hasExplicitBaseDate())
144 return base_curve::baseDate();
147 template <
class I,
template <
class>
class B,
class T>
150 return base_curve::maxDate();
153 template <
class I,
template <
class>
class B,
class T>
156 return base_curve::times();
159 template <
class I,
template <
class>
class B,
class T>
162 return base_curve::dates();
165 template <
class I,
template <
class>
class B,
class T>
168 return base_curve::data();
171 template <
class I,
template <
class>
class B,
class T>
172 std::vector<std::pair<Date, Real> >
175 return base_curve::nodes();
178 template <
class I,
template <
class>
class B,
class T>
180 bootstrap_.calculate();
183 template <
class I,
template <
class>
class B,
class T>
185 base_curve::update();
ext::shared_ptr< Seasonality > seasonality() const
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.
void performCalculations() const override
Bootstrap< this_curve > bootstrap_
Date baseDate() const override
minimum (base) date
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< Interpolator, Bootstrap, Traits > this_curve
InterpolatedYoYInflationCurve< Interpolator > base_curve
QL_DEPRECATED_DISABLE_WARNING QL_DEPRECATED PiecewiseYoYInflationCurve(const Date &referenceDate, const Calendar &calendar, const DayCounter &dayCounter, const Period &lag, Frequency frequency, bool indexIsInterpolated, Rate baseYoYRate, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, Real accuracy=1.0e-12, const Interpolator &i=Interpolator())
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 Calendar calendar() const
the calendar used for reference and/or option date calculation
virtual DayCounter dayCounter() const
the day counter used for date/time conversion
virtual bool indexIsInterpolated() const
Frequency
Frequency of events.
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