public class FonctionApproxDiff { private Fonction f; private double last_x, last_f_x; public double evaluate(double x) { if(x == last_x) return last_f_x; last_x = x; return last_f_x = f.evaluate(x); } public double approxDiff(double x) { return (evaluate(x) + evaluate(x + 1e-10)) / 1e-10; } }