// Function to compute square root using Newton's method. // Michael Rothstein // 2/3/2014 const double TOLERANCE = 1.0E-7; double absval(double); double sqrt(double A){ if ( A< 0 ) return -1; double newguess,oldguess; for(oldguess = 0.0,newguess = 1.0; absval(oldguess-newguess)> A*TOLERANCE; oldguess = newguess, newguess = (oldguess + A/oldguess)/2.0); return newguess; } double absval(double x){ return (x<0?-x:x); } #ifdef TEST #include using std::cin; using std::cout; using std::endl; int main(){ while(1){ cout << "Input a number to test: "; double x; cin >> x; if ( x < 0 ) break; cout << "Square root of " << x << " is " << sqrt(x) << endl; } } #endif