public static Func<double, int, double> ScaleTime( Func<double, int, double> func, double A, double B, double C, double D) { return (t, f) => A*func(B*t + C, f) + D; }