QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
Public Member Functions | List of all members
KernelInterpolation Class Reference

Kernel interpolation between discrete points. More...

#include <ql/math/interpolations/kernelinterpolation.hpp>

+ Inheritance diagram for KernelInterpolation:
+ Collaboration diagram for KernelInterpolation:

Public Member Functions

template<class I1 , class I2 , class Kernel >
 KernelInterpolation (const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, const Kernel &kernel, const double epsilon=1.0E-7)
 
- Public Member Functions inherited from Interpolation
 Interpolation ()=default
 
 ~Interpolation () override=default
 
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 ()
 
- Public Member Functions inherited from Extrapolator
 Extrapolator ()=default
 
virtual ~Extrapolator ()=default
 
void enableExtrapolation (bool b=true)
 enable extrapolation in subsequent calls More...
 
void disableExtrapolation (bool b=true)
 disable extrapolation in subsequent calls More...
 
bool allowsExtrapolation () const
 tells whether extrapolation is enabled More...
 

Additional Inherited Members

- Public Attributes inherited from Interpolation
QL_DEPRECATED typedef Real argument_type
 
QL_DEPRECATED typedef Real result_type
 
- Protected Member Functions inherited from Interpolation
void checkRange (Real x, bool extrapolate) const
 
- Protected Attributes inherited from Interpolation
ext::shared_ptr< Implimpl_
 

Detailed Description

Kernel interpolation between discrete points.

Implementation of the kernel interpolation approach, which can be found in "Foreign Exchange Risk" by Hakala, Wystup page 256.

The kernel in the implementation is kept general, although a Gaussian is considered in the cited text.

Warning:
See the Interpolation class for information about the required lifetime of the underlying data.

Definition at line 146 of file kernelinterpolation.hpp.

Constructor & Destructor Documentation

◆ KernelInterpolation()

KernelInterpolation ( const I1 &  xBegin,
const I1 &  xEnd,
const I2 &  yBegin,
const Kernel &  kernel,
const double  epsilon = 1.0E-7 
)
Precondition
the \( x \) values must be sorted.
kernel needs a Real operator()(Real x) implementation

The calculation will solve \( y = Ma \) for \(a\). Due to singularity or rounding errors the recalculation \( Ma \) may not give \( y\). Here, a failure will be thrown if

\[ \left\| Ma-y \right\|_\infty \geq \epsilon \]

Definition at line 159 of file kernelinterpolation.hpp.