00001 #ifndef MATH_UTILS_H 00002 #define MATH_UTILS_H 00003 00004 00005 /* needed for abs(), sqrt() below */ 00006 #include <cmath> 00007 00008 00009 00010 namespace TNT 00011 { 00012 00013 using namespace std; 00020 template <class Real> 00021 Real hypot(const Real &a, const Real &b) 00022 { 00023 00024 if (a== 0) 00025 return abs(b); 00026 else 00027 { 00028 Real c = b/a; 00029 return abs(a) * sqrt(1 + c*c); 00030 } 00031 } 00032 } /* TNT namespace */ 00033 00034 00035 00036 #endif 00037 /* MATH_UTILS_H */