QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
B-spline basis functions. More...
#include <bspline.hpp>
Public Member Functions | |
BSpline (Natural p, Natural n, const std::vector< Real > &knots) | |
Real | operator() (Natural i, Real x) const |
Private Member Functions | |
Real | N (Natural i, Natural p, Real x) const |
Private Attributes | |
Natural | p_ |
Natural | n_ |
std::vector< Real > | knots_ |
B-spline basis functions.
Follows treatment and notation from:
Weisstein, Eric W. "B-Spline." From MathWorld–A Wolfram Web Resource. http://mathworld.wolfram.com/B-Spline.html
(p+1) -th order B-spline (or p degree polynomial) basis functions N_{i,p}(x), i = 0,1,2 \ldots n , with n+1 control points, or equivalently, an associated knot vector of size p+n+2 defined at the increasingly sorted points (x_0, x_1 \ldots x_{n+p+1}) . A linear B-spline has p=1 , quadratic B-spline has p=2 , a cubic B-spline has p=3 , etc.
The B-spline basis functions are defined recursively as follows:
\begin{array}{rcl} N_{i,0}(x) &=& 1 \textrm{\ if\ } x_{i} \leq x < x_{i+1} \\ &=& 0 \textrm{\ otherwise} \\ N_{i,p}(x) &=& N_{i,p-1}(x) \frac{(x - x_{i})}{ (x_{i+p-1} - x_{i})} + N_{i+1,p-1}(x) \frac{(x_{i+p} - x)}{(x_{i+p} - x_{i+1})} \end{array}
Definition at line 58 of file bspline.hpp.
Definition at line 25 of file bspline.cpp.
Definition at line 49 of file bspline.cpp.
|
private |
Definition at line 70 of file bspline.hpp.
|
private |
Definition at line 72 of file bspline.hpp.
|
private |
Definition at line 73 of file bspline.hpp.