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