/* +++Date last modified: 05-Jul-1997 */ /* ** rounding macros by Dave Knapp, Thad Smith, Jon Strayer, & Bob Stout */ #ifndef ROUND__H #define ROUND__H #include #if defined(__cplusplus) && __cplusplus /* ** Safe C++ inline versions */ /* round to integer */ inline int iround(double x) { return (int)floor(x + 0.5); } /* round number n to d decimal points */ inline double fround(double n, unsigned d) { return floor(n * pow(10., d) + .5) / pow(10., d); } #else /* ** NOTE: These C macro versions are unsafe since arguments are referenced ** more than once. ** ** Avoid using these with expression arguments to be safe. */ /* ** round to integer */ #define iround(x) floor((x) + 0.5) /* ** round number n to d decimal points */ #define fround(n,d) (floor((n)*pow(10.,(d))+.5)/pow(10.,(d))) #endif #endif /* ROUND__H */