1 /* This is the header file of the Parma Polyhedra Library. 2 Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> 3 Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com) 4 5 This file is part of the Parma Polyhedra Library (PPL). 6 7 The PPL is free software; you can redistribute it and/or modify it 8 under the terms of the GNU General Public License as published by the 9 Free Software Foundation; either version 3 of the License, or (at your 10 option) any later version. 11 12 The PPL is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software Foundation, 19 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. 20 21 For the most up-to-date information see the Parma Polyhedra Library 22 site: http://bugseng.com/products/ppl/ . */ 23 24 #ifndef PPL_ppl_hh 25 #define PPL_ppl_hh 1 26 27 #ifdef NDEBUG 28 # define PPL_SAVE_NDEBUG NDEBUG 29 # undef NDEBUG 30 #endif 31 32 #ifdef __STDC_LIMIT_MACROS 33 # define PPL_SAVE_STDC_LIMIT_MACROS __STDC_LIMIT_MACROS 34 #endif 35 36 #include "ppl-config.h" 37 #include "version.hh" 38 #include "ppl_include_files.hh" 39 40 //! Defined to 1 if PPL::Watchdog objects are supported, to 0 otherwise. 41 #define PPL_WATCHDOG_OBJECTS_ARE_SUPPORTED \ 42 (PPL_HAVE_DECL_SETITIMER && PPL_HAVE_DECL_SIGACTION) 43 44 #undef PPL_SPECIALIZE_ABS 45 #undef PPL_SPECIALIZE_ADD 46 #undef PPL_SPECIALIZE_ADD_MUL 47 #undef PPL_SPECIALIZE_ASSIGN 48 #undef PPL_SPECIALIZE_ASSIGN_SPECIAL 49 #undef PPL_SPECIALIZE_CEIL 50 #undef PPL_SPECIALIZE_CLASSIFY 51 #undef PPL_SPECIALIZE_CMP 52 #undef PPL_SPECIALIZE_CONSTRUCT 53 #undef PPL_SPECIALIZE_CONSTRUCT_SPECIAL 54 #undef PPL_SPECIALIZE_COPY 55 #undef PPL_SPECIALIZE_DIV 56 #undef PPL_SPECIALIZE_DIV2EXP 57 #undef PPL_SPECIALIZE_FLOOR 58 #undef PPL_SPECIALIZE_FUN1_0_0 59 #undef PPL_SPECIALIZE_FUN1_0_1 60 #undef PPL_SPECIALIZE_FUN1_0_2 61 #undef PPL_SPECIALIZE_FUN1_0_3 62 #undef PPL_SPECIALIZE_FUN1_1_1 63 #undef PPL_SPECIALIZE_FUN1_1_2 64 #undef PPL_SPECIALIZE_FUN1_2_2 65 #undef PPL_SPECIALIZE_FUN2_0_0 66 #undef PPL_SPECIALIZE_FUN2_0_1 67 #undef PPL_SPECIALIZE_FUN2_0_2 68 #undef PPL_SPECIALIZE_FUN3_0_1 69 #undef PPL_SPECIALIZE_FUN5_0_1 70 #undef PPL_SPECIALIZE_GCD 71 #undef PPL_SPECIALIZE_GCDEXT 72 #undef PPL_SPECIALIZE_IDIV 73 #undef PPL_SPECIALIZE_INPUT 74 #undef PPL_SPECIALIZE_IS_INT 75 #undef PPL_SPECIALIZE_IS_MINF 76 #undef PPL_SPECIALIZE_IS_NAN 77 #undef PPL_SPECIALIZE_IS_PINF 78 #undef PPL_SPECIALIZE_LCM 79 #undef PPL_SPECIALIZE_MUL 80 #undef PPL_SPECIALIZE_MUL2EXP 81 #undef PPL_SPECIALIZE_NEG 82 #undef PPL_SPECIALIZE_OUTPUT 83 #undef PPL_SPECIALIZE_REM 84 #undef PPL_SPECIALIZE_SGN 85 #undef PPL_SPECIALIZE_SQRT 86 #undef PPL_SPECIALIZE_SUB 87 #undef PPL_SPECIALIZE_SUB_MUL 88 #undef PPL_SPECIALIZE_TRUNC 89 90 #undef PPL_COMPILE_TIME_CHECK 91 #undef PPL_COMPILE_TIME_CHECK_AUX 92 #undef PPL_COMPILE_TIME_CHECK_NAME 93 94 #ifdef __STDC_LIMIT_MACROS 95 # undef __STDC_LIMIT_MACROS 96 #endif 97 #ifdef PPL_SAVE_STDC_LIMIT_MACROS 98 # define __STDC_LIMIT_MACROS PPL_SAVE_STDC_LIMIT_MACROS 99 # undef PPL_SAVE_STDC_LIMIT_MACROS 100 #endif 101 102 #ifdef PPL_SAVE_NDEBUG 103 # ifndef NDEBUG 104 # define NDEBUG PPL_SAVE_NDEBUG 105 # endif 106 # undef PPL_SAVE_NDEBUG 107 #else 108 # ifdef NDEBUG 109 # undef NDEBUG 110 # endif 111 #endif 112 // Must include <cassert> again in order to make the latest changes to 113 // NDEBUG effective. 114 #include <cassert> 115 #include "assertions.hh" 116 117 #ifdef PPL_NO_AUTOMATIC_INITIALIZATION 118 #undef PPL_NO_AUTOMATIC_INITIALIZATION 119 #endif 120 121 #endif // !defined(PPL_ppl_hh) 122