26#ifndef quantlib_piecewise_zero_inflation_curve_hpp
27#define quantlib_piecewise_zero_inflation_curve_hpp
37 template <
class Interpolator,
38 template <
class>
class Bootstrap = IterativeBootstrap,
39 class Traits = ZeroInflationTraits>
58 std::vector<ext::shared_ptr<typename Traits::helper> > instruments,
59 const ext::shared_ptr<Seasonality>&
seasonality = {},
60 Real accuracy = 1.0e-14,
61 const Interpolator& i = Interpolator())
79 const std::vector<Time>&
times()
const;
80 const std::vector<Date>&
dates()
const;
81 const std::vector<Real>&
data()
const;
82 std::vector<std::pair<Date, Real> >
nodes()
const;
93 std::vector<ext::shared_ptr<typename Traits::helper> >
instruments_;
104 template <
class I,
template <
class>
class B,
class T>
107 return base_curve::maxDate();
110 template <
class I,
template <
class>
class B,
class T>
113 return base_curve::times();
116 template <
class I,
template <
class>
class B,
class T>
119 return base_curve::dates();
122 template <
class I,
template <
class>
class B,
class T>
125 return base_curve::rates();
128 template <
class I,
template <
class>
class B,
class T>
129 std::vector<std::pair<Date, Real> >
132 return base_curve::nodes();
135 template <
class I,
template <
class>
class B,
class T>
137 bootstrap_.calculate();
140 template <
class I,
template <
class>
class B,
class T>
143 return base_curve::zeroRateImpl(
t);
146 template <
class I,
template<
class>
class B,
class T>
148 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 the interpolation of zero rates.
Framework for calculation on demand and result caching.
Piecewise zero-inflation term structure.
void performCalculations() const override
Rate zeroRateImpl(Time t) const override
to be defined in derived classes
Bootstrap< this_curve > bootstrap_
InterpolatedZeroInflationCurve< Interpolator > base_curve
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
PiecewiseZeroInflationCurve(const Date &referenceDate, Date baseDate, Frequency frequency, const DayCounter &dayCounter, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, const ext::shared_ptr< Seasonality > &seasonality={}, Real accuracy=1.0e-14, const Interpolator &i=Interpolator())
friend class Bootstrap< this_curve >
PiecewiseZeroInflationCurve< Interpolator, Bootstrap, Traits > this_curve
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
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