Mercator
iround.h
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