public class SquareRoot implements DoubleFun {
    protected static FixedPoint fp = new FixedPoint();

    public static class SqrtFun implements DoubleFun {
	double saved_x;

	SqrtFun(double x) {
	    saved_x = x;
	}

	public double value(double y) {
	    return saved_x / y;
	}
    }

    public double value(double x) {
	AverageDampedFun dsqrt = new AverageDampedFun(new SqrtFun(x));
        return fp.fixedPoint(dsqrt, 1.0);
    }

}
