// $Id: NewtonTransform.java,v 1.1 1999/10/03 00:43:30 leavens Exp $

package lib;

public class NewtonTransform implements DoubleFun {

    protected DoubleFun saved_g;
    protected DoubleFun deriv_g;

    public NewtonTransform(DoubleFun g) {
        saved_g = g;
        deriv_g = new Deriv(g);
    }

    public NewtonTransform(DoubleFun g, double epsilon) {
        saved_g = g;
        deriv_g = new Deriv(g, epsilon);
    }

    public double value(double x) {
        return x - (saved_g.value(x) / deriv_g.value(x));
    }
}
