# QuantLib_BSpline man page

BSpline — B-spline basis functions.

## Synopsis

`#include <ql/math/bspline.hpp>`

### Public Member Functions

**BSpline** (**Natural** p, **Natural** n, const std::vector< **Real** > &knots)**Real operator()** (**Natural** i, **Real** x) const

## Detailed Description

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 extrm{ if } x_{i} leq x < x_{i+1} \ &=& 0 extrm{ otherwise} \ N_{i,p}(x) &=& N_{i,p-1}(x) ac{(x - x_{i})}{ (x_{i+p-1} - x_{i})} + N_{i+1,p-1}(x) ac{(x_{i+p} - x)}{(x_{i+p} - x_{i+1})} \nd{array} ]

## Author

Generated automatically by Doxygen for QuantLib from the source code.

## Referenced By

BSpline(3) is an alias of QuantLib_BSpline(3).