-
Notifications
You must be signed in to change notification settings - Fork 112
Closed as not planned
Description
Now that basic functionality is in place, we need to extend what we have with more cases, to make the library feature complete. That's a good case for a wishlist =) This issue is intended to keep track of overall progress toward feature parity with (interpolation parts of) Grid.jl - actual implementation details can be discussed in separate issues.
Boundary condtions (assuming a grid on 1:n)
-
Flat, i.e.f'(x=1) = f'(x=n) = 0(WIP features (so far: Flat BC, Constant extrap) #8) -
Line(orNatural), i.e.f''(x=1) = f''(x=n) = 0(More boundary conditions for quadratic B-splines #9) -
Tangent, i.e. with specified derivatives at the edges (Flatis essentiallyTangent(0,0)) -
Reflect, i.e. all continuous derivatives are 0 at the edge, to preserve continuity properties when extrapolating (Added in Reflecting BC for quadratic itp #20) -
Periodic, i.e. function value and all derivatives are equal at both edges; withOnGrid, the data should include both cell boundaries (andA[1]==A[end]), while withOnCellthis assumption is not necessary (but ratherA[-.5] == A[end+.5]) (More boundary conditions for quadratic B-splines #9) -
Free, i.e. with extra continuous derivatives close to the edges, to close the system. (For e.g. cubic splines, which have continuous second derivatives, the third derivatives are also continuous at the second-to-last boundaries). (More boundary conditions for quadratic B-splines #9)
Extrapolation behaviors
-
Constant, i.e. return the value at the closest data point (WIP features (so far: Flat BC, Constant extrap) #8) -
Linear(Linear extrapolation #23) -
Quadraticetc, valid up to the same degree as the interpolation. When the same degree, just continue the outermost polynomial; when lower degree, construct an extrapolation polynomial with as many continuous derivatives as necessary for a smooth transition. For example, linear extrapolation of a quadratic interpolation object, would have continuous value and first derivative (which conveniently specifies the extrapolation uniquely...). -
Periodic, i.e.f(x + T) = f(x)for a function with periodT(More boundary conditions for quadratic B-splines #9) -
Reflec, i.e.f(end - 1 + T/3) = f(end - T/3 + 1)(More boundary conditions for quadratic B-splines #9)
Interpolation degrees
- Cubic b-splines (WIP on cubic #90 - thanks @spencerlyon2!)
Other functionality
- Derivative evaluation, up to the highest continuous degree supported by the interpolation object. E.g.
gradient(itp::Quadratic, x)orhessian(itp::Cubic, x). (Gradient fixed in Gradient evaluation #18, higher orders will be added when higher order interpolations are added...) - Multi-valued interpolation (i.e. interpolation that yields more than one value per coordinate), More of a decision: do we do anything special to make it easier, or just force users to shape their data accordingly? Discussed separately under Multi-valued interpolation #3
- Range/vector-valued indexing (i.e. indexing with multiple values at the same time, e.g.
itp[1:.1:10]) (Vector-valued evaluation #24, Restrict scalar indexing to Numbers #54, Improve testing #55) - Non-uniform interpolation (Non-uniform interpolation #11, Add GriddedInterpolation for non-uniform grids #56)
- Uniform interpolation on non-unit scales (the same problem that
CoordInterpGridinGrid.jlsolves) (Something equivalent to CoordInterpGrid #25, RFC: Scaling of interpolation objects (fixes #25) #47)
schneiderfelipe
Metadata
Metadata
Assignees
Labels
No labels