math.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // "$Id: math.h 8864 2011-07-19 04:49:30Z greg.ercolano $"
  3. //
  4. // Math header file for the Fast Light Tool Kit (FLTK).
  5. //
  6. // Copyright 1998-2010 by Bill Spitzak and others.
  7. //
  8. // This library is free software. Distribution and use rights are outlined in
  9. // the file "COPYING" which should have been included with this file. If this
  10. // file is missing or damaged, see the license at:
  11. //
  12. // http://www.fltk.org/COPYING.php
  13. //
  14. // Please report all bugs and problems on the following page:
  15. //
  16. // http://www.fltk.org/str.php
  17. //
  18. // Xcode on OS X includes files by recursing down into directories.
  19. // This code catches the cycle and directly includes the required file.
  20. #if defined(fl_math_h_cyclic_include) && !defined(__MINGW32__)
  21. # include "/usr/include/math.h"
  22. #endif
  23. #ifndef fl_math_h
  24. # define fl_math_h
  25. # define fl_math_h_cyclic_include
  26. # include <math.h>
  27. # undef fl_math_h_cyclic_include
  28. # ifdef __EMX__
  29. # include <float.h>
  30. # endif
  31. # ifndef M_PI
  32. # define M_PI 3.14159265358979323846
  33. # define M_PI_2 1.57079632679489661923
  34. # define M_PI_4 0.78539816339744830962
  35. # define M_1_PI 0.31830988618379067154
  36. # define M_2_PI 0.63661977236758134308
  37. # endif // !M_PI
  38. # ifndef M_SQRT2
  39. # define M_SQRT2 1.41421356237309504880
  40. # define M_SQRT1_2 0.70710678118654752440
  41. # endif // !M_SQRT2
  42. # if (defined(WIN32) || defined(CRAY)) && !defined(__MINGW32__) && !defined(__MWERKS__)
  43. inline double rint(double v) {return floor(v+.5);}
  44. inline double copysign(double a, double b) {return b<0 ? -a : a;}
  45. # endif // (WIN32 || CRAY) && !__MINGW32__ && !__MWERKS__
  46. #endif // !fl_math_h
  47. //
  48. // End of "$Id: math.h 8864 2011-07-19 04:49:30Z greg.ercolano $".
  49. //