MathFunctions.cxx 545 B

12345678910111213141516171819202122232425262728293031
  1. #include <iostream>
  2. namespace {
  3. // a hack square root calculation using simple operations
  4. double mysqrt(double x)
  5. {
  6. if (x <= 0) {
  7. return 0;
  8. }
  9. double result = x;
  10. // do ten iterations
  11. for (int i = 0; i < 10; ++i) {
  12. if (result <= 0) {
  13. result = 0.1;
  14. }
  15. double delta = x - (result * result);
  16. result = result + 0.5 * delta / result;
  17. std::cout << "Computing sqrt of " << x << " to be " << result << std::endl;
  18. }
  19. return result;
  20. }
  21. }
  22. namespace mathfunctions {
  23. double sqrt(double x)
  24. {
  25. return mysqrt(x);
  26. }
  27. }