The collocation matrix is defined as $B_{j,l} = B_l(x_j)$
, so that row j
contains all the B-splines which are non-zero at x_j
.
The matrix is constructed in the LAPACK banded storage. Basically, for an N-by-N matrix A with ku upper diagonals and kl lower diagonals, the shape of the array Ab is (2*kl + ku +1, N), where the last kl+ku+1 rows of Ab contain the diagonals of A, and the first kl rows of Ab are not referenced. For more info see, e.g. the docs for the *gbsv
routine.
This routine is not supposed to be called directly, and does no error checking.
sorted 1D array of x values
sorted 1D array of knots
spline order
This parameter is modified in-place. On exit: zeroed out. On exit: B-spline collocation matrix in the band storage with ku
upper diagonals and kl
lower diagonals. Here kl = ku = k
.
skip this many rows
Build the B-spline collocation matrix.
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them