Skip to content

Commit

Permalink
Deprecate indexIsInterpolated in base and zero curve constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
lballabio committed Nov 7, 2021
1 parent ac4b5ca commit 970f8a0
Show file tree
Hide file tree
Showing 11 changed files with 262 additions and 28 deletions.
4 changes: 4 additions & 0 deletions ql/experimental/inflation/cpicapfloortermpricesurface.cpp
Expand Up @@ -24,6 +24,8 @@

namespace QuantLib {

QL_DEPRECATED_DISABLE_WARNING

CPICapFloorTermPriceSurface::CPICapFloorTermPriceSurface(
Real nominal,
Real baseRate, // avoids an uncontrolled crash if index has no TS
Expand Down Expand Up @@ -107,6 +109,8 @@ namespace QuantLib {
"cfStrikes not increasing");
}

QL_DEPRECATED_ENABLE_WARNING


Date CPICapFloorTermPriceSurface::cpiOptionDateFromTenor(const Period& p) const
{
Expand Down
4 changes: 4 additions & 0 deletions ql/experimental/inflation/yoycapfloortermpricesurface.cpp
Expand Up @@ -22,6 +22,8 @@

namespace QuantLib {

QL_DEPRECATED_DISABLE_WARNING

YoYCapFloorTermPriceSurface::YoYCapFloorTermPriceSurface(
Natural fixingDays,
const Period& lag,
Expand Down Expand Up @@ -100,6 +102,8 @@ namespace QuantLib {
"cfStrikes not increasing");
}

QL_DEPRECATED_ENABLE_WARNING

Date YoYCapFloorTermPriceSurface::yoyOptionDateFromTenor(const Period& p) const
{
return referenceDate() + p;
Expand Down
60 changes: 58 additions & 2 deletions ql/termstructures/inflation/interpolatedzeroinflationcurve.hpp
Expand Up @@ -40,6 +40,20 @@ namespace QuantLib {
: public ZeroInflationTermStructure,
protected InterpolatedCurve<Interpolator> {
public:
InterpolatedZeroInflationCurve(const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
const Period& lag,
Frequency frequency,
std::vector<Date> dates,
const std::vector<Rate>& rates,
const Interpolator& interpolator = Interpolator());

/*! \deprecated Use the constructor without the
indexIsInterpolated parameter.
Deprecated in version 1.25.
*/
QL_DEPRECATED
InterpolatedZeroInflationCurve(const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
Expand Down Expand Up @@ -76,15 +90,27 @@ namespace QuantLib {
(or can't) provide the points for interpolation on
construction.
*/
InterpolatedZeroInflationCurve(const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
const Period& lag,
Frequency frequency,
Rate baseZeroRate,
const Interpolator &interpolator = Interpolator());

/*! \deprecated Use the constructor without the
indexIsInterpolated parameter.
Deprecated in version 1.25.
*/
QL_DEPRECATED
InterpolatedZeroInflationCurve(const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
const Period& lag,
Frequency frequency,
bool indexIsInterpolated,
Rate baseZeroRate,
const Interpolator &interpolator
= Interpolator());
const Interpolator &interpolator = Interpolator());
};

typedef InterpolatedZeroInflationCurve<Linear> ZeroInflationCurve;
Expand All @@ -93,6 +119,21 @@ namespace QuantLib {

// template definitions

QL_DEPRECATED_DISABLE_WARNING

template <class Interpolator>
InterpolatedZeroInflationCurve<Interpolator>::InterpolatedZeroInflationCurve(
const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
const Period& lag,
Frequency frequency,
std::vector<Date> dates,
const std::vector<Rate>& rates,
const Interpolator& interpolator)
: InterpolatedZeroInflationCurve(referenceDate, calendar, dayCounter, lag,
frequency, dates, rates, false) {}

template <class Interpolator>
InterpolatedZeroInflationCurve<Interpolator>::InterpolatedZeroInflationCurve(
const Date& referenceDate,
Expand Down Expand Up @@ -151,6 +192,20 @@ namespace QuantLib {
this->interpolation_.update();
}

template <class Interpolator>
InterpolatedZeroInflationCurve<Interpolator>::
InterpolatedZeroInflationCurve(const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
const Period& lag,
Frequency frequency,
Rate baseZeroRate,
const Interpolator& interpolator)
: ZeroInflationTermStructure(referenceDate, calendar, dayCounter,
baseZeroRate, lag, frequency),
InterpolatedCurve<Interpolator>(interpolator) {
}

template <class Interpolator>
InterpolatedZeroInflationCurve<Interpolator>::
InterpolatedZeroInflationCurve(const Date& referenceDate,
Expand All @@ -166,6 +221,7 @@ namespace QuantLib {
InterpolatedCurve<Interpolator>(interpolator) {
}

QL_DEPRECATED_ENABLE_WARNING

template <class T>
Date InterpolatedZeroInflationCurve<T>::baseDate() const {
Expand Down
26 changes: 26 additions & 0 deletions ql/termstructures/inflation/piecewisezeroinflationcurve.hpp
Expand Up @@ -50,6 +50,32 @@ namespace QuantLib {

//! \name Constructors
//@{
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())
: base_curve(referenceDate,
calendar,
dayCounter,
lag,
frequency,
baseZeroRate,
i),
instruments_(std::move(instruments)), accuracy_(accuracy) {
bootstrap_.setup(this);
}

/*! \deprecated Use the constructor without the
indexIsInterpolated parameter.
Deprecated in version 1.25.
*/
QL_DEPRECATED
PiecewiseZeroInflationCurve(
const Date& referenceDate,
const Calendar& calendar,
Expand Down
90 changes: 84 additions & 6 deletions ql/termstructures/inflationtermstructure.cpp
Expand Up @@ -25,6 +25,47 @@ namespace QuantLib {

QL_DEPRECATED_DISABLE_WARNING

InflationTermStructure::InflationTermStructure(
Rate baseRate,
const Period& observationLag,
Frequency frequency,
const DayCounter& dayCounter,
const ext::shared_ptr<Seasonality> &seasonality)
: TermStructure(dayCounter),
observationLag_(observationLag), frequency_(frequency),
baseRate_(baseRate), indexIsInterpolated_(false) {
setSeasonality(seasonality);
}

InflationTermStructure::InflationTermStructure(
const Date& referenceDate,
Rate baseRate,
const Period& observationLag,
Frequency frequency,
const Calendar& calendar,
const DayCounter& dayCounter,
const ext::shared_ptr<Seasonality> &seasonality)
: TermStructure(referenceDate, calendar, dayCounter),
observationLag_(observationLag), frequency_(frequency),
baseRate_(baseRate), indexIsInterpolated_(false) {
setSeasonality(seasonality);
}

InflationTermStructure::InflationTermStructure(
Natural settlementDays,
const Calendar& calendar,
Rate baseRate,
const Period& observationLag,
Frequency frequency,
const DayCounter &dayCounter,
const ext::shared_ptr<Seasonality> &seasonality)
: TermStructure(settlementDays, calendar, dayCounter),
observationLag_(observationLag), frequency_(frequency),
baseRate_(baseRate), indexIsInterpolated_(false) {
setSeasonality(seasonality);
}


InflationTermStructure::InflationTermStructure(
Rate baseRate,
const Period& observationLag,
Expand Down Expand Up @@ -102,6 +143,40 @@ namespace QuantLib {
}



ZeroInflationTermStructure::ZeroInflationTermStructure(
const DayCounter& dayCounter,
Rate baseZeroRate,
const Period& observationLag,
Frequency frequency,
const ext::shared_ptr<Seasonality> &seasonality)
: InflationTermStructure(baseZeroRate, observationLag, frequency,
dayCounter, seasonality) {}

ZeroInflationTermStructure::ZeroInflationTermStructure(
const Date& referenceDate,
const Calendar& calendar,
const DayCounter& dayCounter,
Rate baseZeroRate,
const Period& observationLag,
Frequency frequency,
const ext::shared_ptr<Seasonality> &seasonality)
: InflationTermStructure(referenceDate, baseZeroRate, observationLag, frequency,
calendar, dayCounter, seasonality) {}

ZeroInflationTermStructure::ZeroInflationTermStructure(
Natural settlementDays,
const Calendar& calendar,
const DayCounter& dayCounter,
Rate baseZeroRate,
const Period& observationLag,
Frequency frequency,
const ext::shared_ptr<Seasonality> &seasonality)
: InflationTermStructure(settlementDays, calendar, baseZeroRate, observationLag, frequency,
dayCounter, seasonality) {}

QL_DEPRECATED_DISABLE_WARNING

ZeroInflationTermStructure::ZeroInflationTermStructure(
const DayCounter& dayCounter,
Rate baseZeroRate,
Expand All @@ -110,8 +185,7 @@ namespace QuantLib {
bool indexIsInterpolated,
const ext::shared_ptr<Seasonality> &seasonality)
: InflationTermStructure(baseZeroRate, observationLag, frequency, indexIsInterpolated,
dayCounter, seasonality) {
}
dayCounter, seasonality) {}

ZeroInflationTermStructure::ZeroInflationTermStructure(
const Date& referenceDate,
Expand All @@ -123,8 +197,7 @@ namespace QuantLib {
bool indexIsInterpolated,
const ext::shared_ptr<Seasonality> &seasonality)
: InflationTermStructure(referenceDate, baseZeroRate, observationLag, frequency, indexIsInterpolated,
calendar, dayCounter, seasonality) {
}
calendar, dayCounter, seasonality) {}

ZeroInflationTermStructure::ZeroInflationTermStructure(
Natural settlementDays,
Expand All @@ -136,8 +209,9 @@ namespace QuantLib {
bool indexIsInterpolated,
const ext::shared_ptr<Seasonality> &seasonality)
: InflationTermStructure(settlementDays, calendar, baseZeroRate, observationLag, frequency, indexIsInterpolated,
dayCounter, seasonality) {
}
dayCounter, seasonality) {}

QL_DEPRECATED_ENABLE_WARNING

Rate ZeroInflationTermStructure::zeroRate(const Date &d, const Period& instObsLag,
bool forceLinearInterpolation,
Expand Down Expand Up @@ -182,6 +256,8 @@ namespace QuantLib {
}


QL_DEPRECATED_DISABLE_WARNING

YoYInflationTermStructure::YoYInflationTermStructure(
const DayCounter& dayCounter,
Rate baseYoYRate,
Expand Down Expand Up @@ -216,6 +292,8 @@ namespace QuantLib {
: InflationTermStructure(settlementDays, calendar, baseYoYRate, observationLag,
frequency, indexIsInterpolated, dayCounter, seasonality) {}

QL_DEPRECATED_ENABLE_WARNING


Rate YoYInflationTermStructure::yoyRate(const Date &d, const Period& instObsLag,
bool forceLinearInterpolation,
Expand Down

0 comments on commit 970f8a0

Please sign in to comment.