1 /// These are automatically generated C++ bindings for isl.
3 /// isl is a library for computing with integer sets and maps described by
4 /// Presburger formulas. On top of this, isl provides various tools for
5 /// polyhedral compilation, ranging from dependence analysis over scheduling
8 #ifndef ISL_CPP_NOEXCEPTIONS
9 #define ISL_CPP_NOEXCEPTIONS
12 #include <isl/ast_build.h>
16 #include <isl/schedule.h>
17 #include <isl/schedule_node.h>
19 #include <isl/union_map.h>
20 #include <isl/union_set.h>
27 inline namespace noexceptions {
29 #define ISLPP_STRINGIZE_(X) #X
30 #define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
32 #define ISLPP_ASSERT(test, message) \
36 fputs("Assertion \"" #test "\" failed at " __FILE__ \
37 ":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \
45 friend isl::boolean manage(isl_bool val);
46 boolean(isl_bool val): val(val) {}
49 : val(isl_bool_error) {}
51 /* implicit */ boolean(bool val)
52 : val(val ? isl_bool_true : isl_bool_false) {}
54 bool is_error() const { return val == isl_bool_error; }
55 bool is_false() const { return val == isl_bool_false; }
56 bool is_true() const { return val == isl_bool_true; }
58 explicit operator bool() const {
59 ISLPP_ASSERT(!is_error(), "IMPLEMENTATION ERROR: Unhandled error state");
63 boolean operator!() const {
70 inline isl::boolean manage(isl_bool val) {
71 return isl::boolean(val);
77 /* implicit */ ctx(isl_ctx *ctx)
91 error = isl_stat_error