Mercator
|
00001 // This file may be redistributed and modified only under the terms of 00002 // the GNU General Public License (See COPYING for details). 00003 // Copyright (C) 2003 Alistair Riddoch 00004 00005 #ifndef MERCATOR_IROUND_H 00006 #define MERCATOR_IROUND_H 00007 00008 #ifndef PACKAGE 00009 #error iround.h must be included after config.h 00010 #endif 00011 00012 #ifdef HAVE_LRINTF 00013 #define I_ROUND(_x) (::lrintf(_x)) 00014 #elif defined(HAVE_RINTF) 00015 #define I_ROUND(_x) ((int)::rintf(_x)) 00016 #elif defined(HAVE_RINT) 00017 #define I_ROUND(_x) ((int)::rint(_x)) 00018 #else 00019 #define I_ROUND(_x) ((int)(_x)) 00020 #endif 00021 00022 #ifdef HAVE_FABSF 00023 #define F_ABS(_x) (::fabsf(_x)) 00024 #else 00025 #define F_ABS(_x) (::fabs(_x)) 00026 #endif 00027 00028 #ifdef HAVE_POWF 00029 #define F_POW(_x, _y) (::powf(_x, _y)) 00030 #else 00031 #define F_POW(_x, _y) (::pow(_x, _y)) 00032 #endif 00033 00034 #ifdef HAVE_FLOORF 00035 #define F_FLOOR(_x) (::floorf(_x)) 00036 #else 00037 #define F_FLOOR(_x) (::floor(_x)) 00038 #endif 00039 00040 #ifdef HAVE_CEILF 00041 #define F_CEIL(_x) (::ceilf(_x)) 00042 #else 00043 #define F_CEIL(_x) (::ceil(_x)) 00044 #endif 00045 00046 #endif // MERCATOR_IROUND_H