&%    (C) 2015 Dimitri Sabadie BSD3 ,Dimitri Sabadie <dimitri.sabadie@gmail.com>  experimental  portable Safe-./A  is a **control point**. A curve passes through control points and the shape of the curve is determined by the polynomials used to interpolate values in between.CP s a% is a control point of sampling type s and carried type a. In most cases, s must be   and a must be Additive and  .(C) 2015 Dimitri SabadieBSD3+Dimitri Sabadie <dimitri.sabadie@gmail.com> experimentalportableNone-./A = is used to interpolate in between a spline s control points.Constant polynomial  a.k.a. no interpolation.<Given two control points and a sample value in between, the 9 polynomial won t perform any interpolation but it just holdsd the value carried by the lower control point along the whole curve between the two control points.Parametric linear polynomial.bThis form applies a pre-filter on the input before performing a linear interpolation. Instead of:  lerp x a bWe have:  lerp (pref x) a b2This can be used to implement 1-degree splines if  pref = id(, basic cubic non-hermitian splines if  pref = (^3), cosine splines if "pref = x -> (1 - cos (x*pi)) * 0.5, and so on and so forth.1-degree polynomial  a.k.a. straight line interpolation, or /linear interpolation/.<This polynomial connects control points with straight lines.Note: implemented with  linearBy id.Cosine polynomial.lHelper binary search that search the ceiling index for the value to be searched according to the predicate.(C) 2015 Dimitri SabadieBSD3+Dimitri Sabadie <dimitri.sabadie@gmail.com> experimentalportableNone-./ A Splinel is a collection of control points with associated polynomials. Given two control points which indices are i and i+1T, interpolation on the resulting curve is performed using the polynomial of indice ia. Thus, the latest control point is ignored and can be set to whatever the user wants to, even 6  you should use hold, though. Yeah, don t go filthy. RCreate a spline using a list of control points and associated polynomials. Since  $ sorts the list before creating the  , you don t have to ensure the list is sorted  even though you should, setting control points with no order might be & chaotic. Sample a point on a spline.            smoot_88eWmZ0VfM38EHmDOk3QzSData.Spline.CPData.Spline.Polynomial Data.SplineCP Polynomial unPolynomialholdlinearBylinearcosine bsearchLowerSplinesplinesampleghc-prim GHC.ClassesOrdbaseGHC.Real FractionalGHC.Err undefineddupLast