module Numeric.Interpolation.Private.Piece where sqr :: (Num a) => a -> a sqr :: a -> a sqr a x = a xa -> a -> a forall a. Num a => a -> a -> a *a x type T x y ny = (x, ny) -> (x, ny) -> x -> y linear :: (Fractional a) => T a a a linear :: T a a a linear (a x0,a y0) (a x1,a y1) a x = (a y0a -> a -> a forall a. Num a => a -> a -> a *(a x1a -> a -> a forall a. Num a => a -> a -> a -a x) a -> a -> a forall a. Num a => a -> a -> a + a y1a -> a -> a forall a. Num a => a -> a -> a *(a xa -> a -> a forall a. Num a => a -> a -> a -a x0)) a -> a -> a forall a. Fractional a => a -> a -> a / (a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) hermite1 :: (Fractional a) => T a a (a, a) hermite1 :: T a a (a, a) hermite1 (a x0,(a y0,a dy0)) (a x1,(a y1,a dy1)) a x = let d :: a d = (a y1a -> a -> a forall a. Num a => a -> a -> a -a y0)a -> a -> a forall a. Fractional a => a -> a -> a /(a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) in T a a a forall a. Fractional a => T a a a linear (a x0,a y0) (a x1,a y1) a x a -> a -> a forall a. Num a => a -> a -> a + (a dy0a -> a -> a forall a. Num a => a -> a -> a -a d) a -> a -> a forall a. Num a => a -> a -> a * a -> a forall a. Num a => a -> a sqr ((a xa -> a -> a forall a. Num a => a -> a -> a -a x1)a -> a -> a forall a. Fractional a => a -> a -> a /(a x0a -> a -> a forall a. Num a => a -> a -> a -a x1)) a -> a -> a forall a. Num a => a -> a -> a * (a xa -> a -> a forall a. Num a => a -> a -> a -a x0) a -> a -> a forall a. Num a => a -> a -> a + (a dy1a -> a -> a forall a. Num a => a -> a -> a -a d) a -> a -> a forall a. Num a => a -> a -> a * a -> a forall a. Num a => a -> a sqr ((a xa -> a -> a forall a. Num a => a -> a -> a -a x0)a -> a -> a forall a. Fractional a => a -> a -> a /(a x1a -> a -> a forall a. Num a => a -> a -> a -a x0)) a -> a -> a forall a. Num a => a -> a -> a * (a xa -> a -> a forall a. Num a => a -> a -> a -a x1) hermite1' :: (Fractional a) => T a a (a, a) hermite1' :: T a a (a, a) hermite1' (a x0,(a y0,a dy0)) (a x1,(a y1,a dy1)) a x = let d :: a d = (a y1a -> a -> a forall a. Num a => a -> a -> a -a y0)a -> a -> a forall a. Fractional a => a -> a -> a /(a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) in a d a -> a -> a forall a. Num a => a -> a -> a + (a dy0a -> a -> a forall a. Num a => a -> a -> a -a d) a -> a -> a forall a. Fractional a => a -> a -> a / a -> a forall a. Num a => a -> a sqr (a x0a -> a -> a forall a. Num a => a -> a -> a -a x1) a -> a -> a forall a. Num a => a -> a -> a * (a 2a -> a -> a forall a. Num a => a -> a -> a *(a xa -> a -> a forall a. Num a => a -> a -> a -a x1) a -> a -> a forall a. Num a => a -> a -> a * (a xa -> a -> a forall a. Num a => a -> a -> a -a x0) a -> a -> a forall a. Num a => a -> a -> a + a -> a forall a. Num a => a -> a sqr (a xa -> a -> a forall a. Num a => a -> a -> a -a x1)) a -> a -> a forall a. Num a => a -> a -> a + (a dy1a -> a -> a forall a. Num a => a -> a -> a -a d) a -> a -> a forall a. Fractional a => a -> a -> a / a -> a forall a. Num a => a -> a sqr (a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) a -> a -> a forall a. Num a => a -> a -> a * (a 2a -> a -> a forall a. Num a => a -> a -> a *(a xa -> a -> a forall a. Num a => a -> a -> a -a x0) a -> a -> a forall a. Num a => a -> a -> a * (a xa -> a -> a forall a. Num a => a -> a -> a -a x1) a -> a -> a forall a. Num a => a -> a -> a + a -> a forall a. Num a => a -> a sqr (a xa -> a -> a forall a. Num a => a -> a -> a -a x0)) hermite1'' :: (Fractional a) => T a a (a, a) hermite1'' :: T a a (a, a) hermite1'' (a x0,(a y0,a dy0)) (a x1,(a y1,a dy1)) a x = let d :: a d = (a y1a -> a -> a forall a. Num a => a -> a -> a -a y0)a -> a -> a forall a. Fractional a => a -> a -> a /(a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) in a 2a -> a -> a forall a. Num a => a -> a -> a *(a dy0a -> a -> a forall a. Num a => a -> a -> a -a d) a -> a -> a forall a. Fractional a => a -> a -> a / a -> a forall a. Num a => a -> a sqr (a x0a -> a -> a forall a. Num a => a -> a -> a -a x1) a -> a -> a forall a. Num a => a -> a -> a * (a 3a -> a -> a forall a. Num a => a -> a -> a *a xa -> a -> a forall a. Num a => a -> a -> a -a 2a -> a -> a forall a. Num a => a -> a -> a *a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) a -> a -> a forall a. Num a => a -> a -> a + a 2a -> a -> a forall a. Num a => a -> a -> a *(a dy1a -> a -> a forall a. Num a => a -> a -> a -a d) a -> a -> a forall a. Fractional a => a -> a -> a / a -> a forall a. Num a => a -> a sqr (a x1a -> a -> a forall a. Num a => a -> a -> a -a x0) a -> a -> a forall a. Num a => a -> a -> a * (a 3a -> a -> a forall a. Num a => a -> a -> a *a xa -> a -> a forall a. Num a => a -> a -> a -a 2a -> a -> a forall a. Num a => a -> a -> a *a x0a -> a -> a forall a. Num a => a -> a -> a -a x1)