| 1234567891011121314151617181920212223242526272829303132 | #include <cmath>#include <iostream>#include "MathFunctions.h"// a hack square root calculation using simple operationsdouble mysqrt(double x){  if (x <= 0) {    return 0;  }  // if we have both log and exp then use them#if defined(HAVE_LOG) && defined(HAVE_EXP)  double result = exp(log(x) * 0.5);  std::cout << "Computing sqrt of " << x << " to be " << result            << " using log and exp" << std::endl;#else  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;  }#endif  return result;}
 |