On Tue, Mar 7, 2023, 5:11 PM Simon Wiesheier <simon.wiesheier@gmail.com>
wrote:
After reading the manual, it is not clear to me how GNU internally
constructs the knot vector.
There are the functions,
gsl_bspline_knots
gsl_bspline_knots_uniform,
that create the knot vector based on given breakpoints.
I encourage you to initialize a cubic workspace (k=4, pick nbreak) then to
use gsl_bspline_knots_uniform to have the GSL construct the knot vector for
you given some [a, b]. You will be able to observe the multiplicity of the
various knots in the resulting w->knots. The multiplicity is a consequence
of the chosen k meaning that if you opted for quadratic or quintic k you
will see a different knot multiplicity. Play around a bit.
You may (or may not) find the routines at
https://github.com/RhysU/suzerain/blob/master/suzerain/bspline.h to be
useful worked examples. Those include forming linear combinations of the
basis.
- Rhys