import java.util.*; /** * Square Root * * Newton-Raphson method implementation. * * * Input: * x: A float * epsilon: A float * * Precondition: * x >= 1 and epsilon > 0 * * Output: * A float in the interval [sqrt(x) - epsilon, sqrt(x) + epsilon] * * Example: * >>> sqrt(2, 0.01) * 1.4166666666666665 * * @author derricklin */ public class SQRT { public static double sqrt(double x, double epsilon) { double approx = x / 2d; while (Math.abs(x-approx*approx) > epsilon) { approx = 0.5d * (approx + x / approx); } return approx; } }