*@Tim Holy*, I've started thinking about how I should go about implementing 
cubic spline interpolation for Grid.jl over my Easter break - as a start, 
I'm trying to read through the code that does the quadratic interpolation 
and understand how all the parts of the library work together, and how I 
should hook into the current code structure. Of course, questions keep 
popping up ranging anywhere from "this seems to be dead code, is that 
intentional or am I missing something?" to "I have no idea what this 
function does, would you mind explaining it?" What is the best place for me 
to ask such quesitons? Here on the mailing list, in issues (or one single 
discussion issue) on Github, or somewhere else?

Thanks in advance!

// Tomas

On Thursday, March 27, 2014 1:56:04 AM UTC+1, Tim Holy wrote:
>
> This is spelled out in the paper 
>    P. Thevenaz, T. Blu, and M. Unser (2000). "Interpolation Revisited." 
>    IEEE Transactions on Medical Imaging, 19: 739-758. 
> Basically, the idea is that interpolation computes values from a set of 
> coefficients: 
>     y(x) = sum_i coef_i * f_i(dx_i) 
> where dx_i comes from a displacement of x. For an "interpolating" 
> function, 
> the coefficients are the actual on-grid values of the function you're 
> trying to 
> interpolate. However, you can generalize the notion to "non-interpolating" 
> expressions, where the coefficients are distinct from the on-grid values. 
> You 
> can pretty quickly convince yourself that this is necessary, for example, 
> if 
> you want to have 3-point quadratic interpolation with continuous 
> derivatives. 
> The coefficients turn out to be related to the on-grid values via a simple 
> tridiagonal matrix equation (which is fast to invert). 
>
> Explicitly, for quadratic interpolation you can convince yourself that the 
> only expression with continuous derivatives at the half-point between 
> integers 
> is 
>    y(alpha) = (alpha-0.5)^2*ym/2 + (.75-alpha)^2*y0 + (alpha+0.5)^2*yp/2 
> where |alpha| <= 0.5 and ym,y0,yp are the interpolation coefficients. Plug 
> in 
> alpha=0, and you can see that you don't recover y0. Hence it's "non- 
> interpolating." 
>
> --Tim 
>
> On Wednesday, March 26, 2014 05:00:36 PM Stefan Schwarz wrote: 
> > > Hello Tim, 
> > 
> > this is maybe not the right place to ask this question, 
> > but may you elaborate on that matter, that interp_invert! 
> > compensates "the non-interpolating" issue of 
> > the quadratic? 
> > 
> > Thanks in advance 
> > 
> > Stefan 
>

Reply via email to