#include "mysqrt.h" | |
#include <iostream> | |
namespace mathfunctions { | |
namespace detail { | |
// a hack square root calculation using simple operations | |
double mysqrt(double x) | |
{ | |
if (x <= 0) { | |
return 0; | |
} | |
double result = x; | |
// do ten iterations | |
for (int i = 0; i < 10; ++i) { | |
if (result <= 0) { | |
result = 0.1; | |
} | |
double delta = x - (result * result); | |
result = result + 0.5 * delta / result; | |
std::cout << "Computing sqrt of " << x << " to be " << result << std::endl; | |
} | |
return result; | |
} | |
} | |
} |