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