This is just a performance tip but I would have f_interpolate return the interpolating function. Right now every time f_interpolate is called it constructs a interpolation object. I would rewrite it as follows
f_interpolate = QuadraticInterpolation(table_u, table_t)
@register f_interpolate(t)
Assuming @register accepts DataInterpolations