Discrete splines are a class of univariate piecewise polynomial
functions which are analogous to splines, but whose smoothness is defined
via divided differences rather than derivatives. Tools for efficient
computations relating to discrete splines are provided here. These tools
include discrete differentiation and integration, various matrix
computations with discrete derivative or discrete spline bases matrices, and
interpolation within discrete spline spaces. These techniques are described
in Tibshirani (2020)
These are not B-splines:
These are called discrete B-splines. They span a function space called discrete splines, which are analogous to splines, but defined in terms of a suitable discrete notion of smoothness.
Discrete splines have continuous discrete derivatives at their knots (rather than continuous derivatives, as splines do).
They have important computational properties, like the fact that interpolation within the space of discrete splines can be done in constant-time.
They are intimately connected to trend filtering (they provide the basis representation that underlies the trend filtering estimator).
For more background, see the monograph: “Divided differences, falling factorials, and discrete splines: Another look at trend filtering and related problems”.
The dspline package provides tools for computations with discrete
splines. The core routines are written in C++ for efficiency. See the
reference index
for a summary of the tools that are available.
To install the released version from CRAN:
install.packages("dspline")
To install the development version from GitHub:
# install.packages("pak")
pak::pak("glmgen/dspline")