Added function for generating sparse interpolation matrices #17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a simple function for getting sparse interpolation matrices using the barycentric Lagrange interpolation that is already implemented in
qmat.It loops through every point you want to interpolate to, gathers the
knearest neighbors on the grid you interpolate from, and puts the interpolating coefficients in a line of the interpolation matrix. Afterwards, interpolation of orderkcan be achieved by SpMV.For certain grids, the distances between nodes to be interpolated to and their
knearest neighbors on the grid you interpolate from repeat for multiple entries. In this case, this function will simple copy existing interpolating coefficients rather then computing them from scratch.Tests are included that make sure the interpolation is of order
kby testing that a polynomial of orderkis interpolated exactly, whereas a polynomial of orderk+1is not, unless both grids match, in which case the interpolation is always exact.The latter case is needed to test the reuse of interpolating coefficients.