home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 4799 / source.7z / slMathTraits.h < prev    next >
Encoding:
C/C++ Source or Header  |  2011-09-15  |  1.2 KB  |  36 lines

  1. #ifndef __SL_MATH_TRAITS_H
  2. #define __SL_MATH_TRAITS_H
  3.  
  4. namespace sl {
  5.  
  6. template<class T>
  7. struct math_traits {
  8.  public :
  9.   static T pi(void)        { return (T)(3.14159265358979323846264338328); }
  10.   static T pi_over_2(void) { return (T)(1.57079632679489661923132169164); }
  11.   static T pi_over_4(void) { return (T)(0.78539816339744830961566084582); }
  12.   static T zero(void) { return T(0.0); }
  13.   static T one(void)  { return T(1.0); }
  14.   static T two(void)  { return T(2.0); }
  15.  public :
  16.   static T neg_pi(void)        { return (T)(-3.14159265358979323846264338328); }
  17.   static T neg_pi_over_2(void) { return (T)(-1.57079632679489661923132169164); }
  18.   static T neg_pi_over_4(void) { return (T)(-0.78539816339744830961566084582); }
  19.   static T neg_one(void)  { return T(-1.0); }
  20.   static T neg_two(void)  { return T(-2.0); }
  21.  public :
  22.   static T small_value(void) { return (T)(1.0e-6); }
  23.   static T neg_small_value(void) { return (T)(-1.0e-6); }
  24.   static bool is_small(T x) { return ((x > neg_small_value()) && (x < small_value())); }
  25.   static bool is_close(T x, T y) { return is_small(x - y); }
  26. };
  27.  
  28. // TODO:
  29. // SPECIALIZE FOR FLOAT
  30. // SPECIALIZE FOR DOUBLE
  31. // SPECIALIZE FOR LONG DOUBLE
  32.  
  33. };
  34.  
  35. #endif
  36.