1 /* Public domain */ 2 3 #ifndef _AGAR_MATH_BEGIN_H_ 4 #error Inclusion of <agar/math/close.h> without <agar/math/begin.h> 5 #endif 6 #undef _AGAR_MATH_BEGIN_H_ 7 8 /* 9 * Undo standard definitions from begin.h, unless we are compiling the 10 * library itself. 11 */ 12 #ifndef _AGAR_MATH_INTERNAL 13 # include <agar/core/close_types.h> 14 # ifdef _AGAR_MATH_DEFINED_CDECLS 15 # undef _AGAR_MATH_DEFINED_CDECLS 16 # undef __BEGIN_DECLS 17 # undef __END_DECLS 18 # endif 19 # ifdef _AGAR_MATH_DEFINED_NLS 20 # undef _ 21 # undef N_ 22 # undef ngettext 23 # endif 24 #endif /* _AGAR_MATH_INTERNAL */ 25 26 #undef _AGAR_MATH_USE_INLINE 27 28 /* Reset structure packing at previous byte alignment. */ 29 #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || \ 30 defined(__BORLANDC__) 31 # ifdef __BORLANDC__ 32 # pragma nopackwarning 33 # endif 34 # if (defined(__MWERKS__) && defined(__MACOS__)) 35 # pragma options align=reset 36 # pragma enumsalwaysint reset 37 # else 38 # pragma pack(pop) 39 # endif 40 #endif 41 42 /* Always undo DECLSPEC and NULL. */ 43 #ifdef _AGAR_MATH_DEFINED_DECLSPEC 44 # undef _AGAR_MATH_DEFINED_DECLSPEC 45 # undef DECLSPEC 46 #endif 47 #ifdef _AGAR_MATH_DEFINED_NULL 48 # undef _AGAR_MATH_DEFINED_NULL 49 # undef NULL 50 #endif 51 52 #include <agar/core/close_attributes.h> 53 54 /* Clean up definitions specific to Agar-MATH. */ 55 #ifndef _AGAR_MATH_INTERNAL 56 # undef SINGLE_PRECISION 57 # undef DOUBLE_PRECISION 58 # undef QUAD_PRECISION 59 # ifdef _M_UNDEFINED_SINGLE_PRECISION 60 # define SINGLE_PRECISION 61 # endif 62 # ifdef _M_UNDEFINED_DOUBLE_PRECISION 63 # define DOUBLE_PRECISION 64 # endif 65 # ifdef _M_UNDEFINED_QUAD_PRECISION 66 # define QUAD_PRECISION 67 # endif 68 #endif /* !_AGAR_MATH_INTERNAL */ 69