QuantLib: KernelInterpolation Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.20

Public Member Functions | List of all members
KernelInterpolation Class Reference
Math tools » 1-D Interpolations and corresponding traits

Kernel interpolation between discrete points. More...

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

Inheritance diagram for KernelInterpolation:
[legend]

## 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
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
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
Public Types inherited from Interpolation
typedef Real | argument_type
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< Impl > | impl_

## 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.

## 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 \]