Yay! This works nicely:
[syntax="cpp"]#include <iostream>
double sqr(double num,double tol) {
double hi=num,lo=0.0,m;
while(lo<hi) {
m=(double)(lo+hi)/2.0;
if(m*m>=num-tol&&m*m<=num+tol)
return m;
else if(m*m<num) lo=m;
else hi=m;
}
return 0.0;
}
int main() {
std::cout<<sqr(25,0.000005);
std::cin.get();
}[/syntax]
