(Hopefully) fixed NaN problem, implemented linearInterpolate4Float and catmullRomInterpolate4Float