You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Hank Grabowski <ha...@applieddefense.com> on 2014/10/08 05:18:57 UTC

[math] Upgrading TricubicInterpolator object

All,

I've completed MATH-1138 ( BicubicSplineInterpolator is returning incorrect
interpolated values  ). It is generating substantially better values. I am
using the Akima Spline algorithm that I added to the library (with unit
tests). For the planar test the error off the truth function went from 6 to
6e-14. On the parabaloid function test it went from 224 to 6e-14. The
corresponding errors on the Akima Spline test for linear, parabolic and
cubic functions are 1e-15, 6e-14 and 3.8, respectively. While that is an
improvement over the Natural Spline, that could have errors over 15 on the
cubic test, the B-spline would collapse errors on the higher order
functions to something comparable to the linear and parabolic tests, and
thus further enhance the accuracy of the interpolation of the higher
dimension interpolators too.  However that should probably be another story
as well since this answers the mail on the heart of the MATH-1138 problem.

The TricubicSplineInterpolator needs fixing as well.  The unit tests
weren't actually running any accuracy tests.  I would like to recode the
Tricubic spline interpolator using the same piecewise methodology that I
used on the BicubicSplineInterpolator.  I would also like to update the
unit tests so that they are performing the accuracy checks as well.

So, the stories I would like to add to the Math Wish List and corresponding
JIRA stories would be:

1. Add a sense of caching of interpolation functions for
BicubicSplineInterpolator for bands that have already had the test function
built.
2. Upgrade TricubicSplineInterpolator to achieve appropriate numerical
accuracies and round out unit tests
3. Add a B-spline interpolator, with appropriate unit tests
4. Upgrade the BicubicSplineInterpolator to allow the user to select
between interpolation methods (Natural, Akima and B-Spline)
5. Create a BiLinearInterpolator

Is that amenable with everyone?

Hank