Interpolations.jl
Interpolations.jl copied to clipboard
WIP: Cubic Hermite Splines (and monotone splines)
Work in progress with @sglyon. This PR (when it is finished) would address #105
Plan: Cubic Hermite splines use information about both the value and derivative of the function. The plan is to allow for users to give both pieces of information if they would like, but if they only give values then we can construct an approximation of the derivative for them (using a specific approximation that preserves monotonicity).
Progress: A long way to go, but I thought I would open PR so no work got duplicated (and as a commitment device to myself). We have a (very) crude 1d implementation that seems to work for interpolating data.
Next: Our next step is that we need to plug this into the Interpolations.jl
framework i.e. make sure we write the right indexing functions etc... Will keep people updated.
Nice!
Hermite splines are not inherently cubic, right? How difficult would it be to generalize the implementation to support (at least) lower orders too?
Hermite splines aren't inherently cubic, but that seems to be the main use case. I don't know how hard it would be to generalize the implementation:
- Linear: Not sure that implementing these would be worthwhile because they should be equivalent to linear b-splines
- Quadratic: Might be worth doing, though they seem to be used very infrequently. Relevant paper: On Shape Preserving Quadratic Spline Interpolation
Will let you know how much effort implementing the quadratic version looks like it will be as I have time to work on this.
Why this one not merged at that time? It could be worth to merge and add Linear & quadratic later.
I haven't made time to finish this, so there isn't anything worth merging.
Likely won't have a chance to do this before new year. Depends on how some other things progress.