Convex monotone yield-curve interpolation method. More...
#include <ql/math/interpolations/convexmonotoneinterpolation.hpp>
Public Member Functions | |
ConvexMonotoneInterpolation (const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, Real quadraticity, Real monotonicity, bool forcePositive, bool flatFinalPeriod=false, const helper_map &preExistingHelpers=helper_map()) | |
ConvexMonotoneInterpolation (Interpolation &interp) | |
std::map< Real, ext::shared_ptr< detail::SectionHelper > > | getExistingHelpers () |
![]() | |
bool | empty () const |
Real | operator() (Real x, bool allowExtrapolation=false) const |
Real | primitive (Real x, bool allowExtrapolation=false) const |
Real | derivative (Real x, bool allowExtrapolation=false) const |
Real | secondDerivative (Real x, bool allowExtrapolation=false) const |
Real | xMin () const |
Real | xMax () const |
bool | isInRange (Real x) const |
void | update () |
![]() | |
void | enableExtrapolation (bool b=true) |
enable extrapolation in subsequent calls | |
void | disableExtrapolation (bool b=true) |
disable extrapolation in subsequent calls | |
bool | allowsExtrapolation () const |
tells whether extrapolation is enabled | |
Additional Inherited Members | |
![]() | |
typedef Real | argument_type |
typedef Real | result_type |
![]() | |
void | checkRange (Real x, bool extrapolate) const |
![]() | |
ext::shared_ptr< Impl > | impl_ |
Convex monotone yield-curve interpolation method.
Enhances implementation of the convex monotone method described in "Interpolation Methods for Curve Construction" by Hagan & West AMF Vol 13, No2 2006.
A setting of monotonicity = 1 and quadraticity = 0 will reproduce the basic Hagan/West method. However, this can produce excessive gradients which can mean P&L swings for some curves. Setting monotonicity < 1 and/or quadraticity > 0 produces smoother curves. Extra enhancement to avoid negative values (if required) is in place.