The B_Spline
class provides B-Spline basis functions for various orders 'm', where the order is one more than the degree. A spline function is a piecewise polynomial function where the pieces are stitched together at knots with the goal of maintaining continuity and differentiability. B-Spline basis functions form a popular form of basis functions used in Functional Data Analysis.
Value parameters
- clamp
-
flag for augmenting ττ
- mMax
-
the maximum order, allowing splines orders from 1 to mMax
- ττ
-
the time-points of the original knots in the time dimension
Attributes
Members list
Value members
Concrete methods
Evaluate each of the τ.dim-1
-many order m
B-spline basis functions at t
non-recursively, using an efficient dynamic programming approach. ==Example==
Evaluate each of the τ.dim-1
-many order m
B-spline basis functions at t
non-recursively, using an efficient dynamic programming approach. ==Example==
val m = 4 // order m (degree m-1)
val t = VectorD (1, 2, 3, 4) // original time points
val N = B_Spline (t, k) // B_Spline instance
val z = N.abf_ (m)(t) // vector of evaluations
println ("order k basis functions at t = z")
==Implementation Details== Let N(m)(i)
denote the i
-th order k
basis function evaluated at t
. Then each N(m)(i)
depends on the evaluation of N(m-1)(i)
and N(m-1)(i+1)
. Here is an example, given a set of order m=4
B-spline basis functions and knot vector τ
of length n
:
N(1)(0), N(1)(1), N(1)(2), N(1)(3), ..., N(1)(n-1)
|/ |/ |/ |/
N(2)(0), N(2)(1), N(2)(2), ..., N(2)(n-2)
|/ |/ |/
N(3)(0), N(3)(1), ..., N(3)(n-3)
|/ |/
N(4)(0), ..., N(4)(n-4)
This algorithm applies the procedure described above using O(n) storage and O(k*n) floating point operations.
Value parameters
- t
-
point to evaluate
Attributes
- See also
-
Carl de Boor (1978). A Practical Guide to Splines. Springer-Verlag. ISBN 3-540-90356-9.
- Definition Classes
Order 'm' B-Spline basis functions (general recurrence).
Order 'm' B-Spline basis functions (general recurrence).
Value parameters
- j
-
indicates which spline function
- m
-
the order of the spline function (degree = order - 1)
- t
-
the time parameter
Attributes
Evaluate the 'j+1'-th order m
B-spline basis function at t
non-recursively, using an efficient dynamic programming approach. ==Example==
Evaluate the 'j+1'-th order m
B-spline basis function at t
non-recursively, using an efficient dynamic programming approach. ==Example==
val m = 4 // order m (degree m-1)
val t = VectorD (1, 2, 3, 4) // original time points
val N = B_Spline (t, k) // B_Spline instance
val j = 0 // spline j in N.range(m)
val z = N.bf (m)(j)(t(2)) // evaluate at t(2)
println ("order k basis function j at t(2) = z")
==Implementation Details== Let N(m)(i)
denote the i
-th order k
basis function evaluated at t
. Then each N(m)(i)
depends on the evaluation of N(m-1)(i)
and N(m-1)(i+1)
. Here is an example, given a set of order m=4
B-spline basis functions and knot vector τ
of length n
:
N(1)(0), N(1)(1), N(1)(2), N(1)(3)
|/ |/ |/
N(2)(0), N(2)(1), N(2)(2)
|/ |/
N(3)(0), N(3)(1)
|/
N(4)(0)
This algorithm applies the procedure described above using O(k) storage and O(k*k) floating point operations.
Value parameters
- t
-
point to evaluate
Attributes
- See also
-
Carl de Boor (1978). A Practical Guide to Splines. Springer-Verlag. ISBN 3-540-90356-9.
Adjusted order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0
. The valid range of usable splines is defined in range
.
Adjusted order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0
. The valid range of usable splines is defined in range
.
Value parameters
- j
-
indicates which spline function
- m
-
the order of the spline function (degree = order - 1)
- t
-
the time parameter
Attributes
Retrieve the order of the this B_Spline.
Retrieve the order of the this B_Spline.
Attributes
Range of "usable" splines when using the bs
function. This is needed, since extra splines may be generated by the general B-spline recurrence.
Range of "usable" splines when using the bs
function. This is needed, since extra splines may be generated by the general B-spline recurrence.
Value parameters
- m
-
the order of the spline
Attributes
The number of usable spline basis functions for a specified order, given the configured knot vector.
The number of usable spline basis functions for a specified order, given the configured knot vector.
Value parameters
- m
-
the order of the spline
Attributes
Inherited methods
Obtain the value of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling bf(m)(j) only. Ex: val x = bf(m)(t) retrieves the value of all the basis functions at 't'. val f = bf(m) retrieves all the basis functions.
Obtain the value of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling bf(m)(j) only. Ex: val x = bf(m)(t) retrieves the value of all the basis functions at 't'. val f = bf(m) retrieves all the basis functions.
Value parameters
- m
-
the order of all the basis function
- t
-
the time parameter
Attributes
- Inherited from:
- BasisFunction
Obtain the value of the m-th order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf(m)(j) only. Ex: val x = bf(m)(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf(m)(j) retrieves the j-th basis function.
Obtain the value of the m-th order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf(m)(j) only. Ex: val x = bf(m)(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf(m)(j) retrieves the j-th basis function.
Value parameters
- j
-
indicates which basis function
- m
-
the order of the basis function
- t
-
the time parameter
Attributes
- Inherited from:
- BasisFunction
Obtain the value of the 1st order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf1(j) only. Ex: val x = bf1(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf1(j) retrieves the j-th basis function.
Obtain the value of the 1st order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf1(j) only. Ex: val x = bf1(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf1(j) retrieves the j-th basis function.
Value parameters
- j
-
indicates which basis function
- t
-
the time parameter
Attributes
- Inherited from:
- BasisFunction
Obtain the value of the 2nd order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf2(j) only. Ex: val x = bf2(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf2(j) retrieves the j-th basis function.
Obtain the value of the 2nd order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf2(j) only. Ex: val x = bf2(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf2(j) retrieves the j-th basis function.
Value parameters
- j
-
indicates which basis function
- t
-
the time parameter
Attributes
- Inherited from:
- BasisFunction
Obtain the value of the 3rd order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf3(j) only. Ex: val x = bf3(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf3(j) retrieves the j-th basis function.
Obtain the value of the 3rd order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf3(j) only. Ex: val x = bf3(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf3(j) retrieves the j-th basis function.
Value parameters
- j
-
indicates which basis function
- t
-
the time parameter
Attributes
- Inherited from:
- BasisFunction
Obtain the value of the 4th order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf4(j) only. Ex: val x = bf4(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf4(j) retrieves the j-th basis function.
Obtain the value of the 4th order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf4(j) only. Ex: val x = bf4(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf4(j) retrieves the j-th basis function.
Value parameters
- j
-
indicates which basis function
- t
-
the time parameter
Attributes
- Inherited from:
- BasisFunction
The number of basis functions for a specified order.
The number of basis functions for a specified order.
Value parameters
- m
-
the order of the basis function
Attributes
- Inherited from:
- BasisFunction
Compute the dot/inner product of 'this' basis function object and basis function 'g'.
Compute the dot/inner product of 'this' basis function object and basis function 'g'.
Value parameters
- a
-
the start of the interval
- b
-
the end of the interval
- g
-
the other function
- i
-
indicates which basis function of 'this'
- j
-
indicates which basis function of 'g'
- m
-
the order of the basis function
Attributes
- Inherited from:
- BasisFunction
Retrieve the cached design matrices.
Recompute cached matrices.