24#ifndef quantlib_ultimate_forward_term_structure_hpp
25#define quantlib_ultimate_forward_term_structure_hpp
75 const Period& firstSmoothingPoint,
107 const Period& firstSmoothingPoint,
109 : originalCurve_(
std::move(h)), llfr_(
std::move(lastLiquidForwardRate)),
110 ufr_(
std::move(ultimateForwardRate)), fsp_(firstSmoothingPoint), alpha_(
alpha) {
112 "first smoothing point must be a period with positive length");
154 Time deltaT =
t - cutOffTime;
170 return (cutOffTime * baseRate + deltaT * extrapolatedForward) /
t;
static Date maxDate()
latest allowed date
Shared handle to an observable.
Concrete interest rate class.
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
Ultimate forward term structure.
Calendar calendar() const override
the calendar used for reference and/or option date calculation
Rate zeroYieldImpl(Time) const override
returns the UFR extended zero yield rate
const Date & referenceDate() const override
the date at which discount = 1.0 and/or variance = 0.0
Handle< YieldTermStructure > originalCurve_
Natural settlementDays() const override
the settlementDays used for reference date calculation
DayCounter dayCounter() const override
the day counter used for date/time conversion
Date maxDate() const override
the latest date for which the curve can return values
UltimateForwardTermStructure(Handle< YieldTermStructure >, Handle< Quote > lastLiquidForwardRate, Handle< Quote > ultimateForwardRate, const Period &firstSmoothingPoint, Real alpha)
Zero-yield term structure.
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
@ NoFrequency
null frequency
Real Time
continuous quantity with 1-year units
unsigned QL_INTEGER Natural
positive integer
purely virtual base class for market observables
Zero-yield based term structure.