I just used your code as basis to implement a Catmull-Rom interpolator (http://www.juce.com/forum/topic/catmull-rom-interpolator-based-lagrange-interpolator), and I have a couple of questions about the LagrangeInterpolator:
1. In the 'processAdding' method, line 200, the position value for the call to LagrangeHelpers::valueAtOffset is 'jmax (0.0f, 1.0f - (float) pos)', while in the 'process' method, line 132, the position value is '1.0f - (float)pos'. I guess that either the jmax call in 'processAdding' is unnecessary (or wrong), or that 'jmax' is lacking in 'processing'?
2. The 'pos' value is calculated in a different way whether you are sampling up or down (i.e. actualRatio < 1.0 or not). I don't quite understand why it is so, but I guess it has a reason. But are things working correctly if 'actualRatio' crosses 1.0 from one call to another?