spline_fit0=: dyad define NB. Don't extrapolate; use last value if beyond ends. NB. Usage: (x;y;d) spline_fit0 x0 --> y(x0) NB. x, y & d boxed; x0 may be an array 'xx yy d'=. x h=. DEL xx f0=. (}: xx)%h f1=. (}. xx)%h g0=. (}: yy)%h g1=. (}. yy)%h g3=. g1 - g0 NB. (y_i+1 - y_i)/(x_i+1 - x_i) g4=. ((g0*f1)-(g1*f0))*h ff=. _1+ +/"1 y >/ xx t=. ff= n=. (0>. ff)<._2+#xx NB. t=0 beyond ends where n not = ff lin=. (n{g4)+(y*(n{g3)) NB. linear interpolation xn=. y% hn=. n{h a=. (n{f1)-xn b=. xn-(n{f0) aa=. a* <: *:a NB. a*(a^2 - 1) = a^3 - a bb=. b* <: *:b cub=. ((aa*(n{}:d))+(bb*(n{}.d)))*(*:hn)%6 NB. cubic term nn=. n + (n