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())
86 std::vector<ext::shared_ptr<typename Traits::helper> > instruments,
87 Real accuracy = 1.0e-12,
88 const Interpolator& i = Interpolator())
110 const std::vector<Time>&
times()
const;
111 const std::vector<Date>&
dates()
const;
112 const std::vector<Real>&
data()
const;
113 std::vector<std::pair<Date, Real> >
nodes()
const;
134 template <
class I,
template <
class>
class B,
class T>
136 if (!this->hasExplicitBaseDate())
138 return base_curve::baseDate();
141 template <
class I,
template <
class>
class B,
class T>
144 return base_curve::maxDate();
147 template <
class I,
template <
class>
class B,
class T>
150 return base_curve::times();
153 template <
class I,
template <
class>
class B,
class T>
156 return base_curve::dates();
159 template <
class I,
template <
class>
class B,
class T>
162 return base_curve::rates();
165 template <
class I,
template <
class>
class B,
class T>
166 std::vector<std::pair<Date, Real> >
169 return base_curve::nodes();
172 template <
class I,
template <
class>
class B,
class T>
174 bootstrap_.calculate();
177 template <
class I,
template<
class>
class B,
class T>
179 base_curve::update();
ext::shared_ptr< Seasonality > seasonality() const
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
Bootstrap< this_curve > bootstrap_
InterpolatedZeroInflationCurve< Interpolator > base_curve
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
QL_DEPRECATED_DISABLE_WARNING QL_DEPRECATED PiecewiseZeroInflationCurve(const Date &referenceDate, const Calendar &calendar, const DayCounter &dayCounter, const Period &lag, Frequency frequency, Rate baseZeroRate, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, Real accuracy=1.0e-12, const Interpolator &i=Interpolator())
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 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
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