# 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

The man page BSpline(3) is an alias of QuantLib_BSpline(3).

Mon Apr 30 2018 Version 1.12.1 QuantLib