1 | /// These are automatically generated checked C++ bindings for isl. |
2 | /// |
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 |
6 | /// to AST generation. |
7 | |
8 | // clang-format off |
9 | |
10 | #ifndef ISL_CPP_CHECKED |
11 | #define ISL_CPP_CHECKED |
12 | |
13 | #include <stdio.h> |
14 | #include <stdlib.h> |
15 | #include <isl/set.h> |
16 | |
17 | #include <functional> |
18 | #include <memory> |
19 | #include <ostream> |
20 | #include <string> |
21 | #include <type_traits> |
22 | |
23 | namespace isl { |
24 | |
25 | #define ISLPP_STRINGIZE_(X) #X |
26 | #define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X) |
27 | |
28 | #define ISLPP_ASSERT(test, message) \ |
29 | do { \ |
30 | if (test) \ |
31 | break; \ |
32 | fputs("Assertion \"" #test "\" failed at " __FILE__ \ |
33 | ":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \ |
34 | stderr); \ |
35 | abort(); \ |
36 | } while (0) |
37 | |
38 | /* Class used to check that isl::checked::boolean, |
39 | * isl::checked::stat and isl::checked::size values are checked for errors. |
40 | */ |
41 | struct checker { |
42 | bool checked = false; |
43 | ~checker() { |
44 | //ISLPP_ASSERT(checked, "IMPLEMENTATION ERROR: Unchecked state"); |
45 | } |
46 | }; |
47 | |
48 | class boolean { |
49 | private: |
50 | mutable std::shared_ptr<checker> check = std::make_shared<checker>(); |
51 | isl_bool val; |
52 | |
53 | friend boolean manage(isl_bool val); |
54 | boolean(isl_bool val): val(val) {} |
55 | public: |
56 | static boolean error() { |
57 | return boolean(isl_bool_error); |
58 | } |
59 | boolean() |
60 | : val(isl_bool_error) {} |
61 | |
62 | /* implicit */ boolean(bool val) |
63 | : val(val ? isl_bool_true : isl_bool_false) {} |
64 | |
65 | isl_bool release() { |
66 | auto tmp = val; |
67 | val = isl_bool_error; |
68 | check->checked = true; |
69 | return tmp; |
70 | } |
71 | |
72 | bool is_error() const { check->checked = true; return val == isl_bool_error; } |
73 | bool is_false() const { check->checked = true; return val == isl_bool_false; } |
74 | bool is_true() const { check->checked = true; return val == isl_bool_true; } |
75 | |
76 | operator bool() const { |
77 | //ISLPP_ASSERT(check->checked, "IMPLEMENTATION ERROR: Unchecked error state"); |
78 | ISLPP_ASSERT(!is_error(), "IMPLEMENTATION ERROR: Unhandled error state" ); |
79 | return is_true(); |
80 | } |
81 | |
82 | boolean negate() { |
83 | if (val == isl_bool_true) |
84 | val = isl_bool_false; |
85 | else if (val == isl_bool_false) |
86 | val = isl_bool_true; |
87 | return *this; |
88 | } |
89 | |
90 | boolean operator!() const { |
91 | return boolean(*this).negate(); |
92 | } |
93 | }; |
94 | |
95 | inline boolean manage(isl_bool val) { |
96 | return boolean(val); |
97 | } |
98 | |
99 | class ctx { |
100 | isl_ctx *ptr; |
101 | public: |
102 | /* implicit */ ctx(isl_ctx *ctx) |
103 | : ptr(ctx) {} |
104 | isl_ctx *release() { |
105 | auto tmp = ptr; |
106 | ptr = nullptr; |
107 | return tmp; |
108 | } |
109 | isl_ctx *get() { |
110 | return ptr; |
111 | } |
112 | }; |
113 | |
114 | /* Class encapsulating an isl_stat value. |
115 | */ |
116 | class stat { |
117 | private: |
118 | mutable std::shared_ptr<checker> check = std::make_shared<checker>(); |
119 | isl_stat val; |
120 | |
121 | friend stat manage(isl_stat val); |
122 | stat(isl_stat val) : val(val) {} |
123 | public: |
124 | static stat ok() { |
125 | return stat(isl_stat_ok); |
126 | } |
127 | static stat error() { |
128 | return stat(isl_stat_error); |
129 | } |
130 | stat() : val(isl_stat_error) {} |
131 | |
132 | isl_stat release() { |
133 | check->checked = true; |
134 | return val; |
135 | } |
136 | |
137 | bool is_error() const { |
138 | check->checked = true; |
139 | return val == isl_stat_error; |
140 | } |
141 | bool is_ok() const { |
142 | check->checked = true; |
143 | return val == isl_stat_ok; |
144 | } |
145 | }; |
146 | |
147 | inline stat manage(isl_stat val) |
148 | { |
149 | return stat(val); |
150 | } |
151 | |
152 | /* Class encapsulating an isl_size value. |
153 | */ |
154 | class size { |
155 | private: |
156 | mutable std::shared_ptr<checker> check = std::make_shared<checker>(); |
157 | isl_size val; |
158 | |
159 | friend size manage(isl_size val); |
160 | size(isl_size val) : val(val) {} |
161 | public: |
162 | size() : val(isl_size_error) {} |
163 | |
164 | isl_size release() { |
165 | auto tmp = val; |
166 | val = isl_size_error; |
167 | check->checked = true; |
168 | return tmp; |
169 | } |
170 | |
171 | bool is_error() const { |
172 | check->checked = true; |
173 | return val == isl_size_error; |
174 | } |
175 | |
176 | explicit operator unsigned() const { |
177 | ISLPP_ASSERT(check->checked, |
178 | "IMPLEMENTATION ERROR: Unchecked error state" ); |
179 | ISLPP_ASSERT(!is_error(), |
180 | "IMPLEMENTATION ERROR: Unhandled error state" ); |
181 | return val; |
182 | } |
183 | }; |
184 | |
185 | inline size manage(isl_size val) |
186 | { |
187 | return size(val); |
188 | } |
189 | |
190 | enum class dim { |
191 | cst = isl_dim_cst, |
192 | param = isl_dim_param, |
193 | in = isl_dim_in, |
194 | out = isl_dim_out, |
195 | set = isl_dim_set, |
196 | div = isl_dim_div, |
197 | all = isl_dim_all |
198 | }; |
199 | |
200 | } // namespace isl |
201 | #include <isl/id.h> |
202 | #include <isl/space.h> |
203 | #include <isl/val.h> |
204 | #include <isl/aff.h> |
205 | #include <isl/set.h> |
206 | #include <isl/map.h> |
207 | #include <isl/ilp.h> |
208 | #include <isl/constraint.h> |
209 | #include <isl/union_set.h> |
210 | #include <isl/union_map.h> |
211 | #include <isl/flow.h> |
212 | #include <isl/schedule.h> |
213 | #include <isl/schedule_node.h> |
214 | #include <isl/ast_build.h> |
215 | #include <isl/fixed_box.h> |
216 | |
217 | namespace isl { |
218 | |
219 | // forward declarations |
220 | class aff; |
221 | class aff_list; |
222 | class ast_build; |
223 | class ast_expr; |
224 | class ast_expr_id; |
225 | class ast_expr_int; |
226 | class ast_expr_op; |
227 | class ast_expr_op_access; |
228 | class ast_expr_op_add; |
229 | class ast_expr_op_address_of; |
230 | class ast_expr_op_and; |
231 | class ast_expr_op_and_then; |
232 | class ast_expr_op_call; |
233 | class ast_expr_op_cond; |
234 | class ast_expr_op_div; |
235 | class ast_expr_op_eq; |
236 | class ast_expr_op_fdiv_q; |
237 | class ast_expr_op_ge; |
238 | class ast_expr_op_gt; |
239 | class ast_expr_op_le; |
240 | class ast_expr_op_lt; |
241 | class ast_expr_op_max; |
242 | class ast_expr_op_member; |
243 | class ast_expr_op_min; |
244 | class ast_expr_op_minus; |
245 | class ast_expr_op_mul; |
246 | class ast_expr_op_or; |
247 | class ast_expr_op_or_else; |
248 | class ast_expr_op_pdiv_q; |
249 | class ast_expr_op_pdiv_r; |
250 | class ast_expr_op_select; |
251 | class ast_expr_op_sub; |
252 | class ast_expr_op_zdiv_r; |
253 | class ast_node; |
254 | class ast_node_block; |
255 | class ast_node_for; |
256 | class ast_node_if; |
257 | class ast_node_list; |
258 | class ast_node_mark; |
259 | class ast_node_user; |
260 | class basic_map; |
261 | class basic_map_list; |
262 | class basic_set; |
263 | class basic_set_list; |
264 | class constraint; |
265 | class fixed_box; |
266 | class id; |
267 | class id_list; |
268 | class id_to_ast_expr; |
269 | class local_space; |
270 | class map; |
271 | class map_list; |
272 | class multi_aff; |
273 | class multi_id; |
274 | class multi_pw_aff; |
275 | class multi_union_pw_aff; |
276 | class multi_val; |
277 | class point; |
278 | class pw_aff; |
279 | class pw_aff_list; |
280 | class pw_multi_aff; |
281 | class pw_multi_aff_list; |
282 | class schedule; |
283 | class schedule_constraints; |
284 | class schedule_node; |
285 | class schedule_node_band; |
286 | class schedule_node_context; |
287 | class schedule_node_domain; |
288 | class schedule_node_expansion; |
289 | class schedule_node_extension; |
290 | class schedule_node_filter; |
291 | class schedule_node_guard; |
292 | class schedule_node_leaf; |
293 | class schedule_node_mark; |
294 | class schedule_node_sequence; |
295 | class schedule_node_set; |
296 | class set; |
297 | class set_list; |
298 | class space; |
299 | class union_access_info; |
300 | class union_flow; |
301 | class union_map; |
302 | class union_pw_aff; |
303 | class union_pw_aff_list; |
304 | class union_pw_multi_aff; |
305 | class union_set; |
306 | class union_set_list; |
307 | class val; |
308 | class val_list; |
309 | |
310 | // declarations for isl::aff |
311 | inline aff manage(__isl_take isl_aff *ptr); |
312 | inline aff manage_copy(__isl_keep isl_aff *ptr); |
313 | |
314 | class aff { |
315 | friend inline aff manage(__isl_take isl_aff *ptr); |
316 | friend inline aff manage_copy(__isl_keep isl_aff *ptr); |
317 | |
318 | protected: |
319 | isl_aff *ptr = nullptr; |
320 | |
321 | inline explicit aff(__isl_take isl_aff *ptr); |
322 | |
323 | public: |
324 | inline /* implicit */ aff(); |
325 | inline /* implicit */ aff(const aff &obj); |
326 | inline explicit aff(isl::ctx ctx, const std::string &str); |
327 | inline explicit aff(isl::local_space ls, isl::val val); |
328 | inline explicit aff(isl::local_space ls); |
329 | inline aff &operator=(aff obj); |
330 | inline ~aff(); |
331 | inline __isl_give isl_aff *copy() const &; |
332 | inline __isl_give isl_aff *copy() && = delete; |
333 | inline __isl_keep isl_aff *get() const; |
334 | inline __isl_give isl_aff *release(); |
335 | inline bool is_null() const; |
336 | inline isl::ctx ctx() const; |
337 | |
338 | inline isl::aff add(isl::aff aff2) const; |
339 | inline isl::multi_aff add(const isl::multi_aff &multi2) const; |
340 | inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const; |
341 | inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const; |
342 | inline isl::pw_aff add(const isl::pw_aff &pwaff2) const; |
343 | inline isl::pw_multi_aff add(const isl::pw_multi_aff &pma2) const; |
344 | inline isl::union_pw_aff add(const isl::union_pw_aff &upa2) const; |
345 | inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const; |
346 | inline isl::aff add_constant(isl::val v) const; |
347 | inline isl::aff add_constant(long v) const; |
348 | inline isl::multi_aff add_constant(const isl::multi_val &mv) const; |
349 | inline isl::aff add_constant_si(int v) const; |
350 | inline isl::pw_aff add_dims(isl::dim type, unsigned int n) const; |
351 | inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const; |
352 | inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const; |
353 | inline isl::aff as_aff() const; |
354 | inline isl::map as_map() const; |
355 | inline isl::multi_aff as_multi_aff() const; |
356 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
357 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
358 | inline isl::set as_set() const; |
359 | inline isl::union_map as_union_map() const; |
360 | inline isl::aff at(int pos) const; |
361 | inline isl::basic_set bind(isl::id id) const; |
362 | inline isl::basic_set bind(const std::string &id) const; |
363 | inline isl::basic_set bind(const isl::multi_id &tuple) const; |
364 | inline isl::pw_aff bind_domain(const isl::multi_id &tuple) const; |
365 | inline isl::pw_aff bind_domain_wrapped_domain(const isl::multi_id &tuple) const; |
366 | inline isl::aff ceil() const; |
367 | inline isl::pw_aff coalesce() const; |
368 | inline isl::pw_aff cond(const isl::pw_aff &pwaff_true, const isl::pw_aff &pwaff_false) const; |
369 | inline isl::multi_val constant_multi_val() const; |
370 | inline isl::val constant_val() const; |
371 | inline isl::val get_constant_val() const; |
372 | inline isl::val denominator_val() const; |
373 | inline isl::val get_denominator_val() const; |
374 | inline class size dim(isl::dim type) const; |
375 | inline isl::id dim_id(isl::dim type, unsigned int pos) const; |
376 | inline isl::aff div(isl::aff aff2) const; |
377 | inline isl::pw_aff div(const isl::pw_aff &pa2) const; |
378 | inline isl::set domain() const; |
379 | inline isl::space domain_space() const; |
380 | inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const; |
381 | inline isl::set eq_set(isl::aff aff2) const; |
382 | inline isl::set eq_set(const isl::pw_aff &pwaff2) const; |
383 | inline isl::val eval(isl::point pnt) const; |
384 | inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const; |
385 | inline isl::multi_aff flat_range_product(const isl::multi_aff &multi2) const; |
386 | inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const; |
387 | inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const; |
388 | inline isl::pw_multi_aff flat_range_product(const isl::pw_multi_aff &pma2) const; |
389 | inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const; |
390 | inline isl::aff floor() const; |
391 | inline stat foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const; |
392 | inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const; |
393 | inline stat foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const; |
394 | inline isl::set ge_set(isl::aff aff2) const; |
395 | inline isl::set ge_set(const isl::pw_aff &pwaff2) const; |
396 | inline isl::aff gist(isl::set context) const; |
397 | inline isl::union_pw_aff gist(const isl::union_set &context) const; |
398 | inline isl::aff gist(const isl::basic_set &context) const; |
399 | inline isl::aff gist(const isl::point &context) const; |
400 | inline isl::set gt_set(isl::aff aff2) const; |
401 | inline isl::set gt_set(const isl::pw_aff &pwaff2) const; |
402 | inline boolean has_range_tuple_id() const; |
403 | inline isl::multi_aff identity() const; |
404 | inline isl::pw_aff insert_domain(const isl::space &domain) const; |
405 | inline isl::pw_aff intersect_domain(const isl::set &set) const; |
406 | inline isl::union_pw_aff intersect_domain(const isl::space &space) const; |
407 | inline isl::union_pw_aff intersect_domain(const isl::union_set &uset) const; |
408 | inline isl::union_pw_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const; |
409 | inline isl::union_pw_aff intersect_domain_wrapped_range(const isl::union_set &uset) const; |
410 | inline isl::pw_aff intersect_params(const isl::set &set) const; |
411 | inline boolean involves_locals() const; |
412 | inline boolean involves_nan() const; |
413 | inline boolean involves_param(const isl::id &id) const; |
414 | inline boolean involves_param(const std::string &id) const; |
415 | inline boolean involves_param(const isl::id_list &list) const; |
416 | inline boolean is_cst() const; |
417 | inline boolean is_equal(const isl::pw_aff &pa2) const; |
418 | inline boolean isa_aff() const; |
419 | inline boolean isa_multi_aff() const; |
420 | inline boolean isa_pw_multi_aff() const; |
421 | inline isl::set le_set(isl::aff aff2) const; |
422 | inline isl::set le_set(const isl::pw_aff &pwaff2) const; |
423 | inline isl::aff_list list() const; |
424 | inline isl::set lt_set(isl::aff aff2) const; |
425 | inline isl::set lt_set(const isl::pw_aff &pwaff2) const; |
426 | inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const; |
427 | inline isl::pw_aff max(const isl::pw_aff &pwaff2) const; |
428 | inline isl::multi_val max_multi_val() const; |
429 | inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const; |
430 | inline isl::pw_aff min(const isl::pw_aff &pwaff2) const; |
431 | inline isl::multi_val min_multi_val() const; |
432 | inline isl::aff mod(isl::val mod) const; |
433 | inline isl::aff mod(long mod) const; |
434 | inline isl::aff mul(isl::aff aff2) const; |
435 | inline isl::pw_aff mul(const isl::pw_aff &pwaff2) const; |
436 | inline class size n_piece() const; |
437 | inline isl::set ne_set(isl::aff aff2) const; |
438 | inline isl::set ne_set(const isl::pw_aff &pwaff2) const; |
439 | inline isl::aff neg() const; |
440 | inline boolean plain_is_empty() const; |
441 | inline boolean plain_is_equal(const isl::multi_aff &multi2) const; |
442 | inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const; |
443 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
444 | inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const; |
445 | inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const; |
446 | inline isl::multi_aff product(const isl::multi_aff &multi2) const; |
447 | inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const; |
448 | inline isl::pw_multi_aff product(const isl::pw_multi_aff &pma2) const; |
449 | inline isl::aff pullback(isl::multi_aff ma) const; |
450 | inline isl::pw_aff pullback(const isl::multi_pw_aff &mpa) const; |
451 | inline isl::pw_aff pullback(const isl::pw_multi_aff &pma) const; |
452 | inline isl::union_pw_aff pullback(const isl::union_pw_multi_aff &upma) const; |
453 | inline isl::aff pullback(const isl::aff &ma) const; |
454 | inline isl::pw_multi_aff_list pw_multi_aff_list() const; |
455 | inline isl::pw_multi_aff range_factor_domain() const; |
456 | inline isl::pw_multi_aff range_factor_range() const; |
457 | inline isl::multi_aff range_product(const isl::multi_aff &multi2) const; |
458 | inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const; |
459 | inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const; |
460 | inline isl::pw_multi_aff range_product(const isl::pw_multi_aff &pma2) const; |
461 | inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const; |
462 | inline isl::id range_tuple_id() const; |
463 | inline isl::multi_aff reset_range_tuple_id() const; |
464 | inline isl::multi_aff reset_tuple_id(isl::dim type) const; |
465 | inline isl::aff scale(isl::val v) const; |
466 | inline isl::aff scale(long v) const; |
467 | inline isl::multi_aff scale(const isl::multi_val &mv) const; |
468 | inline isl::aff scale_down(isl::val v) const; |
469 | inline isl::aff scale_down(long v) const; |
470 | inline isl::multi_aff scale_down(const isl::multi_val &mv) const; |
471 | inline isl::multi_aff set_aff(int pos, const isl::aff &el) const; |
472 | inline isl::multi_aff set_at(int pos, const isl::aff &el) const; |
473 | inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const; |
474 | inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const; |
475 | inline isl::aff set_constant_si(int v) const; |
476 | inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const; |
477 | inline isl::pw_multi_aff set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const; |
478 | inline isl::multi_aff set_range_tuple(const isl::id &id) const; |
479 | inline isl::multi_aff set_range_tuple(const std::string &id) const; |
480 | inline isl::pw_aff set_tuple_id(isl::dim type, const isl::id &id) const; |
481 | inline isl::pw_aff set_tuple_id(isl::dim type, const std::string &id) const; |
482 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const; |
483 | inline class size size() const; |
484 | inline isl::space space() const; |
485 | inline isl::aff sub(isl::aff aff2) const; |
486 | inline isl::multi_aff sub(const isl::multi_aff &multi2) const; |
487 | inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const; |
488 | inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const; |
489 | inline isl::pw_aff sub(const isl::pw_aff &pwaff2) const; |
490 | inline isl::pw_multi_aff sub(const isl::pw_multi_aff &pma2) const; |
491 | inline isl::union_pw_aff sub(const isl::union_pw_aff &upa2) const; |
492 | inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const; |
493 | inline isl::pw_aff subtract_domain(const isl::set &set) const; |
494 | inline isl::union_pw_aff subtract_domain(const isl::space &space) const; |
495 | inline isl::union_pw_aff subtract_domain(const isl::union_set &uset) const; |
496 | inline isl::pw_aff tdiv_q(const isl::pw_aff &pa2) const; |
497 | inline isl::pw_aff tdiv_r(const isl::pw_aff &pa2) const; |
498 | inline isl::aff_list to_list() const; |
499 | inline isl::multi_pw_aff to_multi_pw_aff() const; |
500 | inline isl::multi_union_pw_aff to_multi_union_pw_aff() const; |
501 | inline isl::pw_multi_aff to_pw_multi_aff() const; |
502 | inline isl::union_pw_aff to_union_pw_aff() const; |
503 | inline isl::union_pw_multi_aff to_union_pw_multi_aff() const; |
504 | inline isl::id tuple_id(isl::dim type) const; |
505 | inline isl::aff unbind_params_insert_domain(isl::multi_id domain) const; |
506 | inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const; |
507 | inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const; |
508 | inline isl::pw_aff union_add(const isl::pw_aff &pwaff2) const; |
509 | inline isl::pw_multi_aff union_add(const isl::pw_multi_aff &pma2) const; |
510 | inline isl::union_pw_aff union_add(const isl::union_pw_aff &upa2) const; |
511 | inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const; |
512 | static inline isl::aff var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos); |
513 | static inline isl::aff zero_on_domain(isl::space space); |
514 | }; |
515 | |
516 | // declarations for isl::aff_list |
517 | inline aff_list manage(__isl_take isl_aff_list *ptr); |
518 | inline aff_list manage_copy(__isl_keep isl_aff_list *ptr); |
519 | |
520 | class aff_list { |
521 | friend inline aff_list manage(__isl_take isl_aff_list *ptr); |
522 | friend inline aff_list manage_copy(__isl_keep isl_aff_list *ptr); |
523 | |
524 | protected: |
525 | isl_aff_list *ptr = nullptr; |
526 | |
527 | inline explicit aff_list(__isl_take isl_aff_list *ptr); |
528 | |
529 | public: |
530 | inline /* implicit */ aff_list(); |
531 | inline /* implicit */ aff_list(const aff_list &obj); |
532 | inline explicit aff_list(isl::ctx ctx, int n); |
533 | inline explicit aff_list(isl::aff el); |
534 | inline explicit aff_list(isl::ctx ctx, const std::string &str); |
535 | inline aff_list &operator=(aff_list obj); |
536 | inline ~aff_list(); |
537 | inline __isl_give isl_aff_list *copy() const &; |
538 | inline __isl_give isl_aff_list *copy() && = delete; |
539 | inline __isl_keep isl_aff_list *get() const; |
540 | inline __isl_give isl_aff_list *release(); |
541 | inline bool is_null() const; |
542 | inline isl::ctx ctx() const; |
543 | |
544 | inline isl::aff_list add(isl::aff el) const; |
545 | inline isl::aff at(int index) const; |
546 | inline isl::aff get_at(int index) const; |
547 | inline isl::aff_list clear() const; |
548 | inline isl::aff_list concat(isl::aff_list list2) const; |
549 | inline isl::aff_list drop(unsigned int first, unsigned int n) const; |
550 | inline stat foreach(const std::function<stat(isl::aff)> &fn) const; |
551 | inline isl::aff_list insert(unsigned int pos, isl::aff el) const; |
552 | inline class size size() const; |
553 | }; |
554 | |
555 | // declarations for isl::ast_build |
556 | inline ast_build manage(__isl_take isl_ast_build *ptr); |
557 | inline ast_build manage_copy(__isl_keep isl_ast_build *ptr); |
558 | |
559 | class ast_build { |
560 | friend inline ast_build manage(__isl_take isl_ast_build *ptr); |
561 | friend inline ast_build manage_copy(__isl_keep isl_ast_build *ptr); |
562 | |
563 | protected: |
564 | isl_ast_build *ptr = nullptr; |
565 | |
566 | inline explicit ast_build(__isl_take isl_ast_build *ptr); |
567 | |
568 | public: |
569 | inline /* implicit */ ast_build(); |
570 | inline /* implicit */ ast_build(const ast_build &obj); |
571 | inline explicit ast_build(isl::ctx ctx); |
572 | inline ast_build &operator=(ast_build obj); |
573 | inline ~ast_build(); |
574 | inline __isl_give isl_ast_build *copy() const &; |
575 | inline __isl_give isl_ast_build *copy() && = delete; |
576 | inline __isl_keep isl_ast_build *get() const; |
577 | inline __isl_give isl_ast_build *release(); |
578 | inline bool is_null() const; |
579 | inline isl::ctx ctx() const; |
580 | |
581 | private: |
582 | inline ast_build ©_callbacks(const ast_build &obj); |
583 | struct at_each_domain_data { |
584 | std::function<isl::ast_node(isl::ast_node, isl::ast_build)> func; |
585 | }; |
586 | std::shared_ptr<at_each_domain_data> at_each_domain_data; |
587 | static inline isl_ast_node *at_each_domain(isl_ast_node *arg_0, isl_ast_build *arg_1, void *arg_2); |
588 | inline void set_at_each_domain_data(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn); |
589 | public: |
590 | inline isl::ast_build set_at_each_domain(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn) const; |
591 | inline isl::ast_expr access_from(isl::multi_pw_aff mpa) const; |
592 | inline isl::ast_expr access_from(isl::pw_multi_aff pma) const; |
593 | inline isl::ast_expr call_from(isl::multi_pw_aff mpa) const; |
594 | inline isl::ast_expr call_from(isl::pw_multi_aff pma) const; |
595 | inline isl::ast_expr expr_from(isl::pw_aff pa) const; |
596 | inline isl::ast_expr expr_from(isl::set set) const; |
597 | static inline isl::ast_build from_context(isl::set set); |
598 | inline isl::ast_node node_from(isl::schedule schedule) const; |
599 | inline isl::ast_node node_from_schedule_map(isl::union_map schedule) const; |
600 | inline isl::ast_build restrict(isl::set set) const; |
601 | inline isl::union_map schedule() const; |
602 | inline isl::union_map get_schedule() const; |
603 | }; |
604 | |
605 | // declarations for isl::ast_expr |
606 | inline ast_expr manage(__isl_take isl_ast_expr *ptr); |
607 | inline ast_expr manage_copy(__isl_keep isl_ast_expr *ptr); |
608 | |
609 | class ast_expr { |
610 | friend inline ast_expr manage(__isl_take isl_ast_expr *ptr); |
611 | friend inline ast_expr manage_copy(__isl_keep isl_ast_expr *ptr); |
612 | |
613 | protected: |
614 | isl_ast_expr *ptr = nullptr; |
615 | |
616 | inline explicit ast_expr(__isl_take isl_ast_expr *ptr); |
617 | |
618 | public: |
619 | inline /* implicit */ ast_expr(); |
620 | inline /* implicit */ ast_expr(const ast_expr &obj); |
621 | inline ast_expr &operator=(ast_expr obj); |
622 | inline ~ast_expr(); |
623 | inline __isl_give isl_ast_expr *copy() const &; |
624 | inline __isl_give isl_ast_expr *copy() && = delete; |
625 | inline __isl_keep isl_ast_expr *get() const; |
626 | inline __isl_give isl_ast_expr *release(); |
627 | inline bool is_null() const; |
628 | private: |
629 | template <typename T, |
630 | typename = typename std::enable_if<std::is_same< |
631 | const decltype(isl_ast_expr_get_type(expr: nullptr)), |
632 | const T>::value>::type> |
633 | inline boolean isa_type(T subtype) const; |
634 | public: |
635 | template <class T> inline boolean isa() const; |
636 | template <class T> inline T as() const; |
637 | inline isl::ctx ctx() const; |
638 | |
639 | inline isl::ast_expr add(isl::ast_expr expr2) const; |
640 | inline isl::ast_expr address_of() const; |
641 | inline isl::ast_expr eq(isl::ast_expr expr2) const; |
642 | static inline isl::ast_expr from_val(isl::val v); |
643 | inline isl::id id() const; |
644 | inline isl::id get_id() const; |
645 | inline isl::ast_expr le(isl::ast_expr expr2) const; |
646 | inline isl::ast_expr mul(isl::ast_expr expr2) const; |
647 | inline isl::ast_expr op_arg(int pos) const; |
648 | inline isl::ast_expr get_op_arg(int pos) const; |
649 | inline std::string to_C_str() const; |
650 | inline isl::val val() const; |
651 | inline isl::val get_val() const; |
652 | }; |
653 | |
654 | // declarations for isl::ast_expr_id |
655 | |
656 | class ast_expr_id : public ast_expr { |
657 | template <class T> |
658 | friend boolean ast_expr::isa() const; |
659 | friend ast_expr_id ast_expr::as<ast_expr_id>() const; |
660 | static const auto type = isl_ast_expr_id; |
661 | |
662 | protected: |
663 | inline explicit ast_expr_id(__isl_take isl_ast_expr *ptr); |
664 | |
665 | public: |
666 | inline /* implicit */ ast_expr_id(); |
667 | inline /* implicit */ ast_expr_id(const ast_expr_id &obj); |
668 | inline ast_expr_id &operator=(ast_expr_id obj); |
669 | inline isl::ctx ctx() const; |
670 | |
671 | inline isl::id id() const; |
672 | inline isl::id get_id() const; |
673 | }; |
674 | |
675 | // declarations for isl::ast_expr_int |
676 | |
677 | class ast_expr_int : public ast_expr { |
678 | template <class T> |
679 | friend boolean ast_expr::isa() const; |
680 | friend ast_expr_int ast_expr::as<ast_expr_int>() const; |
681 | static const auto type = isl_ast_expr_int; |
682 | |
683 | protected: |
684 | inline explicit ast_expr_int(__isl_take isl_ast_expr *ptr); |
685 | |
686 | public: |
687 | inline /* implicit */ ast_expr_int(); |
688 | inline /* implicit */ ast_expr_int(const ast_expr_int &obj); |
689 | inline ast_expr_int &operator=(ast_expr_int obj); |
690 | inline isl::ctx ctx() const; |
691 | |
692 | inline isl::val val() const; |
693 | inline isl::val get_val() const; |
694 | }; |
695 | |
696 | // declarations for isl::ast_expr_op |
697 | |
698 | class ast_expr_op : public ast_expr { |
699 | template <class T> |
700 | friend boolean ast_expr::isa() const; |
701 | friend ast_expr_op ast_expr::as<ast_expr_op>() const; |
702 | static const auto type = isl_ast_expr_op; |
703 | |
704 | protected: |
705 | inline explicit ast_expr_op(__isl_take isl_ast_expr *ptr); |
706 | |
707 | public: |
708 | inline /* implicit */ ast_expr_op(); |
709 | inline /* implicit */ ast_expr_op(const ast_expr_op &obj); |
710 | inline ast_expr_op &operator=(ast_expr_op obj); |
711 | private: |
712 | template <typename T, |
713 | typename = typename std::enable_if<std::is_same< |
714 | const decltype(isl_ast_expr_op_get_type(expr: nullptr)), |
715 | const T>::value>::type> |
716 | inline boolean isa_type(T subtype) const; |
717 | public: |
718 | template <class T> inline boolean isa() const; |
719 | template <class T> inline T as() const; |
720 | inline isl::ctx ctx() const; |
721 | |
722 | inline isl::ast_expr arg(int pos) const; |
723 | inline isl::ast_expr get_arg(int pos) const; |
724 | inline class size n_arg() const; |
725 | inline class size get_n_arg() const; |
726 | }; |
727 | |
728 | // declarations for isl::ast_expr_op_access |
729 | |
730 | class ast_expr_op_access : public ast_expr_op { |
731 | template <class T> |
732 | friend boolean ast_expr_op::isa() const; |
733 | friend ast_expr_op_access ast_expr_op::as<ast_expr_op_access>() const; |
734 | static const auto type = isl_ast_expr_op_access; |
735 | |
736 | protected: |
737 | inline explicit ast_expr_op_access(__isl_take isl_ast_expr *ptr); |
738 | |
739 | public: |
740 | inline /* implicit */ ast_expr_op_access(); |
741 | inline /* implicit */ ast_expr_op_access(const ast_expr_op_access &obj); |
742 | inline ast_expr_op_access &operator=(ast_expr_op_access obj); |
743 | inline isl::ctx ctx() const; |
744 | |
745 | }; |
746 | |
747 | // declarations for isl::ast_expr_op_add |
748 | |
749 | class ast_expr_op_add : public ast_expr_op { |
750 | template <class T> |
751 | friend boolean ast_expr_op::isa() const; |
752 | friend ast_expr_op_add ast_expr_op::as<ast_expr_op_add>() const; |
753 | static const auto type = isl_ast_expr_op_add; |
754 | |
755 | protected: |
756 | inline explicit ast_expr_op_add(__isl_take isl_ast_expr *ptr); |
757 | |
758 | public: |
759 | inline /* implicit */ ast_expr_op_add(); |
760 | inline /* implicit */ ast_expr_op_add(const ast_expr_op_add &obj); |
761 | inline ast_expr_op_add &operator=(ast_expr_op_add obj); |
762 | inline isl::ctx ctx() const; |
763 | |
764 | }; |
765 | |
766 | // declarations for isl::ast_expr_op_address_of |
767 | |
768 | class ast_expr_op_address_of : public ast_expr_op { |
769 | template <class T> |
770 | friend boolean ast_expr_op::isa() const; |
771 | friend ast_expr_op_address_of ast_expr_op::as<ast_expr_op_address_of>() const; |
772 | static const auto type = isl_ast_expr_op_address_of; |
773 | |
774 | protected: |
775 | inline explicit ast_expr_op_address_of(__isl_take isl_ast_expr *ptr); |
776 | |
777 | public: |
778 | inline /* implicit */ ast_expr_op_address_of(); |
779 | inline /* implicit */ ast_expr_op_address_of(const ast_expr_op_address_of &obj); |
780 | inline ast_expr_op_address_of &operator=(ast_expr_op_address_of obj); |
781 | inline isl::ctx ctx() const; |
782 | |
783 | }; |
784 | |
785 | // declarations for isl::ast_expr_op_and |
786 | |
787 | class ast_expr_op_and : public ast_expr_op { |
788 | template <class T> |
789 | friend boolean ast_expr_op::isa() const; |
790 | friend ast_expr_op_and ast_expr_op::as<ast_expr_op_and>() const; |
791 | static const auto type = isl_ast_expr_op_and; |
792 | |
793 | protected: |
794 | inline explicit ast_expr_op_and(__isl_take isl_ast_expr *ptr); |
795 | |
796 | public: |
797 | inline /* implicit */ ast_expr_op_and(); |
798 | inline /* implicit */ ast_expr_op_and(const ast_expr_op_and &obj); |
799 | inline ast_expr_op_and &operator=(ast_expr_op_and obj); |
800 | inline isl::ctx ctx() const; |
801 | |
802 | }; |
803 | |
804 | // declarations for isl::ast_expr_op_and_then |
805 | |
806 | class ast_expr_op_and_then : public ast_expr_op { |
807 | template <class T> |
808 | friend boolean ast_expr_op::isa() const; |
809 | friend ast_expr_op_and_then ast_expr_op::as<ast_expr_op_and_then>() const; |
810 | static const auto type = isl_ast_expr_op_and_then; |
811 | |
812 | protected: |
813 | inline explicit ast_expr_op_and_then(__isl_take isl_ast_expr *ptr); |
814 | |
815 | public: |
816 | inline /* implicit */ ast_expr_op_and_then(); |
817 | inline /* implicit */ ast_expr_op_and_then(const ast_expr_op_and_then &obj); |
818 | inline ast_expr_op_and_then &operator=(ast_expr_op_and_then obj); |
819 | inline isl::ctx ctx() const; |
820 | |
821 | }; |
822 | |
823 | // declarations for isl::ast_expr_op_call |
824 | |
825 | class ast_expr_op_call : public ast_expr_op { |
826 | template <class T> |
827 | friend boolean ast_expr_op::isa() const; |
828 | friend ast_expr_op_call ast_expr_op::as<ast_expr_op_call>() const; |
829 | static const auto type = isl_ast_expr_op_call; |
830 | |
831 | protected: |
832 | inline explicit ast_expr_op_call(__isl_take isl_ast_expr *ptr); |
833 | |
834 | public: |
835 | inline /* implicit */ ast_expr_op_call(); |
836 | inline /* implicit */ ast_expr_op_call(const ast_expr_op_call &obj); |
837 | inline ast_expr_op_call &operator=(ast_expr_op_call obj); |
838 | inline isl::ctx ctx() const; |
839 | |
840 | }; |
841 | |
842 | // declarations for isl::ast_expr_op_cond |
843 | |
844 | class ast_expr_op_cond : public ast_expr_op { |
845 | template <class T> |
846 | friend boolean ast_expr_op::isa() const; |
847 | friend ast_expr_op_cond ast_expr_op::as<ast_expr_op_cond>() const; |
848 | static const auto type = isl_ast_expr_op_cond; |
849 | |
850 | protected: |
851 | inline explicit ast_expr_op_cond(__isl_take isl_ast_expr *ptr); |
852 | |
853 | public: |
854 | inline /* implicit */ ast_expr_op_cond(); |
855 | inline /* implicit */ ast_expr_op_cond(const ast_expr_op_cond &obj); |
856 | inline ast_expr_op_cond &operator=(ast_expr_op_cond obj); |
857 | inline isl::ctx ctx() const; |
858 | |
859 | }; |
860 | |
861 | // declarations for isl::ast_expr_op_div |
862 | |
863 | class ast_expr_op_div : public ast_expr_op { |
864 | template <class T> |
865 | friend boolean ast_expr_op::isa() const; |
866 | friend ast_expr_op_div ast_expr_op::as<ast_expr_op_div>() const; |
867 | static const auto type = isl_ast_expr_op_div; |
868 | |
869 | protected: |
870 | inline explicit ast_expr_op_div(__isl_take isl_ast_expr *ptr); |
871 | |
872 | public: |
873 | inline /* implicit */ ast_expr_op_div(); |
874 | inline /* implicit */ ast_expr_op_div(const ast_expr_op_div &obj); |
875 | inline ast_expr_op_div &operator=(ast_expr_op_div obj); |
876 | inline isl::ctx ctx() const; |
877 | |
878 | }; |
879 | |
880 | // declarations for isl::ast_expr_op_eq |
881 | |
882 | class ast_expr_op_eq : public ast_expr_op { |
883 | template <class T> |
884 | friend boolean ast_expr_op::isa() const; |
885 | friend ast_expr_op_eq ast_expr_op::as<ast_expr_op_eq>() const; |
886 | static const auto type = isl_ast_expr_op_eq; |
887 | |
888 | protected: |
889 | inline explicit ast_expr_op_eq(__isl_take isl_ast_expr *ptr); |
890 | |
891 | public: |
892 | inline /* implicit */ ast_expr_op_eq(); |
893 | inline /* implicit */ ast_expr_op_eq(const ast_expr_op_eq &obj); |
894 | inline ast_expr_op_eq &operator=(ast_expr_op_eq obj); |
895 | inline isl::ctx ctx() const; |
896 | |
897 | }; |
898 | |
899 | // declarations for isl::ast_expr_op_fdiv_q |
900 | |
901 | class ast_expr_op_fdiv_q : public ast_expr_op { |
902 | template <class T> |
903 | friend boolean ast_expr_op::isa() const; |
904 | friend ast_expr_op_fdiv_q ast_expr_op::as<ast_expr_op_fdiv_q>() const; |
905 | static const auto type = isl_ast_expr_op_fdiv_q; |
906 | |
907 | protected: |
908 | inline explicit ast_expr_op_fdiv_q(__isl_take isl_ast_expr *ptr); |
909 | |
910 | public: |
911 | inline /* implicit */ ast_expr_op_fdiv_q(); |
912 | inline /* implicit */ ast_expr_op_fdiv_q(const ast_expr_op_fdiv_q &obj); |
913 | inline ast_expr_op_fdiv_q &operator=(ast_expr_op_fdiv_q obj); |
914 | inline isl::ctx ctx() const; |
915 | |
916 | }; |
917 | |
918 | // declarations for isl::ast_expr_op_ge |
919 | |
920 | class ast_expr_op_ge : public ast_expr_op { |
921 | template <class T> |
922 | friend boolean ast_expr_op::isa() const; |
923 | friend ast_expr_op_ge ast_expr_op::as<ast_expr_op_ge>() const; |
924 | static const auto type = isl_ast_expr_op_ge; |
925 | |
926 | protected: |
927 | inline explicit ast_expr_op_ge(__isl_take isl_ast_expr *ptr); |
928 | |
929 | public: |
930 | inline /* implicit */ ast_expr_op_ge(); |
931 | inline /* implicit */ ast_expr_op_ge(const ast_expr_op_ge &obj); |
932 | inline ast_expr_op_ge &operator=(ast_expr_op_ge obj); |
933 | inline isl::ctx ctx() const; |
934 | |
935 | }; |
936 | |
937 | // declarations for isl::ast_expr_op_gt |
938 | |
939 | class ast_expr_op_gt : public ast_expr_op { |
940 | template <class T> |
941 | friend boolean ast_expr_op::isa() const; |
942 | friend ast_expr_op_gt ast_expr_op::as<ast_expr_op_gt>() const; |
943 | static const auto type = isl_ast_expr_op_gt; |
944 | |
945 | protected: |
946 | inline explicit ast_expr_op_gt(__isl_take isl_ast_expr *ptr); |
947 | |
948 | public: |
949 | inline /* implicit */ ast_expr_op_gt(); |
950 | inline /* implicit */ ast_expr_op_gt(const ast_expr_op_gt &obj); |
951 | inline ast_expr_op_gt &operator=(ast_expr_op_gt obj); |
952 | inline isl::ctx ctx() const; |
953 | |
954 | }; |
955 | |
956 | // declarations for isl::ast_expr_op_le |
957 | |
958 | class ast_expr_op_le : public ast_expr_op { |
959 | template <class T> |
960 | friend boolean ast_expr_op::isa() const; |
961 | friend ast_expr_op_le ast_expr_op::as<ast_expr_op_le>() const; |
962 | static const auto type = isl_ast_expr_op_le; |
963 | |
964 | protected: |
965 | inline explicit ast_expr_op_le(__isl_take isl_ast_expr *ptr); |
966 | |
967 | public: |
968 | inline /* implicit */ ast_expr_op_le(); |
969 | inline /* implicit */ ast_expr_op_le(const ast_expr_op_le &obj); |
970 | inline ast_expr_op_le &operator=(ast_expr_op_le obj); |
971 | inline isl::ctx ctx() const; |
972 | |
973 | }; |
974 | |
975 | // declarations for isl::ast_expr_op_lt |
976 | |
977 | class ast_expr_op_lt : public ast_expr_op { |
978 | template <class T> |
979 | friend boolean ast_expr_op::isa() const; |
980 | friend ast_expr_op_lt ast_expr_op::as<ast_expr_op_lt>() const; |
981 | static const auto type = isl_ast_expr_op_lt; |
982 | |
983 | protected: |
984 | inline explicit ast_expr_op_lt(__isl_take isl_ast_expr *ptr); |
985 | |
986 | public: |
987 | inline /* implicit */ ast_expr_op_lt(); |
988 | inline /* implicit */ ast_expr_op_lt(const ast_expr_op_lt &obj); |
989 | inline ast_expr_op_lt &operator=(ast_expr_op_lt obj); |
990 | inline isl::ctx ctx() const; |
991 | |
992 | }; |
993 | |
994 | // declarations for isl::ast_expr_op_max |
995 | |
996 | class ast_expr_op_max : public ast_expr_op { |
997 | template <class T> |
998 | friend boolean ast_expr_op::isa() const; |
999 | friend ast_expr_op_max ast_expr_op::as<ast_expr_op_max>() const; |
1000 | static const auto type = isl_ast_expr_op_max; |
1001 | |
1002 | protected: |
1003 | inline explicit ast_expr_op_max(__isl_take isl_ast_expr *ptr); |
1004 | |
1005 | public: |
1006 | inline /* implicit */ ast_expr_op_max(); |
1007 | inline /* implicit */ ast_expr_op_max(const ast_expr_op_max &obj); |
1008 | inline ast_expr_op_max &operator=(ast_expr_op_max obj); |
1009 | inline isl::ctx ctx() const; |
1010 | |
1011 | }; |
1012 | |
1013 | // declarations for isl::ast_expr_op_member |
1014 | |
1015 | class ast_expr_op_member : public ast_expr_op { |
1016 | template <class T> |
1017 | friend boolean ast_expr_op::isa() const; |
1018 | friend ast_expr_op_member ast_expr_op::as<ast_expr_op_member>() const; |
1019 | static const auto type = isl_ast_expr_op_member; |
1020 | |
1021 | protected: |
1022 | inline explicit ast_expr_op_member(__isl_take isl_ast_expr *ptr); |
1023 | |
1024 | public: |
1025 | inline /* implicit */ ast_expr_op_member(); |
1026 | inline /* implicit */ ast_expr_op_member(const ast_expr_op_member &obj); |
1027 | inline ast_expr_op_member &operator=(ast_expr_op_member obj); |
1028 | inline isl::ctx ctx() const; |
1029 | |
1030 | }; |
1031 | |
1032 | // declarations for isl::ast_expr_op_min |
1033 | |
1034 | class ast_expr_op_min : public ast_expr_op { |
1035 | template <class T> |
1036 | friend boolean ast_expr_op::isa() const; |
1037 | friend ast_expr_op_min ast_expr_op::as<ast_expr_op_min>() const; |
1038 | static const auto type = isl_ast_expr_op_min; |
1039 | |
1040 | protected: |
1041 | inline explicit ast_expr_op_min(__isl_take isl_ast_expr *ptr); |
1042 | |
1043 | public: |
1044 | inline /* implicit */ ast_expr_op_min(); |
1045 | inline /* implicit */ ast_expr_op_min(const ast_expr_op_min &obj); |
1046 | inline ast_expr_op_min &operator=(ast_expr_op_min obj); |
1047 | inline isl::ctx ctx() const; |
1048 | |
1049 | }; |
1050 | |
1051 | // declarations for isl::ast_expr_op_minus |
1052 | |
1053 | class ast_expr_op_minus : public ast_expr_op { |
1054 | template <class T> |
1055 | friend boolean ast_expr_op::isa() const; |
1056 | friend ast_expr_op_minus ast_expr_op::as<ast_expr_op_minus>() const; |
1057 | static const auto type = isl_ast_expr_op_minus; |
1058 | |
1059 | protected: |
1060 | inline explicit ast_expr_op_minus(__isl_take isl_ast_expr *ptr); |
1061 | |
1062 | public: |
1063 | inline /* implicit */ ast_expr_op_minus(); |
1064 | inline /* implicit */ ast_expr_op_minus(const ast_expr_op_minus &obj); |
1065 | inline ast_expr_op_minus &operator=(ast_expr_op_minus obj); |
1066 | inline isl::ctx ctx() const; |
1067 | |
1068 | }; |
1069 | |
1070 | // declarations for isl::ast_expr_op_mul |
1071 | |
1072 | class ast_expr_op_mul : public ast_expr_op { |
1073 | template <class T> |
1074 | friend boolean ast_expr_op::isa() const; |
1075 | friend ast_expr_op_mul ast_expr_op::as<ast_expr_op_mul>() const; |
1076 | static const auto type = isl_ast_expr_op_mul; |
1077 | |
1078 | protected: |
1079 | inline explicit ast_expr_op_mul(__isl_take isl_ast_expr *ptr); |
1080 | |
1081 | public: |
1082 | inline /* implicit */ ast_expr_op_mul(); |
1083 | inline /* implicit */ ast_expr_op_mul(const ast_expr_op_mul &obj); |
1084 | inline ast_expr_op_mul &operator=(ast_expr_op_mul obj); |
1085 | inline isl::ctx ctx() const; |
1086 | |
1087 | }; |
1088 | |
1089 | // declarations for isl::ast_expr_op_or |
1090 | |
1091 | class ast_expr_op_or : public ast_expr_op { |
1092 | template <class T> |
1093 | friend boolean ast_expr_op::isa() const; |
1094 | friend ast_expr_op_or ast_expr_op::as<ast_expr_op_or>() const; |
1095 | static const auto type = isl_ast_expr_op_or; |
1096 | |
1097 | protected: |
1098 | inline explicit ast_expr_op_or(__isl_take isl_ast_expr *ptr); |
1099 | |
1100 | public: |
1101 | inline /* implicit */ ast_expr_op_or(); |
1102 | inline /* implicit */ ast_expr_op_or(const ast_expr_op_or &obj); |
1103 | inline ast_expr_op_or &operator=(ast_expr_op_or obj); |
1104 | inline isl::ctx ctx() const; |
1105 | |
1106 | }; |
1107 | |
1108 | // declarations for isl::ast_expr_op_or_else |
1109 | |
1110 | class ast_expr_op_or_else : public ast_expr_op { |
1111 | template <class T> |
1112 | friend boolean ast_expr_op::isa() const; |
1113 | friend ast_expr_op_or_else ast_expr_op::as<ast_expr_op_or_else>() const; |
1114 | static const auto type = isl_ast_expr_op_or_else; |
1115 | |
1116 | protected: |
1117 | inline explicit ast_expr_op_or_else(__isl_take isl_ast_expr *ptr); |
1118 | |
1119 | public: |
1120 | inline /* implicit */ ast_expr_op_or_else(); |
1121 | inline /* implicit */ ast_expr_op_or_else(const ast_expr_op_or_else &obj); |
1122 | inline ast_expr_op_or_else &operator=(ast_expr_op_or_else obj); |
1123 | inline isl::ctx ctx() const; |
1124 | |
1125 | }; |
1126 | |
1127 | // declarations for isl::ast_expr_op_pdiv_q |
1128 | |
1129 | class ast_expr_op_pdiv_q : public ast_expr_op { |
1130 | template <class T> |
1131 | friend boolean ast_expr_op::isa() const; |
1132 | friend ast_expr_op_pdiv_q ast_expr_op::as<ast_expr_op_pdiv_q>() const; |
1133 | static const auto type = isl_ast_expr_op_pdiv_q; |
1134 | |
1135 | protected: |
1136 | inline explicit ast_expr_op_pdiv_q(__isl_take isl_ast_expr *ptr); |
1137 | |
1138 | public: |
1139 | inline /* implicit */ ast_expr_op_pdiv_q(); |
1140 | inline /* implicit */ ast_expr_op_pdiv_q(const ast_expr_op_pdiv_q &obj); |
1141 | inline ast_expr_op_pdiv_q &operator=(ast_expr_op_pdiv_q obj); |
1142 | inline isl::ctx ctx() const; |
1143 | |
1144 | }; |
1145 | |
1146 | // declarations for isl::ast_expr_op_pdiv_r |
1147 | |
1148 | class ast_expr_op_pdiv_r : public ast_expr_op { |
1149 | template <class T> |
1150 | friend boolean ast_expr_op::isa() const; |
1151 | friend ast_expr_op_pdiv_r ast_expr_op::as<ast_expr_op_pdiv_r>() const; |
1152 | static const auto type = isl_ast_expr_op_pdiv_r; |
1153 | |
1154 | protected: |
1155 | inline explicit ast_expr_op_pdiv_r(__isl_take isl_ast_expr *ptr); |
1156 | |
1157 | public: |
1158 | inline /* implicit */ ast_expr_op_pdiv_r(); |
1159 | inline /* implicit */ ast_expr_op_pdiv_r(const ast_expr_op_pdiv_r &obj); |
1160 | inline ast_expr_op_pdiv_r &operator=(ast_expr_op_pdiv_r obj); |
1161 | inline isl::ctx ctx() const; |
1162 | |
1163 | }; |
1164 | |
1165 | // declarations for isl::ast_expr_op_select |
1166 | |
1167 | class ast_expr_op_select : public ast_expr_op { |
1168 | template <class T> |
1169 | friend boolean ast_expr_op::isa() const; |
1170 | friend ast_expr_op_select ast_expr_op::as<ast_expr_op_select>() const; |
1171 | static const auto type = isl_ast_expr_op_select; |
1172 | |
1173 | protected: |
1174 | inline explicit ast_expr_op_select(__isl_take isl_ast_expr *ptr); |
1175 | |
1176 | public: |
1177 | inline /* implicit */ ast_expr_op_select(); |
1178 | inline /* implicit */ ast_expr_op_select(const ast_expr_op_select &obj); |
1179 | inline ast_expr_op_select &operator=(ast_expr_op_select obj); |
1180 | inline isl::ctx ctx() const; |
1181 | |
1182 | }; |
1183 | |
1184 | // declarations for isl::ast_expr_op_sub |
1185 | |
1186 | class ast_expr_op_sub : public ast_expr_op { |
1187 | template <class T> |
1188 | friend boolean ast_expr_op::isa() const; |
1189 | friend ast_expr_op_sub ast_expr_op::as<ast_expr_op_sub>() const; |
1190 | static const auto type = isl_ast_expr_op_sub; |
1191 | |
1192 | protected: |
1193 | inline explicit ast_expr_op_sub(__isl_take isl_ast_expr *ptr); |
1194 | |
1195 | public: |
1196 | inline /* implicit */ ast_expr_op_sub(); |
1197 | inline /* implicit */ ast_expr_op_sub(const ast_expr_op_sub &obj); |
1198 | inline ast_expr_op_sub &operator=(ast_expr_op_sub obj); |
1199 | inline isl::ctx ctx() const; |
1200 | |
1201 | }; |
1202 | |
1203 | // declarations for isl::ast_expr_op_zdiv_r |
1204 | |
1205 | class ast_expr_op_zdiv_r : public ast_expr_op { |
1206 | template <class T> |
1207 | friend boolean ast_expr_op::isa() const; |
1208 | friend ast_expr_op_zdiv_r ast_expr_op::as<ast_expr_op_zdiv_r>() const; |
1209 | static const auto type = isl_ast_expr_op_zdiv_r; |
1210 | |
1211 | protected: |
1212 | inline explicit ast_expr_op_zdiv_r(__isl_take isl_ast_expr *ptr); |
1213 | |
1214 | public: |
1215 | inline /* implicit */ ast_expr_op_zdiv_r(); |
1216 | inline /* implicit */ ast_expr_op_zdiv_r(const ast_expr_op_zdiv_r &obj); |
1217 | inline ast_expr_op_zdiv_r &operator=(ast_expr_op_zdiv_r obj); |
1218 | inline isl::ctx ctx() const; |
1219 | |
1220 | }; |
1221 | |
1222 | // declarations for isl::ast_node |
1223 | inline ast_node manage(__isl_take isl_ast_node *ptr); |
1224 | inline ast_node manage_copy(__isl_keep isl_ast_node *ptr); |
1225 | |
1226 | class ast_node { |
1227 | friend inline ast_node manage(__isl_take isl_ast_node *ptr); |
1228 | friend inline ast_node manage_copy(__isl_keep isl_ast_node *ptr); |
1229 | |
1230 | protected: |
1231 | isl_ast_node *ptr = nullptr; |
1232 | |
1233 | inline explicit ast_node(__isl_take isl_ast_node *ptr); |
1234 | |
1235 | public: |
1236 | inline /* implicit */ ast_node(); |
1237 | inline /* implicit */ ast_node(const ast_node &obj); |
1238 | inline ast_node &operator=(ast_node obj); |
1239 | inline ~ast_node(); |
1240 | inline __isl_give isl_ast_node *copy() const &; |
1241 | inline __isl_give isl_ast_node *copy() && = delete; |
1242 | inline __isl_keep isl_ast_node *get() const; |
1243 | inline __isl_give isl_ast_node *release(); |
1244 | inline bool is_null() const; |
1245 | private: |
1246 | template <typename T, |
1247 | typename = typename std::enable_if<std::is_same< |
1248 | const decltype(isl_ast_node_get_type(node: nullptr)), |
1249 | const T>::value>::type> |
1250 | inline boolean isa_type(T subtype) const; |
1251 | public: |
1252 | template <class T> inline boolean isa() const; |
1253 | template <class T> inline T as() const; |
1254 | inline isl::ctx ctx() const; |
1255 | |
1256 | inline isl::id annotation() const; |
1257 | inline isl::id get_annotation() const; |
1258 | inline std::string to_C_str() const; |
1259 | inline isl::ast_node_list to_list() const; |
1260 | }; |
1261 | |
1262 | // declarations for isl::ast_node_block |
1263 | |
1264 | class ast_node_block : public ast_node { |
1265 | template <class T> |
1266 | friend boolean ast_node::isa() const; |
1267 | friend ast_node_block ast_node::as<ast_node_block>() const; |
1268 | static const auto type = isl_ast_node_block; |
1269 | |
1270 | protected: |
1271 | inline explicit ast_node_block(__isl_take isl_ast_node *ptr); |
1272 | |
1273 | public: |
1274 | inline /* implicit */ ast_node_block(); |
1275 | inline /* implicit */ ast_node_block(const ast_node_block &obj); |
1276 | inline ast_node_block &operator=(ast_node_block obj); |
1277 | inline isl::ctx ctx() const; |
1278 | |
1279 | inline isl::ast_node_list children() const; |
1280 | inline isl::ast_node_list get_children() const; |
1281 | }; |
1282 | |
1283 | // declarations for isl::ast_node_for |
1284 | |
1285 | class ast_node_for : public ast_node { |
1286 | template <class T> |
1287 | friend boolean ast_node::isa() const; |
1288 | friend ast_node_for ast_node::as<ast_node_for>() const; |
1289 | static const auto type = isl_ast_node_for; |
1290 | |
1291 | protected: |
1292 | inline explicit ast_node_for(__isl_take isl_ast_node *ptr); |
1293 | |
1294 | public: |
1295 | inline /* implicit */ ast_node_for(); |
1296 | inline /* implicit */ ast_node_for(const ast_node_for &obj); |
1297 | inline ast_node_for &operator=(ast_node_for obj); |
1298 | inline isl::ctx ctx() const; |
1299 | |
1300 | inline isl::ast_node body() const; |
1301 | inline isl::ast_node get_body() const; |
1302 | inline isl::ast_expr cond() const; |
1303 | inline isl::ast_expr get_cond() const; |
1304 | inline isl::ast_expr inc() const; |
1305 | inline isl::ast_expr get_inc() const; |
1306 | inline isl::ast_expr init() const; |
1307 | inline isl::ast_expr get_init() const; |
1308 | inline boolean is_degenerate() const; |
1309 | inline isl::ast_expr iterator() const; |
1310 | inline isl::ast_expr get_iterator() const; |
1311 | }; |
1312 | |
1313 | // declarations for isl::ast_node_if |
1314 | |
1315 | class ast_node_if : public ast_node { |
1316 | template <class T> |
1317 | friend boolean ast_node::isa() const; |
1318 | friend ast_node_if ast_node::as<ast_node_if>() const; |
1319 | static const auto type = isl_ast_node_if; |
1320 | |
1321 | protected: |
1322 | inline explicit ast_node_if(__isl_take isl_ast_node *ptr); |
1323 | |
1324 | public: |
1325 | inline /* implicit */ ast_node_if(); |
1326 | inline /* implicit */ ast_node_if(const ast_node_if &obj); |
1327 | inline ast_node_if &operator=(ast_node_if obj); |
1328 | inline isl::ctx ctx() const; |
1329 | |
1330 | inline isl::ast_expr cond() const; |
1331 | inline isl::ast_expr get_cond() const; |
1332 | inline isl::ast_node else_node() const; |
1333 | inline isl::ast_node get_else_node() const; |
1334 | inline boolean has_else_node() const; |
1335 | inline isl::ast_node then_node() const; |
1336 | inline isl::ast_node get_then_node() const; |
1337 | }; |
1338 | |
1339 | // declarations for isl::ast_node_list |
1340 | inline ast_node_list manage(__isl_take isl_ast_node_list *ptr); |
1341 | inline ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr); |
1342 | |
1343 | class ast_node_list { |
1344 | friend inline ast_node_list manage(__isl_take isl_ast_node_list *ptr); |
1345 | friend inline ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr); |
1346 | |
1347 | protected: |
1348 | isl_ast_node_list *ptr = nullptr; |
1349 | |
1350 | inline explicit ast_node_list(__isl_take isl_ast_node_list *ptr); |
1351 | |
1352 | public: |
1353 | inline /* implicit */ ast_node_list(); |
1354 | inline /* implicit */ ast_node_list(const ast_node_list &obj); |
1355 | inline explicit ast_node_list(isl::ctx ctx, int n); |
1356 | inline explicit ast_node_list(isl::ast_node el); |
1357 | inline ast_node_list &operator=(ast_node_list obj); |
1358 | inline ~ast_node_list(); |
1359 | inline __isl_give isl_ast_node_list *copy() const &; |
1360 | inline __isl_give isl_ast_node_list *copy() && = delete; |
1361 | inline __isl_keep isl_ast_node_list *get() const; |
1362 | inline __isl_give isl_ast_node_list *release(); |
1363 | inline bool is_null() const; |
1364 | inline isl::ctx ctx() const; |
1365 | |
1366 | inline isl::ast_node_list add(isl::ast_node el) const; |
1367 | inline isl::ast_node at(int index) const; |
1368 | inline isl::ast_node get_at(int index) const; |
1369 | inline isl::ast_node_list clear() const; |
1370 | inline isl::ast_node_list concat(isl::ast_node_list list2) const; |
1371 | inline isl::ast_node_list drop(unsigned int first, unsigned int n) const; |
1372 | inline stat foreach(const std::function<stat(isl::ast_node)> &fn) const; |
1373 | inline isl::ast_node_list insert(unsigned int pos, isl::ast_node el) const; |
1374 | inline class size size() const; |
1375 | }; |
1376 | |
1377 | // declarations for isl::ast_node_mark |
1378 | |
1379 | class ast_node_mark : public ast_node { |
1380 | template <class T> |
1381 | friend boolean ast_node::isa() const; |
1382 | friend ast_node_mark ast_node::as<ast_node_mark>() const; |
1383 | static const auto type = isl_ast_node_mark; |
1384 | |
1385 | protected: |
1386 | inline explicit ast_node_mark(__isl_take isl_ast_node *ptr); |
1387 | |
1388 | public: |
1389 | inline /* implicit */ ast_node_mark(); |
1390 | inline /* implicit */ ast_node_mark(const ast_node_mark &obj); |
1391 | inline ast_node_mark &operator=(ast_node_mark obj); |
1392 | inline isl::ctx ctx() const; |
1393 | |
1394 | inline isl::id id() const; |
1395 | inline isl::id get_id() const; |
1396 | inline isl::ast_node node() const; |
1397 | inline isl::ast_node get_node() const; |
1398 | }; |
1399 | |
1400 | // declarations for isl::ast_node_user |
1401 | |
1402 | class ast_node_user : public ast_node { |
1403 | template <class T> |
1404 | friend boolean ast_node::isa() const; |
1405 | friend ast_node_user ast_node::as<ast_node_user>() const; |
1406 | static const auto type = isl_ast_node_user; |
1407 | |
1408 | protected: |
1409 | inline explicit ast_node_user(__isl_take isl_ast_node *ptr); |
1410 | |
1411 | public: |
1412 | inline /* implicit */ ast_node_user(); |
1413 | inline /* implicit */ ast_node_user(const ast_node_user &obj); |
1414 | inline ast_node_user &operator=(ast_node_user obj); |
1415 | inline isl::ctx ctx() const; |
1416 | |
1417 | inline isl::ast_expr expr() const; |
1418 | inline isl::ast_expr get_expr() const; |
1419 | }; |
1420 | |
1421 | // declarations for isl::basic_map |
1422 | inline basic_map manage(__isl_take isl_basic_map *ptr); |
1423 | inline basic_map manage_copy(__isl_keep isl_basic_map *ptr); |
1424 | |
1425 | class basic_map { |
1426 | friend inline basic_map manage(__isl_take isl_basic_map *ptr); |
1427 | friend inline basic_map manage_copy(__isl_keep isl_basic_map *ptr); |
1428 | |
1429 | protected: |
1430 | isl_basic_map *ptr = nullptr; |
1431 | |
1432 | inline explicit basic_map(__isl_take isl_basic_map *ptr); |
1433 | |
1434 | public: |
1435 | inline /* implicit */ basic_map(); |
1436 | inline /* implicit */ basic_map(const basic_map &obj); |
1437 | inline explicit basic_map(isl::ctx ctx, const std::string &str); |
1438 | inline basic_map &operator=(basic_map obj); |
1439 | inline ~basic_map(); |
1440 | inline __isl_give isl_basic_map *copy() const &; |
1441 | inline __isl_give isl_basic_map *copy() && = delete; |
1442 | inline __isl_keep isl_basic_map *get() const; |
1443 | inline __isl_give isl_basic_map *release(); |
1444 | inline bool is_null() const; |
1445 | inline isl::ctx ctx() const; |
1446 | |
1447 | inline isl::map add_constraint(const isl::constraint &constraint) const; |
1448 | inline isl::map add_dims(isl::dim type, unsigned int n) const; |
1449 | inline isl::basic_map affine_hull() const; |
1450 | inline isl::map align_params(const isl::space &model) const; |
1451 | inline isl::basic_map apply_domain(isl::basic_map bmap2) const; |
1452 | inline isl::map apply_domain(const isl::map &map2) const; |
1453 | inline isl::union_map apply_domain(const isl::union_map &umap2) const; |
1454 | inline isl::basic_map apply_range(isl::basic_map bmap2) const; |
1455 | inline isl::map apply_range(const isl::map &map2) const; |
1456 | inline isl::union_map apply_range(const isl::union_map &umap2) const; |
1457 | inline isl::map as_map() const; |
1458 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
1459 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
1460 | inline isl::union_pw_multi_aff as_union_pw_multi_aff() const; |
1461 | inline isl::basic_map_list basic_map_list() const; |
1462 | inline isl::set bind_domain(const isl::multi_id &tuple) const; |
1463 | inline isl::set bind_range(const isl::multi_id &tuple) const; |
1464 | inline boolean can_curry() const; |
1465 | inline isl::map coalesce() const; |
1466 | inline isl::map complement() const; |
1467 | inline isl::union_map compute_divs() const; |
1468 | inline isl::map curry() const; |
1469 | inline isl::basic_set deltas() const; |
1470 | inline isl::basic_map detect_equalities() const; |
1471 | inline class size dim(isl::dim type) const; |
1472 | inline isl::pw_aff dim_max(int pos) const; |
1473 | inline isl::pw_aff dim_min(int pos) const; |
1474 | inline isl::basic_set domain() const; |
1475 | inline isl::map domain_factor_domain() const; |
1476 | inline isl::map domain_factor_range() const; |
1477 | inline isl::map domain_map() const; |
1478 | inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const; |
1479 | inline isl::map domain_product(const isl::map &map2) const; |
1480 | inline isl::union_map domain_product(const isl::union_map &umap2) const; |
1481 | inline class size domain_tuple_dim() const; |
1482 | inline isl::id domain_tuple_id() const; |
1483 | inline isl::map eq_at(const isl::multi_pw_aff &mpa) const; |
1484 | inline isl::union_map eq_at(const isl::multi_union_pw_aff &mupa) const; |
1485 | static inline isl::basic_map equal(isl::space space, unsigned int n_equal); |
1486 | inline isl::basic_map equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const; |
1487 | inline boolean every_map(const std::function<boolean(isl::map)> &test) const; |
1488 | inline isl::map extract_map(const isl::space &space) const; |
1489 | inline isl::map factor_domain() const; |
1490 | inline isl::map factor_range() const; |
1491 | inline isl::basic_map fix_si(isl::dim type, unsigned int pos, int value) const; |
1492 | inline isl::basic_map fix_val(isl::dim type, unsigned int pos, isl::val v) const; |
1493 | inline isl::basic_map fix_val(isl::dim type, unsigned int pos, long v) const; |
1494 | inline isl::union_map fixed_power(const isl::val &exp) const; |
1495 | inline isl::union_map fixed_power(long exp) const; |
1496 | inline isl::map flat_range_product(const isl::map &map2) const; |
1497 | inline isl::union_map flat_range_product(const isl::union_map &umap2) const; |
1498 | inline isl::basic_map flatten() const; |
1499 | inline isl::basic_map flatten_domain() const; |
1500 | inline isl::basic_map flatten_range() const; |
1501 | inline isl::map floordiv_val(const isl::val &d) const; |
1502 | inline isl::map floordiv_val(long d) const; |
1503 | inline stat foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const; |
1504 | inline stat foreach_map(const std::function<stat(isl::map)> &fn) const; |
1505 | static inline isl::basic_map from_aff(isl::aff aff); |
1506 | static inline isl::basic_map from_domain_and_range(isl::basic_set domain, isl::basic_set range); |
1507 | inline isl::basic_map gist(isl::basic_map context) const; |
1508 | inline isl::map gist(const isl::map &context) const; |
1509 | inline isl::union_map gist(const isl::union_map &context) const; |
1510 | inline isl::map gist_domain(const isl::set &context) const; |
1511 | inline isl::union_map gist_domain(const isl::union_set &uset) const; |
1512 | inline isl::map gist_params(const isl::set &context) const; |
1513 | inline isl::union_map gist_range(const isl::union_set &uset) const; |
1514 | inline boolean has_domain_tuple_id() const; |
1515 | inline boolean has_equal_space(const isl::map &map2) const; |
1516 | inline boolean has_range_tuple_id() const; |
1517 | inline boolean has_tuple_id(isl::dim type) const; |
1518 | inline boolean has_tuple_name(isl::dim type) const; |
1519 | inline isl::basic_map intersect(isl::basic_map bmap2) const; |
1520 | inline isl::map intersect(const isl::map &map2) const; |
1521 | inline isl::union_map intersect(const isl::union_map &umap2) const; |
1522 | inline isl::basic_map intersect_domain(isl::basic_set bset) const; |
1523 | inline isl::map intersect_domain(const isl::set &set) const; |
1524 | inline isl::union_map intersect_domain(const isl::space &space) const; |
1525 | inline isl::union_map intersect_domain(const isl::union_set &uset) const; |
1526 | inline isl::basic_map intersect_domain(const isl::point &bset) const; |
1527 | inline isl::map intersect_domain_factor_domain(const isl::map &factor) const; |
1528 | inline isl::union_map intersect_domain_factor_domain(const isl::union_map &factor) const; |
1529 | inline isl::map intersect_domain_factor_range(const isl::map &factor) const; |
1530 | inline isl::union_map intersect_domain_factor_range(const isl::union_map &factor) const; |
1531 | inline isl::map intersect_params(const isl::set ¶ms) const; |
1532 | inline isl::basic_map intersect_range(isl::basic_set bset) const; |
1533 | inline isl::map intersect_range(const isl::set &set) const; |
1534 | inline isl::union_map intersect_range(const isl::space &space) const; |
1535 | inline isl::union_map intersect_range(const isl::union_set &uset) const; |
1536 | inline isl::basic_map intersect_range(const isl::point &bset) const; |
1537 | inline isl::map intersect_range_factor_domain(const isl::map &factor) const; |
1538 | inline isl::union_map intersect_range_factor_domain(const isl::union_map &factor) const; |
1539 | inline isl::map intersect_range_factor_range(const isl::map &factor) const; |
1540 | inline isl::union_map intersect_range_factor_range(const isl::union_map &factor) const; |
1541 | inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const; |
1542 | inline boolean is_bijective() const; |
1543 | inline boolean is_disjoint(const isl::map &map2) const; |
1544 | inline boolean is_disjoint(const isl::union_map &umap2) const; |
1545 | inline boolean is_empty() const; |
1546 | inline boolean is_equal(const isl::basic_map &bmap2) const; |
1547 | inline boolean is_equal(const isl::map &map2) const; |
1548 | inline boolean is_equal(const isl::union_map &umap2) const; |
1549 | inline boolean is_injective() const; |
1550 | inline boolean is_single_valued() const; |
1551 | inline boolean is_strict_subset(const isl::map &map2) const; |
1552 | inline boolean is_strict_subset(const isl::union_map &umap2) const; |
1553 | inline boolean is_subset(const isl::basic_map &bmap2) const; |
1554 | inline boolean is_subset(const isl::map &map2) const; |
1555 | inline boolean is_subset(const isl::union_map &umap2) const; |
1556 | inline boolean isa_map() const; |
1557 | inline isl::map lex_ge_at(const isl::multi_pw_aff &mpa) const; |
1558 | inline isl::map lex_gt_at(const isl::multi_pw_aff &mpa) const; |
1559 | inline isl::map lex_le_at(const isl::multi_pw_aff &mpa) const; |
1560 | inline isl::map lex_lt_at(const isl::multi_pw_aff &mpa) const; |
1561 | inline isl::map lexmax() const; |
1562 | inline isl::pw_multi_aff lexmax_pw_multi_aff() const; |
1563 | inline isl::map lexmin() const; |
1564 | inline isl::pw_multi_aff lexmin_pw_multi_aff() const; |
1565 | inline isl::map lower_bound(const isl::multi_pw_aff &lower) const; |
1566 | inline isl::map lower_bound_si(isl::dim type, unsigned int pos, int value) const; |
1567 | inline isl::map_list map_list() const; |
1568 | inline isl::multi_pw_aff max_multi_pw_aff() const; |
1569 | inline isl::multi_pw_aff min_multi_pw_aff() const; |
1570 | inline isl::map move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const; |
1571 | inline class size n_basic_map() const; |
1572 | inline isl::map order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const; |
1573 | inline isl::set params() const; |
1574 | inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const; |
1575 | inline isl::basic_map polyhedral_hull() const; |
1576 | inline isl::map preimage_domain(const isl::multi_aff &ma) const; |
1577 | inline isl::map preimage_domain(const isl::multi_pw_aff &mpa) const; |
1578 | inline isl::map preimage_domain(const isl::pw_multi_aff &pma) const; |
1579 | inline isl::union_map preimage_domain(const isl::union_pw_multi_aff &upma) const; |
1580 | inline isl::map preimage_range(const isl::multi_aff &ma) const; |
1581 | inline isl::map preimage_range(const isl::pw_multi_aff &pma) const; |
1582 | inline isl::union_map preimage_range(const isl::union_pw_multi_aff &upma) const; |
1583 | inline isl::map product(const isl::map &map2) const; |
1584 | inline isl::union_map product(const isl::union_map &umap2) const; |
1585 | inline isl::map project_out(isl::dim type, unsigned int first, unsigned int n) const; |
1586 | inline isl::map project_out_all_params() const; |
1587 | inline isl::set range() const; |
1588 | inline isl::map range_factor_domain() const; |
1589 | inline isl::map range_factor_range() const; |
1590 | inline isl::fixed_box range_lattice_tile() const; |
1591 | inline isl::map range_map() const; |
1592 | inline isl::map range_product(const isl::map &map2) const; |
1593 | inline isl::union_map range_product(const isl::union_map &umap2) const; |
1594 | inline isl::map range_reverse() const; |
1595 | inline isl::fixed_box range_simple_fixed_box_hull() const; |
1596 | inline class size range_tuple_dim() const; |
1597 | inline isl::id range_tuple_id() const; |
1598 | inline isl::basic_map reverse() const; |
1599 | inline isl::basic_map sample() const; |
1600 | inline isl::map set_domain_tuple(const isl::id &id) const; |
1601 | inline isl::map set_domain_tuple(const std::string &id) const; |
1602 | inline isl::map set_range_tuple(const isl::id &id) const; |
1603 | inline isl::map set_range_tuple(const std::string &id) const; |
1604 | inline isl::map set_tuple_id(isl::dim type, const isl::id &id) const; |
1605 | inline isl::map set_tuple_id(isl::dim type, const std::string &id) const; |
1606 | inline isl::space space() const; |
1607 | inline isl::map subtract(const isl::map &map2) const; |
1608 | inline isl::union_map subtract(const isl::union_map &umap2) const; |
1609 | inline isl::union_map subtract_domain(const isl::union_set &dom) const; |
1610 | inline isl::union_map subtract_range(const isl::union_set &dom) const; |
1611 | inline isl::map sum(const isl::map &map2) const; |
1612 | inline isl::basic_map_list to_list() const; |
1613 | inline isl::union_map to_union_map() const; |
1614 | inline isl::id tuple_id(isl::dim type) const; |
1615 | inline isl::map uncurry() const; |
1616 | inline isl::map unite(isl::basic_map bmap2) const; |
1617 | inline isl::map unite(const isl::map &map2) const; |
1618 | inline isl::union_map unite(const isl::union_map &umap2) const; |
1619 | static inline isl::basic_map universe(isl::space space); |
1620 | inline isl::basic_map unshifted_simple_hull() const; |
1621 | inline isl::map upper_bound(const isl::multi_pw_aff &upper) const; |
1622 | inline isl::map upper_bound_si(isl::dim type, unsigned int pos, int value) const; |
1623 | inline isl::set wrap() const; |
1624 | inline isl::map zip() const; |
1625 | }; |
1626 | |
1627 | // declarations for isl::basic_map_list |
1628 | inline basic_map_list manage(__isl_take isl_basic_map_list *ptr); |
1629 | inline basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr); |
1630 | |
1631 | class basic_map_list { |
1632 | friend inline basic_map_list manage(__isl_take isl_basic_map_list *ptr); |
1633 | friend inline basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr); |
1634 | |
1635 | protected: |
1636 | isl_basic_map_list *ptr = nullptr; |
1637 | |
1638 | inline explicit basic_map_list(__isl_take isl_basic_map_list *ptr); |
1639 | |
1640 | public: |
1641 | inline /* implicit */ basic_map_list(); |
1642 | inline /* implicit */ basic_map_list(const basic_map_list &obj); |
1643 | inline explicit basic_map_list(isl::ctx ctx, int n); |
1644 | inline explicit basic_map_list(isl::basic_map el); |
1645 | inline basic_map_list &operator=(basic_map_list obj); |
1646 | inline ~basic_map_list(); |
1647 | inline __isl_give isl_basic_map_list *copy() const &; |
1648 | inline __isl_give isl_basic_map_list *copy() && = delete; |
1649 | inline __isl_keep isl_basic_map_list *get() const; |
1650 | inline __isl_give isl_basic_map_list *release(); |
1651 | inline bool is_null() const; |
1652 | inline isl::ctx ctx() const; |
1653 | |
1654 | inline isl::basic_map_list add(isl::basic_map el) const; |
1655 | inline isl::basic_map at(int index) const; |
1656 | inline isl::basic_map get_at(int index) const; |
1657 | inline isl::basic_map_list clear() const; |
1658 | inline isl::basic_map_list concat(isl::basic_map_list list2) const; |
1659 | inline isl::basic_map_list drop(unsigned int first, unsigned int n) const; |
1660 | inline stat foreach(const std::function<stat(isl::basic_map)> &fn) const; |
1661 | inline isl::basic_map_list insert(unsigned int pos, isl::basic_map el) const; |
1662 | inline class size size() const; |
1663 | }; |
1664 | |
1665 | // declarations for isl::basic_set |
1666 | inline basic_set manage(__isl_take isl_basic_set *ptr); |
1667 | inline basic_set manage_copy(__isl_keep isl_basic_set *ptr); |
1668 | |
1669 | class basic_set { |
1670 | friend inline basic_set manage(__isl_take isl_basic_set *ptr); |
1671 | friend inline basic_set manage_copy(__isl_keep isl_basic_set *ptr); |
1672 | |
1673 | protected: |
1674 | isl_basic_set *ptr = nullptr; |
1675 | |
1676 | inline explicit basic_set(__isl_take isl_basic_set *ptr); |
1677 | |
1678 | public: |
1679 | inline /* implicit */ basic_set(); |
1680 | inline /* implicit */ basic_set(const basic_set &obj); |
1681 | inline /* implicit */ basic_set(isl::point pnt); |
1682 | inline explicit basic_set(isl::ctx ctx, const std::string &str); |
1683 | inline basic_set &operator=(basic_set obj); |
1684 | inline ~basic_set(); |
1685 | inline __isl_give isl_basic_set *copy() const &; |
1686 | inline __isl_give isl_basic_set *copy() && = delete; |
1687 | inline __isl_keep isl_basic_set *get() const; |
1688 | inline __isl_give isl_basic_set *release(); |
1689 | inline bool is_null() const; |
1690 | inline isl::ctx ctx() const; |
1691 | |
1692 | inline isl::set add_constraint(const isl::constraint &constraint) const; |
1693 | inline isl::set add_dims(isl::dim type, unsigned int n) const; |
1694 | inline isl::basic_set affine_hull() const; |
1695 | inline isl::set align_params(const isl::space &model) const; |
1696 | inline isl::basic_set apply(isl::basic_map bmap) const; |
1697 | inline isl::set apply(const isl::map &map) const; |
1698 | inline isl::union_set apply(const isl::union_map &umap) const; |
1699 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
1700 | inline isl::set as_set() const; |
1701 | inline isl::basic_set_list basic_set_list() const; |
1702 | inline isl::set bind(const isl::multi_id &tuple) const; |
1703 | inline isl::set coalesce() const; |
1704 | inline isl::set complement() const; |
1705 | inline isl::union_set compute_divs() const; |
1706 | inline boolean contains(const isl::space &space) const; |
1707 | inline isl::basic_set convex_hull() const; |
1708 | inline isl::basic_set detect_equalities() const; |
1709 | inline class size dim(isl::dim type) const; |
1710 | inline boolean dim_has_any_lower_bound(isl::dim type, unsigned int pos) const; |
1711 | inline isl::id dim_id(isl::dim type, unsigned int pos) const; |
1712 | inline isl::pw_aff dim_max(int pos) const; |
1713 | inline isl::val dim_max_val(int pos) const; |
1714 | inline isl::pw_aff dim_min(int pos) const; |
1715 | inline isl::val dim_min_val(int pos) const; |
1716 | inline std::string dim_name(isl::dim type, unsigned int pos) const; |
1717 | inline isl::aff div(int pos) const; |
1718 | inline isl::aff get_div(int pos) const; |
1719 | inline isl::set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const; |
1720 | inline isl::set eliminate(isl::dim type, unsigned int first, unsigned int n) const; |
1721 | inline boolean every_set(const std::function<boolean(isl::set)> &test) const; |
1722 | inline isl::set extract_set(const isl::space &space) const; |
1723 | inline int find_dim_by_id(isl::dim type, const isl::id &id) const; |
1724 | inline int find_dim_by_id(isl::dim type, const std::string &id) const; |
1725 | inline isl::basic_set fix_si(isl::dim type, unsigned int pos, int value) const; |
1726 | inline isl::basic_set fix_val(isl::dim type, unsigned int pos, isl::val v) const; |
1727 | inline isl::basic_set fix_val(isl::dim type, unsigned int pos, long v) const; |
1728 | inline isl::basic_set flatten() const; |
1729 | inline stat foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const; |
1730 | inline stat foreach_point(const std::function<stat(isl::point)> &fn) const; |
1731 | inline stat foreach_set(const std::function<stat(isl::set)> &fn) const; |
1732 | inline isl::basic_set gist(isl::basic_set context) const; |
1733 | inline isl::set gist(const isl::set &context) const; |
1734 | inline isl::union_set gist(const isl::union_set &context) const; |
1735 | inline isl::basic_set gist(const isl::point &context) const; |
1736 | inline isl::set gist_params(const isl::set &context) const; |
1737 | inline boolean has_equal_space(const isl::set &set2) const; |
1738 | inline isl::map identity() const; |
1739 | inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const; |
1740 | inline isl::pw_aff indicator_function() const; |
1741 | inline isl::set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const; |
1742 | inline isl::map insert_domain(const isl::space &domain) const; |
1743 | inline isl::basic_set intersect(isl::basic_set bset2) const; |
1744 | inline isl::set intersect(const isl::set &set2) const; |
1745 | inline isl::union_set intersect(const isl::union_set &uset2) const; |
1746 | inline isl::basic_set intersect(const isl::point &bset2) const; |
1747 | inline isl::basic_set intersect_params(isl::basic_set bset2) const; |
1748 | inline isl::set intersect_params(const isl::set ¶ms) const; |
1749 | inline isl::basic_set intersect_params(const isl::point &bset2) const; |
1750 | inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const; |
1751 | inline boolean involves_locals() const; |
1752 | inline boolean is_bounded() const; |
1753 | inline boolean is_disjoint(const isl::set &set2) const; |
1754 | inline boolean is_disjoint(const isl::union_set &uset2) const; |
1755 | inline boolean is_empty() const; |
1756 | inline boolean is_equal(const isl::basic_set &bset2) const; |
1757 | inline boolean is_equal(const isl::set &set2) const; |
1758 | inline boolean is_equal(const isl::union_set &uset2) const; |
1759 | inline boolean is_equal(const isl::point &bset2) const; |
1760 | inline boolean is_params() const; |
1761 | inline boolean is_singleton() const; |
1762 | inline boolean is_strict_subset(const isl::set &set2) const; |
1763 | inline boolean is_strict_subset(const isl::union_set &uset2) const; |
1764 | inline boolean is_subset(const isl::basic_set &bset2) const; |
1765 | inline boolean is_subset(const isl::set &set2) const; |
1766 | inline boolean is_subset(const isl::union_set &uset2) const; |
1767 | inline boolean is_subset(const isl::point &bset2) const; |
1768 | inline boolean is_wrapping() const; |
1769 | inline boolean isa_set() const; |
1770 | inline isl::set lexmax() const; |
1771 | inline isl::pw_multi_aff lexmax_pw_multi_aff() const; |
1772 | inline isl::set lexmin() const; |
1773 | inline isl::pw_multi_aff lexmin_pw_multi_aff() const; |
1774 | inline isl::set lower_bound(const isl::multi_pw_aff &lower) const; |
1775 | inline isl::set lower_bound(const isl::multi_val &lower) const; |
1776 | inline isl::set lower_bound_si(isl::dim type, unsigned int pos, int value) const; |
1777 | inline isl::set lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const; |
1778 | inline isl::set lower_bound_val(isl::dim type, unsigned int pos, long value) const; |
1779 | inline isl::multi_pw_aff max_multi_pw_aff() const; |
1780 | inline isl::val max_val(const isl::aff &obj) const; |
1781 | inline isl::multi_pw_aff min_multi_pw_aff() const; |
1782 | inline isl::val min_val(const isl::aff &obj) const; |
1783 | inline class size n_basic_set() const; |
1784 | inline isl::basic_set params() const; |
1785 | inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const; |
1786 | inline isl::multi_val plain_multi_val_if_fixed() const; |
1787 | inline isl::basic_set polyhedral_hull() const; |
1788 | inline isl::set preimage(const isl::multi_aff &ma) const; |
1789 | inline isl::set preimage(const isl::multi_pw_aff &mpa) const; |
1790 | inline isl::set preimage(const isl::pw_multi_aff &pma) const; |
1791 | inline isl::union_set preimage(const isl::union_pw_multi_aff &upma) const; |
1792 | inline isl::set product(const isl::set &set2) const; |
1793 | inline isl::basic_set project_out(isl::dim type, unsigned int first, unsigned int n) const; |
1794 | inline isl::set project_out_all_params() const; |
1795 | inline isl::set project_out_param(const isl::id &id) const; |
1796 | inline isl::set project_out_param(const std::string &id) const; |
1797 | inline isl::set project_out_param(const isl::id_list &list) const; |
1798 | inline isl::pw_multi_aff pw_multi_aff_on_domain(const isl::multi_val &mv) const; |
1799 | inline isl::set remove_dims(isl::dim type, unsigned int first, unsigned int n) const; |
1800 | inline isl::set remove_divs() const; |
1801 | inline isl::set remove_redundancies() const; |
1802 | inline isl::set reset_tuple_id() const; |
1803 | inline isl::basic_set sample() const; |
1804 | inline isl::point sample_point() const; |
1805 | inline isl::set set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const; |
1806 | inline isl::set set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const; |
1807 | inline isl::set_list set_list() const; |
1808 | inline isl::set set_tuple_id(const isl::id &id) const; |
1809 | inline isl::set set_tuple_id(const std::string &id) const; |
1810 | inline isl::fixed_box simple_fixed_box_hull() const; |
1811 | inline isl::basic_set simple_hull() const; |
1812 | inline isl::space space() const; |
1813 | inline isl::space get_space() const; |
1814 | inline isl::val stride(int pos) const; |
1815 | inline isl::set subtract(const isl::set &set2) const; |
1816 | inline isl::union_set subtract(const isl::union_set &uset2) const; |
1817 | inline isl::basic_set_list to_list() const; |
1818 | inline isl::set to_set() const; |
1819 | inline isl::union_set to_union_set() const; |
1820 | inline isl::map translation() const; |
1821 | inline class size tuple_dim() const; |
1822 | inline isl::id tuple_id() const; |
1823 | inline std::string tuple_name() const; |
1824 | inline isl::set unbind_params(const isl::multi_id &tuple) const; |
1825 | inline isl::map unbind_params_insert_domain(const isl::multi_id &domain) const; |
1826 | inline isl::set unite(isl::basic_set bset2) const; |
1827 | inline isl::set unite(const isl::set &set2) const; |
1828 | inline isl::union_set unite(const isl::union_set &uset2) const; |
1829 | inline isl::set unite(const isl::point &bset2) const; |
1830 | static inline isl::basic_set universe(isl::space space); |
1831 | inline isl::basic_set unshifted_simple_hull() const; |
1832 | inline isl::map unwrap() const; |
1833 | inline isl::set upper_bound(const isl::multi_pw_aff &upper) const; |
1834 | inline isl::set upper_bound(const isl::multi_val &upper) const; |
1835 | inline isl::set upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const; |
1836 | inline isl::set upper_bound_val(isl::dim type, unsigned int pos, long value) const; |
1837 | }; |
1838 | |
1839 | // declarations for isl::basic_set_list |
1840 | inline basic_set_list manage(__isl_take isl_basic_set_list *ptr); |
1841 | inline basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr); |
1842 | |
1843 | class basic_set_list { |
1844 | friend inline basic_set_list manage(__isl_take isl_basic_set_list *ptr); |
1845 | friend inline basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr); |
1846 | |
1847 | protected: |
1848 | isl_basic_set_list *ptr = nullptr; |
1849 | |
1850 | inline explicit basic_set_list(__isl_take isl_basic_set_list *ptr); |
1851 | |
1852 | public: |
1853 | inline /* implicit */ basic_set_list(); |
1854 | inline /* implicit */ basic_set_list(const basic_set_list &obj); |
1855 | inline explicit basic_set_list(isl::ctx ctx, int n); |
1856 | inline explicit basic_set_list(isl::basic_set el); |
1857 | inline basic_set_list &operator=(basic_set_list obj); |
1858 | inline ~basic_set_list(); |
1859 | inline __isl_give isl_basic_set_list *copy() const &; |
1860 | inline __isl_give isl_basic_set_list *copy() && = delete; |
1861 | inline __isl_keep isl_basic_set_list *get() const; |
1862 | inline __isl_give isl_basic_set_list *release(); |
1863 | inline bool is_null() const; |
1864 | inline isl::ctx ctx() const; |
1865 | |
1866 | inline isl::basic_set_list add(isl::basic_set el) const; |
1867 | inline isl::basic_set at(int index) const; |
1868 | inline isl::basic_set get_at(int index) const; |
1869 | inline isl::basic_set_list clear() const; |
1870 | inline isl::basic_set_list concat(isl::basic_set_list list2) const; |
1871 | inline isl::basic_set_list drop(unsigned int first, unsigned int n) const; |
1872 | inline stat foreach(const std::function<stat(isl::basic_set)> &fn) const; |
1873 | inline isl::basic_set_list insert(unsigned int pos, isl::basic_set el) const; |
1874 | inline class size size() const; |
1875 | }; |
1876 | |
1877 | // declarations for isl::constraint |
1878 | inline constraint manage(__isl_take isl_constraint *ptr); |
1879 | inline constraint manage_copy(__isl_keep isl_constraint *ptr); |
1880 | |
1881 | class constraint { |
1882 | friend inline constraint manage(__isl_take isl_constraint *ptr); |
1883 | friend inline constraint manage_copy(__isl_keep isl_constraint *ptr); |
1884 | |
1885 | protected: |
1886 | isl_constraint *ptr = nullptr; |
1887 | |
1888 | inline explicit constraint(__isl_take isl_constraint *ptr); |
1889 | |
1890 | public: |
1891 | inline /* implicit */ constraint(); |
1892 | inline /* implicit */ constraint(const constraint &obj); |
1893 | inline constraint &operator=(constraint obj); |
1894 | inline ~constraint(); |
1895 | inline __isl_give isl_constraint *copy() const &; |
1896 | inline __isl_give isl_constraint *copy() && = delete; |
1897 | inline __isl_keep isl_constraint *get() const; |
1898 | inline __isl_give isl_constraint *release(); |
1899 | inline bool is_null() const; |
1900 | inline isl::ctx ctx() const; |
1901 | |
1902 | static inline isl::constraint alloc_equality(isl::local_space ls); |
1903 | static inline isl::constraint alloc_inequality(isl::local_space ls); |
1904 | inline isl::constraint set_coefficient_si(isl::dim type, int pos, int v) const; |
1905 | inline isl::constraint set_constant_si(int v) const; |
1906 | inline isl::constraint set_constant_val(isl::val v) const; |
1907 | inline isl::constraint set_constant_val(long v) const; |
1908 | }; |
1909 | |
1910 | // declarations for isl::fixed_box |
1911 | inline fixed_box manage(__isl_take isl_fixed_box *ptr); |
1912 | inline fixed_box manage_copy(__isl_keep isl_fixed_box *ptr); |
1913 | |
1914 | class fixed_box { |
1915 | friend inline fixed_box manage(__isl_take isl_fixed_box *ptr); |
1916 | friend inline fixed_box manage_copy(__isl_keep isl_fixed_box *ptr); |
1917 | |
1918 | protected: |
1919 | isl_fixed_box *ptr = nullptr; |
1920 | |
1921 | inline explicit fixed_box(__isl_take isl_fixed_box *ptr); |
1922 | |
1923 | public: |
1924 | inline /* implicit */ fixed_box(); |
1925 | inline /* implicit */ fixed_box(const fixed_box &obj); |
1926 | inline fixed_box &operator=(fixed_box obj); |
1927 | inline ~fixed_box(); |
1928 | inline __isl_give isl_fixed_box *copy() const &; |
1929 | inline __isl_give isl_fixed_box *copy() && = delete; |
1930 | inline __isl_keep isl_fixed_box *get() const; |
1931 | inline __isl_give isl_fixed_box *release(); |
1932 | inline bool is_null() const; |
1933 | inline isl::ctx ctx() const; |
1934 | |
1935 | inline boolean is_valid() const; |
1936 | inline isl::multi_aff offset() const; |
1937 | inline isl::multi_aff get_offset() const; |
1938 | inline isl::multi_val size() const; |
1939 | inline isl::multi_val get_size() const; |
1940 | inline isl::space space() const; |
1941 | inline isl::space get_space() const; |
1942 | }; |
1943 | |
1944 | // declarations for isl::id |
1945 | inline id manage(__isl_take isl_id *ptr); |
1946 | inline id manage_copy(__isl_keep isl_id *ptr); |
1947 | |
1948 | class id { |
1949 | friend inline id manage(__isl_take isl_id *ptr); |
1950 | friend inline id manage_copy(__isl_keep isl_id *ptr); |
1951 | |
1952 | protected: |
1953 | isl_id *ptr = nullptr; |
1954 | |
1955 | inline explicit id(__isl_take isl_id *ptr); |
1956 | |
1957 | public: |
1958 | inline /* implicit */ id(); |
1959 | inline /* implicit */ id(const id &obj); |
1960 | inline explicit id(isl::ctx ctx, const std::string &str); |
1961 | inline id &operator=(id obj); |
1962 | inline ~id(); |
1963 | inline __isl_give isl_id *copy() const &; |
1964 | inline __isl_give isl_id *copy() && = delete; |
1965 | inline __isl_keep isl_id *get() const; |
1966 | inline __isl_give isl_id *release(); |
1967 | inline bool is_null() const; |
1968 | inline isl::ctx ctx() const; |
1969 | |
1970 | static inline isl::id alloc(isl::ctx ctx, const std::string &name, void * user); |
1971 | inline std::string name() const; |
1972 | inline std::string get_name() const; |
1973 | inline isl::id_list to_list() const; |
1974 | inline void * user() const; |
1975 | inline void * get_user() const; |
1976 | }; |
1977 | |
1978 | // declarations for isl::id_list |
1979 | inline id_list manage(__isl_take isl_id_list *ptr); |
1980 | inline id_list manage_copy(__isl_keep isl_id_list *ptr); |
1981 | |
1982 | class id_list { |
1983 | friend inline id_list manage(__isl_take isl_id_list *ptr); |
1984 | friend inline id_list manage_copy(__isl_keep isl_id_list *ptr); |
1985 | |
1986 | protected: |
1987 | isl_id_list *ptr = nullptr; |
1988 | |
1989 | inline explicit id_list(__isl_take isl_id_list *ptr); |
1990 | |
1991 | public: |
1992 | inline /* implicit */ id_list(); |
1993 | inline /* implicit */ id_list(const id_list &obj); |
1994 | inline explicit id_list(isl::ctx ctx, int n); |
1995 | inline explicit id_list(isl::id el); |
1996 | inline explicit id_list(isl::ctx ctx, const std::string &str); |
1997 | inline id_list &operator=(id_list obj); |
1998 | inline ~id_list(); |
1999 | inline __isl_give isl_id_list *copy() const &; |
2000 | inline __isl_give isl_id_list *copy() && = delete; |
2001 | inline __isl_keep isl_id_list *get() const; |
2002 | inline __isl_give isl_id_list *release(); |
2003 | inline bool is_null() const; |
2004 | inline isl::ctx ctx() const; |
2005 | |
2006 | inline isl::id_list add(isl::id el) const; |
2007 | inline isl::id_list add(const std::string &el) const; |
2008 | inline isl::id at(int index) const; |
2009 | inline isl::id get_at(int index) const; |
2010 | inline isl::id_list clear() const; |
2011 | inline isl::id_list concat(isl::id_list list2) const; |
2012 | inline isl::id_list drop(unsigned int first, unsigned int n) const; |
2013 | inline stat foreach(const std::function<stat(isl::id)> &fn) const; |
2014 | inline isl::id_list insert(unsigned int pos, isl::id el) const; |
2015 | inline isl::id_list insert(unsigned int pos, const std::string &el) const; |
2016 | inline class size size() const; |
2017 | }; |
2018 | |
2019 | // declarations for isl::id_to_ast_expr |
2020 | inline id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr); |
2021 | inline id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr); |
2022 | |
2023 | class id_to_ast_expr { |
2024 | friend inline id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr); |
2025 | friend inline id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr); |
2026 | |
2027 | protected: |
2028 | isl_id_to_ast_expr *ptr = nullptr; |
2029 | |
2030 | inline explicit id_to_ast_expr(__isl_take isl_id_to_ast_expr *ptr); |
2031 | |
2032 | public: |
2033 | inline /* implicit */ id_to_ast_expr(); |
2034 | inline /* implicit */ id_to_ast_expr(const id_to_ast_expr &obj); |
2035 | inline id_to_ast_expr &operator=(id_to_ast_expr obj); |
2036 | inline ~id_to_ast_expr(); |
2037 | inline __isl_give isl_id_to_ast_expr *copy() const &; |
2038 | inline __isl_give isl_id_to_ast_expr *copy() && = delete; |
2039 | inline __isl_keep isl_id_to_ast_expr *get() const; |
2040 | inline __isl_give isl_id_to_ast_expr *release(); |
2041 | inline bool is_null() const; |
2042 | inline isl::ctx ctx() const; |
2043 | |
2044 | static inline isl::id_to_ast_expr alloc(isl::ctx ctx, int min_size); |
2045 | inline isl::id_to_ast_expr set(isl::id key, isl::ast_expr val) const; |
2046 | inline isl::id_to_ast_expr set(const std::string &key, const isl::ast_expr &val) const; |
2047 | }; |
2048 | |
2049 | // declarations for isl::local_space |
2050 | inline local_space manage(__isl_take isl_local_space *ptr); |
2051 | inline local_space manage_copy(__isl_keep isl_local_space *ptr); |
2052 | |
2053 | class local_space { |
2054 | friend inline local_space manage(__isl_take isl_local_space *ptr); |
2055 | friend inline local_space manage_copy(__isl_keep isl_local_space *ptr); |
2056 | |
2057 | protected: |
2058 | isl_local_space *ptr = nullptr; |
2059 | |
2060 | inline explicit local_space(__isl_take isl_local_space *ptr); |
2061 | |
2062 | public: |
2063 | inline /* implicit */ local_space(); |
2064 | inline /* implicit */ local_space(const local_space &obj); |
2065 | inline explicit local_space(isl::space space); |
2066 | inline local_space &operator=(local_space obj); |
2067 | inline ~local_space(); |
2068 | inline __isl_give isl_local_space *copy() const &; |
2069 | inline __isl_give isl_local_space *copy() && = delete; |
2070 | inline __isl_keep isl_local_space *get() const; |
2071 | inline __isl_give isl_local_space *release(); |
2072 | inline bool is_null() const; |
2073 | inline isl::ctx ctx() const; |
2074 | |
2075 | }; |
2076 | |
2077 | // declarations for isl::map |
2078 | inline map manage(__isl_take isl_map *ptr); |
2079 | inline map manage_copy(__isl_keep isl_map *ptr); |
2080 | |
2081 | class map { |
2082 | friend inline map manage(__isl_take isl_map *ptr); |
2083 | friend inline map manage_copy(__isl_keep isl_map *ptr); |
2084 | |
2085 | protected: |
2086 | isl_map *ptr = nullptr; |
2087 | |
2088 | inline explicit map(__isl_take isl_map *ptr); |
2089 | |
2090 | public: |
2091 | inline /* implicit */ map(); |
2092 | inline /* implicit */ map(const map &obj); |
2093 | inline /* implicit */ map(isl::basic_map bmap); |
2094 | inline explicit map(isl::ctx ctx, const std::string &str); |
2095 | inline map &operator=(map obj); |
2096 | inline ~map(); |
2097 | inline __isl_give isl_map *copy() const &; |
2098 | inline __isl_give isl_map *copy() && = delete; |
2099 | inline __isl_keep isl_map *get() const; |
2100 | inline __isl_give isl_map *release(); |
2101 | inline bool is_null() const; |
2102 | inline isl::ctx ctx() const; |
2103 | |
2104 | inline isl::map add_constraint(isl::constraint constraint) const; |
2105 | inline isl::map add_dims(isl::dim type, unsigned int n) const; |
2106 | inline isl::basic_map affine_hull() const; |
2107 | inline isl::map align_params(isl::space model) const; |
2108 | inline isl::map apply_domain(isl::map map2) const; |
2109 | inline isl::union_map apply_domain(const isl::union_map &umap2) const; |
2110 | inline isl::map apply_domain(const isl::basic_map &map2) const; |
2111 | inline isl::map apply_range(isl::map map2) const; |
2112 | inline isl::union_map apply_range(const isl::union_map &umap2) const; |
2113 | inline isl::map apply_range(const isl::basic_map &map2) const; |
2114 | inline isl::map as_map() const; |
2115 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
2116 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
2117 | inline isl::union_pw_multi_aff as_union_pw_multi_aff() const; |
2118 | inline isl::basic_map_list basic_map_list() const; |
2119 | inline isl::basic_map_list get_basic_map_list() const; |
2120 | inline isl::set bind_domain(isl::multi_id tuple) const; |
2121 | inline isl::set bind_range(isl::multi_id tuple) const; |
2122 | inline boolean can_curry() const; |
2123 | inline isl::map coalesce() const; |
2124 | inline isl::map complement() const; |
2125 | inline isl::union_map compute_divs() const; |
2126 | inline isl::map curry() const; |
2127 | inline isl::set deltas() const; |
2128 | inline isl::map detect_equalities() const; |
2129 | inline class size dim(isl::dim type) const; |
2130 | inline isl::pw_aff dim_max(int pos) const; |
2131 | inline isl::pw_aff dim_min(int pos) const; |
2132 | inline isl::set domain() const; |
2133 | inline isl::map domain_factor_domain() const; |
2134 | inline isl::map domain_factor_range() const; |
2135 | inline isl::map domain_map() const; |
2136 | inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const; |
2137 | inline isl::map domain_product(isl::map map2) const; |
2138 | inline isl::union_map domain_product(const isl::union_map &umap2) const; |
2139 | inline isl::map domain_product(const isl::basic_map &map2) const; |
2140 | inline class size domain_tuple_dim() const; |
2141 | inline isl::id domain_tuple_id() const; |
2142 | inline isl::id get_domain_tuple_id() const; |
2143 | static inline isl::map empty(isl::space space); |
2144 | inline isl::map eq_at(isl::multi_pw_aff mpa) const; |
2145 | inline isl::union_map eq_at(const isl::multi_union_pw_aff &mupa) const; |
2146 | inline isl::map eq_at(const isl::aff &mpa) const; |
2147 | inline isl::map eq_at(const isl::multi_aff &mpa) const; |
2148 | inline isl::map eq_at(const isl::pw_aff &mpa) const; |
2149 | inline isl::map eq_at(const isl::pw_multi_aff &mpa) const; |
2150 | inline isl::map equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const; |
2151 | inline boolean every_map(const std::function<boolean(isl::map)> &test) const; |
2152 | inline isl::map extract_map(const isl::space &space) const; |
2153 | inline isl::map factor_domain() const; |
2154 | inline isl::map factor_range() const; |
2155 | inline isl::map fix_si(isl::dim type, unsigned int pos, int value) const; |
2156 | inline isl::union_map fixed_power(const isl::val &exp) const; |
2157 | inline isl::union_map fixed_power(long exp) const; |
2158 | inline isl::map flat_range_product(isl::map map2) const; |
2159 | inline isl::union_map flat_range_product(const isl::union_map &umap2) const; |
2160 | inline isl::map flat_range_product(const isl::basic_map &map2) const; |
2161 | inline isl::map flatten() const; |
2162 | inline isl::map flatten_domain() const; |
2163 | inline isl::map flatten_range() const; |
2164 | inline isl::map floordiv_val(isl::val d) const; |
2165 | inline isl::map floordiv_val(long d) const; |
2166 | inline stat foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const; |
2167 | inline stat foreach_map(const std::function<stat(isl::map)> &fn) const; |
2168 | static inline isl::map from_aff(isl::aff aff); |
2169 | static inline isl::map from_domain(isl::set set); |
2170 | static inline isl::map from_domain_and_range(isl::set domain, isl::set range); |
2171 | static inline isl::map from_multi_aff(isl::multi_aff maff); |
2172 | static inline isl::map from_pw_aff(isl::pw_aff pwaff); |
2173 | static inline isl::map from_range(isl::set set); |
2174 | static inline isl::map from_union_map(isl::union_map umap); |
2175 | inline isl::map gist(isl::map context) const; |
2176 | inline isl::union_map gist(const isl::union_map &context) const; |
2177 | inline isl::map gist(const isl::basic_map &context) const; |
2178 | inline isl::map gist_domain(isl::set context) const; |
2179 | inline isl::union_map gist_domain(const isl::union_set &uset) const; |
2180 | inline isl::map gist_domain(const isl::basic_set &context) const; |
2181 | inline isl::map gist_domain(const isl::point &context) const; |
2182 | inline isl::map gist_params(isl::set context) const; |
2183 | inline isl::union_map gist_range(const isl::union_set &uset) const; |
2184 | inline boolean has_domain_tuple_id() const; |
2185 | inline boolean has_equal_space(const isl::map &map2) const; |
2186 | inline boolean has_range_tuple_id() const; |
2187 | inline boolean has_tuple_id(isl::dim type) const; |
2188 | inline boolean has_tuple_name(isl::dim type) const; |
2189 | static inline isl::map identity(isl::space space); |
2190 | inline isl::map intersect(isl::map map2) const; |
2191 | inline isl::union_map intersect(const isl::union_map &umap2) const; |
2192 | inline isl::map intersect(const isl::basic_map &map2) const; |
2193 | inline isl::map intersect_domain(isl::set set) const; |
2194 | inline isl::union_map intersect_domain(const isl::space &space) const; |
2195 | inline isl::union_map intersect_domain(const isl::union_set &uset) const; |
2196 | inline isl::map intersect_domain(const isl::basic_set &set) const; |
2197 | inline isl::map intersect_domain(const isl::point &set) const; |
2198 | inline isl::map intersect_domain_factor_domain(isl::map factor) const; |
2199 | inline isl::union_map intersect_domain_factor_domain(const isl::union_map &factor) const; |
2200 | inline isl::map intersect_domain_factor_domain(const isl::basic_map &factor) const; |
2201 | inline isl::map intersect_domain_factor_range(isl::map factor) const; |
2202 | inline isl::union_map intersect_domain_factor_range(const isl::union_map &factor) const; |
2203 | inline isl::map intersect_domain_factor_range(const isl::basic_map &factor) const; |
2204 | inline isl::map intersect_params(isl::set params) const; |
2205 | inline isl::map intersect_range(isl::set set) const; |
2206 | inline isl::union_map intersect_range(const isl::space &space) const; |
2207 | inline isl::union_map intersect_range(const isl::union_set &uset) const; |
2208 | inline isl::map intersect_range(const isl::basic_set &set) const; |
2209 | inline isl::map intersect_range(const isl::point &set) const; |
2210 | inline isl::map intersect_range_factor_domain(isl::map factor) const; |
2211 | inline isl::union_map intersect_range_factor_domain(const isl::union_map &factor) const; |
2212 | inline isl::map intersect_range_factor_domain(const isl::basic_map &factor) const; |
2213 | inline isl::map intersect_range_factor_range(isl::map factor) const; |
2214 | inline isl::union_map intersect_range_factor_range(const isl::union_map &factor) const; |
2215 | inline isl::map intersect_range_factor_range(const isl::basic_map &factor) const; |
2216 | inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const; |
2217 | inline boolean is_bijective() const; |
2218 | inline boolean is_disjoint(const isl::map &map2) const; |
2219 | inline boolean is_disjoint(const isl::union_map &umap2) const; |
2220 | inline boolean is_disjoint(const isl::basic_map &map2) const; |
2221 | inline boolean is_empty() const; |
2222 | inline boolean is_equal(const isl::map &map2) const; |
2223 | inline boolean is_equal(const isl::union_map &umap2) const; |
2224 | inline boolean is_equal(const isl::basic_map &map2) const; |
2225 | inline boolean is_injective() const; |
2226 | inline boolean is_single_valued() const; |
2227 | inline boolean is_strict_subset(const isl::map &map2) const; |
2228 | inline boolean is_strict_subset(const isl::union_map &umap2) const; |
2229 | inline boolean is_strict_subset(const isl::basic_map &map2) const; |
2230 | inline boolean is_subset(const isl::map &map2) const; |
2231 | inline boolean is_subset(const isl::union_map &umap2) const; |
2232 | inline boolean is_subset(const isl::basic_map &map2) const; |
2233 | inline boolean isa_map() const; |
2234 | static inline isl::map lex_ge(isl::space set_space); |
2235 | inline isl::map lex_ge_at(isl::multi_pw_aff mpa) const; |
2236 | static inline isl::map lex_gt(isl::space set_space); |
2237 | inline isl::map lex_gt_at(isl::multi_pw_aff mpa) const; |
2238 | static inline isl::map lex_le(isl::space set_space); |
2239 | inline isl::map lex_le_at(isl::multi_pw_aff mpa) const; |
2240 | static inline isl::map lex_lt(isl::space set_space); |
2241 | inline isl::map lex_lt_at(isl::multi_pw_aff mpa) const; |
2242 | inline isl::map lexmax() const; |
2243 | inline isl::pw_multi_aff lexmax_pw_multi_aff() const; |
2244 | inline isl::map lexmin() const; |
2245 | inline isl::pw_multi_aff lexmin_pw_multi_aff() const; |
2246 | inline isl::map lower_bound(isl::multi_pw_aff lower) const; |
2247 | inline isl::map lower_bound_si(isl::dim type, unsigned int pos, int value) const; |
2248 | inline isl::map_list map_list() const; |
2249 | inline isl::multi_pw_aff max_multi_pw_aff() const; |
2250 | inline isl::multi_pw_aff min_multi_pw_aff() const; |
2251 | inline isl::map move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const; |
2252 | inline class size n_basic_map() const; |
2253 | inline isl::map order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const; |
2254 | inline isl::set params() const; |
2255 | inline isl::basic_map polyhedral_hull() const; |
2256 | inline isl::map preimage_domain(isl::multi_aff ma) const; |
2257 | inline isl::map preimage_domain(isl::multi_pw_aff mpa) const; |
2258 | inline isl::map preimage_domain(isl::pw_multi_aff pma) const; |
2259 | inline isl::union_map preimage_domain(const isl::union_pw_multi_aff &upma) const; |
2260 | inline isl::map preimage_range(isl::multi_aff ma) const; |
2261 | inline isl::map preimage_range(isl::pw_multi_aff pma) const; |
2262 | inline isl::union_map preimage_range(const isl::union_pw_multi_aff &upma) const; |
2263 | inline isl::map product(isl::map map2) const; |
2264 | inline isl::union_map product(const isl::union_map &umap2) const; |
2265 | inline isl::map product(const isl::basic_map &map2) const; |
2266 | inline isl::map project_out(isl::dim type, unsigned int first, unsigned int n) const; |
2267 | inline isl::map project_out_all_params() const; |
2268 | inline isl::set range() const; |
2269 | inline isl::map range_factor_domain() const; |
2270 | inline isl::map range_factor_range() const; |
2271 | inline isl::fixed_box range_lattice_tile() const; |
2272 | inline isl::fixed_box get_range_lattice_tile() const; |
2273 | inline isl::map range_map() const; |
2274 | inline isl::map range_product(isl::map map2) const; |
2275 | inline isl::union_map range_product(const isl::union_map &umap2) const; |
2276 | inline isl::map range_product(const isl::basic_map &map2) const; |
2277 | inline isl::map range_reverse() const; |
2278 | inline isl::fixed_box range_simple_fixed_box_hull() const; |
2279 | inline isl::fixed_box get_range_simple_fixed_box_hull() const; |
2280 | inline class size range_tuple_dim() const; |
2281 | inline isl::id range_tuple_id() const; |
2282 | inline isl::id get_range_tuple_id() const; |
2283 | inline isl::map reverse() const; |
2284 | inline isl::basic_map sample() const; |
2285 | inline isl::map set_domain_tuple(isl::id id) const; |
2286 | inline isl::map set_domain_tuple(const std::string &id) const; |
2287 | inline isl::map set_range_tuple(isl::id id) const; |
2288 | inline isl::map set_range_tuple(const std::string &id) const; |
2289 | inline isl::map set_tuple_id(isl::dim type, isl::id id) const; |
2290 | inline isl::map set_tuple_id(isl::dim type, const std::string &id) const; |
2291 | inline isl::space space() const; |
2292 | inline isl::space get_space() const; |
2293 | inline isl::map subtract(isl::map map2) const; |
2294 | inline isl::union_map subtract(const isl::union_map &umap2) const; |
2295 | inline isl::map subtract(const isl::basic_map &map2) const; |
2296 | inline isl::union_map subtract_domain(const isl::union_set &dom) const; |
2297 | inline isl::union_map subtract_range(const isl::union_set &dom) const; |
2298 | inline isl::map sum(isl::map map2) const; |
2299 | inline isl::map_list to_list() const; |
2300 | inline isl::union_map to_union_map() const; |
2301 | inline isl::id tuple_id(isl::dim type) const; |
2302 | inline isl::id get_tuple_id(isl::dim type) const; |
2303 | inline isl::map uncurry() const; |
2304 | inline isl::map unite(isl::map map2) const; |
2305 | inline isl::union_map unite(const isl::union_map &umap2) const; |
2306 | inline isl::map unite(const isl::basic_map &map2) const; |
2307 | static inline isl::map universe(isl::space space); |
2308 | inline isl::basic_map unshifted_simple_hull() const; |
2309 | inline isl::map upper_bound(isl::multi_pw_aff upper) const; |
2310 | inline isl::map upper_bound_si(isl::dim type, unsigned int pos, int value) const; |
2311 | inline isl::set wrap() const; |
2312 | inline isl::map zip() const; |
2313 | }; |
2314 | |
2315 | // declarations for isl::map_list |
2316 | inline map_list manage(__isl_take isl_map_list *ptr); |
2317 | inline map_list manage_copy(__isl_keep isl_map_list *ptr); |
2318 | |
2319 | class map_list { |
2320 | friend inline map_list manage(__isl_take isl_map_list *ptr); |
2321 | friend inline map_list manage_copy(__isl_keep isl_map_list *ptr); |
2322 | |
2323 | protected: |
2324 | isl_map_list *ptr = nullptr; |
2325 | |
2326 | inline explicit map_list(__isl_take isl_map_list *ptr); |
2327 | |
2328 | public: |
2329 | inline /* implicit */ map_list(); |
2330 | inline /* implicit */ map_list(const map_list &obj); |
2331 | inline explicit map_list(isl::ctx ctx, int n); |
2332 | inline explicit map_list(isl::map el); |
2333 | inline explicit map_list(isl::ctx ctx, const std::string &str); |
2334 | inline map_list &operator=(map_list obj); |
2335 | inline ~map_list(); |
2336 | inline __isl_give isl_map_list *copy() const &; |
2337 | inline __isl_give isl_map_list *copy() && = delete; |
2338 | inline __isl_keep isl_map_list *get() const; |
2339 | inline __isl_give isl_map_list *release(); |
2340 | inline bool is_null() const; |
2341 | inline isl::ctx ctx() const; |
2342 | |
2343 | inline isl::map_list add(isl::map el) const; |
2344 | inline isl::map at(int index) const; |
2345 | inline isl::map get_at(int index) const; |
2346 | inline isl::map_list clear() const; |
2347 | inline isl::map_list concat(isl::map_list list2) const; |
2348 | inline isl::map_list drop(unsigned int first, unsigned int n) const; |
2349 | inline stat foreach(const std::function<stat(isl::map)> &fn) const; |
2350 | inline isl::map_list insert(unsigned int pos, isl::map el) const; |
2351 | inline class size size() const; |
2352 | }; |
2353 | |
2354 | // declarations for isl::multi_aff |
2355 | inline multi_aff manage(__isl_take isl_multi_aff *ptr); |
2356 | inline multi_aff manage_copy(__isl_keep isl_multi_aff *ptr); |
2357 | |
2358 | class multi_aff { |
2359 | friend inline multi_aff manage(__isl_take isl_multi_aff *ptr); |
2360 | friend inline multi_aff manage_copy(__isl_keep isl_multi_aff *ptr); |
2361 | |
2362 | protected: |
2363 | isl_multi_aff *ptr = nullptr; |
2364 | |
2365 | inline explicit multi_aff(__isl_take isl_multi_aff *ptr); |
2366 | |
2367 | public: |
2368 | inline /* implicit */ multi_aff(); |
2369 | inline /* implicit */ multi_aff(const multi_aff &obj); |
2370 | inline /* implicit */ multi_aff(isl::aff aff); |
2371 | inline explicit multi_aff(isl::space space, isl::aff_list list); |
2372 | inline explicit multi_aff(isl::ctx ctx, const std::string &str); |
2373 | inline multi_aff &operator=(multi_aff obj); |
2374 | inline ~multi_aff(); |
2375 | inline __isl_give isl_multi_aff *copy() const &; |
2376 | inline __isl_give isl_multi_aff *copy() && = delete; |
2377 | inline __isl_keep isl_multi_aff *get() const; |
2378 | inline __isl_give isl_multi_aff *release(); |
2379 | inline bool is_null() const; |
2380 | inline isl::ctx ctx() const; |
2381 | |
2382 | inline isl::multi_aff add(isl::multi_aff multi2) const; |
2383 | inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const; |
2384 | inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const; |
2385 | inline isl::pw_multi_aff add(const isl::pw_multi_aff &pma2) const; |
2386 | inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const; |
2387 | inline isl::multi_aff add(const isl::aff &multi2) const; |
2388 | inline isl::multi_aff add_constant(isl::multi_val mv) const; |
2389 | inline isl::multi_aff add_constant(isl::val v) const; |
2390 | inline isl::multi_aff add_constant(long v) const; |
2391 | inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const; |
2392 | inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const; |
2393 | inline isl::map as_map() const; |
2394 | inline isl::multi_aff as_multi_aff() const; |
2395 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
2396 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
2397 | inline isl::set as_set() const; |
2398 | inline isl::union_map as_union_map() const; |
2399 | inline isl::aff at(int pos) const; |
2400 | inline isl::aff get_at(int pos) const; |
2401 | inline isl::basic_set bind(isl::multi_id tuple) const; |
2402 | inline isl::multi_aff bind_domain(isl::multi_id tuple) const; |
2403 | inline isl::multi_aff bind_domain_wrapped_domain(isl::multi_id tuple) const; |
2404 | inline isl::pw_multi_aff coalesce() const; |
2405 | inline isl::multi_val constant_multi_val() const; |
2406 | inline isl::multi_val get_constant_multi_val() const; |
2407 | inline class size dim(isl::dim type) const; |
2408 | inline isl::set domain() const; |
2409 | static inline isl::multi_aff domain_map(isl::space space); |
2410 | inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const; |
2411 | inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const; |
2412 | inline isl::multi_aff flat_range_product(isl::multi_aff multi2) const; |
2413 | inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const; |
2414 | inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const; |
2415 | inline isl::pw_multi_aff flat_range_product(const isl::pw_multi_aff &pma2) const; |
2416 | inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const; |
2417 | inline isl::multi_aff flat_range_product(const isl::aff &multi2) const; |
2418 | inline isl::multi_aff floor() const; |
2419 | inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const; |
2420 | inline isl::multi_aff gist(isl::set context) const; |
2421 | inline isl::union_pw_multi_aff gist(const isl::union_set &context) const; |
2422 | inline isl::multi_aff gist(const isl::basic_set &context) const; |
2423 | inline isl::multi_aff gist(const isl::point &context) const; |
2424 | inline boolean has_range_tuple_id() const; |
2425 | static inline isl::multi_aff identity(isl::space space); |
2426 | inline isl::multi_aff identity() const; |
2427 | static inline isl::multi_aff identity_on_domain(isl::space space); |
2428 | inline isl::multi_aff insert_domain(isl::space domain) const; |
2429 | inline isl::pw_multi_aff intersect_domain(const isl::set &set) const; |
2430 | inline isl::union_pw_multi_aff intersect_domain(const isl::space &space) const; |
2431 | inline isl::union_pw_multi_aff intersect_domain(const isl::union_set &uset) const; |
2432 | inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const; |
2433 | inline isl::union_pw_multi_aff intersect_domain_wrapped_range(const isl::union_set &uset) const; |
2434 | inline isl::pw_multi_aff intersect_params(const isl::set &set) const; |
2435 | inline boolean involves_locals() const; |
2436 | inline boolean involves_nan() const; |
2437 | inline boolean involves_param(const isl::id &id) const; |
2438 | inline boolean involves_param(const std::string &id) const; |
2439 | inline boolean involves_param(const isl::id_list &list) const; |
2440 | inline boolean isa_multi_aff() const; |
2441 | inline boolean isa_pw_multi_aff() const; |
2442 | inline isl::aff_list list() const; |
2443 | inline isl::aff_list get_list() const; |
2444 | inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const; |
2445 | inline isl::multi_val max_multi_val() const; |
2446 | inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const; |
2447 | inline isl::multi_val min_multi_val() const; |
2448 | static inline isl::multi_aff multi_val_on_domain(isl::space space, isl::multi_val mv); |
2449 | inline class size n_piece() const; |
2450 | inline isl::multi_aff neg() const; |
2451 | inline boolean plain_is_empty() const; |
2452 | inline boolean plain_is_equal(const isl::multi_aff &multi2) const; |
2453 | inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const; |
2454 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
2455 | inline boolean plain_is_equal(const isl::aff &multi2) const; |
2456 | inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const; |
2457 | inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const; |
2458 | inline isl::multi_aff product(isl::multi_aff multi2) const; |
2459 | inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const; |
2460 | inline isl::pw_multi_aff product(const isl::pw_multi_aff &pma2) const; |
2461 | inline isl::multi_aff product(const isl::aff &multi2) const; |
2462 | inline isl::multi_aff pullback(isl::multi_aff ma2) const; |
2463 | inline isl::multi_pw_aff pullback(const isl::multi_pw_aff &mpa2) const; |
2464 | inline isl::pw_multi_aff pullback(const isl::pw_multi_aff &pma2) const; |
2465 | inline isl::union_pw_multi_aff pullback(const isl::union_pw_multi_aff &upma2) const; |
2466 | inline isl::multi_aff pullback(const isl::aff &ma2) const; |
2467 | inline isl::pw_multi_aff_list pw_multi_aff_list() const; |
2468 | inline isl::pw_multi_aff range_factor_domain() const; |
2469 | inline isl::pw_multi_aff range_factor_range() const; |
2470 | static inline isl::multi_aff range_map(isl::space space); |
2471 | inline isl::multi_aff range_product(isl::multi_aff multi2) const; |
2472 | inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const; |
2473 | inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const; |
2474 | inline isl::pw_multi_aff range_product(const isl::pw_multi_aff &pma2) const; |
2475 | inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const; |
2476 | inline isl::multi_aff range_product(const isl::aff &multi2) const; |
2477 | inline isl::id range_tuple_id() const; |
2478 | inline isl::id get_range_tuple_id() const; |
2479 | inline isl::multi_aff reset_range_tuple_id() const; |
2480 | inline isl::multi_aff reset_tuple_id(isl::dim type) const; |
2481 | inline isl::multi_aff scale(isl::multi_val mv) const; |
2482 | inline isl::multi_aff scale(isl::val v) const; |
2483 | inline isl::multi_aff scale(long v) const; |
2484 | inline isl::multi_aff scale_down(isl::multi_val mv) const; |
2485 | inline isl::multi_aff scale_down(isl::val v) const; |
2486 | inline isl::multi_aff scale_down(long v) const; |
2487 | inline isl::multi_aff set_aff(int pos, isl::aff el) const; |
2488 | inline isl::multi_aff set_at(int pos, isl::aff el) const; |
2489 | inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const; |
2490 | inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const; |
2491 | inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const; |
2492 | inline isl::pw_multi_aff set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const; |
2493 | inline isl::multi_aff set_range_tuple(isl::id id) const; |
2494 | inline isl::multi_aff set_range_tuple(const std::string &id) const; |
2495 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const; |
2496 | inline class size size() const; |
2497 | inline isl::space space() const; |
2498 | inline isl::space get_space() const; |
2499 | inline isl::multi_aff sub(isl::multi_aff multi2) const; |
2500 | inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const; |
2501 | inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const; |
2502 | inline isl::pw_multi_aff sub(const isl::pw_multi_aff &pma2) const; |
2503 | inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const; |
2504 | inline isl::multi_aff sub(const isl::aff &multi2) const; |
2505 | inline isl::pw_multi_aff subtract_domain(const isl::set &set) const; |
2506 | inline isl::union_pw_multi_aff subtract_domain(const isl::space &space) const; |
2507 | inline isl::union_pw_multi_aff subtract_domain(const isl::union_set &uset) const; |
2508 | inline isl::pw_multi_aff_list to_list() const; |
2509 | inline isl::multi_pw_aff to_multi_pw_aff() const; |
2510 | inline isl::multi_union_pw_aff to_multi_union_pw_aff() const; |
2511 | inline isl::pw_multi_aff to_pw_multi_aff() const; |
2512 | inline isl::union_pw_multi_aff to_union_pw_multi_aff() const; |
2513 | inline isl::id tuple_id(isl::dim type) const; |
2514 | inline isl::multi_aff unbind_params_insert_domain(isl::multi_id domain) const; |
2515 | inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const; |
2516 | inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const; |
2517 | inline isl::pw_multi_aff union_add(const isl::pw_multi_aff &pma2) const; |
2518 | inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const; |
2519 | static inline isl::multi_aff zero(isl::space space); |
2520 | }; |
2521 | |
2522 | // declarations for isl::multi_id |
2523 | inline multi_id manage(__isl_take isl_multi_id *ptr); |
2524 | inline multi_id manage_copy(__isl_keep isl_multi_id *ptr); |
2525 | |
2526 | class multi_id { |
2527 | friend inline multi_id manage(__isl_take isl_multi_id *ptr); |
2528 | friend inline multi_id manage_copy(__isl_keep isl_multi_id *ptr); |
2529 | |
2530 | protected: |
2531 | isl_multi_id *ptr = nullptr; |
2532 | |
2533 | inline explicit multi_id(__isl_take isl_multi_id *ptr); |
2534 | |
2535 | public: |
2536 | inline /* implicit */ multi_id(); |
2537 | inline /* implicit */ multi_id(const multi_id &obj); |
2538 | inline explicit multi_id(isl::space space, isl::id_list list); |
2539 | inline explicit multi_id(isl::ctx ctx, const std::string &str); |
2540 | inline multi_id &operator=(multi_id obj); |
2541 | inline ~multi_id(); |
2542 | inline __isl_give isl_multi_id *copy() const &; |
2543 | inline __isl_give isl_multi_id *copy() && = delete; |
2544 | inline __isl_keep isl_multi_id *get() const; |
2545 | inline __isl_give isl_multi_id *release(); |
2546 | inline bool is_null() const; |
2547 | inline isl::ctx ctx() const; |
2548 | |
2549 | inline isl::id at(int pos) const; |
2550 | inline isl::id get_at(int pos) const; |
2551 | inline isl::multi_id flat_range_product(isl::multi_id multi2) const; |
2552 | inline isl::id_list list() const; |
2553 | inline isl::id_list get_list() const; |
2554 | inline boolean plain_is_equal(const isl::multi_id &multi2) const; |
2555 | inline isl::multi_id range_product(isl::multi_id multi2) const; |
2556 | inline isl::multi_id set_at(int pos, isl::id el) const; |
2557 | inline isl::multi_id set_at(int pos, const std::string &el) const; |
2558 | inline isl::multi_id set_id(int pos, isl::id el) const; |
2559 | inline isl::multi_id set_id(int pos, const std::string &el) const; |
2560 | inline class size size() const; |
2561 | inline isl::space space() const; |
2562 | inline isl::space get_space() const; |
2563 | }; |
2564 | |
2565 | // declarations for isl::multi_pw_aff |
2566 | inline multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr); |
2567 | inline multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr); |
2568 | |
2569 | class multi_pw_aff { |
2570 | friend inline multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr); |
2571 | friend inline multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr); |
2572 | |
2573 | protected: |
2574 | isl_multi_pw_aff *ptr = nullptr; |
2575 | |
2576 | inline explicit multi_pw_aff(__isl_take isl_multi_pw_aff *ptr); |
2577 | |
2578 | public: |
2579 | inline /* implicit */ multi_pw_aff(); |
2580 | inline /* implicit */ multi_pw_aff(const multi_pw_aff &obj); |
2581 | inline /* implicit */ multi_pw_aff(isl::aff aff); |
2582 | inline /* implicit */ multi_pw_aff(isl::multi_aff ma); |
2583 | inline /* implicit */ multi_pw_aff(isl::pw_aff pa); |
2584 | inline explicit multi_pw_aff(isl::space space, isl::pw_aff_list list); |
2585 | inline /* implicit */ multi_pw_aff(isl::pw_multi_aff pma); |
2586 | inline explicit multi_pw_aff(isl::ctx ctx, const std::string &str); |
2587 | inline multi_pw_aff &operator=(multi_pw_aff obj); |
2588 | inline ~multi_pw_aff(); |
2589 | inline __isl_give isl_multi_pw_aff *copy() const &; |
2590 | inline __isl_give isl_multi_pw_aff *copy() && = delete; |
2591 | inline __isl_keep isl_multi_pw_aff *get() const; |
2592 | inline __isl_give isl_multi_pw_aff *release(); |
2593 | inline bool is_null() const; |
2594 | inline isl::ctx ctx() const; |
2595 | |
2596 | inline isl::multi_pw_aff add(isl::multi_pw_aff multi2) const; |
2597 | inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const; |
2598 | inline isl::multi_pw_aff add(const isl::aff &multi2) const; |
2599 | inline isl::multi_pw_aff add(const isl::multi_aff &multi2) const; |
2600 | inline isl::multi_pw_aff add(const isl::pw_aff &multi2) const; |
2601 | inline isl::multi_pw_aff add(const isl::pw_multi_aff &multi2) const; |
2602 | inline isl::multi_pw_aff add_constant(isl::multi_val mv) const; |
2603 | inline isl::multi_pw_aff add_constant(isl::val v) const; |
2604 | inline isl::multi_pw_aff add_constant(long v) const; |
2605 | inline isl::map as_map() const; |
2606 | inline isl::multi_aff as_multi_aff() const; |
2607 | inline isl::set as_set() const; |
2608 | inline isl::pw_aff at(int pos) const; |
2609 | inline isl::pw_aff get_at(int pos) const; |
2610 | inline isl::set bind(isl::multi_id tuple) const; |
2611 | inline isl::multi_pw_aff bind_domain(isl::multi_id tuple) const; |
2612 | inline isl::multi_pw_aff bind_domain_wrapped_domain(isl::multi_id tuple) const; |
2613 | inline isl::multi_pw_aff coalesce() const; |
2614 | inline class size dim(isl::dim type) const; |
2615 | inline isl::set domain() const; |
2616 | inline isl::multi_pw_aff flat_range_product(isl::multi_pw_aff multi2) const; |
2617 | inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const; |
2618 | inline isl::multi_pw_aff flat_range_product(const isl::aff &multi2) const; |
2619 | inline isl::multi_pw_aff flat_range_product(const isl::multi_aff &multi2) const; |
2620 | inline isl::multi_pw_aff flat_range_product(const isl::pw_aff &multi2) const; |
2621 | inline isl::multi_pw_aff flat_range_product(const isl::pw_multi_aff &multi2) const; |
2622 | inline isl::multi_pw_aff gist(isl::set set) const; |
2623 | inline isl::multi_union_pw_aff gist(const isl::union_set &context) const; |
2624 | inline isl::multi_pw_aff gist(const isl::basic_set &set) const; |
2625 | inline isl::multi_pw_aff gist(const isl::point &set) const; |
2626 | inline boolean has_range_tuple_id() const; |
2627 | static inline isl::multi_pw_aff identity(isl::space space); |
2628 | inline isl::multi_pw_aff identity() const; |
2629 | static inline isl::multi_pw_aff identity_on_domain(isl::space space); |
2630 | inline isl::multi_pw_aff insert_domain(isl::space domain) const; |
2631 | inline isl::multi_pw_aff intersect_domain(isl::set domain) const; |
2632 | inline isl::multi_union_pw_aff intersect_domain(const isl::union_set &uset) const; |
2633 | inline isl::multi_pw_aff intersect_domain(const isl::basic_set &domain) const; |
2634 | inline isl::multi_pw_aff intersect_domain(const isl::point &domain) const; |
2635 | inline isl::multi_pw_aff intersect_params(isl::set set) const; |
2636 | inline boolean involves_nan() const; |
2637 | inline boolean involves_param(const isl::id &id) const; |
2638 | inline boolean involves_param(const std::string &id) const; |
2639 | inline boolean involves_param(const isl::id_list &list) const; |
2640 | inline boolean isa_multi_aff() const; |
2641 | inline isl::pw_aff_list list() const; |
2642 | inline isl::pw_aff_list get_list() const; |
2643 | inline isl::multi_pw_aff max(isl::multi_pw_aff multi2) const; |
2644 | inline isl::multi_val max_multi_val() const; |
2645 | inline isl::multi_pw_aff min(isl::multi_pw_aff multi2) const; |
2646 | inline isl::multi_val min_multi_val() const; |
2647 | inline isl::multi_pw_aff neg() const; |
2648 | inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const; |
2649 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
2650 | inline boolean plain_is_equal(const isl::aff &multi2) const; |
2651 | inline boolean plain_is_equal(const isl::multi_aff &multi2) const; |
2652 | inline boolean plain_is_equal(const isl::pw_aff &multi2) const; |
2653 | inline boolean plain_is_equal(const isl::pw_multi_aff &multi2) const; |
2654 | inline isl::multi_pw_aff product(isl::multi_pw_aff multi2) const; |
2655 | inline isl::multi_pw_aff pullback(isl::multi_aff ma) const; |
2656 | inline isl::multi_pw_aff pullback(isl::multi_pw_aff mpa2) const; |
2657 | inline isl::multi_pw_aff pullback(isl::pw_multi_aff pma) const; |
2658 | inline isl::multi_union_pw_aff pullback(const isl::union_pw_multi_aff &upma) const; |
2659 | inline isl::multi_pw_aff range_product(isl::multi_pw_aff multi2) const; |
2660 | inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const; |
2661 | inline isl::multi_pw_aff range_product(const isl::aff &multi2) const; |
2662 | inline isl::multi_pw_aff range_product(const isl::multi_aff &multi2) const; |
2663 | inline isl::multi_pw_aff range_product(const isl::pw_aff &multi2) const; |
2664 | inline isl::multi_pw_aff range_product(const isl::pw_multi_aff &multi2) const; |
2665 | inline isl::id range_tuple_id() const; |
2666 | inline isl::id get_range_tuple_id() const; |
2667 | inline isl::multi_pw_aff reset_range_tuple_id() const; |
2668 | inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const; |
2669 | inline isl::multi_pw_aff scale(isl::multi_val mv) const; |
2670 | inline isl::multi_pw_aff scale(isl::val v) const; |
2671 | inline isl::multi_pw_aff scale(long v) const; |
2672 | inline isl::multi_pw_aff scale_down(isl::multi_val mv) const; |
2673 | inline isl::multi_pw_aff scale_down(isl::val v) const; |
2674 | inline isl::multi_pw_aff scale_down(long v) const; |
2675 | inline isl::multi_pw_aff set_at(int pos, isl::pw_aff el) const; |
2676 | inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const; |
2677 | inline isl::multi_pw_aff set_pw_aff(int pos, isl::pw_aff el) const; |
2678 | inline isl::multi_pw_aff set_range_tuple(isl::id id) const; |
2679 | inline isl::multi_pw_aff set_range_tuple(const std::string &id) const; |
2680 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const; |
2681 | inline class size size() const; |
2682 | inline isl::space space() const; |
2683 | inline isl::space get_space() const; |
2684 | inline isl::multi_pw_aff sub(isl::multi_pw_aff multi2) const; |
2685 | inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const; |
2686 | inline isl::multi_pw_aff sub(const isl::aff &multi2) const; |
2687 | inline isl::multi_pw_aff sub(const isl::multi_aff &multi2) const; |
2688 | inline isl::multi_pw_aff sub(const isl::pw_aff &multi2) const; |
2689 | inline isl::multi_pw_aff sub(const isl::pw_multi_aff &multi2) const; |
2690 | inline isl::multi_pw_aff unbind_params_insert_domain(isl::multi_id domain) const; |
2691 | inline isl::multi_pw_aff union_add(isl::multi_pw_aff mpa2) const; |
2692 | inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const; |
2693 | inline isl::multi_pw_aff union_add(const isl::aff &mpa2) const; |
2694 | inline isl::multi_pw_aff union_add(const isl::multi_aff &mpa2) const; |
2695 | inline isl::multi_pw_aff union_add(const isl::pw_aff &mpa2) const; |
2696 | inline isl::multi_pw_aff union_add(const isl::pw_multi_aff &mpa2) const; |
2697 | static inline isl::multi_pw_aff zero(isl::space space); |
2698 | }; |
2699 | |
2700 | // declarations for isl::multi_union_pw_aff |
2701 | inline multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr); |
2702 | inline multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr); |
2703 | |
2704 | class multi_union_pw_aff { |
2705 | friend inline multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr); |
2706 | friend inline multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr); |
2707 | |
2708 | protected: |
2709 | isl_multi_union_pw_aff *ptr = nullptr; |
2710 | |
2711 | inline explicit multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *ptr); |
2712 | |
2713 | public: |
2714 | inline /* implicit */ multi_union_pw_aff(); |
2715 | inline /* implicit */ multi_union_pw_aff(const multi_union_pw_aff &obj); |
2716 | inline /* implicit */ multi_union_pw_aff(isl::multi_pw_aff mpa); |
2717 | inline /* implicit */ multi_union_pw_aff(isl::union_pw_aff upa); |
2718 | inline explicit multi_union_pw_aff(isl::space space, isl::union_pw_aff_list list); |
2719 | inline explicit multi_union_pw_aff(isl::union_pw_multi_aff upma); |
2720 | inline explicit multi_union_pw_aff(isl::ctx ctx, const std::string &str); |
2721 | inline multi_union_pw_aff &operator=(multi_union_pw_aff obj); |
2722 | inline ~multi_union_pw_aff(); |
2723 | inline __isl_give isl_multi_union_pw_aff *copy() const &; |
2724 | inline __isl_give isl_multi_union_pw_aff *copy() && = delete; |
2725 | inline __isl_keep isl_multi_union_pw_aff *get() const; |
2726 | inline __isl_give isl_multi_union_pw_aff *release(); |
2727 | inline bool is_null() const; |
2728 | inline isl::ctx ctx() const; |
2729 | |
2730 | inline isl::multi_union_pw_aff add(isl::multi_union_pw_aff multi2) const; |
2731 | inline isl::union_pw_aff at(int pos) const; |
2732 | inline isl::union_pw_aff get_at(int pos) const; |
2733 | inline isl::union_set bind(isl::multi_id tuple) const; |
2734 | inline isl::multi_union_pw_aff coalesce() const; |
2735 | inline class size dim(isl::dim type) const; |
2736 | inline isl::union_set domain() const; |
2737 | inline isl::multi_union_pw_aff flat_range_product(isl::multi_union_pw_aff multi2) const; |
2738 | static inline isl::multi_union_pw_aff from_union_map(isl::union_map umap); |
2739 | inline isl::multi_union_pw_aff gist(isl::union_set context) const; |
2740 | inline boolean has_range_tuple_id() const; |
2741 | inline isl::multi_union_pw_aff intersect_domain(isl::union_set uset) const; |
2742 | inline isl::multi_union_pw_aff intersect_params(isl::set params) const; |
2743 | inline boolean involves_nan() const; |
2744 | inline isl::union_pw_aff_list list() const; |
2745 | inline isl::union_pw_aff_list get_list() const; |
2746 | inline isl::multi_union_pw_aff neg() const; |
2747 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
2748 | inline isl::multi_union_pw_aff pullback(isl::union_pw_multi_aff upma) const; |
2749 | inline isl::multi_union_pw_aff range_product(isl::multi_union_pw_aff multi2) const; |
2750 | inline isl::id range_tuple_id() const; |
2751 | inline isl::id get_range_tuple_id() const; |
2752 | inline isl::multi_union_pw_aff reset_range_tuple_id() const; |
2753 | inline isl::multi_union_pw_aff reset_tuple_id(isl::dim type) const; |
2754 | inline isl::multi_union_pw_aff scale(isl::multi_val mv) const; |
2755 | inline isl::multi_union_pw_aff scale(isl::val v) const; |
2756 | inline isl::multi_union_pw_aff scale(long v) const; |
2757 | inline isl::multi_union_pw_aff scale_down(isl::multi_val mv) const; |
2758 | inline isl::multi_union_pw_aff scale_down(isl::val v) const; |
2759 | inline isl::multi_union_pw_aff scale_down(long v) const; |
2760 | inline isl::multi_union_pw_aff set_at(int pos, isl::union_pw_aff el) const; |
2761 | inline isl::multi_union_pw_aff set_range_tuple(isl::id id) const; |
2762 | inline isl::multi_union_pw_aff set_range_tuple(const std::string &id) const; |
2763 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, isl::union_pw_aff el) const; |
2764 | inline class size size() const; |
2765 | inline isl::space space() const; |
2766 | inline isl::space get_space() const; |
2767 | inline isl::multi_union_pw_aff sub(isl::multi_union_pw_aff multi2) const; |
2768 | inline isl::multi_union_pw_aff union_add(isl::multi_union_pw_aff mupa2) const; |
2769 | static inline isl::multi_union_pw_aff zero(isl::space space); |
2770 | }; |
2771 | |
2772 | // declarations for isl::multi_val |
2773 | inline multi_val manage(__isl_take isl_multi_val *ptr); |
2774 | inline multi_val manage_copy(__isl_keep isl_multi_val *ptr); |
2775 | |
2776 | class multi_val { |
2777 | friend inline multi_val manage(__isl_take isl_multi_val *ptr); |
2778 | friend inline multi_val manage_copy(__isl_keep isl_multi_val *ptr); |
2779 | |
2780 | protected: |
2781 | isl_multi_val *ptr = nullptr; |
2782 | |
2783 | inline explicit multi_val(__isl_take isl_multi_val *ptr); |
2784 | |
2785 | public: |
2786 | inline /* implicit */ multi_val(); |
2787 | inline /* implicit */ multi_val(const multi_val &obj); |
2788 | inline explicit multi_val(isl::space space, isl::val_list list); |
2789 | inline explicit multi_val(isl::ctx ctx, const std::string &str); |
2790 | inline multi_val &operator=(multi_val obj); |
2791 | inline ~multi_val(); |
2792 | inline __isl_give isl_multi_val *copy() const &; |
2793 | inline __isl_give isl_multi_val *copy() && = delete; |
2794 | inline __isl_keep isl_multi_val *get() const; |
2795 | inline __isl_give isl_multi_val *release(); |
2796 | inline bool is_null() const; |
2797 | inline isl::ctx ctx() const; |
2798 | |
2799 | inline isl::multi_val add(isl::multi_val multi2) const; |
2800 | inline isl::multi_val add(isl::val v) const; |
2801 | inline isl::multi_val add(long v) const; |
2802 | inline isl::val at(int pos) const; |
2803 | inline isl::val get_at(int pos) const; |
2804 | inline class size dim(isl::dim type) const; |
2805 | inline isl::multi_val flat_range_product(isl::multi_val multi2) const; |
2806 | inline boolean has_range_tuple_id() const; |
2807 | inline boolean involves_nan() const; |
2808 | inline isl::val_list list() const; |
2809 | inline isl::val_list get_list() const; |
2810 | inline isl::multi_val max(isl::multi_val multi2) const; |
2811 | inline isl::multi_val min(isl::multi_val multi2) const; |
2812 | inline isl::multi_val neg() const; |
2813 | inline boolean plain_is_equal(const isl::multi_val &multi2) const; |
2814 | inline isl::multi_val product(isl::multi_val multi2) const; |
2815 | inline isl::multi_val range_product(isl::multi_val multi2) const; |
2816 | inline isl::id range_tuple_id() const; |
2817 | inline isl::id get_range_tuple_id() const; |
2818 | inline isl::multi_val reset_range_tuple_id() const; |
2819 | inline isl::multi_val reset_tuple_id(isl::dim type) const; |
2820 | inline isl::multi_val scale(isl::multi_val mv) const; |
2821 | inline isl::multi_val scale(isl::val v) const; |
2822 | inline isl::multi_val scale(long v) const; |
2823 | inline isl::multi_val scale_down(isl::multi_val mv) const; |
2824 | inline isl::multi_val scale_down(isl::val v) const; |
2825 | inline isl::multi_val scale_down(long v) const; |
2826 | inline isl::multi_val set_at(int pos, isl::val el) const; |
2827 | inline isl::multi_val set_at(int pos, long el) const; |
2828 | inline isl::multi_val set_range_tuple(isl::id id) const; |
2829 | inline isl::multi_val set_range_tuple(const std::string &id) const; |
2830 | inline isl::multi_val set_val(int pos, isl::val el) const; |
2831 | inline isl::multi_val set_val(int pos, long el) const; |
2832 | inline class size size() const; |
2833 | inline isl::space space() const; |
2834 | inline isl::space get_space() const; |
2835 | inline isl::multi_val sub(isl::multi_val multi2) const; |
2836 | static inline isl::multi_val zero(isl::space space); |
2837 | }; |
2838 | |
2839 | // declarations for isl::point |
2840 | inline point manage(__isl_take isl_point *ptr); |
2841 | inline point manage_copy(__isl_keep isl_point *ptr); |
2842 | |
2843 | class point { |
2844 | friend inline point manage(__isl_take isl_point *ptr); |
2845 | friend inline point manage_copy(__isl_keep isl_point *ptr); |
2846 | |
2847 | protected: |
2848 | isl_point *ptr = nullptr; |
2849 | |
2850 | inline explicit point(__isl_take isl_point *ptr); |
2851 | |
2852 | public: |
2853 | inline /* implicit */ point(); |
2854 | inline /* implicit */ point(const point &obj); |
2855 | inline explicit point(isl::space space); |
2856 | inline point &operator=(point obj); |
2857 | inline ~point(); |
2858 | inline __isl_give isl_point *copy() const &; |
2859 | inline __isl_give isl_point *copy() && = delete; |
2860 | inline __isl_keep isl_point *get() const; |
2861 | inline __isl_give isl_point *release(); |
2862 | inline bool is_null() const; |
2863 | inline isl::ctx ctx() const; |
2864 | |
2865 | inline isl::set add_constraint(const isl::constraint &constraint) const; |
2866 | inline isl::set add_dims(isl::dim type, unsigned int n) const; |
2867 | inline isl::basic_set affine_hull() const; |
2868 | inline isl::set align_params(const isl::space &model) const; |
2869 | inline isl::basic_set apply(const isl::basic_map &bmap) const; |
2870 | inline isl::set apply(const isl::map &map) const; |
2871 | inline isl::union_set apply(const isl::union_map &umap) const; |
2872 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
2873 | inline isl::set as_set() const; |
2874 | inline isl::basic_set_list basic_set_list() const; |
2875 | inline isl::set bind(const isl::multi_id &tuple) const; |
2876 | inline isl::set coalesce() const; |
2877 | inline isl::set complement() const; |
2878 | inline isl::union_set compute_divs() const; |
2879 | inline boolean contains(const isl::space &space) const; |
2880 | inline isl::basic_set convex_hull() const; |
2881 | inline isl::val coordinate_val(isl::dim type, int pos) const; |
2882 | inline isl::val get_coordinate_val(isl::dim type, int pos) const; |
2883 | inline isl::basic_set detect_equalities() const; |
2884 | inline class size dim(isl::dim type) const; |
2885 | inline boolean dim_has_any_lower_bound(isl::dim type, unsigned int pos) const; |
2886 | inline isl::id dim_id(isl::dim type, unsigned int pos) const; |
2887 | inline isl::pw_aff dim_max(int pos) const; |
2888 | inline isl::val dim_max_val(int pos) const; |
2889 | inline isl::pw_aff dim_min(int pos) const; |
2890 | inline isl::val dim_min_val(int pos) const; |
2891 | inline std::string dim_name(isl::dim type, unsigned int pos) const; |
2892 | inline isl::aff div(int pos) const; |
2893 | inline isl::set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const; |
2894 | inline isl::set eliminate(isl::dim type, unsigned int first, unsigned int n) const; |
2895 | inline boolean every_set(const std::function<boolean(isl::set)> &test) const; |
2896 | inline isl::set extract_set(const isl::space &space) const; |
2897 | inline int find_dim_by_id(isl::dim type, const isl::id &id) const; |
2898 | inline int find_dim_by_id(isl::dim type, const std::string &id) const; |
2899 | inline isl::basic_set fix_si(isl::dim type, unsigned int pos, int value) const; |
2900 | inline isl::basic_set fix_val(isl::dim type, unsigned int pos, const isl::val &v) const; |
2901 | inline isl::basic_set fix_val(isl::dim type, unsigned int pos, long v) const; |
2902 | inline isl::basic_set flatten() const; |
2903 | inline stat foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const; |
2904 | inline stat foreach_point(const std::function<stat(isl::point)> &fn) const; |
2905 | inline stat foreach_set(const std::function<stat(isl::set)> &fn) const; |
2906 | inline isl::basic_set gist(const isl::basic_set &context) const; |
2907 | inline isl::set gist(const isl::set &context) const; |
2908 | inline isl::union_set gist(const isl::union_set &context) const; |
2909 | inline isl::set gist_params(const isl::set &context) const; |
2910 | inline boolean has_equal_space(const isl::set &set2) const; |
2911 | inline isl::map identity() const; |
2912 | inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const; |
2913 | inline isl::pw_aff indicator_function() const; |
2914 | inline isl::set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const; |
2915 | inline isl::map insert_domain(const isl::space &domain) const; |
2916 | inline isl::basic_set intersect(const isl::basic_set &bset2) const; |
2917 | inline isl::set intersect(const isl::set &set2) const; |
2918 | inline isl::union_set intersect(const isl::union_set &uset2) const; |
2919 | inline isl::basic_set intersect_params(const isl::basic_set &bset2) const; |
2920 | inline isl::set intersect_params(const isl::set ¶ms) const; |
2921 | inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const; |
2922 | inline boolean involves_locals() const; |
2923 | inline boolean is_bounded() const; |
2924 | inline boolean is_disjoint(const isl::set &set2) const; |
2925 | inline boolean is_disjoint(const isl::union_set &uset2) const; |
2926 | inline boolean is_empty() const; |
2927 | inline boolean is_equal(const isl::basic_set &bset2) const; |
2928 | inline boolean is_equal(const isl::set &set2) const; |
2929 | inline boolean is_equal(const isl::union_set &uset2) const; |
2930 | inline boolean is_params() const; |
2931 | inline boolean is_singleton() const; |
2932 | inline boolean is_strict_subset(const isl::set &set2) const; |
2933 | inline boolean is_strict_subset(const isl::union_set &uset2) const; |
2934 | inline boolean is_subset(const isl::basic_set &bset2) const; |
2935 | inline boolean is_subset(const isl::set &set2) const; |
2936 | inline boolean is_subset(const isl::union_set &uset2) const; |
2937 | inline boolean is_wrapping() const; |
2938 | inline boolean isa_set() const; |
2939 | inline isl::set lexmax() const; |
2940 | inline isl::pw_multi_aff lexmax_pw_multi_aff() const; |
2941 | inline isl::set lexmin() const; |
2942 | inline isl::pw_multi_aff lexmin_pw_multi_aff() const; |
2943 | inline isl::set lower_bound(const isl::multi_pw_aff &lower) const; |
2944 | inline isl::set lower_bound(const isl::multi_val &lower) const; |
2945 | inline isl::set lower_bound_si(isl::dim type, unsigned int pos, int value) const; |
2946 | inline isl::set lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const; |
2947 | inline isl::set lower_bound_val(isl::dim type, unsigned int pos, long value) const; |
2948 | inline isl::multi_pw_aff max_multi_pw_aff() const; |
2949 | inline isl::val max_val(const isl::aff &obj) const; |
2950 | inline isl::multi_pw_aff min_multi_pw_aff() const; |
2951 | inline isl::val min_val(const isl::aff &obj) const; |
2952 | inline isl::multi_val multi_val() const; |
2953 | inline isl::multi_val get_multi_val() const; |
2954 | inline class size n_basic_set() const; |
2955 | inline isl::basic_set params() const; |
2956 | inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const; |
2957 | inline isl::multi_val plain_multi_val_if_fixed() const; |
2958 | inline isl::basic_set polyhedral_hull() const; |
2959 | inline isl::set preimage(const isl::multi_aff &ma) const; |
2960 | inline isl::set preimage(const isl::multi_pw_aff &mpa) const; |
2961 | inline isl::set preimage(const isl::pw_multi_aff &pma) const; |
2962 | inline isl::union_set preimage(const isl::union_pw_multi_aff &upma) const; |
2963 | inline isl::set product(const isl::set &set2) const; |
2964 | inline isl::basic_set project_out(isl::dim type, unsigned int first, unsigned int n) const; |
2965 | inline isl::set project_out_all_params() const; |
2966 | inline isl::set project_out_param(const isl::id &id) const; |
2967 | inline isl::set project_out_param(const std::string &id) const; |
2968 | inline isl::set project_out_param(const isl::id_list &list) const; |
2969 | inline isl::pw_multi_aff pw_multi_aff_on_domain(const isl::multi_val &mv) const; |
2970 | inline isl::set remove_dims(isl::dim type, unsigned int first, unsigned int n) const; |
2971 | inline isl::set remove_divs() const; |
2972 | inline isl::set remove_redundancies() const; |
2973 | inline isl::set reset_tuple_id() const; |
2974 | inline isl::basic_set sample() const; |
2975 | inline isl::point sample_point() const; |
2976 | inline isl::set set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const; |
2977 | inline isl::set set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const; |
2978 | inline isl::set_list set_list() const; |
2979 | inline isl::set set_tuple_id(const isl::id &id) const; |
2980 | inline isl::set set_tuple_id(const std::string &id) const; |
2981 | inline isl::fixed_box simple_fixed_box_hull() const; |
2982 | inline isl::basic_set simple_hull() const; |
2983 | inline isl::space space() const; |
2984 | inline isl::val stride(int pos) const; |
2985 | inline isl::set subtract(const isl::set &set2) const; |
2986 | inline isl::union_set subtract(const isl::union_set &uset2) const; |
2987 | inline isl::basic_set_list to_list() const; |
2988 | inline isl::set to_set() const; |
2989 | inline isl::union_set to_union_set() const; |
2990 | inline isl::map translation() const; |
2991 | inline class size tuple_dim() const; |
2992 | inline isl::id tuple_id() const; |
2993 | inline std::string tuple_name() const; |
2994 | inline isl::set unbind_params(const isl::multi_id &tuple) const; |
2995 | inline isl::map unbind_params_insert_domain(const isl::multi_id &domain) const; |
2996 | inline isl::set unite(const isl::basic_set &bset2) const; |
2997 | inline isl::set unite(const isl::set &set2) const; |
2998 | inline isl::union_set unite(const isl::union_set &uset2) const; |
2999 | inline isl::basic_set unshifted_simple_hull() const; |
3000 | inline isl::map unwrap() const; |
3001 | inline isl::set upper_bound(const isl::multi_pw_aff &upper) const; |
3002 | inline isl::set upper_bound(const isl::multi_val &upper) const; |
3003 | inline isl::set upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const; |
3004 | inline isl::set upper_bound_val(isl::dim type, unsigned int pos, long value) const; |
3005 | }; |
3006 | |
3007 | // declarations for isl::pw_aff |
3008 | inline pw_aff manage(__isl_take isl_pw_aff *ptr); |
3009 | inline pw_aff manage_copy(__isl_keep isl_pw_aff *ptr); |
3010 | |
3011 | class pw_aff { |
3012 | friend inline pw_aff manage(__isl_take isl_pw_aff *ptr); |
3013 | friend inline pw_aff manage_copy(__isl_keep isl_pw_aff *ptr); |
3014 | |
3015 | protected: |
3016 | isl_pw_aff *ptr = nullptr; |
3017 | |
3018 | inline explicit pw_aff(__isl_take isl_pw_aff *ptr); |
3019 | |
3020 | public: |
3021 | inline /* implicit */ pw_aff(); |
3022 | inline /* implicit */ pw_aff(const pw_aff &obj); |
3023 | inline /* implicit */ pw_aff(isl::aff aff); |
3024 | inline explicit pw_aff(isl::ctx ctx, const std::string &str); |
3025 | inline explicit pw_aff(isl::set domain, isl::val v); |
3026 | inline explicit pw_aff(isl::local_space ls); |
3027 | inline pw_aff &operator=(pw_aff obj); |
3028 | inline ~pw_aff(); |
3029 | inline __isl_give isl_pw_aff *copy() const &; |
3030 | inline __isl_give isl_pw_aff *copy() && = delete; |
3031 | inline __isl_keep isl_pw_aff *get() const; |
3032 | inline __isl_give isl_pw_aff *release(); |
3033 | inline bool is_null() const; |
3034 | inline isl::ctx ctx() const; |
3035 | |
3036 | inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const; |
3037 | inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const; |
3038 | inline isl::pw_aff add(isl::pw_aff pwaff2) const; |
3039 | inline isl::pw_multi_aff add(const isl::pw_multi_aff &pma2) const; |
3040 | inline isl::union_pw_aff add(const isl::union_pw_aff &upa2) const; |
3041 | inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const; |
3042 | inline isl::pw_aff add(const isl::aff &pwaff2) const; |
3043 | inline isl::pw_aff add_constant(isl::val v) const; |
3044 | inline isl::pw_aff add_constant(long v) const; |
3045 | inline isl::pw_multi_aff add_constant(const isl::multi_val &mv) const; |
3046 | inline isl::pw_aff add_dims(isl::dim type, unsigned int n) const; |
3047 | inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const; |
3048 | inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const; |
3049 | inline isl::aff as_aff() const; |
3050 | inline isl::map as_map() const; |
3051 | inline isl::multi_aff as_multi_aff() const; |
3052 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
3053 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
3054 | inline isl::set as_set() const; |
3055 | inline isl::union_map as_union_map() const; |
3056 | inline isl::pw_aff at(int pos) const; |
3057 | inline isl::set bind(const isl::multi_id &tuple) const; |
3058 | inline isl::set bind(isl::id id) const; |
3059 | inline isl::set bind(const std::string &id) const; |
3060 | inline isl::pw_aff bind_domain(isl::multi_id tuple) const; |
3061 | inline isl::pw_aff bind_domain_wrapped_domain(isl::multi_id tuple) const; |
3062 | inline isl::pw_aff ceil() const; |
3063 | inline isl::pw_aff coalesce() const; |
3064 | inline isl::pw_aff cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false) const; |
3065 | inline class size dim(isl::dim type) const; |
3066 | inline isl::id dim_id(isl::dim type, unsigned int pos) const; |
3067 | inline isl::id get_dim_id(isl::dim type, unsigned int pos) const; |
3068 | inline isl::pw_aff div(isl::pw_aff pa2) const; |
3069 | inline isl::set domain() const; |
3070 | inline isl::space domain_space() const; |
3071 | inline isl::space get_domain_space() const; |
3072 | inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const; |
3073 | inline isl::set eq_set(isl::pw_aff pwaff2) const; |
3074 | inline isl::val eval(isl::point pnt) const; |
3075 | inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const; |
3076 | inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const; |
3077 | inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const; |
3078 | inline isl::pw_multi_aff flat_range_product(const isl::pw_multi_aff &pma2) const; |
3079 | inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const; |
3080 | inline isl::pw_aff floor() const; |
3081 | inline stat foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const; |
3082 | inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const; |
3083 | inline stat foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const; |
3084 | inline isl::set ge_set(isl::pw_aff pwaff2) const; |
3085 | inline isl::pw_aff gist(isl::set context) const; |
3086 | inline isl::union_pw_aff gist(const isl::union_set &context) const; |
3087 | inline isl::pw_aff gist(const isl::basic_set &context) const; |
3088 | inline isl::pw_aff gist(const isl::point &context) const; |
3089 | inline isl::set gt_set(isl::pw_aff pwaff2) const; |
3090 | inline boolean has_range_tuple_id() const; |
3091 | inline isl::multi_pw_aff identity() const; |
3092 | inline isl::pw_aff insert_domain(isl::space domain) const; |
3093 | inline isl::pw_aff intersect_domain(isl::set set) const; |
3094 | inline isl::union_pw_aff intersect_domain(const isl::space &space) const; |
3095 | inline isl::union_pw_aff intersect_domain(const isl::union_set &uset) const; |
3096 | inline isl::pw_aff intersect_domain(const isl::basic_set &set) const; |
3097 | inline isl::pw_aff intersect_domain(const isl::point &set) const; |
3098 | inline isl::union_pw_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const; |
3099 | inline isl::union_pw_aff intersect_domain_wrapped_range(const isl::union_set &uset) const; |
3100 | inline isl::pw_aff intersect_params(isl::set set) const; |
3101 | inline boolean involves_locals() const; |
3102 | inline boolean involves_nan() const; |
3103 | inline boolean involves_param(const isl::id &id) const; |
3104 | inline boolean involves_param(const std::string &id) const; |
3105 | inline boolean involves_param(const isl::id_list &list) const; |
3106 | inline boolean is_cst() const; |
3107 | inline boolean is_equal(const isl::pw_aff &pa2) const; |
3108 | inline boolean isa_aff() const; |
3109 | inline boolean isa_multi_aff() const; |
3110 | inline boolean isa_pw_multi_aff() const; |
3111 | inline isl::set le_set(isl::pw_aff pwaff2) const; |
3112 | inline isl::pw_aff_list list() const; |
3113 | inline isl::set lt_set(isl::pw_aff pwaff2) const; |
3114 | inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const; |
3115 | inline isl::pw_aff max(isl::pw_aff pwaff2) const; |
3116 | inline isl::pw_aff max(const isl::aff &pwaff2) const; |
3117 | inline isl::multi_val max_multi_val() const; |
3118 | inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const; |
3119 | inline isl::pw_aff min(isl::pw_aff pwaff2) const; |
3120 | inline isl::pw_aff min(const isl::aff &pwaff2) const; |
3121 | inline isl::multi_val min_multi_val() const; |
3122 | inline isl::pw_aff mod(isl::val mod) const; |
3123 | inline isl::pw_aff mod(long mod) const; |
3124 | inline isl::pw_aff mul(isl::pw_aff pwaff2) const; |
3125 | inline class size n_piece() const; |
3126 | inline isl::set ne_set(isl::pw_aff pwaff2) const; |
3127 | inline isl::pw_aff neg() const; |
3128 | static inline isl::pw_aff param_on_domain(isl::set domain, isl::id id); |
3129 | inline boolean plain_is_empty() const; |
3130 | inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const; |
3131 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
3132 | inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const; |
3133 | inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const; |
3134 | inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const; |
3135 | inline isl::pw_multi_aff product(const isl::pw_multi_aff &pma2) const; |
3136 | inline isl::pw_aff pullback(isl::multi_aff ma) const; |
3137 | inline isl::pw_aff pullback(isl::multi_pw_aff mpa) const; |
3138 | inline isl::pw_aff pullback(isl::pw_multi_aff pma) const; |
3139 | inline isl::union_pw_aff pullback(const isl::union_pw_multi_aff &upma) const; |
3140 | inline isl::pw_multi_aff_list pw_multi_aff_list() const; |
3141 | inline isl::pw_multi_aff range_factor_domain() const; |
3142 | inline isl::pw_multi_aff range_factor_range() const; |
3143 | inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const; |
3144 | inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const; |
3145 | inline isl::pw_multi_aff range_product(const isl::pw_multi_aff &pma2) const; |
3146 | inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const; |
3147 | inline isl::id range_tuple_id() const; |
3148 | inline isl::multi_pw_aff reset_range_tuple_id() const; |
3149 | inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const; |
3150 | inline isl::multi_pw_aff scale(const isl::multi_val &mv) const; |
3151 | inline isl::pw_aff scale(isl::val v) const; |
3152 | inline isl::pw_aff scale(long v) const; |
3153 | inline isl::multi_pw_aff scale_down(const isl::multi_val &mv) const; |
3154 | inline isl::pw_aff scale_down(isl::val f) const; |
3155 | inline isl::pw_aff scale_down(long f) const; |
3156 | inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const; |
3157 | inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const; |
3158 | inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const; |
3159 | inline isl::pw_multi_aff set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const; |
3160 | inline isl::pw_multi_aff set_range_tuple(const isl::id &id) const; |
3161 | inline isl::pw_multi_aff set_range_tuple(const std::string &id) const; |
3162 | inline isl::pw_aff set_tuple_id(isl::dim type, isl::id id) const; |
3163 | inline isl::pw_aff set_tuple_id(isl::dim type, const std::string &id) const; |
3164 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const; |
3165 | inline class size size() const; |
3166 | inline isl::space space() const; |
3167 | inline isl::space get_space() const; |
3168 | inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const; |
3169 | inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const; |
3170 | inline isl::pw_aff sub(isl::pw_aff pwaff2) const; |
3171 | inline isl::pw_multi_aff sub(const isl::pw_multi_aff &pma2) const; |
3172 | inline isl::union_pw_aff sub(const isl::union_pw_aff &upa2) const; |
3173 | inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const; |
3174 | inline isl::pw_aff sub(const isl::aff &pwaff2) const; |
3175 | inline isl::pw_aff subtract_domain(isl::set set) const; |
3176 | inline isl::union_pw_aff subtract_domain(const isl::space &space) const; |
3177 | inline isl::union_pw_aff subtract_domain(const isl::union_set &uset) const; |
3178 | inline isl::pw_aff subtract_domain(const isl::basic_set &set) const; |
3179 | inline isl::pw_aff subtract_domain(const isl::point &set) const; |
3180 | inline isl::pw_aff tdiv_q(isl::pw_aff pa2) const; |
3181 | inline isl::pw_aff tdiv_r(isl::pw_aff pa2) const; |
3182 | inline isl::pw_aff_list to_list() const; |
3183 | inline isl::multi_pw_aff to_multi_pw_aff() const; |
3184 | inline isl::union_pw_aff to_union_pw_aff() const; |
3185 | inline isl::union_pw_multi_aff to_union_pw_multi_aff() const; |
3186 | inline isl::id tuple_id(isl::dim type) const; |
3187 | inline isl::id get_tuple_id(isl::dim type) const; |
3188 | inline isl::multi_pw_aff unbind_params_insert_domain(const isl::multi_id &domain) const; |
3189 | inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const; |
3190 | inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const; |
3191 | inline isl::pw_aff union_add(isl::pw_aff pwaff2) const; |
3192 | inline isl::pw_multi_aff union_add(const isl::pw_multi_aff &pma2) const; |
3193 | inline isl::union_pw_aff union_add(const isl::union_pw_aff &upa2) const; |
3194 | inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const; |
3195 | inline isl::pw_aff union_add(const isl::aff &pwaff2) const; |
3196 | static inline isl::pw_aff var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos); |
3197 | }; |
3198 | |
3199 | // declarations for isl::pw_aff_list |
3200 | inline pw_aff_list manage(__isl_take isl_pw_aff_list *ptr); |
3201 | inline pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr); |
3202 | |
3203 | class pw_aff_list { |
3204 | friend inline pw_aff_list manage(__isl_take isl_pw_aff_list *ptr); |
3205 | friend inline pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr); |
3206 | |
3207 | protected: |
3208 | isl_pw_aff_list *ptr = nullptr; |
3209 | |
3210 | inline explicit pw_aff_list(__isl_take isl_pw_aff_list *ptr); |
3211 | |
3212 | public: |
3213 | inline /* implicit */ pw_aff_list(); |
3214 | inline /* implicit */ pw_aff_list(const pw_aff_list &obj); |
3215 | inline explicit pw_aff_list(isl::ctx ctx, int n); |
3216 | inline explicit pw_aff_list(isl::pw_aff el); |
3217 | inline explicit pw_aff_list(isl::ctx ctx, const std::string &str); |
3218 | inline pw_aff_list &operator=(pw_aff_list obj); |
3219 | inline ~pw_aff_list(); |
3220 | inline __isl_give isl_pw_aff_list *copy() const &; |
3221 | inline __isl_give isl_pw_aff_list *copy() && = delete; |
3222 | inline __isl_keep isl_pw_aff_list *get() const; |
3223 | inline __isl_give isl_pw_aff_list *release(); |
3224 | inline bool is_null() const; |
3225 | inline isl::ctx ctx() const; |
3226 | |
3227 | inline isl::pw_aff_list add(isl::pw_aff el) const; |
3228 | inline isl::pw_aff at(int index) const; |
3229 | inline isl::pw_aff get_at(int index) const; |
3230 | inline isl::pw_aff_list clear() const; |
3231 | inline isl::pw_aff_list concat(isl::pw_aff_list list2) const; |
3232 | inline isl::pw_aff_list drop(unsigned int first, unsigned int n) const; |
3233 | inline stat foreach(const std::function<stat(isl::pw_aff)> &fn) const; |
3234 | inline isl::pw_aff_list insert(unsigned int pos, isl::pw_aff el) const; |
3235 | inline class size size() const; |
3236 | }; |
3237 | |
3238 | // declarations for isl::pw_multi_aff |
3239 | inline pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr); |
3240 | inline pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr); |
3241 | |
3242 | class pw_multi_aff { |
3243 | friend inline pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr); |
3244 | friend inline pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr); |
3245 | |
3246 | protected: |
3247 | isl_pw_multi_aff *ptr = nullptr; |
3248 | |
3249 | inline explicit pw_multi_aff(__isl_take isl_pw_multi_aff *ptr); |
3250 | |
3251 | public: |
3252 | inline /* implicit */ pw_multi_aff(); |
3253 | inline /* implicit */ pw_multi_aff(const pw_multi_aff &obj); |
3254 | inline /* implicit */ pw_multi_aff(isl::multi_aff ma); |
3255 | inline /* implicit */ pw_multi_aff(isl::pw_aff pa); |
3256 | inline explicit pw_multi_aff(isl::ctx ctx, const std::string &str); |
3257 | inline pw_multi_aff &operator=(pw_multi_aff obj); |
3258 | inline ~pw_multi_aff(); |
3259 | inline __isl_give isl_pw_multi_aff *copy() const &; |
3260 | inline __isl_give isl_pw_multi_aff *copy() && = delete; |
3261 | inline __isl_keep isl_pw_multi_aff *get() const; |
3262 | inline __isl_give isl_pw_multi_aff *release(); |
3263 | inline bool is_null() const; |
3264 | inline isl::ctx ctx() const; |
3265 | |
3266 | inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const; |
3267 | inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const; |
3268 | inline isl::pw_multi_aff add(isl::pw_multi_aff pma2) const; |
3269 | inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const; |
3270 | inline isl::pw_multi_aff add(const isl::multi_aff &pma2) const; |
3271 | inline isl::pw_multi_aff add(const isl::pw_aff &pma2) const; |
3272 | inline isl::pw_multi_aff add_constant(isl::multi_val mv) const; |
3273 | inline isl::pw_multi_aff add_constant(isl::val v) const; |
3274 | inline isl::pw_multi_aff add_constant(long v) const; |
3275 | inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const; |
3276 | inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const; |
3277 | inline isl::map as_map() const; |
3278 | inline isl::multi_aff as_multi_aff() const; |
3279 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
3280 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
3281 | inline isl::set as_set() const; |
3282 | inline isl::union_map as_union_map() const; |
3283 | inline isl::pw_aff at(int pos) const; |
3284 | inline isl::pw_aff get_at(int pos) const; |
3285 | inline isl::set bind(const isl::multi_id &tuple) const; |
3286 | inline isl::pw_multi_aff bind_domain(isl::multi_id tuple) const; |
3287 | inline isl::pw_multi_aff bind_domain_wrapped_domain(isl::multi_id tuple) const; |
3288 | inline isl::pw_multi_aff coalesce() const; |
3289 | inline class size dim(isl::dim type) const; |
3290 | inline isl::set domain() const; |
3291 | static inline isl::pw_multi_aff domain_map(isl::space space); |
3292 | inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const; |
3293 | inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const; |
3294 | inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const; |
3295 | inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const; |
3296 | inline isl::pw_multi_aff flat_range_product(isl::pw_multi_aff pma2) const; |
3297 | inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const; |
3298 | inline isl::pw_multi_aff flat_range_product(const isl::multi_aff &pma2) const; |
3299 | inline isl::pw_multi_aff flat_range_product(const isl::pw_aff &pma2) const; |
3300 | inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const; |
3301 | static inline isl::pw_multi_aff from_map(isl::map map); |
3302 | inline isl::pw_multi_aff gist(isl::set set) const; |
3303 | inline isl::union_pw_multi_aff gist(const isl::union_set &context) const; |
3304 | inline isl::pw_multi_aff gist(const isl::basic_set &set) const; |
3305 | inline isl::pw_multi_aff gist(const isl::point &set) const; |
3306 | inline boolean has_range_tuple_id() const; |
3307 | inline isl::multi_pw_aff identity() const; |
3308 | static inline isl::pw_multi_aff identity_on_domain(isl::space space); |
3309 | inline isl::pw_multi_aff insert_domain(isl::space domain) const; |
3310 | inline isl::pw_multi_aff intersect_domain(isl::set set) const; |
3311 | inline isl::union_pw_multi_aff intersect_domain(const isl::space &space) const; |
3312 | inline isl::union_pw_multi_aff intersect_domain(const isl::union_set &uset) const; |
3313 | inline isl::pw_multi_aff intersect_domain(const isl::basic_set &set) const; |
3314 | inline isl::pw_multi_aff intersect_domain(const isl::point &set) const; |
3315 | inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const; |
3316 | inline isl::union_pw_multi_aff intersect_domain_wrapped_range(const isl::union_set &uset) const; |
3317 | inline isl::pw_multi_aff intersect_params(isl::set set) const; |
3318 | inline boolean involves_locals() const; |
3319 | inline boolean involves_nan() const; |
3320 | inline boolean involves_param(const isl::id &id) const; |
3321 | inline boolean involves_param(const std::string &id) const; |
3322 | inline boolean involves_param(const isl::id_list &list) const; |
3323 | inline boolean isa_multi_aff() const; |
3324 | inline boolean isa_pw_multi_aff() const; |
3325 | inline isl::pw_aff_list list() const; |
3326 | inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const; |
3327 | inline isl::multi_val max_multi_val() const; |
3328 | inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const; |
3329 | inline isl::multi_val min_multi_val() const; |
3330 | static inline isl::pw_multi_aff multi_val_on_domain(isl::set domain, isl::multi_val mv); |
3331 | inline class size n_piece() const; |
3332 | inline isl::multi_pw_aff neg() const; |
3333 | inline boolean plain_is_empty() const; |
3334 | inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const; |
3335 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
3336 | inline isl::pw_multi_aff preimage_domain_wrapped_domain(isl::pw_multi_aff pma2) const; |
3337 | inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const; |
3338 | inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::multi_aff &pma2) const; |
3339 | inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_aff &pma2) const; |
3340 | inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const; |
3341 | inline isl::pw_multi_aff product(isl::pw_multi_aff pma2) const; |
3342 | inline isl::pw_multi_aff product(const isl::multi_aff &pma2) const; |
3343 | inline isl::pw_multi_aff product(const isl::pw_aff &pma2) const; |
3344 | static inline isl::pw_multi_aff project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n); |
3345 | inline isl::multi_pw_aff pullback(const isl::multi_pw_aff &mpa2) const; |
3346 | inline isl::pw_multi_aff pullback(isl::multi_aff ma) const; |
3347 | inline isl::pw_multi_aff pullback(isl::pw_multi_aff pma2) const; |
3348 | inline isl::union_pw_multi_aff pullback(const isl::union_pw_multi_aff &upma2) const; |
3349 | inline isl::pw_multi_aff_list pw_multi_aff_list() const; |
3350 | inline isl::pw_multi_aff range_factor_domain() const; |
3351 | inline isl::pw_multi_aff range_factor_range() const; |
3352 | static inline isl::pw_multi_aff range_map(isl::space space); |
3353 | inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const; |
3354 | inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const; |
3355 | inline isl::pw_multi_aff range_product(isl::pw_multi_aff pma2) const; |
3356 | inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const; |
3357 | inline isl::pw_multi_aff range_product(const isl::multi_aff &pma2) const; |
3358 | inline isl::pw_multi_aff range_product(const isl::pw_aff &pma2) const; |
3359 | inline isl::id range_tuple_id() const; |
3360 | inline isl::id get_range_tuple_id() const; |
3361 | inline isl::multi_pw_aff reset_range_tuple_id() const; |
3362 | inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const; |
3363 | inline isl::multi_pw_aff scale(const isl::multi_val &mv) const; |
3364 | inline isl::pw_multi_aff scale(isl::val v) const; |
3365 | inline isl::pw_multi_aff scale(long v) const; |
3366 | inline isl::multi_pw_aff scale_down(const isl::multi_val &mv) const; |
3367 | inline isl::pw_multi_aff scale_down(isl::val v) const; |
3368 | inline isl::pw_multi_aff scale_down(long v) const; |
3369 | inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const; |
3370 | inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const; |
3371 | inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const; |
3372 | inline isl::pw_multi_aff set_pw_aff(unsigned int pos, isl::pw_aff pa) const; |
3373 | inline isl::pw_multi_aff set_range_tuple(isl::id id) const; |
3374 | inline isl::pw_multi_aff set_range_tuple(const std::string &id) const; |
3375 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const; |
3376 | inline class size size() const; |
3377 | inline isl::space space() const; |
3378 | inline isl::space get_space() const; |
3379 | inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const; |
3380 | inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const; |
3381 | inline isl::pw_multi_aff sub(isl::pw_multi_aff pma2) const; |
3382 | inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const; |
3383 | inline isl::pw_multi_aff sub(const isl::multi_aff &pma2) const; |
3384 | inline isl::pw_multi_aff sub(const isl::pw_aff &pma2) const; |
3385 | inline isl::pw_multi_aff subtract_domain(isl::set set) const; |
3386 | inline isl::union_pw_multi_aff subtract_domain(const isl::space &space) const; |
3387 | inline isl::union_pw_multi_aff subtract_domain(const isl::union_set &uset) const; |
3388 | inline isl::pw_multi_aff subtract_domain(const isl::basic_set &set) const; |
3389 | inline isl::pw_multi_aff subtract_domain(const isl::point &set) const; |
3390 | inline isl::pw_multi_aff_list to_list() const; |
3391 | inline isl::multi_pw_aff to_multi_pw_aff() const; |
3392 | inline isl::union_pw_multi_aff to_union_pw_multi_aff() const; |
3393 | inline isl::id tuple_id(isl::dim type) const; |
3394 | inline isl::id get_tuple_id(isl::dim type) const; |
3395 | inline isl::multi_pw_aff unbind_params_insert_domain(const isl::multi_id &domain) const; |
3396 | inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const; |
3397 | inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const; |
3398 | inline isl::pw_multi_aff union_add(isl::pw_multi_aff pma2) const; |
3399 | inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const; |
3400 | inline isl::pw_multi_aff union_add(const isl::multi_aff &pma2) const; |
3401 | inline isl::pw_multi_aff union_add(const isl::pw_aff &pma2) const; |
3402 | static inline isl::pw_multi_aff zero(isl::space space); |
3403 | }; |
3404 | |
3405 | // declarations for isl::pw_multi_aff_list |
3406 | inline pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr); |
3407 | inline pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr); |
3408 | |
3409 | class pw_multi_aff_list { |
3410 | friend inline pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr); |
3411 | friend inline pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr); |
3412 | |
3413 | protected: |
3414 | isl_pw_multi_aff_list *ptr = nullptr; |
3415 | |
3416 | inline explicit pw_multi_aff_list(__isl_take isl_pw_multi_aff_list *ptr); |
3417 | |
3418 | public: |
3419 | inline /* implicit */ pw_multi_aff_list(); |
3420 | inline /* implicit */ pw_multi_aff_list(const pw_multi_aff_list &obj); |
3421 | inline explicit pw_multi_aff_list(isl::ctx ctx, int n); |
3422 | inline explicit pw_multi_aff_list(isl::pw_multi_aff el); |
3423 | inline explicit pw_multi_aff_list(isl::ctx ctx, const std::string &str); |
3424 | inline pw_multi_aff_list &operator=(pw_multi_aff_list obj); |
3425 | inline ~pw_multi_aff_list(); |
3426 | inline __isl_give isl_pw_multi_aff_list *copy() const &; |
3427 | inline __isl_give isl_pw_multi_aff_list *copy() && = delete; |
3428 | inline __isl_keep isl_pw_multi_aff_list *get() const; |
3429 | inline __isl_give isl_pw_multi_aff_list *release(); |
3430 | inline bool is_null() const; |
3431 | inline isl::ctx ctx() const; |
3432 | |
3433 | inline isl::pw_multi_aff_list add(isl::pw_multi_aff el) const; |
3434 | inline isl::pw_multi_aff at(int index) const; |
3435 | inline isl::pw_multi_aff get_at(int index) const; |
3436 | inline isl::pw_multi_aff_list clear() const; |
3437 | inline isl::pw_multi_aff_list concat(isl::pw_multi_aff_list list2) const; |
3438 | inline isl::pw_multi_aff_list drop(unsigned int first, unsigned int n) const; |
3439 | inline stat foreach(const std::function<stat(isl::pw_multi_aff)> &fn) const; |
3440 | inline isl::pw_multi_aff_list insert(unsigned int pos, isl::pw_multi_aff el) const; |
3441 | inline class size size() const; |
3442 | }; |
3443 | |
3444 | // declarations for isl::schedule |
3445 | inline schedule manage(__isl_take isl_schedule *ptr); |
3446 | inline schedule manage_copy(__isl_keep isl_schedule *ptr); |
3447 | |
3448 | class schedule { |
3449 | friend inline schedule manage(__isl_take isl_schedule *ptr); |
3450 | friend inline schedule manage_copy(__isl_keep isl_schedule *ptr); |
3451 | |
3452 | protected: |
3453 | isl_schedule *ptr = nullptr; |
3454 | |
3455 | inline explicit schedule(__isl_take isl_schedule *ptr); |
3456 | |
3457 | public: |
3458 | inline /* implicit */ schedule(); |
3459 | inline /* implicit */ schedule(const schedule &obj); |
3460 | inline explicit schedule(isl::ctx ctx, const std::string &str); |
3461 | inline schedule &operator=(schedule obj); |
3462 | inline ~schedule(); |
3463 | inline __isl_give isl_schedule *copy() const &; |
3464 | inline __isl_give isl_schedule *copy() && = delete; |
3465 | inline __isl_keep isl_schedule *get() const; |
3466 | inline __isl_give isl_schedule *release(); |
3467 | inline bool is_null() const; |
3468 | inline isl::ctx ctx() const; |
3469 | |
3470 | inline isl::schedule align_params(isl::space space) const; |
3471 | inline isl::union_set domain() const; |
3472 | inline isl::union_set get_domain() const; |
3473 | static inline isl::schedule from_domain(isl::union_set domain); |
3474 | inline isl::schedule gist_domain_params(isl::set context) const; |
3475 | inline isl::schedule insert_partial_schedule(isl::multi_union_pw_aff partial) const; |
3476 | inline isl::schedule intersect_domain(isl::union_set domain) const; |
3477 | inline isl::union_map map() const; |
3478 | inline isl::union_map get_map() const; |
3479 | inline isl::schedule pullback(isl::union_pw_multi_aff upma) const; |
3480 | inline isl::schedule_node root() const; |
3481 | inline isl::schedule_node get_root() const; |
3482 | inline isl::schedule sequence(isl::schedule schedule2) const; |
3483 | }; |
3484 | |
3485 | // declarations for isl::schedule_constraints |
3486 | inline schedule_constraints manage(__isl_take isl_schedule_constraints *ptr); |
3487 | inline schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr); |
3488 | |
3489 | class schedule_constraints { |
3490 | friend inline schedule_constraints manage(__isl_take isl_schedule_constraints *ptr); |
3491 | friend inline schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr); |
3492 | |
3493 | protected: |
3494 | isl_schedule_constraints *ptr = nullptr; |
3495 | |
3496 | inline explicit schedule_constraints(__isl_take isl_schedule_constraints *ptr); |
3497 | |
3498 | public: |
3499 | inline /* implicit */ schedule_constraints(); |
3500 | inline /* implicit */ schedule_constraints(const schedule_constraints &obj); |
3501 | inline explicit schedule_constraints(isl::ctx ctx, const std::string &str); |
3502 | inline schedule_constraints &operator=(schedule_constraints obj); |
3503 | inline ~schedule_constraints(); |
3504 | inline __isl_give isl_schedule_constraints *copy() const &; |
3505 | inline __isl_give isl_schedule_constraints *copy() && = delete; |
3506 | inline __isl_keep isl_schedule_constraints *get() const; |
3507 | inline __isl_give isl_schedule_constraints *release(); |
3508 | inline bool is_null() const; |
3509 | inline isl::ctx ctx() const; |
3510 | |
3511 | inline isl::union_map coincidence() const; |
3512 | inline isl::union_map get_coincidence() const; |
3513 | inline isl::schedule compute_schedule() const; |
3514 | inline isl::union_map conditional_validity() const; |
3515 | inline isl::union_map get_conditional_validity() const; |
3516 | inline isl::union_map conditional_validity_condition() const; |
3517 | inline isl::union_map get_conditional_validity_condition() const; |
3518 | inline isl::set context() const; |
3519 | inline isl::set get_context() const; |
3520 | inline isl::union_set domain() const; |
3521 | inline isl::union_set get_domain() const; |
3522 | static inline isl::schedule_constraints on_domain(isl::union_set domain); |
3523 | inline isl::union_map proximity() const; |
3524 | inline isl::union_map get_proximity() const; |
3525 | inline isl::schedule_constraints set_coincidence(isl::union_map coincidence) const; |
3526 | inline isl::schedule_constraints set_conditional_validity(isl::union_map condition, isl::union_map validity) const; |
3527 | inline isl::schedule_constraints set_context(isl::set context) const; |
3528 | inline isl::schedule_constraints set_proximity(isl::union_map proximity) const; |
3529 | inline isl::schedule_constraints set_validity(isl::union_map validity) const; |
3530 | inline isl::union_map validity() const; |
3531 | inline isl::union_map get_validity() const; |
3532 | }; |
3533 | |
3534 | // declarations for isl::schedule_node |
3535 | inline schedule_node manage(__isl_take isl_schedule_node *ptr); |
3536 | inline schedule_node manage_copy(__isl_keep isl_schedule_node *ptr); |
3537 | |
3538 | class schedule_node { |
3539 | friend inline schedule_node manage(__isl_take isl_schedule_node *ptr); |
3540 | friend inline schedule_node manage_copy(__isl_keep isl_schedule_node *ptr); |
3541 | |
3542 | protected: |
3543 | isl_schedule_node *ptr = nullptr; |
3544 | |
3545 | inline explicit schedule_node(__isl_take isl_schedule_node *ptr); |
3546 | |
3547 | public: |
3548 | inline /* implicit */ schedule_node(); |
3549 | inline /* implicit */ schedule_node(const schedule_node &obj); |
3550 | inline schedule_node &operator=(schedule_node obj); |
3551 | inline ~schedule_node(); |
3552 | inline __isl_give isl_schedule_node *copy() const &; |
3553 | inline __isl_give isl_schedule_node *copy() && = delete; |
3554 | inline __isl_keep isl_schedule_node *get() const; |
3555 | inline __isl_give isl_schedule_node *release(); |
3556 | inline bool is_null() const; |
3557 | private: |
3558 | template <typename T, |
3559 | typename = typename std::enable_if<std::is_same< |
3560 | const decltype(isl_schedule_node_get_type(node: nullptr)), |
3561 | const T>::value>::type> |
3562 | inline boolean isa_type(T subtype) const; |
3563 | public: |
3564 | template <class T> inline boolean isa() const; |
3565 | template <class T> inline T as() const; |
3566 | inline isl::ctx ctx() const; |
3567 | |
3568 | inline isl::schedule_node ancestor(int generation) const; |
3569 | inline class size ancestor_child_position(const isl::schedule_node &ancestor) const; |
3570 | inline class size get_ancestor_child_position(const isl::schedule_node &ancestor) const; |
3571 | inline isl::schedule_node child(int pos) const; |
3572 | inline class size child_position() const; |
3573 | inline class size get_child_position() const; |
3574 | inline isl::union_set domain() const; |
3575 | inline isl::union_set get_domain() const; |
3576 | inline boolean every_descendant(const std::function<boolean(isl::schedule_node)> &test) const; |
3577 | inline isl::schedule_node first_child() const; |
3578 | inline stat foreach_ancestor_top_down(const std::function<stat(isl::schedule_node)> &fn) const; |
3579 | inline stat foreach_descendant_top_down(const std::function<boolean(isl::schedule_node)> &fn) const; |
3580 | static inline isl::schedule_node from_domain(isl::union_set domain); |
3581 | static inline isl::schedule_node from_extension(isl::union_map extension); |
3582 | inline isl::schedule_node graft_after(isl::schedule_node graft) const; |
3583 | inline isl::schedule_node graft_before(isl::schedule_node graft) const; |
3584 | inline boolean has_children() const; |
3585 | inline boolean has_next_sibling() const; |
3586 | inline boolean has_parent() const; |
3587 | inline boolean has_previous_sibling() const; |
3588 | inline isl::schedule_node insert_context(isl::set context) const; |
3589 | inline isl::schedule_node insert_filter(isl::union_set filter) const; |
3590 | inline isl::schedule_node insert_guard(isl::set context) const; |
3591 | inline isl::schedule_node insert_mark(isl::id mark) const; |
3592 | inline isl::schedule_node insert_mark(const std::string &mark) const; |
3593 | inline isl::schedule_node insert_partial_schedule(isl::multi_union_pw_aff schedule) const; |
3594 | inline isl::schedule_node insert_sequence(isl::union_set_list filters) const; |
3595 | inline isl::schedule_node insert_set(isl::union_set_list filters) const; |
3596 | inline boolean is_equal(const isl::schedule_node &node2) const; |
3597 | inline boolean is_subtree_anchored() const; |
3598 | inline isl::schedule_node map_descendant_bottom_up(const std::function<isl::schedule_node(isl::schedule_node)> &fn) const; |
3599 | inline class size n_children() const; |
3600 | inline isl::schedule_node next_sibling() const; |
3601 | inline isl::schedule_node order_after(isl::union_set filter) const; |
3602 | inline isl::schedule_node order_before(isl::union_set filter) const; |
3603 | inline isl::schedule_node parent() const; |
3604 | inline isl::multi_union_pw_aff prefix_schedule_multi_union_pw_aff() const; |
3605 | inline isl::multi_union_pw_aff get_prefix_schedule_multi_union_pw_aff() const; |
3606 | inline isl::union_map prefix_schedule_relation() const; |
3607 | inline isl::union_map get_prefix_schedule_relation() const; |
3608 | inline isl::union_map prefix_schedule_union_map() const; |
3609 | inline isl::union_map get_prefix_schedule_union_map() const; |
3610 | inline isl::union_pw_multi_aff prefix_schedule_union_pw_multi_aff() const; |
3611 | inline isl::union_pw_multi_aff get_prefix_schedule_union_pw_multi_aff() const; |
3612 | inline isl::schedule_node previous_sibling() const; |
3613 | inline isl::schedule_node root() const; |
3614 | inline isl::schedule schedule() const; |
3615 | inline isl::schedule get_schedule() const; |
3616 | inline class size schedule_depth() const; |
3617 | inline class size get_schedule_depth() const; |
3618 | inline isl::schedule_node shared_ancestor(const isl::schedule_node &node2) const; |
3619 | inline isl::schedule_node get_shared_ancestor(const isl::schedule_node &node2) const; |
3620 | inline class size tree_depth() const; |
3621 | inline class size get_tree_depth() const; |
3622 | inline isl::union_set universe_domain() const; |
3623 | inline isl::union_set get_universe_domain() const; |
3624 | }; |
3625 | |
3626 | // declarations for isl::schedule_node_band |
3627 | |
3628 | class schedule_node_band : public schedule_node { |
3629 | template <class T> |
3630 | friend boolean schedule_node::isa() const; |
3631 | friend schedule_node_band schedule_node::as<schedule_node_band>() const; |
3632 | static const auto type = isl_schedule_node_band; |
3633 | |
3634 | protected: |
3635 | inline explicit schedule_node_band(__isl_take isl_schedule_node *ptr); |
3636 | |
3637 | public: |
3638 | inline /* implicit */ schedule_node_band(); |
3639 | inline /* implicit */ schedule_node_band(const schedule_node_band &obj); |
3640 | inline schedule_node_band &operator=(schedule_node_band obj); |
3641 | inline isl::ctx ctx() const; |
3642 | |
3643 | inline isl::union_set ast_build_options() const; |
3644 | inline isl::union_set get_ast_build_options() const; |
3645 | inline isl::set ast_isolate_option() const; |
3646 | inline isl::set get_ast_isolate_option() const; |
3647 | inline boolean member_get_coincident(int pos) const; |
3648 | inline schedule_node_band member_set_coincident(int pos, int coincident) const; |
3649 | inline schedule_node_band mod(isl::multi_val mv) const; |
3650 | inline class size n_member() const; |
3651 | inline isl::multi_union_pw_aff partial_schedule() const; |
3652 | inline isl::multi_union_pw_aff get_partial_schedule() const; |
3653 | inline boolean permutable() const; |
3654 | inline boolean get_permutable() const; |
3655 | inline schedule_node_band scale(isl::multi_val mv) const; |
3656 | inline schedule_node_band scale_down(isl::multi_val mv) const; |
3657 | inline schedule_node_band set_ast_build_options(isl::union_set options) const; |
3658 | inline schedule_node_band set_permutable(int permutable) const; |
3659 | inline schedule_node_band shift(isl::multi_union_pw_aff shift) const; |
3660 | inline schedule_node_band split(int pos) const; |
3661 | inline schedule_node_band tile(isl::multi_val sizes) const; |
3662 | inline schedule_node_band member_set_ast_loop_default(int pos) const; |
3663 | inline schedule_node_band member_set_ast_loop_atomic(int pos) const; |
3664 | inline schedule_node_band member_set_ast_loop_unroll(int pos) const; |
3665 | inline schedule_node_band member_set_ast_loop_separate(int pos) const; |
3666 | }; |
3667 | |
3668 | // declarations for isl::schedule_node_context |
3669 | |
3670 | class schedule_node_context : public schedule_node { |
3671 | template <class T> |
3672 | friend boolean schedule_node::isa() const; |
3673 | friend schedule_node_context schedule_node::as<schedule_node_context>() const; |
3674 | static const auto type = isl_schedule_node_context; |
3675 | |
3676 | protected: |
3677 | inline explicit schedule_node_context(__isl_take isl_schedule_node *ptr); |
3678 | |
3679 | public: |
3680 | inline /* implicit */ schedule_node_context(); |
3681 | inline /* implicit */ schedule_node_context(const schedule_node_context &obj); |
3682 | inline schedule_node_context &operator=(schedule_node_context obj); |
3683 | inline isl::ctx ctx() const; |
3684 | |
3685 | inline isl::set context() const; |
3686 | inline isl::set get_context() const; |
3687 | }; |
3688 | |
3689 | // declarations for isl::schedule_node_domain |
3690 | |
3691 | class schedule_node_domain : public schedule_node { |
3692 | template <class T> |
3693 | friend boolean schedule_node::isa() const; |
3694 | friend schedule_node_domain schedule_node::as<schedule_node_domain>() const; |
3695 | static const auto type = isl_schedule_node_domain; |
3696 | |
3697 | protected: |
3698 | inline explicit schedule_node_domain(__isl_take isl_schedule_node *ptr); |
3699 | |
3700 | public: |
3701 | inline /* implicit */ schedule_node_domain(); |
3702 | inline /* implicit */ schedule_node_domain(const schedule_node_domain &obj); |
3703 | inline schedule_node_domain &operator=(schedule_node_domain obj); |
3704 | inline isl::ctx ctx() const; |
3705 | |
3706 | inline isl::union_set domain() const; |
3707 | inline isl::union_set get_domain() const; |
3708 | }; |
3709 | |
3710 | // declarations for isl::schedule_node_expansion |
3711 | |
3712 | class schedule_node_expansion : public schedule_node { |
3713 | template <class T> |
3714 | friend boolean schedule_node::isa() const; |
3715 | friend schedule_node_expansion schedule_node::as<schedule_node_expansion>() const; |
3716 | static const auto type = isl_schedule_node_expansion; |
3717 | |
3718 | protected: |
3719 | inline explicit schedule_node_expansion(__isl_take isl_schedule_node *ptr); |
3720 | |
3721 | public: |
3722 | inline /* implicit */ schedule_node_expansion(); |
3723 | inline /* implicit */ schedule_node_expansion(const schedule_node_expansion &obj); |
3724 | inline schedule_node_expansion &operator=(schedule_node_expansion obj); |
3725 | inline isl::ctx ctx() const; |
3726 | |
3727 | inline isl::union_pw_multi_aff contraction() const; |
3728 | inline isl::union_pw_multi_aff get_contraction() const; |
3729 | inline isl::union_map expansion() const; |
3730 | inline isl::union_map get_expansion() const; |
3731 | }; |
3732 | |
3733 | // declarations for isl::schedule_node_extension |
3734 | |
3735 | class schedule_node_extension : public schedule_node { |
3736 | template <class T> |
3737 | friend boolean schedule_node::isa() const; |
3738 | friend schedule_node_extension schedule_node::as<schedule_node_extension>() const; |
3739 | static const auto type = isl_schedule_node_extension; |
3740 | |
3741 | protected: |
3742 | inline explicit schedule_node_extension(__isl_take isl_schedule_node *ptr); |
3743 | |
3744 | public: |
3745 | inline /* implicit */ schedule_node_extension(); |
3746 | inline /* implicit */ schedule_node_extension(const schedule_node_extension &obj); |
3747 | inline schedule_node_extension &operator=(schedule_node_extension obj); |
3748 | inline isl::ctx ctx() const; |
3749 | |
3750 | inline isl::union_map extension() const; |
3751 | inline isl::union_map get_extension() const; |
3752 | }; |
3753 | |
3754 | // declarations for isl::schedule_node_filter |
3755 | |
3756 | class schedule_node_filter : public schedule_node { |
3757 | template <class T> |
3758 | friend boolean schedule_node::isa() const; |
3759 | friend schedule_node_filter schedule_node::as<schedule_node_filter>() const; |
3760 | static const auto type = isl_schedule_node_filter; |
3761 | |
3762 | protected: |
3763 | inline explicit schedule_node_filter(__isl_take isl_schedule_node *ptr); |
3764 | |
3765 | public: |
3766 | inline /* implicit */ schedule_node_filter(); |
3767 | inline /* implicit */ schedule_node_filter(const schedule_node_filter &obj); |
3768 | inline schedule_node_filter &operator=(schedule_node_filter obj); |
3769 | inline isl::ctx ctx() const; |
3770 | |
3771 | inline isl::union_set filter() const; |
3772 | inline isl::union_set get_filter() const; |
3773 | }; |
3774 | |
3775 | // declarations for isl::schedule_node_guard |
3776 | |
3777 | class schedule_node_guard : public schedule_node { |
3778 | template <class T> |
3779 | friend boolean schedule_node::isa() const; |
3780 | friend schedule_node_guard schedule_node::as<schedule_node_guard>() const; |
3781 | static const auto type = isl_schedule_node_guard; |
3782 | |
3783 | protected: |
3784 | inline explicit schedule_node_guard(__isl_take isl_schedule_node *ptr); |
3785 | |
3786 | public: |
3787 | inline /* implicit */ schedule_node_guard(); |
3788 | inline /* implicit */ schedule_node_guard(const schedule_node_guard &obj); |
3789 | inline schedule_node_guard &operator=(schedule_node_guard obj); |
3790 | inline isl::ctx ctx() const; |
3791 | |
3792 | inline isl::set guard() const; |
3793 | inline isl::set get_guard() const; |
3794 | }; |
3795 | |
3796 | // declarations for isl::schedule_node_leaf |
3797 | |
3798 | class schedule_node_leaf : public schedule_node { |
3799 | template <class T> |
3800 | friend boolean schedule_node::isa() const; |
3801 | friend schedule_node_leaf schedule_node::as<schedule_node_leaf>() const; |
3802 | static const auto type = isl_schedule_node_leaf; |
3803 | |
3804 | protected: |
3805 | inline explicit schedule_node_leaf(__isl_take isl_schedule_node *ptr); |
3806 | |
3807 | public: |
3808 | inline /* implicit */ schedule_node_leaf(); |
3809 | inline /* implicit */ schedule_node_leaf(const schedule_node_leaf &obj); |
3810 | inline schedule_node_leaf &operator=(schedule_node_leaf obj); |
3811 | inline isl::ctx ctx() const; |
3812 | |
3813 | }; |
3814 | |
3815 | // declarations for isl::schedule_node_mark |
3816 | |
3817 | class schedule_node_mark : public schedule_node { |
3818 | template <class T> |
3819 | friend boolean schedule_node::isa() const; |
3820 | friend schedule_node_mark schedule_node::as<schedule_node_mark>() const; |
3821 | static const auto type = isl_schedule_node_mark; |
3822 | |
3823 | protected: |
3824 | inline explicit schedule_node_mark(__isl_take isl_schedule_node *ptr); |
3825 | |
3826 | public: |
3827 | inline /* implicit */ schedule_node_mark(); |
3828 | inline /* implicit */ schedule_node_mark(const schedule_node_mark &obj); |
3829 | inline schedule_node_mark &operator=(schedule_node_mark obj); |
3830 | inline isl::ctx ctx() const; |
3831 | |
3832 | inline isl::id id() const; |
3833 | inline isl::id get_id() const; |
3834 | }; |
3835 | |
3836 | // declarations for isl::schedule_node_sequence |
3837 | |
3838 | class schedule_node_sequence : public schedule_node { |
3839 | template <class T> |
3840 | friend boolean schedule_node::isa() const; |
3841 | friend schedule_node_sequence schedule_node::as<schedule_node_sequence>() const; |
3842 | static const auto type = isl_schedule_node_sequence; |
3843 | |
3844 | protected: |
3845 | inline explicit schedule_node_sequence(__isl_take isl_schedule_node *ptr); |
3846 | |
3847 | public: |
3848 | inline /* implicit */ schedule_node_sequence(); |
3849 | inline /* implicit */ schedule_node_sequence(const schedule_node_sequence &obj); |
3850 | inline schedule_node_sequence &operator=(schedule_node_sequence obj); |
3851 | inline isl::ctx ctx() const; |
3852 | |
3853 | }; |
3854 | |
3855 | // declarations for isl::schedule_node_set |
3856 | |
3857 | class schedule_node_set : public schedule_node { |
3858 | template <class T> |
3859 | friend boolean schedule_node::isa() const; |
3860 | friend schedule_node_set schedule_node::as<schedule_node_set>() const; |
3861 | static const auto type = isl_schedule_node_set; |
3862 | |
3863 | protected: |
3864 | inline explicit schedule_node_set(__isl_take isl_schedule_node *ptr); |
3865 | |
3866 | public: |
3867 | inline /* implicit */ schedule_node_set(); |
3868 | inline /* implicit */ schedule_node_set(const schedule_node_set &obj); |
3869 | inline schedule_node_set &operator=(schedule_node_set obj); |
3870 | inline isl::ctx ctx() const; |
3871 | |
3872 | }; |
3873 | |
3874 | // declarations for isl::set |
3875 | inline set manage(__isl_take isl_set *ptr); |
3876 | inline set manage_copy(__isl_keep isl_set *ptr); |
3877 | |
3878 | class set { |
3879 | friend inline set manage(__isl_take isl_set *ptr); |
3880 | friend inline set manage_copy(__isl_keep isl_set *ptr); |
3881 | |
3882 | protected: |
3883 | isl_set *ptr = nullptr; |
3884 | |
3885 | inline explicit set(__isl_take isl_set *ptr); |
3886 | |
3887 | public: |
3888 | inline /* implicit */ set(); |
3889 | inline /* implicit */ set(const set &obj); |
3890 | inline /* implicit */ set(isl::basic_set bset); |
3891 | inline /* implicit */ set(isl::point pnt); |
3892 | inline explicit set(isl::union_set uset); |
3893 | inline explicit set(isl::ctx ctx, const std::string &str); |
3894 | inline set &operator=(set obj); |
3895 | inline ~set(); |
3896 | inline __isl_give isl_set *copy() const &; |
3897 | inline __isl_give isl_set *copy() && = delete; |
3898 | inline __isl_keep isl_set *get() const; |
3899 | inline __isl_give isl_set *release(); |
3900 | inline bool is_null() const; |
3901 | inline isl::ctx ctx() const; |
3902 | |
3903 | inline isl::set add_constraint(isl::constraint constraint) const; |
3904 | inline isl::set add_dims(isl::dim type, unsigned int n) const; |
3905 | inline isl::basic_set affine_hull() const; |
3906 | inline isl::set align_params(isl::space model) const; |
3907 | inline isl::set apply(isl::map map) const; |
3908 | inline isl::union_set apply(const isl::union_map &umap) const; |
3909 | inline isl::set apply(const isl::basic_map &map) const; |
3910 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
3911 | inline isl::set as_set() const; |
3912 | inline isl::basic_set_list basic_set_list() const; |
3913 | inline isl::basic_set_list get_basic_set_list() const; |
3914 | inline isl::set bind(isl::multi_id tuple) const; |
3915 | inline isl::set coalesce() const; |
3916 | inline isl::set complement() const; |
3917 | inline isl::union_set compute_divs() const; |
3918 | inline boolean contains(const isl::space &space) const; |
3919 | inline isl::basic_set convex_hull() const; |
3920 | inline isl::set detect_equalities() const; |
3921 | inline class size dim(isl::dim type) const; |
3922 | inline boolean dim_has_any_lower_bound(isl::dim type, unsigned int pos) const; |
3923 | inline isl::id dim_id(isl::dim type, unsigned int pos) const; |
3924 | inline isl::id get_dim_id(isl::dim type, unsigned int pos) const; |
3925 | inline isl::pw_aff dim_max(int pos) const; |
3926 | inline isl::val dim_max_val(int pos) const; |
3927 | inline isl::pw_aff dim_min(int pos) const; |
3928 | inline isl::val dim_min_val(int pos) const; |
3929 | inline std::string dim_name(isl::dim type, unsigned int pos) const; |
3930 | inline std::string get_dim_name(isl::dim type, unsigned int pos) const; |
3931 | inline isl::set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const; |
3932 | inline isl::set eliminate(isl::dim type, unsigned int first, unsigned int n) const; |
3933 | static inline isl::set empty(isl::space space); |
3934 | inline boolean every_set(const std::function<boolean(isl::set)> &test) const; |
3935 | inline isl::set extract_set(const isl::space &space) const; |
3936 | inline int find_dim_by_id(isl::dim type, const isl::id &id) const; |
3937 | inline int find_dim_by_id(isl::dim type, const std::string &id) const; |
3938 | inline isl::set fix_si(isl::dim type, unsigned int pos, int value) const; |
3939 | inline isl::set flatten() const; |
3940 | inline stat foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const; |
3941 | inline stat foreach_point(const std::function<stat(isl::point)> &fn) const; |
3942 | inline stat foreach_set(const std::function<stat(isl::set)> &fn) const; |
3943 | inline isl::set gist(isl::set context) const; |
3944 | inline isl::union_set gist(const isl::union_set &context) const; |
3945 | inline isl::set gist(const isl::basic_set &context) const; |
3946 | inline isl::set gist(const isl::point &context) const; |
3947 | inline isl::set gist_params(isl::set context) const; |
3948 | inline boolean has_equal_space(const isl::set &set2) const; |
3949 | inline isl::map identity() const; |
3950 | inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const; |
3951 | inline isl::pw_aff indicator_function() const; |
3952 | inline isl::set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const; |
3953 | inline isl::map insert_domain(isl::space domain) const; |
3954 | inline isl::set intersect(isl::set set2) const; |
3955 | inline isl::union_set intersect(const isl::union_set &uset2) const; |
3956 | inline isl::set intersect(const isl::basic_set &set2) const; |
3957 | inline isl::set intersect(const isl::point &set2) const; |
3958 | inline isl::set intersect_params(isl::set params) const; |
3959 | inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const; |
3960 | inline boolean involves_locals() const; |
3961 | inline boolean is_bounded() const; |
3962 | inline boolean is_disjoint(const isl::set &set2) const; |
3963 | inline boolean is_disjoint(const isl::union_set &uset2) const; |
3964 | inline boolean is_disjoint(const isl::basic_set &set2) const; |
3965 | inline boolean is_disjoint(const isl::point &set2) const; |
3966 | inline boolean is_empty() const; |
3967 | inline boolean is_equal(const isl::set &set2) const; |
3968 | inline boolean is_equal(const isl::union_set &uset2) const; |
3969 | inline boolean is_equal(const isl::basic_set &set2) const; |
3970 | inline boolean is_equal(const isl::point &set2) const; |
3971 | inline boolean is_params() const; |
3972 | inline boolean is_singleton() const; |
3973 | inline boolean is_strict_subset(const isl::set &set2) const; |
3974 | inline boolean is_strict_subset(const isl::union_set &uset2) const; |
3975 | inline boolean is_strict_subset(const isl::basic_set &set2) const; |
3976 | inline boolean is_strict_subset(const isl::point &set2) const; |
3977 | inline boolean is_subset(const isl::set &set2) const; |
3978 | inline boolean is_subset(const isl::union_set &uset2) const; |
3979 | inline boolean is_subset(const isl::basic_set &set2) const; |
3980 | inline boolean is_subset(const isl::point &set2) const; |
3981 | inline boolean is_wrapping() const; |
3982 | inline boolean isa_set() const; |
3983 | inline isl::set lexmax() const; |
3984 | inline isl::pw_multi_aff lexmax_pw_multi_aff() const; |
3985 | inline isl::set lexmin() const; |
3986 | inline isl::pw_multi_aff lexmin_pw_multi_aff() const; |
3987 | inline isl::set lower_bound(isl::multi_pw_aff lower) const; |
3988 | inline isl::set lower_bound(isl::multi_val lower) const; |
3989 | inline isl::set lower_bound_si(isl::dim type, unsigned int pos, int value) const; |
3990 | inline isl::set lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const; |
3991 | inline isl::set lower_bound_val(isl::dim type, unsigned int pos, long value) const; |
3992 | inline isl::multi_pw_aff max_multi_pw_aff() const; |
3993 | inline isl::val max_val(const isl::aff &obj) const; |
3994 | inline isl::multi_pw_aff min_multi_pw_aff() const; |
3995 | inline isl::val min_val(const isl::aff &obj) const; |
3996 | inline class size n_basic_set() const; |
3997 | inline isl::set params() const; |
3998 | inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const; |
3999 | inline isl::multi_val plain_multi_val_if_fixed() const; |
4000 | inline isl::multi_val get_plain_multi_val_if_fixed() const; |
4001 | inline isl::basic_set polyhedral_hull() const; |
4002 | inline isl::set preimage(isl::multi_aff ma) const; |
4003 | inline isl::set preimage(isl::multi_pw_aff mpa) const; |
4004 | inline isl::set preimage(isl::pw_multi_aff pma) const; |
4005 | inline isl::union_set preimage(const isl::union_pw_multi_aff &upma) const; |
4006 | inline isl::set product(isl::set set2) const; |
4007 | inline isl::set project_out(isl::dim type, unsigned int first, unsigned int n) const; |
4008 | inline isl::set project_out_all_params() const; |
4009 | inline isl::set project_out_param(isl::id id) const; |
4010 | inline isl::set project_out_param(const std::string &id) const; |
4011 | inline isl::set project_out_param(isl::id_list list) const; |
4012 | inline isl::pw_multi_aff pw_multi_aff_on_domain(isl::multi_val mv) const; |
4013 | inline isl::set remove_dims(isl::dim type, unsigned int first, unsigned int n) const; |
4014 | inline isl::set remove_divs() const; |
4015 | inline isl::set remove_redundancies() const; |
4016 | inline isl::set reset_tuple_id() const; |
4017 | inline isl::basic_set sample() const; |
4018 | inline isl::point sample_point() const; |
4019 | inline isl::set set_dim_id(isl::dim type, unsigned int pos, isl::id id) const; |
4020 | inline isl::set set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const; |
4021 | inline isl::set_list set_list() const; |
4022 | inline isl::set set_tuple_id(isl::id id) const; |
4023 | inline isl::set set_tuple_id(const std::string &id) const; |
4024 | inline isl::fixed_box simple_fixed_box_hull() const; |
4025 | inline isl::fixed_box get_simple_fixed_box_hull() const; |
4026 | inline isl::basic_set simple_hull() const; |
4027 | inline isl::space space() const; |
4028 | inline isl::space get_space() const; |
4029 | inline isl::val stride(int pos) const; |
4030 | inline isl::val get_stride(int pos) const; |
4031 | inline isl::set subtract(isl::set set2) const; |
4032 | inline isl::union_set subtract(const isl::union_set &uset2) const; |
4033 | inline isl::set subtract(const isl::basic_set &set2) const; |
4034 | inline isl::set subtract(const isl::point &set2) const; |
4035 | inline isl::set_list to_list() const; |
4036 | inline isl::union_set to_union_set() const; |
4037 | inline isl::map translation() const; |
4038 | inline class size tuple_dim() const; |
4039 | inline isl::id tuple_id() const; |
4040 | inline isl::id get_tuple_id() const; |
4041 | inline std::string tuple_name() const; |
4042 | inline std::string get_tuple_name() const; |
4043 | inline isl::set unbind_params(isl::multi_id tuple) const; |
4044 | inline isl::map unbind_params_insert_domain(isl::multi_id domain) const; |
4045 | inline isl::set unite(isl::set set2) const; |
4046 | inline isl::union_set unite(const isl::union_set &uset2) const; |
4047 | inline isl::set unite(const isl::basic_set &set2) const; |
4048 | inline isl::set unite(const isl::point &set2) const; |
4049 | static inline isl::set universe(isl::space space); |
4050 | inline isl::basic_set unshifted_simple_hull() const; |
4051 | inline isl::map unwrap() const; |
4052 | inline isl::set upper_bound(isl::multi_pw_aff upper) const; |
4053 | inline isl::set upper_bound(isl::multi_val upper) const; |
4054 | inline isl::set upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const; |
4055 | inline isl::set upper_bound_val(isl::dim type, unsigned int pos, long value) const; |
4056 | }; |
4057 | |
4058 | // declarations for isl::set_list |
4059 | inline set_list manage(__isl_take isl_set_list *ptr); |
4060 | inline set_list manage_copy(__isl_keep isl_set_list *ptr); |
4061 | |
4062 | class set_list { |
4063 | friend inline set_list manage(__isl_take isl_set_list *ptr); |
4064 | friend inline set_list manage_copy(__isl_keep isl_set_list *ptr); |
4065 | |
4066 | protected: |
4067 | isl_set_list *ptr = nullptr; |
4068 | |
4069 | inline explicit set_list(__isl_take isl_set_list *ptr); |
4070 | |
4071 | public: |
4072 | inline /* implicit */ set_list(); |
4073 | inline /* implicit */ set_list(const set_list &obj); |
4074 | inline explicit set_list(isl::ctx ctx, int n); |
4075 | inline explicit set_list(isl::set el); |
4076 | inline explicit set_list(isl::ctx ctx, const std::string &str); |
4077 | inline set_list &operator=(set_list obj); |
4078 | inline ~set_list(); |
4079 | inline __isl_give isl_set_list *copy() const &; |
4080 | inline __isl_give isl_set_list *copy() && = delete; |
4081 | inline __isl_keep isl_set_list *get() const; |
4082 | inline __isl_give isl_set_list *release(); |
4083 | inline bool is_null() const; |
4084 | inline isl::ctx ctx() const; |
4085 | |
4086 | inline isl::set_list add(isl::set el) const; |
4087 | inline isl::set at(int index) const; |
4088 | inline isl::set get_at(int index) const; |
4089 | inline isl::set_list clear() const; |
4090 | inline isl::set_list concat(isl::set_list list2) const; |
4091 | inline isl::set_list drop(unsigned int first, unsigned int n) const; |
4092 | inline stat foreach(const std::function<stat(isl::set)> &fn) const; |
4093 | inline isl::set_list insert(unsigned int pos, isl::set el) const; |
4094 | inline class size size() const; |
4095 | }; |
4096 | |
4097 | // declarations for isl::space |
4098 | inline space manage(__isl_take isl_space *ptr); |
4099 | inline space manage_copy(__isl_keep isl_space *ptr); |
4100 | |
4101 | class space { |
4102 | friend inline space manage(__isl_take isl_space *ptr); |
4103 | friend inline space manage_copy(__isl_keep isl_space *ptr); |
4104 | |
4105 | protected: |
4106 | isl_space *ptr = nullptr; |
4107 | |
4108 | inline explicit space(__isl_take isl_space *ptr); |
4109 | |
4110 | public: |
4111 | inline /* implicit */ space(); |
4112 | inline /* implicit */ space(const space &obj); |
4113 | inline explicit space(isl::ctx ctx, unsigned int nparam, unsigned int n_in, unsigned int n_out); |
4114 | inline explicit space(isl::ctx ctx, unsigned int nparam, unsigned int dim); |
4115 | inline space &operator=(space obj); |
4116 | inline ~space(); |
4117 | inline __isl_give isl_space *copy() const &; |
4118 | inline __isl_give isl_space *copy() && = delete; |
4119 | inline __isl_keep isl_space *get() const; |
4120 | inline __isl_give isl_space *release(); |
4121 | inline bool is_null() const; |
4122 | inline isl::ctx ctx() const; |
4123 | |
4124 | inline isl::space add_dims(isl::dim type, unsigned int n) const; |
4125 | inline isl::space add_named_tuple(isl::id tuple_id, unsigned int dim) const; |
4126 | inline isl::space add_named_tuple(const std::string &tuple_id, unsigned int dim) const; |
4127 | inline isl::space add_param(isl::id id) const; |
4128 | inline isl::space add_param(const std::string &id) const; |
4129 | inline isl::space add_unnamed_tuple(unsigned int dim) const; |
4130 | inline isl::space align_params(isl::space space2) const; |
4131 | inline isl::space curry() const; |
4132 | inline class size dim(isl::dim type) const; |
4133 | inline isl::id dim_id(isl::dim type, unsigned int pos) const; |
4134 | inline isl::id get_dim_id(isl::dim type, unsigned int pos) const; |
4135 | inline isl::space domain() const; |
4136 | inline isl::multi_aff domain_map_multi_aff() const; |
4137 | inline isl::pw_multi_aff domain_map_pw_multi_aff() const; |
4138 | inline isl::id domain_tuple_id() const; |
4139 | inline isl::id get_domain_tuple_id() const; |
4140 | inline isl::space drop_dims(isl::dim type, unsigned int first, unsigned int num) const; |
4141 | inline int find_dim_by_id(isl::dim type, const isl::id &id) const; |
4142 | inline int find_dim_by_id(isl::dim type, const std::string &id) const; |
4143 | inline isl::space flatten_domain() const; |
4144 | inline isl::space flatten_range() const; |
4145 | inline boolean has_domain_tuple_id() const; |
4146 | inline boolean has_equal_tuples(const isl::space &space2) const; |
4147 | inline boolean has_range_tuple_id() const; |
4148 | inline boolean has_tuple_id(isl::dim type) const; |
4149 | inline boolean has_tuple_name(isl::dim type) const; |
4150 | inline isl::multi_aff identity_multi_aff_on_domain() const; |
4151 | inline isl::multi_pw_aff identity_multi_pw_aff_on_domain() const; |
4152 | inline isl::pw_multi_aff identity_pw_multi_aff_on_domain() const; |
4153 | inline boolean is_equal(const isl::space &space2) const; |
4154 | inline boolean is_params() const; |
4155 | inline boolean is_set() const; |
4156 | inline boolean is_wrapping() const; |
4157 | inline isl::space map_from_domain_and_range(isl::space range) const; |
4158 | inline isl::space map_from_set() const; |
4159 | inline isl::multi_aff multi_aff(isl::aff_list list) const; |
4160 | inline isl::multi_aff multi_aff_on_domain(isl::multi_val mv) const; |
4161 | inline isl::multi_id multi_id(isl::id_list list) const; |
4162 | inline isl::multi_pw_aff multi_pw_aff(isl::pw_aff_list list) const; |
4163 | inline isl::multi_union_pw_aff multi_union_pw_aff(isl::union_pw_aff_list list) const; |
4164 | inline isl::multi_val multi_val(isl::val_list list) const; |
4165 | inline isl::aff param_aff_on_domain(isl::id id) const; |
4166 | inline isl::aff param_aff_on_domain(const std::string &id) const; |
4167 | inline isl::space params() const; |
4168 | static inline isl::space params_alloc(isl::ctx ctx, unsigned int nparam); |
4169 | inline isl::space product(isl::space right) const; |
4170 | inline isl::space range() const; |
4171 | inline isl::multi_aff range_map_multi_aff() const; |
4172 | inline isl::pw_multi_aff range_map_pw_multi_aff() const; |
4173 | inline isl::space range_reverse() const; |
4174 | inline isl::id range_tuple_id() const; |
4175 | inline isl::id get_range_tuple_id() const; |
4176 | inline isl::space reverse() const; |
4177 | inline isl::space set_dim_id(isl::dim type, unsigned int pos, isl::id id) const; |
4178 | inline isl::space set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const; |
4179 | inline isl::space set_domain_tuple(isl::id id) const; |
4180 | inline isl::space set_domain_tuple(const std::string &id) const; |
4181 | inline isl::space set_from_params() const; |
4182 | inline isl::space set_range_tuple(isl::id id) const; |
4183 | inline isl::space set_range_tuple(const std::string &id) const; |
4184 | inline isl::space set_tuple_id(isl::dim type, isl::id id) const; |
4185 | inline isl::space set_tuple_id(isl::dim type, const std::string &id) const; |
4186 | inline isl::id tuple_id(isl::dim type) const; |
4187 | inline isl::id get_tuple_id(isl::dim type) const; |
4188 | inline std::string tuple_name(isl::dim type) const; |
4189 | inline std::string get_tuple_name(isl::dim type) const; |
4190 | inline isl::space uncurry() const; |
4191 | static inline isl::space unit(isl::ctx ctx); |
4192 | inline isl::map universe_map() const; |
4193 | inline isl::set universe_set() const; |
4194 | inline isl::space unwrap() const; |
4195 | inline isl::space wrap() const; |
4196 | inline isl::aff zero_aff_on_domain() const; |
4197 | inline isl::multi_aff zero_multi_aff() const; |
4198 | inline isl::multi_pw_aff zero_multi_pw_aff() const; |
4199 | inline isl::multi_union_pw_aff zero_multi_union_pw_aff() const; |
4200 | inline isl::multi_val zero_multi_val() const; |
4201 | }; |
4202 | |
4203 | // declarations for isl::union_access_info |
4204 | inline union_access_info manage(__isl_take isl_union_access_info *ptr); |
4205 | inline union_access_info manage_copy(__isl_keep isl_union_access_info *ptr); |
4206 | |
4207 | class union_access_info { |
4208 | friend inline union_access_info manage(__isl_take isl_union_access_info *ptr); |
4209 | friend inline union_access_info manage_copy(__isl_keep isl_union_access_info *ptr); |
4210 | |
4211 | protected: |
4212 | isl_union_access_info *ptr = nullptr; |
4213 | |
4214 | inline explicit union_access_info(__isl_take isl_union_access_info *ptr); |
4215 | |
4216 | public: |
4217 | inline /* implicit */ union_access_info(); |
4218 | inline /* implicit */ union_access_info(const union_access_info &obj); |
4219 | inline explicit union_access_info(isl::union_map sink); |
4220 | inline union_access_info &operator=(union_access_info obj); |
4221 | inline ~union_access_info(); |
4222 | inline __isl_give isl_union_access_info *copy() const &; |
4223 | inline __isl_give isl_union_access_info *copy() && = delete; |
4224 | inline __isl_keep isl_union_access_info *get() const; |
4225 | inline __isl_give isl_union_access_info *release(); |
4226 | inline bool is_null() const; |
4227 | inline isl::ctx ctx() const; |
4228 | |
4229 | inline isl::union_flow compute_flow() const; |
4230 | inline isl::union_access_info set_kill(isl::union_map kill) const; |
4231 | inline isl::union_access_info set_may_source(isl::union_map may_source) const; |
4232 | inline isl::union_access_info set_must_source(isl::union_map must_source) const; |
4233 | inline isl::union_access_info set_schedule(isl::schedule schedule) const; |
4234 | inline isl::union_access_info set_schedule_map(isl::union_map schedule_map) const; |
4235 | }; |
4236 | |
4237 | // declarations for isl::union_flow |
4238 | inline union_flow manage(__isl_take isl_union_flow *ptr); |
4239 | inline union_flow manage_copy(__isl_keep isl_union_flow *ptr); |
4240 | |
4241 | class union_flow { |
4242 | friend inline union_flow manage(__isl_take isl_union_flow *ptr); |
4243 | friend inline union_flow manage_copy(__isl_keep isl_union_flow *ptr); |
4244 | |
4245 | protected: |
4246 | isl_union_flow *ptr = nullptr; |
4247 | |
4248 | inline explicit union_flow(__isl_take isl_union_flow *ptr); |
4249 | |
4250 | public: |
4251 | inline /* implicit */ union_flow(); |
4252 | inline /* implicit */ union_flow(const union_flow &obj); |
4253 | inline union_flow &operator=(union_flow obj); |
4254 | inline ~union_flow(); |
4255 | inline __isl_give isl_union_flow *copy() const &; |
4256 | inline __isl_give isl_union_flow *copy() && = delete; |
4257 | inline __isl_keep isl_union_flow *get() const; |
4258 | inline __isl_give isl_union_flow *release(); |
4259 | inline bool is_null() const; |
4260 | inline isl::ctx ctx() const; |
4261 | |
4262 | inline isl::union_map full_may_dependence() const; |
4263 | inline isl::union_map get_full_may_dependence() const; |
4264 | inline isl::union_map full_must_dependence() const; |
4265 | inline isl::union_map get_full_must_dependence() const; |
4266 | inline isl::union_map may_dependence() const; |
4267 | inline isl::union_map get_may_dependence() const; |
4268 | inline isl::union_map may_no_source() const; |
4269 | inline isl::union_map get_may_no_source() const; |
4270 | inline isl::union_map must_dependence() const; |
4271 | inline isl::union_map get_must_dependence() const; |
4272 | inline isl::union_map must_no_source() const; |
4273 | inline isl::union_map get_must_no_source() const; |
4274 | }; |
4275 | |
4276 | // declarations for isl::union_map |
4277 | inline union_map manage(__isl_take isl_union_map *ptr); |
4278 | inline union_map manage_copy(__isl_keep isl_union_map *ptr); |
4279 | |
4280 | class union_map { |
4281 | friend inline union_map manage(__isl_take isl_union_map *ptr); |
4282 | friend inline union_map manage_copy(__isl_keep isl_union_map *ptr); |
4283 | |
4284 | protected: |
4285 | isl_union_map *ptr = nullptr; |
4286 | |
4287 | inline explicit union_map(__isl_take isl_union_map *ptr); |
4288 | |
4289 | public: |
4290 | inline /* implicit */ union_map(); |
4291 | inline /* implicit */ union_map(const union_map &obj); |
4292 | inline /* implicit */ union_map(isl::basic_map bmap); |
4293 | inline /* implicit */ union_map(isl::map map); |
4294 | inline explicit union_map(isl::ctx ctx, const std::string &str); |
4295 | inline union_map &operator=(union_map obj); |
4296 | inline ~union_map(); |
4297 | inline __isl_give isl_union_map *copy() const &; |
4298 | inline __isl_give isl_union_map *copy() && = delete; |
4299 | inline __isl_keep isl_union_map *get() const; |
4300 | inline __isl_give isl_union_map *release(); |
4301 | inline bool is_null() const; |
4302 | inline isl::ctx ctx() const; |
4303 | |
4304 | inline isl::union_map affine_hull() const; |
4305 | inline isl::union_map apply_domain(isl::union_map umap2) const; |
4306 | inline isl::union_map apply_range(isl::union_map umap2) const; |
4307 | inline isl::map as_map() const; |
4308 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
4309 | inline isl::union_pw_multi_aff as_union_pw_multi_aff() const; |
4310 | inline isl::union_set bind_range(isl::multi_id tuple) const; |
4311 | inline isl::union_map coalesce() const; |
4312 | inline isl::union_map compute_divs() const; |
4313 | inline isl::union_map curry() const; |
4314 | inline isl::union_set deltas() const; |
4315 | inline isl::union_map detect_equalities() const; |
4316 | inline isl::union_set domain() const; |
4317 | inline isl::union_map domain_factor_domain() const; |
4318 | inline isl::union_map domain_factor_range() const; |
4319 | inline isl::union_map domain_map() const; |
4320 | inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const; |
4321 | inline isl::union_map domain_product(isl::union_map umap2) const; |
4322 | static inline isl::union_map empty(isl::ctx ctx); |
4323 | inline isl::union_map eq_at(isl::multi_union_pw_aff mupa) const; |
4324 | inline boolean every_map(const std::function<boolean(isl::map)> &test) const; |
4325 | inline isl::map extract_map(isl::space space) const; |
4326 | inline isl::union_map factor_domain() const; |
4327 | inline isl::union_map factor_range() const; |
4328 | inline isl::union_map fixed_power(isl::val exp) const; |
4329 | inline isl::union_map fixed_power(long exp) const; |
4330 | inline isl::union_map flat_range_product(isl::union_map umap2) const; |
4331 | inline stat foreach_map(const std::function<stat(isl::map)> &fn) const; |
4332 | static inline isl::union_map from(isl::multi_union_pw_aff mupa); |
4333 | static inline isl::union_map from(isl::union_pw_multi_aff upma); |
4334 | static inline isl::union_map from_domain(isl::union_set uset); |
4335 | static inline isl::union_map from_domain_and_range(isl::union_set domain, isl::union_set range); |
4336 | static inline isl::union_map from_range(isl::union_set uset); |
4337 | inline isl::union_map gist(isl::union_map context) const; |
4338 | inline isl::union_map gist_domain(isl::union_set uset) const; |
4339 | inline isl::union_map gist_params(isl::set set) const; |
4340 | inline isl::union_map gist_range(isl::union_set uset) const; |
4341 | inline isl::union_map intersect(isl::union_map umap2) const; |
4342 | inline isl::union_map intersect_domain(isl::space space) const; |
4343 | inline isl::union_map intersect_domain(isl::union_set uset) const; |
4344 | inline isl::union_map intersect_domain_factor_domain(isl::union_map factor) const; |
4345 | inline isl::union_map intersect_domain_factor_range(isl::union_map factor) const; |
4346 | inline isl::union_map intersect_params(isl::set set) const; |
4347 | inline isl::union_map intersect_range(isl::space space) const; |
4348 | inline isl::union_map intersect_range(isl::union_set uset) const; |
4349 | inline isl::union_map intersect_range_factor_domain(isl::union_map factor) const; |
4350 | inline isl::union_map intersect_range_factor_range(isl::union_map factor) const; |
4351 | inline boolean is_bijective() const; |
4352 | inline boolean is_disjoint(const isl::union_map &umap2) const; |
4353 | inline boolean is_empty() const; |
4354 | inline boolean is_equal(const isl::union_map &umap2) const; |
4355 | inline boolean is_injective() const; |
4356 | inline boolean is_single_valued() const; |
4357 | inline boolean is_strict_subset(const isl::union_map &umap2) const; |
4358 | inline boolean is_subset(const isl::union_map &umap2) const; |
4359 | inline boolean isa_map() const; |
4360 | inline isl::union_map lexmax() const; |
4361 | inline isl::union_map lexmin() const; |
4362 | inline isl::map_list map_list() const; |
4363 | inline isl::map_list get_map_list() const; |
4364 | inline isl::set params() const; |
4365 | inline isl::union_map polyhedral_hull() const; |
4366 | inline isl::union_map preimage_domain(isl::multi_aff ma) const; |
4367 | inline isl::union_map preimage_domain(isl::multi_pw_aff mpa) const; |
4368 | inline isl::union_map preimage_domain(isl::pw_multi_aff pma) const; |
4369 | inline isl::union_map preimage_domain(isl::union_pw_multi_aff upma) const; |
4370 | inline isl::union_map preimage_range(isl::multi_aff ma) const; |
4371 | inline isl::union_map preimage_range(isl::pw_multi_aff pma) const; |
4372 | inline isl::union_map preimage_range(isl::union_pw_multi_aff upma) const; |
4373 | inline isl::union_map product(isl::union_map umap2) const; |
4374 | inline isl::union_map project_out_all_params() const; |
4375 | inline isl::union_set range() const; |
4376 | inline isl::union_map range_factor_domain() const; |
4377 | inline isl::union_map range_factor_range() const; |
4378 | inline isl::union_map range_map() const; |
4379 | inline isl::union_map range_product(isl::union_map umap2) const; |
4380 | inline isl::union_map range_reverse() const; |
4381 | inline isl::union_map reverse() const; |
4382 | inline isl::space space() const; |
4383 | inline isl::space get_space() const; |
4384 | inline isl::union_map subtract(isl::union_map umap2) const; |
4385 | inline isl::union_map subtract_domain(isl::union_set dom) const; |
4386 | inline isl::union_map subtract_range(isl::union_set dom) const; |
4387 | inline isl::union_map uncurry() const; |
4388 | inline isl::union_map unite(isl::union_map umap2) const; |
4389 | inline isl::union_map universe() const; |
4390 | inline isl::union_set wrap() const; |
4391 | inline isl::union_map zip() const; |
4392 | }; |
4393 | |
4394 | // declarations for isl::union_pw_aff |
4395 | inline union_pw_aff manage(__isl_take isl_union_pw_aff *ptr); |
4396 | inline union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr); |
4397 | |
4398 | class union_pw_aff { |
4399 | friend inline union_pw_aff manage(__isl_take isl_union_pw_aff *ptr); |
4400 | friend inline union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr); |
4401 | |
4402 | protected: |
4403 | isl_union_pw_aff *ptr = nullptr; |
4404 | |
4405 | inline explicit union_pw_aff(__isl_take isl_union_pw_aff *ptr); |
4406 | |
4407 | public: |
4408 | inline /* implicit */ union_pw_aff(); |
4409 | inline /* implicit */ union_pw_aff(const union_pw_aff &obj); |
4410 | inline /* implicit */ union_pw_aff(isl::aff aff); |
4411 | inline /* implicit */ union_pw_aff(isl::pw_aff pa); |
4412 | inline explicit union_pw_aff(isl::ctx ctx, const std::string &str); |
4413 | inline explicit union_pw_aff(isl::union_set domain, isl::val v); |
4414 | inline union_pw_aff &operator=(union_pw_aff obj); |
4415 | inline ~union_pw_aff(); |
4416 | inline __isl_give isl_union_pw_aff *copy() const &; |
4417 | inline __isl_give isl_union_pw_aff *copy() && = delete; |
4418 | inline __isl_keep isl_union_pw_aff *get() const; |
4419 | inline __isl_give isl_union_pw_aff *release(); |
4420 | inline bool is_null() const; |
4421 | inline isl::ctx ctx() const; |
4422 | |
4423 | inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const; |
4424 | inline isl::union_pw_aff add(isl::union_pw_aff upa2) const; |
4425 | inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const; |
4426 | inline isl::union_pw_aff add(const isl::aff &upa2) const; |
4427 | inline isl::union_pw_aff add(const isl::pw_aff &upa2) const; |
4428 | inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const; |
4429 | inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const; |
4430 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
4431 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
4432 | inline isl::union_map as_union_map() const; |
4433 | inline isl::union_pw_aff at(int pos) const; |
4434 | inline isl::union_set bind(const isl::multi_id &tuple) const; |
4435 | inline isl::union_set bind(isl::id id) const; |
4436 | inline isl::union_set bind(const std::string &id) const; |
4437 | inline isl::union_pw_aff coalesce() const; |
4438 | inline class size dim(isl::dim type) const; |
4439 | inline isl::union_set domain() const; |
4440 | static inline isl::union_pw_aff empty(isl::space space); |
4441 | inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const; |
4442 | inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const; |
4443 | inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const; |
4444 | inline stat foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const; |
4445 | inline isl::union_pw_aff gist(isl::union_set context) const; |
4446 | inline boolean has_range_tuple_id() const; |
4447 | inline isl::union_pw_aff intersect_domain(isl::space space) const; |
4448 | inline isl::union_pw_aff intersect_domain(isl::union_set uset) const; |
4449 | inline isl::union_pw_aff intersect_domain_wrapped_domain(isl::union_set uset) const; |
4450 | inline isl::union_pw_aff intersect_domain_wrapped_range(isl::union_set uset) const; |
4451 | inline isl::union_pw_aff intersect_params(isl::set set) const; |
4452 | inline boolean involves_locals() const; |
4453 | inline boolean involves_nan() const; |
4454 | inline boolean isa_pw_multi_aff() const; |
4455 | inline isl::union_pw_aff_list list() const; |
4456 | inline isl::multi_union_pw_aff neg() const; |
4457 | inline boolean plain_is_empty() const; |
4458 | inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const; |
4459 | inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const; |
4460 | inline isl::union_pw_aff pullback(isl::union_pw_multi_aff upma) const; |
4461 | inline isl::pw_multi_aff_list pw_multi_aff_list() const; |
4462 | inline isl::union_pw_multi_aff range_factor_domain() const; |
4463 | inline isl::union_pw_multi_aff range_factor_range() const; |
4464 | inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const; |
4465 | inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const; |
4466 | inline isl::id range_tuple_id() const; |
4467 | inline isl::multi_union_pw_aff reset_range_tuple_id() const; |
4468 | inline isl::multi_union_pw_aff reset_tuple_id(isl::dim type) const; |
4469 | inline isl::multi_union_pw_aff scale(const isl::multi_val &mv) const; |
4470 | inline isl::multi_union_pw_aff scale(const isl::val &v) const; |
4471 | inline isl::multi_union_pw_aff scale(long v) const; |
4472 | inline isl::multi_union_pw_aff scale_down(const isl::multi_val &mv) const; |
4473 | inline isl::multi_union_pw_aff scale_down(const isl::val &v) const; |
4474 | inline isl::multi_union_pw_aff scale_down(long v) const; |
4475 | inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const; |
4476 | inline isl::multi_union_pw_aff set_range_tuple(const isl::id &id) const; |
4477 | inline isl::multi_union_pw_aff set_range_tuple(const std::string &id) const; |
4478 | inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const; |
4479 | inline class size size() const; |
4480 | inline isl::space space() const; |
4481 | inline isl::space get_space() const; |
4482 | inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const; |
4483 | inline isl::union_pw_aff sub(isl::union_pw_aff upa2) const; |
4484 | inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const; |
4485 | inline isl::union_pw_aff sub(const isl::aff &upa2) const; |
4486 | inline isl::union_pw_aff sub(const isl::pw_aff &upa2) const; |
4487 | inline isl::union_pw_aff subtract_domain(isl::space space) const; |
4488 | inline isl::union_pw_aff subtract_domain(isl::union_set uset) const; |
4489 | inline isl::union_pw_aff_list to_list() const; |
4490 | inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const; |
4491 | inline isl::union_pw_aff union_add(isl::union_pw_aff upa2) const; |
4492 | inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const; |
4493 | inline isl::union_pw_aff union_add(const isl::aff &upa2) const; |
4494 | inline isl::union_pw_aff union_add(const isl::pw_aff &upa2) const; |
4495 | }; |
4496 | |
4497 | // declarations for isl::union_pw_aff_list |
4498 | inline union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr); |
4499 | inline union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr); |
4500 | |
4501 | class union_pw_aff_list { |
4502 | friend inline union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr); |
4503 | friend inline union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr); |
4504 | |
4505 | protected: |
4506 | isl_union_pw_aff_list *ptr = nullptr; |
4507 | |
4508 | inline explicit union_pw_aff_list(__isl_take isl_union_pw_aff_list *ptr); |
4509 | |
4510 | public: |
4511 | inline /* implicit */ union_pw_aff_list(); |
4512 | inline /* implicit */ union_pw_aff_list(const union_pw_aff_list &obj); |
4513 | inline explicit union_pw_aff_list(isl::ctx ctx, int n); |
4514 | inline explicit union_pw_aff_list(isl::union_pw_aff el); |
4515 | inline explicit union_pw_aff_list(isl::ctx ctx, const std::string &str); |
4516 | inline union_pw_aff_list &operator=(union_pw_aff_list obj); |
4517 | inline ~union_pw_aff_list(); |
4518 | inline __isl_give isl_union_pw_aff_list *copy() const &; |
4519 | inline __isl_give isl_union_pw_aff_list *copy() && = delete; |
4520 | inline __isl_keep isl_union_pw_aff_list *get() const; |
4521 | inline __isl_give isl_union_pw_aff_list *release(); |
4522 | inline bool is_null() const; |
4523 | inline isl::ctx ctx() const; |
4524 | |
4525 | inline isl::union_pw_aff_list add(isl::union_pw_aff el) const; |
4526 | inline isl::union_pw_aff at(int index) const; |
4527 | inline isl::union_pw_aff get_at(int index) const; |
4528 | inline isl::union_pw_aff_list clear() const; |
4529 | inline isl::union_pw_aff_list concat(isl::union_pw_aff_list list2) const; |
4530 | inline isl::union_pw_aff_list drop(unsigned int first, unsigned int n) const; |
4531 | inline stat foreach(const std::function<stat(isl::union_pw_aff)> &fn) const; |
4532 | inline isl::union_pw_aff_list insert(unsigned int pos, isl::union_pw_aff el) const; |
4533 | inline class size size() const; |
4534 | }; |
4535 | |
4536 | // declarations for isl::union_pw_multi_aff |
4537 | inline union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr); |
4538 | inline union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr); |
4539 | |
4540 | class union_pw_multi_aff { |
4541 | friend inline union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr); |
4542 | friend inline union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr); |
4543 | |
4544 | protected: |
4545 | isl_union_pw_multi_aff *ptr = nullptr; |
4546 | |
4547 | inline explicit union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *ptr); |
4548 | |
4549 | public: |
4550 | inline /* implicit */ union_pw_multi_aff(); |
4551 | inline /* implicit */ union_pw_multi_aff(const union_pw_multi_aff &obj); |
4552 | inline explicit union_pw_multi_aff(isl::union_set uset); |
4553 | inline /* implicit */ union_pw_multi_aff(isl::multi_aff ma); |
4554 | inline /* implicit */ union_pw_multi_aff(isl::pw_multi_aff pma); |
4555 | inline explicit union_pw_multi_aff(isl::union_map umap); |
4556 | inline /* implicit */ union_pw_multi_aff(isl::union_pw_aff upa); |
4557 | inline explicit union_pw_multi_aff(isl::ctx ctx, const std::string &str); |
4558 | inline union_pw_multi_aff &operator=(union_pw_multi_aff obj); |
4559 | inline ~union_pw_multi_aff(); |
4560 | inline __isl_give isl_union_pw_multi_aff *copy() const &; |
4561 | inline __isl_give isl_union_pw_multi_aff *copy() && = delete; |
4562 | inline __isl_keep isl_union_pw_multi_aff *get() const; |
4563 | inline __isl_give isl_union_pw_multi_aff *release(); |
4564 | inline bool is_null() const; |
4565 | inline isl::ctx ctx() const; |
4566 | |
4567 | inline isl::union_pw_multi_aff add(isl::union_pw_multi_aff upma2) const; |
4568 | inline isl::union_pw_multi_aff add_pw_multi_aff(isl::pw_multi_aff pma) const; |
4569 | inline isl::union_pw_multi_aff apply(isl::union_pw_multi_aff upma2) const; |
4570 | inline isl::multi_union_pw_aff as_multi_union_pw_aff() const; |
4571 | inline isl::pw_multi_aff as_pw_multi_aff() const; |
4572 | inline isl::union_map as_union_map() const; |
4573 | inline isl::union_pw_multi_aff coalesce() const; |
4574 | inline isl::union_set domain() const; |
4575 | static inline isl::union_pw_multi_aff empty(isl::space space); |
4576 | static inline isl::union_pw_multi_aff empty(isl::ctx ctx); |
4577 | inline isl::pw_multi_aff extract_pw_multi_aff(isl::space space) const; |
4578 | inline isl::union_pw_multi_aff flat_range_product(isl::union_pw_multi_aff upma2) const; |
4579 | inline isl::union_pw_multi_aff gist(isl::union_set context) const; |
4580 | inline isl::union_pw_multi_aff intersect_domain(isl::space space) const; |
4581 | inline isl::union_pw_multi_aff intersect_domain(isl::union_set uset) const; |
4582 | inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(isl::union_set uset) const; |
4583 | inline isl::union_pw_multi_aff intersect_domain_wrapped_range(isl::union_set uset) const; |
4584 | inline isl::union_pw_multi_aff intersect_params(isl::set set) const; |
4585 | inline boolean involves_locals() const; |
4586 | inline boolean isa_pw_multi_aff() const; |
4587 | inline boolean plain_is_empty() const; |
4588 | inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(isl::union_pw_multi_aff upma2) const; |
4589 | inline isl::union_pw_multi_aff pullback(isl::union_pw_multi_aff upma2) const; |
4590 | inline isl::pw_multi_aff_list pw_multi_aff_list() const; |
4591 | inline isl::pw_multi_aff_list get_pw_multi_aff_list() const; |
4592 | inline isl::union_pw_multi_aff range_factor_domain() const; |
4593 | inline isl::union_pw_multi_aff range_factor_range() const; |
4594 | inline isl::union_pw_multi_aff range_product(isl::union_pw_multi_aff upma2) const; |
4595 | inline isl::space space() const; |
4596 | inline isl::space get_space() const; |
4597 | inline isl::union_pw_multi_aff sub(isl::union_pw_multi_aff upma2) const; |
4598 | inline isl::union_pw_multi_aff subtract_domain(isl::space space) const; |
4599 | inline isl::union_pw_multi_aff subtract_domain(isl::union_set uset) const; |
4600 | inline isl::union_pw_multi_aff union_add(isl::union_pw_multi_aff upma2) const; |
4601 | }; |
4602 | |
4603 | // declarations for isl::union_set |
4604 | inline union_set manage(__isl_take isl_union_set *ptr); |
4605 | inline union_set manage_copy(__isl_keep isl_union_set *ptr); |
4606 | |
4607 | class union_set { |
4608 | friend inline union_set manage(__isl_take isl_union_set *ptr); |
4609 | friend inline union_set manage_copy(__isl_keep isl_union_set *ptr); |
4610 | |
4611 | protected: |
4612 | isl_union_set *ptr = nullptr; |
4613 | |
4614 | inline explicit union_set(__isl_take isl_union_set *ptr); |
4615 | |
4616 | public: |
4617 | inline /* implicit */ union_set(); |
4618 | inline /* implicit */ union_set(const union_set &obj); |
4619 | inline /* implicit */ union_set(isl::basic_set bset); |
4620 | inline /* implicit */ union_set(isl::point pnt); |
4621 | inline /* implicit */ union_set(isl::set set); |
4622 | inline explicit union_set(isl::ctx ctx, const std::string &str); |
4623 | inline union_set &operator=(union_set obj); |
4624 | inline ~union_set(); |
4625 | inline __isl_give isl_union_set *copy() const &; |
4626 | inline __isl_give isl_union_set *copy() && = delete; |
4627 | inline __isl_keep isl_union_set *get() const; |
4628 | inline __isl_give isl_union_set *release(); |
4629 | inline bool is_null() const; |
4630 | inline isl::ctx ctx() const; |
4631 | |
4632 | inline isl::union_set affine_hull() const; |
4633 | inline isl::union_set apply(isl::union_map umap) const; |
4634 | inline isl::set as_set() const; |
4635 | inline isl::union_set coalesce() const; |
4636 | inline isl::union_set compute_divs() const; |
4637 | inline boolean contains(const isl::space &space) const; |
4638 | inline isl::union_set detect_equalities() const; |
4639 | static inline isl::union_set empty(isl::ctx ctx); |
4640 | inline boolean every_set(const std::function<boolean(isl::set)> &test) const; |
4641 | inline isl::set extract_set(isl::space space) const; |
4642 | inline stat foreach_point(const std::function<stat(isl::point)> &fn) const; |
4643 | inline stat foreach_set(const std::function<stat(isl::set)> &fn) const; |
4644 | inline isl::union_set gist(isl::union_set context) const; |
4645 | inline isl::union_set gist_params(isl::set set) const; |
4646 | inline isl::union_map identity() const; |
4647 | inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const; |
4648 | inline isl::union_set intersect(isl::union_set uset2) const; |
4649 | inline isl::union_set intersect_params(isl::set set) const; |
4650 | inline boolean is_disjoint(const isl::union_set &uset2) const; |
4651 | inline boolean is_empty() const; |
4652 | inline boolean is_equal(const isl::union_set &uset2) const; |
4653 | inline boolean is_strict_subset(const isl::union_set &uset2) const; |
4654 | inline boolean is_subset(const isl::union_set &uset2) const; |
4655 | inline boolean isa_set() const; |
4656 | inline isl::union_set lexmax() const; |
4657 | inline isl::union_set lexmin() const; |
4658 | inline isl::set params() const; |
4659 | inline isl::union_set polyhedral_hull() const; |
4660 | inline isl::union_set preimage(isl::multi_aff ma) const; |
4661 | inline isl::union_set preimage(isl::pw_multi_aff pma) const; |
4662 | inline isl::union_set preimage(isl::union_pw_multi_aff upma) const; |
4663 | inline isl::point sample_point() const; |
4664 | inline isl::set_list set_list() const; |
4665 | inline isl::set_list get_set_list() const; |
4666 | inline isl::space space() const; |
4667 | inline isl::space get_space() const; |
4668 | inline isl::union_set subtract(isl::union_set uset2) const; |
4669 | inline isl::union_set_list to_list() const; |
4670 | inline isl::union_set unite(isl::union_set uset2) const; |
4671 | inline isl::union_set universe() const; |
4672 | inline isl::union_map unwrap() const; |
4673 | }; |
4674 | |
4675 | // declarations for isl::union_set_list |
4676 | inline union_set_list manage(__isl_take isl_union_set_list *ptr); |
4677 | inline union_set_list manage_copy(__isl_keep isl_union_set_list *ptr); |
4678 | |
4679 | class union_set_list { |
4680 | friend inline union_set_list manage(__isl_take isl_union_set_list *ptr); |
4681 | friend inline union_set_list manage_copy(__isl_keep isl_union_set_list *ptr); |
4682 | |
4683 | protected: |
4684 | isl_union_set_list *ptr = nullptr; |
4685 | |
4686 | inline explicit union_set_list(__isl_take isl_union_set_list *ptr); |
4687 | |
4688 | public: |
4689 | inline /* implicit */ union_set_list(); |
4690 | inline /* implicit */ union_set_list(const union_set_list &obj); |
4691 | inline explicit union_set_list(isl::ctx ctx, int n); |
4692 | inline explicit union_set_list(isl::union_set el); |
4693 | inline explicit union_set_list(isl::ctx ctx, const std::string &str); |
4694 | inline union_set_list &operator=(union_set_list obj); |
4695 | inline ~union_set_list(); |
4696 | inline __isl_give isl_union_set_list *copy() const &; |
4697 | inline __isl_give isl_union_set_list *copy() && = delete; |
4698 | inline __isl_keep isl_union_set_list *get() const; |
4699 | inline __isl_give isl_union_set_list *release(); |
4700 | inline bool is_null() const; |
4701 | inline isl::ctx ctx() const; |
4702 | |
4703 | inline isl::union_set_list add(isl::union_set el) const; |
4704 | inline isl::union_set at(int index) const; |
4705 | inline isl::union_set get_at(int index) const; |
4706 | inline isl::union_set_list clear() const; |
4707 | inline isl::union_set_list concat(isl::union_set_list list2) const; |
4708 | inline isl::union_set_list drop(unsigned int first, unsigned int n) const; |
4709 | inline stat foreach(const std::function<stat(isl::union_set)> &fn) const; |
4710 | inline isl::union_set_list insert(unsigned int pos, isl::union_set el) const; |
4711 | inline class size size() const; |
4712 | }; |
4713 | |
4714 | // declarations for isl::val |
4715 | inline val manage(__isl_take isl_val *ptr); |
4716 | inline val manage_copy(__isl_keep isl_val *ptr); |
4717 | |
4718 | class val { |
4719 | friend inline val manage(__isl_take isl_val *ptr); |
4720 | friend inline val manage_copy(__isl_keep isl_val *ptr); |
4721 | |
4722 | protected: |
4723 | isl_val *ptr = nullptr; |
4724 | |
4725 | inline explicit val(__isl_take isl_val *ptr); |
4726 | |
4727 | public: |
4728 | inline /* implicit */ val(); |
4729 | inline /* implicit */ val(const val &obj); |
4730 | inline explicit val(isl::ctx ctx, long i); |
4731 | inline explicit val(isl::ctx ctx, const std::string &str); |
4732 | inline val &operator=(val obj); |
4733 | inline ~val(); |
4734 | inline __isl_give isl_val *copy() const &; |
4735 | inline __isl_give isl_val *copy() && = delete; |
4736 | inline __isl_keep isl_val *get() const; |
4737 | inline __isl_give isl_val *release(); |
4738 | inline bool is_null() const; |
4739 | inline isl::ctx ctx() const; |
4740 | |
4741 | inline isl::val abs() const; |
4742 | inline boolean abs_eq(const isl::val &v2) const; |
4743 | inline boolean abs_eq(long v2) const; |
4744 | inline isl::val add(isl::val v2) const; |
4745 | inline isl::val add(long v2) const; |
4746 | inline isl::val ceil() const; |
4747 | inline int cmp_si(long i) const; |
4748 | inline long den_si() const; |
4749 | inline long get_den_si() const; |
4750 | inline isl::val div(isl::val v2) const; |
4751 | inline isl::val div(long v2) const; |
4752 | inline boolean eq(const isl::val &v2) const; |
4753 | inline boolean eq(long v2) const; |
4754 | inline isl::val floor() const; |
4755 | inline isl::val gcd(isl::val v2) const; |
4756 | inline isl::val gcd(long v2) const; |
4757 | inline boolean ge(const isl::val &v2) const; |
4758 | inline boolean ge(long v2) const; |
4759 | inline boolean gt(const isl::val &v2) const; |
4760 | inline boolean gt(long v2) const; |
4761 | static inline isl::val infty(isl::ctx ctx); |
4762 | static inline isl::val int_from_ui(isl::ctx ctx, unsigned long u); |
4763 | inline isl::val inv() const; |
4764 | inline boolean is_divisible_by(const isl::val &v2) const; |
4765 | inline boolean is_divisible_by(long v2) const; |
4766 | inline boolean is_infty() const; |
4767 | inline boolean is_int() const; |
4768 | inline boolean is_nan() const; |
4769 | inline boolean is_neg() const; |
4770 | inline boolean is_neginfty() const; |
4771 | inline boolean is_negone() const; |
4772 | inline boolean is_nonneg() const; |
4773 | inline boolean is_nonpos() const; |
4774 | inline boolean is_one() const; |
4775 | inline boolean is_pos() const; |
4776 | inline boolean is_rat() const; |
4777 | inline boolean is_zero() const; |
4778 | inline boolean le(const isl::val &v2) const; |
4779 | inline boolean le(long v2) const; |
4780 | inline boolean lt(const isl::val &v2) const; |
4781 | inline boolean lt(long v2) const; |
4782 | inline isl::val max(isl::val v2) const; |
4783 | inline isl::val max(long v2) const; |
4784 | inline isl::val min(isl::val v2) const; |
4785 | inline isl::val min(long v2) const; |
4786 | inline isl::val mod(isl::val v2) const; |
4787 | inline isl::val mod(long v2) const; |
4788 | inline isl::val mul(isl::val v2) const; |
4789 | inline isl::val mul(long v2) const; |
4790 | static inline isl::val nan(isl::ctx ctx); |
4791 | inline boolean ne(const isl::val &v2) const; |
4792 | inline boolean ne(long v2) const; |
4793 | inline isl::val neg() const; |
4794 | static inline isl::val neginfty(isl::ctx ctx); |
4795 | static inline isl::val negone(isl::ctx ctx); |
4796 | inline long num_si() const; |
4797 | inline long get_num_si() const; |
4798 | static inline isl::val one(isl::ctx ctx); |
4799 | inline isl::val pow2() const; |
4800 | inline int sgn() const; |
4801 | inline isl::val sub(isl::val v2) const; |
4802 | inline isl::val sub(long v2) const; |
4803 | inline isl::val_list to_list() const; |
4804 | inline isl::val trunc() const; |
4805 | static inline isl::val zero(isl::ctx ctx); |
4806 | }; |
4807 | |
4808 | // declarations for isl::val_list |
4809 | inline val_list manage(__isl_take isl_val_list *ptr); |
4810 | inline val_list manage_copy(__isl_keep isl_val_list *ptr); |
4811 | |
4812 | class val_list { |
4813 | friend inline val_list manage(__isl_take isl_val_list *ptr); |
4814 | friend inline val_list manage_copy(__isl_keep isl_val_list *ptr); |
4815 | |
4816 | protected: |
4817 | isl_val_list *ptr = nullptr; |
4818 | |
4819 | inline explicit val_list(__isl_take isl_val_list *ptr); |
4820 | |
4821 | public: |
4822 | inline /* implicit */ val_list(); |
4823 | inline /* implicit */ val_list(const val_list &obj); |
4824 | inline explicit val_list(isl::ctx ctx, int n); |
4825 | inline explicit val_list(isl::val el); |
4826 | inline explicit val_list(isl::ctx ctx, const std::string &str); |
4827 | inline val_list &operator=(val_list obj); |
4828 | inline ~val_list(); |
4829 | inline __isl_give isl_val_list *copy() const &; |
4830 | inline __isl_give isl_val_list *copy() && = delete; |
4831 | inline __isl_keep isl_val_list *get() const; |
4832 | inline __isl_give isl_val_list *release(); |
4833 | inline bool is_null() const; |
4834 | inline isl::ctx ctx() const; |
4835 | |
4836 | inline isl::val_list add(isl::val el) const; |
4837 | inline isl::val_list add(long el) const; |
4838 | inline isl::val at(int index) const; |
4839 | inline isl::val get_at(int index) const; |
4840 | inline isl::val_list clear() const; |
4841 | inline isl::val_list concat(isl::val_list list2) const; |
4842 | inline isl::val_list drop(unsigned int first, unsigned int n) const; |
4843 | inline stat foreach(const std::function<stat(isl::val)> &fn) const; |
4844 | inline isl::val_list insert(unsigned int pos, isl::val el) const; |
4845 | inline isl::val_list insert(unsigned int pos, long el) const; |
4846 | inline class size size() const; |
4847 | }; |
4848 | |
4849 | // implementations for isl::aff |
4850 | aff manage(__isl_take isl_aff *ptr) { |
4851 | return aff(ptr); |
4852 | } |
4853 | aff manage_copy(__isl_keep isl_aff *ptr) { |
4854 | ptr = isl_aff_copy(aff: ptr); |
4855 | return aff(ptr); |
4856 | } |
4857 | |
4858 | aff::aff() |
4859 | : ptr(nullptr) {} |
4860 | |
4861 | aff::aff(const aff &obj) |
4862 | : ptr(nullptr) |
4863 | { |
4864 | ptr = obj.copy(); |
4865 | } |
4866 | |
4867 | aff::aff(__isl_take isl_aff *ptr) |
4868 | : ptr(ptr) {} |
4869 | |
4870 | aff::aff(isl::ctx ctx, const std::string &str) |
4871 | { |
4872 | auto res = isl_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
4873 | ptr = res; |
4874 | } |
4875 | |
4876 | aff::aff(isl::local_space ls, isl::val val) |
4877 | { |
4878 | auto res = isl_aff_val_on_domain(ls: ls.release(), val: val.release()); |
4879 | ptr = res; |
4880 | } |
4881 | |
4882 | aff::aff(isl::local_space ls) |
4883 | { |
4884 | auto res = isl_aff_zero_on_domain(ls: ls.release()); |
4885 | ptr = res; |
4886 | } |
4887 | |
4888 | aff &aff::operator=(aff obj) { |
4889 | std::swap(a&: this->ptr, b&: obj.ptr); |
4890 | return *this; |
4891 | } |
4892 | |
4893 | aff::~aff() { |
4894 | if (ptr) |
4895 | isl_aff_free(aff: ptr); |
4896 | } |
4897 | |
4898 | __isl_give isl_aff *aff::copy() const & { |
4899 | return isl_aff_copy(aff: ptr); |
4900 | } |
4901 | |
4902 | __isl_keep isl_aff *aff::get() const { |
4903 | return ptr; |
4904 | } |
4905 | |
4906 | __isl_give isl_aff *aff::release() { |
4907 | isl_aff *tmp = ptr; |
4908 | ptr = nullptr; |
4909 | return tmp; |
4910 | } |
4911 | |
4912 | bool aff::is_null() const { |
4913 | return ptr == nullptr; |
4914 | } |
4915 | |
4916 | isl::ctx aff::ctx() const { |
4917 | return isl::ctx(isl_aff_get_ctx(aff: ptr)); |
4918 | } |
4919 | |
4920 | isl::aff aff::add(isl::aff aff2) const |
4921 | { |
4922 | auto res = isl_aff_add(aff1: copy(), aff2: aff2.release()); |
4923 | return manage(ptr: res); |
4924 | } |
4925 | |
4926 | isl::multi_aff aff::add(const isl::multi_aff &multi2) const |
4927 | { |
4928 | return isl::multi_aff(*this).add(multi2); |
4929 | } |
4930 | |
4931 | isl::multi_pw_aff aff::add(const isl::multi_pw_aff &multi2) const |
4932 | { |
4933 | return isl::pw_aff(*this).add(multi2); |
4934 | } |
4935 | |
4936 | isl::multi_union_pw_aff aff::add(const isl::multi_union_pw_aff &multi2) const |
4937 | { |
4938 | return isl::pw_aff(*this).add(multi2); |
4939 | } |
4940 | |
4941 | isl::pw_aff aff::add(const isl::pw_aff &pwaff2) const |
4942 | { |
4943 | return isl::pw_aff(*this).add(pwaff2); |
4944 | } |
4945 | |
4946 | isl::pw_multi_aff aff::add(const isl::pw_multi_aff &pma2) const |
4947 | { |
4948 | return isl::pw_aff(*this).add(pma2); |
4949 | } |
4950 | |
4951 | isl::union_pw_aff aff::add(const isl::union_pw_aff &upa2) const |
4952 | { |
4953 | return isl::pw_aff(*this).add(upa2); |
4954 | } |
4955 | |
4956 | isl::union_pw_multi_aff aff::add(const isl::union_pw_multi_aff &upma2) const |
4957 | { |
4958 | return isl::pw_aff(*this).add(upma2); |
4959 | } |
4960 | |
4961 | isl::aff aff::add_constant(isl::val v) const |
4962 | { |
4963 | auto res = isl_aff_add_constant_val(aff: copy(), v: v.release()); |
4964 | return manage(ptr: res); |
4965 | } |
4966 | |
4967 | isl::aff aff::add_constant(long v) const |
4968 | { |
4969 | return this->add_constant(v: isl::val(ctx(), v)); |
4970 | } |
4971 | |
4972 | isl::multi_aff aff::add_constant(const isl::multi_val &mv) const |
4973 | { |
4974 | return isl::multi_aff(*this).add_constant(mv); |
4975 | } |
4976 | |
4977 | isl::aff aff::add_constant_si(int v) const |
4978 | { |
4979 | auto res = isl_aff_add_constant_si(aff: copy(), v); |
4980 | return manage(ptr: res); |
4981 | } |
4982 | |
4983 | isl::pw_aff aff::add_dims(isl::dim type, unsigned int n) const |
4984 | { |
4985 | return isl::pw_aff(*this).add_dims(type, n); |
4986 | } |
4987 | |
4988 | isl::union_pw_multi_aff aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const |
4989 | { |
4990 | return isl::pw_aff(*this).add_pw_multi_aff(pma); |
4991 | } |
4992 | |
4993 | isl::union_pw_multi_aff aff::apply(const isl::union_pw_multi_aff &upma2) const |
4994 | { |
4995 | return isl::pw_aff(*this).apply(upma2); |
4996 | } |
4997 | |
4998 | isl::aff aff::as_aff() const |
4999 | { |
5000 | return isl::pw_aff(*this).as_aff(); |
5001 | } |
5002 | |
5003 | isl::map aff::as_map() const |
5004 | { |
5005 | return isl::pw_aff(*this).as_map(); |
5006 | } |
5007 | |
5008 | isl::multi_aff aff::as_multi_aff() const |
5009 | { |
5010 | return isl::pw_aff(*this).as_multi_aff(); |
5011 | } |
5012 | |
5013 | isl::multi_union_pw_aff aff::as_multi_union_pw_aff() const |
5014 | { |
5015 | return isl::pw_aff(*this).as_multi_union_pw_aff(); |
5016 | } |
5017 | |
5018 | isl::pw_multi_aff aff::as_pw_multi_aff() const |
5019 | { |
5020 | return isl::pw_aff(*this).as_pw_multi_aff(); |
5021 | } |
5022 | |
5023 | isl::set aff::as_set() const |
5024 | { |
5025 | return isl::multi_aff(*this).as_set(); |
5026 | } |
5027 | |
5028 | isl::union_map aff::as_union_map() const |
5029 | { |
5030 | return isl::pw_aff(*this).as_union_map(); |
5031 | } |
5032 | |
5033 | isl::aff aff::at(int pos) const |
5034 | { |
5035 | return isl::multi_aff(*this).at(pos); |
5036 | } |
5037 | |
5038 | isl::basic_set aff::bind(isl::id id) const |
5039 | { |
5040 | auto res = isl_aff_bind_id(aff: copy(), id: id.release()); |
5041 | return manage(ptr: res); |
5042 | } |
5043 | |
5044 | isl::basic_set aff::bind(const std::string &id) const |
5045 | { |
5046 | return this->bind(id: isl::id(ctx(), id)); |
5047 | } |
5048 | |
5049 | isl::basic_set aff::bind(const isl::multi_id &tuple) const |
5050 | { |
5051 | return isl::multi_aff(*this).bind(tuple); |
5052 | } |
5053 | |
5054 | isl::pw_aff aff::bind_domain(const isl::multi_id &tuple) const |
5055 | { |
5056 | return isl::pw_aff(*this).bind_domain(tuple); |
5057 | } |
5058 | |
5059 | isl::pw_aff aff::bind_domain_wrapped_domain(const isl::multi_id &tuple) const |
5060 | { |
5061 | return isl::pw_aff(*this).bind_domain_wrapped_domain(tuple); |
5062 | } |
5063 | |
5064 | isl::aff aff::ceil() const |
5065 | { |
5066 | auto res = isl_aff_ceil(aff: copy()); |
5067 | return manage(ptr: res); |
5068 | } |
5069 | |
5070 | isl::pw_aff aff::coalesce() const |
5071 | { |
5072 | return isl::pw_aff(*this).coalesce(); |
5073 | } |
5074 | |
5075 | isl::pw_aff aff::cond(const isl::pw_aff &pwaff_true, const isl::pw_aff &pwaff_false) const |
5076 | { |
5077 | return isl::pw_aff(*this).cond(pwaff_true, pwaff_false); |
5078 | } |
5079 | |
5080 | isl::multi_val aff::constant_multi_val() const |
5081 | { |
5082 | return isl::multi_aff(*this).constant_multi_val(); |
5083 | } |
5084 | |
5085 | isl::val aff::constant_val() const |
5086 | { |
5087 | auto res = isl_aff_get_constant_val(aff: get()); |
5088 | return manage(ptr: res); |
5089 | } |
5090 | |
5091 | isl::val aff::get_constant_val() const |
5092 | { |
5093 | return constant_val(); |
5094 | } |
5095 | |
5096 | isl::val aff::denominator_val() const |
5097 | { |
5098 | auto res = isl_aff_get_denominator_val(aff: get()); |
5099 | return manage(ptr: res); |
5100 | } |
5101 | |
5102 | isl::val aff::get_denominator_val() const |
5103 | { |
5104 | return denominator_val(); |
5105 | } |
5106 | |
5107 | class size aff::dim(isl::dim type) const |
5108 | { |
5109 | return isl::multi_aff(*this).dim(type); |
5110 | } |
5111 | |
5112 | isl::id aff::dim_id(isl::dim type, unsigned int pos) const |
5113 | { |
5114 | return isl::pw_aff(*this).dim_id(type, pos); |
5115 | } |
5116 | |
5117 | isl::aff aff::div(isl::aff aff2) const |
5118 | { |
5119 | auto res = isl_aff_div(aff1: copy(), aff2: aff2.release()); |
5120 | return manage(ptr: res); |
5121 | } |
5122 | |
5123 | isl::pw_aff aff::div(const isl::pw_aff &pa2) const |
5124 | { |
5125 | return isl::pw_aff(*this).div(pa2); |
5126 | } |
5127 | |
5128 | isl::set aff::domain() const |
5129 | { |
5130 | return isl::pw_aff(*this).domain(); |
5131 | } |
5132 | |
5133 | isl::space aff::domain_space() const |
5134 | { |
5135 | return isl::pw_aff(*this).domain_space(); |
5136 | } |
5137 | |
5138 | isl::pw_multi_aff aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const |
5139 | { |
5140 | return isl::pw_aff(*this).drop_dims(type, first, n); |
5141 | } |
5142 | |
5143 | isl::set aff::eq_set(isl::aff aff2) const |
5144 | { |
5145 | auto res = isl_aff_eq_set(aff1: copy(), aff2: aff2.release()); |
5146 | return manage(ptr: res); |
5147 | } |
5148 | |
5149 | isl::set aff::eq_set(const isl::pw_aff &pwaff2) const |
5150 | { |
5151 | return isl::pw_aff(*this).eq_set(pwaff2); |
5152 | } |
5153 | |
5154 | isl::val aff::eval(isl::point pnt) const |
5155 | { |
5156 | auto res = isl_aff_eval(aff: copy(), pnt: pnt.release()); |
5157 | return manage(ptr: res); |
5158 | } |
5159 | |
5160 | isl::pw_multi_aff aff::(const isl::space &space) const |
5161 | { |
5162 | return isl::pw_aff(*this).extract_pw_multi_aff(space); |
5163 | } |
5164 | |
5165 | isl::multi_aff aff::flat_range_product(const isl::multi_aff &multi2) const |
5166 | { |
5167 | return isl::multi_aff(*this).flat_range_product(multi2); |
5168 | } |
5169 | |
5170 | isl::multi_pw_aff aff::flat_range_product(const isl::multi_pw_aff &multi2) const |
5171 | { |
5172 | return isl::pw_aff(*this).flat_range_product(multi2); |
5173 | } |
5174 | |
5175 | isl::multi_union_pw_aff aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const |
5176 | { |
5177 | return isl::pw_aff(*this).flat_range_product(multi2); |
5178 | } |
5179 | |
5180 | isl::pw_multi_aff aff::flat_range_product(const isl::pw_multi_aff &pma2) const |
5181 | { |
5182 | return isl::pw_aff(*this).flat_range_product(pma2); |
5183 | } |
5184 | |
5185 | isl::union_pw_multi_aff aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const |
5186 | { |
5187 | return isl::pw_aff(*this).flat_range_product(upma2); |
5188 | } |
5189 | |
5190 | isl::aff aff::floor() const |
5191 | { |
5192 | auto res = isl_aff_floor(aff: copy()); |
5193 | return manage(ptr: res); |
5194 | } |
5195 | |
5196 | stat aff::foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const |
5197 | { |
5198 | return isl::pw_aff(*this).foreach_piece(fn); |
5199 | } |
5200 | |
5201 | stat aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const |
5202 | { |
5203 | return isl::pw_aff(*this).foreach_piece(fn); |
5204 | } |
5205 | |
5206 | stat aff::foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const |
5207 | { |
5208 | return isl::pw_aff(*this).foreach_pw_aff(fn); |
5209 | } |
5210 | |
5211 | isl::set aff::ge_set(isl::aff aff2) const |
5212 | { |
5213 | auto res = isl_aff_ge_set(aff1: copy(), aff2: aff2.release()); |
5214 | return manage(ptr: res); |
5215 | } |
5216 | |
5217 | isl::set aff::ge_set(const isl::pw_aff &pwaff2) const |
5218 | { |
5219 | return isl::pw_aff(*this).ge_set(pwaff2); |
5220 | } |
5221 | |
5222 | isl::aff aff::gist(isl::set context) const |
5223 | { |
5224 | auto res = isl_aff_gist(aff: copy(), context: context.release()); |
5225 | return manage(ptr: res); |
5226 | } |
5227 | |
5228 | isl::union_pw_aff aff::gist(const isl::union_set &context) const |
5229 | { |
5230 | return isl::pw_aff(*this).gist(context); |
5231 | } |
5232 | |
5233 | isl::aff aff::gist(const isl::basic_set &context) const |
5234 | { |
5235 | return this->gist(context: isl::set(context)); |
5236 | } |
5237 | |
5238 | isl::aff aff::gist(const isl::point &context) const |
5239 | { |
5240 | return this->gist(context: isl::set(context)); |
5241 | } |
5242 | |
5243 | isl::set aff::gt_set(isl::aff aff2) const |
5244 | { |
5245 | auto res = isl_aff_gt_set(aff1: copy(), aff2: aff2.release()); |
5246 | return manage(ptr: res); |
5247 | } |
5248 | |
5249 | isl::set aff::gt_set(const isl::pw_aff &pwaff2) const |
5250 | { |
5251 | return isl::pw_aff(*this).gt_set(pwaff2); |
5252 | } |
5253 | |
5254 | boolean aff::has_range_tuple_id() const |
5255 | { |
5256 | return isl::multi_aff(*this).has_range_tuple_id(); |
5257 | } |
5258 | |
5259 | isl::multi_aff aff::identity() const |
5260 | { |
5261 | return isl::multi_aff(*this).identity(); |
5262 | } |
5263 | |
5264 | isl::pw_aff aff::insert_domain(const isl::space &domain) const |
5265 | { |
5266 | return isl::pw_aff(*this).insert_domain(domain); |
5267 | } |
5268 | |
5269 | isl::pw_aff aff::intersect_domain(const isl::set &set) const |
5270 | { |
5271 | return isl::pw_aff(*this).intersect_domain(set); |
5272 | } |
5273 | |
5274 | isl::union_pw_aff aff::intersect_domain(const isl::space &space) const |
5275 | { |
5276 | return isl::pw_aff(*this).intersect_domain(space); |
5277 | } |
5278 | |
5279 | isl::union_pw_aff aff::intersect_domain(const isl::union_set &uset) const |
5280 | { |
5281 | return isl::pw_aff(*this).intersect_domain(uset); |
5282 | } |
5283 | |
5284 | isl::union_pw_aff aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const |
5285 | { |
5286 | return isl::pw_aff(*this).intersect_domain_wrapped_domain(uset); |
5287 | } |
5288 | |
5289 | isl::union_pw_aff aff::intersect_domain_wrapped_range(const isl::union_set &uset) const |
5290 | { |
5291 | return isl::pw_aff(*this).intersect_domain_wrapped_range(uset); |
5292 | } |
5293 | |
5294 | isl::pw_aff aff::intersect_params(const isl::set &set) const |
5295 | { |
5296 | return isl::pw_aff(*this).intersect_params(set); |
5297 | } |
5298 | |
5299 | boolean aff::involves_locals() const |
5300 | { |
5301 | return isl::multi_aff(*this).involves_locals(); |
5302 | } |
5303 | |
5304 | boolean aff::involves_nan() const |
5305 | { |
5306 | return isl::multi_aff(*this).involves_nan(); |
5307 | } |
5308 | |
5309 | boolean aff::involves_param(const isl::id &id) const |
5310 | { |
5311 | return isl::pw_aff(*this).involves_param(id); |
5312 | } |
5313 | |
5314 | boolean aff::involves_param(const std::string &id) const |
5315 | { |
5316 | return this->involves_param(id: isl::id(ctx(), id)); |
5317 | } |
5318 | |
5319 | boolean aff::involves_param(const isl::id_list &list) const |
5320 | { |
5321 | return isl::pw_aff(*this).involves_param(list); |
5322 | } |
5323 | |
5324 | boolean aff::is_cst() const |
5325 | { |
5326 | auto res = isl_aff_is_cst(aff: get()); |
5327 | return manage(val: res); |
5328 | } |
5329 | |
5330 | boolean aff::is_equal(const isl::pw_aff &pa2) const |
5331 | { |
5332 | return isl::pw_aff(*this).is_equal(pa2); |
5333 | } |
5334 | |
5335 | boolean aff::isa_aff() const |
5336 | { |
5337 | return isl::pw_aff(*this).isa_aff(); |
5338 | } |
5339 | |
5340 | boolean aff::isa_multi_aff() const |
5341 | { |
5342 | return isl::pw_aff(*this).isa_multi_aff(); |
5343 | } |
5344 | |
5345 | boolean aff::isa_pw_multi_aff() const |
5346 | { |
5347 | return isl::pw_aff(*this).isa_pw_multi_aff(); |
5348 | } |
5349 | |
5350 | isl::set aff::le_set(isl::aff aff2) const |
5351 | { |
5352 | auto res = isl_aff_le_set(aff1: copy(), aff2: aff2.release()); |
5353 | return manage(ptr: res); |
5354 | } |
5355 | |
5356 | isl::set aff::le_set(const isl::pw_aff &pwaff2) const |
5357 | { |
5358 | return isl::pw_aff(*this).le_set(pwaff2); |
5359 | } |
5360 | |
5361 | isl::aff_list aff::list() const |
5362 | { |
5363 | return isl::multi_aff(*this).list(); |
5364 | } |
5365 | |
5366 | isl::set aff::lt_set(isl::aff aff2) const |
5367 | { |
5368 | auto res = isl_aff_lt_set(aff1: copy(), aff2: aff2.release()); |
5369 | return manage(ptr: res); |
5370 | } |
5371 | |
5372 | isl::set aff::lt_set(const isl::pw_aff &pwaff2) const |
5373 | { |
5374 | return isl::pw_aff(*this).lt_set(pwaff2); |
5375 | } |
5376 | |
5377 | isl::multi_pw_aff aff::max(const isl::multi_pw_aff &multi2) const |
5378 | { |
5379 | return isl::pw_aff(*this).max(multi2); |
5380 | } |
5381 | |
5382 | isl::pw_aff aff::max(const isl::pw_aff &pwaff2) const |
5383 | { |
5384 | return isl::pw_aff(*this).max(pwaff2); |
5385 | } |
5386 | |
5387 | isl::multi_val aff::max_multi_val() const |
5388 | { |
5389 | return isl::pw_aff(*this).max_multi_val(); |
5390 | } |
5391 | |
5392 | isl::multi_pw_aff aff::min(const isl::multi_pw_aff &multi2) const |
5393 | { |
5394 | return isl::pw_aff(*this).min(multi2); |
5395 | } |
5396 | |
5397 | isl::pw_aff aff::min(const isl::pw_aff &pwaff2) const |
5398 | { |
5399 | return isl::pw_aff(*this).min(pwaff2); |
5400 | } |
5401 | |
5402 | isl::multi_val aff::min_multi_val() const |
5403 | { |
5404 | return isl::pw_aff(*this).min_multi_val(); |
5405 | } |
5406 | |
5407 | isl::aff aff::mod(isl::val mod) const |
5408 | { |
5409 | auto res = isl_aff_mod_val(aff: copy(), mod: mod.release()); |
5410 | return manage(ptr: res); |
5411 | } |
5412 | |
5413 | isl::aff aff::mod(long mod) const |
5414 | { |
5415 | return this->mod(mod: isl::val(ctx(), mod)); |
5416 | } |
5417 | |
5418 | isl::aff aff::mul(isl::aff aff2) const |
5419 | { |
5420 | auto res = isl_aff_mul(aff1: copy(), aff2: aff2.release()); |
5421 | return manage(ptr: res); |
5422 | } |
5423 | |
5424 | isl::pw_aff aff::mul(const isl::pw_aff &pwaff2) const |
5425 | { |
5426 | return isl::pw_aff(*this).mul(pwaff2); |
5427 | } |
5428 | |
5429 | class size aff::n_piece() const |
5430 | { |
5431 | return isl::pw_aff(*this).n_piece(); |
5432 | } |
5433 | |
5434 | isl::set aff::ne_set(isl::aff aff2) const |
5435 | { |
5436 | auto res = isl_aff_ne_set(aff1: copy(), aff2: aff2.release()); |
5437 | return manage(ptr: res); |
5438 | } |
5439 | |
5440 | isl::set aff::ne_set(const isl::pw_aff &pwaff2) const |
5441 | { |
5442 | return isl::pw_aff(*this).ne_set(pwaff2); |
5443 | } |
5444 | |
5445 | isl::aff aff::neg() const |
5446 | { |
5447 | auto res = isl_aff_neg(aff: copy()); |
5448 | return manage(ptr: res); |
5449 | } |
5450 | |
5451 | boolean aff::plain_is_empty() const |
5452 | { |
5453 | return isl::pw_aff(*this).plain_is_empty(); |
5454 | } |
5455 | |
5456 | boolean aff::plain_is_equal(const isl::multi_aff &multi2) const |
5457 | { |
5458 | return isl::multi_aff(*this).plain_is_equal(multi2); |
5459 | } |
5460 | |
5461 | boolean aff::plain_is_equal(const isl::multi_pw_aff &multi2) const |
5462 | { |
5463 | return isl::pw_aff(*this).plain_is_equal(multi2); |
5464 | } |
5465 | |
5466 | boolean aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
5467 | { |
5468 | return isl::pw_aff(*this).plain_is_equal(multi2); |
5469 | } |
5470 | |
5471 | isl::pw_multi_aff aff::preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const |
5472 | { |
5473 | return isl::pw_aff(*this).preimage_domain_wrapped_domain(pma2); |
5474 | } |
5475 | |
5476 | isl::union_pw_multi_aff aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const |
5477 | { |
5478 | return isl::pw_aff(*this).preimage_domain_wrapped_domain(upma2); |
5479 | } |
5480 | |
5481 | isl::multi_aff aff::product(const isl::multi_aff &multi2) const |
5482 | { |
5483 | return isl::multi_aff(*this).product(multi2); |
5484 | } |
5485 | |
5486 | isl::multi_pw_aff aff::product(const isl::multi_pw_aff &multi2) const |
5487 | { |
5488 | return isl::pw_aff(*this).product(multi2); |
5489 | } |
5490 | |
5491 | isl::pw_multi_aff aff::product(const isl::pw_multi_aff &pma2) const |
5492 | { |
5493 | return isl::pw_aff(*this).product(pma2); |
5494 | } |
5495 | |
5496 | isl::aff aff::pullback(isl::multi_aff ma) const |
5497 | { |
5498 | auto res = isl_aff_pullback_multi_aff(aff: copy(), ma: ma.release()); |
5499 | return manage(ptr: res); |
5500 | } |
5501 | |
5502 | isl::pw_aff aff::pullback(const isl::multi_pw_aff &mpa) const |
5503 | { |
5504 | return isl::pw_aff(*this).pullback(mpa); |
5505 | } |
5506 | |
5507 | isl::pw_aff aff::pullback(const isl::pw_multi_aff &pma) const |
5508 | { |
5509 | return isl::pw_aff(*this).pullback(pma); |
5510 | } |
5511 | |
5512 | isl::union_pw_aff aff::pullback(const isl::union_pw_multi_aff &upma) const |
5513 | { |
5514 | return isl::pw_aff(*this).pullback(upma); |
5515 | } |
5516 | |
5517 | isl::aff aff::pullback(const isl::aff &ma) const |
5518 | { |
5519 | return this->pullback(ma: isl::multi_aff(ma)); |
5520 | } |
5521 | |
5522 | isl::pw_multi_aff_list aff::pw_multi_aff_list() const |
5523 | { |
5524 | return isl::pw_aff(*this).pw_multi_aff_list(); |
5525 | } |
5526 | |
5527 | isl::pw_multi_aff aff::range_factor_domain() const |
5528 | { |
5529 | return isl::pw_aff(*this).range_factor_domain(); |
5530 | } |
5531 | |
5532 | isl::pw_multi_aff aff::range_factor_range() const |
5533 | { |
5534 | return isl::pw_aff(*this).range_factor_range(); |
5535 | } |
5536 | |
5537 | isl::multi_aff aff::range_product(const isl::multi_aff &multi2) const |
5538 | { |
5539 | return isl::multi_aff(*this).range_product(multi2); |
5540 | } |
5541 | |
5542 | isl::multi_pw_aff aff::range_product(const isl::multi_pw_aff &multi2) const |
5543 | { |
5544 | return isl::pw_aff(*this).range_product(multi2); |
5545 | } |
5546 | |
5547 | isl::multi_union_pw_aff aff::range_product(const isl::multi_union_pw_aff &multi2) const |
5548 | { |
5549 | return isl::pw_aff(*this).range_product(multi2); |
5550 | } |
5551 | |
5552 | isl::pw_multi_aff aff::range_product(const isl::pw_multi_aff &pma2) const |
5553 | { |
5554 | return isl::pw_aff(*this).range_product(pma2); |
5555 | } |
5556 | |
5557 | isl::union_pw_multi_aff aff::range_product(const isl::union_pw_multi_aff &upma2) const |
5558 | { |
5559 | return isl::pw_aff(*this).range_product(upma2); |
5560 | } |
5561 | |
5562 | isl::id aff::range_tuple_id() const |
5563 | { |
5564 | return isl::multi_aff(*this).range_tuple_id(); |
5565 | } |
5566 | |
5567 | isl::multi_aff aff::reset_range_tuple_id() const |
5568 | { |
5569 | return isl::multi_aff(*this).reset_range_tuple_id(); |
5570 | } |
5571 | |
5572 | isl::multi_aff aff::reset_tuple_id(isl::dim type) const |
5573 | { |
5574 | return isl::multi_aff(*this).reset_tuple_id(type); |
5575 | } |
5576 | |
5577 | isl::aff aff::scale(isl::val v) const |
5578 | { |
5579 | auto res = isl_aff_scale_val(aff: copy(), v: v.release()); |
5580 | return manage(ptr: res); |
5581 | } |
5582 | |
5583 | isl::aff aff::scale(long v) const |
5584 | { |
5585 | return this->scale(v: isl::val(ctx(), v)); |
5586 | } |
5587 | |
5588 | isl::multi_aff aff::scale(const isl::multi_val &mv) const |
5589 | { |
5590 | return isl::multi_aff(*this).scale(mv); |
5591 | } |
5592 | |
5593 | isl::aff aff::scale_down(isl::val v) const |
5594 | { |
5595 | auto res = isl_aff_scale_down_val(aff: copy(), v: v.release()); |
5596 | return manage(ptr: res); |
5597 | } |
5598 | |
5599 | isl::aff aff::scale_down(long v) const |
5600 | { |
5601 | return this->scale_down(v: isl::val(ctx(), v)); |
5602 | } |
5603 | |
5604 | isl::multi_aff aff::scale_down(const isl::multi_val &mv) const |
5605 | { |
5606 | return isl::multi_aff(*this).scale_down(mv); |
5607 | } |
5608 | |
5609 | isl::multi_aff aff::set_aff(int pos, const isl::aff &el) const |
5610 | { |
5611 | return isl::multi_aff(*this).set_aff(pos, el); |
5612 | } |
5613 | |
5614 | isl::multi_aff aff::set_at(int pos, const isl::aff &el) const |
5615 | { |
5616 | return isl::multi_aff(*this).set_at(pos, el); |
5617 | } |
5618 | |
5619 | isl::multi_pw_aff aff::set_at(int pos, const isl::pw_aff &el) const |
5620 | { |
5621 | return isl::pw_aff(*this).set_at(pos, el); |
5622 | } |
5623 | |
5624 | isl::multi_union_pw_aff aff::set_at(int pos, const isl::union_pw_aff &el) const |
5625 | { |
5626 | return isl::pw_aff(*this).set_at(pos, el); |
5627 | } |
5628 | |
5629 | isl::aff aff::set_constant_si(int v) const |
5630 | { |
5631 | auto res = isl_aff_set_constant_si(aff: copy(), v); |
5632 | return manage(ptr: res); |
5633 | } |
5634 | |
5635 | isl::multi_pw_aff aff::set_pw_aff(int pos, const isl::pw_aff &el) const |
5636 | { |
5637 | return isl::pw_aff(*this).set_pw_aff(pos, el); |
5638 | } |
5639 | |
5640 | isl::pw_multi_aff aff::set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const |
5641 | { |
5642 | return isl::pw_aff(*this).set_pw_aff(pos, pa); |
5643 | } |
5644 | |
5645 | isl::multi_aff aff::set_range_tuple(const isl::id &id) const |
5646 | { |
5647 | return isl::multi_aff(*this).set_range_tuple(id); |
5648 | } |
5649 | |
5650 | isl::multi_aff aff::set_range_tuple(const std::string &id) const |
5651 | { |
5652 | return this->set_range_tuple(isl::id(ctx(), id)); |
5653 | } |
5654 | |
5655 | isl::pw_aff aff::set_tuple_id(isl::dim type, const isl::id &id) const |
5656 | { |
5657 | return isl::pw_aff(*this).set_tuple_id(type, id); |
5658 | } |
5659 | |
5660 | isl::pw_aff aff::set_tuple_id(isl::dim type, const std::string &id) const |
5661 | { |
5662 | return this->set_tuple_id(type, id: isl::id(ctx(), id)); |
5663 | } |
5664 | |
5665 | isl::multi_union_pw_aff aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const |
5666 | { |
5667 | return isl::pw_aff(*this).set_union_pw_aff(pos, el); |
5668 | } |
5669 | |
5670 | class size aff::size() const |
5671 | { |
5672 | return isl::multi_aff(*this).size(); |
5673 | } |
5674 | |
5675 | isl::space aff::space() const |
5676 | { |
5677 | return isl::pw_aff(*this).space(); |
5678 | } |
5679 | |
5680 | isl::aff aff::sub(isl::aff aff2) const |
5681 | { |
5682 | auto res = isl_aff_sub(aff1: copy(), aff2: aff2.release()); |
5683 | return manage(ptr: res); |
5684 | } |
5685 | |
5686 | isl::multi_aff aff::sub(const isl::multi_aff &multi2) const |
5687 | { |
5688 | return isl::multi_aff(*this).sub(multi2); |
5689 | } |
5690 | |
5691 | isl::multi_pw_aff aff::sub(const isl::multi_pw_aff &multi2) const |
5692 | { |
5693 | return isl::pw_aff(*this).sub(multi2); |
5694 | } |
5695 | |
5696 | isl::multi_union_pw_aff aff::sub(const isl::multi_union_pw_aff &multi2) const |
5697 | { |
5698 | return isl::pw_aff(*this).sub(multi2); |
5699 | } |
5700 | |
5701 | isl::pw_aff aff::sub(const isl::pw_aff &pwaff2) const |
5702 | { |
5703 | return isl::pw_aff(*this).sub(pwaff2); |
5704 | } |
5705 | |
5706 | isl::pw_multi_aff aff::sub(const isl::pw_multi_aff &pma2) const |
5707 | { |
5708 | return isl::pw_aff(*this).sub(pma2); |
5709 | } |
5710 | |
5711 | isl::union_pw_aff aff::sub(const isl::union_pw_aff &upa2) const |
5712 | { |
5713 | return isl::pw_aff(*this).sub(upa2); |
5714 | } |
5715 | |
5716 | isl::union_pw_multi_aff aff::sub(const isl::union_pw_multi_aff &upma2) const |
5717 | { |
5718 | return isl::pw_aff(*this).sub(upma2); |
5719 | } |
5720 | |
5721 | isl::pw_aff aff::subtract_domain(const isl::set &set) const |
5722 | { |
5723 | return isl::pw_aff(*this).subtract_domain(set); |
5724 | } |
5725 | |
5726 | isl::union_pw_aff aff::subtract_domain(const isl::space &space) const |
5727 | { |
5728 | return isl::pw_aff(*this).subtract_domain(space); |
5729 | } |
5730 | |
5731 | isl::union_pw_aff aff::subtract_domain(const isl::union_set &uset) const |
5732 | { |
5733 | return isl::pw_aff(*this).subtract_domain(uset); |
5734 | } |
5735 | |
5736 | isl::pw_aff aff::tdiv_q(const isl::pw_aff &pa2) const |
5737 | { |
5738 | return isl::pw_aff(*this).tdiv_q(pa2); |
5739 | } |
5740 | |
5741 | isl::pw_aff aff::tdiv_r(const isl::pw_aff &pa2) const |
5742 | { |
5743 | return isl::pw_aff(*this).tdiv_r(pa2); |
5744 | } |
5745 | |
5746 | isl::aff_list aff::to_list() const |
5747 | { |
5748 | auto res = isl_aff_to_list(el: copy()); |
5749 | return manage(ptr: res); |
5750 | } |
5751 | |
5752 | isl::multi_pw_aff aff::to_multi_pw_aff() const |
5753 | { |
5754 | return isl::multi_aff(*this).to_multi_pw_aff(); |
5755 | } |
5756 | |
5757 | isl::multi_union_pw_aff aff::to_multi_union_pw_aff() const |
5758 | { |
5759 | return isl::multi_aff(*this).to_multi_union_pw_aff(); |
5760 | } |
5761 | |
5762 | isl::pw_multi_aff aff::to_pw_multi_aff() const |
5763 | { |
5764 | return isl::multi_aff(*this).to_pw_multi_aff(); |
5765 | } |
5766 | |
5767 | isl::union_pw_aff aff::to_union_pw_aff() const |
5768 | { |
5769 | return isl::pw_aff(*this).to_union_pw_aff(); |
5770 | } |
5771 | |
5772 | isl::union_pw_multi_aff aff::to_union_pw_multi_aff() const |
5773 | { |
5774 | return isl::pw_aff(*this).to_union_pw_multi_aff(); |
5775 | } |
5776 | |
5777 | isl::id aff::tuple_id(isl::dim type) const |
5778 | { |
5779 | return isl::pw_aff(*this).tuple_id(type); |
5780 | } |
5781 | |
5782 | isl::aff aff::unbind_params_insert_domain(isl::multi_id domain) const |
5783 | { |
5784 | auto res = isl_aff_unbind_params_insert_domain(aff: copy(), domain: domain.release()); |
5785 | return manage(ptr: res); |
5786 | } |
5787 | |
5788 | isl::multi_pw_aff aff::union_add(const isl::multi_pw_aff &mpa2) const |
5789 | { |
5790 | return isl::pw_aff(*this).union_add(mpa2); |
5791 | } |
5792 | |
5793 | isl::multi_union_pw_aff aff::union_add(const isl::multi_union_pw_aff &mupa2) const |
5794 | { |
5795 | return isl::pw_aff(*this).union_add(mupa2); |
5796 | } |
5797 | |
5798 | isl::pw_aff aff::union_add(const isl::pw_aff &pwaff2) const |
5799 | { |
5800 | return isl::pw_aff(*this).union_add(pwaff2); |
5801 | } |
5802 | |
5803 | isl::pw_multi_aff aff::union_add(const isl::pw_multi_aff &pma2) const |
5804 | { |
5805 | return isl::pw_aff(*this).union_add(pma2); |
5806 | } |
5807 | |
5808 | isl::union_pw_aff aff::union_add(const isl::union_pw_aff &upa2) const |
5809 | { |
5810 | return isl::pw_aff(*this).union_add(upa2); |
5811 | } |
5812 | |
5813 | isl::union_pw_multi_aff aff::union_add(const isl::union_pw_multi_aff &upma2) const |
5814 | { |
5815 | return isl::pw_aff(*this).union_add(upma2); |
5816 | } |
5817 | |
5818 | isl::aff aff::var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos) |
5819 | { |
5820 | auto res = isl_aff_var_on_domain(ls: ls.release(), type: static_cast<enum isl_dim_type>(type), pos); |
5821 | return manage(ptr: res); |
5822 | } |
5823 | |
5824 | isl::aff aff::zero_on_domain(isl::space space) |
5825 | { |
5826 | auto res = isl_aff_zero_on_domain_space(space: space.release()); |
5827 | return manage(ptr: res); |
5828 | } |
5829 | |
5830 | inline std::ostream &operator<<(std::ostream &os, const aff &obj) |
5831 | { |
5832 | char *str = isl_aff_to_str(aff: obj.get()); |
5833 | if (!str) { |
5834 | os.setstate(std::ios_base::badbit); |
5835 | return os; |
5836 | } |
5837 | os << str; |
5838 | free(ptr: str); |
5839 | return os; |
5840 | } |
5841 | |
5842 | // implementations for isl::aff_list |
5843 | aff_list manage(__isl_take isl_aff_list *ptr) { |
5844 | return aff_list(ptr); |
5845 | } |
5846 | aff_list manage_copy(__isl_keep isl_aff_list *ptr) { |
5847 | ptr = isl_aff_list_copy(list: ptr); |
5848 | return aff_list(ptr); |
5849 | } |
5850 | |
5851 | aff_list::aff_list() |
5852 | : ptr(nullptr) {} |
5853 | |
5854 | aff_list::aff_list(const aff_list &obj) |
5855 | : ptr(nullptr) |
5856 | { |
5857 | ptr = obj.copy(); |
5858 | } |
5859 | |
5860 | aff_list::aff_list(__isl_take isl_aff_list *ptr) |
5861 | : ptr(ptr) {} |
5862 | |
5863 | aff_list::aff_list(isl::ctx ctx, int n) |
5864 | { |
5865 | auto res = isl_aff_list_alloc(ctx: ctx.release(), n); |
5866 | ptr = res; |
5867 | } |
5868 | |
5869 | aff_list::aff_list(isl::aff el) |
5870 | { |
5871 | auto res = isl_aff_list_from_aff(el: el.release()); |
5872 | ptr = res; |
5873 | } |
5874 | |
5875 | aff_list::aff_list(isl::ctx ctx, const std::string &str) |
5876 | { |
5877 | auto res = isl_aff_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
5878 | ptr = res; |
5879 | } |
5880 | |
5881 | aff_list &aff_list::operator=(aff_list obj) { |
5882 | std::swap(a&: this->ptr, b&: obj.ptr); |
5883 | return *this; |
5884 | } |
5885 | |
5886 | aff_list::~aff_list() { |
5887 | if (ptr) |
5888 | isl_aff_list_free(list: ptr); |
5889 | } |
5890 | |
5891 | __isl_give isl_aff_list *aff_list::copy() const & { |
5892 | return isl_aff_list_copy(list: ptr); |
5893 | } |
5894 | |
5895 | __isl_keep isl_aff_list *aff_list::get() const { |
5896 | return ptr; |
5897 | } |
5898 | |
5899 | __isl_give isl_aff_list *aff_list::release() { |
5900 | isl_aff_list *tmp = ptr; |
5901 | ptr = nullptr; |
5902 | return tmp; |
5903 | } |
5904 | |
5905 | bool aff_list::is_null() const { |
5906 | return ptr == nullptr; |
5907 | } |
5908 | |
5909 | isl::ctx aff_list::ctx() const { |
5910 | return isl::ctx(isl_aff_list_get_ctx(list: ptr)); |
5911 | } |
5912 | |
5913 | isl::aff_list aff_list::add(isl::aff el) const |
5914 | { |
5915 | auto res = isl_aff_list_add(list: copy(), el: el.release()); |
5916 | return manage(ptr: res); |
5917 | } |
5918 | |
5919 | isl::aff aff_list::at(int index) const |
5920 | { |
5921 | auto res = isl_aff_list_get_at(list: get(), index); |
5922 | return manage(ptr: res); |
5923 | } |
5924 | |
5925 | isl::aff aff_list::get_at(int index) const |
5926 | { |
5927 | return at(index); |
5928 | } |
5929 | |
5930 | isl::aff_list aff_list::clear() const |
5931 | { |
5932 | auto res = isl_aff_list_clear(list: copy()); |
5933 | return manage(ptr: res); |
5934 | } |
5935 | |
5936 | isl::aff_list aff_list::concat(isl::aff_list list2) const |
5937 | { |
5938 | auto res = isl_aff_list_concat(list1: copy(), list2: list2.release()); |
5939 | return manage(ptr: res); |
5940 | } |
5941 | |
5942 | isl::aff_list aff_list::drop(unsigned int first, unsigned int n) const |
5943 | { |
5944 | auto res = isl_aff_list_drop(list: copy(), first, n); |
5945 | return manage(ptr: res); |
5946 | } |
5947 | |
5948 | stat aff_list::foreach(const std::function<stat(isl::aff)> &fn) const |
5949 | { |
5950 | struct fn_data { |
5951 | std::function<stat(isl::aff)> func; |
5952 | } fn_data = { .func: fn }; |
5953 | auto fn_lambda = [](isl_aff *arg_0, void *arg_1) -> isl_stat { |
5954 | auto *data = static_cast<struct fn_data *>(arg_1); |
5955 | auto ret = (data->func)(manage(ptr: arg_0)); |
5956 | return ret.release(); |
5957 | }; |
5958 | auto res = isl_aff_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
5959 | return manage(val: res); |
5960 | } |
5961 | |
5962 | isl::aff_list aff_list::insert(unsigned int pos, isl::aff el) const |
5963 | { |
5964 | auto res = isl_aff_list_insert(list: copy(), pos, el: el.release()); |
5965 | return manage(ptr: res); |
5966 | } |
5967 | |
5968 | class size aff_list::size() const |
5969 | { |
5970 | auto res = isl_aff_list_size(list: get()); |
5971 | return manage(val: res); |
5972 | } |
5973 | |
5974 | inline std::ostream &operator<<(std::ostream &os, const aff_list &obj) |
5975 | { |
5976 | char *str = isl_aff_list_to_str(list: obj.get()); |
5977 | if (!str) { |
5978 | os.setstate(std::ios_base::badbit); |
5979 | return os; |
5980 | } |
5981 | os << str; |
5982 | free(ptr: str); |
5983 | return os; |
5984 | } |
5985 | |
5986 | // implementations for isl::ast_build |
5987 | ast_build manage(__isl_take isl_ast_build *ptr) { |
5988 | return ast_build(ptr); |
5989 | } |
5990 | ast_build manage_copy(__isl_keep isl_ast_build *ptr) { |
5991 | ptr = isl_ast_build_copy(build: ptr); |
5992 | return ast_build(ptr); |
5993 | } |
5994 | |
5995 | ast_build::ast_build() |
5996 | : ptr(nullptr) {} |
5997 | |
5998 | ast_build::ast_build(const ast_build &obj) |
5999 | : ptr(nullptr) |
6000 | { |
6001 | ptr = obj.copy(); |
6002 | copy_callbacks(obj); |
6003 | } |
6004 | |
6005 | ast_build::ast_build(__isl_take isl_ast_build *ptr) |
6006 | : ptr(ptr) {} |
6007 | |
6008 | ast_build::ast_build(isl::ctx ctx) |
6009 | { |
6010 | auto res = isl_ast_build_alloc(ctx: ctx.release()); |
6011 | ptr = res; |
6012 | } |
6013 | |
6014 | ast_build &ast_build::operator=(ast_build obj) { |
6015 | std::swap(a&: this->ptr, b&: obj.ptr); |
6016 | copy_callbacks(obj); |
6017 | return *this; |
6018 | } |
6019 | |
6020 | ast_build::~ast_build() { |
6021 | if (ptr) |
6022 | isl_ast_build_free(build: ptr); |
6023 | } |
6024 | |
6025 | __isl_give isl_ast_build *ast_build::copy() const & { |
6026 | return isl_ast_build_copy(build: ptr); |
6027 | } |
6028 | |
6029 | __isl_keep isl_ast_build *ast_build::get() const { |
6030 | return ptr; |
6031 | } |
6032 | |
6033 | __isl_give isl_ast_build *ast_build::release() { |
6034 | if (at_each_domain_data) |
6035 | isl_die(ctx().get(), isl_error_invalid, "cannot release object with persistent callbacks" , return nullptr); |
6036 | isl_ast_build *tmp = ptr; |
6037 | ptr = nullptr; |
6038 | return tmp; |
6039 | } |
6040 | |
6041 | bool ast_build::is_null() const { |
6042 | return ptr == nullptr; |
6043 | } |
6044 | |
6045 | isl::ctx ast_build::ctx() const { |
6046 | return isl::ctx(isl_ast_build_get_ctx(build: ptr)); |
6047 | } |
6048 | |
6049 | ast_build &ast_build::copy_callbacks(const ast_build &obj) |
6050 | { |
6051 | at_each_domain_data = obj.at_each_domain_data; |
6052 | return *this; |
6053 | } |
6054 | |
6055 | isl_ast_node *ast_build::at_each_domain(isl_ast_node *arg_0, isl_ast_build *arg_1, void *arg_2) |
6056 | { |
6057 | auto *data = static_cast<struct at_each_domain_data *>(arg_2); |
6058 | auto ret = (data->func)(manage(ptr: arg_0), manage_copy(ptr: arg_1)); |
6059 | return ret.release(); |
6060 | } |
6061 | |
6062 | void ast_build::set_at_each_domain_data(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn) |
6063 | { |
6064 | at_each_domain_data = std::make_shared<struct at_each_domain_data>(); |
6065 | at_each_domain_data->func = fn; |
6066 | ptr = isl_ast_build_set_at_each_domain(build: ptr, fn: &at_each_domain, user: at_each_domain_data.get()); |
6067 | } |
6068 | |
6069 | isl::ast_build ast_build::set_at_each_domain(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn) const |
6070 | { |
6071 | auto copy = *this; |
6072 | copy.set_at_each_domain_data(fn); |
6073 | return copy; |
6074 | } |
6075 | |
6076 | isl::ast_expr ast_build::access_from(isl::multi_pw_aff mpa) const |
6077 | { |
6078 | auto res = isl_ast_build_access_from_multi_pw_aff(build: get(), mpa: mpa.release()); |
6079 | return manage(ptr: res); |
6080 | } |
6081 | |
6082 | isl::ast_expr ast_build::access_from(isl::pw_multi_aff pma) const |
6083 | { |
6084 | auto res = isl_ast_build_access_from_pw_multi_aff(build: get(), pma: pma.release()); |
6085 | return manage(ptr: res); |
6086 | } |
6087 | |
6088 | isl::ast_expr ast_build::call_from(isl::multi_pw_aff mpa) const |
6089 | { |
6090 | auto res = isl_ast_build_call_from_multi_pw_aff(build: get(), mpa: mpa.release()); |
6091 | return manage(ptr: res); |
6092 | } |
6093 | |
6094 | isl::ast_expr ast_build::call_from(isl::pw_multi_aff pma) const |
6095 | { |
6096 | auto res = isl_ast_build_call_from_pw_multi_aff(build: get(), pma: pma.release()); |
6097 | return manage(ptr: res); |
6098 | } |
6099 | |
6100 | isl::ast_expr ast_build::expr_from(isl::pw_aff pa) const |
6101 | { |
6102 | auto res = isl_ast_build_expr_from_pw_aff(build: get(), pa: pa.release()); |
6103 | return manage(ptr: res); |
6104 | } |
6105 | |
6106 | isl::ast_expr ast_build::expr_from(isl::set set) const |
6107 | { |
6108 | auto res = isl_ast_build_expr_from_set(build: get(), set: set.release()); |
6109 | return manage(ptr: res); |
6110 | } |
6111 | |
6112 | isl::ast_build ast_build::from_context(isl::set set) |
6113 | { |
6114 | auto res = isl_ast_build_from_context(set: set.release()); |
6115 | return manage(ptr: res); |
6116 | } |
6117 | |
6118 | isl::ast_node ast_build::node_from(isl::schedule schedule) const |
6119 | { |
6120 | auto res = isl_ast_build_node_from_schedule(build: get(), schedule: schedule.release()); |
6121 | return manage(ptr: res); |
6122 | } |
6123 | |
6124 | isl::ast_node ast_build::node_from_schedule_map(isl::union_map schedule) const |
6125 | { |
6126 | auto res = isl_ast_build_node_from_schedule_map(build: get(), schedule: schedule.release()); |
6127 | return manage(ptr: res); |
6128 | } |
6129 | |
6130 | isl::ast_build ast_build::restrict(isl::set set) const |
6131 | { |
6132 | auto res = isl_ast_build_restrict(build: copy(), set: set.release()); |
6133 | return manage(ptr: res).copy_callbacks(obj: *this); |
6134 | } |
6135 | |
6136 | isl::union_map ast_build::schedule() const |
6137 | { |
6138 | auto res = isl_ast_build_get_schedule(build: get()); |
6139 | return manage(ptr: res); |
6140 | } |
6141 | |
6142 | isl::union_map ast_build::get_schedule() const |
6143 | { |
6144 | return schedule(); |
6145 | } |
6146 | |
6147 | // implementations for isl::ast_expr |
6148 | ast_expr manage(__isl_take isl_ast_expr *ptr) { |
6149 | return ast_expr(ptr); |
6150 | } |
6151 | ast_expr manage_copy(__isl_keep isl_ast_expr *ptr) { |
6152 | ptr = isl_ast_expr_copy(expr: ptr); |
6153 | return ast_expr(ptr); |
6154 | } |
6155 | |
6156 | ast_expr::ast_expr() |
6157 | : ptr(nullptr) {} |
6158 | |
6159 | ast_expr::ast_expr(const ast_expr &obj) |
6160 | : ptr(nullptr) |
6161 | { |
6162 | ptr = obj.copy(); |
6163 | } |
6164 | |
6165 | ast_expr::ast_expr(__isl_take isl_ast_expr *ptr) |
6166 | : ptr(ptr) {} |
6167 | |
6168 | ast_expr &ast_expr::operator=(ast_expr obj) { |
6169 | std::swap(a&: this->ptr, b&: obj.ptr); |
6170 | return *this; |
6171 | } |
6172 | |
6173 | ast_expr::~ast_expr() { |
6174 | if (ptr) |
6175 | isl_ast_expr_free(expr: ptr); |
6176 | } |
6177 | |
6178 | __isl_give isl_ast_expr *ast_expr::copy() const & { |
6179 | return isl_ast_expr_copy(expr: ptr); |
6180 | } |
6181 | |
6182 | __isl_keep isl_ast_expr *ast_expr::get() const { |
6183 | return ptr; |
6184 | } |
6185 | |
6186 | __isl_give isl_ast_expr *ast_expr::release() { |
6187 | isl_ast_expr *tmp = ptr; |
6188 | ptr = nullptr; |
6189 | return tmp; |
6190 | } |
6191 | |
6192 | bool ast_expr::is_null() const { |
6193 | return ptr == nullptr; |
6194 | } |
6195 | |
6196 | template <typename T, typename> |
6197 | boolean ast_expr::isa_type(T subtype) const |
6198 | { |
6199 | if (is_null()) |
6200 | return boolean(); |
6201 | return isl_ast_expr_get_type(expr: get()) == subtype; |
6202 | } |
6203 | template <class T> |
6204 | boolean ast_expr::isa() const |
6205 | { |
6206 | return isa_type<decltype(T::type)>(T::type); |
6207 | } |
6208 | template <class T> |
6209 | T ast_expr::as() const |
6210 | { |
6211 | if (isa<T>().is_false()) |
6212 | isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype" , return T()); |
6213 | return T(copy()); |
6214 | } |
6215 | |
6216 | isl::ctx ast_expr::ctx() const { |
6217 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6218 | } |
6219 | |
6220 | isl::ast_expr ast_expr::add(isl::ast_expr expr2) const |
6221 | { |
6222 | auto res = isl_ast_expr_add(expr1: copy(), expr2: expr2.release()); |
6223 | return manage(ptr: res); |
6224 | } |
6225 | |
6226 | isl::ast_expr ast_expr::address_of() const |
6227 | { |
6228 | auto res = isl_ast_expr_address_of(expr: copy()); |
6229 | return manage(ptr: res); |
6230 | } |
6231 | |
6232 | isl::ast_expr ast_expr::eq(isl::ast_expr expr2) const |
6233 | { |
6234 | auto res = isl_ast_expr_eq(expr1: copy(), expr2: expr2.release()); |
6235 | return manage(ptr: res); |
6236 | } |
6237 | |
6238 | isl::ast_expr ast_expr::from_val(isl::val v) |
6239 | { |
6240 | auto res = isl_ast_expr_from_val(v: v.release()); |
6241 | return manage(ptr: res); |
6242 | } |
6243 | |
6244 | isl::id ast_expr::id() const |
6245 | { |
6246 | auto res = isl_ast_expr_get_id(expr: get()); |
6247 | return manage(ptr: res); |
6248 | } |
6249 | |
6250 | isl::id ast_expr::get_id() const |
6251 | { |
6252 | return id(); |
6253 | } |
6254 | |
6255 | isl::ast_expr ast_expr::le(isl::ast_expr expr2) const |
6256 | { |
6257 | auto res = isl_ast_expr_le(expr1: copy(), expr2: expr2.release()); |
6258 | return manage(ptr: res); |
6259 | } |
6260 | |
6261 | isl::ast_expr ast_expr::mul(isl::ast_expr expr2) const |
6262 | { |
6263 | auto res = isl_ast_expr_mul(expr1: copy(), expr2: expr2.release()); |
6264 | return manage(ptr: res); |
6265 | } |
6266 | |
6267 | isl::ast_expr ast_expr::op_arg(int pos) const |
6268 | { |
6269 | auto res = isl_ast_expr_get_op_arg(expr: get(), pos); |
6270 | return manage(ptr: res); |
6271 | } |
6272 | |
6273 | isl::ast_expr ast_expr::get_op_arg(int pos) const |
6274 | { |
6275 | return op_arg(pos); |
6276 | } |
6277 | |
6278 | std::string ast_expr::to_C_str() const |
6279 | { |
6280 | auto res = isl_ast_expr_to_C_str(expr: get()); |
6281 | std::string tmp(res); |
6282 | free(ptr: res); |
6283 | return tmp; |
6284 | } |
6285 | |
6286 | isl::val ast_expr::val() const |
6287 | { |
6288 | auto res = isl_ast_expr_get_val(expr: get()); |
6289 | return manage(ptr: res); |
6290 | } |
6291 | |
6292 | isl::val ast_expr::get_val() const |
6293 | { |
6294 | return val(); |
6295 | } |
6296 | |
6297 | inline std::ostream &operator<<(std::ostream &os, const ast_expr &obj) |
6298 | { |
6299 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6300 | if (!str) { |
6301 | os.setstate(std::ios_base::badbit); |
6302 | return os; |
6303 | } |
6304 | os << str; |
6305 | free(ptr: str); |
6306 | return os; |
6307 | } |
6308 | |
6309 | // implementations for isl::ast_expr_id |
6310 | ast_expr_id::ast_expr_id() |
6311 | : ast_expr() {} |
6312 | |
6313 | ast_expr_id::ast_expr_id(const ast_expr_id &obj) |
6314 | : ast_expr(obj) |
6315 | { |
6316 | } |
6317 | |
6318 | ast_expr_id::ast_expr_id(__isl_take isl_ast_expr *ptr) |
6319 | : ast_expr(ptr) {} |
6320 | |
6321 | ast_expr_id &ast_expr_id::operator=(ast_expr_id obj) { |
6322 | std::swap(a&: this->ptr, b&: obj.ptr); |
6323 | return *this; |
6324 | } |
6325 | |
6326 | isl::ctx ast_expr_id::ctx() const { |
6327 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6328 | } |
6329 | |
6330 | isl::id ast_expr_id::id() const |
6331 | { |
6332 | auto res = isl_ast_expr_id_get_id(expr: get()); |
6333 | return manage(ptr: res); |
6334 | } |
6335 | |
6336 | isl::id ast_expr_id::get_id() const |
6337 | { |
6338 | return id(); |
6339 | } |
6340 | |
6341 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_id &obj) |
6342 | { |
6343 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6344 | if (!str) { |
6345 | os.setstate(std::ios_base::badbit); |
6346 | return os; |
6347 | } |
6348 | os << str; |
6349 | free(ptr: str); |
6350 | return os; |
6351 | } |
6352 | |
6353 | // implementations for isl::ast_expr_int |
6354 | ast_expr_int::ast_expr_int() |
6355 | : ast_expr() {} |
6356 | |
6357 | ast_expr_int::ast_expr_int(const ast_expr_int &obj) |
6358 | : ast_expr(obj) |
6359 | { |
6360 | } |
6361 | |
6362 | ast_expr_int::ast_expr_int(__isl_take isl_ast_expr *ptr) |
6363 | : ast_expr(ptr) {} |
6364 | |
6365 | ast_expr_int &ast_expr_int::operator=(ast_expr_int obj) { |
6366 | std::swap(a&: this->ptr, b&: obj.ptr); |
6367 | return *this; |
6368 | } |
6369 | |
6370 | isl::ctx ast_expr_int::ctx() const { |
6371 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6372 | } |
6373 | |
6374 | isl::val ast_expr_int::val() const |
6375 | { |
6376 | auto res = isl_ast_expr_int_get_val(expr: get()); |
6377 | return manage(ptr: res); |
6378 | } |
6379 | |
6380 | isl::val ast_expr_int::get_val() const |
6381 | { |
6382 | return val(); |
6383 | } |
6384 | |
6385 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_int &obj) |
6386 | { |
6387 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6388 | if (!str) { |
6389 | os.setstate(std::ios_base::badbit); |
6390 | return os; |
6391 | } |
6392 | os << str; |
6393 | free(ptr: str); |
6394 | return os; |
6395 | } |
6396 | |
6397 | // implementations for isl::ast_expr_op |
6398 | ast_expr_op::ast_expr_op() |
6399 | : ast_expr() {} |
6400 | |
6401 | ast_expr_op::ast_expr_op(const ast_expr_op &obj) |
6402 | : ast_expr(obj) |
6403 | { |
6404 | } |
6405 | |
6406 | ast_expr_op::ast_expr_op(__isl_take isl_ast_expr *ptr) |
6407 | : ast_expr(ptr) {} |
6408 | |
6409 | ast_expr_op &ast_expr_op::operator=(ast_expr_op obj) { |
6410 | std::swap(a&: this->ptr, b&: obj.ptr); |
6411 | return *this; |
6412 | } |
6413 | |
6414 | template <typename T, typename> |
6415 | boolean ast_expr_op::isa_type(T subtype) const |
6416 | { |
6417 | if (is_null()) |
6418 | return boolean(); |
6419 | return isl_ast_expr_op_get_type(expr: get()) == subtype; |
6420 | } |
6421 | template <class T> |
6422 | boolean ast_expr_op::isa() const |
6423 | { |
6424 | return isa_type<decltype(T::type)>(T::type); |
6425 | } |
6426 | template <class T> |
6427 | T ast_expr_op::as() const |
6428 | { |
6429 | if (isa<T>().is_false()) |
6430 | isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype" , return T()); |
6431 | return T(copy()); |
6432 | } |
6433 | |
6434 | isl::ctx ast_expr_op::ctx() const { |
6435 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6436 | } |
6437 | |
6438 | isl::ast_expr ast_expr_op::arg(int pos) const |
6439 | { |
6440 | auto res = isl_ast_expr_op_get_arg(expr: get(), pos); |
6441 | return manage(ptr: res); |
6442 | } |
6443 | |
6444 | isl::ast_expr ast_expr_op::get_arg(int pos) const |
6445 | { |
6446 | return arg(pos); |
6447 | } |
6448 | |
6449 | class size ast_expr_op::n_arg() const |
6450 | { |
6451 | auto res = isl_ast_expr_op_get_n_arg(expr: get()); |
6452 | return manage(val: res); |
6453 | } |
6454 | |
6455 | class size ast_expr_op::get_n_arg() const |
6456 | { |
6457 | return n_arg(); |
6458 | } |
6459 | |
6460 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op &obj) |
6461 | { |
6462 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6463 | if (!str) { |
6464 | os.setstate(std::ios_base::badbit); |
6465 | return os; |
6466 | } |
6467 | os << str; |
6468 | free(ptr: str); |
6469 | return os; |
6470 | } |
6471 | |
6472 | // implementations for isl::ast_expr_op_access |
6473 | ast_expr_op_access::ast_expr_op_access() |
6474 | : ast_expr_op() {} |
6475 | |
6476 | ast_expr_op_access::ast_expr_op_access(const ast_expr_op_access &obj) |
6477 | : ast_expr_op(obj) |
6478 | { |
6479 | } |
6480 | |
6481 | ast_expr_op_access::ast_expr_op_access(__isl_take isl_ast_expr *ptr) |
6482 | : ast_expr_op(ptr) {} |
6483 | |
6484 | ast_expr_op_access &ast_expr_op_access::operator=(ast_expr_op_access obj) { |
6485 | std::swap(a&: this->ptr, b&: obj.ptr); |
6486 | return *this; |
6487 | } |
6488 | |
6489 | isl::ctx ast_expr_op_access::ctx() const { |
6490 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6491 | } |
6492 | |
6493 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_access &obj) |
6494 | { |
6495 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6496 | if (!str) { |
6497 | os.setstate(std::ios_base::badbit); |
6498 | return os; |
6499 | } |
6500 | os << str; |
6501 | free(ptr: str); |
6502 | return os; |
6503 | } |
6504 | |
6505 | // implementations for isl::ast_expr_op_add |
6506 | ast_expr_op_add::ast_expr_op_add() |
6507 | : ast_expr_op() {} |
6508 | |
6509 | ast_expr_op_add::ast_expr_op_add(const ast_expr_op_add &obj) |
6510 | : ast_expr_op(obj) |
6511 | { |
6512 | } |
6513 | |
6514 | ast_expr_op_add::ast_expr_op_add(__isl_take isl_ast_expr *ptr) |
6515 | : ast_expr_op(ptr) {} |
6516 | |
6517 | ast_expr_op_add &ast_expr_op_add::operator=(ast_expr_op_add obj) { |
6518 | std::swap(a&: this->ptr, b&: obj.ptr); |
6519 | return *this; |
6520 | } |
6521 | |
6522 | isl::ctx ast_expr_op_add::ctx() const { |
6523 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6524 | } |
6525 | |
6526 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_add &obj) |
6527 | { |
6528 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6529 | if (!str) { |
6530 | os.setstate(std::ios_base::badbit); |
6531 | return os; |
6532 | } |
6533 | os << str; |
6534 | free(ptr: str); |
6535 | return os; |
6536 | } |
6537 | |
6538 | // implementations for isl::ast_expr_op_address_of |
6539 | ast_expr_op_address_of::ast_expr_op_address_of() |
6540 | : ast_expr_op() {} |
6541 | |
6542 | ast_expr_op_address_of::ast_expr_op_address_of(const ast_expr_op_address_of &obj) |
6543 | : ast_expr_op(obj) |
6544 | { |
6545 | } |
6546 | |
6547 | ast_expr_op_address_of::ast_expr_op_address_of(__isl_take isl_ast_expr *ptr) |
6548 | : ast_expr_op(ptr) {} |
6549 | |
6550 | ast_expr_op_address_of &ast_expr_op_address_of::operator=(ast_expr_op_address_of obj) { |
6551 | std::swap(a&: this->ptr, b&: obj.ptr); |
6552 | return *this; |
6553 | } |
6554 | |
6555 | isl::ctx ast_expr_op_address_of::ctx() const { |
6556 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6557 | } |
6558 | |
6559 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_address_of &obj) |
6560 | { |
6561 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6562 | if (!str) { |
6563 | os.setstate(std::ios_base::badbit); |
6564 | return os; |
6565 | } |
6566 | os << str; |
6567 | free(ptr: str); |
6568 | return os; |
6569 | } |
6570 | |
6571 | // implementations for isl::ast_expr_op_and |
6572 | ast_expr_op_and::ast_expr_op_and() |
6573 | : ast_expr_op() {} |
6574 | |
6575 | ast_expr_op_and::ast_expr_op_and(const ast_expr_op_and &obj) |
6576 | : ast_expr_op(obj) |
6577 | { |
6578 | } |
6579 | |
6580 | ast_expr_op_and::ast_expr_op_and(__isl_take isl_ast_expr *ptr) |
6581 | : ast_expr_op(ptr) {} |
6582 | |
6583 | ast_expr_op_and &ast_expr_op_and::operator=(ast_expr_op_and obj) { |
6584 | std::swap(a&: this->ptr, b&: obj.ptr); |
6585 | return *this; |
6586 | } |
6587 | |
6588 | isl::ctx ast_expr_op_and::ctx() const { |
6589 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6590 | } |
6591 | |
6592 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_and &obj) |
6593 | { |
6594 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6595 | if (!str) { |
6596 | os.setstate(std::ios_base::badbit); |
6597 | return os; |
6598 | } |
6599 | os << str; |
6600 | free(ptr: str); |
6601 | return os; |
6602 | } |
6603 | |
6604 | // implementations for isl::ast_expr_op_and_then |
6605 | ast_expr_op_and_then::ast_expr_op_and_then() |
6606 | : ast_expr_op() {} |
6607 | |
6608 | ast_expr_op_and_then::ast_expr_op_and_then(const ast_expr_op_and_then &obj) |
6609 | : ast_expr_op(obj) |
6610 | { |
6611 | } |
6612 | |
6613 | ast_expr_op_and_then::ast_expr_op_and_then(__isl_take isl_ast_expr *ptr) |
6614 | : ast_expr_op(ptr) {} |
6615 | |
6616 | ast_expr_op_and_then &ast_expr_op_and_then::operator=(ast_expr_op_and_then obj) { |
6617 | std::swap(a&: this->ptr, b&: obj.ptr); |
6618 | return *this; |
6619 | } |
6620 | |
6621 | isl::ctx ast_expr_op_and_then::ctx() const { |
6622 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6623 | } |
6624 | |
6625 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_and_then &obj) |
6626 | { |
6627 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6628 | if (!str) { |
6629 | os.setstate(std::ios_base::badbit); |
6630 | return os; |
6631 | } |
6632 | os << str; |
6633 | free(ptr: str); |
6634 | return os; |
6635 | } |
6636 | |
6637 | // implementations for isl::ast_expr_op_call |
6638 | ast_expr_op_call::ast_expr_op_call() |
6639 | : ast_expr_op() {} |
6640 | |
6641 | ast_expr_op_call::ast_expr_op_call(const ast_expr_op_call &obj) |
6642 | : ast_expr_op(obj) |
6643 | { |
6644 | } |
6645 | |
6646 | ast_expr_op_call::ast_expr_op_call(__isl_take isl_ast_expr *ptr) |
6647 | : ast_expr_op(ptr) {} |
6648 | |
6649 | ast_expr_op_call &ast_expr_op_call::operator=(ast_expr_op_call obj) { |
6650 | std::swap(a&: this->ptr, b&: obj.ptr); |
6651 | return *this; |
6652 | } |
6653 | |
6654 | isl::ctx ast_expr_op_call::ctx() const { |
6655 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6656 | } |
6657 | |
6658 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_call &obj) |
6659 | { |
6660 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6661 | if (!str) { |
6662 | os.setstate(std::ios_base::badbit); |
6663 | return os; |
6664 | } |
6665 | os << str; |
6666 | free(ptr: str); |
6667 | return os; |
6668 | } |
6669 | |
6670 | // implementations for isl::ast_expr_op_cond |
6671 | ast_expr_op_cond::ast_expr_op_cond() |
6672 | : ast_expr_op() {} |
6673 | |
6674 | ast_expr_op_cond::ast_expr_op_cond(const ast_expr_op_cond &obj) |
6675 | : ast_expr_op(obj) |
6676 | { |
6677 | } |
6678 | |
6679 | ast_expr_op_cond::ast_expr_op_cond(__isl_take isl_ast_expr *ptr) |
6680 | : ast_expr_op(ptr) {} |
6681 | |
6682 | ast_expr_op_cond &ast_expr_op_cond::operator=(ast_expr_op_cond obj) { |
6683 | std::swap(a&: this->ptr, b&: obj.ptr); |
6684 | return *this; |
6685 | } |
6686 | |
6687 | isl::ctx ast_expr_op_cond::ctx() const { |
6688 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6689 | } |
6690 | |
6691 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_cond &obj) |
6692 | { |
6693 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6694 | if (!str) { |
6695 | os.setstate(std::ios_base::badbit); |
6696 | return os; |
6697 | } |
6698 | os << str; |
6699 | free(ptr: str); |
6700 | return os; |
6701 | } |
6702 | |
6703 | // implementations for isl::ast_expr_op_div |
6704 | ast_expr_op_div::ast_expr_op_div() |
6705 | : ast_expr_op() {} |
6706 | |
6707 | ast_expr_op_div::ast_expr_op_div(const ast_expr_op_div &obj) |
6708 | : ast_expr_op(obj) |
6709 | { |
6710 | } |
6711 | |
6712 | ast_expr_op_div::ast_expr_op_div(__isl_take isl_ast_expr *ptr) |
6713 | : ast_expr_op(ptr) {} |
6714 | |
6715 | ast_expr_op_div &ast_expr_op_div::operator=(ast_expr_op_div obj) { |
6716 | std::swap(a&: this->ptr, b&: obj.ptr); |
6717 | return *this; |
6718 | } |
6719 | |
6720 | isl::ctx ast_expr_op_div::ctx() const { |
6721 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6722 | } |
6723 | |
6724 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_div &obj) |
6725 | { |
6726 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6727 | if (!str) { |
6728 | os.setstate(std::ios_base::badbit); |
6729 | return os; |
6730 | } |
6731 | os << str; |
6732 | free(ptr: str); |
6733 | return os; |
6734 | } |
6735 | |
6736 | // implementations for isl::ast_expr_op_eq |
6737 | ast_expr_op_eq::ast_expr_op_eq() |
6738 | : ast_expr_op() {} |
6739 | |
6740 | ast_expr_op_eq::ast_expr_op_eq(const ast_expr_op_eq &obj) |
6741 | : ast_expr_op(obj) |
6742 | { |
6743 | } |
6744 | |
6745 | ast_expr_op_eq::ast_expr_op_eq(__isl_take isl_ast_expr *ptr) |
6746 | : ast_expr_op(ptr) {} |
6747 | |
6748 | ast_expr_op_eq &ast_expr_op_eq::operator=(ast_expr_op_eq obj) { |
6749 | std::swap(a&: this->ptr, b&: obj.ptr); |
6750 | return *this; |
6751 | } |
6752 | |
6753 | isl::ctx ast_expr_op_eq::ctx() const { |
6754 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6755 | } |
6756 | |
6757 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_eq &obj) |
6758 | { |
6759 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6760 | if (!str) { |
6761 | os.setstate(std::ios_base::badbit); |
6762 | return os; |
6763 | } |
6764 | os << str; |
6765 | free(ptr: str); |
6766 | return os; |
6767 | } |
6768 | |
6769 | // implementations for isl::ast_expr_op_fdiv_q |
6770 | ast_expr_op_fdiv_q::ast_expr_op_fdiv_q() |
6771 | : ast_expr_op() {} |
6772 | |
6773 | ast_expr_op_fdiv_q::ast_expr_op_fdiv_q(const ast_expr_op_fdiv_q &obj) |
6774 | : ast_expr_op(obj) |
6775 | { |
6776 | } |
6777 | |
6778 | ast_expr_op_fdiv_q::ast_expr_op_fdiv_q(__isl_take isl_ast_expr *ptr) |
6779 | : ast_expr_op(ptr) {} |
6780 | |
6781 | ast_expr_op_fdiv_q &ast_expr_op_fdiv_q::operator=(ast_expr_op_fdiv_q obj) { |
6782 | std::swap(a&: this->ptr, b&: obj.ptr); |
6783 | return *this; |
6784 | } |
6785 | |
6786 | isl::ctx ast_expr_op_fdiv_q::ctx() const { |
6787 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6788 | } |
6789 | |
6790 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_fdiv_q &obj) |
6791 | { |
6792 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6793 | if (!str) { |
6794 | os.setstate(std::ios_base::badbit); |
6795 | return os; |
6796 | } |
6797 | os << str; |
6798 | free(ptr: str); |
6799 | return os; |
6800 | } |
6801 | |
6802 | // implementations for isl::ast_expr_op_ge |
6803 | ast_expr_op_ge::ast_expr_op_ge() |
6804 | : ast_expr_op() {} |
6805 | |
6806 | ast_expr_op_ge::ast_expr_op_ge(const ast_expr_op_ge &obj) |
6807 | : ast_expr_op(obj) |
6808 | { |
6809 | } |
6810 | |
6811 | ast_expr_op_ge::ast_expr_op_ge(__isl_take isl_ast_expr *ptr) |
6812 | : ast_expr_op(ptr) {} |
6813 | |
6814 | ast_expr_op_ge &ast_expr_op_ge::operator=(ast_expr_op_ge obj) { |
6815 | std::swap(a&: this->ptr, b&: obj.ptr); |
6816 | return *this; |
6817 | } |
6818 | |
6819 | isl::ctx ast_expr_op_ge::ctx() const { |
6820 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6821 | } |
6822 | |
6823 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_ge &obj) |
6824 | { |
6825 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6826 | if (!str) { |
6827 | os.setstate(std::ios_base::badbit); |
6828 | return os; |
6829 | } |
6830 | os << str; |
6831 | free(ptr: str); |
6832 | return os; |
6833 | } |
6834 | |
6835 | // implementations for isl::ast_expr_op_gt |
6836 | ast_expr_op_gt::ast_expr_op_gt() |
6837 | : ast_expr_op() {} |
6838 | |
6839 | ast_expr_op_gt::ast_expr_op_gt(const ast_expr_op_gt &obj) |
6840 | : ast_expr_op(obj) |
6841 | { |
6842 | } |
6843 | |
6844 | ast_expr_op_gt::ast_expr_op_gt(__isl_take isl_ast_expr *ptr) |
6845 | : ast_expr_op(ptr) {} |
6846 | |
6847 | ast_expr_op_gt &ast_expr_op_gt::operator=(ast_expr_op_gt obj) { |
6848 | std::swap(a&: this->ptr, b&: obj.ptr); |
6849 | return *this; |
6850 | } |
6851 | |
6852 | isl::ctx ast_expr_op_gt::ctx() const { |
6853 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6854 | } |
6855 | |
6856 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_gt &obj) |
6857 | { |
6858 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6859 | if (!str) { |
6860 | os.setstate(std::ios_base::badbit); |
6861 | return os; |
6862 | } |
6863 | os << str; |
6864 | free(ptr: str); |
6865 | return os; |
6866 | } |
6867 | |
6868 | // implementations for isl::ast_expr_op_le |
6869 | ast_expr_op_le::ast_expr_op_le() |
6870 | : ast_expr_op() {} |
6871 | |
6872 | ast_expr_op_le::ast_expr_op_le(const ast_expr_op_le &obj) |
6873 | : ast_expr_op(obj) |
6874 | { |
6875 | } |
6876 | |
6877 | ast_expr_op_le::ast_expr_op_le(__isl_take isl_ast_expr *ptr) |
6878 | : ast_expr_op(ptr) {} |
6879 | |
6880 | ast_expr_op_le &ast_expr_op_le::operator=(ast_expr_op_le obj) { |
6881 | std::swap(a&: this->ptr, b&: obj.ptr); |
6882 | return *this; |
6883 | } |
6884 | |
6885 | isl::ctx ast_expr_op_le::ctx() const { |
6886 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6887 | } |
6888 | |
6889 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_le &obj) |
6890 | { |
6891 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6892 | if (!str) { |
6893 | os.setstate(std::ios_base::badbit); |
6894 | return os; |
6895 | } |
6896 | os << str; |
6897 | free(ptr: str); |
6898 | return os; |
6899 | } |
6900 | |
6901 | // implementations for isl::ast_expr_op_lt |
6902 | ast_expr_op_lt::ast_expr_op_lt() |
6903 | : ast_expr_op() {} |
6904 | |
6905 | ast_expr_op_lt::ast_expr_op_lt(const ast_expr_op_lt &obj) |
6906 | : ast_expr_op(obj) |
6907 | { |
6908 | } |
6909 | |
6910 | ast_expr_op_lt::ast_expr_op_lt(__isl_take isl_ast_expr *ptr) |
6911 | : ast_expr_op(ptr) {} |
6912 | |
6913 | ast_expr_op_lt &ast_expr_op_lt::operator=(ast_expr_op_lt obj) { |
6914 | std::swap(a&: this->ptr, b&: obj.ptr); |
6915 | return *this; |
6916 | } |
6917 | |
6918 | isl::ctx ast_expr_op_lt::ctx() const { |
6919 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6920 | } |
6921 | |
6922 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_lt &obj) |
6923 | { |
6924 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6925 | if (!str) { |
6926 | os.setstate(std::ios_base::badbit); |
6927 | return os; |
6928 | } |
6929 | os << str; |
6930 | free(ptr: str); |
6931 | return os; |
6932 | } |
6933 | |
6934 | // implementations for isl::ast_expr_op_max |
6935 | ast_expr_op_max::ast_expr_op_max() |
6936 | : ast_expr_op() {} |
6937 | |
6938 | ast_expr_op_max::ast_expr_op_max(const ast_expr_op_max &obj) |
6939 | : ast_expr_op(obj) |
6940 | { |
6941 | } |
6942 | |
6943 | ast_expr_op_max::ast_expr_op_max(__isl_take isl_ast_expr *ptr) |
6944 | : ast_expr_op(ptr) {} |
6945 | |
6946 | ast_expr_op_max &ast_expr_op_max::operator=(ast_expr_op_max obj) { |
6947 | std::swap(a&: this->ptr, b&: obj.ptr); |
6948 | return *this; |
6949 | } |
6950 | |
6951 | isl::ctx ast_expr_op_max::ctx() const { |
6952 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6953 | } |
6954 | |
6955 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_max &obj) |
6956 | { |
6957 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6958 | if (!str) { |
6959 | os.setstate(std::ios_base::badbit); |
6960 | return os; |
6961 | } |
6962 | os << str; |
6963 | free(ptr: str); |
6964 | return os; |
6965 | } |
6966 | |
6967 | // implementations for isl::ast_expr_op_member |
6968 | ast_expr_op_member::ast_expr_op_member() |
6969 | : ast_expr_op() {} |
6970 | |
6971 | ast_expr_op_member::ast_expr_op_member(const ast_expr_op_member &obj) |
6972 | : ast_expr_op(obj) |
6973 | { |
6974 | } |
6975 | |
6976 | ast_expr_op_member::ast_expr_op_member(__isl_take isl_ast_expr *ptr) |
6977 | : ast_expr_op(ptr) {} |
6978 | |
6979 | ast_expr_op_member &ast_expr_op_member::operator=(ast_expr_op_member obj) { |
6980 | std::swap(a&: this->ptr, b&: obj.ptr); |
6981 | return *this; |
6982 | } |
6983 | |
6984 | isl::ctx ast_expr_op_member::ctx() const { |
6985 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
6986 | } |
6987 | |
6988 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_member &obj) |
6989 | { |
6990 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
6991 | if (!str) { |
6992 | os.setstate(std::ios_base::badbit); |
6993 | return os; |
6994 | } |
6995 | os << str; |
6996 | free(ptr: str); |
6997 | return os; |
6998 | } |
6999 | |
7000 | // implementations for isl::ast_expr_op_min |
7001 | ast_expr_op_min::ast_expr_op_min() |
7002 | : ast_expr_op() {} |
7003 | |
7004 | ast_expr_op_min::ast_expr_op_min(const ast_expr_op_min &obj) |
7005 | : ast_expr_op(obj) |
7006 | { |
7007 | } |
7008 | |
7009 | ast_expr_op_min::ast_expr_op_min(__isl_take isl_ast_expr *ptr) |
7010 | : ast_expr_op(ptr) {} |
7011 | |
7012 | ast_expr_op_min &ast_expr_op_min::operator=(ast_expr_op_min obj) { |
7013 | std::swap(a&: this->ptr, b&: obj.ptr); |
7014 | return *this; |
7015 | } |
7016 | |
7017 | isl::ctx ast_expr_op_min::ctx() const { |
7018 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7019 | } |
7020 | |
7021 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_min &obj) |
7022 | { |
7023 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7024 | if (!str) { |
7025 | os.setstate(std::ios_base::badbit); |
7026 | return os; |
7027 | } |
7028 | os << str; |
7029 | free(ptr: str); |
7030 | return os; |
7031 | } |
7032 | |
7033 | // implementations for isl::ast_expr_op_minus |
7034 | ast_expr_op_minus::ast_expr_op_minus() |
7035 | : ast_expr_op() {} |
7036 | |
7037 | ast_expr_op_minus::ast_expr_op_minus(const ast_expr_op_minus &obj) |
7038 | : ast_expr_op(obj) |
7039 | { |
7040 | } |
7041 | |
7042 | ast_expr_op_minus::ast_expr_op_minus(__isl_take isl_ast_expr *ptr) |
7043 | : ast_expr_op(ptr) {} |
7044 | |
7045 | ast_expr_op_minus &ast_expr_op_minus::operator=(ast_expr_op_minus obj) { |
7046 | std::swap(a&: this->ptr, b&: obj.ptr); |
7047 | return *this; |
7048 | } |
7049 | |
7050 | isl::ctx ast_expr_op_minus::ctx() const { |
7051 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7052 | } |
7053 | |
7054 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_minus &obj) |
7055 | { |
7056 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7057 | if (!str) { |
7058 | os.setstate(std::ios_base::badbit); |
7059 | return os; |
7060 | } |
7061 | os << str; |
7062 | free(ptr: str); |
7063 | return os; |
7064 | } |
7065 | |
7066 | // implementations for isl::ast_expr_op_mul |
7067 | ast_expr_op_mul::ast_expr_op_mul() |
7068 | : ast_expr_op() {} |
7069 | |
7070 | ast_expr_op_mul::ast_expr_op_mul(const ast_expr_op_mul &obj) |
7071 | : ast_expr_op(obj) |
7072 | { |
7073 | } |
7074 | |
7075 | ast_expr_op_mul::ast_expr_op_mul(__isl_take isl_ast_expr *ptr) |
7076 | : ast_expr_op(ptr) {} |
7077 | |
7078 | ast_expr_op_mul &ast_expr_op_mul::operator=(ast_expr_op_mul obj) { |
7079 | std::swap(a&: this->ptr, b&: obj.ptr); |
7080 | return *this; |
7081 | } |
7082 | |
7083 | isl::ctx ast_expr_op_mul::ctx() const { |
7084 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7085 | } |
7086 | |
7087 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_mul &obj) |
7088 | { |
7089 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7090 | if (!str) { |
7091 | os.setstate(std::ios_base::badbit); |
7092 | return os; |
7093 | } |
7094 | os << str; |
7095 | free(ptr: str); |
7096 | return os; |
7097 | } |
7098 | |
7099 | // implementations for isl::ast_expr_op_or |
7100 | ast_expr_op_or::ast_expr_op_or() |
7101 | : ast_expr_op() {} |
7102 | |
7103 | ast_expr_op_or::ast_expr_op_or(const ast_expr_op_or &obj) |
7104 | : ast_expr_op(obj) |
7105 | { |
7106 | } |
7107 | |
7108 | ast_expr_op_or::ast_expr_op_or(__isl_take isl_ast_expr *ptr) |
7109 | : ast_expr_op(ptr) {} |
7110 | |
7111 | ast_expr_op_or &ast_expr_op_or::operator=(ast_expr_op_or obj) { |
7112 | std::swap(a&: this->ptr, b&: obj.ptr); |
7113 | return *this; |
7114 | } |
7115 | |
7116 | isl::ctx ast_expr_op_or::ctx() const { |
7117 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7118 | } |
7119 | |
7120 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_or &obj) |
7121 | { |
7122 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7123 | if (!str) { |
7124 | os.setstate(std::ios_base::badbit); |
7125 | return os; |
7126 | } |
7127 | os << str; |
7128 | free(ptr: str); |
7129 | return os; |
7130 | } |
7131 | |
7132 | // implementations for isl::ast_expr_op_or_else |
7133 | ast_expr_op_or_else::ast_expr_op_or_else() |
7134 | : ast_expr_op() {} |
7135 | |
7136 | ast_expr_op_or_else::ast_expr_op_or_else(const ast_expr_op_or_else &obj) |
7137 | : ast_expr_op(obj) |
7138 | { |
7139 | } |
7140 | |
7141 | ast_expr_op_or_else::ast_expr_op_or_else(__isl_take isl_ast_expr *ptr) |
7142 | : ast_expr_op(ptr) {} |
7143 | |
7144 | ast_expr_op_or_else &ast_expr_op_or_else::operator=(ast_expr_op_or_else obj) { |
7145 | std::swap(a&: this->ptr, b&: obj.ptr); |
7146 | return *this; |
7147 | } |
7148 | |
7149 | isl::ctx ast_expr_op_or_else::ctx() const { |
7150 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7151 | } |
7152 | |
7153 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_or_else &obj) |
7154 | { |
7155 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7156 | if (!str) { |
7157 | os.setstate(std::ios_base::badbit); |
7158 | return os; |
7159 | } |
7160 | os << str; |
7161 | free(ptr: str); |
7162 | return os; |
7163 | } |
7164 | |
7165 | // implementations for isl::ast_expr_op_pdiv_q |
7166 | ast_expr_op_pdiv_q::ast_expr_op_pdiv_q() |
7167 | : ast_expr_op() {} |
7168 | |
7169 | ast_expr_op_pdiv_q::ast_expr_op_pdiv_q(const ast_expr_op_pdiv_q &obj) |
7170 | : ast_expr_op(obj) |
7171 | { |
7172 | } |
7173 | |
7174 | ast_expr_op_pdiv_q::ast_expr_op_pdiv_q(__isl_take isl_ast_expr *ptr) |
7175 | : ast_expr_op(ptr) {} |
7176 | |
7177 | ast_expr_op_pdiv_q &ast_expr_op_pdiv_q::operator=(ast_expr_op_pdiv_q obj) { |
7178 | std::swap(a&: this->ptr, b&: obj.ptr); |
7179 | return *this; |
7180 | } |
7181 | |
7182 | isl::ctx ast_expr_op_pdiv_q::ctx() const { |
7183 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7184 | } |
7185 | |
7186 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_pdiv_q &obj) |
7187 | { |
7188 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7189 | if (!str) { |
7190 | os.setstate(std::ios_base::badbit); |
7191 | return os; |
7192 | } |
7193 | os << str; |
7194 | free(ptr: str); |
7195 | return os; |
7196 | } |
7197 | |
7198 | // implementations for isl::ast_expr_op_pdiv_r |
7199 | ast_expr_op_pdiv_r::ast_expr_op_pdiv_r() |
7200 | : ast_expr_op() {} |
7201 | |
7202 | ast_expr_op_pdiv_r::ast_expr_op_pdiv_r(const ast_expr_op_pdiv_r &obj) |
7203 | : ast_expr_op(obj) |
7204 | { |
7205 | } |
7206 | |
7207 | ast_expr_op_pdiv_r::ast_expr_op_pdiv_r(__isl_take isl_ast_expr *ptr) |
7208 | : ast_expr_op(ptr) {} |
7209 | |
7210 | ast_expr_op_pdiv_r &ast_expr_op_pdiv_r::operator=(ast_expr_op_pdiv_r obj) { |
7211 | std::swap(a&: this->ptr, b&: obj.ptr); |
7212 | return *this; |
7213 | } |
7214 | |
7215 | isl::ctx ast_expr_op_pdiv_r::ctx() const { |
7216 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7217 | } |
7218 | |
7219 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_pdiv_r &obj) |
7220 | { |
7221 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7222 | if (!str) { |
7223 | os.setstate(std::ios_base::badbit); |
7224 | return os; |
7225 | } |
7226 | os << str; |
7227 | free(ptr: str); |
7228 | return os; |
7229 | } |
7230 | |
7231 | // implementations for isl::ast_expr_op_select |
7232 | ast_expr_op_select::ast_expr_op_select() |
7233 | : ast_expr_op() {} |
7234 | |
7235 | ast_expr_op_select::ast_expr_op_select(const ast_expr_op_select &obj) |
7236 | : ast_expr_op(obj) |
7237 | { |
7238 | } |
7239 | |
7240 | ast_expr_op_select::ast_expr_op_select(__isl_take isl_ast_expr *ptr) |
7241 | : ast_expr_op(ptr) {} |
7242 | |
7243 | ast_expr_op_select &ast_expr_op_select::operator=(ast_expr_op_select obj) { |
7244 | std::swap(a&: this->ptr, b&: obj.ptr); |
7245 | return *this; |
7246 | } |
7247 | |
7248 | isl::ctx ast_expr_op_select::ctx() const { |
7249 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7250 | } |
7251 | |
7252 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_select &obj) |
7253 | { |
7254 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7255 | if (!str) { |
7256 | os.setstate(std::ios_base::badbit); |
7257 | return os; |
7258 | } |
7259 | os << str; |
7260 | free(ptr: str); |
7261 | return os; |
7262 | } |
7263 | |
7264 | // implementations for isl::ast_expr_op_sub |
7265 | ast_expr_op_sub::ast_expr_op_sub() |
7266 | : ast_expr_op() {} |
7267 | |
7268 | ast_expr_op_sub::ast_expr_op_sub(const ast_expr_op_sub &obj) |
7269 | : ast_expr_op(obj) |
7270 | { |
7271 | } |
7272 | |
7273 | ast_expr_op_sub::ast_expr_op_sub(__isl_take isl_ast_expr *ptr) |
7274 | : ast_expr_op(ptr) {} |
7275 | |
7276 | ast_expr_op_sub &ast_expr_op_sub::operator=(ast_expr_op_sub obj) { |
7277 | std::swap(a&: this->ptr, b&: obj.ptr); |
7278 | return *this; |
7279 | } |
7280 | |
7281 | isl::ctx ast_expr_op_sub::ctx() const { |
7282 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7283 | } |
7284 | |
7285 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_sub &obj) |
7286 | { |
7287 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7288 | if (!str) { |
7289 | os.setstate(std::ios_base::badbit); |
7290 | return os; |
7291 | } |
7292 | os << str; |
7293 | free(ptr: str); |
7294 | return os; |
7295 | } |
7296 | |
7297 | // implementations for isl::ast_expr_op_zdiv_r |
7298 | ast_expr_op_zdiv_r::ast_expr_op_zdiv_r() |
7299 | : ast_expr_op() {} |
7300 | |
7301 | ast_expr_op_zdiv_r::ast_expr_op_zdiv_r(const ast_expr_op_zdiv_r &obj) |
7302 | : ast_expr_op(obj) |
7303 | { |
7304 | } |
7305 | |
7306 | ast_expr_op_zdiv_r::ast_expr_op_zdiv_r(__isl_take isl_ast_expr *ptr) |
7307 | : ast_expr_op(ptr) {} |
7308 | |
7309 | ast_expr_op_zdiv_r &ast_expr_op_zdiv_r::operator=(ast_expr_op_zdiv_r obj) { |
7310 | std::swap(a&: this->ptr, b&: obj.ptr); |
7311 | return *this; |
7312 | } |
7313 | |
7314 | isl::ctx ast_expr_op_zdiv_r::ctx() const { |
7315 | return isl::ctx(isl_ast_expr_get_ctx(expr: ptr)); |
7316 | } |
7317 | |
7318 | inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_zdiv_r &obj) |
7319 | { |
7320 | char *str = isl_ast_expr_to_str(expr: obj.get()); |
7321 | if (!str) { |
7322 | os.setstate(std::ios_base::badbit); |
7323 | return os; |
7324 | } |
7325 | os << str; |
7326 | free(ptr: str); |
7327 | return os; |
7328 | } |
7329 | |
7330 | // implementations for isl::ast_node |
7331 | ast_node manage(__isl_take isl_ast_node *ptr) { |
7332 | return ast_node(ptr); |
7333 | } |
7334 | ast_node manage_copy(__isl_keep isl_ast_node *ptr) { |
7335 | ptr = isl_ast_node_copy(node: ptr); |
7336 | return ast_node(ptr); |
7337 | } |
7338 | |
7339 | ast_node::ast_node() |
7340 | : ptr(nullptr) {} |
7341 | |
7342 | ast_node::ast_node(const ast_node &obj) |
7343 | : ptr(nullptr) |
7344 | { |
7345 | ptr = obj.copy(); |
7346 | } |
7347 | |
7348 | ast_node::ast_node(__isl_take isl_ast_node *ptr) |
7349 | : ptr(ptr) {} |
7350 | |
7351 | ast_node &ast_node::operator=(ast_node obj) { |
7352 | std::swap(a&: this->ptr, b&: obj.ptr); |
7353 | return *this; |
7354 | } |
7355 | |
7356 | ast_node::~ast_node() { |
7357 | if (ptr) |
7358 | isl_ast_node_free(node: ptr); |
7359 | } |
7360 | |
7361 | __isl_give isl_ast_node *ast_node::copy() const & { |
7362 | return isl_ast_node_copy(node: ptr); |
7363 | } |
7364 | |
7365 | __isl_keep isl_ast_node *ast_node::get() const { |
7366 | return ptr; |
7367 | } |
7368 | |
7369 | __isl_give isl_ast_node *ast_node::release() { |
7370 | isl_ast_node *tmp = ptr; |
7371 | ptr = nullptr; |
7372 | return tmp; |
7373 | } |
7374 | |
7375 | bool ast_node::is_null() const { |
7376 | return ptr == nullptr; |
7377 | } |
7378 | |
7379 | template <typename T, typename> |
7380 | boolean ast_node::isa_type(T subtype) const |
7381 | { |
7382 | if (is_null()) |
7383 | return boolean(); |
7384 | return isl_ast_node_get_type(node: get()) == subtype; |
7385 | } |
7386 | template <class T> |
7387 | boolean ast_node::isa() const |
7388 | { |
7389 | return isa_type<decltype(T::type)>(T::type); |
7390 | } |
7391 | template <class T> |
7392 | T ast_node::as() const |
7393 | { |
7394 | if (isa<T>().is_false()) |
7395 | isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype" , return T()); |
7396 | return T(copy()); |
7397 | } |
7398 | |
7399 | isl::ctx ast_node::ctx() const { |
7400 | return isl::ctx(isl_ast_node_get_ctx(node: ptr)); |
7401 | } |
7402 | |
7403 | isl::id ast_node::annotation() const |
7404 | { |
7405 | auto res = isl_ast_node_get_annotation(node: get()); |
7406 | return manage(ptr: res); |
7407 | } |
7408 | |
7409 | isl::id ast_node::get_annotation() const |
7410 | { |
7411 | return annotation(); |
7412 | } |
7413 | |
7414 | std::string ast_node::to_C_str() const |
7415 | { |
7416 | auto res = isl_ast_node_to_C_str(node: get()); |
7417 | std::string tmp(res); |
7418 | free(ptr: res); |
7419 | return tmp; |
7420 | } |
7421 | |
7422 | isl::ast_node_list ast_node::to_list() const |
7423 | { |
7424 | auto res = isl_ast_node_to_list(el: copy()); |
7425 | return manage(ptr: res); |
7426 | } |
7427 | |
7428 | inline std::ostream &operator<<(std::ostream &os, const ast_node &obj) |
7429 | { |
7430 | char *str = isl_ast_node_to_str(node: obj.get()); |
7431 | if (!str) { |
7432 | os.setstate(std::ios_base::badbit); |
7433 | return os; |
7434 | } |
7435 | os << str; |
7436 | free(ptr: str); |
7437 | return os; |
7438 | } |
7439 | |
7440 | // implementations for isl::ast_node_block |
7441 | ast_node_block::ast_node_block() |
7442 | : ast_node() {} |
7443 | |
7444 | ast_node_block::ast_node_block(const ast_node_block &obj) |
7445 | : ast_node(obj) |
7446 | { |
7447 | } |
7448 | |
7449 | ast_node_block::ast_node_block(__isl_take isl_ast_node *ptr) |
7450 | : ast_node(ptr) {} |
7451 | |
7452 | ast_node_block &ast_node_block::operator=(ast_node_block obj) { |
7453 | std::swap(a&: this->ptr, b&: obj.ptr); |
7454 | return *this; |
7455 | } |
7456 | |
7457 | isl::ctx ast_node_block::ctx() const { |
7458 | return isl::ctx(isl_ast_node_get_ctx(node: ptr)); |
7459 | } |
7460 | |
7461 | isl::ast_node_list ast_node_block::children() const |
7462 | { |
7463 | auto res = isl_ast_node_block_get_children(node: get()); |
7464 | return manage(ptr: res); |
7465 | } |
7466 | |
7467 | isl::ast_node_list ast_node_block::get_children() const |
7468 | { |
7469 | return children(); |
7470 | } |
7471 | |
7472 | inline std::ostream &operator<<(std::ostream &os, const ast_node_block &obj) |
7473 | { |
7474 | char *str = isl_ast_node_to_str(node: obj.get()); |
7475 | if (!str) { |
7476 | os.setstate(std::ios_base::badbit); |
7477 | return os; |
7478 | } |
7479 | os << str; |
7480 | free(ptr: str); |
7481 | return os; |
7482 | } |
7483 | |
7484 | // implementations for isl::ast_node_for |
7485 | ast_node_for::ast_node_for() |
7486 | : ast_node() {} |
7487 | |
7488 | ast_node_for::ast_node_for(const ast_node_for &obj) |
7489 | : ast_node(obj) |
7490 | { |
7491 | } |
7492 | |
7493 | ast_node_for::ast_node_for(__isl_take isl_ast_node *ptr) |
7494 | : ast_node(ptr) {} |
7495 | |
7496 | ast_node_for &ast_node_for::operator=(ast_node_for obj) { |
7497 | std::swap(a&: this->ptr, b&: obj.ptr); |
7498 | return *this; |
7499 | } |
7500 | |
7501 | isl::ctx ast_node_for::ctx() const { |
7502 | return isl::ctx(isl_ast_node_get_ctx(node: ptr)); |
7503 | } |
7504 | |
7505 | isl::ast_node ast_node_for::body() const |
7506 | { |
7507 | auto res = isl_ast_node_for_get_body(node: get()); |
7508 | return manage(ptr: res); |
7509 | } |
7510 | |
7511 | isl::ast_node ast_node_for::get_body() const |
7512 | { |
7513 | return body(); |
7514 | } |
7515 | |
7516 | isl::ast_expr ast_node_for::cond() const |
7517 | { |
7518 | auto res = isl_ast_node_for_get_cond(node: get()); |
7519 | return manage(ptr: res); |
7520 | } |
7521 | |
7522 | isl::ast_expr ast_node_for::get_cond() const |
7523 | { |
7524 | return cond(); |
7525 | } |
7526 | |
7527 | isl::ast_expr ast_node_for::inc() const |
7528 | { |
7529 | auto res = isl_ast_node_for_get_inc(node: get()); |
7530 | return manage(ptr: res); |
7531 | } |
7532 | |
7533 | isl::ast_expr ast_node_for::get_inc() const |
7534 | { |
7535 | return inc(); |
7536 | } |
7537 | |
7538 | isl::ast_expr ast_node_for::init() const |
7539 | { |
7540 | auto res = isl_ast_node_for_get_init(node: get()); |
7541 | return manage(ptr: res); |
7542 | } |
7543 | |
7544 | isl::ast_expr ast_node_for::get_init() const |
7545 | { |
7546 | return init(); |
7547 | } |
7548 | |
7549 | boolean ast_node_for::is_degenerate() const |
7550 | { |
7551 | auto res = isl_ast_node_for_is_degenerate(node: get()); |
7552 | return manage(val: res); |
7553 | } |
7554 | |
7555 | isl::ast_expr ast_node_for::iterator() const |
7556 | { |
7557 | auto res = isl_ast_node_for_get_iterator(node: get()); |
7558 | return manage(ptr: res); |
7559 | } |
7560 | |
7561 | isl::ast_expr ast_node_for::get_iterator() const |
7562 | { |
7563 | return iterator(); |
7564 | } |
7565 | |
7566 | inline std::ostream &operator<<(std::ostream &os, const ast_node_for &obj) |
7567 | { |
7568 | char *str = isl_ast_node_to_str(node: obj.get()); |
7569 | if (!str) { |
7570 | os.setstate(std::ios_base::badbit); |
7571 | return os; |
7572 | } |
7573 | os << str; |
7574 | free(ptr: str); |
7575 | return os; |
7576 | } |
7577 | |
7578 | // implementations for isl::ast_node_if |
7579 | ast_node_if::ast_node_if() |
7580 | : ast_node() {} |
7581 | |
7582 | ast_node_if::ast_node_if(const ast_node_if &obj) |
7583 | : ast_node(obj) |
7584 | { |
7585 | } |
7586 | |
7587 | ast_node_if::ast_node_if(__isl_take isl_ast_node *ptr) |
7588 | : ast_node(ptr) {} |
7589 | |
7590 | ast_node_if &ast_node_if::operator=(ast_node_if obj) { |
7591 | std::swap(a&: this->ptr, b&: obj.ptr); |
7592 | return *this; |
7593 | } |
7594 | |
7595 | isl::ctx ast_node_if::ctx() const { |
7596 | return isl::ctx(isl_ast_node_get_ctx(node: ptr)); |
7597 | } |
7598 | |
7599 | isl::ast_expr ast_node_if::cond() const |
7600 | { |
7601 | auto res = isl_ast_node_if_get_cond(node: get()); |
7602 | return manage(ptr: res); |
7603 | } |
7604 | |
7605 | isl::ast_expr ast_node_if::get_cond() const |
7606 | { |
7607 | return cond(); |
7608 | } |
7609 | |
7610 | isl::ast_node ast_node_if::else_node() const |
7611 | { |
7612 | auto res = isl_ast_node_if_get_else_node(node: get()); |
7613 | return manage(ptr: res); |
7614 | } |
7615 | |
7616 | isl::ast_node ast_node_if::get_else_node() const |
7617 | { |
7618 | return else_node(); |
7619 | } |
7620 | |
7621 | boolean ast_node_if::has_else_node() const |
7622 | { |
7623 | auto res = isl_ast_node_if_has_else_node(node: get()); |
7624 | return manage(val: res); |
7625 | } |
7626 | |
7627 | isl::ast_node ast_node_if::then_node() const |
7628 | { |
7629 | auto res = isl_ast_node_if_get_then_node(node: get()); |
7630 | return manage(ptr: res); |
7631 | } |
7632 | |
7633 | isl::ast_node ast_node_if::get_then_node() const |
7634 | { |
7635 | return then_node(); |
7636 | } |
7637 | |
7638 | inline std::ostream &operator<<(std::ostream &os, const ast_node_if &obj) |
7639 | { |
7640 | char *str = isl_ast_node_to_str(node: obj.get()); |
7641 | if (!str) { |
7642 | os.setstate(std::ios_base::badbit); |
7643 | return os; |
7644 | } |
7645 | os << str; |
7646 | free(ptr: str); |
7647 | return os; |
7648 | } |
7649 | |
7650 | // implementations for isl::ast_node_list |
7651 | ast_node_list manage(__isl_take isl_ast_node_list *ptr) { |
7652 | return ast_node_list(ptr); |
7653 | } |
7654 | ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr) { |
7655 | ptr = isl_ast_node_list_copy(list: ptr); |
7656 | return ast_node_list(ptr); |
7657 | } |
7658 | |
7659 | ast_node_list::ast_node_list() |
7660 | : ptr(nullptr) {} |
7661 | |
7662 | ast_node_list::ast_node_list(const ast_node_list &obj) |
7663 | : ptr(nullptr) |
7664 | { |
7665 | ptr = obj.copy(); |
7666 | } |
7667 | |
7668 | ast_node_list::ast_node_list(__isl_take isl_ast_node_list *ptr) |
7669 | : ptr(ptr) {} |
7670 | |
7671 | ast_node_list::ast_node_list(isl::ctx ctx, int n) |
7672 | { |
7673 | auto res = isl_ast_node_list_alloc(ctx: ctx.release(), n); |
7674 | ptr = res; |
7675 | } |
7676 | |
7677 | ast_node_list::ast_node_list(isl::ast_node el) |
7678 | { |
7679 | auto res = isl_ast_node_list_from_ast_node(el: el.release()); |
7680 | ptr = res; |
7681 | } |
7682 | |
7683 | ast_node_list &ast_node_list::operator=(ast_node_list obj) { |
7684 | std::swap(a&: this->ptr, b&: obj.ptr); |
7685 | return *this; |
7686 | } |
7687 | |
7688 | ast_node_list::~ast_node_list() { |
7689 | if (ptr) |
7690 | isl_ast_node_list_free(list: ptr); |
7691 | } |
7692 | |
7693 | __isl_give isl_ast_node_list *ast_node_list::copy() const & { |
7694 | return isl_ast_node_list_copy(list: ptr); |
7695 | } |
7696 | |
7697 | __isl_keep isl_ast_node_list *ast_node_list::get() const { |
7698 | return ptr; |
7699 | } |
7700 | |
7701 | __isl_give isl_ast_node_list *ast_node_list::release() { |
7702 | isl_ast_node_list *tmp = ptr; |
7703 | ptr = nullptr; |
7704 | return tmp; |
7705 | } |
7706 | |
7707 | bool ast_node_list::is_null() const { |
7708 | return ptr == nullptr; |
7709 | } |
7710 | |
7711 | isl::ctx ast_node_list::ctx() const { |
7712 | return isl::ctx(isl_ast_node_list_get_ctx(list: ptr)); |
7713 | } |
7714 | |
7715 | isl::ast_node_list ast_node_list::add(isl::ast_node el) const |
7716 | { |
7717 | auto res = isl_ast_node_list_add(list: copy(), el: el.release()); |
7718 | return manage(ptr: res); |
7719 | } |
7720 | |
7721 | isl::ast_node ast_node_list::at(int index) const |
7722 | { |
7723 | auto res = isl_ast_node_list_get_at(list: get(), index); |
7724 | return manage(ptr: res); |
7725 | } |
7726 | |
7727 | isl::ast_node ast_node_list::get_at(int index) const |
7728 | { |
7729 | return at(index); |
7730 | } |
7731 | |
7732 | isl::ast_node_list ast_node_list::clear() const |
7733 | { |
7734 | auto res = isl_ast_node_list_clear(list: copy()); |
7735 | return manage(ptr: res); |
7736 | } |
7737 | |
7738 | isl::ast_node_list ast_node_list::concat(isl::ast_node_list list2) const |
7739 | { |
7740 | auto res = isl_ast_node_list_concat(list1: copy(), list2: list2.release()); |
7741 | return manage(ptr: res); |
7742 | } |
7743 | |
7744 | isl::ast_node_list ast_node_list::drop(unsigned int first, unsigned int n) const |
7745 | { |
7746 | auto res = isl_ast_node_list_drop(list: copy(), first, n); |
7747 | return manage(ptr: res); |
7748 | } |
7749 | |
7750 | stat ast_node_list::foreach(const std::function<stat(isl::ast_node)> &fn) const |
7751 | { |
7752 | struct fn_data { |
7753 | std::function<stat(isl::ast_node)> func; |
7754 | } fn_data = { .func: fn }; |
7755 | auto fn_lambda = [](isl_ast_node *arg_0, void *arg_1) -> isl_stat { |
7756 | auto *data = static_cast<struct fn_data *>(arg_1); |
7757 | auto ret = (data->func)(manage(ptr: arg_0)); |
7758 | return ret.release(); |
7759 | }; |
7760 | auto res = isl_ast_node_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
7761 | return manage(val: res); |
7762 | } |
7763 | |
7764 | isl::ast_node_list ast_node_list::insert(unsigned int pos, isl::ast_node el) const |
7765 | { |
7766 | auto res = isl_ast_node_list_insert(list: copy(), pos, el: el.release()); |
7767 | return manage(ptr: res); |
7768 | } |
7769 | |
7770 | class size ast_node_list::size() const |
7771 | { |
7772 | auto res = isl_ast_node_list_size(list: get()); |
7773 | return manage(val: res); |
7774 | } |
7775 | |
7776 | inline std::ostream &operator<<(std::ostream &os, const ast_node_list &obj) |
7777 | { |
7778 | char *str = isl_ast_node_list_to_str(list: obj.get()); |
7779 | if (!str) { |
7780 | os.setstate(std::ios_base::badbit); |
7781 | return os; |
7782 | } |
7783 | os << str; |
7784 | free(ptr: str); |
7785 | return os; |
7786 | } |
7787 | |
7788 | // implementations for isl::ast_node_mark |
7789 | ast_node_mark::ast_node_mark() |
7790 | : ast_node() {} |
7791 | |
7792 | ast_node_mark::ast_node_mark(const ast_node_mark &obj) |
7793 | : ast_node(obj) |
7794 | { |
7795 | } |
7796 | |
7797 | ast_node_mark::ast_node_mark(__isl_take isl_ast_node *ptr) |
7798 | : ast_node(ptr) {} |
7799 | |
7800 | ast_node_mark &ast_node_mark::operator=(ast_node_mark obj) { |
7801 | std::swap(a&: this->ptr, b&: obj.ptr); |
7802 | return *this; |
7803 | } |
7804 | |
7805 | isl::ctx ast_node_mark::ctx() const { |
7806 | return isl::ctx(isl_ast_node_get_ctx(node: ptr)); |
7807 | } |
7808 | |
7809 | isl::id ast_node_mark::id() const |
7810 | { |
7811 | auto res = isl_ast_node_mark_get_id(node: get()); |
7812 | return manage(ptr: res); |
7813 | } |
7814 | |
7815 | isl::id ast_node_mark::get_id() const |
7816 | { |
7817 | return id(); |
7818 | } |
7819 | |
7820 | isl::ast_node ast_node_mark::node() const |
7821 | { |
7822 | auto res = isl_ast_node_mark_get_node(node: get()); |
7823 | return manage(ptr: res); |
7824 | } |
7825 | |
7826 | isl::ast_node ast_node_mark::get_node() const |
7827 | { |
7828 | return node(); |
7829 | } |
7830 | |
7831 | inline std::ostream &operator<<(std::ostream &os, const ast_node_mark &obj) |
7832 | { |
7833 | char *str = isl_ast_node_to_str(node: obj.get()); |
7834 | if (!str) { |
7835 | os.setstate(std::ios_base::badbit); |
7836 | return os; |
7837 | } |
7838 | os << str; |
7839 | free(ptr: str); |
7840 | return os; |
7841 | } |
7842 | |
7843 | // implementations for isl::ast_node_user |
7844 | ast_node_user::ast_node_user() |
7845 | : ast_node() {} |
7846 | |
7847 | ast_node_user::ast_node_user(const ast_node_user &obj) |
7848 | : ast_node(obj) |
7849 | { |
7850 | } |
7851 | |
7852 | ast_node_user::ast_node_user(__isl_take isl_ast_node *ptr) |
7853 | : ast_node(ptr) {} |
7854 | |
7855 | ast_node_user &ast_node_user::operator=(ast_node_user obj) { |
7856 | std::swap(a&: this->ptr, b&: obj.ptr); |
7857 | return *this; |
7858 | } |
7859 | |
7860 | isl::ctx ast_node_user::ctx() const { |
7861 | return isl::ctx(isl_ast_node_get_ctx(node: ptr)); |
7862 | } |
7863 | |
7864 | isl::ast_expr ast_node_user::expr() const |
7865 | { |
7866 | auto res = isl_ast_node_user_get_expr(node: get()); |
7867 | return manage(ptr: res); |
7868 | } |
7869 | |
7870 | isl::ast_expr ast_node_user::get_expr() const |
7871 | { |
7872 | return expr(); |
7873 | } |
7874 | |
7875 | inline std::ostream &operator<<(std::ostream &os, const ast_node_user &obj) |
7876 | { |
7877 | char *str = isl_ast_node_to_str(node: obj.get()); |
7878 | if (!str) { |
7879 | os.setstate(std::ios_base::badbit); |
7880 | return os; |
7881 | } |
7882 | os << str; |
7883 | free(ptr: str); |
7884 | return os; |
7885 | } |
7886 | |
7887 | // implementations for isl::basic_map |
7888 | basic_map manage(__isl_take isl_basic_map *ptr) { |
7889 | return basic_map(ptr); |
7890 | } |
7891 | basic_map manage_copy(__isl_keep isl_basic_map *ptr) { |
7892 | ptr = isl_basic_map_copy(bmap: ptr); |
7893 | return basic_map(ptr); |
7894 | } |
7895 | |
7896 | basic_map::basic_map() |
7897 | : ptr(nullptr) {} |
7898 | |
7899 | basic_map::basic_map(const basic_map &obj) |
7900 | : ptr(nullptr) |
7901 | { |
7902 | ptr = obj.copy(); |
7903 | } |
7904 | |
7905 | basic_map::basic_map(__isl_take isl_basic_map *ptr) |
7906 | : ptr(ptr) {} |
7907 | |
7908 | basic_map::basic_map(isl::ctx ctx, const std::string &str) |
7909 | { |
7910 | auto res = isl_basic_map_read_from_str(ctx: ctx.release(), str: str.c_str()); |
7911 | ptr = res; |
7912 | } |
7913 | |
7914 | basic_map &basic_map::operator=(basic_map obj) { |
7915 | std::swap(a&: this->ptr, b&: obj.ptr); |
7916 | return *this; |
7917 | } |
7918 | |
7919 | basic_map::~basic_map() { |
7920 | if (ptr) |
7921 | isl_basic_map_free(bmap: ptr); |
7922 | } |
7923 | |
7924 | __isl_give isl_basic_map *basic_map::copy() const & { |
7925 | return isl_basic_map_copy(bmap: ptr); |
7926 | } |
7927 | |
7928 | __isl_keep isl_basic_map *basic_map::get() const { |
7929 | return ptr; |
7930 | } |
7931 | |
7932 | __isl_give isl_basic_map *basic_map::release() { |
7933 | isl_basic_map *tmp = ptr; |
7934 | ptr = nullptr; |
7935 | return tmp; |
7936 | } |
7937 | |
7938 | bool basic_map::is_null() const { |
7939 | return ptr == nullptr; |
7940 | } |
7941 | |
7942 | isl::ctx basic_map::ctx() const { |
7943 | return isl::ctx(isl_basic_map_get_ctx(bmap: ptr)); |
7944 | } |
7945 | |
7946 | isl::map basic_map::add_constraint(const isl::constraint &constraint) const |
7947 | { |
7948 | return isl::map(*this).add_constraint(constraint); |
7949 | } |
7950 | |
7951 | isl::map basic_map::add_dims(isl::dim type, unsigned int n) const |
7952 | { |
7953 | return isl::map(*this).add_dims(type, n); |
7954 | } |
7955 | |
7956 | isl::basic_map basic_map::affine_hull() const |
7957 | { |
7958 | auto res = isl_basic_map_affine_hull(bmap: copy()); |
7959 | return manage(ptr: res); |
7960 | } |
7961 | |
7962 | isl::map basic_map::align_params(const isl::space &model) const |
7963 | { |
7964 | return isl::map(*this).align_params(model); |
7965 | } |
7966 | |
7967 | isl::basic_map basic_map::apply_domain(isl::basic_map bmap2) const |
7968 | { |
7969 | auto res = isl_basic_map_apply_domain(bmap1: copy(), bmap2: bmap2.release()); |
7970 | return manage(ptr: res); |
7971 | } |
7972 | |
7973 | isl::map basic_map::apply_domain(const isl::map &map2) const |
7974 | { |
7975 | return isl::map(*this).apply_domain(map2); |
7976 | } |
7977 | |
7978 | isl::union_map basic_map::apply_domain(const isl::union_map &umap2) const |
7979 | { |
7980 | return isl::map(*this).apply_domain(umap2); |
7981 | } |
7982 | |
7983 | isl::basic_map basic_map::apply_range(isl::basic_map bmap2) const |
7984 | { |
7985 | auto res = isl_basic_map_apply_range(bmap1: copy(), bmap2: bmap2.release()); |
7986 | return manage(ptr: res); |
7987 | } |
7988 | |
7989 | isl::map basic_map::apply_range(const isl::map &map2) const |
7990 | { |
7991 | return isl::map(*this).apply_range(map2); |
7992 | } |
7993 | |
7994 | isl::union_map basic_map::apply_range(const isl::union_map &umap2) const |
7995 | { |
7996 | return isl::map(*this).apply_range(umap2); |
7997 | } |
7998 | |
7999 | isl::map basic_map::as_map() const |
8000 | { |
8001 | return isl::map(*this).as_map(); |
8002 | } |
8003 | |
8004 | isl::multi_union_pw_aff basic_map::as_multi_union_pw_aff() const |
8005 | { |
8006 | return isl::map(*this).as_multi_union_pw_aff(); |
8007 | } |
8008 | |
8009 | isl::pw_multi_aff basic_map::as_pw_multi_aff() const |
8010 | { |
8011 | return isl::map(*this).as_pw_multi_aff(); |
8012 | } |
8013 | |
8014 | isl::union_pw_multi_aff basic_map::as_union_pw_multi_aff() const |
8015 | { |
8016 | return isl::map(*this).as_union_pw_multi_aff(); |
8017 | } |
8018 | |
8019 | isl::basic_map_list basic_map::basic_map_list() const |
8020 | { |
8021 | return isl::map(*this).basic_map_list(); |
8022 | } |
8023 | |
8024 | isl::set basic_map::bind_domain(const isl::multi_id &tuple) const |
8025 | { |
8026 | return isl::map(*this).bind_domain(tuple); |
8027 | } |
8028 | |
8029 | isl::set basic_map::bind_range(const isl::multi_id &tuple) const |
8030 | { |
8031 | return isl::map(*this).bind_range(tuple); |
8032 | } |
8033 | |
8034 | boolean basic_map::can_curry() const |
8035 | { |
8036 | return isl::map(*this).can_curry(); |
8037 | } |
8038 | |
8039 | isl::map basic_map::coalesce() const |
8040 | { |
8041 | return isl::map(*this).coalesce(); |
8042 | } |
8043 | |
8044 | isl::map basic_map::complement() const |
8045 | { |
8046 | return isl::map(*this).complement(); |
8047 | } |
8048 | |
8049 | isl::union_map basic_map::compute_divs() const |
8050 | { |
8051 | return isl::map(*this).compute_divs(); |
8052 | } |
8053 | |
8054 | isl::map basic_map::curry() const |
8055 | { |
8056 | return isl::map(*this).curry(); |
8057 | } |
8058 | |
8059 | isl::basic_set basic_map::deltas() const |
8060 | { |
8061 | auto res = isl_basic_map_deltas(bmap: copy()); |
8062 | return manage(ptr: res); |
8063 | } |
8064 | |
8065 | isl::basic_map basic_map::detect_equalities() const |
8066 | { |
8067 | auto res = isl_basic_map_detect_equalities(bmap: copy()); |
8068 | return manage(ptr: res); |
8069 | } |
8070 | |
8071 | class size basic_map::dim(isl::dim type) const |
8072 | { |
8073 | return isl::map(*this).dim(type); |
8074 | } |
8075 | |
8076 | isl::pw_aff basic_map::dim_max(int pos) const |
8077 | { |
8078 | return isl::map(*this).dim_max(pos); |
8079 | } |
8080 | |
8081 | isl::pw_aff basic_map::dim_min(int pos) const |
8082 | { |
8083 | return isl::map(*this).dim_min(pos); |
8084 | } |
8085 | |
8086 | isl::basic_set basic_map::domain() const |
8087 | { |
8088 | auto res = isl_basic_map_domain(bmap: copy()); |
8089 | return manage(ptr: res); |
8090 | } |
8091 | |
8092 | isl::map basic_map::domain_factor_domain() const |
8093 | { |
8094 | return isl::map(*this).domain_factor_domain(); |
8095 | } |
8096 | |
8097 | isl::map basic_map::domain_factor_range() const |
8098 | { |
8099 | return isl::map(*this).domain_factor_range(); |
8100 | } |
8101 | |
8102 | isl::map basic_map::domain_map() const |
8103 | { |
8104 | return isl::map(*this).domain_map(); |
8105 | } |
8106 | |
8107 | isl::union_pw_multi_aff basic_map::domain_map_union_pw_multi_aff() const |
8108 | { |
8109 | return isl::map(*this).domain_map_union_pw_multi_aff(); |
8110 | } |
8111 | |
8112 | isl::map basic_map::domain_product(const isl::map &map2) const |
8113 | { |
8114 | return isl::map(*this).domain_product(map2); |
8115 | } |
8116 | |
8117 | isl::union_map basic_map::domain_product(const isl::union_map &umap2) const |
8118 | { |
8119 | return isl::map(*this).domain_product(umap2); |
8120 | } |
8121 | |
8122 | class size basic_map::domain_tuple_dim() const |
8123 | { |
8124 | return isl::map(*this).domain_tuple_dim(); |
8125 | } |
8126 | |
8127 | isl::id basic_map::domain_tuple_id() const |
8128 | { |
8129 | return isl::map(*this).domain_tuple_id(); |
8130 | } |
8131 | |
8132 | isl::map basic_map::eq_at(const isl::multi_pw_aff &mpa) const |
8133 | { |
8134 | return isl::map(*this).eq_at(mpa); |
8135 | } |
8136 | |
8137 | isl::union_map basic_map::eq_at(const isl::multi_union_pw_aff &mupa) const |
8138 | { |
8139 | return isl::map(*this).eq_at(mupa); |
8140 | } |
8141 | |
8142 | isl::basic_map basic_map::equal(isl::space space, unsigned int n_equal) |
8143 | { |
8144 | auto res = isl_basic_map_equal(space: space.release(), n_equal); |
8145 | return manage(ptr: res); |
8146 | } |
8147 | |
8148 | isl::basic_map basic_map::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const |
8149 | { |
8150 | auto res = isl_basic_map_equate(bmap: copy(), type1: static_cast<enum isl_dim_type>(type1), pos1, type2: static_cast<enum isl_dim_type>(type2), pos2); |
8151 | return manage(ptr: res); |
8152 | } |
8153 | |
8154 | boolean basic_map::every_map(const std::function<boolean(isl::map)> &test) const |
8155 | { |
8156 | return isl::map(*this).every_map(test); |
8157 | } |
8158 | |
8159 | isl::map basic_map::(const isl::space &space) const |
8160 | { |
8161 | return isl::map(*this).extract_map(space); |
8162 | } |
8163 | |
8164 | isl::map basic_map::factor_domain() const |
8165 | { |
8166 | return isl::map(*this).factor_domain(); |
8167 | } |
8168 | |
8169 | isl::map basic_map::factor_range() const |
8170 | { |
8171 | return isl::map(*this).factor_range(); |
8172 | } |
8173 | |
8174 | isl::basic_map basic_map::fix_si(isl::dim type, unsigned int pos, int value) const |
8175 | { |
8176 | auto res = isl_basic_map_fix_si(bmap: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
8177 | return manage(ptr: res); |
8178 | } |
8179 | |
8180 | isl::basic_map basic_map::fix_val(isl::dim type, unsigned int pos, isl::val v) const |
8181 | { |
8182 | auto res = isl_basic_map_fix_val(bmap: copy(), type: static_cast<enum isl_dim_type>(type), pos, v: v.release()); |
8183 | return manage(ptr: res); |
8184 | } |
8185 | |
8186 | isl::basic_map basic_map::fix_val(isl::dim type, unsigned int pos, long v) const |
8187 | { |
8188 | return this->fix_val(type, pos, v: isl::val(ctx(), v)); |
8189 | } |
8190 | |
8191 | isl::union_map basic_map::fixed_power(const isl::val &exp) const |
8192 | { |
8193 | return isl::map(*this).fixed_power(exp); |
8194 | } |
8195 | |
8196 | isl::union_map basic_map::fixed_power(long exp) const |
8197 | { |
8198 | return this->fixed_power(exp: isl::val(ctx(), exp)); |
8199 | } |
8200 | |
8201 | isl::map basic_map::flat_range_product(const isl::map &map2) const |
8202 | { |
8203 | return isl::map(*this).flat_range_product(map2); |
8204 | } |
8205 | |
8206 | isl::union_map basic_map::flat_range_product(const isl::union_map &umap2) const |
8207 | { |
8208 | return isl::map(*this).flat_range_product(umap2); |
8209 | } |
8210 | |
8211 | isl::basic_map basic_map::flatten() const |
8212 | { |
8213 | auto res = isl_basic_map_flatten(bmap: copy()); |
8214 | return manage(ptr: res); |
8215 | } |
8216 | |
8217 | isl::basic_map basic_map::flatten_domain() const |
8218 | { |
8219 | auto res = isl_basic_map_flatten_domain(bmap: copy()); |
8220 | return manage(ptr: res); |
8221 | } |
8222 | |
8223 | isl::basic_map basic_map::flatten_range() const |
8224 | { |
8225 | auto res = isl_basic_map_flatten_range(bmap: copy()); |
8226 | return manage(ptr: res); |
8227 | } |
8228 | |
8229 | isl::map basic_map::floordiv_val(const isl::val &d) const |
8230 | { |
8231 | return isl::map(*this).floordiv_val(d); |
8232 | } |
8233 | |
8234 | isl::map basic_map::floordiv_val(long d) const |
8235 | { |
8236 | return this->floordiv_val(d: isl::val(ctx(), d)); |
8237 | } |
8238 | |
8239 | stat basic_map::foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const |
8240 | { |
8241 | return isl::map(*this).foreach_basic_map(fn); |
8242 | } |
8243 | |
8244 | stat basic_map::foreach_map(const std::function<stat(isl::map)> &fn) const |
8245 | { |
8246 | return isl::map(*this).foreach_map(fn); |
8247 | } |
8248 | |
8249 | isl::basic_map basic_map::from_aff(isl::aff aff) |
8250 | { |
8251 | auto res = isl_basic_map_from_aff(aff: aff.release()); |
8252 | return manage(ptr: res); |
8253 | } |
8254 | |
8255 | isl::basic_map basic_map::from_domain_and_range(isl::basic_set domain, isl::basic_set range) |
8256 | { |
8257 | auto res = isl_basic_map_from_domain_and_range(domain: domain.release(), range: range.release()); |
8258 | return manage(ptr: res); |
8259 | } |
8260 | |
8261 | isl::basic_map basic_map::gist(isl::basic_map context) const |
8262 | { |
8263 | auto res = isl_basic_map_gist(bmap: copy(), context: context.release()); |
8264 | return manage(ptr: res); |
8265 | } |
8266 | |
8267 | isl::map basic_map::gist(const isl::map &context) const |
8268 | { |
8269 | return isl::map(*this).gist(context); |
8270 | } |
8271 | |
8272 | isl::union_map basic_map::gist(const isl::union_map &context) const |
8273 | { |
8274 | return isl::map(*this).gist(context); |
8275 | } |
8276 | |
8277 | isl::map basic_map::gist_domain(const isl::set &context) const |
8278 | { |
8279 | return isl::map(*this).gist_domain(context); |
8280 | } |
8281 | |
8282 | isl::union_map basic_map::gist_domain(const isl::union_set &uset) const |
8283 | { |
8284 | return isl::map(*this).gist_domain(uset); |
8285 | } |
8286 | |
8287 | isl::map basic_map::gist_params(const isl::set &context) const |
8288 | { |
8289 | return isl::map(*this).gist_params(context); |
8290 | } |
8291 | |
8292 | isl::union_map basic_map::gist_range(const isl::union_set &uset) const |
8293 | { |
8294 | return isl::map(*this).gist_range(uset); |
8295 | } |
8296 | |
8297 | boolean basic_map::has_domain_tuple_id() const |
8298 | { |
8299 | return isl::map(*this).has_domain_tuple_id(); |
8300 | } |
8301 | |
8302 | boolean basic_map::has_equal_space(const isl::map &map2) const |
8303 | { |
8304 | return isl::map(*this).has_equal_space(map2); |
8305 | } |
8306 | |
8307 | boolean basic_map::has_range_tuple_id() const |
8308 | { |
8309 | return isl::map(*this).has_range_tuple_id(); |
8310 | } |
8311 | |
8312 | boolean basic_map::has_tuple_id(isl::dim type) const |
8313 | { |
8314 | return isl::map(*this).has_tuple_id(type); |
8315 | } |
8316 | |
8317 | boolean basic_map::has_tuple_name(isl::dim type) const |
8318 | { |
8319 | return isl::map(*this).has_tuple_name(type); |
8320 | } |
8321 | |
8322 | isl::basic_map basic_map::intersect(isl::basic_map bmap2) const |
8323 | { |
8324 | auto res = isl_basic_map_intersect(bmap1: copy(), bmap2: bmap2.release()); |
8325 | return manage(ptr: res); |
8326 | } |
8327 | |
8328 | isl::map basic_map::intersect(const isl::map &map2) const |
8329 | { |
8330 | return isl::map(*this).intersect(map2); |
8331 | } |
8332 | |
8333 | isl::union_map basic_map::intersect(const isl::union_map &umap2) const |
8334 | { |
8335 | return isl::map(*this).intersect(umap2); |
8336 | } |
8337 | |
8338 | isl::basic_map basic_map::intersect_domain(isl::basic_set bset) const |
8339 | { |
8340 | auto res = isl_basic_map_intersect_domain(bmap: copy(), bset: bset.release()); |
8341 | return manage(ptr: res); |
8342 | } |
8343 | |
8344 | isl::map basic_map::intersect_domain(const isl::set &set) const |
8345 | { |
8346 | return isl::map(*this).intersect_domain(set); |
8347 | } |
8348 | |
8349 | isl::union_map basic_map::intersect_domain(const isl::space &space) const |
8350 | { |
8351 | return isl::map(*this).intersect_domain(space); |
8352 | } |
8353 | |
8354 | isl::union_map basic_map::intersect_domain(const isl::union_set &uset) const |
8355 | { |
8356 | return isl::map(*this).intersect_domain(uset); |
8357 | } |
8358 | |
8359 | isl::basic_map basic_map::intersect_domain(const isl::point &bset) const |
8360 | { |
8361 | return this->intersect_domain(bset: isl::basic_set(bset)); |
8362 | } |
8363 | |
8364 | isl::map basic_map::intersect_domain_factor_domain(const isl::map &factor) const |
8365 | { |
8366 | return isl::map(*this).intersect_domain_factor_domain(factor); |
8367 | } |
8368 | |
8369 | isl::union_map basic_map::intersect_domain_factor_domain(const isl::union_map &factor) const |
8370 | { |
8371 | return isl::map(*this).intersect_domain_factor_domain(factor); |
8372 | } |
8373 | |
8374 | isl::map basic_map::intersect_domain_factor_range(const isl::map &factor) const |
8375 | { |
8376 | return isl::map(*this).intersect_domain_factor_range(factor); |
8377 | } |
8378 | |
8379 | isl::union_map basic_map::intersect_domain_factor_range(const isl::union_map &factor) const |
8380 | { |
8381 | return isl::map(*this).intersect_domain_factor_range(factor); |
8382 | } |
8383 | |
8384 | isl::map basic_map::intersect_params(const isl::set ¶ms) const |
8385 | { |
8386 | return isl::map(*this).intersect_params(params); |
8387 | } |
8388 | |
8389 | isl::basic_map basic_map::intersect_range(isl::basic_set bset) const |
8390 | { |
8391 | auto res = isl_basic_map_intersect_range(bmap: copy(), bset: bset.release()); |
8392 | return manage(ptr: res); |
8393 | } |
8394 | |
8395 | isl::map basic_map::intersect_range(const isl::set &set) const |
8396 | { |
8397 | return isl::map(*this).intersect_range(set); |
8398 | } |
8399 | |
8400 | isl::union_map basic_map::intersect_range(const isl::space &space) const |
8401 | { |
8402 | return isl::map(*this).intersect_range(space); |
8403 | } |
8404 | |
8405 | isl::union_map basic_map::intersect_range(const isl::union_set &uset) const |
8406 | { |
8407 | return isl::map(*this).intersect_range(uset); |
8408 | } |
8409 | |
8410 | isl::basic_map basic_map::intersect_range(const isl::point &bset) const |
8411 | { |
8412 | return this->intersect_range(bset: isl::basic_set(bset)); |
8413 | } |
8414 | |
8415 | isl::map basic_map::intersect_range_factor_domain(const isl::map &factor) const |
8416 | { |
8417 | return isl::map(*this).intersect_range_factor_domain(factor); |
8418 | } |
8419 | |
8420 | isl::union_map basic_map::intersect_range_factor_domain(const isl::union_map &factor) const |
8421 | { |
8422 | return isl::map(*this).intersect_range_factor_domain(factor); |
8423 | } |
8424 | |
8425 | isl::map basic_map::intersect_range_factor_range(const isl::map &factor) const |
8426 | { |
8427 | return isl::map(*this).intersect_range_factor_range(factor); |
8428 | } |
8429 | |
8430 | isl::union_map basic_map::intersect_range_factor_range(const isl::union_map &factor) const |
8431 | { |
8432 | return isl::map(*this).intersect_range_factor_range(factor); |
8433 | } |
8434 | |
8435 | boolean basic_map::involves_dims(isl::dim type, unsigned int first, unsigned int n) const |
8436 | { |
8437 | return isl::map(*this).involves_dims(type, first, n); |
8438 | } |
8439 | |
8440 | boolean basic_map::is_bijective() const |
8441 | { |
8442 | return isl::map(*this).is_bijective(); |
8443 | } |
8444 | |
8445 | boolean basic_map::is_disjoint(const isl::map &map2) const |
8446 | { |
8447 | return isl::map(*this).is_disjoint(map2); |
8448 | } |
8449 | |
8450 | boolean basic_map::is_disjoint(const isl::union_map &umap2) const |
8451 | { |
8452 | return isl::map(*this).is_disjoint(umap2); |
8453 | } |
8454 | |
8455 | boolean basic_map::is_empty() const |
8456 | { |
8457 | auto res = isl_basic_map_is_empty(bmap: get()); |
8458 | return manage(val: res); |
8459 | } |
8460 | |
8461 | boolean basic_map::is_equal(const isl::basic_map &bmap2) const |
8462 | { |
8463 | auto res = isl_basic_map_is_equal(bmap1: get(), bmap2: bmap2.get()); |
8464 | return manage(val: res); |
8465 | } |
8466 | |
8467 | boolean basic_map::is_equal(const isl::map &map2) const |
8468 | { |
8469 | return isl::map(*this).is_equal(map2); |
8470 | } |
8471 | |
8472 | boolean basic_map::is_equal(const isl::union_map &umap2) const |
8473 | { |
8474 | return isl::map(*this).is_equal(umap2); |
8475 | } |
8476 | |
8477 | boolean basic_map::is_injective() const |
8478 | { |
8479 | return isl::map(*this).is_injective(); |
8480 | } |
8481 | |
8482 | boolean basic_map::is_single_valued() const |
8483 | { |
8484 | return isl::map(*this).is_single_valued(); |
8485 | } |
8486 | |
8487 | boolean basic_map::is_strict_subset(const isl::map &map2) const |
8488 | { |
8489 | return isl::map(*this).is_strict_subset(map2); |
8490 | } |
8491 | |
8492 | boolean basic_map::is_strict_subset(const isl::union_map &umap2) const |
8493 | { |
8494 | return isl::map(*this).is_strict_subset(umap2); |
8495 | } |
8496 | |
8497 | boolean basic_map::is_subset(const isl::basic_map &bmap2) const |
8498 | { |
8499 | auto res = isl_basic_map_is_subset(bmap1: get(), bmap2: bmap2.get()); |
8500 | return manage(val: res); |
8501 | } |
8502 | |
8503 | boolean basic_map::is_subset(const isl::map &map2) const |
8504 | { |
8505 | return isl::map(*this).is_subset(map2); |
8506 | } |
8507 | |
8508 | boolean basic_map::is_subset(const isl::union_map &umap2) const |
8509 | { |
8510 | return isl::map(*this).is_subset(umap2); |
8511 | } |
8512 | |
8513 | boolean basic_map::isa_map() const |
8514 | { |
8515 | return isl::map(*this).isa_map(); |
8516 | } |
8517 | |
8518 | isl::map basic_map::lex_ge_at(const isl::multi_pw_aff &mpa) const |
8519 | { |
8520 | return isl::map(*this).lex_ge_at(mpa); |
8521 | } |
8522 | |
8523 | isl::map basic_map::lex_gt_at(const isl::multi_pw_aff &mpa) const |
8524 | { |
8525 | return isl::map(*this).lex_gt_at(mpa); |
8526 | } |
8527 | |
8528 | isl::map basic_map::lex_le_at(const isl::multi_pw_aff &mpa) const |
8529 | { |
8530 | return isl::map(*this).lex_le_at(mpa); |
8531 | } |
8532 | |
8533 | isl::map basic_map::lex_lt_at(const isl::multi_pw_aff &mpa) const |
8534 | { |
8535 | return isl::map(*this).lex_lt_at(mpa); |
8536 | } |
8537 | |
8538 | isl::map basic_map::lexmax() const |
8539 | { |
8540 | auto res = isl_basic_map_lexmax(bmap: copy()); |
8541 | return manage(ptr: res); |
8542 | } |
8543 | |
8544 | isl::pw_multi_aff basic_map::lexmax_pw_multi_aff() const |
8545 | { |
8546 | return isl::map(*this).lexmax_pw_multi_aff(); |
8547 | } |
8548 | |
8549 | isl::map basic_map::lexmin() const |
8550 | { |
8551 | auto res = isl_basic_map_lexmin(bmap: copy()); |
8552 | return manage(ptr: res); |
8553 | } |
8554 | |
8555 | isl::pw_multi_aff basic_map::lexmin_pw_multi_aff() const |
8556 | { |
8557 | return isl::map(*this).lexmin_pw_multi_aff(); |
8558 | } |
8559 | |
8560 | isl::map basic_map::lower_bound(const isl::multi_pw_aff &lower) const |
8561 | { |
8562 | return isl::map(*this).lower_bound(lower); |
8563 | } |
8564 | |
8565 | isl::map basic_map::lower_bound_si(isl::dim type, unsigned int pos, int value) const |
8566 | { |
8567 | return isl::map(*this).lower_bound_si(type, pos, value); |
8568 | } |
8569 | |
8570 | isl::map_list basic_map::map_list() const |
8571 | { |
8572 | return isl::map(*this).map_list(); |
8573 | } |
8574 | |
8575 | isl::multi_pw_aff basic_map::max_multi_pw_aff() const |
8576 | { |
8577 | return isl::map(*this).max_multi_pw_aff(); |
8578 | } |
8579 | |
8580 | isl::multi_pw_aff basic_map::min_multi_pw_aff() const |
8581 | { |
8582 | return isl::map(*this).min_multi_pw_aff(); |
8583 | } |
8584 | |
8585 | isl::map basic_map::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const |
8586 | { |
8587 | return isl::map(*this).move_dims(dst_type, dst_pos, src_type, src_pos, n); |
8588 | } |
8589 | |
8590 | class size basic_map::n_basic_map() const |
8591 | { |
8592 | return isl::map(*this).n_basic_map(); |
8593 | } |
8594 | |
8595 | isl::map basic_map::order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const |
8596 | { |
8597 | return isl::map(*this).order_lt(type1, pos1, type2, pos2); |
8598 | } |
8599 | |
8600 | isl::set basic_map::params() const |
8601 | { |
8602 | return isl::map(*this).params(); |
8603 | } |
8604 | |
8605 | isl::val basic_map::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const |
8606 | { |
8607 | auto res = isl_basic_map_plain_get_val_if_fixed(bmap: get(), type: static_cast<enum isl_dim_type>(type), pos); |
8608 | return manage(ptr: res); |
8609 | } |
8610 | |
8611 | isl::basic_map basic_map::polyhedral_hull() const |
8612 | { |
8613 | return isl::map(*this).polyhedral_hull(); |
8614 | } |
8615 | |
8616 | isl::map basic_map::preimage_domain(const isl::multi_aff &ma) const |
8617 | { |
8618 | return isl::map(*this).preimage_domain(ma); |
8619 | } |
8620 | |
8621 | isl::map basic_map::preimage_domain(const isl::multi_pw_aff &mpa) const |
8622 | { |
8623 | return isl::map(*this).preimage_domain(mpa); |
8624 | } |
8625 | |
8626 | isl::map basic_map::preimage_domain(const isl::pw_multi_aff &pma) const |
8627 | { |
8628 | return isl::map(*this).preimage_domain(pma); |
8629 | } |
8630 | |
8631 | isl::union_map basic_map::preimage_domain(const isl::union_pw_multi_aff &upma) const |
8632 | { |
8633 | return isl::map(*this).preimage_domain(upma); |
8634 | } |
8635 | |
8636 | isl::map basic_map::preimage_range(const isl::multi_aff &ma) const |
8637 | { |
8638 | return isl::map(*this).preimage_range(ma); |
8639 | } |
8640 | |
8641 | isl::map basic_map::preimage_range(const isl::pw_multi_aff &pma) const |
8642 | { |
8643 | return isl::map(*this).preimage_range(pma); |
8644 | } |
8645 | |
8646 | isl::union_map basic_map::preimage_range(const isl::union_pw_multi_aff &upma) const |
8647 | { |
8648 | return isl::map(*this).preimage_range(upma); |
8649 | } |
8650 | |
8651 | isl::map basic_map::product(const isl::map &map2) const |
8652 | { |
8653 | return isl::map(*this).product(map2); |
8654 | } |
8655 | |
8656 | isl::union_map basic_map::product(const isl::union_map &umap2) const |
8657 | { |
8658 | return isl::map(*this).product(umap2); |
8659 | } |
8660 | |
8661 | isl::map basic_map::project_out(isl::dim type, unsigned int first, unsigned int n) const |
8662 | { |
8663 | return isl::map(*this).project_out(type, first, n); |
8664 | } |
8665 | |
8666 | isl::map basic_map::project_out_all_params() const |
8667 | { |
8668 | return isl::map(*this).project_out_all_params(); |
8669 | } |
8670 | |
8671 | isl::set basic_map::range() const |
8672 | { |
8673 | return isl::map(*this).range(); |
8674 | } |
8675 | |
8676 | isl::map basic_map::range_factor_domain() const |
8677 | { |
8678 | return isl::map(*this).range_factor_domain(); |
8679 | } |
8680 | |
8681 | isl::map basic_map::range_factor_range() const |
8682 | { |
8683 | return isl::map(*this).range_factor_range(); |
8684 | } |
8685 | |
8686 | isl::fixed_box basic_map::range_lattice_tile() const |
8687 | { |
8688 | return isl::map(*this).range_lattice_tile(); |
8689 | } |
8690 | |
8691 | isl::map basic_map::range_map() const |
8692 | { |
8693 | return isl::map(*this).range_map(); |
8694 | } |
8695 | |
8696 | isl::map basic_map::range_product(const isl::map &map2) const |
8697 | { |
8698 | return isl::map(*this).range_product(map2); |
8699 | } |
8700 | |
8701 | isl::union_map basic_map::range_product(const isl::union_map &umap2) const |
8702 | { |
8703 | return isl::map(*this).range_product(umap2); |
8704 | } |
8705 | |
8706 | isl::map basic_map::range_reverse() const |
8707 | { |
8708 | return isl::map(*this).range_reverse(); |
8709 | } |
8710 | |
8711 | isl::fixed_box basic_map::range_simple_fixed_box_hull() const |
8712 | { |
8713 | return isl::map(*this).range_simple_fixed_box_hull(); |
8714 | } |
8715 | |
8716 | class size basic_map::range_tuple_dim() const |
8717 | { |
8718 | return isl::map(*this).range_tuple_dim(); |
8719 | } |
8720 | |
8721 | isl::id basic_map::range_tuple_id() const |
8722 | { |
8723 | return isl::map(*this).range_tuple_id(); |
8724 | } |
8725 | |
8726 | isl::basic_map basic_map::reverse() const |
8727 | { |
8728 | auto res = isl_basic_map_reverse(bmap: copy()); |
8729 | return manage(ptr: res); |
8730 | } |
8731 | |
8732 | isl::basic_map basic_map::sample() const |
8733 | { |
8734 | auto res = isl_basic_map_sample(bmap: copy()); |
8735 | return manage(ptr: res); |
8736 | } |
8737 | |
8738 | isl::map basic_map::set_domain_tuple(const isl::id &id) const |
8739 | { |
8740 | return isl::map(*this).set_domain_tuple(id); |
8741 | } |
8742 | |
8743 | isl::map basic_map::set_domain_tuple(const std::string &id) const |
8744 | { |
8745 | return this->set_domain_tuple(isl::id(ctx(), id)); |
8746 | } |
8747 | |
8748 | isl::map basic_map::set_range_tuple(const isl::id &id) const |
8749 | { |
8750 | return isl::map(*this).set_range_tuple(id); |
8751 | } |
8752 | |
8753 | isl::map basic_map::set_range_tuple(const std::string &id) const |
8754 | { |
8755 | return this->set_range_tuple(isl::id(ctx(), id)); |
8756 | } |
8757 | |
8758 | isl::map basic_map::set_tuple_id(isl::dim type, const isl::id &id) const |
8759 | { |
8760 | return isl::map(*this).set_tuple_id(type, id); |
8761 | } |
8762 | |
8763 | isl::map basic_map::set_tuple_id(isl::dim type, const std::string &id) const |
8764 | { |
8765 | return this->set_tuple_id(type, id: isl::id(ctx(), id)); |
8766 | } |
8767 | |
8768 | isl::space basic_map::space() const |
8769 | { |
8770 | return isl::map(*this).space(); |
8771 | } |
8772 | |
8773 | isl::map basic_map::subtract(const isl::map &map2) const |
8774 | { |
8775 | return isl::map(*this).subtract(map2); |
8776 | } |
8777 | |
8778 | isl::union_map basic_map::subtract(const isl::union_map &umap2) const |
8779 | { |
8780 | return isl::map(*this).subtract(umap2); |
8781 | } |
8782 | |
8783 | isl::union_map basic_map::subtract_domain(const isl::union_set &dom) const |
8784 | { |
8785 | return isl::map(*this).subtract_domain(dom); |
8786 | } |
8787 | |
8788 | isl::union_map basic_map::subtract_range(const isl::union_set &dom) const |
8789 | { |
8790 | return isl::map(*this).subtract_range(dom); |
8791 | } |
8792 | |
8793 | isl::map basic_map::sum(const isl::map &map2) const |
8794 | { |
8795 | return isl::map(*this).sum(map2); |
8796 | } |
8797 | |
8798 | isl::basic_map_list basic_map::to_list() const |
8799 | { |
8800 | auto res = isl_basic_map_to_list(el: copy()); |
8801 | return manage(ptr: res); |
8802 | } |
8803 | |
8804 | isl::union_map basic_map::to_union_map() const |
8805 | { |
8806 | return isl::map(*this).to_union_map(); |
8807 | } |
8808 | |
8809 | isl::id basic_map::tuple_id(isl::dim type) const |
8810 | { |
8811 | return isl::map(*this).tuple_id(type); |
8812 | } |
8813 | |
8814 | isl::map basic_map::uncurry() const |
8815 | { |
8816 | return isl::map(*this).uncurry(); |
8817 | } |
8818 | |
8819 | isl::map basic_map::unite(isl::basic_map bmap2) const |
8820 | { |
8821 | auto res = isl_basic_map_union(bmap1: copy(), bmap2: bmap2.release()); |
8822 | return manage(ptr: res); |
8823 | } |
8824 | |
8825 | isl::map basic_map::unite(const isl::map &map2) const |
8826 | { |
8827 | return isl::map(*this).unite(map2); |
8828 | } |
8829 | |
8830 | isl::union_map basic_map::unite(const isl::union_map &umap2) const |
8831 | { |
8832 | return isl::map(*this).unite(umap2); |
8833 | } |
8834 | |
8835 | isl::basic_map basic_map::universe(isl::space space) |
8836 | { |
8837 | auto res = isl_basic_map_universe(space: space.release()); |
8838 | return manage(ptr: res); |
8839 | } |
8840 | |
8841 | isl::basic_map basic_map::unshifted_simple_hull() const |
8842 | { |
8843 | return isl::map(*this).unshifted_simple_hull(); |
8844 | } |
8845 | |
8846 | isl::map basic_map::upper_bound(const isl::multi_pw_aff &upper) const |
8847 | { |
8848 | return isl::map(*this).upper_bound(upper); |
8849 | } |
8850 | |
8851 | isl::map basic_map::upper_bound_si(isl::dim type, unsigned int pos, int value) const |
8852 | { |
8853 | return isl::map(*this).upper_bound_si(type, pos, value); |
8854 | } |
8855 | |
8856 | isl::set basic_map::wrap() const |
8857 | { |
8858 | return isl::map(*this).wrap(); |
8859 | } |
8860 | |
8861 | isl::map basic_map::zip() const |
8862 | { |
8863 | return isl::map(*this).zip(); |
8864 | } |
8865 | |
8866 | inline std::ostream &operator<<(std::ostream &os, const basic_map &obj) |
8867 | { |
8868 | char *str = isl_basic_map_to_str(bmap: obj.get()); |
8869 | if (!str) { |
8870 | os.setstate(std::ios_base::badbit); |
8871 | return os; |
8872 | } |
8873 | os << str; |
8874 | free(ptr: str); |
8875 | return os; |
8876 | } |
8877 | |
8878 | // implementations for isl::basic_map_list |
8879 | basic_map_list manage(__isl_take isl_basic_map_list *ptr) { |
8880 | return basic_map_list(ptr); |
8881 | } |
8882 | basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr) { |
8883 | ptr = isl_basic_map_list_copy(list: ptr); |
8884 | return basic_map_list(ptr); |
8885 | } |
8886 | |
8887 | basic_map_list::basic_map_list() |
8888 | : ptr(nullptr) {} |
8889 | |
8890 | basic_map_list::basic_map_list(const basic_map_list &obj) |
8891 | : ptr(nullptr) |
8892 | { |
8893 | ptr = obj.copy(); |
8894 | } |
8895 | |
8896 | basic_map_list::basic_map_list(__isl_take isl_basic_map_list *ptr) |
8897 | : ptr(ptr) {} |
8898 | |
8899 | basic_map_list::basic_map_list(isl::ctx ctx, int n) |
8900 | { |
8901 | auto res = isl_basic_map_list_alloc(ctx: ctx.release(), n); |
8902 | ptr = res; |
8903 | } |
8904 | |
8905 | basic_map_list::basic_map_list(isl::basic_map el) |
8906 | { |
8907 | auto res = isl_basic_map_list_from_basic_map(el: el.release()); |
8908 | ptr = res; |
8909 | } |
8910 | |
8911 | basic_map_list &basic_map_list::operator=(basic_map_list obj) { |
8912 | std::swap(a&: this->ptr, b&: obj.ptr); |
8913 | return *this; |
8914 | } |
8915 | |
8916 | basic_map_list::~basic_map_list() { |
8917 | if (ptr) |
8918 | isl_basic_map_list_free(list: ptr); |
8919 | } |
8920 | |
8921 | __isl_give isl_basic_map_list *basic_map_list::copy() const & { |
8922 | return isl_basic_map_list_copy(list: ptr); |
8923 | } |
8924 | |
8925 | __isl_keep isl_basic_map_list *basic_map_list::get() const { |
8926 | return ptr; |
8927 | } |
8928 | |
8929 | __isl_give isl_basic_map_list *basic_map_list::release() { |
8930 | isl_basic_map_list *tmp = ptr; |
8931 | ptr = nullptr; |
8932 | return tmp; |
8933 | } |
8934 | |
8935 | bool basic_map_list::is_null() const { |
8936 | return ptr == nullptr; |
8937 | } |
8938 | |
8939 | isl::ctx basic_map_list::ctx() const { |
8940 | return isl::ctx(isl_basic_map_list_get_ctx(list: ptr)); |
8941 | } |
8942 | |
8943 | isl::basic_map_list basic_map_list::add(isl::basic_map el) const |
8944 | { |
8945 | auto res = isl_basic_map_list_add(list: copy(), el: el.release()); |
8946 | return manage(ptr: res); |
8947 | } |
8948 | |
8949 | isl::basic_map basic_map_list::at(int index) const |
8950 | { |
8951 | auto res = isl_basic_map_list_get_at(list: get(), index); |
8952 | return manage(ptr: res); |
8953 | } |
8954 | |
8955 | isl::basic_map basic_map_list::get_at(int index) const |
8956 | { |
8957 | return at(index); |
8958 | } |
8959 | |
8960 | isl::basic_map_list basic_map_list::clear() const |
8961 | { |
8962 | auto res = isl_basic_map_list_clear(list: copy()); |
8963 | return manage(ptr: res); |
8964 | } |
8965 | |
8966 | isl::basic_map_list basic_map_list::concat(isl::basic_map_list list2) const |
8967 | { |
8968 | auto res = isl_basic_map_list_concat(list1: copy(), list2: list2.release()); |
8969 | return manage(ptr: res); |
8970 | } |
8971 | |
8972 | isl::basic_map_list basic_map_list::drop(unsigned int first, unsigned int n) const |
8973 | { |
8974 | auto res = isl_basic_map_list_drop(list: copy(), first, n); |
8975 | return manage(ptr: res); |
8976 | } |
8977 | |
8978 | stat basic_map_list::foreach(const std::function<stat(isl::basic_map)> &fn) const |
8979 | { |
8980 | struct fn_data { |
8981 | std::function<stat(isl::basic_map)> func; |
8982 | } fn_data = { .func: fn }; |
8983 | auto fn_lambda = [](isl_basic_map *arg_0, void *arg_1) -> isl_stat { |
8984 | auto *data = static_cast<struct fn_data *>(arg_1); |
8985 | auto ret = (data->func)(manage(ptr: arg_0)); |
8986 | return ret.release(); |
8987 | }; |
8988 | auto res = isl_basic_map_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
8989 | return manage(val: res); |
8990 | } |
8991 | |
8992 | isl::basic_map_list basic_map_list::insert(unsigned int pos, isl::basic_map el) const |
8993 | { |
8994 | auto res = isl_basic_map_list_insert(list: copy(), pos, el: el.release()); |
8995 | return manage(ptr: res); |
8996 | } |
8997 | |
8998 | class size basic_map_list::size() const |
8999 | { |
9000 | auto res = isl_basic_map_list_size(list: get()); |
9001 | return manage(val: res); |
9002 | } |
9003 | |
9004 | inline std::ostream &operator<<(std::ostream &os, const basic_map_list &obj) |
9005 | { |
9006 | char *str = isl_basic_map_list_to_str(list: obj.get()); |
9007 | if (!str) { |
9008 | os.setstate(std::ios_base::badbit); |
9009 | return os; |
9010 | } |
9011 | os << str; |
9012 | free(ptr: str); |
9013 | return os; |
9014 | } |
9015 | |
9016 | // implementations for isl::basic_set |
9017 | basic_set manage(__isl_take isl_basic_set *ptr) { |
9018 | return basic_set(ptr); |
9019 | } |
9020 | basic_set manage_copy(__isl_keep isl_basic_set *ptr) { |
9021 | ptr = isl_basic_set_copy(bset: ptr); |
9022 | return basic_set(ptr); |
9023 | } |
9024 | |
9025 | basic_set::basic_set() |
9026 | : ptr(nullptr) {} |
9027 | |
9028 | basic_set::basic_set(const basic_set &obj) |
9029 | : ptr(nullptr) |
9030 | { |
9031 | ptr = obj.copy(); |
9032 | } |
9033 | |
9034 | basic_set::basic_set(__isl_take isl_basic_set *ptr) |
9035 | : ptr(ptr) {} |
9036 | |
9037 | basic_set::basic_set(isl::point pnt) |
9038 | { |
9039 | auto res = isl_basic_set_from_point(pnt: pnt.release()); |
9040 | ptr = res; |
9041 | } |
9042 | |
9043 | basic_set::basic_set(isl::ctx ctx, const std::string &str) |
9044 | { |
9045 | auto res = isl_basic_set_read_from_str(ctx: ctx.release(), str: str.c_str()); |
9046 | ptr = res; |
9047 | } |
9048 | |
9049 | basic_set &basic_set::operator=(basic_set obj) { |
9050 | std::swap(a&: this->ptr, b&: obj.ptr); |
9051 | return *this; |
9052 | } |
9053 | |
9054 | basic_set::~basic_set() { |
9055 | if (ptr) |
9056 | isl_basic_set_free(bset: ptr); |
9057 | } |
9058 | |
9059 | __isl_give isl_basic_set *basic_set::copy() const & { |
9060 | return isl_basic_set_copy(bset: ptr); |
9061 | } |
9062 | |
9063 | __isl_keep isl_basic_set *basic_set::get() const { |
9064 | return ptr; |
9065 | } |
9066 | |
9067 | __isl_give isl_basic_set *basic_set::release() { |
9068 | isl_basic_set *tmp = ptr; |
9069 | ptr = nullptr; |
9070 | return tmp; |
9071 | } |
9072 | |
9073 | bool basic_set::is_null() const { |
9074 | return ptr == nullptr; |
9075 | } |
9076 | |
9077 | isl::ctx basic_set::ctx() const { |
9078 | return isl::ctx(isl_basic_set_get_ctx(bset: ptr)); |
9079 | } |
9080 | |
9081 | isl::set basic_set::add_constraint(const isl::constraint &constraint) const |
9082 | { |
9083 | return isl::set(*this).add_constraint(constraint); |
9084 | } |
9085 | |
9086 | isl::set basic_set::add_dims(isl::dim type, unsigned int n) const |
9087 | { |
9088 | return isl::set(*this).add_dims(type, n); |
9089 | } |
9090 | |
9091 | isl::basic_set basic_set::affine_hull() const |
9092 | { |
9093 | auto res = isl_basic_set_affine_hull(bset: copy()); |
9094 | return manage(ptr: res); |
9095 | } |
9096 | |
9097 | isl::set basic_set::align_params(const isl::space &model) const |
9098 | { |
9099 | return isl::set(*this).align_params(model); |
9100 | } |
9101 | |
9102 | isl::basic_set basic_set::apply(isl::basic_map bmap) const |
9103 | { |
9104 | auto res = isl_basic_set_apply(bset: copy(), bmap: bmap.release()); |
9105 | return manage(ptr: res); |
9106 | } |
9107 | |
9108 | isl::set basic_set::apply(const isl::map &map) const |
9109 | { |
9110 | return isl::set(*this).apply(map); |
9111 | } |
9112 | |
9113 | isl::union_set basic_set::apply(const isl::union_map &umap) const |
9114 | { |
9115 | return isl::set(*this).apply(umap); |
9116 | } |
9117 | |
9118 | isl::pw_multi_aff basic_set::as_pw_multi_aff() const |
9119 | { |
9120 | return isl::set(*this).as_pw_multi_aff(); |
9121 | } |
9122 | |
9123 | isl::set basic_set::as_set() const |
9124 | { |
9125 | return isl::set(*this).as_set(); |
9126 | } |
9127 | |
9128 | isl::basic_set_list basic_set::basic_set_list() const |
9129 | { |
9130 | return isl::set(*this).basic_set_list(); |
9131 | } |
9132 | |
9133 | isl::set basic_set::bind(const isl::multi_id &tuple) const |
9134 | { |
9135 | return isl::set(*this).bind(tuple); |
9136 | } |
9137 | |
9138 | isl::set basic_set::coalesce() const |
9139 | { |
9140 | return isl::set(*this).coalesce(); |
9141 | } |
9142 | |
9143 | isl::set basic_set::complement() const |
9144 | { |
9145 | return isl::set(*this).complement(); |
9146 | } |
9147 | |
9148 | isl::union_set basic_set::compute_divs() const |
9149 | { |
9150 | return isl::set(*this).compute_divs(); |
9151 | } |
9152 | |
9153 | boolean basic_set::contains(const isl::space &space) const |
9154 | { |
9155 | return isl::set(*this).contains(space); |
9156 | } |
9157 | |
9158 | isl::basic_set basic_set::convex_hull() const |
9159 | { |
9160 | return isl::set(*this).convex_hull(); |
9161 | } |
9162 | |
9163 | isl::basic_set basic_set::detect_equalities() const |
9164 | { |
9165 | auto res = isl_basic_set_detect_equalities(bset: copy()); |
9166 | return manage(ptr: res); |
9167 | } |
9168 | |
9169 | class size basic_set::dim(isl::dim type) const |
9170 | { |
9171 | auto res = isl_basic_set_dim(bset: get(), type: static_cast<enum isl_dim_type>(type)); |
9172 | return manage(val: res); |
9173 | } |
9174 | |
9175 | boolean basic_set::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const |
9176 | { |
9177 | return isl::set(*this).dim_has_any_lower_bound(type, pos); |
9178 | } |
9179 | |
9180 | isl::id basic_set::dim_id(isl::dim type, unsigned int pos) const |
9181 | { |
9182 | return isl::set(*this).dim_id(type, pos); |
9183 | } |
9184 | |
9185 | isl::pw_aff basic_set::dim_max(int pos) const |
9186 | { |
9187 | return isl::set(*this).dim_max(pos); |
9188 | } |
9189 | |
9190 | isl::val basic_set::dim_max_val(int pos) const |
9191 | { |
9192 | auto res = isl_basic_set_dim_max_val(bset: copy(), pos); |
9193 | return manage(ptr: res); |
9194 | } |
9195 | |
9196 | isl::pw_aff basic_set::dim_min(int pos) const |
9197 | { |
9198 | return isl::set(*this).dim_min(pos); |
9199 | } |
9200 | |
9201 | isl::val basic_set::dim_min_val(int pos) const |
9202 | { |
9203 | return isl::set(*this).dim_min_val(pos); |
9204 | } |
9205 | |
9206 | std::string basic_set::dim_name(isl::dim type, unsigned int pos) const |
9207 | { |
9208 | return isl::set(*this).dim_name(type, pos); |
9209 | } |
9210 | |
9211 | isl::aff basic_set::div(int pos) const |
9212 | { |
9213 | auto res = isl_basic_set_get_div(bset: get(), pos); |
9214 | return manage(ptr: res); |
9215 | } |
9216 | |
9217 | isl::aff basic_set::get_div(int pos) const |
9218 | { |
9219 | return div(pos); |
9220 | } |
9221 | |
9222 | isl::set basic_set::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const |
9223 | { |
9224 | return isl::set(*this).drop_constraints_involving_dims(type, first, n); |
9225 | } |
9226 | |
9227 | isl::set basic_set::eliminate(isl::dim type, unsigned int first, unsigned int n) const |
9228 | { |
9229 | return isl::set(*this).eliminate(type, first, n); |
9230 | } |
9231 | |
9232 | boolean basic_set::every_set(const std::function<boolean(isl::set)> &test) const |
9233 | { |
9234 | return isl::set(*this).every_set(test); |
9235 | } |
9236 | |
9237 | isl::set basic_set::(const isl::space &space) const |
9238 | { |
9239 | return isl::set(*this).extract_set(space); |
9240 | } |
9241 | |
9242 | int basic_set::find_dim_by_id(isl::dim type, const isl::id &id) const |
9243 | { |
9244 | return isl::set(*this).find_dim_by_id(type, id); |
9245 | } |
9246 | |
9247 | int basic_set::find_dim_by_id(isl::dim type, const std::string &id) const |
9248 | { |
9249 | return this->find_dim_by_id(type, id: isl::id(ctx(), id)); |
9250 | } |
9251 | |
9252 | isl::basic_set basic_set::fix_si(isl::dim type, unsigned int pos, int value) const |
9253 | { |
9254 | auto res = isl_basic_set_fix_si(bset: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
9255 | return manage(ptr: res); |
9256 | } |
9257 | |
9258 | isl::basic_set basic_set::fix_val(isl::dim type, unsigned int pos, isl::val v) const |
9259 | { |
9260 | auto res = isl_basic_set_fix_val(bset: copy(), type: static_cast<enum isl_dim_type>(type), pos, v: v.release()); |
9261 | return manage(ptr: res); |
9262 | } |
9263 | |
9264 | isl::basic_set basic_set::fix_val(isl::dim type, unsigned int pos, long v) const |
9265 | { |
9266 | return this->fix_val(type, pos, v: isl::val(ctx(), v)); |
9267 | } |
9268 | |
9269 | isl::basic_set basic_set::flatten() const |
9270 | { |
9271 | auto res = isl_basic_set_flatten(bset: copy()); |
9272 | return manage(ptr: res); |
9273 | } |
9274 | |
9275 | stat basic_set::foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const |
9276 | { |
9277 | return isl::set(*this).foreach_basic_set(fn); |
9278 | } |
9279 | |
9280 | stat basic_set::foreach_point(const std::function<stat(isl::point)> &fn) const |
9281 | { |
9282 | return isl::set(*this).foreach_point(fn); |
9283 | } |
9284 | |
9285 | stat basic_set::foreach_set(const std::function<stat(isl::set)> &fn) const |
9286 | { |
9287 | return isl::set(*this).foreach_set(fn); |
9288 | } |
9289 | |
9290 | isl::basic_set basic_set::gist(isl::basic_set context) const |
9291 | { |
9292 | auto res = isl_basic_set_gist(bset: copy(), context: context.release()); |
9293 | return manage(ptr: res); |
9294 | } |
9295 | |
9296 | isl::set basic_set::gist(const isl::set &context) const |
9297 | { |
9298 | return isl::set(*this).gist(context); |
9299 | } |
9300 | |
9301 | isl::union_set basic_set::gist(const isl::union_set &context) const |
9302 | { |
9303 | return isl::set(*this).gist(context); |
9304 | } |
9305 | |
9306 | isl::basic_set basic_set::gist(const isl::point &context) const |
9307 | { |
9308 | return this->gist(context: isl::basic_set(context)); |
9309 | } |
9310 | |
9311 | isl::set basic_set::gist_params(const isl::set &context) const |
9312 | { |
9313 | return isl::set(*this).gist_params(context); |
9314 | } |
9315 | |
9316 | boolean basic_set::has_equal_space(const isl::set &set2) const |
9317 | { |
9318 | return isl::set(*this).has_equal_space(set2); |
9319 | } |
9320 | |
9321 | isl::map basic_set::identity() const |
9322 | { |
9323 | return isl::set(*this).identity(); |
9324 | } |
9325 | |
9326 | isl::union_pw_multi_aff basic_set::identity_union_pw_multi_aff() const |
9327 | { |
9328 | return isl::set(*this).identity_union_pw_multi_aff(); |
9329 | } |
9330 | |
9331 | isl::pw_aff basic_set::indicator_function() const |
9332 | { |
9333 | return isl::set(*this).indicator_function(); |
9334 | } |
9335 | |
9336 | isl::set basic_set::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const |
9337 | { |
9338 | return isl::set(*this).insert_dims(type, pos, n); |
9339 | } |
9340 | |
9341 | isl::map basic_set::insert_domain(const isl::space &domain) const |
9342 | { |
9343 | return isl::set(*this).insert_domain(domain); |
9344 | } |
9345 | |
9346 | isl::basic_set basic_set::intersect(isl::basic_set bset2) const |
9347 | { |
9348 | auto res = isl_basic_set_intersect(bset1: copy(), bset2: bset2.release()); |
9349 | return manage(ptr: res); |
9350 | } |
9351 | |
9352 | isl::set basic_set::intersect(const isl::set &set2) const |
9353 | { |
9354 | return isl::set(*this).intersect(set2); |
9355 | } |
9356 | |
9357 | isl::union_set basic_set::intersect(const isl::union_set &uset2) const |
9358 | { |
9359 | return isl::set(*this).intersect(uset2); |
9360 | } |
9361 | |
9362 | isl::basic_set basic_set::intersect(const isl::point &bset2) const |
9363 | { |
9364 | return this->intersect(bset2: isl::basic_set(bset2)); |
9365 | } |
9366 | |
9367 | isl::basic_set basic_set::intersect_params(isl::basic_set bset2) const |
9368 | { |
9369 | auto res = isl_basic_set_intersect_params(bset1: copy(), bset2: bset2.release()); |
9370 | return manage(ptr: res); |
9371 | } |
9372 | |
9373 | isl::set basic_set::intersect_params(const isl::set ¶ms) const |
9374 | { |
9375 | return isl::set(*this).intersect_params(params); |
9376 | } |
9377 | |
9378 | isl::basic_set basic_set::intersect_params(const isl::point &bset2) const |
9379 | { |
9380 | return this->intersect_params(bset2: isl::basic_set(bset2)); |
9381 | } |
9382 | |
9383 | boolean basic_set::involves_dims(isl::dim type, unsigned int first, unsigned int n) const |
9384 | { |
9385 | return isl::set(*this).involves_dims(type, first, n); |
9386 | } |
9387 | |
9388 | boolean basic_set::involves_locals() const |
9389 | { |
9390 | return isl::set(*this).involves_locals(); |
9391 | } |
9392 | |
9393 | boolean basic_set::is_bounded() const |
9394 | { |
9395 | auto res = isl_basic_set_is_bounded(bset: get()); |
9396 | return manage(val: res); |
9397 | } |
9398 | |
9399 | boolean basic_set::is_disjoint(const isl::set &set2) const |
9400 | { |
9401 | return isl::set(*this).is_disjoint(set2); |
9402 | } |
9403 | |
9404 | boolean basic_set::is_disjoint(const isl::union_set &uset2) const |
9405 | { |
9406 | return isl::set(*this).is_disjoint(uset2); |
9407 | } |
9408 | |
9409 | boolean basic_set::is_empty() const |
9410 | { |
9411 | auto res = isl_basic_set_is_empty(bset: get()); |
9412 | return manage(val: res); |
9413 | } |
9414 | |
9415 | boolean basic_set::is_equal(const isl::basic_set &bset2) const |
9416 | { |
9417 | auto res = isl_basic_set_is_equal(bset1: get(), bset2: bset2.get()); |
9418 | return manage(val: res); |
9419 | } |
9420 | |
9421 | boolean basic_set::is_equal(const isl::set &set2) const |
9422 | { |
9423 | return isl::set(*this).is_equal(set2); |
9424 | } |
9425 | |
9426 | boolean basic_set::is_equal(const isl::union_set &uset2) const |
9427 | { |
9428 | return isl::set(*this).is_equal(uset2); |
9429 | } |
9430 | |
9431 | boolean basic_set::is_equal(const isl::point &bset2) const |
9432 | { |
9433 | return this->is_equal(bset2: isl::basic_set(bset2)); |
9434 | } |
9435 | |
9436 | boolean basic_set::is_params() const |
9437 | { |
9438 | return isl::set(*this).is_params(); |
9439 | } |
9440 | |
9441 | boolean basic_set::is_singleton() const |
9442 | { |
9443 | return isl::set(*this).is_singleton(); |
9444 | } |
9445 | |
9446 | boolean basic_set::is_strict_subset(const isl::set &set2) const |
9447 | { |
9448 | return isl::set(*this).is_strict_subset(set2); |
9449 | } |
9450 | |
9451 | boolean basic_set::is_strict_subset(const isl::union_set &uset2) const |
9452 | { |
9453 | return isl::set(*this).is_strict_subset(uset2); |
9454 | } |
9455 | |
9456 | boolean basic_set::is_subset(const isl::basic_set &bset2) const |
9457 | { |
9458 | auto res = isl_basic_set_is_subset(bset1: get(), bset2: bset2.get()); |
9459 | return manage(val: res); |
9460 | } |
9461 | |
9462 | boolean basic_set::is_subset(const isl::set &set2) const |
9463 | { |
9464 | return isl::set(*this).is_subset(set2); |
9465 | } |
9466 | |
9467 | boolean basic_set::is_subset(const isl::union_set &uset2) const |
9468 | { |
9469 | return isl::set(*this).is_subset(uset2); |
9470 | } |
9471 | |
9472 | boolean basic_set::is_subset(const isl::point &bset2) const |
9473 | { |
9474 | return this->is_subset(bset2: isl::basic_set(bset2)); |
9475 | } |
9476 | |
9477 | boolean basic_set::is_wrapping() const |
9478 | { |
9479 | auto res = isl_basic_set_is_wrapping(bset: get()); |
9480 | return manage(val: res); |
9481 | } |
9482 | |
9483 | boolean basic_set::isa_set() const |
9484 | { |
9485 | return isl::set(*this).isa_set(); |
9486 | } |
9487 | |
9488 | isl::set basic_set::lexmax() const |
9489 | { |
9490 | auto res = isl_basic_set_lexmax(bset: copy()); |
9491 | return manage(ptr: res); |
9492 | } |
9493 | |
9494 | isl::pw_multi_aff basic_set::lexmax_pw_multi_aff() const |
9495 | { |
9496 | return isl::set(*this).lexmax_pw_multi_aff(); |
9497 | } |
9498 | |
9499 | isl::set basic_set::lexmin() const |
9500 | { |
9501 | auto res = isl_basic_set_lexmin(bset: copy()); |
9502 | return manage(ptr: res); |
9503 | } |
9504 | |
9505 | isl::pw_multi_aff basic_set::lexmin_pw_multi_aff() const |
9506 | { |
9507 | return isl::set(*this).lexmin_pw_multi_aff(); |
9508 | } |
9509 | |
9510 | isl::set basic_set::lower_bound(const isl::multi_pw_aff &lower) const |
9511 | { |
9512 | return isl::set(*this).lower_bound(lower); |
9513 | } |
9514 | |
9515 | isl::set basic_set::lower_bound(const isl::multi_val &lower) const |
9516 | { |
9517 | return isl::set(*this).lower_bound(lower); |
9518 | } |
9519 | |
9520 | isl::set basic_set::lower_bound_si(isl::dim type, unsigned int pos, int value) const |
9521 | { |
9522 | return isl::set(*this).lower_bound_si(type, pos, value); |
9523 | } |
9524 | |
9525 | isl::set basic_set::lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const |
9526 | { |
9527 | return isl::set(*this).lower_bound_val(type, pos, value); |
9528 | } |
9529 | |
9530 | isl::set basic_set::lower_bound_val(isl::dim type, unsigned int pos, long value) const |
9531 | { |
9532 | return this->lower_bound_val(type, pos, value: isl::val(ctx(), value)); |
9533 | } |
9534 | |
9535 | isl::multi_pw_aff basic_set::max_multi_pw_aff() const |
9536 | { |
9537 | return isl::set(*this).max_multi_pw_aff(); |
9538 | } |
9539 | |
9540 | isl::val basic_set::max_val(const isl::aff &obj) const |
9541 | { |
9542 | return isl::set(*this).max_val(obj); |
9543 | } |
9544 | |
9545 | isl::multi_pw_aff basic_set::min_multi_pw_aff() const |
9546 | { |
9547 | return isl::set(*this).min_multi_pw_aff(); |
9548 | } |
9549 | |
9550 | isl::val basic_set::min_val(const isl::aff &obj) const |
9551 | { |
9552 | return isl::set(*this).min_val(obj); |
9553 | } |
9554 | |
9555 | class size basic_set::n_basic_set() const |
9556 | { |
9557 | return isl::set(*this).n_basic_set(); |
9558 | } |
9559 | |
9560 | isl::basic_set basic_set::params() const |
9561 | { |
9562 | auto res = isl_basic_set_params(bset: copy()); |
9563 | return manage(ptr: res); |
9564 | } |
9565 | |
9566 | isl::val basic_set::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const |
9567 | { |
9568 | return isl::set(*this).plain_get_val_if_fixed(type, pos); |
9569 | } |
9570 | |
9571 | isl::multi_val basic_set::plain_multi_val_if_fixed() const |
9572 | { |
9573 | return isl::set(*this).plain_multi_val_if_fixed(); |
9574 | } |
9575 | |
9576 | isl::basic_set basic_set::polyhedral_hull() const |
9577 | { |
9578 | return isl::set(*this).polyhedral_hull(); |
9579 | } |
9580 | |
9581 | isl::set basic_set::preimage(const isl::multi_aff &ma) const |
9582 | { |
9583 | return isl::set(*this).preimage(ma); |
9584 | } |
9585 | |
9586 | isl::set basic_set::preimage(const isl::multi_pw_aff &mpa) const |
9587 | { |
9588 | return isl::set(*this).preimage(mpa); |
9589 | } |
9590 | |
9591 | isl::set basic_set::preimage(const isl::pw_multi_aff &pma) const |
9592 | { |
9593 | return isl::set(*this).preimage(pma); |
9594 | } |
9595 | |
9596 | isl::union_set basic_set::preimage(const isl::union_pw_multi_aff &upma) const |
9597 | { |
9598 | return isl::set(*this).preimage(upma); |
9599 | } |
9600 | |
9601 | isl::set basic_set::product(const isl::set &set2) const |
9602 | { |
9603 | return isl::set(*this).product(set2); |
9604 | } |
9605 | |
9606 | isl::basic_set basic_set::project_out(isl::dim type, unsigned int first, unsigned int n) const |
9607 | { |
9608 | auto res = isl_basic_set_project_out(bset: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
9609 | return manage(ptr: res); |
9610 | } |
9611 | |
9612 | isl::set basic_set::project_out_all_params() const |
9613 | { |
9614 | return isl::set(*this).project_out_all_params(); |
9615 | } |
9616 | |
9617 | isl::set basic_set::project_out_param(const isl::id &id) const |
9618 | { |
9619 | return isl::set(*this).project_out_param(id); |
9620 | } |
9621 | |
9622 | isl::set basic_set::project_out_param(const std::string &id) const |
9623 | { |
9624 | return this->project_out_param(id: isl::id(ctx(), id)); |
9625 | } |
9626 | |
9627 | isl::set basic_set::project_out_param(const isl::id_list &list) const |
9628 | { |
9629 | return isl::set(*this).project_out_param(list); |
9630 | } |
9631 | |
9632 | isl::pw_multi_aff basic_set::pw_multi_aff_on_domain(const isl::multi_val &mv) const |
9633 | { |
9634 | return isl::set(*this).pw_multi_aff_on_domain(mv); |
9635 | } |
9636 | |
9637 | isl::set basic_set::remove_dims(isl::dim type, unsigned int first, unsigned int n) const |
9638 | { |
9639 | return isl::set(*this).remove_dims(type, first, n); |
9640 | } |
9641 | |
9642 | isl::set basic_set::remove_divs() const |
9643 | { |
9644 | return isl::set(*this).remove_divs(); |
9645 | } |
9646 | |
9647 | isl::set basic_set::remove_redundancies() const |
9648 | { |
9649 | return isl::set(*this).remove_redundancies(); |
9650 | } |
9651 | |
9652 | isl::set basic_set::reset_tuple_id() const |
9653 | { |
9654 | return isl::set(*this).reset_tuple_id(); |
9655 | } |
9656 | |
9657 | isl::basic_set basic_set::sample() const |
9658 | { |
9659 | auto res = isl_basic_set_sample(bset: copy()); |
9660 | return manage(ptr: res); |
9661 | } |
9662 | |
9663 | isl::point basic_set::sample_point() const |
9664 | { |
9665 | auto res = isl_basic_set_sample_point(bset: copy()); |
9666 | return manage(ptr: res); |
9667 | } |
9668 | |
9669 | isl::set basic_set::set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const |
9670 | { |
9671 | return isl::set(*this).set_dim_id(type, pos, id); |
9672 | } |
9673 | |
9674 | isl::set basic_set::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const |
9675 | { |
9676 | return this->set_dim_id(type, pos, id: isl::id(ctx(), id)); |
9677 | } |
9678 | |
9679 | isl::set_list basic_set::set_list() const |
9680 | { |
9681 | return isl::set(*this).set_list(); |
9682 | } |
9683 | |
9684 | isl::set basic_set::set_tuple_id(const isl::id &id) const |
9685 | { |
9686 | return isl::set(*this).set_tuple_id(id); |
9687 | } |
9688 | |
9689 | isl::set basic_set::set_tuple_id(const std::string &id) const |
9690 | { |
9691 | return this->set_tuple_id(isl::id(ctx(), id)); |
9692 | } |
9693 | |
9694 | isl::fixed_box basic_set::simple_fixed_box_hull() const |
9695 | { |
9696 | return isl::set(*this).simple_fixed_box_hull(); |
9697 | } |
9698 | |
9699 | isl::basic_set basic_set::simple_hull() const |
9700 | { |
9701 | return isl::set(*this).simple_hull(); |
9702 | } |
9703 | |
9704 | isl::space basic_set::space() const |
9705 | { |
9706 | auto res = isl_basic_set_get_space(bset: get()); |
9707 | return manage(ptr: res); |
9708 | } |
9709 | |
9710 | isl::space basic_set::get_space() const |
9711 | { |
9712 | return space(); |
9713 | } |
9714 | |
9715 | isl::val basic_set::stride(int pos) const |
9716 | { |
9717 | return isl::set(*this).stride(pos); |
9718 | } |
9719 | |
9720 | isl::set basic_set::subtract(const isl::set &set2) const |
9721 | { |
9722 | return isl::set(*this).subtract(set2); |
9723 | } |
9724 | |
9725 | isl::union_set basic_set::subtract(const isl::union_set &uset2) const |
9726 | { |
9727 | return isl::set(*this).subtract(uset2); |
9728 | } |
9729 | |
9730 | isl::basic_set_list basic_set::to_list() const |
9731 | { |
9732 | auto res = isl_basic_set_to_list(el: copy()); |
9733 | return manage(ptr: res); |
9734 | } |
9735 | |
9736 | isl::set basic_set::to_set() const |
9737 | { |
9738 | auto res = isl_basic_set_to_set(bset: copy()); |
9739 | return manage(ptr: res); |
9740 | } |
9741 | |
9742 | isl::union_set basic_set::to_union_set() const |
9743 | { |
9744 | return isl::set(*this).to_union_set(); |
9745 | } |
9746 | |
9747 | isl::map basic_set::translation() const |
9748 | { |
9749 | return isl::set(*this).translation(); |
9750 | } |
9751 | |
9752 | class size basic_set::tuple_dim() const |
9753 | { |
9754 | return isl::set(*this).tuple_dim(); |
9755 | } |
9756 | |
9757 | isl::id basic_set::tuple_id() const |
9758 | { |
9759 | return isl::set(*this).tuple_id(); |
9760 | } |
9761 | |
9762 | std::string basic_set::tuple_name() const |
9763 | { |
9764 | return isl::set(*this).tuple_name(); |
9765 | } |
9766 | |
9767 | isl::set basic_set::unbind_params(const isl::multi_id &tuple) const |
9768 | { |
9769 | return isl::set(*this).unbind_params(tuple); |
9770 | } |
9771 | |
9772 | isl::map basic_set::unbind_params_insert_domain(const isl::multi_id &domain) const |
9773 | { |
9774 | return isl::set(*this).unbind_params_insert_domain(domain); |
9775 | } |
9776 | |
9777 | isl::set basic_set::unite(isl::basic_set bset2) const |
9778 | { |
9779 | auto res = isl_basic_set_union(bset1: copy(), bset2: bset2.release()); |
9780 | return manage(ptr: res); |
9781 | } |
9782 | |
9783 | isl::set basic_set::unite(const isl::set &set2) const |
9784 | { |
9785 | return isl::set(*this).unite(set2); |
9786 | } |
9787 | |
9788 | isl::union_set basic_set::unite(const isl::union_set &uset2) const |
9789 | { |
9790 | return isl::set(*this).unite(uset2); |
9791 | } |
9792 | |
9793 | isl::set basic_set::unite(const isl::point &bset2) const |
9794 | { |
9795 | return this->unite(bset2: isl::basic_set(bset2)); |
9796 | } |
9797 | |
9798 | isl::basic_set basic_set::universe(isl::space space) |
9799 | { |
9800 | auto res = isl_basic_set_universe(space: space.release()); |
9801 | return manage(ptr: res); |
9802 | } |
9803 | |
9804 | isl::basic_set basic_set::unshifted_simple_hull() const |
9805 | { |
9806 | return isl::set(*this).unshifted_simple_hull(); |
9807 | } |
9808 | |
9809 | isl::map basic_set::unwrap() const |
9810 | { |
9811 | return isl::set(*this).unwrap(); |
9812 | } |
9813 | |
9814 | isl::set basic_set::upper_bound(const isl::multi_pw_aff &upper) const |
9815 | { |
9816 | return isl::set(*this).upper_bound(upper); |
9817 | } |
9818 | |
9819 | isl::set basic_set::upper_bound(const isl::multi_val &upper) const |
9820 | { |
9821 | return isl::set(*this).upper_bound(upper); |
9822 | } |
9823 | |
9824 | isl::set basic_set::upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const |
9825 | { |
9826 | return isl::set(*this).upper_bound_val(type, pos, value); |
9827 | } |
9828 | |
9829 | isl::set basic_set::upper_bound_val(isl::dim type, unsigned int pos, long value) const |
9830 | { |
9831 | return this->upper_bound_val(type, pos, value: isl::val(ctx(), value)); |
9832 | } |
9833 | |
9834 | inline std::ostream &operator<<(std::ostream &os, const basic_set &obj) |
9835 | { |
9836 | char *str = isl_basic_set_to_str(bset: obj.get()); |
9837 | if (!str) { |
9838 | os.setstate(std::ios_base::badbit); |
9839 | return os; |
9840 | } |
9841 | os << str; |
9842 | free(ptr: str); |
9843 | return os; |
9844 | } |
9845 | |
9846 | // implementations for isl::basic_set_list |
9847 | basic_set_list manage(__isl_take isl_basic_set_list *ptr) { |
9848 | return basic_set_list(ptr); |
9849 | } |
9850 | basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr) { |
9851 | ptr = isl_basic_set_list_copy(list: ptr); |
9852 | return basic_set_list(ptr); |
9853 | } |
9854 | |
9855 | basic_set_list::basic_set_list() |
9856 | : ptr(nullptr) {} |
9857 | |
9858 | basic_set_list::basic_set_list(const basic_set_list &obj) |
9859 | : ptr(nullptr) |
9860 | { |
9861 | ptr = obj.copy(); |
9862 | } |
9863 | |
9864 | basic_set_list::basic_set_list(__isl_take isl_basic_set_list *ptr) |
9865 | : ptr(ptr) {} |
9866 | |
9867 | basic_set_list::basic_set_list(isl::ctx ctx, int n) |
9868 | { |
9869 | auto res = isl_basic_set_list_alloc(ctx: ctx.release(), n); |
9870 | ptr = res; |
9871 | } |
9872 | |
9873 | basic_set_list::basic_set_list(isl::basic_set el) |
9874 | { |
9875 | auto res = isl_basic_set_list_from_basic_set(el: el.release()); |
9876 | ptr = res; |
9877 | } |
9878 | |
9879 | basic_set_list &basic_set_list::operator=(basic_set_list obj) { |
9880 | std::swap(a&: this->ptr, b&: obj.ptr); |
9881 | return *this; |
9882 | } |
9883 | |
9884 | basic_set_list::~basic_set_list() { |
9885 | if (ptr) |
9886 | isl_basic_set_list_free(list: ptr); |
9887 | } |
9888 | |
9889 | __isl_give isl_basic_set_list *basic_set_list::copy() const & { |
9890 | return isl_basic_set_list_copy(list: ptr); |
9891 | } |
9892 | |
9893 | __isl_keep isl_basic_set_list *basic_set_list::get() const { |
9894 | return ptr; |
9895 | } |
9896 | |
9897 | __isl_give isl_basic_set_list *basic_set_list::release() { |
9898 | isl_basic_set_list *tmp = ptr; |
9899 | ptr = nullptr; |
9900 | return tmp; |
9901 | } |
9902 | |
9903 | bool basic_set_list::is_null() const { |
9904 | return ptr == nullptr; |
9905 | } |
9906 | |
9907 | isl::ctx basic_set_list::ctx() const { |
9908 | return isl::ctx(isl_basic_set_list_get_ctx(list: ptr)); |
9909 | } |
9910 | |
9911 | isl::basic_set_list basic_set_list::add(isl::basic_set el) const |
9912 | { |
9913 | auto res = isl_basic_set_list_add(list: copy(), el: el.release()); |
9914 | return manage(ptr: res); |
9915 | } |
9916 | |
9917 | isl::basic_set basic_set_list::at(int index) const |
9918 | { |
9919 | auto res = isl_basic_set_list_get_at(list: get(), index); |
9920 | return manage(ptr: res); |
9921 | } |
9922 | |
9923 | isl::basic_set basic_set_list::get_at(int index) const |
9924 | { |
9925 | return at(index); |
9926 | } |
9927 | |
9928 | isl::basic_set_list basic_set_list::clear() const |
9929 | { |
9930 | auto res = isl_basic_set_list_clear(list: copy()); |
9931 | return manage(ptr: res); |
9932 | } |
9933 | |
9934 | isl::basic_set_list basic_set_list::concat(isl::basic_set_list list2) const |
9935 | { |
9936 | auto res = isl_basic_set_list_concat(list1: copy(), list2: list2.release()); |
9937 | return manage(ptr: res); |
9938 | } |
9939 | |
9940 | isl::basic_set_list basic_set_list::drop(unsigned int first, unsigned int n) const |
9941 | { |
9942 | auto res = isl_basic_set_list_drop(list: copy(), first, n); |
9943 | return manage(ptr: res); |
9944 | } |
9945 | |
9946 | stat basic_set_list::foreach(const std::function<stat(isl::basic_set)> &fn) const |
9947 | { |
9948 | struct fn_data { |
9949 | std::function<stat(isl::basic_set)> func; |
9950 | } fn_data = { .func: fn }; |
9951 | auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat { |
9952 | auto *data = static_cast<struct fn_data *>(arg_1); |
9953 | auto ret = (data->func)(manage(ptr: arg_0)); |
9954 | return ret.release(); |
9955 | }; |
9956 | auto res = isl_basic_set_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
9957 | return manage(val: res); |
9958 | } |
9959 | |
9960 | isl::basic_set_list basic_set_list::insert(unsigned int pos, isl::basic_set el) const |
9961 | { |
9962 | auto res = isl_basic_set_list_insert(list: copy(), pos, el: el.release()); |
9963 | return manage(ptr: res); |
9964 | } |
9965 | |
9966 | class size basic_set_list::size() const |
9967 | { |
9968 | auto res = isl_basic_set_list_size(list: get()); |
9969 | return manage(val: res); |
9970 | } |
9971 | |
9972 | inline std::ostream &operator<<(std::ostream &os, const basic_set_list &obj) |
9973 | { |
9974 | char *str = isl_basic_set_list_to_str(list: obj.get()); |
9975 | if (!str) { |
9976 | os.setstate(std::ios_base::badbit); |
9977 | return os; |
9978 | } |
9979 | os << str; |
9980 | free(ptr: str); |
9981 | return os; |
9982 | } |
9983 | |
9984 | // implementations for isl::constraint |
9985 | constraint manage(__isl_take isl_constraint *ptr) { |
9986 | return constraint(ptr); |
9987 | } |
9988 | constraint manage_copy(__isl_keep isl_constraint *ptr) { |
9989 | ptr = isl_constraint_copy(c: ptr); |
9990 | return constraint(ptr); |
9991 | } |
9992 | |
9993 | constraint::constraint() |
9994 | : ptr(nullptr) {} |
9995 | |
9996 | constraint::constraint(const constraint &obj) |
9997 | : ptr(nullptr) |
9998 | { |
9999 | ptr = obj.copy(); |
10000 | } |
10001 | |
10002 | constraint::constraint(__isl_take isl_constraint *ptr) |
10003 | : ptr(ptr) {} |
10004 | |
10005 | constraint &constraint::operator=(constraint obj) { |
10006 | std::swap(a&: this->ptr, b&: obj.ptr); |
10007 | return *this; |
10008 | } |
10009 | |
10010 | constraint::~constraint() { |
10011 | if (ptr) |
10012 | isl_constraint_free(c: ptr); |
10013 | } |
10014 | |
10015 | __isl_give isl_constraint *constraint::copy() const & { |
10016 | return isl_constraint_copy(c: ptr); |
10017 | } |
10018 | |
10019 | __isl_keep isl_constraint *constraint::get() const { |
10020 | return ptr; |
10021 | } |
10022 | |
10023 | __isl_give isl_constraint *constraint::release() { |
10024 | isl_constraint *tmp = ptr; |
10025 | ptr = nullptr; |
10026 | return tmp; |
10027 | } |
10028 | |
10029 | bool constraint::is_null() const { |
10030 | return ptr == nullptr; |
10031 | } |
10032 | |
10033 | isl::ctx constraint::ctx() const { |
10034 | return isl::ctx(isl_constraint_get_ctx(c: ptr)); |
10035 | } |
10036 | |
10037 | isl::constraint constraint::alloc_equality(isl::local_space ls) |
10038 | { |
10039 | auto res = isl_constraint_alloc_equality(ls: ls.release()); |
10040 | return manage(ptr: res); |
10041 | } |
10042 | |
10043 | isl::constraint constraint::alloc_inequality(isl::local_space ls) |
10044 | { |
10045 | auto res = isl_constraint_alloc_inequality(ls: ls.release()); |
10046 | return manage(ptr: res); |
10047 | } |
10048 | |
10049 | isl::constraint constraint::set_coefficient_si(isl::dim type, int pos, int v) const |
10050 | { |
10051 | auto res = isl_constraint_set_coefficient_si(constraint: copy(), type: static_cast<enum isl_dim_type>(type), pos, v); |
10052 | return manage(ptr: res); |
10053 | } |
10054 | |
10055 | isl::constraint constraint::set_constant_si(int v) const |
10056 | { |
10057 | auto res = isl_constraint_set_constant_si(constraint: copy(), v); |
10058 | return manage(ptr: res); |
10059 | } |
10060 | |
10061 | isl::constraint constraint::set_constant_val(isl::val v) const |
10062 | { |
10063 | auto res = isl_constraint_set_constant_val(constraint: copy(), v: v.release()); |
10064 | return manage(ptr: res); |
10065 | } |
10066 | |
10067 | isl::constraint constraint::set_constant_val(long v) const |
10068 | { |
10069 | return this->set_constant_val(isl::val(ctx(), v)); |
10070 | } |
10071 | |
10072 | // implementations for isl::fixed_box |
10073 | fixed_box manage(__isl_take isl_fixed_box *ptr) { |
10074 | return fixed_box(ptr); |
10075 | } |
10076 | fixed_box manage_copy(__isl_keep isl_fixed_box *ptr) { |
10077 | ptr = isl_fixed_box_copy(box: ptr); |
10078 | return fixed_box(ptr); |
10079 | } |
10080 | |
10081 | fixed_box::fixed_box() |
10082 | : ptr(nullptr) {} |
10083 | |
10084 | fixed_box::fixed_box(const fixed_box &obj) |
10085 | : ptr(nullptr) |
10086 | { |
10087 | ptr = obj.copy(); |
10088 | } |
10089 | |
10090 | fixed_box::fixed_box(__isl_take isl_fixed_box *ptr) |
10091 | : ptr(ptr) {} |
10092 | |
10093 | fixed_box &fixed_box::operator=(fixed_box obj) { |
10094 | std::swap(a&: this->ptr, b&: obj.ptr); |
10095 | return *this; |
10096 | } |
10097 | |
10098 | fixed_box::~fixed_box() { |
10099 | if (ptr) |
10100 | isl_fixed_box_free(box: ptr); |
10101 | } |
10102 | |
10103 | __isl_give isl_fixed_box *fixed_box::copy() const & { |
10104 | return isl_fixed_box_copy(box: ptr); |
10105 | } |
10106 | |
10107 | __isl_keep isl_fixed_box *fixed_box::get() const { |
10108 | return ptr; |
10109 | } |
10110 | |
10111 | __isl_give isl_fixed_box *fixed_box::release() { |
10112 | isl_fixed_box *tmp = ptr; |
10113 | ptr = nullptr; |
10114 | return tmp; |
10115 | } |
10116 | |
10117 | bool fixed_box::is_null() const { |
10118 | return ptr == nullptr; |
10119 | } |
10120 | |
10121 | isl::ctx fixed_box::ctx() const { |
10122 | return isl::ctx(isl_fixed_box_get_ctx(box: ptr)); |
10123 | } |
10124 | |
10125 | boolean fixed_box::is_valid() const |
10126 | { |
10127 | auto res = isl_fixed_box_is_valid(box: get()); |
10128 | return manage(val: res); |
10129 | } |
10130 | |
10131 | isl::multi_aff fixed_box::offset() const |
10132 | { |
10133 | auto res = isl_fixed_box_get_offset(box: get()); |
10134 | return manage(ptr: res); |
10135 | } |
10136 | |
10137 | isl::multi_aff fixed_box::get_offset() const |
10138 | { |
10139 | return offset(); |
10140 | } |
10141 | |
10142 | isl::multi_val fixed_box::size() const |
10143 | { |
10144 | auto res = isl_fixed_box_get_size(box: get()); |
10145 | return manage(ptr: res); |
10146 | } |
10147 | |
10148 | isl::multi_val fixed_box::get_size() const |
10149 | { |
10150 | return size(); |
10151 | } |
10152 | |
10153 | isl::space fixed_box::space() const |
10154 | { |
10155 | auto res = isl_fixed_box_get_space(box: get()); |
10156 | return manage(ptr: res); |
10157 | } |
10158 | |
10159 | isl::space fixed_box::get_space() const |
10160 | { |
10161 | return space(); |
10162 | } |
10163 | |
10164 | inline std::ostream &operator<<(std::ostream &os, const fixed_box &obj) |
10165 | { |
10166 | char *str = isl_fixed_box_to_str(box: obj.get()); |
10167 | if (!str) { |
10168 | os.setstate(std::ios_base::badbit); |
10169 | return os; |
10170 | } |
10171 | os << str; |
10172 | free(ptr: str); |
10173 | return os; |
10174 | } |
10175 | |
10176 | // implementations for isl::id |
10177 | id manage(__isl_take isl_id *ptr) { |
10178 | return id(ptr); |
10179 | } |
10180 | id manage_copy(__isl_keep isl_id *ptr) { |
10181 | ptr = isl_id_copy(id: ptr); |
10182 | return id(ptr); |
10183 | } |
10184 | |
10185 | id::id() |
10186 | : ptr(nullptr) {} |
10187 | |
10188 | id::id(const id &obj) |
10189 | : ptr(nullptr) |
10190 | { |
10191 | ptr = obj.copy(); |
10192 | } |
10193 | |
10194 | id::id(__isl_take isl_id *ptr) |
10195 | : ptr(ptr) {} |
10196 | |
10197 | id::id(isl::ctx ctx, const std::string &str) |
10198 | { |
10199 | auto res = isl_id_read_from_str(ctx: ctx.release(), str: str.c_str()); |
10200 | ptr = res; |
10201 | } |
10202 | |
10203 | id &id::operator=(id obj) { |
10204 | std::swap(a&: this->ptr, b&: obj.ptr); |
10205 | return *this; |
10206 | } |
10207 | |
10208 | id::~id() { |
10209 | if (ptr) |
10210 | isl_id_free(id: ptr); |
10211 | } |
10212 | |
10213 | __isl_give isl_id *id::copy() const & { |
10214 | return isl_id_copy(id: ptr); |
10215 | } |
10216 | |
10217 | __isl_keep isl_id *id::get() const { |
10218 | return ptr; |
10219 | } |
10220 | |
10221 | __isl_give isl_id *id::release() { |
10222 | isl_id *tmp = ptr; |
10223 | ptr = nullptr; |
10224 | return tmp; |
10225 | } |
10226 | |
10227 | bool id::is_null() const { |
10228 | return ptr == nullptr; |
10229 | } |
10230 | |
10231 | isl::ctx id::ctx() const { |
10232 | return isl::ctx(isl_id_get_ctx(id: ptr)); |
10233 | } |
10234 | |
10235 | isl::id id::alloc(isl::ctx ctx, const std::string &name, void * user) |
10236 | { |
10237 | auto res = isl_id_alloc(ctx: ctx.release(), name: name.c_str(), user); |
10238 | return manage(ptr: res); |
10239 | } |
10240 | |
10241 | std::string id::name() const |
10242 | { |
10243 | auto res = isl_id_get_name(id: get()); |
10244 | std::string tmp(res); |
10245 | return tmp; |
10246 | } |
10247 | |
10248 | std::string id::get_name() const |
10249 | { |
10250 | return name(); |
10251 | } |
10252 | |
10253 | isl::id_list id::to_list() const |
10254 | { |
10255 | auto res = isl_id_to_list(el: copy()); |
10256 | return manage(ptr: res); |
10257 | } |
10258 | |
10259 | void * id::user() const |
10260 | { |
10261 | auto res = isl_id_get_user(id: get()); |
10262 | return res; |
10263 | } |
10264 | |
10265 | void * id::get_user() const |
10266 | { |
10267 | return user(); |
10268 | } |
10269 | |
10270 | inline std::ostream &operator<<(std::ostream &os, const id &obj) |
10271 | { |
10272 | char *str = isl_id_to_str(id: obj.get()); |
10273 | if (!str) { |
10274 | os.setstate(std::ios_base::badbit); |
10275 | return os; |
10276 | } |
10277 | os << str; |
10278 | free(ptr: str); |
10279 | return os; |
10280 | } |
10281 | |
10282 | // implementations for isl::id_list |
10283 | id_list manage(__isl_take isl_id_list *ptr) { |
10284 | return id_list(ptr); |
10285 | } |
10286 | id_list manage_copy(__isl_keep isl_id_list *ptr) { |
10287 | ptr = isl_id_list_copy(list: ptr); |
10288 | return id_list(ptr); |
10289 | } |
10290 | |
10291 | id_list::id_list() |
10292 | : ptr(nullptr) {} |
10293 | |
10294 | id_list::id_list(const id_list &obj) |
10295 | : ptr(nullptr) |
10296 | { |
10297 | ptr = obj.copy(); |
10298 | } |
10299 | |
10300 | id_list::id_list(__isl_take isl_id_list *ptr) |
10301 | : ptr(ptr) {} |
10302 | |
10303 | id_list::id_list(isl::ctx ctx, int n) |
10304 | { |
10305 | auto res = isl_id_list_alloc(ctx: ctx.release(), n); |
10306 | ptr = res; |
10307 | } |
10308 | |
10309 | id_list::id_list(isl::id el) |
10310 | { |
10311 | auto res = isl_id_list_from_id(el: el.release()); |
10312 | ptr = res; |
10313 | } |
10314 | |
10315 | id_list::id_list(isl::ctx ctx, const std::string &str) |
10316 | { |
10317 | auto res = isl_id_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
10318 | ptr = res; |
10319 | } |
10320 | |
10321 | id_list &id_list::operator=(id_list obj) { |
10322 | std::swap(a&: this->ptr, b&: obj.ptr); |
10323 | return *this; |
10324 | } |
10325 | |
10326 | id_list::~id_list() { |
10327 | if (ptr) |
10328 | isl_id_list_free(list: ptr); |
10329 | } |
10330 | |
10331 | __isl_give isl_id_list *id_list::copy() const & { |
10332 | return isl_id_list_copy(list: ptr); |
10333 | } |
10334 | |
10335 | __isl_keep isl_id_list *id_list::get() const { |
10336 | return ptr; |
10337 | } |
10338 | |
10339 | __isl_give isl_id_list *id_list::release() { |
10340 | isl_id_list *tmp = ptr; |
10341 | ptr = nullptr; |
10342 | return tmp; |
10343 | } |
10344 | |
10345 | bool id_list::is_null() const { |
10346 | return ptr == nullptr; |
10347 | } |
10348 | |
10349 | isl::ctx id_list::ctx() const { |
10350 | return isl::ctx(isl_id_list_get_ctx(list: ptr)); |
10351 | } |
10352 | |
10353 | isl::id_list id_list::add(isl::id el) const |
10354 | { |
10355 | auto res = isl_id_list_add(list: copy(), el: el.release()); |
10356 | return manage(ptr: res); |
10357 | } |
10358 | |
10359 | isl::id_list id_list::add(const std::string &el) const |
10360 | { |
10361 | return this->add(el: isl::id(ctx(), el)); |
10362 | } |
10363 | |
10364 | isl::id id_list::at(int index) const |
10365 | { |
10366 | auto res = isl_id_list_get_at(list: get(), index); |
10367 | return manage(ptr: res); |
10368 | } |
10369 | |
10370 | isl::id id_list::get_at(int index) const |
10371 | { |
10372 | return at(index); |
10373 | } |
10374 | |
10375 | isl::id_list id_list::clear() const |
10376 | { |
10377 | auto res = isl_id_list_clear(list: copy()); |
10378 | return manage(ptr: res); |
10379 | } |
10380 | |
10381 | isl::id_list id_list::concat(isl::id_list list2) const |
10382 | { |
10383 | auto res = isl_id_list_concat(list1: copy(), list2: list2.release()); |
10384 | return manage(ptr: res); |
10385 | } |
10386 | |
10387 | isl::id_list id_list::drop(unsigned int first, unsigned int n) const |
10388 | { |
10389 | auto res = isl_id_list_drop(list: copy(), first, n); |
10390 | return manage(ptr: res); |
10391 | } |
10392 | |
10393 | stat id_list::foreach(const std::function<stat(isl::id)> &fn) const |
10394 | { |
10395 | struct fn_data { |
10396 | std::function<stat(isl::id)> func; |
10397 | } fn_data = { .func: fn }; |
10398 | auto fn_lambda = [](isl_id *arg_0, void *arg_1) -> isl_stat { |
10399 | auto *data = static_cast<struct fn_data *>(arg_1); |
10400 | auto ret = (data->func)(manage(ptr: arg_0)); |
10401 | return ret.release(); |
10402 | }; |
10403 | auto res = isl_id_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
10404 | return manage(val: res); |
10405 | } |
10406 | |
10407 | isl::id_list id_list::insert(unsigned int pos, isl::id el) const |
10408 | { |
10409 | auto res = isl_id_list_insert(list: copy(), pos, el: el.release()); |
10410 | return manage(ptr: res); |
10411 | } |
10412 | |
10413 | isl::id_list id_list::insert(unsigned int pos, const std::string &el) const |
10414 | { |
10415 | return this->insert(pos, el: isl::id(ctx(), el)); |
10416 | } |
10417 | |
10418 | class size id_list::size() const |
10419 | { |
10420 | auto res = isl_id_list_size(list: get()); |
10421 | return manage(val: res); |
10422 | } |
10423 | |
10424 | inline std::ostream &operator<<(std::ostream &os, const id_list &obj) |
10425 | { |
10426 | char *str = isl_id_list_to_str(list: obj.get()); |
10427 | if (!str) { |
10428 | os.setstate(std::ios_base::badbit); |
10429 | return os; |
10430 | } |
10431 | os << str; |
10432 | free(ptr: str); |
10433 | return os; |
10434 | } |
10435 | |
10436 | // implementations for isl::id_to_ast_expr |
10437 | id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr) { |
10438 | return id_to_ast_expr(ptr); |
10439 | } |
10440 | id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr) { |
10441 | ptr = isl_id_to_ast_expr_copy(hmap: ptr); |
10442 | return id_to_ast_expr(ptr); |
10443 | } |
10444 | |
10445 | id_to_ast_expr::id_to_ast_expr() |
10446 | : ptr(nullptr) {} |
10447 | |
10448 | id_to_ast_expr::id_to_ast_expr(const id_to_ast_expr &obj) |
10449 | : ptr(nullptr) |
10450 | { |
10451 | ptr = obj.copy(); |
10452 | } |
10453 | |
10454 | id_to_ast_expr::id_to_ast_expr(__isl_take isl_id_to_ast_expr *ptr) |
10455 | : ptr(ptr) {} |
10456 | |
10457 | id_to_ast_expr &id_to_ast_expr::operator=(id_to_ast_expr obj) { |
10458 | std::swap(a&: this->ptr, b&: obj.ptr); |
10459 | return *this; |
10460 | } |
10461 | |
10462 | id_to_ast_expr::~id_to_ast_expr() { |
10463 | if (ptr) |
10464 | isl_id_to_ast_expr_free(hmap: ptr); |
10465 | } |
10466 | |
10467 | __isl_give isl_id_to_ast_expr *id_to_ast_expr::copy() const & { |
10468 | return isl_id_to_ast_expr_copy(hmap: ptr); |
10469 | } |
10470 | |
10471 | __isl_keep isl_id_to_ast_expr *id_to_ast_expr::get() const { |
10472 | return ptr; |
10473 | } |
10474 | |
10475 | __isl_give isl_id_to_ast_expr *id_to_ast_expr::release() { |
10476 | isl_id_to_ast_expr *tmp = ptr; |
10477 | ptr = nullptr; |
10478 | return tmp; |
10479 | } |
10480 | |
10481 | bool id_to_ast_expr::is_null() const { |
10482 | return ptr == nullptr; |
10483 | } |
10484 | |
10485 | isl::ctx id_to_ast_expr::ctx() const { |
10486 | return isl::ctx(isl_id_to_ast_expr_get_ctx(hmap: ptr)); |
10487 | } |
10488 | |
10489 | isl::id_to_ast_expr id_to_ast_expr::alloc(isl::ctx ctx, int min_size) |
10490 | { |
10491 | auto res = isl_id_to_ast_expr_alloc(ctx: ctx.release(), min_size); |
10492 | return manage(ptr: res); |
10493 | } |
10494 | |
10495 | isl::id_to_ast_expr id_to_ast_expr::set(isl::id key, isl::ast_expr val) const |
10496 | { |
10497 | auto res = isl_id_to_ast_expr_set(hmap: copy(), key: key.release(), val: val.release()); |
10498 | return manage(ptr: res); |
10499 | } |
10500 | |
10501 | isl::id_to_ast_expr id_to_ast_expr::set(const std::string &key, const isl::ast_expr &val) const |
10502 | { |
10503 | return this->set(key: isl::id(ctx(), key), val); |
10504 | } |
10505 | |
10506 | // implementations for isl::local_space |
10507 | local_space manage(__isl_take isl_local_space *ptr) { |
10508 | return local_space(ptr); |
10509 | } |
10510 | local_space manage_copy(__isl_keep isl_local_space *ptr) { |
10511 | ptr = isl_local_space_copy(ls: ptr); |
10512 | return local_space(ptr); |
10513 | } |
10514 | |
10515 | local_space::local_space() |
10516 | : ptr(nullptr) {} |
10517 | |
10518 | local_space::local_space(const local_space &obj) |
10519 | : ptr(nullptr) |
10520 | { |
10521 | ptr = obj.copy(); |
10522 | } |
10523 | |
10524 | local_space::local_space(__isl_take isl_local_space *ptr) |
10525 | : ptr(ptr) {} |
10526 | |
10527 | local_space::local_space(isl::space space) |
10528 | { |
10529 | auto res = isl_local_space_from_space(space: space.release()); |
10530 | ptr = res; |
10531 | } |
10532 | |
10533 | local_space &local_space::operator=(local_space obj) { |
10534 | std::swap(a&: this->ptr, b&: obj.ptr); |
10535 | return *this; |
10536 | } |
10537 | |
10538 | local_space::~local_space() { |
10539 | if (ptr) |
10540 | isl_local_space_free(ls: ptr); |
10541 | } |
10542 | |
10543 | __isl_give isl_local_space *local_space::copy() const & { |
10544 | return isl_local_space_copy(ls: ptr); |
10545 | } |
10546 | |
10547 | __isl_keep isl_local_space *local_space::get() const { |
10548 | return ptr; |
10549 | } |
10550 | |
10551 | __isl_give isl_local_space *local_space::release() { |
10552 | isl_local_space *tmp = ptr; |
10553 | ptr = nullptr; |
10554 | return tmp; |
10555 | } |
10556 | |
10557 | bool local_space::is_null() const { |
10558 | return ptr == nullptr; |
10559 | } |
10560 | |
10561 | isl::ctx local_space::ctx() const { |
10562 | return isl::ctx(isl_local_space_get_ctx(ls: ptr)); |
10563 | } |
10564 | |
10565 | // implementations for isl::map |
10566 | map manage(__isl_take isl_map *ptr) { |
10567 | return map(ptr); |
10568 | } |
10569 | map manage_copy(__isl_keep isl_map *ptr) { |
10570 | ptr = isl_map_copy(map: ptr); |
10571 | return map(ptr); |
10572 | } |
10573 | |
10574 | map::map() |
10575 | : ptr(nullptr) {} |
10576 | |
10577 | map::map(const map &obj) |
10578 | : ptr(nullptr) |
10579 | { |
10580 | ptr = obj.copy(); |
10581 | } |
10582 | |
10583 | map::map(__isl_take isl_map *ptr) |
10584 | : ptr(ptr) {} |
10585 | |
10586 | map::map(isl::basic_map bmap) |
10587 | { |
10588 | auto res = isl_map_from_basic_map(bmap: bmap.release()); |
10589 | ptr = res; |
10590 | } |
10591 | |
10592 | map::map(isl::ctx ctx, const std::string &str) |
10593 | { |
10594 | auto res = isl_map_read_from_str(ctx: ctx.release(), str: str.c_str()); |
10595 | ptr = res; |
10596 | } |
10597 | |
10598 | map &map::operator=(map obj) { |
10599 | std::swap(a&: this->ptr, b&: obj.ptr); |
10600 | return *this; |
10601 | } |
10602 | |
10603 | map::~map() { |
10604 | if (ptr) |
10605 | isl_map_free(map: ptr); |
10606 | } |
10607 | |
10608 | __isl_give isl_map *map::copy() const & { |
10609 | return isl_map_copy(map: ptr); |
10610 | } |
10611 | |
10612 | __isl_keep isl_map *map::get() const { |
10613 | return ptr; |
10614 | } |
10615 | |
10616 | __isl_give isl_map *map::release() { |
10617 | isl_map *tmp = ptr; |
10618 | ptr = nullptr; |
10619 | return tmp; |
10620 | } |
10621 | |
10622 | bool map::is_null() const { |
10623 | return ptr == nullptr; |
10624 | } |
10625 | |
10626 | isl::ctx map::ctx() const { |
10627 | return isl::ctx(isl_map_get_ctx(map: ptr)); |
10628 | } |
10629 | |
10630 | isl::map map::add_constraint(isl::constraint constraint) const |
10631 | { |
10632 | auto res = isl_map_add_constraint(map: copy(), constraint: constraint.release()); |
10633 | return manage(ptr: res); |
10634 | } |
10635 | |
10636 | isl::map map::add_dims(isl::dim type, unsigned int n) const |
10637 | { |
10638 | auto res = isl_map_add_dims(map: copy(), type: static_cast<enum isl_dim_type>(type), n); |
10639 | return manage(ptr: res); |
10640 | } |
10641 | |
10642 | isl::basic_map map::affine_hull() const |
10643 | { |
10644 | auto res = isl_map_affine_hull(map: copy()); |
10645 | return manage(ptr: res); |
10646 | } |
10647 | |
10648 | isl::map map::align_params(isl::space model) const |
10649 | { |
10650 | auto res = isl_map_align_params(map: copy(), model: model.release()); |
10651 | return manage(ptr: res); |
10652 | } |
10653 | |
10654 | isl::map map::apply_domain(isl::map map2) const |
10655 | { |
10656 | auto res = isl_map_apply_domain(map1: copy(), map2: map2.release()); |
10657 | return manage(ptr: res); |
10658 | } |
10659 | |
10660 | isl::union_map map::apply_domain(const isl::union_map &umap2) const |
10661 | { |
10662 | return isl::union_map(*this).apply_domain(umap2); |
10663 | } |
10664 | |
10665 | isl::map map::apply_domain(const isl::basic_map &map2) const |
10666 | { |
10667 | return this->apply_domain(map2: isl::map(map2)); |
10668 | } |
10669 | |
10670 | isl::map map::apply_range(isl::map map2) const |
10671 | { |
10672 | auto res = isl_map_apply_range(map1: copy(), map2: map2.release()); |
10673 | return manage(ptr: res); |
10674 | } |
10675 | |
10676 | isl::union_map map::apply_range(const isl::union_map &umap2) const |
10677 | { |
10678 | return isl::union_map(*this).apply_range(umap2); |
10679 | } |
10680 | |
10681 | isl::map map::apply_range(const isl::basic_map &map2) const |
10682 | { |
10683 | return this->apply_range(map2: isl::map(map2)); |
10684 | } |
10685 | |
10686 | isl::map map::as_map() const |
10687 | { |
10688 | return isl::union_map(*this).as_map(); |
10689 | } |
10690 | |
10691 | isl::multi_union_pw_aff map::as_multi_union_pw_aff() const |
10692 | { |
10693 | return isl::union_map(*this).as_multi_union_pw_aff(); |
10694 | } |
10695 | |
10696 | isl::pw_multi_aff map::as_pw_multi_aff() const |
10697 | { |
10698 | auto res = isl_map_as_pw_multi_aff(map: copy()); |
10699 | return manage(ptr: res); |
10700 | } |
10701 | |
10702 | isl::union_pw_multi_aff map::as_union_pw_multi_aff() const |
10703 | { |
10704 | return isl::union_map(*this).as_union_pw_multi_aff(); |
10705 | } |
10706 | |
10707 | isl::basic_map_list map::basic_map_list() const |
10708 | { |
10709 | auto res = isl_map_get_basic_map_list(map: get()); |
10710 | return manage(ptr: res); |
10711 | } |
10712 | |
10713 | isl::basic_map_list map::get_basic_map_list() const |
10714 | { |
10715 | return basic_map_list(); |
10716 | } |
10717 | |
10718 | isl::set map::bind_domain(isl::multi_id tuple) const |
10719 | { |
10720 | auto res = isl_map_bind_domain(map: copy(), tuple: tuple.release()); |
10721 | return manage(ptr: res); |
10722 | } |
10723 | |
10724 | isl::set map::bind_range(isl::multi_id tuple) const |
10725 | { |
10726 | auto res = isl_map_bind_range(map: copy(), tuple: tuple.release()); |
10727 | return manage(ptr: res); |
10728 | } |
10729 | |
10730 | boolean map::can_curry() const |
10731 | { |
10732 | auto res = isl_map_can_curry(map: get()); |
10733 | return manage(val: res); |
10734 | } |
10735 | |
10736 | isl::map map::coalesce() const |
10737 | { |
10738 | auto res = isl_map_coalesce(map: copy()); |
10739 | return manage(ptr: res); |
10740 | } |
10741 | |
10742 | isl::map map::complement() const |
10743 | { |
10744 | auto res = isl_map_complement(map: copy()); |
10745 | return manage(ptr: res); |
10746 | } |
10747 | |
10748 | isl::union_map map::compute_divs() const |
10749 | { |
10750 | return isl::union_map(*this).compute_divs(); |
10751 | } |
10752 | |
10753 | isl::map map::curry() const |
10754 | { |
10755 | auto res = isl_map_curry(map: copy()); |
10756 | return manage(ptr: res); |
10757 | } |
10758 | |
10759 | isl::set map::deltas() const |
10760 | { |
10761 | auto res = isl_map_deltas(map: copy()); |
10762 | return manage(ptr: res); |
10763 | } |
10764 | |
10765 | isl::map map::detect_equalities() const |
10766 | { |
10767 | auto res = isl_map_detect_equalities(map: copy()); |
10768 | return manage(ptr: res); |
10769 | } |
10770 | |
10771 | class size map::dim(isl::dim type) const |
10772 | { |
10773 | auto res = isl_map_dim(map: get(), type: static_cast<enum isl_dim_type>(type)); |
10774 | return manage(val: res); |
10775 | } |
10776 | |
10777 | isl::pw_aff map::dim_max(int pos) const |
10778 | { |
10779 | auto res = isl_map_dim_max(map: copy(), pos); |
10780 | return manage(ptr: res); |
10781 | } |
10782 | |
10783 | isl::pw_aff map::dim_min(int pos) const |
10784 | { |
10785 | auto res = isl_map_dim_min(map: copy(), pos); |
10786 | return manage(ptr: res); |
10787 | } |
10788 | |
10789 | isl::set map::domain() const |
10790 | { |
10791 | auto res = isl_map_domain(bmap: copy()); |
10792 | return manage(ptr: res); |
10793 | } |
10794 | |
10795 | isl::map map::domain_factor_domain() const |
10796 | { |
10797 | auto res = isl_map_domain_factor_domain(map: copy()); |
10798 | return manage(ptr: res); |
10799 | } |
10800 | |
10801 | isl::map map::domain_factor_range() const |
10802 | { |
10803 | auto res = isl_map_domain_factor_range(map: copy()); |
10804 | return manage(ptr: res); |
10805 | } |
10806 | |
10807 | isl::map map::domain_map() const |
10808 | { |
10809 | auto res = isl_map_domain_map(map: copy()); |
10810 | return manage(ptr: res); |
10811 | } |
10812 | |
10813 | isl::union_pw_multi_aff map::domain_map_union_pw_multi_aff() const |
10814 | { |
10815 | return isl::union_map(*this).domain_map_union_pw_multi_aff(); |
10816 | } |
10817 | |
10818 | isl::map map::domain_product(isl::map map2) const |
10819 | { |
10820 | auto res = isl_map_domain_product(map1: copy(), map2: map2.release()); |
10821 | return manage(ptr: res); |
10822 | } |
10823 | |
10824 | isl::union_map map::domain_product(const isl::union_map &umap2) const |
10825 | { |
10826 | return isl::union_map(*this).domain_product(umap2); |
10827 | } |
10828 | |
10829 | isl::map map::domain_product(const isl::basic_map &map2) const |
10830 | { |
10831 | return this->domain_product(map2: isl::map(map2)); |
10832 | } |
10833 | |
10834 | class size map::domain_tuple_dim() const |
10835 | { |
10836 | auto res = isl_map_domain_tuple_dim(map: get()); |
10837 | return manage(val: res); |
10838 | } |
10839 | |
10840 | isl::id map::domain_tuple_id() const |
10841 | { |
10842 | auto res = isl_map_get_domain_tuple_id(map: get()); |
10843 | return manage(ptr: res); |
10844 | } |
10845 | |
10846 | isl::id map::get_domain_tuple_id() const |
10847 | { |
10848 | return domain_tuple_id(); |
10849 | } |
10850 | |
10851 | isl::map map::empty(isl::space space) |
10852 | { |
10853 | auto res = isl_map_empty(space: space.release()); |
10854 | return manage(ptr: res); |
10855 | } |
10856 | |
10857 | isl::map map::eq_at(isl::multi_pw_aff mpa) const |
10858 | { |
10859 | auto res = isl_map_eq_at_multi_pw_aff(map: copy(), mpa: mpa.release()); |
10860 | return manage(ptr: res); |
10861 | } |
10862 | |
10863 | isl::union_map map::eq_at(const isl::multi_union_pw_aff &mupa) const |
10864 | { |
10865 | return isl::union_map(*this).eq_at(mupa); |
10866 | } |
10867 | |
10868 | isl::map map::eq_at(const isl::aff &mpa) const |
10869 | { |
10870 | return this->eq_at(mpa: isl::multi_pw_aff(mpa)); |
10871 | } |
10872 | |
10873 | isl::map map::eq_at(const isl::multi_aff &mpa) const |
10874 | { |
10875 | return this->eq_at(mpa: isl::multi_pw_aff(mpa)); |
10876 | } |
10877 | |
10878 | isl::map map::eq_at(const isl::pw_aff &mpa) const |
10879 | { |
10880 | return this->eq_at(mpa: isl::multi_pw_aff(mpa)); |
10881 | } |
10882 | |
10883 | isl::map map::eq_at(const isl::pw_multi_aff &mpa) const |
10884 | { |
10885 | return this->eq_at(mpa: isl::multi_pw_aff(mpa)); |
10886 | } |
10887 | |
10888 | isl::map map::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const |
10889 | { |
10890 | auto res = isl_map_equate(map: copy(), type1: static_cast<enum isl_dim_type>(type1), pos1, type2: static_cast<enum isl_dim_type>(type2), pos2); |
10891 | return manage(ptr: res); |
10892 | } |
10893 | |
10894 | boolean map::every_map(const std::function<boolean(isl::map)> &test) const |
10895 | { |
10896 | return isl::union_map(*this).every_map(test); |
10897 | } |
10898 | |
10899 | isl::map map::(const isl::space &space) const |
10900 | { |
10901 | return isl::union_map(*this).extract_map(space); |
10902 | } |
10903 | |
10904 | isl::map map::factor_domain() const |
10905 | { |
10906 | auto res = isl_map_factor_domain(map: copy()); |
10907 | return manage(ptr: res); |
10908 | } |
10909 | |
10910 | isl::map map::factor_range() const |
10911 | { |
10912 | auto res = isl_map_factor_range(map: copy()); |
10913 | return manage(ptr: res); |
10914 | } |
10915 | |
10916 | isl::map map::fix_si(isl::dim type, unsigned int pos, int value) const |
10917 | { |
10918 | auto res = isl_map_fix_si(map: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
10919 | return manage(ptr: res); |
10920 | } |
10921 | |
10922 | isl::union_map map::fixed_power(const isl::val &exp) const |
10923 | { |
10924 | return isl::union_map(*this).fixed_power(exp); |
10925 | } |
10926 | |
10927 | isl::union_map map::fixed_power(long exp) const |
10928 | { |
10929 | return this->fixed_power(exp: isl::val(ctx(), exp)); |
10930 | } |
10931 | |
10932 | isl::map map::flat_range_product(isl::map map2) const |
10933 | { |
10934 | auto res = isl_map_flat_range_product(map1: copy(), map2: map2.release()); |
10935 | return manage(ptr: res); |
10936 | } |
10937 | |
10938 | isl::union_map map::flat_range_product(const isl::union_map &umap2) const |
10939 | { |
10940 | return isl::union_map(*this).flat_range_product(umap2); |
10941 | } |
10942 | |
10943 | isl::map map::flat_range_product(const isl::basic_map &map2) const |
10944 | { |
10945 | return this->flat_range_product(map2: isl::map(map2)); |
10946 | } |
10947 | |
10948 | isl::map map::flatten() const |
10949 | { |
10950 | auto res = isl_map_flatten(map: copy()); |
10951 | return manage(ptr: res); |
10952 | } |
10953 | |
10954 | isl::map map::flatten_domain() const |
10955 | { |
10956 | auto res = isl_map_flatten_domain(map: copy()); |
10957 | return manage(ptr: res); |
10958 | } |
10959 | |
10960 | isl::map map::flatten_range() const |
10961 | { |
10962 | auto res = isl_map_flatten_range(map: copy()); |
10963 | return manage(ptr: res); |
10964 | } |
10965 | |
10966 | isl::map map::floordiv_val(isl::val d) const |
10967 | { |
10968 | auto res = isl_map_floordiv_val(map: copy(), d: d.release()); |
10969 | return manage(ptr: res); |
10970 | } |
10971 | |
10972 | isl::map map::floordiv_val(long d) const |
10973 | { |
10974 | return this->floordiv_val(d: isl::val(ctx(), d)); |
10975 | } |
10976 | |
10977 | stat map::foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const |
10978 | { |
10979 | struct fn_data { |
10980 | std::function<stat(isl::basic_map)> func; |
10981 | } fn_data = { .func: fn }; |
10982 | auto fn_lambda = [](isl_basic_map *arg_0, void *arg_1) -> isl_stat { |
10983 | auto *data = static_cast<struct fn_data *>(arg_1); |
10984 | auto ret = (data->func)(manage(ptr: arg_0)); |
10985 | return ret.release(); |
10986 | }; |
10987 | auto res = isl_map_foreach_basic_map(map: get(), fn: fn_lambda, user: &fn_data); |
10988 | return manage(val: res); |
10989 | } |
10990 | |
10991 | stat map::foreach_map(const std::function<stat(isl::map)> &fn) const |
10992 | { |
10993 | return isl::union_map(*this).foreach_map(fn); |
10994 | } |
10995 | |
10996 | isl::map map::from_aff(isl::aff aff) |
10997 | { |
10998 | auto res = isl_map_from_aff(aff: aff.release()); |
10999 | return manage(ptr: res); |
11000 | } |
11001 | |
11002 | isl::map map::from_domain(isl::set set) |
11003 | { |
11004 | auto res = isl_map_from_domain(set: set.release()); |
11005 | return manage(ptr: res); |
11006 | } |
11007 | |
11008 | isl::map map::from_domain_and_range(isl::set domain, isl::set range) |
11009 | { |
11010 | auto res = isl_map_from_domain_and_range(domain: domain.release(), range: range.release()); |
11011 | return manage(ptr: res); |
11012 | } |
11013 | |
11014 | isl::map map::from_multi_aff(isl::multi_aff maff) |
11015 | { |
11016 | auto res = isl_map_from_multi_aff(maff: maff.release()); |
11017 | return manage(ptr: res); |
11018 | } |
11019 | |
11020 | isl::map map::from_pw_aff(isl::pw_aff pwaff) |
11021 | { |
11022 | auto res = isl_map_from_pw_aff(pwaff: pwaff.release()); |
11023 | return manage(ptr: res); |
11024 | } |
11025 | |
11026 | isl::map map::from_range(isl::set set) |
11027 | { |
11028 | auto res = isl_map_from_range(set: set.release()); |
11029 | return manage(ptr: res); |
11030 | } |
11031 | |
11032 | isl::map map::from_union_map(isl::union_map umap) |
11033 | { |
11034 | auto res = isl_map_from_union_map(umap: umap.release()); |
11035 | return manage(ptr: res); |
11036 | } |
11037 | |
11038 | isl::map map::gist(isl::map context) const |
11039 | { |
11040 | auto res = isl_map_gist(map: copy(), context: context.release()); |
11041 | return manage(ptr: res); |
11042 | } |
11043 | |
11044 | isl::union_map map::gist(const isl::union_map &context) const |
11045 | { |
11046 | return isl::union_map(*this).gist(context); |
11047 | } |
11048 | |
11049 | isl::map map::gist(const isl::basic_map &context) const |
11050 | { |
11051 | return this->gist(context: isl::map(context)); |
11052 | } |
11053 | |
11054 | isl::map map::gist_domain(isl::set context) const |
11055 | { |
11056 | auto res = isl_map_gist_domain(map: copy(), context: context.release()); |
11057 | return manage(ptr: res); |
11058 | } |
11059 | |
11060 | isl::union_map map::gist_domain(const isl::union_set &uset) const |
11061 | { |
11062 | return isl::union_map(*this).gist_domain(uset); |
11063 | } |
11064 | |
11065 | isl::map map::gist_domain(const isl::basic_set &context) const |
11066 | { |
11067 | return this->gist_domain(context: isl::set(context)); |
11068 | } |
11069 | |
11070 | isl::map map::gist_domain(const isl::point &context) const |
11071 | { |
11072 | return this->gist_domain(context: isl::set(context)); |
11073 | } |
11074 | |
11075 | isl::map map::gist_params(isl::set context) const |
11076 | { |
11077 | auto res = isl_map_gist_params(map: copy(), context: context.release()); |
11078 | return manage(ptr: res); |
11079 | } |
11080 | |
11081 | isl::union_map map::gist_range(const isl::union_set &uset) const |
11082 | { |
11083 | return isl::union_map(*this).gist_range(uset); |
11084 | } |
11085 | |
11086 | boolean map::has_domain_tuple_id() const |
11087 | { |
11088 | auto res = isl_map_has_domain_tuple_id(map: get()); |
11089 | return manage(val: res); |
11090 | } |
11091 | |
11092 | boolean map::has_equal_space(const isl::map &map2) const |
11093 | { |
11094 | auto res = isl_map_has_equal_space(map1: get(), map2: map2.get()); |
11095 | return manage(val: res); |
11096 | } |
11097 | |
11098 | boolean map::has_range_tuple_id() const |
11099 | { |
11100 | auto res = isl_map_has_range_tuple_id(map: get()); |
11101 | return manage(val: res); |
11102 | } |
11103 | |
11104 | boolean map::has_tuple_id(isl::dim type) const |
11105 | { |
11106 | auto res = isl_map_has_tuple_id(map: get(), type: static_cast<enum isl_dim_type>(type)); |
11107 | return manage(val: res); |
11108 | } |
11109 | |
11110 | boolean map::has_tuple_name(isl::dim type) const |
11111 | { |
11112 | auto res = isl_map_has_tuple_name(map: get(), type: static_cast<enum isl_dim_type>(type)); |
11113 | return manage(val: res); |
11114 | } |
11115 | |
11116 | isl::map map::identity(isl::space space) |
11117 | { |
11118 | auto res = isl_map_identity(space: space.release()); |
11119 | return manage(ptr: res); |
11120 | } |
11121 | |
11122 | isl::map map::intersect(isl::map map2) const |
11123 | { |
11124 | auto res = isl_map_intersect(map1: copy(), map2: map2.release()); |
11125 | return manage(ptr: res); |
11126 | } |
11127 | |
11128 | isl::union_map map::intersect(const isl::union_map &umap2) const |
11129 | { |
11130 | return isl::union_map(*this).intersect(umap2); |
11131 | } |
11132 | |
11133 | isl::map map::intersect(const isl::basic_map &map2) const |
11134 | { |
11135 | return this->intersect(map2: isl::map(map2)); |
11136 | } |
11137 | |
11138 | isl::map map::intersect_domain(isl::set set) const |
11139 | { |
11140 | auto res = isl_map_intersect_domain(map: copy(), set: set.release()); |
11141 | return manage(ptr: res); |
11142 | } |
11143 | |
11144 | isl::union_map map::intersect_domain(const isl::space &space) const |
11145 | { |
11146 | return isl::union_map(*this).intersect_domain(space); |
11147 | } |
11148 | |
11149 | isl::union_map map::intersect_domain(const isl::union_set &uset) const |
11150 | { |
11151 | return isl::union_map(*this).intersect_domain(uset); |
11152 | } |
11153 | |
11154 | isl::map map::intersect_domain(const isl::basic_set &set) const |
11155 | { |
11156 | return this->intersect_domain(set: isl::set(set)); |
11157 | } |
11158 | |
11159 | isl::map map::intersect_domain(const isl::point &set) const |
11160 | { |
11161 | return this->intersect_domain(set: isl::set(set)); |
11162 | } |
11163 | |
11164 | isl::map map::intersect_domain_factor_domain(isl::map factor) const |
11165 | { |
11166 | auto res = isl_map_intersect_domain_factor_domain(map: copy(), factor: factor.release()); |
11167 | return manage(ptr: res); |
11168 | } |
11169 | |
11170 | isl::union_map map::intersect_domain_factor_domain(const isl::union_map &factor) const |
11171 | { |
11172 | return isl::union_map(*this).intersect_domain_factor_domain(factor); |
11173 | } |
11174 | |
11175 | isl::map map::intersect_domain_factor_domain(const isl::basic_map &factor) const |
11176 | { |
11177 | return this->intersect_domain_factor_domain(factor: isl::map(factor)); |
11178 | } |
11179 | |
11180 | isl::map map::intersect_domain_factor_range(isl::map factor) const |
11181 | { |
11182 | auto res = isl_map_intersect_domain_factor_range(map: copy(), factor: factor.release()); |
11183 | return manage(ptr: res); |
11184 | } |
11185 | |
11186 | isl::union_map map::intersect_domain_factor_range(const isl::union_map &factor) const |
11187 | { |
11188 | return isl::union_map(*this).intersect_domain_factor_range(factor); |
11189 | } |
11190 | |
11191 | isl::map map::intersect_domain_factor_range(const isl::basic_map &factor) const |
11192 | { |
11193 | return this->intersect_domain_factor_range(factor: isl::map(factor)); |
11194 | } |
11195 | |
11196 | isl::map map::intersect_params(isl::set params) const |
11197 | { |
11198 | auto res = isl_map_intersect_params(map: copy(), params: params.release()); |
11199 | return manage(ptr: res); |
11200 | } |
11201 | |
11202 | isl::map map::intersect_range(isl::set set) const |
11203 | { |
11204 | auto res = isl_map_intersect_range(map: copy(), set: set.release()); |
11205 | return manage(ptr: res); |
11206 | } |
11207 | |
11208 | isl::union_map map::intersect_range(const isl::space &space) const |
11209 | { |
11210 | return isl::union_map(*this).intersect_range(space); |
11211 | } |
11212 | |
11213 | isl::union_map map::intersect_range(const isl::union_set &uset) const |
11214 | { |
11215 | return isl::union_map(*this).intersect_range(uset); |
11216 | } |
11217 | |
11218 | isl::map map::intersect_range(const isl::basic_set &set) const |
11219 | { |
11220 | return this->intersect_range(set: isl::set(set)); |
11221 | } |
11222 | |
11223 | isl::map map::intersect_range(const isl::point &set) const |
11224 | { |
11225 | return this->intersect_range(set: isl::set(set)); |
11226 | } |
11227 | |
11228 | isl::map map::intersect_range_factor_domain(isl::map factor) const |
11229 | { |
11230 | auto res = isl_map_intersect_range_factor_domain(map: copy(), factor: factor.release()); |
11231 | return manage(ptr: res); |
11232 | } |
11233 | |
11234 | isl::union_map map::intersect_range_factor_domain(const isl::union_map &factor) const |
11235 | { |
11236 | return isl::union_map(*this).intersect_range_factor_domain(factor); |
11237 | } |
11238 | |
11239 | isl::map map::intersect_range_factor_domain(const isl::basic_map &factor) const |
11240 | { |
11241 | return this->intersect_range_factor_domain(factor: isl::map(factor)); |
11242 | } |
11243 | |
11244 | isl::map map::intersect_range_factor_range(isl::map factor) const |
11245 | { |
11246 | auto res = isl_map_intersect_range_factor_range(map: copy(), factor: factor.release()); |
11247 | return manage(ptr: res); |
11248 | } |
11249 | |
11250 | isl::union_map map::intersect_range_factor_range(const isl::union_map &factor) const |
11251 | { |
11252 | return isl::union_map(*this).intersect_range_factor_range(factor); |
11253 | } |
11254 | |
11255 | isl::map map::intersect_range_factor_range(const isl::basic_map &factor) const |
11256 | { |
11257 | return this->intersect_range_factor_range(factor: isl::map(factor)); |
11258 | } |
11259 | |
11260 | boolean map::involves_dims(isl::dim type, unsigned int first, unsigned int n) const |
11261 | { |
11262 | auto res = isl_map_involves_dims(map: get(), type: static_cast<enum isl_dim_type>(type), first, n); |
11263 | return manage(val: res); |
11264 | } |
11265 | |
11266 | boolean map::is_bijective() const |
11267 | { |
11268 | auto res = isl_map_is_bijective(map: get()); |
11269 | return manage(val: res); |
11270 | } |
11271 | |
11272 | boolean map::is_disjoint(const isl::map &map2) const |
11273 | { |
11274 | auto res = isl_map_is_disjoint(map1: get(), map2: map2.get()); |
11275 | return manage(val: res); |
11276 | } |
11277 | |
11278 | boolean map::is_disjoint(const isl::union_map &umap2) const |
11279 | { |
11280 | return isl::union_map(*this).is_disjoint(umap2); |
11281 | } |
11282 | |
11283 | boolean map::is_disjoint(const isl::basic_map &map2) const |
11284 | { |
11285 | return this->is_disjoint(map2: isl::map(map2)); |
11286 | } |
11287 | |
11288 | boolean map::is_empty() const |
11289 | { |
11290 | auto res = isl_map_is_empty(map: get()); |
11291 | return manage(val: res); |
11292 | } |
11293 | |
11294 | boolean map::is_equal(const isl::map &map2) const |
11295 | { |
11296 | auto res = isl_map_is_equal(map1: get(), map2: map2.get()); |
11297 | return manage(val: res); |
11298 | } |
11299 | |
11300 | boolean map::is_equal(const isl::union_map &umap2) const |
11301 | { |
11302 | return isl::union_map(*this).is_equal(umap2); |
11303 | } |
11304 | |
11305 | boolean map::is_equal(const isl::basic_map &map2) const |
11306 | { |
11307 | return this->is_equal(map2: isl::map(map2)); |
11308 | } |
11309 | |
11310 | boolean map::is_injective() const |
11311 | { |
11312 | auto res = isl_map_is_injective(map: get()); |
11313 | return manage(val: res); |
11314 | } |
11315 | |
11316 | boolean map::is_single_valued() const |
11317 | { |
11318 | auto res = isl_map_is_single_valued(map: get()); |
11319 | return manage(val: res); |
11320 | } |
11321 | |
11322 | boolean map::is_strict_subset(const isl::map &map2) const |
11323 | { |
11324 | auto res = isl_map_is_strict_subset(map1: get(), map2: map2.get()); |
11325 | return manage(val: res); |
11326 | } |
11327 | |
11328 | boolean map::is_strict_subset(const isl::union_map &umap2) const |
11329 | { |
11330 | return isl::union_map(*this).is_strict_subset(umap2); |
11331 | } |
11332 | |
11333 | boolean map::is_strict_subset(const isl::basic_map &map2) const |
11334 | { |
11335 | return this->is_strict_subset(map2: isl::map(map2)); |
11336 | } |
11337 | |
11338 | boolean map::is_subset(const isl::map &map2) const |
11339 | { |
11340 | auto res = isl_map_is_subset(map1: get(), map2: map2.get()); |
11341 | return manage(val: res); |
11342 | } |
11343 | |
11344 | boolean map::is_subset(const isl::union_map &umap2) const |
11345 | { |
11346 | return isl::union_map(*this).is_subset(umap2); |
11347 | } |
11348 | |
11349 | boolean map::is_subset(const isl::basic_map &map2) const |
11350 | { |
11351 | return this->is_subset(map2: isl::map(map2)); |
11352 | } |
11353 | |
11354 | boolean map::isa_map() const |
11355 | { |
11356 | return isl::union_map(*this).isa_map(); |
11357 | } |
11358 | |
11359 | isl::map map::lex_ge(isl::space set_space) |
11360 | { |
11361 | auto res = isl_map_lex_ge(set_space: set_space.release()); |
11362 | return manage(ptr: res); |
11363 | } |
11364 | |
11365 | isl::map map::lex_ge_at(isl::multi_pw_aff mpa) const |
11366 | { |
11367 | auto res = isl_map_lex_ge_at_multi_pw_aff(map: copy(), mpa: mpa.release()); |
11368 | return manage(ptr: res); |
11369 | } |
11370 | |
11371 | isl::map map::lex_gt(isl::space set_space) |
11372 | { |
11373 | auto res = isl_map_lex_gt(set_space: set_space.release()); |
11374 | return manage(ptr: res); |
11375 | } |
11376 | |
11377 | isl::map map::lex_gt_at(isl::multi_pw_aff mpa) const |
11378 | { |
11379 | auto res = isl_map_lex_gt_at_multi_pw_aff(map: copy(), mpa: mpa.release()); |
11380 | return manage(ptr: res); |
11381 | } |
11382 | |
11383 | isl::map map::lex_le(isl::space set_space) |
11384 | { |
11385 | auto res = isl_map_lex_le(set_space: set_space.release()); |
11386 | return manage(ptr: res); |
11387 | } |
11388 | |
11389 | isl::map map::lex_le_at(isl::multi_pw_aff mpa) const |
11390 | { |
11391 | auto res = isl_map_lex_le_at_multi_pw_aff(map: copy(), mpa: mpa.release()); |
11392 | return manage(ptr: res); |
11393 | } |
11394 | |
11395 | isl::map map::lex_lt(isl::space set_space) |
11396 | { |
11397 | auto res = isl_map_lex_lt(set_space: set_space.release()); |
11398 | return manage(ptr: res); |
11399 | } |
11400 | |
11401 | isl::map map::lex_lt_at(isl::multi_pw_aff mpa) const |
11402 | { |
11403 | auto res = isl_map_lex_lt_at_multi_pw_aff(map: copy(), mpa: mpa.release()); |
11404 | return manage(ptr: res); |
11405 | } |
11406 | |
11407 | isl::map map::lexmax() const |
11408 | { |
11409 | auto res = isl_map_lexmax(map: copy()); |
11410 | return manage(ptr: res); |
11411 | } |
11412 | |
11413 | isl::pw_multi_aff map::lexmax_pw_multi_aff() const |
11414 | { |
11415 | auto res = isl_map_lexmax_pw_multi_aff(map: copy()); |
11416 | return manage(ptr: res); |
11417 | } |
11418 | |
11419 | isl::map map::lexmin() const |
11420 | { |
11421 | auto res = isl_map_lexmin(map: copy()); |
11422 | return manage(ptr: res); |
11423 | } |
11424 | |
11425 | isl::pw_multi_aff map::lexmin_pw_multi_aff() const |
11426 | { |
11427 | auto res = isl_map_lexmin_pw_multi_aff(map: copy()); |
11428 | return manage(ptr: res); |
11429 | } |
11430 | |
11431 | isl::map map::lower_bound(isl::multi_pw_aff lower) const |
11432 | { |
11433 | auto res = isl_map_lower_bound_multi_pw_aff(map: copy(), lower: lower.release()); |
11434 | return manage(ptr: res); |
11435 | } |
11436 | |
11437 | isl::map map::lower_bound_si(isl::dim type, unsigned int pos, int value) const |
11438 | { |
11439 | auto res = isl_map_lower_bound_si(map: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
11440 | return manage(ptr: res); |
11441 | } |
11442 | |
11443 | isl::map_list map::map_list() const |
11444 | { |
11445 | return isl::union_map(*this).map_list(); |
11446 | } |
11447 | |
11448 | isl::multi_pw_aff map::max_multi_pw_aff() const |
11449 | { |
11450 | auto res = isl_map_max_multi_pw_aff(map: copy()); |
11451 | return manage(ptr: res); |
11452 | } |
11453 | |
11454 | isl::multi_pw_aff map::min_multi_pw_aff() const |
11455 | { |
11456 | auto res = isl_map_min_multi_pw_aff(map: copy()); |
11457 | return manage(ptr: res); |
11458 | } |
11459 | |
11460 | isl::map map::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const |
11461 | { |
11462 | auto res = isl_map_move_dims(map: copy(), dst_type: static_cast<enum isl_dim_type>(dst_type), dst_pos, src_type: static_cast<enum isl_dim_type>(src_type), src_pos, n); |
11463 | return manage(ptr: res); |
11464 | } |
11465 | |
11466 | class size map::n_basic_map() const |
11467 | { |
11468 | auto res = isl_map_n_basic_map(map: get()); |
11469 | return manage(val: res); |
11470 | } |
11471 | |
11472 | isl::map map::order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const |
11473 | { |
11474 | auto res = isl_map_order_lt(map: copy(), type1: static_cast<enum isl_dim_type>(type1), pos1, type2: static_cast<enum isl_dim_type>(type2), pos2); |
11475 | return manage(ptr: res); |
11476 | } |
11477 | |
11478 | isl::set map::params() const |
11479 | { |
11480 | return isl::union_map(*this).params(); |
11481 | } |
11482 | |
11483 | isl::basic_map map::polyhedral_hull() const |
11484 | { |
11485 | auto res = isl_map_polyhedral_hull(map: copy()); |
11486 | return manage(ptr: res); |
11487 | } |
11488 | |
11489 | isl::map map::preimage_domain(isl::multi_aff ma) const |
11490 | { |
11491 | auto res = isl_map_preimage_domain_multi_aff(map: copy(), ma: ma.release()); |
11492 | return manage(ptr: res); |
11493 | } |
11494 | |
11495 | isl::map map::preimage_domain(isl::multi_pw_aff mpa) const |
11496 | { |
11497 | auto res = isl_map_preimage_domain_multi_pw_aff(map: copy(), mpa: mpa.release()); |
11498 | return manage(ptr: res); |
11499 | } |
11500 | |
11501 | isl::map map::preimage_domain(isl::pw_multi_aff pma) const |
11502 | { |
11503 | auto res = isl_map_preimage_domain_pw_multi_aff(map: copy(), pma: pma.release()); |
11504 | return manage(ptr: res); |
11505 | } |
11506 | |
11507 | isl::union_map map::preimage_domain(const isl::union_pw_multi_aff &upma) const |
11508 | { |
11509 | return isl::union_map(*this).preimage_domain(upma); |
11510 | } |
11511 | |
11512 | isl::map map::preimage_range(isl::multi_aff ma) const |
11513 | { |
11514 | auto res = isl_map_preimage_range_multi_aff(map: copy(), ma: ma.release()); |
11515 | return manage(ptr: res); |
11516 | } |
11517 | |
11518 | isl::map map::preimage_range(isl::pw_multi_aff pma) const |
11519 | { |
11520 | auto res = isl_map_preimage_range_pw_multi_aff(map: copy(), pma: pma.release()); |
11521 | return manage(ptr: res); |
11522 | } |
11523 | |
11524 | isl::union_map map::preimage_range(const isl::union_pw_multi_aff &upma) const |
11525 | { |
11526 | return isl::union_map(*this).preimage_range(upma); |
11527 | } |
11528 | |
11529 | isl::map map::product(isl::map map2) const |
11530 | { |
11531 | auto res = isl_map_product(map1: copy(), map2: map2.release()); |
11532 | return manage(ptr: res); |
11533 | } |
11534 | |
11535 | isl::union_map map::product(const isl::union_map &umap2) const |
11536 | { |
11537 | return isl::union_map(*this).product(umap2); |
11538 | } |
11539 | |
11540 | isl::map map::product(const isl::basic_map &map2) const |
11541 | { |
11542 | return this->product(map2: isl::map(map2)); |
11543 | } |
11544 | |
11545 | isl::map map::project_out(isl::dim type, unsigned int first, unsigned int n) const |
11546 | { |
11547 | auto res = isl_map_project_out(map: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
11548 | return manage(ptr: res); |
11549 | } |
11550 | |
11551 | isl::map map::project_out_all_params() const |
11552 | { |
11553 | auto res = isl_map_project_out_all_params(map: copy()); |
11554 | return manage(ptr: res); |
11555 | } |
11556 | |
11557 | isl::set map::range() const |
11558 | { |
11559 | auto res = isl_map_range(map: copy()); |
11560 | return manage(ptr: res); |
11561 | } |
11562 | |
11563 | isl::map map::range_factor_domain() const |
11564 | { |
11565 | auto res = isl_map_range_factor_domain(map: copy()); |
11566 | return manage(ptr: res); |
11567 | } |
11568 | |
11569 | isl::map map::range_factor_range() const |
11570 | { |
11571 | auto res = isl_map_range_factor_range(map: copy()); |
11572 | return manage(ptr: res); |
11573 | } |
11574 | |
11575 | isl::fixed_box map::range_lattice_tile() const |
11576 | { |
11577 | auto res = isl_map_get_range_lattice_tile(map: get()); |
11578 | return manage(ptr: res); |
11579 | } |
11580 | |
11581 | isl::fixed_box map::get_range_lattice_tile() const |
11582 | { |
11583 | return range_lattice_tile(); |
11584 | } |
11585 | |
11586 | isl::map map::range_map() const |
11587 | { |
11588 | auto res = isl_map_range_map(map: copy()); |
11589 | return manage(ptr: res); |
11590 | } |
11591 | |
11592 | isl::map map::range_product(isl::map map2) const |
11593 | { |
11594 | auto res = isl_map_range_product(map1: copy(), map2: map2.release()); |
11595 | return manage(ptr: res); |
11596 | } |
11597 | |
11598 | isl::union_map map::range_product(const isl::union_map &umap2) const |
11599 | { |
11600 | return isl::union_map(*this).range_product(umap2); |
11601 | } |
11602 | |
11603 | isl::map map::range_product(const isl::basic_map &map2) const |
11604 | { |
11605 | return this->range_product(map2: isl::map(map2)); |
11606 | } |
11607 | |
11608 | isl::map map::range_reverse() const |
11609 | { |
11610 | auto res = isl_map_range_reverse(map: copy()); |
11611 | return manage(ptr: res); |
11612 | } |
11613 | |
11614 | isl::fixed_box map::range_simple_fixed_box_hull() const |
11615 | { |
11616 | auto res = isl_map_get_range_simple_fixed_box_hull(map: get()); |
11617 | return manage(ptr: res); |
11618 | } |
11619 | |
11620 | isl::fixed_box map::get_range_simple_fixed_box_hull() const |
11621 | { |
11622 | return range_simple_fixed_box_hull(); |
11623 | } |
11624 | |
11625 | class size map::range_tuple_dim() const |
11626 | { |
11627 | auto res = isl_map_range_tuple_dim(map: get()); |
11628 | return manage(val: res); |
11629 | } |
11630 | |
11631 | isl::id map::range_tuple_id() const |
11632 | { |
11633 | auto res = isl_map_get_range_tuple_id(map: get()); |
11634 | return manage(ptr: res); |
11635 | } |
11636 | |
11637 | isl::id map::get_range_tuple_id() const |
11638 | { |
11639 | return range_tuple_id(); |
11640 | } |
11641 | |
11642 | isl::map map::reverse() const |
11643 | { |
11644 | auto res = isl_map_reverse(map: copy()); |
11645 | return manage(ptr: res); |
11646 | } |
11647 | |
11648 | isl::basic_map map::sample() const |
11649 | { |
11650 | auto res = isl_map_sample(map: copy()); |
11651 | return manage(ptr: res); |
11652 | } |
11653 | |
11654 | isl::map map::set_domain_tuple(isl::id id) const |
11655 | { |
11656 | auto res = isl_map_set_domain_tuple_id(map: copy(), id: id.release()); |
11657 | return manage(ptr: res); |
11658 | } |
11659 | |
11660 | isl::map map::set_domain_tuple(const std::string &id) const |
11661 | { |
11662 | return this->set_domain_tuple(isl::id(ctx(), id)); |
11663 | } |
11664 | |
11665 | isl::map map::set_range_tuple(isl::id id) const |
11666 | { |
11667 | auto res = isl_map_set_range_tuple_id(map: copy(), id: id.release()); |
11668 | return manage(ptr: res); |
11669 | } |
11670 | |
11671 | isl::map map::set_range_tuple(const std::string &id) const |
11672 | { |
11673 | return this->set_range_tuple(isl::id(ctx(), id)); |
11674 | } |
11675 | |
11676 | isl::map map::set_tuple_id(isl::dim type, isl::id id) const |
11677 | { |
11678 | auto res = isl_map_set_tuple_id(map: copy(), type: static_cast<enum isl_dim_type>(type), id: id.release()); |
11679 | return manage(ptr: res); |
11680 | } |
11681 | |
11682 | isl::map map::set_tuple_id(isl::dim type, const std::string &id) const |
11683 | { |
11684 | return this->set_tuple_id(type, id: isl::id(ctx(), id)); |
11685 | } |
11686 | |
11687 | isl::space map::space() const |
11688 | { |
11689 | auto res = isl_map_get_space(map: get()); |
11690 | return manage(ptr: res); |
11691 | } |
11692 | |
11693 | isl::space map::get_space() const |
11694 | { |
11695 | return space(); |
11696 | } |
11697 | |
11698 | isl::map map::subtract(isl::map map2) const |
11699 | { |
11700 | auto res = isl_map_subtract(map1: copy(), map2: map2.release()); |
11701 | return manage(ptr: res); |
11702 | } |
11703 | |
11704 | isl::union_map map::subtract(const isl::union_map &umap2) const |
11705 | { |
11706 | return isl::union_map(*this).subtract(umap2); |
11707 | } |
11708 | |
11709 | isl::map map::subtract(const isl::basic_map &map2) const |
11710 | { |
11711 | return this->subtract(map2: isl::map(map2)); |
11712 | } |
11713 | |
11714 | isl::union_map map::subtract_domain(const isl::union_set &dom) const |
11715 | { |
11716 | return isl::union_map(*this).subtract_domain(dom); |
11717 | } |
11718 | |
11719 | isl::union_map map::subtract_range(const isl::union_set &dom) const |
11720 | { |
11721 | return isl::union_map(*this).subtract_range(dom); |
11722 | } |
11723 | |
11724 | isl::map map::sum(isl::map map2) const |
11725 | { |
11726 | auto res = isl_map_sum(map1: copy(), map2: map2.release()); |
11727 | return manage(ptr: res); |
11728 | } |
11729 | |
11730 | isl::map_list map::to_list() const |
11731 | { |
11732 | auto res = isl_map_to_list(el: copy()); |
11733 | return manage(ptr: res); |
11734 | } |
11735 | |
11736 | isl::union_map map::to_union_map() const |
11737 | { |
11738 | auto res = isl_map_to_union_map(map: copy()); |
11739 | return manage(ptr: res); |
11740 | } |
11741 | |
11742 | isl::id map::tuple_id(isl::dim type) const |
11743 | { |
11744 | auto res = isl_map_get_tuple_id(map: get(), type: static_cast<enum isl_dim_type>(type)); |
11745 | return manage(ptr: res); |
11746 | } |
11747 | |
11748 | isl::id map::get_tuple_id(isl::dim type) const |
11749 | { |
11750 | return tuple_id(type); |
11751 | } |
11752 | |
11753 | isl::map map::uncurry() const |
11754 | { |
11755 | auto res = isl_map_uncurry(map: copy()); |
11756 | return manage(ptr: res); |
11757 | } |
11758 | |
11759 | isl::map map::unite(isl::map map2) const |
11760 | { |
11761 | auto res = isl_map_union(map1: copy(), map2: map2.release()); |
11762 | return manage(ptr: res); |
11763 | } |
11764 | |
11765 | isl::union_map map::unite(const isl::union_map &umap2) const |
11766 | { |
11767 | return isl::union_map(*this).unite(umap2); |
11768 | } |
11769 | |
11770 | isl::map map::unite(const isl::basic_map &map2) const |
11771 | { |
11772 | return this->unite(map2: isl::map(map2)); |
11773 | } |
11774 | |
11775 | isl::map map::universe(isl::space space) |
11776 | { |
11777 | auto res = isl_map_universe(space: space.release()); |
11778 | return manage(ptr: res); |
11779 | } |
11780 | |
11781 | isl::basic_map map::unshifted_simple_hull() const |
11782 | { |
11783 | auto res = isl_map_unshifted_simple_hull(map: copy()); |
11784 | return manage(ptr: res); |
11785 | } |
11786 | |
11787 | isl::map map::upper_bound(isl::multi_pw_aff upper) const |
11788 | { |
11789 | auto res = isl_map_upper_bound_multi_pw_aff(map: copy(), upper: upper.release()); |
11790 | return manage(ptr: res); |
11791 | } |
11792 | |
11793 | isl::map map::upper_bound_si(isl::dim type, unsigned int pos, int value) const |
11794 | { |
11795 | auto res = isl_map_upper_bound_si(map: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
11796 | return manage(ptr: res); |
11797 | } |
11798 | |
11799 | isl::set map::wrap() const |
11800 | { |
11801 | auto res = isl_map_wrap(map: copy()); |
11802 | return manage(ptr: res); |
11803 | } |
11804 | |
11805 | isl::map map::zip() const |
11806 | { |
11807 | auto res = isl_map_zip(map: copy()); |
11808 | return manage(ptr: res); |
11809 | } |
11810 | |
11811 | inline std::ostream &operator<<(std::ostream &os, const map &obj) |
11812 | { |
11813 | char *str = isl_map_to_str(map: obj.get()); |
11814 | if (!str) { |
11815 | os.setstate(std::ios_base::badbit); |
11816 | return os; |
11817 | } |
11818 | os << str; |
11819 | free(ptr: str); |
11820 | return os; |
11821 | } |
11822 | |
11823 | // implementations for isl::map_list |
11824 | map_list manage(__isl_take isl_map_list *ptr) { |
11825 | return map_list(ptr); |
11826 | } |
11827 | map_list manage_copy(__isl_keep isl_map_list *ptr) { |
11828 | ptr = isl_map_list_copy(list: ptr); |
11829 | return map_list(ptr); |
11830 | } |
11831 | |
11832 | map_list::map_list() |
11833 | : ptr(nullptr) {} |
11834 | |
11835 | map_list::map_list(const map_list &obj) |
11836 | : ptr(nullptr) |
11837 | { |
11838 | ptr = obj.copy(); |
11839 | } |
11840 | |
11841 | map_list::map_list(__isl_take isl_map_list *ptr) |
11842 | : ptr(ptr) {} |
11843 | |
11844 | map_list::map_list(isl::ctx ctx, int n) |
11845 | { |
11846 | auto res = isl_map_list_alloc(ctx: ctx.release(), n); |
11847 | ptr = res; |
11848 | } |
11849 | |
11850 | map_list::map_list(isl::map el) |
11851 | { |
11852 | auto res = isl_map_list_from_map(el: el.release()); |
11853 | ptr = res; |
11854 | } |
11855 | |
11856 | map_list::map_list(isl::ctx ctx, const std::string &str) |
11857 | { |
11858 | auto res = isl_map_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
11859 | ptr = res; |
11860 | } |
11861 | |
11862 | map_list &map_list::operator=(map_list obj) { |
11863 | std::swap(a&: this->ptr, b&: obj.ptr); |
11864 | return *this; |
11865 | } |
11866 | |
11867 | map_list::~map_list() { |
11868 | if (ptr) |
11869 | isl_map_list_free(list: ptr); |
11870 | } |
11871 | |
11872 | __isl_give isl_map_list *map_list::copy() const & { |
11873 | return isl_map_list_copy(list: ptr); |
11874 | } |
11875 | |
11876 | __isl_keep isl_map_list *map_list::get() const { |
11877 | return ptr; |
11878 | } |
11879 | |
11880 | __isl_give isl_map_list *map_list::release() { |
11881 | isl_map_list *tmp = ptr; |
11882 | ptr = nullptr; |
11883 | return tmp; |
11884 | } |
11885 | |
11886 | bool map_list::is_null() const { |
11887 | return ptr == nullptr; |
11888 | } |
11889 | |
11890 | isl::ctx map_list::ctx() const { |
11891 | return isl::ctx(isl_map_list_get_ctx(list: ptr)); |
11892 | } |
11893 | |
11894 | isl::map_list map_list::add(isl::map el) const |
11895 | { |
11896 | auto res = isl_map_list_add(list: copy(), el: el.release()); |
11897 | return manage(ptr: res); |
11898 | } |
11899 | |
11900 | isl::map map_list::at(int index) const |
11901 | { |
11902 | auto res = isl_map_list_get_at(list: get(), index); |
11903 | return manage(ptr: res); |
11904 | } |
11905 | |
11906 | isl::map map_list::get_at(int index) const |
11907 | { |
11908 | return at(index); |
11909 | } |
11910 | |
11911 | isl::map_list map_list::clear() const |
11912 | { |
11913 | auto res = isl_map_list_clear(list: copy()); |
11914 | return manage(ptr: res); |
11915 | } |
11916 | |
11917 | isl::map_list map_list::concat(isl::map_list list2) const |
11918 | { |
11919 | auto res = isl_map_list_concat(list1: copy(), list2: list2.release()); |
11920 | return manage(ptr: res); |
11921 | } |
11922 | |
11923 | isl::map_list map_list::drop(unsigned int first, unsigned int n) const |
11924 | { |
11925 | auto res = isl_map_list_drop(list: copy(), first, n); |
11926 | return manage(ptr: res); |
11927 | } |
11928 | |
11929 | stat map_list::foreach(const std::function<stat(isl::map)> &fn) const |
11930 | { |
11931 | struct fn_data { |
11932 | std::function<stat(isl::map)> func; |
11933 | } fn_data = { .func: fn }; |
11934 | auto fn_lambda = [](isl_map *arg_0, void *arg_1) -> isl_stat { |
11935 | auto *data = static_cast<struct fn_data *>(arg_1); |
11936 | auto ret = (data->func)(manage(ptr: arg_0)); |
11937 | return ret.release(); |
11938 | }; |
11939 | auto res = isl_map_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
11940 | return manage(val: res); |
11941 | } |
11942 | |
11943 | isl::map_list map_list::insert(unsigned int pos, isl::map el) const |
11944 | { |
11945 | auto res = isl_map_list_insert(list: copy(), pos, el: el.release()); |
11946 | return manage(ptr: res); |
11947 | } |
11948 | |
11949 | class size map_list::size() const |
11950 | { |
11951 | auto res = isl_map_list_size(list: get()); |
11952 | return manage(val: res); |
11953 | } |
11954 | |
11955 | inline std::ostream &operator<<(std::ostream &os, const map_list &obj) |
11956 | { |
11957 | char *str = isl_map_list_to_str(list: obj.get()); |
11958 | if (!str) { |
11959 | os.setstate(std::ios_base::badbit); |
11960 | return os; |
11961 | } |
11962 | os << str; |
11963 | free(ptr: str); |
11964 | return os; |
11965 | } |
11966 | |
11967 | // implementations for isl::multi_aff |
11968 | multi_aff manage(__isl_take isl_multi_aff *ptr) { |
11969 | return multi_aff(ptr); |
11970 | } |
11971 | multi_aff manage_copy(__isl_keep isl_multi_aff *ptr) { |
11972 | ptr = isl_multi_aff_copy(multi: ptr); |
11973 | return multi_aff(ptr); |
11974 | } |
11975 | |
11976 | multi_aff::multi_aff() |
11977 | : ptr(nullptr) {} |
11978 | |
11979 | multi_aff::multi_aff(const multi_aff &obj) |
11980 | : ptr(nullptr) |
11981 | { |
11982 | ptr = obj.copy(); |
11983 | } |
11984 | |
11985 | multi_aff::multi_aff(__isl_take isl_multi_aff *ptr) |
11986 | : ptr(ptr) {} |
11987 | |
11988 | multi_aff::multi_aff(isl::aff aff) |
11989 | { |
11990 | auto res = isl_multi_aff_from_aff(aff: aff.release()); |
11991 | ptr = res; |
11992 | } |
11993 | |
11994 | multi_aff::multi_aff(isl::space space, isl::aff_list list) |
11995 | { |
11996 | auto res = isl_multi_aff_from_aff_list(space: space.release(), list: list.release()); |
11997 | ptr = res; |
11998 | } |
11999 | |
12000 | multi_aff::multi_aff(isl::ctx ctx, const std::string &str) |
12001 | { |
12002 | auto res = isl_multi_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
12003 | ptr = res; |
12004 | } |
12005 | |
12006 | multi_aff &multi_aff::operator=(multi_aff obj) { |
12007 | std::swap(a&: this->ptr, b&: obj.ptr); |
12008 | return *this; |
12009 | } |
12010 | |
12011 | multi_aff::~multi_aff() { |
12012 | if (ptr) |
12013 | isl_multi_aff_free(multi: ptr); |
12014 | } |
12015 | |
12016 | __isl_give isl_multi_aff *multi_aff::copy() const & { |
12017 | return isl_multi_aff_copy(multi: ptr); |
12018 | } |
12019 | |
12020 | __isl_keep isl_multi_aff *multi_aff::get() const { |
12021 | return ptr; |
12022 | } |
12023 | |
12024 | __isl_give isl_multi_aff *multi_aff::release() { |
12025 | isl_multi_aff *tmp = ptr; |
12026 | ptr = nullptr; |
12027 | return tmp; |
12028 | } |
12029 | |
12030 | bool multi_aff::is_null() const { |
12031 | return ptr == nullptr; |
12032 | } |
12033 | |
12034 | isl::ctx multi_aff::ctx() const { |
12035 | return isl::ctx(isl_multi_aff_get_ctx(multi: ptr)); |
12036 | } |
12037 | |
12038 | isl::multi_aff multi_aff::add(isl::multi_aff multi2) const |
12039 | { |
12040 | auto res = isl_multi_aff_add(multi1: copy(), multi2: multi2.release()); |
12041 | return manage(ptr: res); |
12042 | } |
12043 | |
12044 | isl::multi_pw_aff multi_aff::add(const isl::multi_pw_aff &multi2) const |
12045 | { |
12046 | return isl::pw_multi_aff(*this).add(multi2); |
12047 | } |
12048 | |
12049 | isl::multi_union_pw_aff multi_aff::add(const isl::multi_union_pw_aff &multi2) const |
12050 | { |
12051 | return isl::pw_multi_aff(*this).add(multi2); |
12052 | } |
12053 | |
12054 | isl::pw_multi_aff multi_aff::add(const isl::pw_multi_aff &pma2) const |
12055 | { |
12056 | return isl::pw_multi_aff(*this).add(pma2); |
12057 | } |
12058 | |
12059 | isl::union_pw_multi_aff multi_aff::add(const isl::union_pw_multi_aff &upma2) const |
12060 | { |
12061 | return isl::pw_multi_aff(*this).add(upma2); |
12062 | } |
12063 | |
12064 | isl::multi_aff multi_aff::add(const isl::aff &multi2) const |
12065 | { |
12066 | return this->add(multi2: isl::multi_aff(multi2)); |
12067 | } |
12068 | |
12069 | isl::multi_aff multi_aff::add_constant(isl::multi_val mv) const |
12070 | { |
12071 | auto res = isl_multi_aff_add_constant_multi_val(mpa: copy(), mv: mv.release()); |
12072 | return manage(ptr: res); |
12073 | } |
12074 | |
12075 | isl::multi_aff multi_aff::add_constant(isl::val v) const |
12076 | { |
12077 | auto res = isl_multi_aff_add_constant_val(mpa: copy(), v: v.release()); |
12078 | return manage(ptr: res); |
12079 | } |
12080 | |
12081 | isl::multi_aff multi_aff::add_constant(long v) const |
12082 | { |
12083 | return this->add_constant(v: isl::val(ctx(), v)); |
12084 | } |
12085 | |
12086 | isl::union_pw_multi_aff multi_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const |
12087 | { |
12088 | return isl::pw_multi_aff(*this).add_pw_multi_aff(pma); |
12089 | } |
12090 | |
12091 | isl::union_pw_multi_aff multi_aff::apply(const isl::union_pw_multi_aff &upma2) const |
12092 | { |
12093 | return isl::pw_multi_aff(*this).apply(upma2); |
12094 | } |
12095 | |
12096 | isl::map multi_aff::as_map() const |
12097 | { |
12098 | auto res = isl_multi_aff_as_map(ma: copy()); |
12099 | return manage(ptr: res); |
12100 | } |
12101 | |
12102 | isl::multi_aff multi_aff::as_multi_aff() const |
12103 | { |
12104 | return isl::pw_multi_aff(*this).as_multi_aff(); |
12105 | } |
12106 | |
12107 | isl::multi_union_pw_aff multi_aff::as_multi_union_pw_aff() const |
12108 | { |
12109 | return isl::pw_multi_aff(*this).as_multi_union_pw_aff(); |
12110 | } |
12111 | |
12112 | isl::pw_multi_aff multi_aff::as_pw_multi_aff() const |
12113 | { |
12114 | return isl::pw_multi_aff(*this).as_pw_multi_aff(); |
12115 | } |
12116 | |
12117 | isl::set multi_aff::as_set() const |
12118 | { |
12119 | auto res = isl_multi_aff_as_set(ma: copy()); |
12120 | return manage(ptr: res); |
12121 | } |
12122 | |
12123 | isl::union_map multi_aff::as_union_map() const |
12124 | { |
12125 | return isl::pw_multi_aff(*this).as_union_map(); |
12126 | } |
12127 | |
12128 | isl::aff multi_aff::at(int pos) const |
12129 | { |
12130 | auto res = isl_multi_aff_get_at(multi: get(), pos); |
12131 | return manage(ptr: res); |
12132 | } |
12133 | |
12134 | isl::aff multi_aff::get_at(int pos) const |
12135 | { |
12136 | return at(pos); |
12137 | } |
12138 | |
12139 | isl::basic_set multi_aff::bind(isl::multi_id tuple) const |
12140 | { |
12141 | auto res = isl_multi_aff_bind(ma: copy(), tuple: tuple.release()); |
12142 | return manage(ptr: res); |
12143 | } |
12144 | |
12145 | isl::multi_aff multi_aff::bind_domain(isl::multi_id tuple) const |
12146 | { |
12147 | auto res = isl_multi_aff_bind_domain(multi: copy(), tuple: tuple.release()); |
12148 | return manage(ptr: res); |
12149 | } |
12150 | |
12151 | isl::multi_aff multi_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const |
12152 | { |
12153 | auto res = isl_multi_aff_bind_domain_wrapped_domain(multi: copy(), tuple: tuple.release()); |
12154 | return manage(ptr: res); |
12155 | } |
12156 | |
12157 | isl::pw_multi_aff multi_aff::coalesce() const |
12158 | { |
12159 | return isl::pw_multi_aff(*this).coalesce(); |
12160 | } |
12161 | |
12162 | isl::multi_val multi_aff::constant_multi_val() const |
12163 | { |
12164 | auto res = isl_multi_aff_get_constant_multi_val(ma: get()); |
12165 | return manage(ptr: res); |
12166 | } |
12167 | |
12168 | isl::multi_val multi_aff::get_constant_multi_val() const |
12169 | { |
12170 | return constant_multi_val(); |
12171 | } |
12172 | |
12173 | class size multi_aff::dim(isl::dim type) const |
12174 | { |
12175 | auto res = isl_multi_aff_dim(multi: get(), type: static_cast<enum isl_dim_type>(type)); |
12176 | return manage(val: res); |
12177 | } |
12178 | |
12179 | isl::set multi_aff::domain() const |
12180 | { |
12181 | return isl::pw_multi_aff(*this).domain(); |
12182 | } |
12183 | |
12184 | isl::multi_aff multi_aff::domain_map(isl::space space) |
12185 | { |
12186 | auto res = isl_multi_aff_domain_map(space: space.release()); |
12187 | return manage(ptr: res); |
12188 | } |
12189 | |
12190 | isl::pw_multi_aff multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const |
12191 | { |
12192 | return isl::pw_multi_aff(*this).drop_dims(type, first, n); |
12193 | } |
12194 | |
12195 | isl::pw_multi_aff multi_aff::(const isl::space &space) const |
12196 | { |
12197 | return isl::pw_multi_aff(*this).extract_pw_multi_aff(space); |
12198 | } |
12199 | |
12200 | isl::multi_aff multi_aff::flat_range_product(isl::multi_aff multi2) const |
12201 | { |
12202 | auto res = isl_multi_aff_flat_range_product(multi1: copy(), multi2: multi2.release()); |
12203 | return manage(ptr: res); |
12204 | } |
12205 | |
12206 | isl::multi_pw_aff multi_aff::flat_range_product(const isl::multi_pw_aff &multi2) const |
12207 | { |
12208 | return isl::pw_multi_aff(*this).flat_range_product(multi2); |
12209 | } |
12210 | |
12211 | isl::multi_union_pw_aff multi_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const |
12212 | { |
12213 | return isl::pw_multi_aff(*this).flat_range_product(multi2); |
12214 | } |
12215 | |
12216 | isl::pw_multi_aff multi_aff::flat_range_product(const isl::pw_multi_aff &pma2) const |
12217 | { |
12218 | return isl::pw_multi_aff(*this).flat_range_product(pma2); |
12219 | } |
12220 | |
12221 | isl::union_pw_multi_aff multi_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const |
12222 | { |
12223 | return isl::pw_multi_aff(*this).flat_range_product(upma2); |
12224 | } |
12225 | |
12226 | isl::multi_aff multi_aff::flat_range_product(const isl::aff &multi2) const |
12227 | { |
12228 | return this->flat_range_product(multi2: isl::multi_aff(multi2)); |
12229 | } |
12230 | |
12231 | isl::multi_aff multi_aff::floor() const |
12232 | { |
12233 | auto res = isl_multi_aff_floor(ma: copy()); |
12234 | return manage(ptr: res); |
12235 | } |
12236 | |
12237 | stat multi_aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const |
12238 | { |
12239 | return isl::pw_multi_aff(*this).foreach_piece(fn); |
12240 | } |
12241 | |
12242 | isl::multi_aff multi_aff::gist(isl::set context) const |
12243 | { |
12244 | auto res = isl_multi_aff_gist(maff: copy(), context: context.release()); |
12245 | return manage(ptr: res); |
12246 | } |
12247 | |
12248 | isl::union_pw_multi_aff multi_aff::gist(const isl::union_set &context) const |
12249 | { |
12250 | return isl::pw_multi_aff(*this).gist(context); |
12251 | } |
12252 | |
12253 | isl::multi_aff multi_aff::gist(const isl::basic_set &context) const |
12254 | { |
12255 | return this->gist(context: isl::set(context)); |
12256 | } |
12257 | |
12258 | isl::multi_aff multi_aff::gist(const isl::point &context) const |
12259 | { |
12260 | return this->gist(context: isl::set(context)); |
12261 | } |
12262 | |
12263 | boolean multi_aff::has_range_tuple_id() const |
12264 | { |
12265 | auto res = isl_multi_aff_has_range_tuple_id(multi: get()); |
12266 | return manage(val: res); |
12267 | } |
12268 | |
12269 | isl::multi_aff multi_aff::identity(isl::space space) |
12270 | { |
12271 | auto res = isl_multi_aff_identity(space: space.release()); |
12272 | return manage(ptr: res); |
12273 | } |
12274 | |
12275 | isl::multi_aff multi_aff::identity() const |
12276 | { |
12277 | auto res = isl_multi_aff_identity_multi_aff(multi: copy()); |
12278 | return manage(ptr: res); |
12279 | } |
12280 | |
12281 | isl::multi_aff multi_aff::identity_on_domain(isl::space space) |
12282 | { |
12283 | auto res = isl_multi_aff_identity_on_domain_space(space: space.release()); |
12284 | return manage(ptr: res); |
12285 | } |
12286 | |
12287 | isl::multi_aff multi_aff::insert_domain(isl::space domain) const |
12288 | { |
12289 | auto res = isl_multi_aff_insert_domain(multi: copy(), domain: domain.release()); |
12290 | return manage(ptr: res); |
12291 | } |
12292 | |
12293 | isl::pw_multi_aff multi_aff::intersect_domain(const isl::set &set) const |
12294 | { |
12295 | return isl::pw_multi_aff(*this).intersect_domain(set); |
12296 | } |
12297 | |
12298 | isl::union_pw_multi_aff multi_aff::intersect_domain(const isl::space &space) const |
12299 | { |
12300 | return isl::pw_multi_aff(*this).intersect_domain(space); |
12301 | } |
12302 | |
12303 | isl::union_pw_multi_aff multi_aff::intersect_domain(const isl::union_set &uset) const |
12304 | { |
12305 | return isl::pw_multi_aff(*this).intersect_domain(uset); |
12306 | } |
12307 | |
12308 | isl::union_pw_multi_aff multi_aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const |
12309 | { |
12310 | return isl::pw_multi_aff(*this).intersect_domain_wrapped_domain(uset); |
12311 | } |
12312 | |
12313 | isl::union_pw_multi_aff multi_aff::intersect_domain_wrapped_range(const isl::union_set &uset) const |
12314 | { |
12315 | return isl::pw_multi_aff(*this).intersect_domain_wrapped_range(uset); |
12316 | } |
12317 | |
12318 | isl::pw_multi_aff multi_aff::intersect_params(const isl::set &set) const |
12319 | { |
12320 | return isl::pw_multi_aff(*this).intersect_params(set); |
12321 | } |
12322 | |
12323 | boolean multi_aff::involves_locals() const |
12324 | { |
12325 | auto res = isl_multi_aff_involves_locals(multi: get()); |
12326 | return manage(val: res); |
12327 | } |
12328 | |
12329 | boolean multi_aff::involves_nan() const |
12330 | { |
12331 | auto res = isl_multi_aff_involves_nan(multi: get()); |
12332 | return manage(val: res); |
12333 | } |
12334 | |
12335 | boolean multi_aff::involves_param(const isl::id &id) const |
12336 | { |
12337 | return isl::pw_multi_aff(*this).involves_param(id); |
12338 | } |
12339 | |
12340 | boolean multi_aff::involves_param(const std::string &id) const |
12341 | { |
12342 | return this->involves_param(id: isl::id(ctx(), id)); |
12343 | } |
12344 | |
12345 | boolean multi_aff::involves_param(const isl::id_list &list) const |
12346 | { |
12347 | return isl::pw_multi_aff(*this).involves_param(list); |
12348 | } |
12349 | |
12350 | boolean multi_aff::isa_multi_aff() const |
12351 | { |
12352 | return isl::pw_multi_aff(*this).isa_multi_aff(); |
12353 | } |
12354 | |
12355 | boolean multi_aff::isa_pw_multi_aff() const |
12356 | { |
12357 | return isl::pw_multi_aff(*this).isa_pw_multi_aff(); |
12358 | } |
12359 | |
12360 | isl::aff_list multi_aff::list() const |
12361 | { |
12362 | auto res = isl_multi_aff_get_list(multi: get()); |
12363 | return manage(ptr: res); |
12364 | } |
12365 | |
12366 | isl::aff_list multi_aff::get_list() const |
12367 | { |
12368 | return list(); |
12369 | } |
12370 | |
12371 | isl::multi_pw_aff multi_aff::max(const isl::multi_pw_aff &multi2) const |
12372 | { |
12373 | return isl::pw_multi_aff(*this).max(multi2); |
12374 | } |
12375 | |
12376 | isl::multi_val multi_aff::max_multi_val() const |
12377 | { |
12378 | return isl::pw_multi_aff(*this).max_multi_val(); |
12379 | } |
12380 | |
12381 | isl::multi_pw_aff multi_aff::min(const isl::multi_pw_aff &multi2) const |
12382 | { |
12383 | return isl::pw_multi_aff(*this).min(multi2); |
12384 | } |
12385 | |
12386 | isl::multi_val multi_aff::min_multi_val() const |
12387 | { |
12388 | return isl::pw_multi_aff(*this).min_multi_val(); |
12389 | } |
12390 | |
12391 | isl::multi_aff multi_aff::multi_val_on_domain(isl::space space, isl::multi_val mv) |
12392 | { |
12393 | auto res = isl_multi_aff_multi_val_on_domain_space(space: space.release(), mv: mv.release()); |
12394 | return manage(ptr: res); |
12395 | } |
12396 | |
12397 | class size multi_aff::n_piece() const |
12398 | { |
12399 | return isl::pw_multi_aff(*this).n_piece(); |
12400 | } |
12401 | |
12402 | isl::multi_aff multi_aff::neg() const |
12403 | { |
12404 | auto res = isl_multi_aff_neg(multi: copy()); |
12405 | return manage(ptr: res); |
12406 | } |
12407 | |
12408 | boolean multi_aff::plain_is_empty() const |
12409 | { |
12410 | return isl::pw_multi_aff(*this).plain_is_empty(); |
12411 | } |
12412 | |
12413 | boolean multi_aff::plain_is_equal(const isl::multi_aff &multi2) const |
12414 | { |
12415 | auto res = isl_multi_aff_plain_is_equal(multi1: get(), multi2: multi2.get()); |
12416 | return manage(val: res); |
12417 | } |
12418 | |
12419 | boolean multi_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const |
12420 | { |
12421 | return isl::pw_multi_aff(*this).plain_is_equal(multi2); |
12422 | } |
12423 | |
12424 | boolean multi_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
12425 | { |
12426 | return isl::pw_multi_aff(*this).plain_is_equal(multi2); |
12427 | } |
12428 | |
12429 | boolean multi_aff::plain_is_equal(const isl::aff &multi2) const |
12430 | { |
12431 | return this->plain_is_equal(multi2: isl::multi_aff(multi2)); |
12432 | } |
12433 | |
12434 | isl::pw_multi_aff multi_aff::preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const |
12435 | { |
12436 | return isl::pw_multi_aff(*this).preimage_domain_wrapped_domain(pma2); |
12437 | } |
12438 | |
12439 | isl::union_pw_multi_aff multi_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const |
12440 | { |
12441 | return isl::pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2); |
12442 | } |
12443 | |
12444 | isl::multi_aff multi_aff::product(isl::multi_aff multi2) const |
12445 | { |
12446 | auto res = isl_multi_aff_product(multi1: copy(), multi2: multi2.release()); |
12447 | return manage(ptr: res); |
12448 | } |
12449 | |
12450 | isl::multi_pw_aff multi_aff::product(const isl::multi_pw_aff &multi2) const |
12451 | { |
12452 | return isl::pw_multi_aff(*this).product(multi2); |
12453 | } |
12454 | |
12455 | isl::pw_multi_aff multi_aff::product(const isl::pw_multi_aff &pma2) const |
12456 | { |
12457 | return isl::pw_multi_aff(*this).product(pma2); |
12458 | } |
12459 | |
12460 | isl::multi_aff multi_aff::product(const isl::aff &multi2) const |
12461 | { |
12462 | return this->product(multi2: isl::multi_aff(multi2)); |
12463 | } |
12464 | |
12465 | isl::multi_aff multi_aff::pullback(isl::multi_aff ma2) const |
12466 | { |
12467 | auto res = isl_multi_aff_pullback_multi_aff(ma1: copy(), ma2: ma2.release()); |
12468 | return manage(ptr: res); |
12469 | } |
12470 | |
12471 | isl::multi_pw_aff multi_aff::pullback(const isl::multi_pw_aff &mpa2) const |
12472 | { |
12473 | return isl::pw_multi_aff(*this).pullback(mpa2); |
12474 | } |
12475 | |
12476 | isl::pw_multi_aff multi_aff::pullback(const isl::pw_multi_aff &pma2) const |
12477 | { |
12478 | return isl::pw_multi_aff(*this).pullback(pma2); |
12479 | } |
12480 | |
12481 | isl::union_pw_multi_aff multi_aff::pullback(const isl::union_pw_multi_aff &upma2) const |
12482 | { |
12483 | return isl::pw_multi_aff(*this).pullback(upma2); |
12484 | } |
12485 | |
12486 | isl::multi_aff multi_aff::pullback(const isl::aff &ma2) const |
12487 | { |
12488 | return this->pullback(ma2: isl::multi_aff(ma2)); |
12489 | } |
12490 | |
12491 | isl::pw_multi_aff_list multi_aff::pw_multi_aff_list() const |
12492 | { |
12493 | return isl::pw_multi_aff(*this).pw_multi_aff_list(); |
12494 | } |
12495 | |
12496 | isl::pw_multi_aff multi_aff::range_factor_domain() const |
12497 | { |
12498 | return isl::pw_multi_aff(*this).range_factor_domain(); |
12499 | } |
12500 | |
12501 | isl::pw_multi_aff multi_aff::range_factor_range() const |
12502 | { |
12503 | return isl::pw_multi_aff(*this).range_factor_range(); |
12504 | } |
12505 | |
12506 | isl::multi_aff multi_aff::range_map(isl::space space) |
12507 | { |
12508 | auto res = isl_multi_aff_range_map(space: space.release()); |
12509 | return manage(ptr: res); |
12510 | } |
12511 | |
12512 | isl::multi_aff multi_aff::range_product(isl::multi_aff multi2) const |
12513 | { |
12514 | auto res = isl_multi_aff_range_product(multi1: copy(), multi2: multi2.release()); |
12515 | return manage(ptr: res); |
12516 | } |
12517 | |
12518 | isl::multi_pw_aff multi_aff::range_product(const isl::multi_pw_aff &multi2) const |
12519 | { |
12520 | return isl::pw_multi_aff(*this).range_product(multi2); |
12521 | } |
12522 | |
12523 | isl::multi_union_pw_aff multi_aff::range_product(const isl::multi_union_pw_aff &multi2) const |
12524 | { |
12525 | return isl::pw_multi_aff(*this).range_product(multi2); |
12526 | } |
12527 | |
12528 | isl::pw_multi_aff multi_aff::range_product(const isl::pw_multi_aff &pma2) const |
12529 | { |
12530 | return isl::pw_multi_aff(*this).range_product(pma2); |
12531 | } |
12532 | |
12533 | isl::union_pw_multi_aff multi_aff::range_product(const isl::union_pw_multi_aff &upma2) const |
12534 | { |
12535 | return isl::pw_multi_aff(*this).range_product(upma2); |
12536 | } |
12537 | |
12538 | isl::multi_aff multi_aff::range_product(const isl::aff &multi2) const |
12539 | { |
12540 | return this->range_product(multi2: isl::multi_aff(multi2)); |
12541 | } |
12542 | |
12543 | isl::id multi_aff::range_tuple_id() const |
12544 | { |
12545 | auto res = isl_multi_aff_get_range_tuple_id(multi: get()); |
12546 | return manage(ptr: res); |
12547 | } |
12548 | |
12549 | isl::id multi_aff::get_range_tuple_id() const |
12550 | { |
12551 | return range_tuple_id(); |
12552 | } |
12553 | |
12554 | isl::multi_aff multi_aff::reset_range_tuple_id() const |
12555 | { |
12556 | auto res = isl_multi_aff_reset_range_tuple_id(multi: copy()); |
12557 | return manage(ptr: res); |
12558 | } |
12559 | |
12560 | isl::multi_aff multi_aff::reset_tuple_id(isl::dim type) const |
12561 | { |
12562 | auto res = isl_multi_aff_reset_tuple_id(multi: copy(), type: static_cast<enum isl_dim_type>(type)); |
12563 | return manage(ptr: res); |
12564 | } |
12565 | |
12566 | isl::multi_aff multi_aff::scale(isl::multi_val mv) const |
12567 | { |
12568 | auto res = isl_multi_aff_scale_multi_val(multi: copy(), mv: mv.release()); |
12569 | return manage(ptr: res); |
12570 | } |
12571 | |
12572 | isl::multi_aff multi_aff::scale(isl::val v) const |
12573 | { |
12574 | auto res = isl_multi_aff_scale_val(multi: copy(), v: v.release()); |
12575 | return manage(ptr: res); |
12576 | } |
12577 | |
12578 | isl::multi_aff multi_aff::scale(long v) const |
12579 | { |
12580 | return this->scale(v: isl::val(ctx(), v)); |
12581 | } |
12582 | |
12583 | isl::multi_aff multi_aff::scale_down(isl::multi_val mv) const |
12584 | { |
12585 | auto res = isl_multi_aff_scale_down_multi_val(multi: copy(), mv: mv.release()); |
12586 | return manage(ptr: res); |
12587 | } |
12588 | |
12589 | isl::multi_aff multi_aff::scale_down(isl::val v) const |
12590 | { |
12591 | auto res = isl_multi_aff_scale_down_val(multi: copy(), v: v.release()); |
12592 | return manage(ptr: res); |
12593 | } |
12594 | |
12595 | isl::multi_aff multi_aff::scale_down(long v) const |
12596 | { |
12597 | return this->scale_down(v: isl::val(ctx(), v)); |
12598 | } |
12599 | |
12600 | isl::multi_aff multi_aff::set_aff(int pos, isl::aff el) const |
12601 | { |
12602 | auto res = isl_multi_aff_set_aff(multi: copy(), pos, el: el.release()); |
12603 | return manage(ptr: res); |
12604 | } |
12605 | |
12606 | isl::multi_aff multi_aff::set_at(int pos, isl::aff el) const |
12607 | { |
12608 | auto res = isl_multi_aff_set_at(multi: copy(), pos, el: el.release()); |
12609 | return manage(ptr: res); |
12610 | } |
12611 | |
12612 | isl::multi_pw_aff multi_aff::set_at(int pos, const isl::pw_aff &el) const |
12613 | { |
12614 | return isl::pw_multi_aff(*this).set_at(pos, el); |
12615 | } |
12616 | |
12617 | isl::multi_union_pw_aff multi_aff::set_at(int pos, const isl::union_pw_aff &el) const |
12618 | { |
12619 | return isl::pw_multi_aff(*this).set_at(pos, el); |
12620 | } |
12621 | |
12622 | isl::multi_pw_aff multi_aff::set_pw_aff(int pos, const isl::pw_aff &el) const |
12623 | { |
12624 | return isl::pw_multi_aff(*this).set_pw_aff(pos, el); |
12625 | } |
12626 | |
12627 | isl::pw_multi_aff multi_aff::set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const |
12628 | { |
12629 | return isl::pw_multi_aff(*this).set_pw_aff(pos, pa); |
12630 | } |
12631 | |
12632 | isl::multi_aff multi_aff::set_range_tuple(isl::id id) const |
12633 | { |
12634 | auto res = isl_multi_aff_set_range_tuple_id(multi: copy(), id: id.release()); |
12635 | return manage(ptr: res); |
12636 | } |
12637 | |
12638 | isl::multi_aff multi_aff::set_range_tuple(const std::string &id) const |
12639 | { |
12640 | return this->set_range_tuple(isl::id(ctx(), id)); |
12641 | } |
12642 | |
12643 | isl::multi_union_pw_aff multi_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const |
12644 | { |
12645 | return isl::pw_multi_aff(*this).set_union_pw_aff(pos, el); |
12646 | } |
12647 | |
12648 | class size multi_aff::size() const |
12649 | { |
12650 | auto res = isl_multi_aff_size(multi: get()); |
12651 | return manage(val: res); |
12652 | } |
12653 | |
12654 | isl::space multi_aff::space() const |
12655 | { |
12656 | auto res = isl_multi_aff_get_space(multi: get()); |
12657 | return manage(ptr: res); |
12658 | } |
12659 | |
12660 | isl::space multi_aff::get_space() const |
12661 | { |
12662 | return space(); |
12663 | } |
12664 | |
12665 | isl::multi_aff multi_aff::sub(isl::multi_aff multi2) const |
12666 | { |
12667 | auto res = isl_multi_aff_sub(multi1: copy(), multi2: multi2.release()); |
12668 | return manage(ptr: res); |
12669 | } |
12670 | |
12671 | isl::multi_pw_aff multi_aff::sub(const isl::multi_pw_aff &multi2) const |
12672 | { |
12673 | return isl::pw_multi_aff(*this).sub(multi2); |
12674 | } |
12675 | |
12676 | isl::multi_union_pw_aff multi_aff::sub(const isl::multi_union_pw_aff &multi2) const |
12677 | { |
12678 | return isl::pw_multi_aff(*this).sub(multi2); |
12679 | } |
12680 | |
12681 | isl::pw_multi_aff multi_aff::sub(const isl::pw_multi_aff &pma2) const |
12682 | { |
12683 | return isl::pw_multi_aff(*this).sub(pma2); |
12684 | } |
12685 | |
12686 | isl::union_pw_multi_aff multi_aff::sub(const isl::union_pw_multi_aff &upma2) const |
12687 | { |
12688 | return isl::pw_multi_aff(*this).sub(upma2); |
12689 | } |
12690 | |
12691 | isl::multi_aff multi_aff::sub(const isl::aff &multi2) const |
12692 | { |
12693 | return this->sub(multi2: isl::multi_aff(multi2)); |
12694 | } |
12695 | |
12696 | isl::pw_multi_aff multi_aff::subtract_domain(const isl::set &set) const |
12697 | { |
12698 | return isl::pw_multi_aff(*this).subtract_domain(set); |
12699 | } |
12700 | |
12701 | isl::union_pw_multi_aff multi_aff::subtract_domain(const isl::space &space) const |
12702 | { |
12703 | return isl::pw_multi_aff(*this).subtract_domain(space); |
12704 | } |
12705 | |
12706 | isl::union_pw_multi_aff multi_aff::subtract_domain(const isl::union_set &uset) const |
12707 | { |
12708 | return isl::pw_multi_aff(*this).subtract_domain(uset); |
12709 | } |
12710 | |
12711 | isl::pw_multi_aff_list multi_aff::to_list() const |
12712 | { |
12713 | return isl::pw_multi_aff(*this).to_list(); |
12714 | } |
12715 | |
12716 | isl::multi_pw_aff multi_aff::to_multi_pw_aff() const |
12717 | { |
12718 | auto res = isl_multi_aff_to_multi_pw_aff(ma: copy()); |
12719 | return manage(ptr: res); |
12720 | } |
12721 | |
12722 | isl::multi_union_pw_aff multi_aff::to_multi_union_pw_aff() const |
12723 | { |
12724 | auto res = isl_multi_aff_to_multi_union_pw_aff(ma: copy()); |
12725 | return manage(ptr: res); |
12726 | } |
12727 | |
12728 | isl::pw_multi_aff multi_aff::to_pw_multi_aff() const |
12729 | { |
12730 | auto res = isl_multi_aff_to_pw_multi_aff(ma: copy()); |
12731 | return manage(ptr: res); |
12732 | } |
12733 | |
12734 | isl::union_pw_multi_aff multi_aff::to_union_pw_multi_aff() const |
12735 | { |
12736 | return isl::pw_multi_aff(*this).to_union_pw_multi_aff(); |
12737 | } |
12738 | |
12739 | isl::id multi_aff::tuple_id(isl::dim type) const |
12740 | { |
12741 | return isl::pw_multi_aff(*this).tuple_id(type); |
12742 | } |
12743 | |
12744 | isl::multi_aff multi_aff::unbind_params_insert_domain(isl::multi_id domain) const |
12745 | { |
12746 | auto res = isl_multi_aff_unbind_params_insert_domain(multi: copy(), domain: domain.release()); |
12747 | return manage(ptr: res); |
12748 | } |
12749 | |
12750 | isl::multi_pw_aff multi_aff::union_add(const isl::multi_pw_aff &mpa2) const |
12751 | { |
12752 | return isl::pw_multi_aff(*this).union_add(mpa2); |
12753 | } |
12754 | |
12755 | isl::multi_union_pw_aff multi_aff::union_add(const isl::multi_union_pw_aff &mupa2) const |
12756 | { |
12757 | return isl::pw_multi_aff(*this).union_add(mupa2); |
12758 | } |
12759 | |
12760 | isl::pw_multi_aff multi_aff::union_add(const isl::pw_multi_aff &pma2) const |
12761 | { |
12762 | return isl::pw_multi_aff(*this).union_add(pma2); |
12763 | } |
12764 | |
12765 | isl::union_pw_multi_aff multi_aff::union_add(const isl::union_pw_multi_aff &upma2) const |
12766 | { |
12767 | return isl::pw_multi_aff(*this).union_add(upma2); |
12768 | } |
12769 | |
12770 | isl::multi_aff multi_aff::zero(isl::space space) |
12771 | { |
12772 | auto res = isl_multi_aff_zero(space: space.release()); |
12773 | return manage(ptr: res); |
12774 | } |
12775 | |
12776 | inline std::ostream &operator<<(std::ostream &os, const multi_aff &obj) |
12777 | { |
12778 | char *str = isl_multi_aff_to_str(ma: obj.get()); |
12779 | if (!str) { |
12780 | os.setstate(std::ios_base::badbit); |
12781 | return os; |
12782 | } |
12783 | os << str; |
12784 | free(ptr: str); |
12785 | return os; |
12786 | } |
12787 | |
12788 | // implementations for isl::multi_id |
12789 | multi_id manage(__isl_take isl_multi_id *ptr) { |
12790 | return multi_id(ptr); |
12791 | } |
12792 | multi_id manage_copy(__isl_keep isl_multi_id *ptr) { |
12793 | ptr = isl_multi_id_copy(multi: ptr); |
12794 | return multi_id(ptr); |
12795 | } |
12796 | |
12797 | multi_id::multi_id() |
12798 | : ptr(nullptr) {} |
12799 | |
12800 | multi_id::multi_id(const multi_id &obj) |
12801 | : ptr(nullptr) |
12802 | { |
12803 | ptr = obj.copy(); |
12804 | } |
12805 | |
12806 | multi_id::multi_id(__isl_take isl_multi_id *ptr) |
12807 | : ptr(ptr) {} |
12808 | |
12809 | multi_id::multi_id(isl::space space, isl::id_list list) |
12810 | { |
12811 | auto res = isl_multi_id_from_id_list(space: space.release(), list: list.release()); |
12812 | ptr = res; |
12813 | } |
12814 | |
12815 | multi_id::multi_id(isl::ctx ctx, const std::string &str) |
12816 | { |
12817 | auto res = isl_multi_id_read_from_str(ctx: ctx.release(), str: str.c_str()); |
12818 | ptr = res; |
12819 | } |
12820 | |
12821 | multi_id &multi_id::operator=(multi_id obj) { |
12822 | std::swap(a&: this->ptr, b&: obj.ptr); |
12823 | return *this; |
12824 | } |
12825 | |
12826 | multi_id::~multi_id() { |
12827 | if (ptr) |
12828 | isl_multi_id_free(multi: ptr); |
12829 | } |
12830 | |
12831 | __isl_give isl_multi_id *multi_id::copy() const & { |
12832 | return isl_multi_id_copy(multi: ptr); |
12833 | } |
12834 | |
12835 | __isl_keep isl_multi_id *multi_id::get() const { |
12836 | return ptr; |
12837 | } |
12838 | |
12839 | __isl_give isl_multi_id *multi_id::release() { |
12840 | isl_multi_id *tmp = ptr; |
12841 | ptr = nullptr; |
12842 | return tmp; |
12843 | } |
12844 | |
12845 | bool multi_id::is_null() const { |
12846 | return ptr == nullptr; |
12847 | } |
12848 | |
12849 | isl::ctx multi_id::ctx() const { |
12850 | return isl::ctx(isl_multi_id_get_ctx(multi: ptr)); |
12851 | } |
12852 | |
12853 | isl::id multi_id::at(int pos) const |
12854 | { |
12855 | auto res = isl_multi_id_get_at(multi: get(), pos); |
12856 | return manage(ptr: res); |
12857 | } |
12858 | |
12859 | isl::id multi_id::get_at(int pos) const |
12860 | { |
12861 | return at(pos); |
12862 | } |
12863 | |
12864 | isl::multi_id multi_id::flat_range_product(isl::multi_id multi2) const |
12865 | { |
12866 | auto res = isl_multi_id_flat_range_product(multi1: copy(), multi2: multi2.release()); |
12867 | return manage(ptr: res); |
12868 | } |
12869 | |
12870 | isl::id_list multi_id::list() const |
12871 | { |
12872 | auto res = isl_multi_id_get_list(multi: get()); |
12873 | return manage(ptr: res); |
12874 | } |
12875 | |
12876 | isl::id_list multi_id::get_list() const |
12877 | { |
12878 | return list(); |
12879 | } |
12880 | |
12881 | boolean multi_id::plain_is_equal(const isl::multi_id &multi2) const |
12882 | { |
12883 | auto res = isl_multi_id_plain_is_equal(multi1: get(), multi2: multi2.get()); |
12884 | return manage(val: res); |
12885 | } |
12886 | |
12887 | isl::multi_id multi_id::range_product(isl::multi_id multi2) const |
12888 | { |
12889 | auto res = isl_multi_id_range_product(multi1: copy(), multi2: multi2.release()); |
12890 | return manage(ptr: res); |
12891 | } |
12892 | |
12893 | isl::multi_id multi_id::set_at(int pos, isl::id el) const |
12894 | { |
12895 | auto res = isl_multi_id_set_at(multi: copy(), pos, el: el.release()); |
12896 | return manage(ptr: res); |
12897 | } |
12898 | |
12899 | isl::multi_id multi_id::set_at(int pos, const std::string &el) const |
12900 | { |
12901 | return this->set_at(pos, el: isl::id(ctx(), el)); |
12902 | } |
12903 | |
12904 | isl::multi_id multi_id::set_id(int pos, isl::id el) const |
12905 | { |
12906 | auto res = isl_multi_id_set_id(multi: copy(), pos, el: el.release()); |
12907 | return manage(ptr: res); |
12908 | } |
12909 | |
12910 | isl::multi_id multi_id::set_id(int pos, const std::string &el) const |
12911 | { |
12912 | return this->set_id(pos, el: isl::id(ctx(), el)); |
12913 | } |
12914 | |
12915 | class size multi_id::size() const |
12916 | { |
12917 | auto res = isl_multi_id_size(multi: get()); |
12918 | return manage(val: res); |
12919 | } |
12920 | |
12921 | isl::space multi_id::space() const |
12922 | { |
12923 | auto res = isl_multi_id_get_space(multi: get()); |
12924 | return manage(ptr: res); |
12925 | } |
12926 | |
12927 | isl::space multi_id::get_space() const |
12928 | { |
12929 | return space(); |
12930 | } |
12931 | |
12932 | inline std::ostream &operator<<(std::ostream &os, const multi_id &obj) |
12933 | { |
12934 | char *str = isl_multi_id_to_str(mi: obj.get()); |
12935 | if (!str) { |
12936 | os.setstate(std::ios_base::badbit); |
12937 | return os; |
12938 | } |
12939 | os << str; |
12940 | free(ptr: str); |
12941 | return os; |
12942 | } |
12943 | |
12944 | // implementations for isl::multi_pw_aff |
12945 | multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr) { |
12946 | return multi_pw_aff(ptr); |
12947 | } |
12948 | multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr) { |
12949 | ptr = isl_multi_pw_aff_copy(multi: ptr); |
12950 | return multi_pw_aff(ptr); |
12951 | } |
12952 | |
12953 | multi_pw_aff::multi_pw_aff() |
12954 | : ptr(nullptr) {} |
12955 | |
12956 | multi_pw_aff::multi_pw_aff(const multi_pw_aff &obj) |
12957 | : ptr(nullptr) |
12958 | { |
12959 | ptr = obj.copy(); |
12960 | } |
12961 | |
12962 | multi_pw_aff::multi_pw_aff(__isl_take isl_multi_pw_aff *ptr) |
12963 | : ptr(ptr) {} |
12964 | |
12965 | multi_pw_aff::multi_pw_aff(isl::aff aff) |
12966 | { |
12967 | auto res = isl_multi_pw_aff_from_aff(aff: aff.release()); |
12968 | ptr = res; |
12969 | } |
12970 | |
12971 | multi_pw_aff::multi_pw_aff(isl::multi_aff ma) |
12972 | { |
12973 | auto res = isl_multi_pw_aff_from_multi_aff(ma: ma.release()); |
12974 | ptr = res; |
12975 | } |
12976 | |
12977 | multi_pw_aff::multi_pw_aff(isl::pw_aff pa) |
12978 | { |
12979 | auto res = isl_multi_pw_aff_from_pw_aff(pa: pa.release()); |
12980 | ptr = res; |
12981 | } |
12982 | |
12983 | multi_pw_aff::multi_pw_aff(isl::space space, isl::pw_aff_list list) |
12984 | { |
12985 | auto res = isl_multi_pw_aff_from_pw_aff_list(space: space.release(), list: list.release()); |
12986 | ptr = res; |
12987 | } |
12988 | |
12989 | multi_pw_aff::multi_pw_aff(isl::pw_multi_aff pma) |
12990 | { |
12991 | auto res = isl_multi_pw_aff_from_pw_multi_aff(pma: pma.release()); |
12992 | ptr = res; |
12993 | } |
12994 | |
12995 | multi_pw_aff::multi_pw_aff(isl::ctx ctx, const std::string &str) |
12996 | { |
12997 | auto res = isl_multi_pw_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
12998 | ptr = res; |
12999 | } |
13000 | |
13001 | multi_pw_aff &multi_pw_aff::operator=(multi_pw_aff obj) { |
13002 | std::swap(a&: this->ptr, b&: obj.ptr); |
13003 | return *this; |
13004 | } |
13005 | |
13006 | multi_pw_aff::~multi_pw_aff() { |
13007 | if (ptr) |
13008 | isl_multi_pw_aff_free(multi: ptr); |
13009 | } |
13010 | |
13011 | __isl_give isl_multi_pw_aff *multi_pw_aff::copy() const & { |
13012 | return isl_multi_pw_aff_copy(multi: ptr); |
13013 | } |
13014 | |
13015 | __isl_keep isl_multi_pw_aff *multi_pw_aff::get() const { |
13016 | return ptr; |
13017 | } |
13018 | |
13019 | __isl_give isl_multi_pw_aff *multi_pw_aff::release() { |
13020 | isl_multi_pw_aff *tmp = ptr; |
13021 | ptr = nullptr; |
13022 | return tmp; |
13023 | } |
13024 | |
13025 | bool multi_pw_aff::is_null() const { |
13026 | return ptr == nullptr; |
13027 | } |
13028 | |
13029 | isl::ctx multi_pw_aff::ctx() const { |
13030 | return isl::ctx(isl_multi_pw_aff_get_ctx(multi: ptr)); |
13031 | } |
13032 | |
13033 | isl::multi_pw_aff multi_pw_aff::add(isl::multi_pw_aff multi2) const |
13034 | { |
13035 | auto res = isl_multi_pw_aff_add(multi1: copy(), multi2: multi2.release()); |
13036 | return manage(ptr: res); |
13037 | } |
13038 | |
13039 | isl::multi_union_pw_aff multi_pw_aff::add(const isl::multi_union_pw_aff &multi2) const |
13040 | { |
13041 | return isl::multi_union_pw_aff(*this).add(multi2); |
13042 | } |
13043 | |
13044 | isl::multi_pw_aff multi_pw_aff::add(const isl::aff &multi2) const |
13045 | { |
13046 | return this->add(multi2: isl::multi_pw_aff(multi2)); |
13047 | } |
13048 | |
13049 | isl::multi_pw_aff multi_pw_aff::add(const isl::multi_aff &multi2) const |
13050 | { |
13051 | return this->add(multi2: isl::multi_pw_aff(multi2)); |
13052 | } |
13053 | |
13054 | isl::multi_pw_aff multi_pw_aff::add(const isl::pw_aff &multi2) const |
13055 | { |
13056 | return this->add(multi2: isl::multi_pw_aff(multi2)); |
13057 | } |
13058 | |
13059 | isl::multi_pw_aff multi_pw_aff::add(const isl::pw_multi_aff &multi2) const |
13060 | { |
13061 | return this->add(multi2: isl::multi_pw_aff(multi2)); |
13062 | } |
13063 | |
13064 | isl::multi_pw_aff multi_pw_aff::add_constant(isl::multi_val mv) const |
13065 | { |
13066 | auto res = isl_multi_pw_aff_add_constant_multi_val(mpa: copy(), mv: mv.release()); |
13067 | return manage(ptr: res); |
13068 | } |
13069 | |
13070 | isl::multi_pw_aff multi_pw_aff::add_constant(isl::val v) const |
13071 | { |
13072 | auto res = isl_multi_pw_aff_add_constant_val(mpa: copy(), v: v.release()); |
13073 | return manage(ptr: res); |
13074 | } |
13075 | |
13076 | isl::multi_pw_aff multi_pw_aff::add_constant(long v) const |
13077 | { |
13078 | return this->add_constant(v: isl::val(ctx(), v)); |
13079 | } |
13080 | |
13081 | isl::map multi_pw_aff::as_map() const |
13082 | { |
13083 | auto res = isl_multi_pw_aff_as_map(mpa: copy()); |
13084 | return manage(ptr: res); |
13085 | } |
13086 | |
13087 | isl::multi_aff multi_pw_aff::as_multi_aff() const |
13088 | { |
13089 | auto res = isl_multi_pw_aff_as_multi_aff(mpa: copy()); |
13090 | return manage(ptr: res); |
13091 | } |
13092 | |
13093 | isl::set multi_pw_aff::as_set() const |
13094 | { |
13095 | auto res = isl_multi_pw_aff_as_set(mpa: copy()); |
13096 | return manage(ptr: res); |
13097 | } |
13098 | |
13099 | isl::pw_aff multi_pw_aff::at(int pos) const |
13100 | { |
13101 | auto res = isl_multi_pw_aff_get_at(multi: get(), pos); |
13102 | return manage(ptr: res); |
13103 | } |
13104 | |
13105 | isl::pw_aff multi_pw_aff::get_at(int pos) const |
13106 | { |
13107 | return at(pos); |
13108 | } |
13109 | |
13110 | isl::set multi_pw_aff::bind(isl::multi_id tuple) const |
13111 | { |
13112 | auto res = isl_multi_pw_aff_bind(mpa: copy(), tuple: tuple.release()); |
13113 | return manage(ptr: res); |
13114 | } |
13115 | |
13116 | isl::multi_pw_aff multi_pw_aff::bind_domain(isl::multi_id tuple) const |
13117 | { |
13118 | auto res = isl_multi_pw_aff_bind_domain(multi: copy(), tuple: tuple.release()); |
13119 | return manage(ptr: res); |
13120 | } |
13121 | |
13122 | isl::multi_pw_aff multi_pw_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const |
13123 | { |
13124 | auto res = isl_multi_pw_aff_bind_domain_wrapped_domain(multi: copy(), tuple: tuple.release()); |
13125 | return manage(ptr: res); |
13126 | } |
13127 | |
13128 | isl::multi_pw_aff multi_pw_aff::coalesce() const |
13129 | { |
13130 | auto res = isl_multi_pw_aff_coalesce(mpa: copy()); |
13131 | return manage(ptr: res); |
13132 | } |
13133 | |
13134 | class size multi_pw_aff::dim(isl::dim type) const |
13135 | { |
13136 | auto res = isl_multi_pw_aff_dim(multi: get(), type: static_cast<enum isl_dim_type>(type)); |
13137 | return manage(val: res); |
13138 | } |
13139 | |
13140 | isl::set multi_pw_aff::domain() const |
13141 | { |
13142 | auto res = isl_multi_pw_aff_domain(mpa: copy()); |
13143 | return manage(ptr: res); |
13144 | } |
13145 | |
13146 | isl::multi_pw_aff multi_pw_aff::flat_range_product(isl::multi_pw_aff multi2) const |
13147 | { |
13148 | auto res = isl_multi_pw_aff_flat_range_product(multi1: copy(), multi2: multi2.release()); |
13149 | return manage(ptr: res); |
13150 | } |
13151 | |
13152 | isl::multi_union_pw_aff multi_pw_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const |
13153 | { |
13154 | return isl::multi_union_pw_aff(*this).flat_range_product(multi2); |
13155 | } |
13156 | |
13157 | isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::aff &multi2) const |
13158 | { |
13159 | return this->flat_range_product(multi2: isl::multi_pw_aff(multi2)); |
13160 | } |
13161 | |
13162 | isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::multi_aff &multi2) const |
13163 | { |
13164 | return this->flat_range_product(multi2: isl::multi_pw_aff(multi2)); |
13165 | } |
13166 | |
13167 | isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::pw_aff &multi2) const |
13168 | { |
13169 | return this->flat_range_product(multi2: isl::multi_pw_aff(multi2)); |
13170 | } |
13171 | |
13172 | isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::pw_multi_aff &multi2) const |
13173 | { |
13174 | return this->flat_range_product(multi2: isl::multi_pw_aff(multi2)); |
13175 | } |
13176 | |
13177 | isl::multi_pw_aff multi_pw_aff::gist(isl::set set) const |
13178 | { |
13179 | auto res = isl_multi_pw_aff_gist(mpa: copy(), set: set.release()); |
13180 | return manage(ptr: res); |
13181 | } |
13182 | |
13183 | isl::multi_union_pw_aff multi_pw_aff::gist(const isl::union_set &context) const |
13184 | { |
13185 | return isl::multi_union_pw_aff(*this).gist(context); |
13186 | } |
13187 | |
13188 | isl::multi_pw_aff multi_pw_aff::gist(const isl::basic_set &set) const |
13189 | { |
13190 | return this->gist(set: isl::set(set)); |
13191 | } |
13192 | |
13193 | isl::multi_pw_aff multi_pw_aff::gist(const isl::point &set) const |
13194 | { |
13195 | return this->gist(set: isl::set(set)); |
13196 | } |
13197 | |
13198 | boolean multi_pw_aff::has_range_tuple_id() const |
13199 | { |
13200 | auto res = isl_multi_pw_aff_has_range_tuple_id(multi: get()); |
13201 | return manage(val: res); |
13202 | } |
13203 | |
13204 | isl::multi_pw_aff multi_pw_aff::identity(isl::space space) |
13205 | { |
13206 | auto res = isl_multi_pw_aff_identity(space: space.release()); |
13207 | return manage(ptr: res); |
13208 | } |
13209 | |
13210 | isl::multi_pw_aff multi_pw_aff::identity() const |
13211 | { |
13212 | auto res = isl_multi_pw_aff_identity_multi_pw_aff(multi: copy()); |
13213 | return manage(ptr: res); |
13214 | } |
13215 | |
13216 | isl::multi_pw_aff multi_pw_aff::identity_on_domain(isl::space space) |
13217 | { |
13218 | auto res = isl_multi_pw_aff_identity_on_domain_space(space: space.release()); |
13219 | return manage(ptr: res); |
13220 | } |
13221 | |
13222 | isl::multi_pw_aff multi_pw_aff::insert_domain(isl::space domain) const |
13223 | { |
13224 | auto res = isl_multi_pw_aff_insert_domain(multi: copy(), domain: domain.release()); |
13225 | return manage(ptr: res); |
13226 | } |
13227 | |
13228 | isl::multi_pw_aff multi_pw_aff::intersect_domain(isl::set domain) const |
13229 | { |
13230 | auto res = isl_multi_pw_aff_intersect_domain(mpa: copy(), domain: domain.release()); |
13231 | return manage(ptr: res); |
13232 | } |
13233 | |
13234 | isl::multi_union_pw_aff multi_pw_aff::intersect_domain(const isl::union_set &uset) const |
13235 | { |
13236 | return isl::multi_union_pw_aff(*this).intersect_domain(uset); |
13237 | } |
13238 | |
13239 | isl::multi_pw_aff multi_pw_aff::intersect_domain(const isl::basic_set &domain) const |
13240 | { |
13241 | return this->intersect_domain(domain: isl::set(domain)); |
13242 | } |
13243 | |
13244 | isl::multi_pw_aff multi_pw_aff::intersect_domain(const isl::point &domain) const |
13245 | { |
13246 | return this->intersect_domain(domain: isl::set(domain)); |
13247 | } |
13248 | |
13249 | isl::multi_pw_aff multi_pw_aff::intersect_params(isl::set set) const |
13250 | { |
13251 | auto res = isl_multi_pw_aff_intersect_params(mpa: copy(), set: set.release()); |
13252 | return manage(ptr: res); |
13253 | } |
13254 | |
13255 | boolean multi_pw_aff::involves_nan() const |
13256 | { |
13257 | auto res = isl_multi_pw_aff_involves_nan(multi: get()); |
13258 | return manage(val: res); |
13259 | } |
13260 | |
13261 | boolean multi_pw_aff::involves_param(const isl::id &id) const |
13262 | { |
13263 | auto res = isl_multi_pw_aff_involves_param_id(multi: get(), id: id.get()); |
13264 | return manage(val: res); |
13265 | } |
13266 | |
13267 | boolean multi_pw_aff::involves_param(const std::string &id) const |
13268 | { |
13269 | return this->involves_param(id: isl::id(ctx(), id)); |
13270 | } |
13271 | |
13272 | boolean multi_pw_aff::involves_param(const isl::id_list &list) const |
13273 | { |
13274 | auto res = isl_multi_pw_aff_involves_param_id_list(multi: get(), list: list.get()); |
13275 | return manage(val: res); |
13276 | } |
13277 | |
13278 | boolean multi_pw_aff::isa_multi_aff() const |
13279 | { |
13280 | auto res = isl_multi_pw_aff_isa_multi_aff(mpa: get()); |
13281 | return manage(val: res); |
13282 | } |
13283 | |
13284 | isl::pw_aff_list multi_pw_aff::list() const |
13285 | { |
13286 | auto res = isl_multi_pw_aff_get_list(multi: get()); |
13287 | return manage(ptr: res); |
13288 | } |
13289 | |
13290 | isl::pw_aff_list multi_pw_aff::get_list() const |
13291 | { |
13292 | return list(); |
13293 | } |
13294 | |
13295 | isl::multi_pw_aff multi_pw_aff::max(isl::multi_pw_aff multi2) const |
13296 | { |
13297 | auto res = isl_multi_pw_aff_max(multi1: copy(), multi2: multi2.release()); |
13298 | return manage(ptr: res); |
13299 | } |
13300 | |
13301 | isl::multi_val multi_pw_aff::max_multi_val() const |
13302 | { |
13303 | auto res = isl_multi_pw_aff_max_multi_val(mpa: copy()); |
13304 | return manage(ptr: res); |
13305 | } |
13306 | |
13307 | isl::multi_pw_aff multi_pw_aff::min(isl::multi_pw_aff multi2) const |
13308 | { |
13309 | auto res = isl_multi_pw_aff_min(multi1: copy(), multi2: multi2.release()); |
13310 | return manage(ptr: res); |
13311 | } |
13312 | |
13313 | isl::multi_val multi_pw_aff::min_multi_val() const |
13314 | { |
13315 | auto res = isl_multi_pw_aff_min_multi_val(mpa: copy()); |
13316 | return manage(ptr: res); |
13317 | } |
13318 | |
13319 | isl::multi_pw_aff multi_pw_aff::neg() const |
13320 | { |
13321 | auto res = isl_multi_pw_aff_neg(multi: copy()); |
13322 | return manage(ptr: res); |
13323 | } |
13324 | |
13325 | boolean multi_pw_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const |
13326 | { |
13327 | auto res = isl_multi_pw_aff_plain_is_equal(multi1: get(), multi2: multi2.get()); |
13328 | return manage(val: res); |
13329 | } |
13330 | |
13331 | boolean multi_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
13332 | { |
13333 | return isl::multi_union_pw_aff(*this).plain_is_equal(multi2); |
13334 | } |
13335 | |
13336 | boolean multi_pw_aff::plain_is_equal(const isl::aff &multi2) const |
13337 | { |
13338 | return this->plain_is_equal(multi2: isl::multi_pw_aff(multi2)); |
13339 | } |
13340 | |
13341 | boolean multi_pw_aff::plain_is_equal(const isl::multi_aff &multi2) const |
13342 | { |
13343 | return this->plain_is_equal(multi2: isl::multi_pw_aff(multi2)); |
13344 | } |
13345 | |
13346 | boolean multi_pw_aff::plain_is_equal(const isl::pw_aff &multi2) const |
13347 | { |
13348 | return this->plain_is_equal(multi2: isl::multi_pw_aff(multi2)); |
13349 | } |
13350 | |
13351 | boolean multi_pw_aff::plain_is_equal(const isl::pw_multi_aff &multi2) const |
13352 | { |
13353 | return this->plain_is_equal(multi2: isl::multi_pw_aff(multi2)); |
13354 | } |
13355 | |
13356 | isl::multi_pw_aff multi_pw_aff::product(isl::multi_pw_aff multi2) const |
13357 | { |
13358 | auto res = isl_multi_pw_aff_product(multi1: copy(), multi2: multi2.release()); |
13359 | return manage(ptr: res); |
13360 | } |
13361 | |
13362 | isl::multi_pw_aff multi_pw_aff::pullback(isl::multi_aff ma) const |
13363 | { |
13364 | auto res = isl_multi_pw_aff_pullback_multi_aff(mpa: copy(), ma: ma.release()); |
13365 | return manage(ptr: res); |
13366 | } |
13367 | |
13368 | isl::multi_pw_aff multi_pw_aff::pullback(isl::multi_pw_aff mpa2) const |
13369 | { |
13370 | auto res = isl_multi_pw_aff_pullback_multi_pw_aff(mpa1: copy(), mpa2: mpa2.release()); |
13371 | return manage(ptr: res); |
13372 | } |
13373 | |
13374 | isl::multi_pw_aff multi_pw_aff::pullback(isl::pw_multi_aff pma) const |
13375 | { |
13376 | auto res = isl_multi_pw_aff_pullback_pw_multi_aff(mpa: copy(), pma: pma.release()); |
13377 | return manage(ptr: res); |
13378 | } |
13379 | |
13380 | isl::multi_union_pw_aff multi_pw_aff::pullback(const isl::union_pw_multi_aff &upma) const |
13381 | { |
13382 | return isl::multi_union_pw_aff(*this).pullback(upma); |
13383 | } |
13384 | |
13385 | isl::multi_pw_aff multi_pw_aff::range_product(isl::multi_pw_aff multi2) const |
13386 | { |
13387 | auto res = isl_multi_pw_aff_range_product(multi1: copy(), multi2: multi2.release()); |
13388 | return manage(ptr: res); |
13389 | } |
13390 | |
13391 | isl::multi_union_pw_aff multi_pw_aff::range_product(const isl::multi_union_pw_aff &multi2) const |
13392 | { |
13393 | return isl::multi_union_pw_aff(*this).range_product(multi2); |
13394 | } |
13395 | |
13396 | isl::multi_pw_aff multi_pw_aff::range_product(const isl::aff &multi2) const |
13397 | { |
13398 | return this->range_product(multi2: isl::multi_pw_aff(multi2)); |
13399 | } |
13400 | |
13401 | isl::multi_pw_aff multi_pw_aff::range_product(const isl::multi_aff &multi2) const |
13402 | { |
13403 | return this->range_product(multi2: isl::multi_pw_aff(multi2)); |
13404 | } |
13405 | |
13406 | isl::multi_pw_aff multi_pw_aff::range_product(const isl::pw_aff &multi2) const |
13407 | { |
13408 | return this->range_product(multi2: isl::multi_pw_aff(multi2)); |
13409 | } |
13410 | |
13411 | isl::multi_pw_aff multi_pw_aff::range_product(const isl::pw_multi_aff &multi2) const |
13412 | { |
13413 | return this->range_product(multi2: isl::multi_pw_aff(multi2)); |
13414 | } |
13415 | |
13416 | isl::id multi_pw_aff::range_tuple_id() const |
13417 | { |
13418 | auto res = isl_multi_pw_aff_get_range_tuple_id(multi: get()); |
13419 | return manage(ptr: res); |
13420 | } |
13421 | |
13422 | isl::id multi_pw_aff::get_range_tuple_id() const |
13423 | { |
13424 | return range_tuple_id(); |
13425 | } |
13426 | |
13427 | isl::multi_pw_aff multi_pw_aff::reset_range_tuple_id() const |
13428 | { |
13429 | auto res = isl_multi_pw_aff_reset_range_tuple_id(multi: copy()); |
13430 | return manage(ptr: res); |
13431 | } |
13432 | |
13433 | isl::multi_pw_aff multi_pw_aff::reset_tuple_id(isl::dim type) const |
13434 | { |
13435 | auto res = isl_multi_pw_aff_reset_tuple_id(multi: copy(), type: static_cast<enum isl_dim_type>(type)); |
13436 | return manage(ptr: res); |
13437 | } |
13438 | |
13439 | isl::multi_pw_aff multi_pw_aff::scale(isl::multi_val mv) const |
13440 | { |
13441 | auto res = isl_multi_pw_aff_scale_multi_val(multi: copy(), mv: mv.release()); |
13442 | return manage(ptr: res); |
13443 | } |
13444 | |
13445 | isl::multi_pw_aff multi_pw_aff::scale(isl::val v) const |
13446 | { |
13447 | auto res = isl_multi_pw_aff_scale_val(multi: copy(), v: v.release()); |
13448 | return manage(ptr: res); |
13449 | } |
13450 | |
13451 | isl::multi_pw_aff multi_pw_aff::scale(long v) const |
13452 | { |
13453 | return this->scale(v: isl::val(ctx(), v)); |
13454 | } |
13455 | |
13456 | isl::multi_pw_aff multi_pw_aff::scale_down(isl::multi_val mv) const |
13457 | { |
13458 | auto res = isl_multi_pw_aff_scale_down_multi_val(multi: copy(), mv: mv.release()); |
13459 | return manage(ptr: res); |
13460 | } |
13461 | |
13462 | isl::multi_pw_aff multi_pw_aff::scale_down(isl::val v) const |
13463 | { |
13464 | auto res = isl_multi_pw_aff_scale_down_val(multi: copy(), v: v.release()); |
13465 | return manage(ptr: res); |
13466 | } |
13467 | |
13468 | isl::multi_pw_aff multi_pw_aff::scale_down(long v) const |
13469 | { |
13470 | return this->scale_down(v: isl::val(ctx(), v)); |
13471 | } |
13472 | |
13473 | isl::multi_pw_aff multi_pw_aff::set_at(int pos, isl::pw_aff el) const |
13474 | { |
13475 | auto res = isl_multi_pw_aff_set_at(multi: copy(), pos, el: el.release()); |
13476 | return manage(ptr: res); |
13477 | } |
13478 | |
13479 | isl::multi_union_pw_aff multi_pw_aff::set_at(int pos, const isl::union_pw_aff &el) const |
13480 | { |
13481 | return isl::multi_union_pw_aff(*this).set_at(pos, el); |
13482 | } |
13483 | |
13484 | isl::multi_pw_aff multi_pw_aff::set_pw_aff(int pos, isl::pw_aff el) const |
13485 | { |
13486 | auto res = isl_multi_pw_aff_set_pw_aff(multi: copy(), pos, el: el.release()); |
13487 | return manage(ptr: res); |
13488 | } |
13489 | |
13490 | isl::multi_pw_aff multi_pw_aff::set_range_tuple(isl::id id) const |
13491 | { |
13492 | auto res = isl_multi_pw_aff_set_range_tuple_id(multi: copy(), id: id.release()); |
13493 | return manage(ptr: res); |
13494 | } |
13495 | |
13496 | isl::multi_pw_aff multi_pw_aff::set_range_tuple(const std::string &id) const |
13497 | { |
13498 | return this->set_range_tuple(isl::id(ctx(), id)); |
13499 | } |
13500 | |
13501 | isl::multi_union_pw_aff multi_pw_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const |
13502 | { |
13503 | return isl::multi_union_pw_aff(*this).set_union_pw_aff(pos, el); |
13504 | } |
13505 | |
13506 | class size multi_pw_aff::size() const |
13507 | { |
13508 | auto res = isl_multi_pw_aff_size(multi: get()); |
13509 | return manage(val: res); |
13510 | } |
13511 | |
13512 | isl::space multi_pw_aff::space() const |
13513 | { |
13514 | auto res = isl_multi_pw_aff_get_space(multi: get()); |
13515 | return manage(ptr: res); |
13516 | } |
13517 | |
13518 | isl::space multi_pw_aff::get_space() const |
13519 | { |
13520 | return space(); |
13521 | } |
13522 | |
13523 | isl::multi_pw_aff multi_pw_aff::sub(isl::multi_pw_aff multi2) const |
13524 | { |
13525 | auto res = isl_multi_pw_aff_sub(multi1: copy(), multi2: multi2.release()); |
13526 | return manage(ptr: res); |
13527 | } |
13528 | |
13529 | isl::multi_union_pw_aff multi_pw_aff::sub(const isl::multi_union_pw_aff &multi2) const |
13530 | { |
13531 | return isl::multi_union_pw_aff(*this).sub(multi2); |
13532 | } |
13533 | |
13534 | isl::multi_pw_aff multi_pw_aff::sub(const isl::aff &multi2) const |
13535 | { |
13536 | return this->sub(multi2: isl::multi_pw_aff(multi2)); |
13537 | } |
13538 | |
13539 | isl::multi_pw_aff multi_pw_aff::sub(const isl::multi_aff &multi2) const |
13540 | { |
13541 | return this->sub(multi2: isl::multi_pw_aff(multi2)); |
13542 | } |
13543 | |
13544 | isl::multi_pw_aff multi_pw_aff::sub(const isl::pw_aff &multi2) const |
13545 | { |
13546 | return this->sub(multi2: isl::multi_pw_aff(multi2)); |
13547 | } |
13548 | |
13549 | isl::multi_pw_aff multi_pw_aff::sub(const isl::pw_multi_aff &multi2) const |
13550 | { |
13551 | return this->sub(multi2: isl::multi_pw_aff(multi2)); |
13552 | } |
13553 | |
13554 | isl::multi_pw_aff multi_pw_aff::unbind_params_insert_domain(isl::multi_id domain) const |
13555 | { |
13556 | auto res = isl_multi_pw_aff_unbind_params_insert_domain(multi: copy(), domain: domain.release()); |
13557 | return manage(ptr: res); |
13558 | } |
13559 | |
13560 | isl::multi_pw_aff multi_pw_aff::union_add(isl::multi_pw_aff mpa2) const |
13561 | { |
13562 | auto res = isl_multi_pw_aff_union_add(mpa1: copy(), mpa2: mpa2.release()); |
13563 | return manage(ptr: res); |
13564 | } |
13565 | |
13566 | isl::multi_union_pw_aff multi_pw_aff::union_add(const isl::multi_union_pw_aff &mupa2) const |
13567 | { |
13568 | return isl::multi_union_pw_aff(*this).union_add(mupa2); |
13569 | } |
13570 | |
13571 | isl::multi_pw_aff multi_pw_aff::union_add(const isl::aff &mpa2) const |
13572 | { |
13573 | return this->union_add(mpa2: isl::multi_pw_aff(mpa2)); |
13574 | } |
13575 | |
13576 | isl::multi_pw_aff multi_pw_aff::union_add(const isl::multi_aff &mpa2) const |
13577 | { |
13578 | return this->union_add(mpa2: isl::multi_pw_aff(mpa2)); |
13579 | } |
13580 | |
13581 | isl::multi_pw_aff multi_pw_aff::union_add(const isl::pw_aff &mpa2) const |
13582 | { |
13583 | return this->union_add(mpa2: isl::multi_pw_aff(mpa2)); |
13584 | } |
13585 | |
13586 | isl::multi_pw_aff multi_pw_aff::union_add(const isl::pw_multi_aff &mpa2) const |
13587 | { |
13588 | return this->union_add(mpa2: isl::multi_pw_aff(mpa2)); |
13589 | } |
13590 | |
13591 | isl::multi_pw_aff multi_pw_aff::zero(isl::space space) |
13592 | { |
13593 | auto res = isl_multi_pw_aff_zero(space: space.release()); |
13594 | return manage(ptr: res); |
13595 | } |
13596 | |
13597 | inline std::ostream &operator<<(std::ostream &os, const multi_pw_aff &obj) |
13598 | { |
13599 | char *str = isl_multi_pw_aff_to_str(mpa: obj.get()); |
13600 | if (!str) { |
13601 | os.setstate(std::ios_base::badbit); |
13602 | return os; |
13603 | } |
13604 | os << str; |
13605 | free(ptr: str); |
13606 | return os; |
13607 | } |
13608 | |
13609 | // implementations for isl::multi_union_pw_aff |
13610 | multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr) { |
13611 | return multi_union_pw_aff(ptr); |
13612 | } |
13613 | multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr) { |
13614 | ptr = isl_multi_union_pw_aff_copy(multi: ptr); |
13615 | return multi_union_pw_aff(ptr); |
13616 | } |
13617 | |
13618 | multi_union_pw_aff::multi_union_pw_aff() |
13619 | : ptr(nullptr) {} |
13620 | |
13621 | multi_union_pw_aff::multi_union_pw_aff(const multi_union_pw_aff &obj) |
13622 | : ptr(nullptr) |
13623 | { |
13624 | ptr = obj.copy(); |
13625 | } |
13626 | |
13627 | multi_union_pw_aff::multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *ptr) |
13628 | : ptr(ptr) {} |
13629 | |
13630 | multi_union_pw_aff::multi_union_pw_aff(isl::multi_pw_aff mpa) |
13631 | { |
13632 | auto res = isl_multi_union_pw_aff_from_multi_pw_aff(mpa: mpa.release()); |
13633 | ptr = res; |
13634 | } |
13635 | |
13636 | multi_union_pw_aff::multi_union_pw_aff(isl::union_pw_aff upa) |
13637 | { |
13638 | auto res = isl_multi_union_pw_aff_from_union_pw_aff(upa: upa.release()); |
13639 | ptr = res; |
13640 | } |
13641 | |
13642 | multi_union_pw_aff::multi_union_pw_aff(isl::space space, isl::union_pw_aff_list list) |
13643 | { |
13644 | auto res = isl_multi_union_pw_aff_from_union_pw_aff_list(space: space.release(), list: list.release()); |
13645 | ptr = res; |
13646 | } |
13647 | |
13648 | multi_union_pw_aff::multi_union_pw_aff(isl::union_pw_multi_aff upma) |
13649 | { |
13650 | auto res = isl_multi_union_pw_aff_from_union_pw_multi_aff(upma: upma.release()); |
13651 | ptr = res; |
13652 | } |
13653 | |
13654 | multi_union_pw_aff::multi_union_pw_aff(isl::ctx ctx, const std::string &str) |
13655 | { |
13656 | auto res = isl_multi_union_pw_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
13657 | ptr = res; |
13658 | } |
13659 | |
13660 | multi_union_pw_aff &multi_union_pw_aff::operator=(multi_union_pw_aff obj) { |
13661 | std::swap(a&: this->ptr, b&: obj.ptr); |
13662 | return *this; |
13663 | } |
13664 | |
13665 | multi_union_pw_aff::~multi_union_pw_aff() { |
13666 | if (ptr) |
13667 | isl_multi_union_pw_aff_free(multi: ptr); |
13668 | } |
13669 | |
13670 | __isl_give isl_multi_union_pw_aff *multi_union_pw_aff::copy() const & { |
13671 | return isl_multi_union_pw_aff_copy(multi: ptr); |
13672 | } |
13673 | |
13674 | __isl_keep isl_multi_union_pw_aff *multi_union_pw_aff::get() const { |
13675 | return ptr; |
13676 | } |
13677 | |
13678 | __isl_give isl_multi_union_pw_aff *multi_union_pw_aff::release() { |
13679 | isl_multi_union_pw_aff *tmp = ptr; |
13680 | ptr = nullptr; |
13681 | return tmp; |
13682 | } |
13683 | |
13684 | bool multi_union_pw_aff::is_null() const { |
13685 | return ptr == nullptr; |
13686 | } |
13687 | |
13688 | isl::ctx multi_union_pw_aff::ctx() const { |
13689 | return isl::ctx(isl_multi_union_pw_aff_get_ctx(multi: ptr)); |
13690 | } |
13691 | |
13692 | isl::multi_union_pw_aff multi_union_pw_aff::add(isl::multi_union_pw_aff multi2) const |
13693 | { |
13694 | auto res = isl_multi_union_pw_aff_add(multi1: copy(), multi2: multi2.release()); |
13695 | return manage(ptr: res); |
13696 | } |
13697 | |
13698 | isl::union_pw_aff multi_union_pw_aff::at(int pos) const |
13699 | { |
13700 | auto res = isl_multi_union_pw_aff_get_at(multi: get(), pos); |
13701 | return manage(ptr: res); |
13702 | } |
13703 | |
13704 | isl::union_pw_aff multi_union_pw_aff::get_at(int pos) const |
13705 | { |
13706 | return at(pos); |
13707 | } |
13708 | |
13709 | isl::union_set multi_union_pw_aff::bind(isl::multi_id tuple) const |
13710 | { |
13711 | auto res = isl_multi_union_pw_aff_bind(mupa: copy(), tuple: tuple.release()); |
13712 | return manage(ptr: res); |
13713 | } |
13714 | |
13715 | isl::multi_union_pw_aff multi_union_pw_aff::coalesce() const |
13716 | { |
13717 | auto res = isl_multi_union_pw_aff_coalesce(mupa: copy()); |
13718 | return manage(ptr: res); |
13719 | } |
13720 | |
13721 | class size multi_union_pw_aff::dim(isl::dim type) const |
13722 | { |
13723 | auto res = isl_multi_union_pw_aff_dim(multi: get(), type: static_cast<enum isl_dim_type>(type)); |
13724 | return manage(val: res); |
13725 | } |
13726 | |
13727 | isl::union_set multi_union_pw_aff::domain() const |
13728 | { |
13729 | auto res = isl_multi_union_pw_aff_domain(mupa: copy()); |
13730 | return manage(ptr: res); |
13731 | } |
13732 | |
13733 | isl::multi_union_pw_aff multi_union_pw_aff::flat_range_product(isl::multi_union_pw_aff multi2) const |
13734 | { |
13735 | auto res = isl_multi_union_pw_aff_flat_range_product(multi1: copy(), multi2: multi2.release()); |
13736 | return manage(ptr: res); |
13737 | } |
13738 | |
13739 | isl::multi_union_pw_aff multi_union_pw_aff::from_union_map(isl::union_map umap) |
13740 | { |
13741 | auto res = isl_multi_union_pw_aff_from_union_map(umap: umap.release()); |
13742 | return manage(ptr: res); |
13743 | } |
13744 | |
13745 | isl::multi_union_pw_aff multi_union_pw_aff::gist(isl::union_set context) const |
13746 | { |
13747 | auto res = isl_multi_union_pw_aff_gist(mupa: copy(), context: context.release()); |
13748 | return manage(ptr: res); |
13749 | } |
13750 | |
13751 | boolean multi_union_pw_aff::has_range_tuple_id() const |
13752 | { |
13753 | auto res = isl_multi_union_pw_aff_has_range_tuple_id(multi: get()); |
13754 | return manage(val: res); |
13755 | } |
13756 | |
13757 | isl::multi_union_pw_aff multi_union_pw_aff::intersect_domain(isl::union_set uset) const |
13758 | { |
13759 | auto res = isl_multi_union_pw_aff_intersect_domain(mupa: copy(), uset: uset.release()); |
13760 | return manage(ptr: res); |
13761 | } |
13762 | |
13763 | isl::multi_union_pw_aff multi_union_pw_aff::intersect_params(isl::set params) const |
13764 | { |
13765 | auto res = isl_multi_union_pw_aff_intersect_params(mupa: copy(), params: params.release()); |
13766 | return manage(ptr: res); |
13767 | } |
13768 | |
13769 | boolean multi_union_pw_aff::involves_nan() const |
13770 | { |
13771 | auto res = isl_multi_union_pw_aff_involves_nan(multi: get()); |
13772 | return manage(val: res); |
13773 | } |
13774 | |
13775 | isl::union_pw_aff_list multi_union_pw_aff::list() const |
13776 | { |
13777 | auto res = isl_multi_union_pw_aff_get_list(multi: get()); |
13778 | return manage(ptr: res); |
13779 | } |
13780 | |
13781 | isl::union_pw_aff_list multi_union_pw_aff::get_list() const |
13782 | { |
13783 | return list(); |
13784 | } |
13785 | |
13786 | isl::multi_union_pw_aff multi_union_pw_aff::neg() const |
13787 | { |
13788 | auto res = isl_multi_union_pw_aff_neg(multi: copy()); |
13789 | return manage(ptr: res); |
13790 | } |
13791 | |
13792 | boolean multi_union_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
13793 | { |
13794 | auto res = isl_multi_union_pw_aff_plain_is_equal(multi1: get(), multi2: multi2.get()); |
13795 | return manage(val: res); |
13796 | } |
13797 | |
13798 | isl::multi_union_pw_aff multi_union_pw_aff::pullback(isl::union_pw_multi_aff upma) const |
13799 | { |
13800 | auto res = isl_multi_union_pw_aff_pullback_union_pw_multi_aff(mupa: copy(), upma: upma.release()); |
13801 | return manage(ptr: res); |
13802 | } |
13803 | |
13804 | isl::multi_union_pw_aff multi_union_pw_aff::range_product(isl::multi_union_pw_aff multi2) const |
13805 | { |
13806 | auto res = isl_multi_union_pw_aff_range_product(multi1: copy(), multi2: multi2.release()); |
13807 | return manage(ptr: res); |
13808 | } |
13809 | |
13810 | isl::id multi_union_pw_aff::range_tuple_id() const |
13811 | { |
13812 | auto res = isl_multi_union_pw_aff_get_range_tuple_id(multi: get()); |
13813 | return manage(ptr: res); |
13814 | } |
13815 | |
13816 | isl::id multi_union_pw_aff::get_range_tuple_id() const |
13817 | { |
13818 | return range_tuple_id(); |
13819 | } |
13820 | |
13821 | isl::multi_union_pw_aff multi_union_pw_aff::reset_range_tuple_id() const |
13822 | { |
13823 | auto res = isl_multi_union_pw_aff_reset_range_tuple_id(multi: copy()); |
13824 | return manage(ptr: res); |
13825 | } |
13826 | |
13827 | isl::multi_union_pw_aff multi_union_pw_aff::reset_tuple_id(isl::dim type) const |
13828 | { |
13829 | auto res = isl_multi_union_pw_aff_reset_tuple_id(multi: copy(), type: static_cast<enum isl_dim_type>(type)); |
13830 | return manage(ptr: res); |
13831 | } |
13832 | |
13833 | isl::multi_union_pw_aff multi_union_pw_aff::scale(isl::multi_val mv) const |
13834 | { |
13835 | auto res = isl_multi_union_pw_aff_scale_multi_val(multi: copy(), mv: mv.release()); |
13836 | return manage(ptr: res); |
13837 | } |
13838 | |
13839 | isl::multi_union_pw_aff multi_union_pw_aff::scale(isl::val v) const |
13840 | { |
13841 | auto res = isl_multi_union_pw_aff_scale_val(multi: copy(), v: v.release()); |
13842 | return manage(ptr: res); |
13843 | } |
13844 | |
13845 | isl::multi_union_pw_aff multi_union_pw_aff::scale(long v) const |
13846 | { |
13847 | return this->scale(v: isl::val(ctx(), v)); |
13848 | } |
13849 | |
13850 | isl::multi_union_pw_aff multi_union_pw_aff::scale_down(isl::multi_val mv) const |
13851 | { |
13852 | auto res = isl_multi_union_pw_aff_scale_down_multi_val(multi: copy(), mv: mv.release()); |
13853 | return manage(ptr: res); |
13854 | } |
13855 | |
13856 | isl::multi_union_pw_aff multi_union_pw_aff::scale_down(isl::val v) const |
13857 | { |
13858 | auto res = isl_multi_union_pw_aff_scale_down_val(multi: copy(), v: v.release()); |
13859 | return manage(ptr: res); |
13860 | } |
13861 | |
13862 | isl::multi_union_pw_aff multi_union_pw_aff::scale_down(long v) const |
13863 | { |
13864 | return this->scale_down(v: isl::val(ctx(), v)); |
13865 | } |
13866 | |
13867 | isl::multi_union_pw_aff multi_union_pw_aff::set_at(int pos, isl::union_pw_aff el) const |
13868 | { |
13869 | auto res = isl_multi_union_pw_aff_set_at(multi: copy(), pos, el: el.release()); |
13870 | return manage(ptr: res); |
13871 | } |
13872 | |
13873 | isl::multi_union_pw_aff multi_union_pw_aff::set_range_tuple(isl::id id) const |
13874 | { |
13875 | auto res = isl_multi_union_pw_aff_set_range_tuple_id(multi: copy(), id: id.release()); |
13876 | return manage(ptr: res); |
13877 | } |
13878 | |
13879 | isl::multi_union_pw_aff multi_union_pw_aff::set_range_tuple(const std::string &id) const |
13880 | { |
13881 | return this->set_range_tuple(isl::id(ctx(), id)); |
13882 | } |
13883 | |
13884 | isl::multi_union_pw_aff multi_union_pw_aff::set_union_pw_aff(int pos, isl::union_pw_aff el) const |
13885 | { |
13886 | auto res = isl_multi_union_pw_aff_set_union_pw_aff(multi: copy(), pos, el: el.release()); |
13887 | return manage(ptr: res); |
13888 | } |
13889 | |
13890 | class size multi_union_pw_aff::size() const |
13891 | { |
13892 | auto res = isl_multi_union_pw_aff_size(multi: get()); |
13893 | return manage(val: res); |
13894 | } |
13895 | |
13896 | isl::space multi_union_pw_aff::space() const |
13897 | { |
13898 | auto res = isl_multi_union_pw_aff_get_space(multi: get()); |
13899 | return manage(ptr: res); |
13900 | } |
13901 | |
13902 | isl::space multi_union_pw_aff::get_space() const |
13903 | { |
13904 | return space(); |
13905 | } |
13906 | |
13907 | isl::multi_union_pw_aff multi_union_pw_aff::sub(isl::multi_union_pw_aff multi2) const |
13908 | { |
13909 | auto res = isl_multi_union_pw_aff_sub(multi1: copy(), multi2: multi2.release()); |
13910 | return manage(ptr: res); |
13911 | } |
13912 | |
13913 | isl::multi_union_pw_aff multi_union_pw_aff::union_add(isl::multi_union_pw_aff mupa2) const |
13914 | { |
13915 | auto res = isl_multi_union_pw_aff_union_add(mupa1: copy(), mupa2: mupa2.release()); |
13916 | return manage(ptr: res); |
13917 | } |
13918 | |
13919 | isl::multi_union_pw_aff multi_union_pw_aff::zero(isl::space space) |
13920 | { |
13921 | auto res = isl_multi_union_pw_aff_zero(space: space.release()); |
13922 | return manage(ptr: res); |
13923 | } |
13924 | |
13925 | inline std::ostream &operator<<(std::ostream &os, const multi_union_pw_aff &obj) |
13926 | { |
13927 | char *str = isl_multi_union_pw_aff_to_str(mupa: obj.get()); |
13928 | if (!str) { |
13929 | os.setstate(std::ios_base::badbit); |
13930 | return os; |
13931 | } |
13932 | os << str; |
13933 | free(ptr: str); |
13934 | return os; |
13935 | } |
13936 | |
13937 | // implementations for isl::multi_val |
13938 | multi_val manage(__isl_take isl_multi_val *ptr) { |
13939 | return multi_val(ptr); |
13940 | } |
13941 | multi_val manage_copy(__isl_keep isl_multi_val *ptr) { |
13942 | ptr = isl_multi_val_copy(multi: ptr); |
13943 | return multi_val(ptr); |
13944 | } |
13945 | |
13946 | multi_val::multi_val() |
13947 | : ptr(nullptr) {} |
13948 | |
13949 | multi_val::multi_val(const multi_val &obj) |
13950 | : ptr(nullptr) |
13951 | { |
13952 | ptr = obj.copy(); |
13953 | } |
13954 | |
13955 | multi_val::multi_val(__isl_take isl_multi_val *ptr) |
13956 | : ptr(ptr) {} |
13957 | |
13958 | multi_val::multi_val(isl::space space, isl::val_list list) |
13959 | { |
13960 | auto res = isl_multi_val_from_val_list(space: space.release(), list: list.release()); |
13961 | ptr = res; |
13962 | } |
13963 | |
13964 | multi_val::multi_val(isl::ctx ctx, const std::string &str) |
13965 | { |
13966 | auto res = isl_multi_val_read_from_str(ctx: ctx.release(), str: str.c_str()); |
13967 | ptr = res; |
13968 | } |
13969 | |
13970 | multi_val &multi_val::operator=(multi_val obj) { |
13971 | std::swap(a&: this->ptr, b&: obj.ptr); |
13972 | return *this; |
13973 | } |
13974 | |
13975 | multi_val::~multi_val() { |
13976 | if (ptr) |
13977 | isl_multi_val_free(multi: ptr); |
13978 | } |
13979 | |
13980 | __isl_give isl_multi_val *multi_val::copy() const & { |
13981 | return isl_multi_val_copy(multi: ptr); |
13982 | } |
13983 | |
13984 | __isl_keep isl_multi_val *multi_val::get() const { |
13985 | return ptr; |
13986 | } |
13987 | |
13988 | __isl_give isl_multi_val *multi_val::release() { |
13989 | isl_multi_val *tmp = ptr; |
13990 | ptr = nullptr; |
13991 | return tmp; |
13992 | } |
13993 | |
13994 | bool multi_val::is_null() const { |
13995 | return ptr == nullptr; |
13996 | } |
13997 | |
13998 | isl::ctx multi_val::ctx() const { |
13999 | return isl::ctx(isl_multi_val_get_ctx(multi: ptr)); |
14000 | } |
14001 | |
14002 | isl::multi_val multi_val::add(isl::multi_val multi2) const |
14003 | { |
14004 | auto res = isl_multi_val_add(multi1: copy(), multi2: multi2.release()); |
14005 | return manage(ptr: res); |
14006 | } |
14007 | |
14008 | isl::multi_val multi_val::add(isl::val v) const |
14009 | { |
14010 | auto res = isl_multi_val_add_val(mv: copy(), v: v.release()); |
14011 | return manage(ptr: res); |
14012 | } |
14013 | |
14014 | isl::multi_val multi_val::add(long v) const |
14015 | { |
14016 | return this->add(v: isl::val(ctx(), v)); |
14017 | } |
14018 | |
14019 | isl::val multi_val::at(int pos) const |
14020 | { |
14021 | auto res = isl_multi_val_get_at(multi: get(), pos); |
14022 | return manage(ptr: res); |
14023 | } |
14024 | |
14025 | isl::val multi_val::get_at(int pos) const |
14026 | { |
14027 | return at(pos); |
14028 | } |
14029 | |
14030 | class size multi_val::dim(isl::dim type) const |
14031 | { |
14032 | auto res = isl_multi_val_dim(multi: get(), type: static_cast<enum isl_dim_type>(type)); |
14033 | return manage(val: res); |
14034 | } |
14035 | |
14036 | isl::multi_val multi_val::flat_range_product(isl::multi_val multi2) const |
14037 | { |
14038 | auto res = isl_multi_val_flat_range_product(multi1: copy(), multi2: multi2.release()); |
14039 | return manage(ptr: res); |
14040 | } |
14041 | |
14042 | boolean multi_val::has_range_tuple_id() const |
14043 | { |
14044 | auto res = isl_multi_val_has_range_tuple_id(multi: get()); |
14045 | return manage(val: res); |
14046 | } |
14047 | |
14048 | boolean multi_val::involves_nan() const |
14049 | { |
14050 | auto res = isl_multi_val_involves_nan(multi: get()); |
14051 | return manage(val: res); |
14052 | } |
14053 | |
14054 | isl::val_list multi_val::list() const |
14055 | { |
14056 | auto res = isl_multi_val_get_list(multi: get()); |
14057 | return manage(ptr: res); |
14058 | } |
14059 | |
14060 | isl::val_list multi_val::get_list() const |
14061 | { |
14062 | return list(); |
14063 | } |
14064 | |
14065 | isl::multi_val multi_val::max(isl::multi_val multi2) const |
14066 | { |
14067 | auto res = isl_multi_val_max(multi1: copy(), multi2: multi2.release()); |
14068 | return manage(ptr: res); |
14069 | } |
14070 | |
14071 | isl::multi_val multi_val::min(isl::multi_val multi2) const |
14072 | { |
14073 | auto res = isl_multi_val_min(multi1: copy(), multi2: multi2.release()); |
14074 | return manage(ptr: res); |
14075 | } |
14076 | |
14077 | isl::multi_val multi_val::neg() const |
14078 | { |
14079 | auto res = isl_multi_val_neg(multi: copy()); |
14080 | return manage(ptr: res); |
14081 | } |
14082 | |
14083 | boolean multi_val::plain_is_equal(const isl::multi_val &multi2) const |
14084 | { |
14085 | auto res = isl_multi_val_plain_is_equal(multi1: get(), multi2: multi2.get()); |
14086 | return manage(val: res); |
14087 | } |
14088 | |
14089 | isl::multi_val multi_val::product(isl::multi_val multi2) const |
14090 | { |
14091 | auto res = isl_multi_val_product(multi1: copy(), multi2: multi2.release()); |
14092 | return manage(ptr: res); |
14093 | } |
14094 | |
14095 | isl::multi_val multi_val::range_product(isl::multi_val multi2) const |
14096 | { |
14097 | auto res = isl_multi_val_range_product(multi1: copy(), multi2: multi2.release()); |
14098 | return manage(ptr: res); |
14099 | } |
14100 | |
14101 | isl::id multi_val::range_tuple_id() const |
14102 | { |
14103 | auto res = isl_multi_val_get_range_tuple_id(multi: get()); |
14104 | return manage(ptr: res); |
14105 | } |
14106 | |
14107 | isl::id multi_val::get_range_tuple_id() const |
14108 | { |
14109 | return range_tuple_id(); |
14110 | } |
14111 | |
14112 | isl::multi_val multi_val::reset_range_tuple_id() const |
14113 | { |
14114 | auto res = isl_multi_val_reset_range_tuple_id(multi: copy()); |
14115 | return manage(ptr: res); |
14116 | } |
14117 | |
14118 | isl::multi_val multi_val::reset_tuple_id(isl::dim type) const |
14119 | { |
14120 | auto res = isl_multi_val_reset_tuple_id(multi: copy(), type: static_cast<enum isl_dim_type>(type)); |
14121 | return manage(ptr: res); |
14122 | } |
14123 | |
14124 | isl::multi_val multi_val::scale(isl::multi_val mv) const |
14125 | { |
14126 | auto res = isl_multi_val_scale_multi_val(multi: copy(), mv: mv.release()); |
14127 | return manage(ptr: res); |
14128 | } |
14129 | |
14130 | isl::multi_val multi_val::scale(isl::val v) const |
14131 | { |
14132 | auto res = isl_multi_val_scale_val(multi: copy(), v: v.release()); |
14133 | return manage(ptr: res); |
14134 | } |
14135 | |
14136 | isl::multi_val multi_val::scale(long v) const |
14137 | { |
14138 | return this->scale(v: isl::val(ctx(), v)); |
14139 | } |
14140 | |
14141 | isl::multi_val multi_val::scale_down(isl::multi_val mv) const |
14142 | { |
14143 | auto res = isl_multi_val_scale_down_multi_val(multi: copy(), mv: mv.release()); |
14144 | return manage(ptr: res); |
14145 | } |
14146 | |
14147 | isl::multi_val multi_val::scale_down(isl::val v) const |
14148 | { |
14149 | auto res = isl_multi_val_scale_down_val(multi: copy(), v: v.release()); |
14150 | return manage(ptr: res); |
14151 | } |
14152 | |
14153 | isl::multi_val multi_val::scale_down(long v) const |
14154 | { |
14155 | return this->scale_down(v: isl::val(ctx(), v)); |
14156 | } |
14157 | |
14158 | isl::multi_val multi_val::set_at(int pos, isl::val el) const |
14159 | { |
14160 | auto res = isl_multi_val_set_at(multi: copy(), pos, el: el.release()); |
14161 | return manage(ptr: res); |
14162 | } |
14163 | |
14164 | isl::multi_val multi_val::set_at(int pos, long el) const |
14165 | { |
14166 | return this->set_at(pos, el: isl::val(ctx(), el)); |
14167 | } |
14168 | |
14169 | isl::multi_val multi_val::set_range_tuple(isl::id id) const |
14170 | { |
14171 | auto res = isl_multi_val_set_range_tuple_id(multi: copy(), id: id.release()); |
14172 | return manage(ptr: res); |
14173 | } |
14174 | |
14175 | isl::multi_val multi_val::set_range_tuple(const std::string &id) const |
14176 | { |
14177 | return this->set_range_tuple(isl::id(ctx(), id)); |
14178 | } |
14179 | |
14180 | isl::multi_val multi_val::set_val(int pos, isl::val el) const |
14181 | { |
14182 | auto res = isl_multi_val_set_val(multi: copy(), pos, el: el.release()); |
14183 | return manage(ptr: res); |
14184 | } |
14185 | |
14186 | isl::multi_val multi_val::set_val(int pos, long el) const |
14187 | { |
14188 | return this->set_val(pos, el: isl::val(ctx(), el)); |
14189 | } |
14190 | |
14191 | class size multi_val::size() const |
14192 | { |
14193 | auto res = isl_multi_val_size(multi: get()); |
14194 | return manage(val: res); |
14195 | } |
14196 | |
14197 | isl::space multi_val::space() const |
14198 | { |
14199 | auto res = isl_multi_val_get_space(multi: get()); |
14200 | return manage(ptr: res); |
14201 | } |
14202 | |
14203 | isl::space multi_val::get_space() const |
14204 | { |
14205 | return space(); |
14206 | } |
14207 | |
14208 | isl::multi_val multi_val::sub(isl::multi_val multi2) const |
14209 | { |
14210 | auto res = isl_multi_val_sub(multi1: copy(), multi2: multi2.release()); |
14211 | return manage(ptr: res); |
14212 | } |
14213 | |
14214 | isl::multi_val multi_val::zero(isl::space space) |
14215 | { |
14216 | auto res = isl_multi_val_zero(space: space.release()); |
14217 | return manage(ptr: res); |
14218 | } |
14219 | |
14220 | inline std::ostream &operator<<(std::ostream &os, const multi_val &obj) |
14221 | { |
14222 | char *str = isl_multi_val_to_str(mv: obj.get()); |
14223 | if (!str) { |
14224 | os.setstate(std::ios_base::badbit); |
14225 | return os; |
14226 | } |
14227 | os << str; |
14228 | free(ptr: str); |
14229 | return os; |
14230 | } |
14231 | |
14232 | // implementations for isl::point |
14233 | point manage(__isl_take isl_point *ptr) { |
14234 | return point(ptr); |
14235 | } |
14236 | point manage_copy(__isl_keep isl_point *ptr) { |
14237 | ptr = isl_point_copy(pnt: ptr); |
14238 | return point(ptr); |
14239 | } |
14240 | |
14241 | point::point() |
14242 | : ptr(nullptr) {} |
14243 | |
14244 | point::point(const point &obj) |
14245 | : ptr(nullptr) |
14246 | { |
14247 | ptr = obj.copy(); |
14248 | } |
14249 | |
14250 | point::point(__isl_take isl_point *ptr) |
14251 | : ptr(ptr) {} |
14252 | |
14253 | point::point(isl::space space) |
14254 | { |
14255 | auto res = isl_point_zero(space: space.release()); |
14256 | ptr = res; |
14257 | } |
14258 | |
14259 | point &point::operator=(point obj) { |
14260 | std::swap(a&: this->ptr, b&: obj.ptr); |
14261 | return *this; |
14262 | } |
14263 | |
14264 | point::~point() { |
14265 | if (ptr) |
14266 | isl_point_free(pnt: ptr); |
14267 | } |
14268 | |
14269 | __isl_give isl_point *point::copy() const & { |
14270 | return isl_point_copy(pnt: ptr); |
14271 | } |
14272 | |
14273 | __isl_keep isl_point *point::get() const { |
14274 | return ptr; |
14275 | } |
14276 | |
14277 | __isl_give isl_point *point::release() { |
14278 | isl_point *tmp = ptr; |
14279 | ptr = nullptr; |
14280 | return tmp; |
14281 | } |
14282 | |
14283 | bool point::is_null() const { |
14284 | return ptr == nullptr; |
14285 | } |
14286 | |
14287 | isl::ctx point::ctx() const { |
14288 | return isl::ctx(isl_point_get_ctx(pnt: ptr)); |
14289 | } |
14290 | |
14291 | isl::set point::add_constraint(const isl::constraint &constraint) const |
14292 | { |
14293 | return isl::basic_set(*this).add_constraint(constraint); |
14294 | } |
14295 | |
14296 | isl::set point::add_dims(isl::dim type, unsigned int n) const |
14297 | { |
14298 | return isl::basic_set(*this).add_dims(type, n); |
14299 | } |
14300 | |
14301 | isl::basic_set point::affine_hull() const |
14302 | { |
14303 | return isl::basic_set(*this).affine_hull(); |
14304 | } |
14305 | |
14306 | isl::set point::align_params(const isl::space &model) const |
14307 | { |
14308 | return isl::basic_set(*this).align_params(model); |
14309 | } |
14310 | |
14311 | isl::basic_set point::apply(const isl::basic_map &bmap) const |
14312 | { |
14313 | return isl::basic_set(*this).apply(bmap); |
14314 | } |
14315 | |
14316 | isl::set point::apply(const isl::map &map) const |
14317 | { |
14318 | return isl::basic_set(*this).apply(map); |
14319 | } |
14320 | |
14321 | isl::union_set point::apply(const isl::union_map &umap) const |
14322 | { |
14323 | return isl::basic_set(*this).apply(umap); |
14324 | } |
14325 | |
14326 | isl::pw_multi_aff point::as_pw_multi_aff() const |
14327 | { |
14328 | return isl::basic_set(*this).as_pw_multi_aff(); |
14329 | } |
14330 | |
14331 | isl::set point::as_set() const |
14332 | { |
14333 | return isl::basic_set(*this).as_set(); |
14334 | } |
14335 | |
14336 | isl::basic_set_list point::basic_set_list() const |
14337 | { |
14338 | return isl::basic_set(*this).basic_set_list(); |
14339 | } |
14340 | |
14341 | isl::set point::bind(const isl::multi_id &tuple) const |
14342 | { |
14343 | return isl::basic_set(*this).bind(tuple); |
14344 | } |
14345 | |
14346 | isl::set point::coalesce() const |
14347 | { |
14348 | return isl::basic_set(*this).coalesce(); |
14349 | } |
14350 | |
14351 | isl::set point::complement() const |
14352 | { |
14353 | return isl::basic_set(*this).complement(); |
14354 | } |
14355 | |
14356 | isl::union_set point::compute_divs() const |
14357 | { |
14358 | return isl::basic_set(*this).compute_divs(); |
14359 | } |
14360 | |
14361 | boolean point::contains(const isl::space &space) const |
14362 | { |
14363 | return isl::basic_set(*this).contains(space); |
14364 | } |
14365 | |
14366 | isl::basic_set point::convex_hull() const |
14367 | { |
14368 | return isl::basic_set(*this).convex_hull(); |
14369 | } |
14370 | |
14371 | isl::val point::coordinate_val(isl::dim type, int pos) const |
14372 | { |
14373 | auto res = isl_point_get_coordinate_val(pnt: get(), type: static_cast<enum isl_dim_type>(type), pos); |
14374 | return manage(ptr: res); |
14375 | } |
14376 | |
14377 | isl::val point::get_coordinate_val(isl::dim type, int pos) const |
14378 | { |
14379 | return coordinate_val(type, pos); |
14380 | } |
14381 | |
14382 | isl::basic_set point::detect_equalities() const |
14383 | { |
14384 | return isl::basic_set(*this).detect_equalities(); |
14385 | } |
14386 | |
14387 | class size point::dim(isl::dim type) const |
14388 | { |
14389 | return isl::basic_set(*this).dim(type); |
14390 | } |
14391 | |
14392 | boolean point::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const |
14393 | { |
14394 | return isl::basic_set(*this).dim_has_any_lower_bound(type, pos); |
14395 | } |
14396 | |
14397 | isl::id point::dim_id(isl::dim type, unsigned int pos) const |
14398 | { |
14399 | return isl::basic_set(*this).dim_id(type, pos); |
14400 | } |
14401 | |
14402 | isl::pw_aff point::dim_max(int pos) const |
14403 | { |
14404 | return isl::basic_set(*this).dim_max(pos); |
14405 | } |
14406 | |
14407 | isl::val point::dim_max_val(int pos) const |
14408 | { |
14409 | return isl::basic_set(*this).dim_max_val(pos); |
14410 | } |
14411 | |
14412 | isl::pw_aff point::dim_min(int pos) const |
14413 | { |
14414 | return isl::basic_set(*this).dim_min(pos); |
14415 | } |
14416 | |
14417 | isl::val point::dim_min_val(int pos) const |
14418 | { |
14419 | return isl::basic_set(*this).dim_min_val(pos); |
14420 | } |
14421 | |
14422 | std::string point::dim_name(isl::dim type, unsigned int pos) const |
14423 | { |
14424 | return isl::basic_set(*this).dim_name(type, pos); |
14425 | } |
14426 | |
14427 | isl::aff point::div(int pos) const |
14428 | { |
14429 | return isl::basic_set(*this).div(pos); |
14430 | } |
14431 | |
14432 | isl::set point::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const |
14433 | { |
14434 | return isl::basic_set(*this).drop_constraints_involving_dims(type, first, n); |
14435 | } |
14436 | |
14437 | isl::set point::eliminate(isl::dim type, unsigned int first, unsigned int n) const |
14438 | { |
14439 | return isl::basic_set(*this).eliminate(type, first, n); |
14440 | } |
14441 | |
14442 | boolean point::every_set(const std::function<boolean(isl::set)> &test) const |
14443 | { |
14444 | return isl::basic_set(*this).every_set(test); |
14445 | } |
14446 | |
14447 | isl::set point::(const isl::space &space) const |
14448 | { |
14449 | return isl::basic_set(*this).extract_set(space); |
14450 | } |
14451 | |
14452 | int point::find_dim_by_id(isl::dim type, const isl::id &id) const |
14453 | { |
14454 | return isl::basic_set(*this).find_dim_by_id(type, id); |
14455 | } |
14456 | |
14457 | int point::find_dim_by_id(isl::dim type, const std::string &id) const |
14458 | { |
14459 | return this->find_dim_by_id(type, id: isl::id(ctx(), id)); |
14460 | } |
14461 | |
14462 | isl::basic_set point::fix_si(isl::dim type, unsigned int pos, int value) const |
14463 | { |
14464 | return isl::basic_set(*this).fix_si(type, pos, value); |
14465 | } |
14466 | |
14467 | isl::basic_set point::fix_val(isl::dim type, unsigned int pos, const isl::val &v) const |
14468 | { |
14469 | return isl::basic_set(*this).fix_val(type, pos, v); |
14470 | } |
14471 | |
14472 | isl::basic_set point::fix_val(isl::dim type, unsigned int pos, long v) const |
14473 | { |
14474 | return this->fix_val(type, pos, v: isl::val(ctx(), v)); |
14475 | } |
14476 | |
14477 | isl::basic_set point::flatten() const |
14478 | { |
14479 | return isl::basic_set(*this).flatten(); |
14480 | } |
14481 | |
14482 | stat point::foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const |
14483 | { |
14484 | return isl::basic_set(*this).foreach_basic_set(fn); |
14485 | } |
14486 | |
14487 | stat point::foreach_point(const std::function<stat(isl::point)> &fn) const |
14488 | { |
14489 | return isl::basic_set(*this).foreach_point(fn); |
14490 | } |
14491 | |
14492 | stat point::foreach_set(const std::function<stat(isl::set)> &fn) const |
14493 | { |
14494 | return isl::basic_set(*this).foreach_set(fn); |
14495 | } |
14496 | |
14497 | isl::basic_set point::gist(const isl::basic_set &context) const |
14498 | { |
14499 | return isl::basic_set(*this).gist(context); |
14500 | } |
14501 | |
14502 | isl::set point::gist(const isl::set &context) const |
14503 | { |
14504 | return isl::basic_set(*this).gist(context); |
14505 | } |
14506 | |
14507 | isl::union_set point::gist(const isl::union_set &context) const |
14508 | { |
14509 | return isl::basic_set(*this).gist(context); |
14510 | } |
14511 | |
14512 | isl::set point::gist_params(const isl::set &context) const |
14513 | { |
14514 | return isl::basic_set(*this).gist_params(context); |
14515 | } |
14516 | |
14517 | boolean point::has_equal_space(const isl::set &set2) const |
14518 | { |
14519 | return isl::basic_set(*this).has_equal_space(set2); |
14520 | } |
14521 | |
14522 | isl::map point::identity() const |
14523 | { |
14524 | return isl::basic_set(*this).identity(); |
14525 | } |
14526 | |
14527 | isl::union_pw_multi_aff point::identity_union_pw_multi_aff() const |
14528 | { |
14529 | return isl::basic_set(*this).identity_union_pw_multi_aff(); |
14530 | } |
14531 | |
14532 | isl::pw_aff point::indicator_function() const |
14533 | { |
14534 | return isl::basic_set(*this).indicator_function(); |
14535 | } |
14536 | |
14537 | isl::set point::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const |
14538 | { |
14539 | return isl::basic_set(*this).insert_dims(type, pos, n); |
14540 | } |
14541 | |
14542 | isl::map point::insert_domain(const isl::space &domain) const |
14543 | { |
14544 | return isl::basic_set(*this).insert_domain(domain); |
14545 | } |
14546 | |
14547 | isl::basic_set point::intersect(const isl::basic_set &bset2) const |
14548 | { |
14549 | return isl::basic_set(*this).intersect(bset2); |
14550 | } |
14551 | |
14552 | isl::set point::intersect(const isl::set &set2) const |
14553 | { |
14554 | return isl::basic_set(*this).intersect(set2); |
14555 | } |
14556 | |
14557 | isl::union_set point::intersect(const isl::union_set &uset2) const |
14558 | { |
14559 | return isl::basic_set(*this).intersect(uset2); |
14560 | } |
14561 | |
14562 | isl::basic_set point::intersect_params(const isl::basic_set &bset2) const |
14563 | { |
14564 | return isl::basic_set(*this).intersect_params(bset2); |
14565 | } |
14566 | |
14567 | isl::set point::intersect_params(const isl::set ¶ms) const |
14568 | { |
14569 | return isl::basic_set(*this).intersect_params(params); |
14570 | } |
14571 | |
14572 | boolean point::involves_dims(isl::dim type, unsigned int first, unsigned int n) const |
14573 | { |
14574 | return isl::basic_set(*this).involves_dims(type, first, n); |
14575 | } |
14576 | |
14577 | boolean point::involves_locals() const |
14578 | { |
14579 | return isl::basic_set(*this).involves_locals(); |
14580 | } |
14581 | |
14582 | boolean point::is_bounded() const |
14583 | { |
14584 | return isl::basic_set(*this).is_bounded(); |
14585 | } |
14586 | |
14587 | boolean point::is_disjoint(const isl::set &set2) const |
14588 | { |
14589 | return isl::basic_set(*this).is_disjoint(set2); |
14590 | } |
14591 | |
14592 | boolean point::is_disjoint(const isl::union_set &uset2) const |
14593 | { |
14594 | return isl::basic_set(*this).is_disjoint(uset2); |
14595 | } |
14596 | |
14597 | boolean point::is_empty() const |
14598 | { |
14599 | return isl::basic_set(*this).is_empty(); |
14600 | } |
14601 | |
14602 | boolean point::is_equal(const isl::basic_set &bset2) const |
14603 | { |
14604 | return isl::basic_set(*this).is_equal(bset2); |
14605 | } |
14606 | |
14607 | boolean point::is_equal(const isl::set &set2) const |
14608 | { |
14609 | return isl::basic_set(*this).is_equal(set2); |
14610 | } |
14611 | |
14612 | boolean point::is_equal(const isl::union_set &uset2) const |
14613 | { |
14614 | return isl::basic_set(*this).is_equal(uset2); |
14615 | } |
14616 | |
14617 | boolean point::is_params() const |
14618 | { |
14619 | return isl::basic_set(*this).is_params(); |
14620 | } |
14621 | |
14622 | boolean point::is_singleton() const |
14623 | { |
14624 | return isl::basic_set(*this).is_singleton(); |
14625 | } |
14626 | |
14627 | boolean point::is_strict_subset(const isl::set &set2) const |
14628 | { |
14629 | return isl::basic_set(*this).is_strict_subset(set2); |
14630 | } |
14631 | |
14632 | boolean point::is_strict_subset(const isl::union_set &uset2) const |
14633 | { |
14634 | return isl::basic_set(*this).is_strict_subset(uset2); |
14635 | } |
14636 | |
14637 | boolean point::is_subset(const isl::basic_set &bset2) const |
14638 | { |
14639 | return isl::basic_set(*this).is_subset(bset2); |
14640 | } |
14641 | |
14642 | boolean point::is_subset(const isl::set &set2) const |
14643 | { |
14644 | return isl::basic_set(*this).is_subset(set2); |
14645 | } |
14646 | |
14647 | boolean point::is_subset(const isl::union_set &uset2) const |
14648 | { |
14649 | return isl::basic_set(*this).is_subset(uset2); |
14650 | } |
14651 | |
14652 | boolean point::is_wrapping() const |
14653 | { |
14654 | return isl::basic_set(*this).is_wrapping(); |
14655 | } |
14656 | |
14657 | boolean point::isa_set() const |
14658 | { |
14659 | return isl::basic_set(*this).isa_set(); |
14660 | } |
14661 | |
14662 | isl::set point::lexmax() const |
14663 | { |
14664 | return isl::basic_set(*this).lexmax(); |
14665 | } |
14666 | |
14667 | isl::pw_multi_aff point::lexmax_pw_multi_aff() const |
14668 | { |
14669 | return isl::basic_set(*this).lexmax_pw_multi_aff(); |
14670 | } |
14671 | |
14672 | isl::set point::lexmin() const |
14673 | { |
14674 | return isl::basic_set(*this).lexmin(); |
14675 | } |
14676 | |
14677 | isl::pw_multi_aff point::lexmin_pw_multi_aff() const |
14678 | { |
14679 | return isl::basic_set(*this).lexmin_pw_multi_aff(); |
14680 | } |
14681 | |
14682 | isl::set point::lower_bound(const isl::multi_pw_aff &lower) const |
14683 | { |
14684 | return isl::basic_set(*this).lower_bound(lower); |
14685 | } |
14686 | |
14687 | isl::set point::lower_bound(const isl::multi_val &lower) const |
14688 | { |
14689 | return isl::basic_set(*this).lower_bound(lower); |
14690 | } |
14691 | |
14692 | isl::set point::lower_bound_si(isl::dim type, unsigned int pos, int value) const |
14693 | { |
14694 | return isl::basic_set(*this).lower_bound_si(type, pos, value); |
14695 | } |
14696 | |
14697 | isl::set point::lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const |
14698 | { |
14699 | return isl::basic_set(*this).lower_bound_val(type, pos, value); |
14700 | } |
14701 | |
14702 | isl::set point::lower_bound_val(isl::dim type, unsigned int pos, long value) const |
14703 | { |
14704 | return this->lower_bound_val(type, pos, value: isl::val(ctx(), value)); |
14705 | } |
14706 | |
14707 | isl::multi_pw_aff point::max_multi_pw_aff() const |
14708 | { |
14709 | return isl::basic_set(*this).max_multi_pw_aff(); |
14710 | } |
14711 | |
14712 | isl::val point::max_val(const isl::aff &obj) const |
14713 | { |
14714 | return isl::basic_set(*this).max_val(obj); |
14715 | } |
14716 | |
14717 | isl::multi_pw_aff point::min_multi_pw_aff() const |
14718 | { |
14719 | return isl::basic_set(*this).min_multi_pw_aff(); |
14720 | } |
14721 | |
14722 | isl::val point::min_val(const isl::aff &obj) const |
14723 | { |
14724 | return isl::basic_set(*this).min_val(obj); |
14725 | } |
14726 | |
14727 | isl::multi_val point::multi_val() const |
14728 | { |
14729 | auto res = isl_point_get_multi_val(pnt: get()); |
14730 | return manage(ptr: res); |
14731 | } |
14732 | |
14733 | isl::multi_val point::get_multi_val() const |
14734 | { |
14735 | return multi_val(); |
14736 | } |
14737 | |
14738 | class size point::n_basic_set() const |
14739 | { |
14740 | return isl::basic_set(*this).n_basic_set(); |
14741 | } |
14742 | |
14743 | isl::basic_set point::params() const |
14744 | { |
14745 | return isl::basic_set(*this).params(); |
14746 | } |
14747 | |
14748 | isl::val point::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const |
14749 | { |
14750 | return isl::basic_set(*this).plain_get_val_if_fixed(type, pos); |
14751 | } |
14752 | |
14753 | isl::multi_val point::plain_multi_val_if_fixed() const |
14754 | { |
14755 | return isl::basic_set(*this).plain_multi_val_if_fixed(); |
14756 | } |
14757 | |
14758 | isl::basic_set point::polyhedral_hull() const |
14759 | { |
14760 | return isl::basic_set(*this).polyhedral_hull(); |
14761 | } |
14762 | |
14763 | isl::set point::preimage(const isl::multi_aff &ma) const |
14764 | { |
14765 | return isl::basic_set(*this).preimage(ma); |
14766 | } |
14767 | |
14768 | isl::set point::preimage(const isl::multi_pw_aff &mpa) const |
14769 | { |
14770 | return isl::basic_set(*this).preimage(mpa); |
14771 | } |
14772 | |
14773 | isl::set point::preimage(const isl::pw_multi_aff &pma) const |
14774 | { |
14775 | return isl::basic_set(*this).preimage(pma); |
14776 | } |
14777 | |
14778 | isl::union_set point::preimage(const isl::union_pw_multi_aff &upma) const |
14779 | { |
14780 | return isl::basic_set(*this).preimage(upma); |
14781 | } |
14782 | |
14783 | isl::set point::product(const isl::set &set2) const |
14784 | { |
14785 | return isl::basic_set(*this).product(set2); |
14786 | } |
14787 | |
14788 | isl::basic_set point::project_out(isl::dim type, unsigned int first, unsigned int n) const |
14789 | { |
14790 | return isl::basic_set(*this).project_out(type, first, n); |
14791 | } |
14792 | |
14793 | isl::set point::project_out_all_params() const |
14794 | { |
14795 | return isl::basic_set(*this).project_out_all_params(); |
14796 | } |
14797 | |
14798 | isl::set point::project_out_param(const isl::id &id) const |
14799 | { |
14800 | return isl::basic_set(*this).project_out_param(id); |
14801 | } |
14802 | |
14803 | isl::set point::project_out_param(const std::string &id) const |
14804 | { |
14805 | return this->project_out_param(id: isl::id(ctx(), id)); |
14806 | } |
14807 | |
14808 | isl::set point::project_out_param(const isl::id_list &list) const |
14809 | { |
14810 | return isl::basic_set(*this).project_out_param(list); |
14811 | } |
14812 | |
14813 | isl::pw_multi_aff point::pw_multi_aff_on_domain(const isl::multi_val &mv) const |
14814 | { |
14815 | return isl::basic_set(*this).pw_multi_aff_on_domain(mv); |
14816 | } |
14817 | |
14818 | isl::set point::remove_dims(isl::dim type, unsigned int first, unsigned int n) const |
14819 | { |
14820 | return isl::basic_set(*this).remove_dims(type, first, n); |
14821 | } |
14822 | |
14823 | isl::set point::remove_divs() const |
14824 | { |
14825 | return isl::basic_set(*this).remove_divs(); |
14826 | } |
14827 | |
14828 | isl::set point::remove_redundancies() const |
14829 | { |
14830 | return isl::basic_set(*this).remove_redundancies(); |
14831 | } |
14832 | |
14833 | isl::set point::reset_tuple_id() const |
14834 | { |
14835 | return isl::basic_set(*this).reset_tuple_id(); |
14836 | } |
14837 | |
14838 | isl::basic_set point::sample() const |
14839 | { |
14840 | return isl::basic_set(*this).sample(); |
14841 | } |
14842 | |
14843 | isl::point point::sample_point() const |
14844 | { |
14845 | return isl::basic_set(*this).sample_point(); |
14846 | } |
14847 | |
14848 | isl::set point::set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const |
14849 | { |
14850 | return isl::basic_set(*this).set_dim_id(type, pos, id); |
14851 | } |
14852 | |
14853 | isl::set point::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const |
14854 | { |
14855 | return this->set_dim_id(type, pos, id: isl::id(ctx(), id)); |
14856 | } |
14857 | |
14858 | isl::set_list point::set_list() const |
14859 | { |
14860 | return isl::basic_set(*this).set_list(); |
14861 | } |
14862 | |
14863 | isl::set point::set_tuple_id(const isl::id &id) const |
14864 | { |
14865 | return isl::basic_set(*this).set_tuple_id(id); |
14866 | } |
14867 | |
14868 | isl::set point::set_tuple_id(const std::string &id) const |
14869 | { |
14870 | return this->set_tuple_id(isl::id(ctx(), id)); |
14871 | } |
14872 | |
14873 | isl::fixed_box point::simple_fixed_box_hull() const |
14874 | { |
14875 | return isl::basic_set(*this).simple_fixed_box_hull(); |
14876 | } |
14877 | |
14878 | isl::basic_set point::simple_hull() const |
14879 | { |
14880 | return isl::basic_set(*this).simple_hull(); |
14881 | } |
14882 | |
14883 | isl::space point::space() const |
14884 | { |
14885 | return isl::basic_set(*this).space(); |
14886 | } |
14887 | |
14888 | isl::val point::stride(int pos) const |
14889 | { |
14890 | return isl::basic_set(*this).stride(pos); |
14891 | } |
14892 | |
14893 | isl::set point::subtract(const isl::set &set2) const |
14894 | { |
14895 | return isl::basic_set(*this).subtract(set2); |
14896 | } |
14897 | |
14898 | isl::union_set point::subtract(const isl::union_set &uset2) const |
14899 | { |
14900 | return isl::basic_set(*this).subtract(uset2); |
14901 | } |
14902 | |
14903 | isl::basic_set_list point::to_list() const |
14904 | { |
14905 | return isl::basic_set(*this).to_list(); |
14906 | } |
14907 | |
14908 | isl::set point::to_set() const |
14909 | { |
14910 | auto res = isl_point_to_set(pnt: copy()); |
14911 | return manage(ptr: res); |
14912 | } |
14913 | |
14914 | isl::union_set point::to_union_set() const |
14915 | { |
14916 | return isl::basic_set(*this).to_union_set(); |
14917 | } |
14918 | |
14919 | isl::map point::translation() const |
14920 | { |
14921 | return isl::basic_set(*this).translation(); |
14922 | } |
14923 | |
14924 | class size point::tuple_dim() const |
14925 | { |
14926 | return isl::basic_set(*this).tuple_dim(); |
14927 | } |
14928 | |
14929 | isl::id point::tuple_id() const |
14930 | { |
14931 | return isl::basic_set(*this).tuple_id(); |
14932 | } |
14933 | |
14934 | std::string point::tuple_name() const |
14935 | { |
14936 | return isl::basic_set(*this).tuple_name(); |
14937 | } |
14938 | |
14939 | isl::set point::unbind_params(const isl::multi_id &tuple) const |
14940 | { |
14941 | return isl::basic_set(*this).unbind_params(tuple); |
14942 | } |
14943 | |
14944 | isl::map point::unbind_params_insert_domain(const isl::multi_id &domain) const |
14945 | { |
14946 | return isl::basic_set(*this).unbind_params_insert_domain(domain); |
14947 | } |
14948 | |
14949 | isl::set point::unite(const isl::basic_set &bset2) const |
14950 | { |
14951 | return isl::basic_set(*this).unite(bset2); |
14952 | } |
14953 | |
14954 | isl::set point::unite(const isl::set &set2) const |
14955 | { |
14956 | return isl::basic_set(*this).unite(set2); |
14957 | } |
14958 | |
14959 | isl::union_set point::unite(const isl::union_set &uset2) const |
14960 | { |
14961 | return isl::basic_set(*this).unite(uset2); |
14962 | } |
14963 | |
14964 | isl::basic_set point::unshifted_simple_hull() const |
14965 | { |
14966 | return isl::basic_set(*this).unshifted_simple_hull(); |
14967 | } |
14968 | |
14969 | isl::map point::unwrap() const |
14970 | { |
14971 | return isl::basic_set(*this).unwrap(); |
14972 | } |
14973 | |
14974 | isl::set point::upper_bound(const isl::multi_pw_aff &upper) const |
14975 | { |
14976 | return isl::basic_set(*this).upper_bound(upper); |
14977 | } |
14978 | |
14979 | isl::set point::upper_bound(const isl::multi_val &upper) const |
14980 | { |
14981 | return isl::basic_set(*this).upper_bound(upper); |
14982 | } |
14983 | |
14984 | isl::set point::upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const |
14985 | { |
14986 | return isl::basic_set(*this).upper_bound_val(type, pos, value); |
14987 | } |
14988 | |
14989 | isl::set point::upper_bound_val(isl::dim type, unsigned int pos, long value) const |
14990 | { |
14991 | return this->upper_bound_val(type, pos, value: isl::val(ctx(), value)); |
14992 | } |
14993 | |
14994 | inline std::ostream &operator<<(std::ostream &os, const point &obj) |
14995 | { |
14996 | char *str = isl_point_to_str(pnt: obj.get()); |
14997 | if (!str) { |
14998 | os.setstate(std::ios_base::badbit); |
14999 | return os; |
15000 | } |
15001 | os << str; |
15002 | free(ptr: str); |
15003 | return os; |
15004 | } |
15005 | |
15006 | // implementations for isl::pw_aff |
15007 | pw_aff manage(__isl_take isl_pw_aff *ptr) { |
15008 | return pw_aff(ptr); |
15009 | } |
15010 | pw_aff manage_copy(__isl_keep isl_pw_aff *ptr) { |
15011 | ptr = isl_pw_aff_copy(pwaff: ptr); |
15012 | return pw_aff(ptr); |
15013 | } |
15014 | |
15015 | pw_aff::pw_aff() |
15016 | : ptr(nullptr) {} |
15017 | |
15018 | pw_aff::pw_aff(const pw_aff &obj) |
15019 | : ptr(nullptr) |
15020 | { |
15021 | ptr = obj.copy(); |
15022 | } |
15023 | |
15024 | pw_aff::pw_aff(__isl_take isl_pw_aff *ptr) |
15025 | : ptr(ptr) {} |
15026 | |
15027 | pw_aff::pw_aff(isl::aff aff) |
15028 | { |
15029 | auto res = isl_pw_aff_from_aff(aff: aff.release()); |
15030 | ptr = res; |
15031 | } |
15032 | |
15033 | pw_aff::pw_aff(isl::ctx ctx, const std::string &str) |
15034 | { |
15035 | auto res = isl_pw_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
15036 | ptr = res; |
15037 | } |
15038 | |
15039 | pw_aff::pw_aff(isl::set domain, isl::val v) |
15040 | { |
15041 | auto res = isl_pw_aff_val_on_domain(domain: domain.release(), v: v.release()); |
15042 | ptr = res; |
15043 | } |
15044 | |
15045 | pw_aff::pw_aff(isl::local_space ls) |
15046 | { |
15047 | auto res = isl_pw_aff_zero_on_domain(ls: ls.release()); |
15048 | ptr = res; |
15049 | } |
15050 | |
15051 | pw_aff &pw_aff::operator=(pw_aff obj) { |
15052 | std::swap(a&: this->ptr, b&: obj.ptr); |
15053 | return *this; |
15054 | } |
15055 | |
15056 | pw_aff::~pw_aff() { |
15057 | if (ptr) |
15058 | isl_pw_aff_free(pwaff: ptr); |
15059 | } |
15060 | |
15061 | __isl_give isl_pw_aff *pw_aff::copy() const & { |
15062 | return isl_pw_aff_copy(pwaff: ptr); |
15063 | } |
15064 | |
15065 | __isl_keep isl_pw_aff *pw_aff::get() const { |
15066 | return ptr; |
15067 | } |
15068 | |
15069 | __isl_give isl_pw_aff *pw_aff::release() { |
15070 | isl_pw_aff *tmp = ptr; |
15071 | ptr = nullptr; |
15072 | return tmp; |
15073 | } |
15074 | |
15075 | bool pw_aff::is_null() const { |
15076 | return ptr == nullptr; |
15077 | } |
15078 | |
15079 | isl::ctx pw_aff::ctx() const { |
15080 | return isl::ctx(isl_pw_aff_get_ctx(pwaff: ptr)); |
15081 | } |
15082 | |
15083 | isl::multi_pw_aff pw_aff::add(const isl::multi_pw_aff &multi2) const |
15084 | { |
15085 | return isl::pw_multi_aff(*this).add(multi2); |
15086 | } |
15087 | |
15088 | isl::multi_union_pw_aff pw_aff::add(const isl::multi_union_pw_aff &multi2) const |
15089 | { |
15090 | return isl::union_pw_aff(*this).add(multi2); |
15091 | } |
15092 | |
15093 | isl::pw_aff pw_aff::add(isl::pw_aff pwaff2) const |
15094 | { |
15095 | auto res = isl_pw_aff_add(pwaff1: copy(), pwaff2: pwaff2.release()); |
15096 | return manage(ptr: res); |
15097 | } |
15098 | |
15099 | isl::pw_multi_aff pw_aff::add(const isl::pw_multi_aff &pma2) const |
15100 | { |
15101 | return isl::pw_multi_aff(*this).add(pma2); |
15102 | } |
15103 | |
15104 | isl::union_pw_aff pw_aff::add(const isl::union_pw_aff &upa2) const |
15105 | { |
15106 | return isl::union_pw_aff(*this).add(upa2); |
15107 | } |
15108 | |
15109 | isl::union_pw_multi_aff pw_aff::add(const isl::union_pw_multi_aff &upma2) const |
15110 | { |
15111 | return isl::union_pw_aff(*this).add(upma2); |
15112 | } |
15113 | |
15114 | isl::pw_aff pw_aff::add(const isl::aff &pwaff2) const |
15115 | { |
15116 | return this->add(pwaff2: isl::pw_aff(pwaff2)); |
15117 | } |
15118 | |
15119 | isl::pw_aff pw_aff::add_constant(isl::val v) const |
15120 | { |
15121 | auto res = isl_pw_aff_add_constant_val(pa: copy(), v: v.release()); |
15122 | return manage(ptr: res); |
15123 | } |
15124 | |
15125 | isl::pw_aff pw_aff::add_constant(long v) const |
15126 | { |
15127 | return this->add_constant(v: isl::val(ctx(), v)); |
15128 | } |
15129 | |
15130 | isl::pw_multi_aff pw_aff::add_constant(const isl::multi_val &mv) const |
15131 | { |
15132 | return isl::pw_multi_aff(*this).add_constant(mv); |
15133 | } |
15134 | |
15135 | isl::pw_aff pw_aff::add_dims(isl::dim type, unsigned int n) const |
15136 | { |
15137 | auto res = isl_pw_aff_add_dims(pwaff: copy(), type: static_cast<enum isl_dim_type>(type), n); |
15138 | return manage(ptr: res); |
15139 | } |
15140 | |
15141 | isl::union_pw_multi_aff pw_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const |
15142 | { |
15143 | return isl::union_pw_aff(*this).add_pw_multi_aff(pma); |
15144 | } |
15145 | |
15146 | isl::union_pw_multi_aff pw_aff::apply(const isl::union_pw_multi_aff &upma2) const |
15147 | { |
15148 | return isl::union_pw_aff(*this).apply(upma2); |
15149 | } |
15150 | |
15151 | isl::aff pw_aff::as_aff() const |
15152 | { |
15153 | auto res = isl_pw_aff_as_aff(pa: copy()); |
15154 | return manage(ptr: res); |
15155 | } |
15156 | |
15157 | isl::map pw_aff::as_map() const |
15158 | { |
15159 | auto res = isl_pw_aff_as_map(pa: copy()); |
15160 | return manage(ptr: res); |
15161 | } |
15162 | |
15163 | isl::multi_aff pw_aff::as_multi_aff() const |
15164 | { |
15165 | return isl::pw_multi_aff(*this).as_multi_aff(); |
15166 | } |
15167 | |
15168 | isl::multi_union_pw_aff pw_aff::as_multi_union_pw_aff() const |
15169 | { |
15170 | return isl::union_pw_aff(*this).as_multi_union_pw_aff(); |
15171 | } |
15172 | |
15173 | isl::pw_multi_aff pw_aff::as_pw_multi_aff() const |
15174 | { |
15175 | return isl::union_pw_aff(*this).as_pw_multi_aff(); |
15176 | } |
15177 | |
15178 | isl::set pw_aff::as_set() const |
15179 | { |
15180 | return isl::pw_multi_aff(*this).as_set(); |
15181 | } |
15182 | |
15183 | isl::union_map pw_aff::as_union_map() const |
15184 | { |
15185 | return isl::union_pw_aff(*this).as_union_map(); |
15186 | } |
15187 | |
15188 | isl::pw_aff pw_aff::at(int pos) const |
15189 | { |
15190 | return isl::pw_multi_aff(*this).at(pos); |
15191 | } |
15192 | |
15193 | isl::set pw_aff::bind(const isl::multi_id &tuple) const |
15194 | { |
15195 | return isl::multi_pw_aff(*this).bind(tuple); |
15196 | } |
15197 | |
15198 | isl::set pw_aff::bind(isl::id id) const |
15199 | { |
15200 | auto res = isl_pw_aff_bind_id(pa: copy(), id: id.release()); |
15201 | return manage(ptr: res); |
15202 | } |
15203 | |
15204 | isl::set pw_aff::bind(const std::string &id) const |
15205 | { |
15206 | return this->bind(id: isl::id(ctx(), id)); |
15207 | } |
15208 | |
15209 | isl::pw_aff pw_aff::bind_domain(isl::multi_id tuple) const |
15210 | { |
15211 | auto res = isl_pw_aff_bind_domain(pa: copy(), tuple: tuple.release()); |
15212 | return manage(ptr: res); |
15213 | } |
15214 | |
15215 | isl::pw_aff pw_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const |
15216 | { |
15217 | auto res = isl_pw_aff_bind_domain_wrapped_domain(pa: copy(), tuple: tuple.release()); |
15218 | return manage(ptr: res); |
15219 | } |
15220 | |
15221 | isl::pw_aff pw_aff::ceil() const |
15222 | { |
15223 | auto res = isl_pw_aff_ceil(pwaff: copy()); |
15224 | return manage(ptr: res); |
15225 | } |
15226 | |
15227 | isl::pw_aff pw_aff::coalesce() const |
15228 | { |
15229 | auto res = isl_pw_aff_coalesce(pa: copy()); |
15230 | return manage(ptr: res); |
15231 | } |
15232 | |
15233 | isl::pw_aff pw_aff::cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false) const |
15234 | { |
15235 | auto res = isl_pw_aff_cond(cond: copy(), pwaff_true: pwaff_true.release(), pwaff_false: pwaff_false.release()); |
15236 | return manage(ptr: res); |
15237 | } |
15238 | |
15239 | class size pw_aff::dim(isl::dim type) const |
15240 | { |
15241 | return isl::pw_multi_aff(*this).dim(type); |
15242 | } |
15243 | |
15244 | isl::id pw_aff::dim_id(isl::dim type, unsigned int pos) const |
15245 | { |
15246 | auto res = isl_pw_aff_get_dim_id(pa: get(), type: static_cast<enum isl_dim_type>(type), pos); |
15247 | return manage(ptr: res); |
15248 | } |
15249 | |
15250 | isl::id pw_aff::get_dim_id(isl::dim type, unsigned int pos) const |
15251 | { |
15252 | return dim_id(type, pos); |
15253 | } |
15254 | |
15255 | isl::pw_aff pw_aff::div(isl::pw_aff pa2) const |
15256 | { |
15257 | auto res = isl_pw_aff_div(pa1: copy(), pa2: pa2.release()); |
15258 | return manage(ptr: res); |
15259 | } |
15260 | |
15261 | isl::set pw_aff::domain() const |
15262 | { |
15263 | auto res = isl_pw_aff_domain(pwaff: copy()); |
15264 | return manage(ptr: res); |
15265 | } |
15266 | |
15267 | isl::space pw_aff::domain_space() const |
15268 | { |
15269 | auto res = isl_pw_aff_get_domain_space(pwaff: get()); |
15270 | return manage(ptr: res); |
15271 | } |
15272 | |
15273 | isl::space pw_aff::get_domain_space() const |
15274 | { |
15275 | return domain_space(); |
15276 | } |
15277 | |
15278 | isl::pw_multi_aff pw_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const |
15279 | { |
15280 | return isl::pw_multi_aff(*this).drop_dims(type, first, n); |
15281 | } |
15282 | |
15283 | isl::set pw_aff::eq_set(isl::pw_aff pwaff2) const |
15284 | { |
15285 | auto res = isl_pw_aff_eq_set(pwaff1: copy(), pwaff2: pwaff2.release()); |
15286 | return manage(ptr: res); |
15287 | } |
15288 | |
15289 | isl::val pw_aff::eval(isl::point pnt) const |
15290 | { |
15291 | auto res = isl_pw_aff_eval(pa: copy(), pnt: pnt.release()); |
15292 | return manage(ptr: res); |
15293 | } |
15294 | |
15295 | isl::pw_multi_aff pw_aff::(const isl::space &space) const |
15296 | { |
15297 | return isl::union_pw_aff(*this).extract_pw_multi_aff(space); |
15298 | } |
15299 | |
15300 | isl::multi_pw_aff pw_aff::flat_range_product(const isl::multi_pw_aff &multi2) const |
15301 | { |
15302 | return isl::pw_multi_aff(*this).flat_range_product(multi2); |
15303 | } |
15304 | |
15305 | isl::multi_union_pw_aff pw_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const |
15306 | { |
15307 | return isl::union_pw_aff(*this).flat_range_product(multi2); |
15308 | } |
15309 | |
15310 | isl::pw_multi_aff pw_aff::flat_range_product(const isl::pw_multi_aff &pma2) const |
15311 | { |
15312 | return isl::pw_multi_aff(*this).flat_range_product(pma2); |
15313 | } |
15314 | |
15315 | isl::union_pw_multi_aff pw_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const |
15316 | { |
15317 | return isl::union_pw_aff(*this).flat_range_product(upma2); |
15318 | } |
15319 | |
15320 | isl::pw_aff pw_aff::floor() const |
15321 | { |
15322 | auto res = isl_pw_aff_floor(pwaff: copy()); |
15323 | return manage(ptr: res); |
15324 | } |
15325 | |
15326 | stat pw_aff::foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const |
15327 | { |
15328 | struct fn_data { |
15329 | std::function<stat(isl::set, isl::aff)> func; |
15330 | } fn_data = { .func: fn }; |
15331 | auto fn_lambda = [](isl_set *arg_0, isl_aff *arg_1, void *arg_2) -> isl_stat { |
15332 | auto *data = static_cast<struct fn_data *>(arg_2); |
15333 | auto ret = (data->func)(manage(ptr: arg_0), manage(ptr: arg_1)); |
15334 | return ret.release(); |
15335 | }; |
15336 | auto res = isl_pw_aff_foreach_piece(pwaff: get(), fn: fn_lambda, user: &fn_data); |
15337 | return manage(val: res); |
15338 | } |
15339 | |
15340 | stat pw_aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const |
15341 | { |
15342 | return isl::pw_multi_aff(*this).foreach_piece(fn); |
15343 | } |
15344 | |
15345 | stat pw_aff::foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const |
15346 | { |
15347 | return isl::union_pw_aff(*this).foreach_pw_aff(fn); |
15348 | } |
15349 | |
15350 | isl::set pw_aff::ge_set(isl::pw_aff pwaff2) const |
15351 | { |
15352 | auto res = isl_pw_aff_ge_set(pwaff1: copy(), pwaff2: pwaff2.release()); |
15353 | return manage(ptr: res); |
15354 | } |
15355 | |
15356 | isl::pw_aff pw_aff::gist(isl::set context) const |
15357 | { |
15358 | auto res = isl_pw_aff_gist(pwaff: copy(), context: context.release()); |
15359 | return manage(ptr: res); |
15360 | } |
15361 | |
15362 | isl::union_pw_aff pw_aff::gist(const isl::union_set &context) const |
15363 | { |
15364 | return isl::union_pw_aff(*this).gist(context); |
15365 | } |
15366 | |
15367 | isl::pw_aff pw_aff::gist(const isl::basic_set &context) const |
15368 | { |
15369 | return this->gist(context: isl::set(context)); |
15370 | } |
15371 | |
15372 | isl::pw_aff pw_aff::gist(const isl::point &context) const |
15373 | { |
15374 | return this->gist(context: isl::set(context)); |
15375 | } |
15376 | |
15377 | isl::set pw_aff::gt_set(isl::pw_aff pwaff2) const |
15378 | { |
15379 | auto res = isl_pw_aff_gt_set(pwaff1: copy(), pwaff2: pwaff2.release()); |
15380 | return manage(ptr: res); |
15381 | } |
15382 | |
15383 | boolean pw_aff::has_range_tuple_id() const |
15384 | { |
15385 | return isl::pw_multi_aff(*this).has_range_tuple_id(); |
15386 | } |
15387 | |
15388 | isl::multi_pw_aff pw_aff::identity() const |
15389 | { |
15390 | return isl::pw_multi_aff(*this).identity(); |
15391 | } |
15392 | |
15393 | isl::pw_aff pw_aff::insert_domain(isl::space domain) const |
15394 | { |
15395 | auto res = isl_pw_aff_insert_domain(pa: copy(), domain: domain.release()); |
15396 | return manage(ptr: res); |
15397 | } |
15398 | |
15399 | isl::pw_aff pw_aff::intersect_domain(isl::set set) const |
15400 | { |
15401 | auto res = isl_pw_aff_intersect_domain(pa: copy(), set: set.release()); |
15402 | return manage(ptr: res); |
15403 | } |
15404 | |
15405 | isl::union_pw_aff pw_aff::intersect_domain(const isl::space &space) const |
15406 | { |
15407 | return isl::union_pw_aff(*this).intersect_domain(space); |
15408 | } |
15409 | |
15410 | isl::union_pw_aff pw_aff::intersect_domain(const isl::union_set &uset) const |
15411 | { |
15412 | return isl::union_pw_aff(*this).intersect_domain(uset); |
15413 | } |
15414 | |
15415 | isl::pw_aff pw_aff::intersect_domain(const isl::basic_set &set) const |
15416 | { |
15417 | return this->intersect_domain(set: isl::set(set)); |
15418 | } |
15419 | |
15420 | isl::pw_aff pw_aff::intersect_domain(const isl::point &set) const |
15421 | { |
15422 | return this->intersect_domain(set: isl::set(set)); |
15423 | } |
15424 | |
15425 | isl::union_pw_aff pw_aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const |
15426 | { |
15427 | return isl::union_pw_aff(*this).intersect_domain_wrapped_domain(uset); |
15428 | } |
15429 | |
15430 | isl::union_pw_aff pw_aff::intersect_domain_wrapped_range(const isl::union_set &uset) const |
15431 | { |
15432 | return isl::union_pw_aff(*this).intersect_domain_wrapped_range(uset); |
15433 | } |
15434 | |
15435 | isl::pw_aff pw_aff::intersect_params(isl::set set) const |
15436 | { |
15437 | auto res = isl_pw_aff_intersect_params(pa: copy(), set: set.release()); |
15438 | return manage(ptr: res); |
15439 | } |
15440 | |
15441 | boolean pw_aff::involves_locals() const |
15442 | { |
15443 | return isl::pw_multi_aff(*this).involves_locals(); |
15444 | } |
15445 | |
15446 | boolean pw_aff::involves_nan() const |
15447 | { |
15448 | return isl::multi_pw_aff(*this).involves_nan(); |
15449 | } |
15450 | |
15451 | boolean pw_aff::involves_param(const isl::id &id) const |
15452 | { |
15453 | return isl::pw_multi_aff(*this).involves_param(id); |
15454 | } |
15455 | |
15456 | boolean pw_aff::involves_param(const std::string &id) const |
15457 | { |
15458 | return this->involves_param(id: isl::id(ctx(), id)); |
15459 | } |
15460 | |
15461 | boolean pw_aff::involves_param(const isl::id_list &list) const |
15462 | { |
15463 | return isl::pw_multi_aff(*this).involves_param(list); |
15464 | } |
15465 | |
15466 | boolean pw_aff::is_cst() const |
15467 | { |
15468 | auto res = isl_pw_aff_is_cst(pwaff: get()); |
15469 | return manage(val: res); |
15470 | } |
15471 | |
15472 | boolean pw_aff::is_equal(const isl::pw_aff &pa2) const |
15473 | { |
15474 | auto res = isl_pw_aff_is_equal(pa1: get(), pa2: pa2.get()); |
15475 | return manage(val: res); |
15476 | } |
15477 | |
15478 | boolean pw_aff::isa_aff() const |
15479 | { |
15480 | auto res = isl_pw_aff_isa_aff(pa: get()); |
15481 | return manage(val: res); |
15482 | } |
15483 | |
15484 | boolean pw_aff::isa_multi_aff() const |
15485 | { |
15486 | return isl::pw_multi_aff(*this).isa_multi_aff(); |
15487 | } |
15488 | |
15489 | boolean pw_aff::isa_pw_multi_aff() const |
15490 | { |
15491 | return isl::union_pw_aff(*this).isa_pw_multi_aff(); |
15492 | } |
15493 | |
15494 | isl::set pw_aff::le_set(isl::pw_aff pwaff2) const |
15495 | { |
15496 | auto res = isl_pw_aff_le_set(pwaff1: copy(), pwaff2: pwaff2.release()); |
15497 | return manage(ptr: res); |
15498 | } |
15499 | |
15500 | isl::pw_aff_list pw_aff::list() const |
15501 | { |
15502 | return isl::multi_pw_aff(*this).list(); |
15503 | } |
15504 | |
15505 | isl::set pw_aff::lt_set(isl::pw_aff pwaff2) const |
15506 | { |
15507 | auto res = isl_pw_aff_lt_set(pwaff1: copy(), pwaff2: pwaff2.release()); |
15508 | return manage(ptr: res); |
15509 | } |
15510 | |
15511 | isl::multi_pw_aff pw_aff::max(const isl::multi_pw_aff &multi2) const |
15512 | { |
15513 | return isl::pw_multi_aff(*this).max(multi2); |
15514 | } |
15515 | |
15516 | isl::pw_aff pw_aff::max(isl::pw_aff pwaff2) const |
15517 | { |
15518 | auto res = isl_pw_aff_max(pwaff1: copy(), pwaff2: pwaff2.release()); |
15519 | return manage(ptr: res); |
15520 | } |
15521 | |
15522 | isl::pw_aff pw_aff::max(const isl::aff &pwaff2) const |
15523 | { |
15524 | return this->max(pwaff2: isl::pw_aff(pwaff2)); |
15525 | } |
15526 | |
15527 | isl::multi_val pw_aff::max_multi_val() const |
15528 | { |
15529 | return isl::pw_multi_aff(*this).max_multi_val(); |
15530 | } |
15531 | |
15532 | isl::multi_pw_aff pw_aff::min(const isl::multi_pw_aff &multi2) const |
15533 | { |
15534 | return isl::pw_multi_aff(*this).min(multi2); |
15535 | } |
15536 | |
15537 | isl::pw_aff pw_aff::min(isl::pw_aff pwaff2) const |
15538 | { |
15539 | auto res = isl_pw_aff_min(pwaff1: copy(), pwaff2: pwaff2.release()); |
15540 | return manage(ptr: res); |
15541 | } |
15542 | |
15543 | isl::pw_aff pw_aff::min(const isl::aff &pwaff2) const |
15544 | { |
15545 | return this->min(pwaff2: isl::pw_aff(pwaff2)); |
15546 | } |
15547 | |
15548 | isl::multi_val pw_aff::min_multi_val() const |
15549 | { |
15550 | return isl::pw_multi_aff(*this).min_multi_val(); |
15551 | } |
15552 | |
15553 | isl::pw_aff pw_aff::mod(isl::val mod) const |
15554 | { |
15555 | auto res = isl_pw_aff_mod_val(pa: copy(), mod: mod.release()); |
15556 | return manage(ptr: res); |
15557 | } |
15558 | |
15559 | isl::pw_aff pw_aff::mod(long mod) const |
15560 | { |
15561 | return this->mod(mod: isl::val(ctx(), mod)); |
15562 | } |
15563 | |
15564 | isl::pw_aff pw_aff::mul(isl::pw_aff pwaff2) const |
15565 | { |
15566 | auto res = isl_pw_aff_mul(pwaff1: copy(), pwaff2: pwaff2.release()); |
15567 | return manage(ptr: res); |
15568 | } |
15569 | |
15570 | class size pw_aff::n_piece() const |
15571 | { |
15572 | return isl::pw_multi_aff(*this).n_piece(); |
15573 | } |
15574 | |
15575 | isl::set pw_aff::ne_set(isl::pw_aff pwaff2) const |
15576 | { |
15577 | auto res = isl_pw_aff_ne_set(pwaff1: copy(), pwaff2: pwaff2.release()); |
15578 | return manage(ptr: res); |
15579 | } |
15580 | |
15581 | isl::pw_aff pw_aff::neg() const |
15582 | { |
15583 | auto res = isl_pw_aff_neg(pwaff: copy()); |
15584 | return manage(ptr: res); |
15585 | } |
15586 | |
15587 | isl::pw_aff pw_aff::param_on_domain(isl::set domain, isl::id id) |
15588 | { |
15589 | auto res = isl_pw_aff_param_on_domain_id(domain: domain.release(), id: id.release()); |
15590 | return manage(ptr: res); |
15591 | } |
15592 | |
15593 | boolean pw_aff::plain_is_empty() const |
15594 | { |
15595 | return isl::union_pw_aff(*this).plain_is_empty(); |
15596 | } |
15597 | |
15598 | boolean pw_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const |
15599 | { |
15600 | return isl::pw_multi_aff(*this).plain_is_equal(multi2); |
15601 | } |
15602 | |
15603 | boolean pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
15604 | { |
15605 | return isl::union_pw_aff(*this).plain_is_equal(multi2); |
15606 | } |
15607 | |
15608 | isl::pw_multi_aff pw_aff::preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const |
15609 | { |
15610 | return isl::pw_multi_aff(*this).preimage_domain_wrapped_domain(pma2); |
15611 | } |
15612 | |
15613 | isl::union_pw_multi_aff pw_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const |
15614 | { |
15615 | return isl::union_pw_aff(*this).preimage_domain_wrapped_domain(upma2); |
15616 | } |
15617 | |
15618 | isl::multi_pw_aff pw_aff::product(const isl::multi_pw_aff &multi2) const |
15619 | { |
15620 | return isl::pw_multi_aff(*this).product(multi2); |
15621 | } |
15622 | |
15623 | isl::pw_multi_aff pw_aff::product(const isl::pw_multi_aff &pma2) const |
15624 | { |
15625 | return isl::pw_multi_aff(*this).product(pma2); |
15626 | } |
15627 | |
15628 | isl::pw_aff pw_aff::pullback(isl::multi_aff ma) const |
15629 | { |
15630 | auto res = isl_pw_aff_pullback_multi_aff(pa: copy(), ma: ma.release()); |
15631 | return manage(ptr: res); |
15632 | } |
15633 | |
15634 | isl::pw_aff pw_aff::pullback(isl::multi_pw_aff mpa) const |
15635 | { |
15636 | auto res = isl_pw_aff_pullback_multi_pw_aff(pa: copy(), mpa: mpa.release()); |
15637 | return manage(ptr: res); |
15638 | } |
15639 | |
15640 | isl::pw_aff pw_aff::pullback(isl::pw_multi_aff pma) const |
15641 | { |
15642 | auto res = isl_pw_aff_pullback_pw_multi_aff(pa: copy(), pma: pma.release()); |
15643 | return manage(ptr: res); |
15644 | } |
15645 | |
15646 | isl::union_pw_aff pw_aff::pullback(const isl::union_pw_multi_aff &upma) const |
15647 | { |
15648 | return isl::union_pw_aff(*this).pullback(upma); |
15649 | } |
15650 | |
15651 | isl::pw_multi_aff_list pw_aff::pw_multi_aff_list() const |
15652 | { |
15653 | return isl::union_pw_aff(*this).pw_multi_aff_list(); |
15654 | } |
15655 | |
15656 | isl::pw_multi_aff pw_aff::range_factor_domain() const |
15657 | { |
15658 | return isl::pw_multi_aff(*this).range_factor_domain(); |
15659 | } |
15660 | |
15661 | isl::pw_multi_aff pw_aff::range_factor_range() const |
15662 | { |
15663 | return isl::pw_multi_aff(*this).range_factor_range(); |
15664 | } |
15665 | |
15666 | isl::multi_pw_aff pw_aff::range_product(const isl::multi_pw_aff &multi2) const |
15667 | { |
15668 | return isl::pw_multi_aff(*this).range_product(multi2); |
15669 | } |
15670 | |
15671 | isl::multi_union_pw_aff pw_aff::range_product(const isl::multi_union_pw_aff &multi2) const |
15672 | { |
15673 | return isl::union_pw_aff(*this).range_product(multi2); |
15674 | } |
15675 | |
15676 | isl::pw_multi_aff pw_aff::range_product(const isl::pw_multi_aff &pma2) const |
15677 | { |
15678 | return isl::pw_multi_aff(*this).range_product(pma2); |
15679 | } |
15680 | |
15681 | isl::union_pw_multi_aff pw_aff::range_product(const isl::union_pw_multi_aff &upma2) const |
15682 | { |
15683 | return isl::union_pw_aff(*this).range_product(upma2); |
15684 | } |
15685 | |
15686 | isl::id pw_aff::range_tuple_id() const |
15687 | { |
15688 | return isl::pw_multi_aff(*this).range_tuple_id(); |
15689 | } |
15690 | |
15691 | isl::multi_pw_aff pw_aff::reset_range_tuple_id() const |
15692 | { |
15693 | return isl::multi_pw_aff(*this).reset_range_tuple_id(); |
15694 | } |
15695 | |
15696 | isl::multi_pw_aff pw_aff::reset_tuple_id(isl::dim type) const |
15697 | { |
15698 | return isl::multi_pw_aff(*this).reset_tuple_id(type); |
15699 | } |
15700 | |
15701 | isl::multi_pw_aff pw_aff::scale(const isl::multi_val &mv) const |
15702 | { |
15703 | return isl::multi_pw_aff(*this).scale(mv); |
15704 | } |
15705 | |
15706 | isl::pw_aff pw_aff::scale(isl::val v) const |
15707 | { |
15708 | auto res = isl_pw_aff_scale_val(pa: copy(), v: v.release()); |
15709 | return manage(ptr: res); |
15710 | } |
15711 | |
15712 | isl::pw_aff pw_aff::scale(long v) const |
15713 | { |
15714 | return this->scale(v: isl::val(ctx(), v)); |
15715 | } |
15716 | |
15717 | isl::multi_pw_aff pw_aff::scale_down(const isl::multi_val &mv) const |
15718 | { |
15719 | return isl::multi_pw_aff(*this).scale_down(mv); |
15720 | } |
15721 | |
15722 | isl::pw_aff pw_aff::scale_down(isl::val f) const |
15723 | { |
15724 | auto res = isl_pw_aff_scale_down_val(pa: copy(), f: f.release()); |
15725 | return manage(ptr: res); |
15726 | } |
15727 | |
15728 | isl::pw_aff pw_aff::scale_down(long f) const |
15729 | { |
15730 | return this->scale_down(f: isl::val(ctx(), f)); |
15731 | } |
15732 | |
15733 | isl::multi_pw_aff pw_aff::set_at(int pos, const isl::pw_aff &el) const |
15734 | { |
15735 | return isl::pw_multi_aff(*this).set_at(pos, el); |
15736 | } |
15737 | |
15738 | isl::multi_union_pw_aff pw_aff::set_at(int pos, const isl::union_pw_aff &el) const |
15739 | { |
15740 | return isl::union_pw_aff(*this).set_at(pos, el); |
15741 | } |
15742 | |
15743 | isl::multi_pw_aff pw_aff::set_pw_aff(int pos, const isl::pw_aff &el) const |
15744 | { |
15745 | return isl::pw_multi_aff(*this).set_pw_aff(pos, el); |
15746 | } |
15747 | |
15748 | isl::pw_multi_aff pw_aff::set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const |
15749 | { |
15750 | return isl::pw_multi_aff(*this).set_pw_aff(pos, pa); |
15751 | } |
15752 | |
15753 | isl::pw_multi_aff pw_aff::set_range_tuple(const isl::id &id) const |
15754 | { |
15755 | return isl::pw_multi_aff(*this).set_range_tuple(id); |
15756 | } |
15757 | |
15758 | isl::pw_multi_aff pw_aff::set_range_tuple(const std::string &id) const |
15759 | { |
15760 | return this->set_range_tuple(isl::id(ctx(), id)); |
15761 | } |
15762 | |
15763 | isl::pw_aff pw_aff::set_tuple_id(isl::dim type, isl::id id) const |
15764 | { |
15765 | auto res = isl_pw_aff_set_tuple_id(pwaff: copy(), type: static_cast<enum isl_dim_type>(type), id: id.release()); |
15766 | return manage(ptr: res); |
15767 | } |
15768 | |
15769 | isl::pw_aff pw_aff::set_tuple_id(isl::dim type, const std::string &id) const |
15770 | { |
15771 | return this->set_tuple_id(type, id: isl::id(ctx(), id)); |
15772 | } |
15773 | |
15774 | isl::multi_union_pw_aff pw_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const |
15775 | { |
15776 | return isl::union_pw_aff(*this).set_union_pw_aff(pos, el); |
15777 | } |
15778 | |
15779 | class size pw_aff::size() const |
15780 | { |
15781 | return isl::multi_pw_aff(*this).size(); |
15782 | } |
15783 | |
15784 | isl::space pw_aff::space() const |
15785 | { |
15786 | auto res = isl_pw_aff_get_space(pwaff: get()); |
15787 | return manage(ptr: res); |
15788 | } |
15789 | |
15790 | isl::space pw_aff::get_space() const |
15791 | { |
15792 | return space(); |
15793 | } |
15794 | |
15795 | isl::multi_pw_aff pw_aff::sub(const isl::multi_pw_aff &multi2) const |
15796 | { |
15797 | return isl::pw_multi_aff(*this).sub(multi2); |
15798 | } |
15799 | |
15800 | isl::multi_union_pw_aff pw_aff::sub(const isl::multi_union_pw_aff &multi2) const |
15801 | { |
15802 | return isl::union_pw_aff(*this).sub(multi2); |
15803 | } |
15804 | |
15805 | isl::pw_aff pw_aff::sub(isl::pw_aff pwaff2) const |
15806 | { |
15807 | auto res = isl_pw_aff_sub(pwaff1: copy(), pwaff2: pwaff2.release()); |
15808 | return manage(ptr: res); |
15809 | } |
15810 | |
15811 | isl::pw_multi_aff pw_aff::sub(const isl::pw_multi_aff &pma2) const |
15812 | { |
15813 | return isl::pw_multi_aff(*this).sub(pma2); |
15814 | } |
15815 | |
15816 | isl::union_pw_aff pw_aff::sub(const isl::union_pw_aff &upa2) const |
15817 | { |
15818 | return isl::union_pw_aff(*this).sub(upa2); |
15819 | } |
15820 | |
15821 | isl::union_pw_multi_aff pw_aff::sub(const isl::union_pw_multi_aff &upma2) const |
15822 | { |
15823 | return isl::union_pw_aff(*this).sub(upma2); |
15824 | } |
15825 | |
15826 | isl::pw_aff pw_aff::sub(const isl::aff &pwaff2) const |
15827 | { |
15828 | return this->sub(pwaff2: isl::pw_aff(pwaff2)); |
15829 | } |
15830 | |
15831 | isl::pw_aff pw_aff::subtract_domain(isl::set set) const |
15832 | { |
15833 | auto res = isl_pw_aff_subtract_domain(pa: copy(), set: set.release()); |
15834 | return manage(ptr: res); |
15835 | } |
15836 | |
15837 | isl::union_pw_aff pw_aff::subtract_domain(const isl::space &space) const |
15838 | { |
15839 | return isl::union_pw_aff(*this).subtract_domain(space); |
15840 | } |
15841 | |
15842 | isl::union_pw_aff pw_aff::subtract_domain(const isl::union_set &uset) const |
15843 | { |
15844 | return isl::union_pw_aff(*this).subtract_domain(uset); |
15845 | } |
15846 | |
15847 | isl::pw_aff pw_aff::subtract_domain(const isl::basic_set &set) const |
15848 | { |
15849 | return this->subtract_domain(set: isl::set(set)); |
15850 | } |
15851 | |
15852 | isl::pw_aff pw_aff::subtract_domain(const isl::point &set) const |
15853 | { |
15854 | return this->subtract_domain(set: isl::set(set)); |
15855 | } |
15856 | |
15857 | isl::pw_aff pw_aff::tdiv_q(isl::pw_aff pa2) const |
15858 | { |
15859 | auto res = isl_pw_aff_tdiv_q(pa1: copy(), pa2: pa2.release()); |
15860 | return manage(ptr: res); |
15861 | } |
15862 | |
15863 | isl::pw_aff pw_aff::tdiv_r(isl::pw_aff pa2) const |
15864 | { |
15865 | auto res = isl_pw_aff_tdiv_r(pa1: copy(), pa2: pa2.release()); |
15866 | return manage(ptr: res); |
15867 | } |
15868 | |
15869 | isl::pw_aff_list pw_aff::to_list() const |
15870 | { |
15871 | auto res = isl_pw_aff_to_list(el: copy()); |
15872 | return manage(ptr: res); |
15873 | } |
15874 | |
15875 | isl::multi_pw_aff pw_aff::to_multi_pw_aff() const |
15876 | { |
15877 | return isl::pw_multi_aff(*this).to_multi_pw_aff(); |
15878 | } |
15879 | |
15880 | isl::union_pw_aff pw_aff::to_union_pw_aff() const |
15881 | { |
15882 | auto res = isl_pw_aff_to_union_pw_aff(pa: copy()); |
15883 | return manage(ptr: res); |
15884 | } |
15885 | |
15886 | isl::union_pw_multi_aff pw_aff::to_union_pw_multi_aff() const |
15887 | { |
15888 | return isl::pw_multi_aff(*this).to_union_pw_multi_aff(); |
15889 | } |
15890 | |
15891 | isl::id pw_aff::tuple_id(isl::dim type) const |
15892 | { |
15893 | auto res = isl_pw_aff_get_tuple_id(pa: get(), type: static_cast<enum isl_dim_type>(type)); |
15894 | return manage(ptr: res); |
15895 | } |
15896 | |
15897 | isl::id pw_aff::get_tuple_id(isl::dim type) const |
15898 | { |
15899 | return tuple_id(type); |
15900 | } |
15901 | |
15902 | isl::multi_pw_aff pw_aff::unbind_params_insert_domain(const isl::multi_id &domain) const |
15903 | { |
15904 | return isl::pw_multi_aff(*this).unbind_params_insert_domain(domain); |
15905 | } |
15906 | |
15907 | isl::multi_pw_aff pw_aff::union_add(const isl::multi_pw_aff &mpa2) const |
15908 | { |
15909 | return isl::pw_multi_aff(*this).union_add(mpa2); |
15910 | } |
15911 | |
15912 | isl::multi_union_pw_aff pw_aff::union_add(const isl::multi_union_pw_aff &mupa2) const |
15913 | { |
15914 | return isl::union_pw_aff(*this).union_add(mupa2); |
15915 | } |
15916 | |
15917 | isl::pw_aff pw_aff::union_add(isl::pw_aff pwaff2) const |
15918 | { |
15919 | auto res = isl_pw_aff_union_add(pwaff1: copy(), pwaff2: pwaff2.release()); |
15920 | return manage(ptr: res); |
15921 | } |
15922 | |
15923 | isl::pw_multi_aff pw_aff::union_add(const isl::pw_multi_aff &pma2) const |
15924 | { |
15925 | return isl::pw_multi_aff(*this).union_add(pma2); |
15926 | } |
15927 | |
15928 | isl::union_pw_aff pw_aff::union_add(const isl::union_pw_aff &upa2) const |
15929 | { |
15930 | return isl::union_pw_aff(*this).union_add(upa2); |
15931 | } |
15932 | |
15933 | isl::union_pw_multi_aff pw_aff::union_add(const isl::union_pw_multi_aff &upma2) const |
15934 | { |
15935 | return isl::union_pw_aff(*this).union_add(upma2); |
15936 | } |
15937 | |
15938 | isl::pw_aff pw_aff::union_add(const isl::aff &pwaff2) const |
15939 | { |
15940 | return this->union_add(pwaff2: isl::pw_aff(pwaff2)); |
15941 | } |
15942 | |
15943 | isl::pw_aff pw_aff::var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos) |
15944 | { |
15945 | auto res = isl_pw_aff_var_on_domain(ls: ls.release(), type: static_cast<enum isl_dim_type>(type), pos); |
15946 | return manage(ptr: res); |
15947 | } |
15948 | |
15949 | inline std::ostream &operator<<(std::ostream &os, const pw_aff &obj) |
15950 | { |
15951 | char *str = isl_pw_aff_to_str(pa: obj.get()); |
15952 | if (!str) { |
15953 | os.setstate(std::ios_base::badbit); |
15954 | return os; |
15955 | } |
15956 | os << str; |
15957 | free(ptr: str); |
15958 | return os; |
15959 | } |
15960 | |
15961 | // implementations for isl::pw_aff_list |
15962 | pw_aff_list manage(__isl_take isl_pw_aff_list *ptr) { |
15963 | return pw_aff_list(ptr); |
15964 | } |
15965 | pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr) { |
15966 | ptr = isl_pw_aff_list_copy(list: ptr); |
15967 | return pw_aff_list(ptr); |
15968 | } |
15969 | |
15970 | pw_aff_list::pw_aff_list() |
15971 | : ptr(nullptr) {} |
15972 | |
15973 | pw_aff_list::pw_aff_list(const pw_aff_list &obj) |
15974 | : ptr(nullptr) |
15975 | { |
15976 | ptr = obj.copy(); |
15977 | } |
15978 | |
15979 | pw_aff_list::pw_aff_list(__isl_take isl_pw_aff_list *ptr) |
15980 | : ptr(ptr) {} |
15981 | |
15982 | pw_aff_list::pw_aff_list(isl::ctx ctx, int n) |
15983 | { |
15984 | auto res = isl_pw_aff_list_alloc(ctx: ctx.release(), n); |
15985 | ptr = res; |
15986 | } |
15987 | |
15988 | pw_aff_list::pw_aff_list(isl::pw_aff el) |
15989 | { |
15990 | auto res = isl_pw_aff_list_from_pw_aff(el: el.release()); |
15991 | ptr = res; |
15992 | } |
15993 | |
15994 | pw_aff_list::pw_aff_list(isl::ctx ctx, const std::string &str) |
15995 | { |
15996 | auto res = isl_pw_aff_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
15997 | ptr = res; |
15998 | } |
15999 | |
16000 | pw_aff_list &pw_aff_list::operator=(pw_aff_list obj) { |
16001 | std::swap(a&: this->ptr, b&: obj.ptr); |
16002 | return *this; |
16003 | } |
16004 | |
16005 | pw_aff_list::~pw_aff_list() { |
16006 | if (ptr) |
16007 | isl_pw_aff_list_free(list: ptr); |
16008 | } |
16009 | |
16010 | __isl_give isl_pw_aff_list *pw_aff_list::copy() const & { |
16011 | return isl_pw_aff_list_copy(list: ptr); |
16012 | } |
16013 | |
16014 | __isl_keep isl_pw_aff_list *pw_aff_list::get() const { |
16015 | return ptr; |
16016 | } |
16017 | |
16018 | __isl_give isl_pw_aff_list *pw_aff_list::release() { |
16019 | isl_pw_aff_list *tmp = ptr; |
16020 | ptr = nullptr; |
16021 | return tmp; |
16022 | } |
16023 | |
16024 | bool pw_aff_list::is_null() const { |
16025 | return ptr == nullptr; |
16026 | } |
16027 | |
16028 | isl::ctx pw_aff_list::ctx() const { |
16029 | return isl::ctx(isl_pw_aff_list_get_ctx(list: ptr)); |
16030 | } |
16031 | |
16032 | isl::pw_aff_list pw_aff_list::add(isl::pw_aff el) const |
16033 | { |
16034 | auto res = isl_pw_aff_list_add(list: copy(), el: el.release()); |
16035 | return manage(ptr: res); |
16036 | } |
16037 | |
16038 | isl::pw_aff pw_aff_list::at(int index) const |
16039 | { |
16040 | auto res = isl_pw_aff_list_get_at(list: get(), index); |
16041 | return manage(ptr: res); |
16042 | } |
16043 | |
16044 | isl::pw_aff pw_aff_list::get_at(int index) const |
16045 | { |
16046 | return at(index); |
16047 | } |
16048 | |
16049 | isl::pw_aff_list pw_aff_list::clear() const |
16050 | { |
16051 | auto res = isl_pw_aff_list_clear(list: copy()); |
16052 | return manage(ptr: res); |
16053 | } |
16054 | |
16055 | isl::pw_aff_list pw_aff_list::concat(isl::pw_aff_list list2) const |
16056 | { |
16057 | auto res = isl_pw_aff_list_concat(list1: copy(), list2: list2.release()); |
16058 | return manage(ptr: res); |
16059 | } |
16060 | |
16061 | isl::pw_aff_list pw_aff_list::drop(unsigned int first, unsigned int n) const |
16062 | { |
16063 | auto res = isl_pw_aff_list_drop(list: copy(), first, n); |
16064 | return manage(ptr: res); |
16065 | } |
16066 | |
16067 | stat pw_aff_list::foreach(const std::function<stat(isl::pw_aff)> &fn) const |
16068 | { |
16069 | struct fn_data { |
16070 | std::function<stat(isl::pw_aff)> func; |
16071 | } fn_data = { .func: fn }; |
16072 | auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat { |
16073 | auto *data = static_cast<struct fn_data *>(arg_1); |
16074 | auto ret = (data->func)(manage(ptr: arg_0)); |
16075 | return ret.release(); |
16076 | }; |
16077 | auto res = isl_pw_aff_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
16078 | return manage(val: res); |
16079 | } |
16080 | |
16081 | isl::pw_aff_list pw_aff_list::insert(unsigned int pos, isl::pw_aff el) const |
16082 | { |
16083 | auto res = isl_pw_aff_list_insert(list: copy(), pos, el: el.release()); |
16084 | return manage(ptr: res); |
16085 | } |
16086 | |
16087 | class size pw_aff_list::size() const |
16088 | { |
16089 | auto res = isl_pw_aff_list_size(list: get()); |
16090 | return manage(val: res); |
16091 | } |
16092 | |
16093 | inline std::ostream &operator<<(std::ostream &os, const pw_aff_list &obj) |
16094 | { |
16095 | char *str = isl_pw_aff_list_to_str(list: obj.get()); |
16096 | if (!str) { |
16097 | os.setstate(std::ios_base::badbit); |
16098 | return os; |
16099 | } |
16100 | os << str; |
16101 | free(ptr: str); |
16102 | return os; |
16103 | } |
16104 | |
16105 | // implementations for isl::pw_multi_aff |
16106 | pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr) { |
16107 | return pw_multi_aff(ptr); |
16108 | } |
16109 | pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr) { |
16110 | ptr = isl_pw_multi_aff_copy(pma: ptr); |
16111 | return pw_multi_aff(ptr); |
16112 | } |
16113 | |
16114 | pw_multi_aff::pw_multi_aff() |
16115 | : ptr(nullptr) {} |
16116 | |
16117 | pw_multi_aff::pw_multi_aff(const pw_multi_aff &obj) |
16118 | : ptr(nullptr) |
16119 | { |
16120 | ptr = obj.copy(); |
16121 | } |
16122 | |
16123 | pw_multi_aff::pw_multi_aff(__isl_take isl_pw_multi_aff *ptr) |
16124 | : ptr(ptr) {} |
16125 | |
16126 | pw_multi_aff::pw_multi_aff(isl::multi_aff ma) |
16127 | { |
16128 | auto res = isl_pw_multi_aff_from_multi_aff(ma: ma.release()); |
16129 | ptr = res; |
16130 | } |
16131 | |
16132 | pw_multi_aff::pw_multi_aff(isl::pw_aff pa) |
16133 | { |
16134 | auto res = isl_pw_multi_aff_from_pw_aff(pa: pa.release()); |
16135 | ptr = res; |
16136 | } |
16137 | |
16138 | pw_multi_aff::pw_multi_aff(isl::ctx ctx, const std::string &str) |
16139 | { |
16140 | auto res = isl_pw_multi_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
16141 | ptr = res; |
16142 | } |
16143 | |
16144 | pw_multi_aff &pw_multi_aff::operator=(pw_multi_aff obj) { |
16145 | std::swap(a&: this->ptr, b&: obj.ptr); |
16146 | return *this; |
16147 | } |
16148 | |
16149 | pw_multi_aff::~pw_multi_aff() { |
16150 | if (ptr) |
16151 | isl_pw_multi_aff_free(pma: ptr); |
16152 | } |
16153 | |
16154 | __isl_give isl_pw_multi_aff *pw_multi_aff::copy() const & { |
16155 | return isl_pw_multi_aff_copy(pma: ptr); |
16156 | } |
16157 | |
16158 | __isl_keep isl_pw_multi_aff *pw_multi_aff::get() const { |
16159 | return ptr; |
16160 | } |
16161 | |
16162 | __isl_give isl_pw_multi_aff *pw_multi_aff::release() { |
16163 | isl_pw_multi_aff *tmp = ptr; |
16164 | ptr = nullptr; |
16165 | return tmp; |
16166 | } |
16167 | |
16168 | bool pw_multi_aff::is_null() const { |
16169 | return ptr == nullptr; |
16170 | } |
16171 | |
16172 | isl::ctx pw_multi_aff::ctx() const { |
16173 | return isl::ctx(isl_pw_multi_aff_get_ctx(pma: ptr)); |
16174 | } |
16175 | |
16176 | isl::multi_pw_aff pw_multi_aff::add(const isl::multi_pw_aff &multi2) const |
16177 | { |
16178 | return isl::multi_pw_aff(*this).add(multi2); |
16179 | } |
16180 | |
16181 | isl::multi_union_pw_aff pw_multi_aff::add(const isl::multi_union_pw_aff &multi2) const |
16182 | { |
16183 | return isl::multi_pw_aff(*this).add(multi2); |
16184 | } |
16185 | |
16186 | isl::pw_multi_aff pw_multi_aff::add(isl::pw_multi_aff pma2) const |
16187 | { |
16188 | auto res = isl_pw_multi_aff_add(pma1: copy(), pma2: pma2.release()); |
16189 | return manage(ptr: res); |
16190 | } |
16191 | |
16192 | isl::union_pw_multi_aff pw_multi_aff::add(const isl::union_pw_multi_aff &upma2) const |
16193 | { |
16194 | return isl::union_pw_multi_aff(*this).add(upma2); |
16195 | } |
16196 | |
16197 | isl::pw_multi_aff pw_multi_aff::add(const isl::multi_aff &pma2) const |
16198 | { |
16199 | return this->add(pma2: isl::pw_multi_aff(pma2)); |
16200 | } |
16201 | |
16202 | isl::pw_multi_aff pw_multi_aff::add(const isl::pw_aff &pma2) const |
16203 | { |
16204 | return this->add(pma2: isl::pw_multi_aff(pma2)); |
16205 | } |
16206 | |
16207 | isl::pw_multi_aff pw_multi_aff::add_constant(isl::multi_val mv) const |
16208 | { |
16209 | auto res = isl_pw_multi_aff_add_constant_multi_val(pma: copy(), mv: mv.release()); |
16210 | return manage(ptr: res); |
16211 | } |
16212 | |
16213 | isl::pw_multi_aff pw_multi_aff::add_constant(isl::val v) const |
16214 | { |
16215 | auto res = isl_pw_multi_aff_add_constant_val(pma: copy(), v: v.release()); |
16216 | return manage(ptr: res); |
16217 | } |
16218 | |
16219 | isl::pw_multi_aff pw_multi_aff::add_constant(long v) const |
16220 | { |
16221 | return this->add_constant(v: isl::val(ctx(), v)); |
16222 | } |
16223 | |
16224 | isl::union_pw_multi_aff pw_multi_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const |
16225 | { |
16226 | return isl::union_pw_multi_aff(*this).add_pw_multi_aff(pma); |
16227 | } |
16228 | |
16229 | isl::union_pw_multi_aff pw_multi_aff::apply(const isl::union_pw_multi_aff &upma2) const |
16230 | { |
16231 | return isl::union_pw_multi_aff(*this).apply(upma2); |
16232 | } |
16233 | |
16234 | isl::map pw_multi_aff::as_map() const |
16235 | { |
16236 | auto res = isl_pw_multi_aff_as_map(pma: copy()); |
16237 | return manage(ptr: res); |
16238 | } |
16239 | |
16240 | isl::multi_aff pw_multi_aff::as_multi_aff() const |
16241 | { |
16242 | auto res = isl_pw_multi_aff_as_multi_aff(pma: copy()); |
16243 | return manage(ptr: res); |
16244 | } |
16245 | |
16246 | isl::multi_union_pw_aff pw_multi_aff::as_multi_union_pw_aff() const |
16247 | { |
16248 | return isl::union_pw_multi_aff(*this).as_multi_union_pw_aff(); |
16249 | } |
16250 | |
16251 | isl::pw_multi_aff pw_multi_aff::as_pw_multi_aff() const |
16252 | { |
16253 | return isl::union_pw_multi_aff(*this).as_pw_multi_aff(); |
16254 | } |
16255 | |
16256 | isl::set pw_multi_aff::as_set() const |
16257 | { |
16258 | auto res = isl_pw_multi_aff_as_set(pma: copy()); |
16259 | return manage(ptr: res); |
16260 | } |
16261 | |
16262 | isl::union_map pw_multi_aff::as_union_map() const |
16263 | { |
16264 | return isl::union_pw_multi_aff(*this).as_union_map(); |
16265 | } |
16266 | |
16267 | isl::pw_aff pw_multi_aff::at(int pos) const |
16268 | { |
16269 | auto res = isl_pw_multi_aff_get_at(pma: get(), pos); |
16270 | return manage(ptr: res); |
16271 | } |
16272 | |
16273 | isl::pw_aff pw_multi_aff::get_at(int pos) const |
16274 | { |
16275 | return at(pos); |
16276 | } |
16277 | |
16278 | isl::set pw_multi_aff::bind(const isl::multi_id &tuple) const |
16279 | { |
16280 | return isl::multi_pw_aff(*this).bind(tuple); |
16281 | } |
16282 | |
16283 | isl::pw_multi_aff pw_multi_aff::bind_domain(isl::multi_id tuple) const |
16284 | { |
16285 | auto res = isl_pw_multi_aff_bind_domain(pma: copy(), tuple: tuple.release()); |
16286 | return manage(ptr: res); |
16287 | } |
16288 | |
16289 | isl::pw_multi_aff pw_multi_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const |
16290 | { |
16291 | auto res = isl_pw_multi_aff_bind_domain_wrapped_domain(pma: copy(), tuple: tuple.release()); |
16292 | return manage(ptr: res); |
16293 | } |
16294 | |
16295 | isl::pw_multi_aff pw_multi_aff::coalesce() const |
16296 | { |
16297 | auto res = isl_pw_multi_aff_coalesce(pma: copy()); |
16298 | return manage(ptr: res); |
16299 | } |
16300 | |
16301 | class size pw_multi_aff::dim(isl::dim type) const |
16302 | { |
16303 | auto res = isl_pw_multi_aff_dim(pma: get(), type: static_cast<enum isl_dim_type>(type)); |
16304 | return manage(val: res); |
16305 | } |
16306 | |
16307 | isl::set pw_multi_aff::domain() const |
16308 | { |
16309 | auto res = isl_pw_multi_aff_domain(pma: copy()); |
16310 | return manage(ptr: res); |
16311 | } |
16312 | |
16313 | isl::pw_multi_aff pw_multi_aff::domain_map(isl::space space) |
16314 | { |
16315 | auto res = isl_pw_multi_aff_domain_map(space: space.release()); |
16316 | return manage(ptr: res); |
16317 | } |
16318 | |
16319 | isl::pw_multi_aff pw_multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const |
16320 | { |
16321 | auto res = isl_pw_multi_aff_drop_dims(pma: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
16322 | return manage(ptr: res); |
16323 | } |
16324 | |
16325 | isl::pw_multi_aff pw_multi_aff::(const isl::space &space) const |
16326 | { |
16327 | return isl::union_pw_multi_aff(*this).extract_pw_multi_aff(space); |
16328 | } |
16329 | |
16330 | isl::multi_pw_aff pw_multi_aff::flat_range_product(const isl::multi_pw_aff &multi2) const |
16331 | { |
16332 | return isl::multi_pw_aff(*this).flat_range_product(multi2); |
16333 | } |
16334 | |
16335 | isl::multi_union_pw_aff pw_multi_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const |
16336 | { |
16337 | return isl::multi_pw_aff(*this).flat_range_product(multi2); |
16338 | } |
16339 | |
16340 | isl::pw_multi_aff pw_multi_aff::flat_range_product(isl::pw_multi_aff pma2) const |
16341 | { |
16342 | auto res = isl_pw_multi_aff_flat_range_product(pma1: copy(), pma2: pma2.release()); |
16343 | return manage(ptr: res); |
16344 | } |
16345 | |
16346 | isl::union_pw_multi_aff pw_multi_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const |
16347 | { |
16348 | return isl::union_pw_multi_aff(*this).flat_range_product(upma2); |
16349 | } |
16350 | |
16351 | isl::pw_multi_aff pw_multi_aff::flat_range_product(const isl::multi_aff &pma2) const |
16352 | { |
16353 | return this->flat_range_product(pma2: isl::pw_multi_aff(pma2)); |
16354 | } |
16355 | |
16356 | isl::pw_multi_aff pw_multi_aff::flat_range_product(const isl::pw_aff &pma2) const |
16357 | { |
16358 | return this->flat_range_product(pma2: isl::pw_multi_aff(pma2)); |
16359 | } |
16360 | |
16361 | stat pw_multi_aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const |
16362 | { |
16363 | struct fn_data { |
16364 | std::function<stat(isl::set, isl::multi_aff)> func; |
16365 | } fn_data = { .func: fn }; |
16366 | auto fn_lambda = [](isl_set *arg_0, isl_multi_aff *arg_1, void *arg_2) -> isl_stat { |
16367 | auto *data = static_cast<struct fn_data *>(arg_2); |
16368 | auto ret = (data->func)(manage(ptr: arg_0), manage(ptr: arg_1)); |
16369 | return ret.release(); |
16370 | }; |
16371 | auto res = isl_pw_multi_aff_foreach_piece(pma: get(), fn: fn_lambda, user: &fn_data); |
16372 | return manage(val: res); |
16373 | } |
16374 | |
16375 | isl::pw_multi_aff pw_multi_aff::from_map(isl::map map) |
16376 | { |
16377 | auto res = isl_pw_multi_aff_from_map(map: map.release()); |
16378 | return manage(ptr: res); |
16379 | } |
16380 | |
16381 | isl::pw_multi_aff pw_multi_aff::gist(isl::set set) const |
16382 | { |
16383 | auto res = isl_pw_multi_aff_gist(pma: copy(), set: set.release()); |
16384 | return manage(ptr: res); |
16385 | } |
16386 | |
16387 | isl::union_pw_multi_aff pw_multi_aff::gist(const isl::union_set &context) const |
16388 | { |
16389 | return isl::union_pw_multi_aff(*this).gist(context); |
16390 | } |
16391 | |
16392 | isl::pw_multi_aff pw_multi_aff::gist(const isl::basic_set &set) const |
16393 | { |
16394 | return this->gist(set: isl::set(set)); |
16395 | } |
16396 | |
16397 | isl::pw_multi_aff pw_multi_aff::gist(const isl::point &set) const |
16398 | { |
16399 | return this->gist(set: isl::set(set)); |
16400 | } |
16401 | |
16402 | boolean pw_multi_aff::has_range_tuple_id() const |
16403 | { |
16404 | auto res = isl_pw_multi_aff_has_range_tuple_id(pma: get()); |
16405 | return manage(val: res); |
16406 | } |
16407 | |
16408 | isl::multi_pw_aff pw_multi_aff::identity() const |
16409 | { |
16410 | return isl::multi_pw_aff(*this).identity(); |
16411 | } |
16412 | |
16413 | isl::pw_multi_aff pw_multi_aff::identity_on_domain(isl::space space) |
16414 | { |
16415 | auto res = isl_pw_multi_aff_identity_on_domain_space(space: space.release()); |
16416 | return manage(ptr: res); |
16417 | } |
16418 | |
16419 | isl::pw_multi_aff pw_multi_aff::insert_domain(isl::space domain) const |
16420 | { |
16421 | auto res = isl_pw_multi_aff_insert_domain(pma: copy(), domain: domain.release()); |
16422 | return manage(ptr: res); |
16423 | } |
16424 | |
16425 | isl::pw_multi_aff pw_multi_aff::intersect_domain(isl::set set) const |
16426 | { |
16427 | auto res = isl_pw_multi_aff_intersect_domain(pma: copy(), set: set.release()); |
16428 | return manage(ptr: res); |
16429 | } |
16430 | |
16431 | isl::union_pw_multi_aff pw_multi_aff::intersect_domain(const isl::space &space) const |
16432 | { |
16433 | return isl::union_pw_multi_aff(*this).intersect_domain(space); |
16434 | } |
16435 | |
16436 | isl::union_pw_multi_aff pw_multi_aff::intersect_domain(const isl::union_set &uset) const |
16437 | { |
16438 | return isl::union_pw_multi_aff(*this).intersect_domain(uset); |
16439 | } |
16440 | |
16441 | isl::pw_multi_aff pw_multi_aff::intersect_domain(const isl::basic_set &set) const |
16442 | { |
16443 | return this->intersect_domain(set: isl::set(set)); |
16444 | } |
16445 | |
16446 | isl::pw_multi_aff pw_multi_aff::intersect_domain(const isl::point &set) const |
16447 | { |
16448 | return this->intersect_domain(set: isl::set(set)); |
16449 | } |
16450 | |
16451 | isl::union_pw_multi_aff pw_multi_aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const |
16452 | { |
16453 | return isl::union_pw_multi_aff(*this).intersect_domain_wrapped_domain(uset); |
16454 | } |
16455 | |
16456 | isl::union_pw_multi_aff pw_multi_aff::intersect_domain_wrapped_range(const isl::union_set &uset) const |
16457 | { |
16458 | return isl::union_pw_multi_aff(*this).intersect_domain_wrapped_range(uset); |
16459 | } |
16460 | |
16461 | isl::pw_multi_aff pw_multi_aff::intersect_params(isl::set set) const |
16462 | { |
16463 | auto res = isl_pw_multi_aff_intersect_params(pma: copy(), set: set.release()); |
16464 | return manage(ptr: res); |
16465 | } |
16466 | |
16467 | boolean pw_multi_aff::involves_locals() const |
16468 | { |
16469 | auto res = isl_pw_multi_aff_involves_locals(pma: get()); |
16470 | return manage(val: res); |
16471 | } |
16472 | |
16473 | boolean pw_multi_aff::involves_nan() const |
16474 | { |
16475 | return isl::multi_pw_aff(*this).involves_nan(); |
16476 | } |
16477 | |
16478 | boolean pw_multi_aff::involves_param(const isl::id &id) const |
16479 | { |
16480 | return isl::multi_pw_aff(*this).involves_param(id); |
16481 | } |
16482 | |
16483 | boolean pw_multi_aff::involves_param(const std::string &id) const |
16484 | { |
16485 | return this->involves_param(id: isl::id(ctx(), id)); |
16486 | } |
16487 | |
16488 | boolean pw_multi_aff::involves_param(const isl::id_list &list) const |
16489 | { |
16490 | return isl::multi_pw_aff(*this).involves_param(list); |
16491 | } |
16492 | |
16493 | boolean pw_multi_aff::isa_multi_aff() const |
16494 | { |
16495 | auto res = isl_pw_multi_aff_isa_multi_aff(pma: get()); |
16496 | return manage(val: res); |
16497 | } |
16498 | |
16499 | boolean pw_multi_aff::isa_pw_multi_aff() const |
16500 | { |
16501 | return isl::union_pw_multi_aff(*this).isa_pw_multi_aff(); |
16502 | } |
16503 | |
16504 | isl::pw_aff_list pw_multi_aff::list() const |
16505 | { |
16506 | return isl::multi_pw_aff(*this).list(); |
16507 | } |
16508 | |
16509 | isl::multi_pw_aff pw_multi_aff::max(const isl::multi_pw_aff &multi2) const |
16510 | { |
16511 | return isl::multi_pw_aff(*this).max(multi2); |
16512 | } |
16513 | |
16514 | isl::multi_val pw_multi_aff::max_multi_val() const |
16515 | { |
16516 | auto res = isl_pw_multi_aff_max_multi_val(pma: copy()); |
16517 | return manage(ptr: res); |
16518 | } |
16519 | |
16520 | isl::multi_pw_aff pw_multi_aff::min(const isl::multi_pw_aff &multi2) const |
16521 | { |
16522 | return isl::multi_pw_aff(*this).min(multi2); |
16523 | } |
16524 | |
16525 | isl::multi_val pw_multi_aff::min_multi_val() const |
16526 | { |
16527 | auto res = isl_pw_multi_aff_min_multi_val(pma: copy()); |
16528 | return manage(ptr: res); |
16529 | } |
16530 | |
16531 | isl::pw_multi_aff pw_multi_aff::multi_val_on_domain(isl::set domain, isl::multi_val mv) |
16532 | { |
16533 | auto res = isl_pw_multi_aff_multi_val_on_domain(domain: domain.release(), mv: mv.release()); |
16534 | return manage(ptr: res); |
16535 | } |
16536 | |
16537 | class size pw_multi_aff::n_piece() const |
16538 | { |
16539 | auto res = isl_pw_multi_aff_n_piece(pma: get()); |
16540 | return manage(val: res); |
16541 | } |
16542 | |
16543 | isl::multi_pw_aff pw_multi_aff::neg() const |
16544 | { |
16545 | return isl::multi_pw_aff(*this).neg(); |
16546 | } |
16547 | |
16548 | boolean pw_multi_aff::plain_is_empty() const |
16549 | { |
16550 | return isl::union_pw_multi_aff(*this).plain_is_empty(); |
16551 | } |
16552 | |
16553 | boolean pw_multi_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const |
16554 | { |
16555 | return isl::multi_pw_aff(*this).plain_is_equal(multi2); |
16556 | } |
16557 | |
16558 | boolean pw_multi_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
16559 | { |
16560 | return isl::multi_pw_aff(*this).plain_is_equal(multi2); |
16561 | } |
16562 | |
16563 | isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(isl::pw_multi_aff pma2) const |
16564 | { |
16565 | auto res = isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(pma1: copy(), pma2: pma2.release()); |
16566 | return manage(ptr: res); |
16567 | } |
16568 | |
16569 | isl::union_pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const |
16570 | { |
16571 | return isl::union_pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2); |
16572 | } |
16573 | |
16574 | isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(const isl::multi_aff &pma2) const |
16575 | { |
16576 | return this->preimage_domain_wrapped_domain(pma2: isl::pw_multi_aff(pma2)); |
16577 | } |
16578 | |
16579 | isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(const isl::pw_aff &pma2) const |
16580 | { |
16581 | return this->preimage_domain_wrapped_domain(pma2: isl::pw_multi_aff(pma2)); |
16582 | } |
16583 | |
16584 | isl::multi_pw_aff pw_multi_aff::product(const isl::multi_pw_aff &multi2) const |
16585 | { |
16586 | return isl::multi_pw_aff(*this).product(multi2); |
16587 | } |
16588 | |
16589 | isl::pw_multi_aff pw_multi_aff::product(isl::pw_multi_aff pma2) const |
16590 | { |
16591 | auto res = isl_pw_multi_aff_product(pma1: copy(), pma2: pma2.release()); |
16592 | return manage(ptr: res); |
16593 | } |
16594 | |
16595 | isl::pw_multi_aff pw_multi_aff::product(const isl::multi_aff &pma2) const |
16596 | { |
16597 | return this->product(pma2: isl::pw_multi_aff(pma2)); |
16598 | } |
16599 | |
16600 | isl::pw_multi_aff pw_multi_aff::product(const isl::pw_aff &pma2) const |
16601 | { |
16602 | return this->product(pma2: isl::pw_multi_aff(pma2)); |
16603 | } |
16604 | |
16605 | isl::pw_multi_aff pw_multi_aff::project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n) |
16606 | { |
16607 | auto res = isl_pw_multi_aff_project_out_map(space: space.release(), type: static_cast<enum isl_dim_type>(type), first, n); |
16608 | return manage(ptr: res); |
16609 | } |
16610 | |
16611 | isl::multi_pw_aff pw_multi_aff::pullback(const isl::multi_pw_aff &mpa2) const |
16612 | { |
16613 | return isl::multi_pw_aff(*this).pullback(mpa2); |
16614 | } |
16615 | |
16616 | isl::pw_multi_aff pw_multi_aff::pullback(isl::multi_aff ma) const |
16617 | { |
16618 | auto res = isl_pw_multi_aff_pullback_multi_aff(pma: copy(), ma: ma.release()); |
16619 | return manage(ptr: res); |
16620 | } |
16621 | |
16622 | isl::pw_multi_aff pw_multi_aff::pullback(isl::pw_multi_aff pma2) const |
16623 | { |
16624 | auto res = isl_pw_multi_aff_pullback_pw_multi_aff(pma1: copy(), pma2: pma2.release()); |
16625 | return manage(ptr: res); |
16626 | } |
16627 | |
16628 | isl::union_pw_multi_aff pw_multi_aff::pullback(const isl::union_pw_multi_aff &upma2) const |
16629 | { |
16630 | return isl::union_pw_multi_aff(*this).pullback(upma2); |
16631 | } |
16632 | |
16633 | isl::pw_multi_aff_list pw_multi_aff::pw_multi_aff_list() const |
16634 | { |
16635 | return isl::union_pw_multi_aff(*this).pw_multi_aff_list(); |
16636 | } |
16637 | |
16638 | isl::pw_multi_aff pw_multi_aff::range_factor_domain() const |
16639 | { |
16640 | auto res = isl_pw_multi_aff_range_factor_domain(pma: copy()); |
16641 | return manage(ptr: res); |
16642 | } |
16643 | |
16644 | isl::pw_multi_aff pw_multi_aff::range_factor_range() const |
16645 | { |
16646 | auto res = isl_pw_multi_aff_range_factor_range(pma: copy()); |
16647 | return manage(ptr: res); |
16648 | } |
16649 | |
16650 | isl::pw_multi_aff pw_multi_aff::range_map(isl::space space) |
16651 | { |
16652 | auto res = isl_pw_multi_aff_range_map(space: space.release()); |
16653 | return manage(ptr: res); |
16654 | } |
16655 | |
16656 | isl::multi_pw_aff pw_multi_aff::range_product(const isl::multi_pw_aff &multi2) const |
16657 | { |
16658 | return isl::multi_pw_aff(*this).range_product(multi2); |
16659 | } |
16660 | |
16661 | isl::multi_union_pw_aff pw_multi_aff::range_product(const isl::multi_union_pw_aff &multi2) const |
16662 | { |
16663 | return isl::multi_pw_aff(*this).range_product(multi2); |
16664 | } |
16665 | |
16666 | isl::pw_multi_aff pw_multi_aff::range_product(isl::pw_multi_aff pma2) const |
16667 | { |
16668 | auto res = isl_pw_multi_aff_range_product(pma1: copy(), pma2: pma2.release()); |
16669 | return manage(ptr: res); |
16670 | } |
16671 | |
16672 | isl::union_pw_multi_aff pw_multi_aff::range_product(const isl::union_pw_multi_aff &upma2) const |
16673 | { |
16674 | return isl::union_pw_multi_aff(*this).range_product(upma2); |
16675 | } |
16676 | |
16677 | isl::pw_multi_aff pw_multi_aff::range_product(const isl::multi_aff &pma2) const |
16678 | { |
16679 | return this->range_product(pma2: isl::pw_multi_aff(pma2)); |
16680 | } |
16681 | |
16682 | isl::pw_multi_aff pw_multi_aff::range_product(const isl::pw_aff &pma2) const |
16683 | { |
16684 | return this->range_product(pma2: isl::pw_multi_aff(pma2)); |
16685 | } |
16686 | |
16687 | isl::id pw_multi_aff::range_tuple_id() const |
16688 | { |
16689 | auto res = isl_pw_multi_aff_get_range_tuple_id(pma: get()); |
16690 | return manage(ptr: res); |
16691 | } |
16692 | |
16693 | isl::id pw_multi_aff::get_range_tuple_id() const |
16694 | { |
16695 | return range_tuple_id(); |
16696 | } |
16697 | |
16698 | isl::multi_pw_aff pw_multi_aff::reset_range_tuple_id() const |
16699 | { |
16700 | return isl::multi_pw_aff(*this).reset_range_tuple_id(); |
16701 | } |
16702 | |
16703 | isl::multi_pw_aff pw_multi_aff::reset_tuple_id(isl::dim type) const |
16704 | { |
16705 | return isl::multi_pw_aff(*this).reset_tuple_id(type); |
16706 | } |
16707 | |
16708 | isl::multi_pw_aff pw_multi_aff::scale(const isl::multi_val &mv) const |
16709 | { |
16710 | return isl::multi_pw_aff(*this).scale(mv); |
16711 | } |
16712 | |
16713 | isl::pw_multi_aff pw_multi_aff::scale(isl::val v) const |
16714 | { |
16715 | auto res = isl_pw_multi_aff_scale_val(pma: copy(), v: v.release()); |
16716 | return manage(ptr: res); |
16717 | } |
16718 | |
16719 | isl::pw_multi_aff pw_multi_aff::scale(long v) const |
16720 | { |
16721 | return this->scale(v: isl::val(ctx(), v)); |
16722 | } |
16723 | |
16724 | isl::multi_pw_aff pw_multi_aff::scale_down(const isl::multi_val &mv) const |
16725 | { |
16726 | return isl::multi_pw_aff(*this).scale_down(mv); |
16727 | } |
16728 | |
16729 | isl::pw_multi_aff pw_multi_aff::scale_down(isl::val v) const |
16730 | { |
16731 | auto res = isl_pw_multi_aff_scale_down_val(pma: copy(), v: v.release()); |
16732 | return manage(ptr: res); |
16733 | } |
16734 | |
16735 | isl::pw_multi_aff pw_multi_aff::scale_down(long v) const |
16736 | { |
16737 | return this->scale_down(v: isl::val(ctx(), v)); |
16738 | } |
16739 | |
16740 | isl::multi_pw_aff pw_multi_aff::set_at(int pos, const isl::pw_aff &el) const |
16741 | { |
16742 | return isl::multi_pw_aff(*this).set_at(pos, el); |
16743 | } |
16744 | |
16745 | isl::multi_union_pw_aff pw_multi_aff::set_at(int pos, const isl::union_pw_aff &el) const |
16746 | { |
16747 | return isl::multi_pw_aff(*this).set_at(pos, el); |
16748 | } |
16749 | |
16750 | isl::multi_pw_aff pw_multi_aff::set_pw_aff(int pos, const isl::pw_aff &el) const |
16751 | { |
16752 | return isl::multi_pw_aff(*this).set_pw_aff(pos, el); |
16753 | } |
16754 | |
16755 | isl::pw_multi_aff pw_multi_aff::set_pw_aff(unsigned int pos, isl::pw_aff pa) const |
16756 | { |
16757 | auto res = isl_pw_multi_aff_set_pw_aff(pma: copy(), pos, pa: pa.release()); |
16758 | return manage(ptr: res); |
16759 | } |
16760 | |
16761 | isl::pw_multi_aff pw_multi_aff::set_range_tuple(isl::id id) const |
16762 | { |
16763 | auto res = isl_pw_multi_aff_set_range_tuple_id(pma: copy(), id: id.release()); |
16764 | return manage(ptr: res); |
16765 | } |
16766 | |
16767 | isl::pw_multi_aff pw_multi_aff::set_range_tuple(const std::string &id) const |
16768 | { |
16769 | return this->set_range_tuple(isl::id(ctx(), id)); |
16770 | } |
16771 | |
16772 | isl::multi_union_pw_aff pw_multi_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const |
16773 | { |
16774 | return isl::multi_pw_aff(*this).set_union_pw_aff(pos, el); |
16775 | } |
16776 | |
16777 | class size pw_multi_aff::size() const |
16778 | { |
16779 | return isl::multi_pw_aff(*this).size(); |
16780 | } |
16781 | |
16782 | isl::space pw_multi_aff::space() const |
16783 | { |
16784 | auto res = isl_pw_multi_aff_get_space(pma: get()); |
16785 | return manage(ptr: res); |
16786 | } |
16787 | |
16788 | isl::space pw_multi_aff::get_space() const |
16789 | { |
16790 | return space(); |
16791 | } |
16792 | |
16793 | isl::multi_pw_aff pw_multi_aff::sub(const isl::multi_pw_aff &multi2) const |
16794 | { |
16795 | return isl::multi_pw_aff(*this).sub(multi2); |
16796 | } |
16797 | |
16798 | isl::multi_union_pw_aff pw_multi_aff::sub(const isl::multi_union_pw_aff &multi2) const |
16799 | { |
16800 | return isl::multi_pw_aff(*this).sub(multi2); |
16801 | } |
16802 | |
16803 | isl::pw_multi_aff pw_multi_aff::sub(isl::pw_multi_aff pma2) const |
16804 | { |
16805 | auto res = isl_pw_multi_aff_sub(pma1: copy(), pma2: pma2.release()); |
16806 | return manage(ptr: res); |
16807 | } |
16808 | |
16809 | isl::union_pw_multi_aff pw_multi_aff::sub(const isl::union_pw_multi_aff &upma2) const |
16810 | { |
16811 | return isl::union_pw_multi_aff(*this).sub(upma2); |
16812 | } |
16813 | |
16814 | isl::pw_multi_aff pw_multi_aff::sub(const isl::multi_aff &pma2) const |
16815 | { |
16816 | return this->sub(pma2: isl::pw_multi_aff(pma2)); |
16817 | } |
16818 | |
16819 | isl::pw_multi_aff pw_multi_aff::sub(const isl::pw_aff &pma2) const |
16820 | { |
16821 | return this->sub(pma2: isl::pw_multi_aff(pma2)); |
16822 | } |
16823 | |
16824 | isl::pw_multi_aff pw_multi_aff::subtract_domain(isl::set set) const |
16825 | { |
16826 | auto res = isl_pw_multi_aff_subtract_domain(pma: copy(), set: set.release()); |
16827 | return manage(ptr: res); |
16828 | } |
16829 | |
16830 | isl::union_pw_multi_aff pw_multi_aff::subtract_domain(const isl::space &space) const |
16831 | { |
16832 | return isl::union_pw_multi_aff(*this).subtract_domain(space); |
16833 | } |
16834 | |
16835 | isl::union_pw_multi_aff pw_multi_aff::subtract_domain(const isl::union_set &uset) const |
16836 | { |
16837 | return isl::union_pw_multi_aff(*this).subtract_domain(uset); |
16838 | } |
16839 | |
16840 | isl::pw_multi_aff pw_multi_aff::subtract_domain(const isl::basic_set &set) const |
16841 | { |
16842 | return this->subtract_domain(set: isl::set(set)); |
16843 | } |
16844 | |
16845 | isl::pw_multi_aff pw_multi_aff::subtract_domain(const isl::point &set) const |
16846 | { |
16847 | return this->subtract_domain(set: isl::set(set)); |
16848 | } |
16849 | |
16850 | isl::pw_multi_aff_list pw_multi_aff::to_list() const |
16851 | { |
16852 | auto res = isl_pw_multi_aff_to_list(el: copy()); |
16853 | return manage(ptr: res); |
16854 | } |
16855 | |
16856 | isl::multi_pw_aff pw_multi_aff::to_multi_pw_aff() const |
16857 | { |
16858 | auto res = isl_pw_multi_aff_to_multi_pw_aff(pma: copy()); |
16859 | return manage(ptr: res); |
16860 | } |
16861 | |
16862 | isl::union_pw_multi_aff pw_multi_aff::to_union_pw_multi_aff() const |
16863 | { |
16864 | auto res = isl_pw_multi_aff_to_union_pw_multi_aff(pma: copy()); |
16865 | return manage(ptr: res); |
16866 | } |
16867 | |
16868 | isl::id pw_multi_aff::tuple_id(isl::dim type) const |
16869 | { |
16870 | auto res = isl_pw_multi_aff_get_tuple_id(pma: get(), type: static_cast<enum isl_dim_type>(type)); |
16871 | return manage(ptr: res); |
16872 | } |
16873 | |
16874 | isl::id pw_multi_aff::get_tuple_id(isl::dim type) const |
16875 | { |
16876 | return tuple_id(type); |
16877 | } |
16878 | |
16879 | isl::multi_pw_aff pw_multi_aff::unbind_params_insert_domain(const isl::multi_id &domain) const |
16880 | { |
16881 | return isl::multi_pw_aff(*this).unbind_params_insert_domain(domain); |
16882 | } |
16883 | |
16884 | isl::multi_pw_aff pw_multi_aff::union_add(const isl::multi_pw_aff &mpa2) const |
16885 | { |
16886 | return isl::multi_pw_aff(*this).union_add(mpa2); |
16887 | } |
16888 | |
16889 | isl::multi_union_pw_aff pw_multi_aff::union_add(const isl::multi_union_pw_aff &mupa2) const |
16890 | { |
16891 | return isl::multi_pw_aff(*this).union_add(mupa2); |
16892 | } |
16893 | |
16894 | isl::pw_multi_aff pw_multi_aff::union_add(isl::pw_multi_aff pma2) const |
16895 | { |
16896 | auto res = isl_pw_multi_aff_union_add(pma1: copy(), pma2: pma2.release()); |
16897 | return manage(ptr: res); |
16898 | } |
16899 | |
16900 | isl::union_pw_multi_aff pw_multi_aff::union_add(const isl::union_pw_multi_aff &upma2) const |
16901 | { |
16902 | return isl::union_pw_multi_aff(*this).union_add(upma2); |
16903 | } |
16904 | |
16905 | isl::pw_multi_aff pw_multi_aff::union_add(const isl::multi_aff &pma2) const |
16906 | { |
16907 | return this->union_add(pma2: isl::pw_multi_aff(pma2)); |
16908 | } |
16909 | |
16910 | isl::pw_multi_aff pw_multi_aff::union_add(const isl::pw_aff &pma2) const |
16911 | { |
16912 | return this->union_add(pma2: isl::pw_multi_aff(pma2)); |
16913 | } |
16914 | |
16915 | isl::pw_multi_aff pw_multi_aff::zero(isl::space space) |
16916 | { |
16917 | auto res = isl_pw_multi_aff_zero(space: space.release()); |
16918 | return manage(ptr: res); |
16919 | } |
16920 | |
16921 | inline std::ostream &operator<<(std::ostream &os, const pw_multi_aff &obj) |
16922 | { |
16923 | char *str = isl_pw_multi_aff_to_str(pma: obj.get()); |
16924 | if (!str) { |
16925 | os.setstate(std::ios_base::badbit); |
16926 | return os; |
16927 | } |
16928 | os << str; |
16929 | free(ptr: str); |
16930 | return os; |
16931 | } |
16932 | |
16933 | // implementations for isl::pw_multi_aff_list |
16934 | pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr) { |
16935 | return pw_multi_aff_list(ptr); |
16936 | } |
16937 | pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr) { |
16938 | ptr = isl_pw_multi_aff_list_copy(list: ptr); |
16939 | return pw_multi_aff_list(ptr); |
16940 | } |
16941 | |
16942 | pw_multi_aff_list::pw_multi_aff_list() |
16943 | : ptr(nullptr) {} |
16944 | |
16945 | pw_multi_aff_list::pw_multi_aff_list(const pw_multi_aff_list &obj) |
16946 | : ptr(nullptr) |
16947 | { |
16948 | ptr = obj.copy(); |
16949 | } |
16950 | |
16951 | pw_multi_aff_list::pw_multi_aff_list(__isl_take isl_pw_multi_aff_list *ptr) |
16952 | : ptr(ptr) {} |
16953 | |
16954 | pw_multi_aff_list::pw_multi_aff_list(isl::ctx ctx, int n) |
16955 | { |
16956 | auto res = isl_pw_multi_aff_list_alloc(ctx: ctx.release(), n); |
16957 | ptr = res; |
16958 | } |
16959 | |
16960 | pw_multi_aff_list::pw_multi_aff_list(isl::pw_multi_aff el) |
16961 | { |
16962 | auto res = isl_pw_multi_aff_list_from_pw_multi_aff(el: el.release()); |
16963 | ptr = res; |
16964 | } |
16965 | |
16966 | pw_multi_aff_list::pw_multi_aff_list(isl::ctx ctx, const std::string &str) |
16967 | { |
16968 | auto res = isl_pw_multi_aff_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
16969 | ptr = res; |
16970 | } |
16971 | |
16972 | pw_multi_aff_list &pw_multi_aff_list::operator=(pw_multi_aff_list obj) { |
16973 | std::swap(a&: this->ptr, b&: obj.ptr); |
16974 | return *this; |
16975 | } |
16976 | |
16977 | pw_multi_aff_list::~pw_multi_aff_list() { |
16978 | if (ptr) |
16979 | isl_pw_multi_aff_list_free(list: ptr); |
16980 | } |
16981 | |
16982 | __isl_give isl_pw_multi_aff_list *pw_multi_aff_list::copy() const & { |
16983 | return isl_pw_multi_aff_list_copy(list: ptr); |
16984 | } |
16985 | |
16986 | __isl_keep isl_pw_multi_aff_list *pw_multi_aff_list::get() const { |
16987 | return ptr; |
16988 | } |
16989 | |
16990 | __isl_give isl_pw_multi_aff_list *pw_multi_aff_list::release() { |
16991 | isl_pw_multi_aff_list *tmp = ptr; |
16992 | ptr = nullptr; |
16993 | return tmp; |
16994 | } |
16995 | |
16996 | bool pw_multi_aff_list::is_null() const { |
16997 | return ptr == nullptr; |
16998 | } |
16999 | |
17000 | isl::ctx pw_multi_aff_list::ctx() const { |
17001 | return isl::ctx(isl_pw_multi_aff_list_get_ctx(list: ptr)); |
17002 | } |
17003 | |
17004 | isl::pw_multi_aff_list pw_multi_aff_list::add(isl::pw_multi_aff el) const |
17005 | { |
17006 | auto res = isl_pw_multi_aff_list_add(list: copy(), el: el.release()); |
17007 | return manage(ptr: res); |
17008 | } |
17009 | |
17010 | isl::pw_multi_aff pw_multi_aff_list::at(int index) const |
17011 | { |
17012 | auto res = isl_pw_multi_aff_list_get_at(list: get(), index); |
17013 | return manage(ptr: res); |
17014 | } |
17015 | |
17016 | isl::pw_multi_aff pw_multi_aff_list::get_at(int index) const |
17017 | { |
17018 | return at(index); |
17019 | } |
17020 | |
17021 | isl::pw_multi_aff_list pw_multi_aff_list::clear() const |
17022 | { |
17023 | auto res = isl_pw_multi_aff_list_clear(list: copy()); |
17024 | return manage(ptr: res); |
17025 | } |
17026 | |
17027 | isl::pw_multi_aff_list pw_multi_aff_list::concat(isl::pw_multi_aff_list list2) const |
17028 | { |
17029 | auto res = isl_pw_multi_aff_list_concat(list1: copy(), list2: list2.release()); |
17030 | return manage(ptr: res); |
17031 | } |
17032 | |
17033 | isl::pw_multi_aff_list pw_multi_aff_list::drop(unsigned int first, unsigned int n) const |
17034 | { |
17035 | auto res = isl_pw_multi_aff_list_drop(list: copy(), first, n); |
17036 | return manage(ptr: res); |
17037 | } |
17038 | |
17039 | stat pw_multi_aff_list::foreach(const std::function<stat(isl::pw_multi_aff)> &fn) const |
17040 | { |
17041 | struct fn_data { |
17042 | std::function<stat(isl::pw_multi_aff)> func; |
17043 | } fn_data = { .func: fn }; |
17044 | auto fn_lambda = [](isl_pw_multi_aff *arg_0, void *arg_1) -> isl_stat { |
17045 | auto *data = static_cast<struct fn_data *>(arg_1); |
17046 | auto ret = (data->func)(manage(ptr: arg_0)); |
17047 | return ret.release(); |
17048 | }; |
17049 | auto res = isl_pw_multi_aff_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
17050 | return manage(val: res); |
17051 | } |
17052 | |
17053 | isl::pw_multi_aff_list pw_multi_aff_list::insert(unsigned int pos, isl::pw_multi_aff el) const |
17054 | { |
17055 | auto res = isl_pw_multi_aff_list_insert(list: copy(), pos, el: el.release()); |
17056 | return manage(ptr: res); |
17057 | } |
17058 | |
17059 | class size pw_multi_aff_list::size() const |
17060 | { |
17061 | auto res = isl_pw_multi_aff_list_size(list: get()); |
17062 | return manage(val: res); |
17063 | } |
17064 | |
17065 | inline std::ostream &operator<<(std::ostream &os, const pw_multi_aff_list &obj) |
17066 | { |
17067 | char *str = isl_pw_multi_aff_list_to_str(list: obj.get()); |
17068 | if (!str) { |
17069 | os.setstate(std::ios_base::badbit); |
17070 | return os; |
17071 | } |
17072 | os << str; |
17073 | free(ptr: str); |
17074 | return os; |
17075 | } |
17076 | |
17077 | // implementations for isl::schedule |
17078 | schedule manage(__isl_take isl_schedule *ptr) { |
17079 | return schedule(ptr); |
17080 | } |
17081 | schedule manage_copy(__isl_keep isl_schedule *ptr) { |
17082 | ptr = isl_schedule_copy(sched: ptr); |
17083 | return schedule(ptr); |
17084 | } |
17085 | |
17086 | schedule::schedule() |
17087 | : ptr(nullptr) {} |
17088 | |
17089 | schedule::schedule(const schedule &obj) |
17090 | : ptr(nullptr) |
17091 | { |
17092 | ptr = obj.copy(); |
17093 | } |
17094 | |
17095 | schedule::schedule(__isl_take isl_schedule *ptr) |
17096 | : ptr(ptr) {} |
17097 | |
17098 | schedule::schedule(isl::ctx ctx, const std::string &str) |
17099 | { |
17100 | auto res = isl_schedule_read_from_str(ctx: ctx.release(), str: str.c_str()); |
17101 | ptr = res; |
17102 | } |
17103 | |
17104 | schedule &schedule::operator=(schedule obj) { |
17105 | std::swap(a&: this->ptr, b&: obj.ptr); |
17106 | return *this; |
17107 | } |
17108 | |
17109 | schedule::~schedule() { |
17110 | if (ptr) |
17111 | isl_schedule_free(sched: ptr); |
17112 | } |
17113 | |
17114 | __isl_give isl_schedule *schedule::copy() const & { |
17115 | return isl_schedule_copy(sched: ptr); |
17116 | } |
17117 | |
17118 | __isl_keep isl_schedule *schedule::get() const { |
17119 | return ptr; |
17120 | } |
17121 | |
17122 | __isl_give isl_schedule *schedule::release() { |
17123 | isl_schedule *tmp = ptr; |
17124 | ptr = nullptr; |
17125 | return tmp; |
17126 | } |
17127 | |
17128 | bool schedule::is_null() const { |
17129 | return ptr == nullptr; |
17130 | } |
17131 | |
17132 | isl::ctx schedule::ctx() const { |
17133 | return isl::ctx(isl_schedule_get_ctx(sched: ptr)); |
17134 | } |
17135 | |
17136 | isl::schedule schedule::align_params(isl::space space) const |
17137 | { |
17138 | auto res = isl_schedule_align_params(schedule: copy(), space: space.release()); |
17139 | return manage(ptr: res); |
17140 | } |
17141 | |
17142 | isl::union_set schedule::domain() const |
17143 | { |
17144 | auto res = isl_schedule_get_domain(schedule: get()); |
17145 | return manage(ptr: res); |
17146 | } |
17147 | |
17148 | isl::union_set schedule::get_domain() const |
17149 | { |
17150 | return domain(); |
17151 | } |
17152 | |
17153 | isl::schedule schedule::from_domain(isl::union_set domain) |
17154 | { |
17155 | auto res = isl_schedule_from_domain(domain: domain.release()); |
17156 | return manage(ptr: res); |
17157 | } |
17158 | |
17159 | isl::schedule schedule::gist_domain_params(isl::set context) const |
17160 | { |
17161 | auto res = isl_schedule_gist_domain_params(schedule: copy(), context: context.release()); |
17162 | return manage(ptr: res); |
17163 | } |
17164 | |
17165 | isl::schedule schedule::insert_partial_schedule(isl::multi_union_pw_aff partial) const |
17166 | { |
17167 | auto res = isl_schedule_insert_partial_schedule(schedule: copy(), partial: partial.release()); |
17168 | return manage(ptr: res); |
17169 | } |
17170 | |
17171 | isl::schedule schedule::intersect_domain(isl::union_set domain) const |
17172 | { |
17173 | auto res = isl_schedule_intersect_domain(schedule: copy(), domain: domain.release()); |
17174 | return manage(ptr: res); |
17175 | } |
17176 | |
17177 | isl::union_map schedule::map() const |
17178 | { |
17179 | auto res = isl_schedule_get_map(sched: get()); |
17180 | return manage(ptr: res); |
17181 | } |
17182 | |
17183 | isl::union_map schedule::get_map() const |
17184 | { |
17185 | return map(); |
17186 | } |
17187 | |
17188 | isl::schedule schedule::pullback(isl::union_pw_multi_aff upma) const |
17189 | { |
17190 | auto res = isl_schedule_pullback_union_pw_multi_aff(schedule: copy(), upma: upma.release()); |
17191 | return manage(ptr: res); |
17192 | } |
17193 | |
17194 | isl::schedule_node schedule::root() const |
17195 | { |
17196 | auto res = isl_schedule_get_root(schedule: get()); |
17197 | return manage(ptr: res); |
17198 | } |
17199 | |
17200 | isl::schedule_node schedule::get_root() const |
17201 | { |
17202 | return root(); |
17203 | } |
17204 | |
17205 | isl::schedule schedule::sequence(isl::schedule schedule2) const |
17206 | { |
17207 | auto res = isl_schedule_sequence(schedule1: copy(), schedule2: schedule2.release()); |
17208 | return manage(ptr: res); |
17209 | } |
17210 | |
17211 | inline std::ostream &operator<<(std::ostream &os, const schedule &obj) |
17212 | { |
17213 | char *str = isl_schedule_to_str(schedule: obj.get()); |
17214 | if (!str) { |
17215 | os.setstate(std::ios_base::badbit); |
17216 | return os; |
17217 | } |
17218 | os << str; |
17219 | free(ptr: str); |
17220 | return os; |
17221 | } |
17222 | |
17223 | // implementations for isl::schedule_constraints |
17224 | schedule_constraints manage(__isl_take isl_schedule_constraints *ptr) { |
17225 | return schedule_constraints(ptr); |
17226 | } |
17227 | schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr) { |
17228 | ptr = isl_schedule_constraints_copy(sc: ptr); |
17229 | return schedule_constraints(ptr); |
17230 | } |
17231 | |
17232 | schedule_constraints::schedule_constraints() |
17233 | : ptr(nullptr) {} |
17234 | |
17235 | schedule_constraints::schedule_constraints(const schedule_constraints &obj) |
17236 | : ptr(nullptr) |
17237 | { |
17238 | ptr = obj.copy(); |
17239 | } |
17240 | |
17241 | schedule_constraints::schedule_constraints(__isl_take isl_schedule_constraints *ptr) |
17242 | : ptr(ptr) {} |
17243 | |
17244 | schedule_constraints::schedule_constraints(isl::ctx ctx, const std::string &str) |
17245 | { |
17246 | auto res = isl_schedule_constraints_read_from_str(ctx: ctx.release(), str: str.c_str()); |
17247 | ptr = res; |
17248 | } |
17249 | |
17250 | schedule_constraints &schedule_constraints::operator=(schedule_constraints obj) { |
17251 | std::swap(a&: this->ptr, b&: obj.ptr); |
17252 | return *this; |
17253 | } |
17254 | |
17255 | schedule_constraints::~schedule_constraints() { |
17256 | if (ptr) |
17257 | isl_schedule_constraints_free(sc: ptr); |
17258 | } |
17259 | |
17260 | __isl_give isl_schedule_constraints *schedule_constraints::copy() const & { |
17261 | return isl_schedule_constraints_copy(sc: ptr); |
17262 | } |
17263 | |
17264 | __isl_keep isl_schedule_constraints *schedule_constraints::get() const { |
17265 | return ptr; |
17266 | } |
17267 | |
17268 | __isl_give isl_schedule_constraints *schedule_constraints::release() { |
17269 | isl_schedule_constraints *tmp = ptr; |
17270 | ptr = nullptr; |
17271 | return tmp; |
17272 | } |
17273 | |
17274 | bool schedule_constraints::is_null() const { |
17275 | return ptr == nullptr; |
17276 | } |
17277 | |
17278 | isl::ctx schedule_constraints::ctx() const { |
17279 | return isl::ctx(isl_schedule_constraints_get_ctx(sc: ptr)); |
17280 | } |
17281 | |
17282 | isl::union_map schedule_constraints::coincidence() const |
17283 | { |
17284 | auto res = isl_schedule_constraints_get_coincidence(sc: get()); |
17285 | return manage(ptr: res); |
17286 | } |
17287 | |
17288 | isl::union_map schedule_constraints::get_coincidence() const |
17289 | { |
17290 | return coincidence(); |
17291 | } |
17292 | |
17293 | isl::schedule schedule_constraints::compute_schedule() const |
17294 | { |
17295 | auto res = isl_schedule_constraints_compute_schedule(sc: copy()); |
17296 | return manage(ptr: res); |
17297 | } |
17298 | |
17299 | isl::union_map schedule_constraints::conditional_validity() const |
17300 | { |
17301 | auto res = isl_schedule_constraints_get_conditional_validity(sc: get()); |
17302 | return manage(ptr: res); |
17303 | } |
17304 | |
17305 | isl::union_map schedule_constraints::get_conditional_validity() const |
17306 | { |
17307 | return conditional_validity(); |
17308 | } |
17309 | |
17310 | isl::union_map schedule_constraints::conditional_validity_condition() const |
17311 | { |
17312 | auto res = isl_schedule_constraints_get_conditional_validity_condition(sc: get()); |
17313 | return manage(ptr: res); |
17314 | } |
17315 | |
17316 | isl::union_map schedule_constraints::get_conditional_validity_condition() const |
17317 | { |
17318 | return conditional_validity_condition(); |
17319 | } |
17320 | |
17321 | isl::set schedule_constraints::context() const |
17322 | { |
17323 | auto res = isl_schedule_constraints_get_context(sc: get()); |
17324 | return manage(ptr: res); |
17325 | } |
17326 | |
17327 | isl::set schedule_constraints::get_context() const |
17328 | { |
17329 | return context(); |
17330 | } |
17331 | |
17332 | isl::union_set schedule_constraints::domain() const |
17333 | { |
17334 | auto res = isl_schedule_constraints_get_domain(sc: get()); |
17335 | return manage(ptr: res); |
17336 | } |
17337 | |
17338 | isl::union_set schedule_constraints::get_domain() const |
17339 | { |
17340 | return domain(); |
17341 | } |
17342 | |
17343 | isl::schedule_constraints schedule_constraints::on_domain(isl::union_set domain) |
17344 | { |
17345 | auto res = isl_schedule_constraints_on_domain(domain: domain.release()); |
17346 | return manage(ptr: res); |
17347 | } |
17348 | |
17349 | isl::union_map schedule_constraints::proximity() const |
17350 | { |
17351 | auto res = isl_schedule_constraints_get_proximity(sc: get()); |
17352 | return manage(ptr: res); |
17353 | } |
17354 | |
17355 | isl::union_map schedule_constraints::get_proximity() const |
17356 | { |
17357 | return proximity(); |
17358 | } |
17359 | |
17360 | isl::schedule_constraints schedule_constraints::set_coincidence(isl::union_map coincidence) const |
17361 | { |
17362 | auto res = isl_schedule_constraints_set_coincidence(sc: copy(), coincidence: coincidence.release()); |
17363 | return manage(ptr: res); |
17364 | } |
17365 | |
17366 | isl::schedule_constraints schedule_constraints::set_conditional_validity(isl::union_map condition, isl::union_map validity) const |
17367 | { |
17368 | auto res = isl_schedule_constraints_set_conditional_validity(sc: copy(), condition: condition.release(), validity: validity.release()); |
17369 | return manage(ptr: res); |
17370 | } |
17371 | |
17372 | isl::schedule_constraints schedule_constraints::set_context(isl::set context) const |
17373 | { |
17374 | auto res = isl_schedule_constraints_set_context(sc: copy(), context: context.release()); |
17375 | return manage(ptr: res); |
17376 | } |
17377 | |
17378 | isl::schedule_constraints schedule_constraints::set_proximity(isl::union_map proximity) const |
17379 | { |
17380 | auto res = isl_schedule_constraints_set_proximity(sc: copy(), proximity: proximity.release()); |
17381 | return manage(ptr: res); |
17382 | } |
17383 | |
17384 | isl::schedule_constraints schedule_constraints::set_validity(isl::union_map validity) const |
17385 | { |
17386 | auto res = isl_schedule_constraints_set_validity(sc: copy(), validity: validity.release()); |
17387 | return manage(ptr: res); |
17388 | } |
17389 | |
17390 | isl::union_map schedule_constraints::validity() const |
17391 | { |
17392 | auto res = isl_schedule_constraints_get_validity(sc: get()); |
17393 | return manage(ptr: res); |
17394 | } |
17395 | |
17396 | isl::union_map schedule_constraints::get_validity() const |
17397 | { |
17398 | return validity(); |
17399 | } |
17400 | |
17401 | inline std::ostream &operator<<(std::ostream &os, const schedule_constraints &obj) |
17402 | { |
17403 | char *str = isl_schedule_constraints_to_str(sc: obj.get()); |
17404 | if (!str) { |
17405 | os.setstate(std::ios_base::badbit); |
17406 | return os; |
17407 | } |
17408 | os << str; |
17409 | free(ptr: str); |
17410 | return os; |
17411 | } |
17412 | |
17413 | // implementations for isl::schedule_node |
17414 | schedule_node manage(__isl_take isl_schedule_node *ptr) { |
17415 | return schedule_node(ptr); |
17416 | } |
17417 | schedule_node manage_copy(__isl_keep isl_schedule_node *ptr) { |
17418 | ptr = isl_schedule_node_copy(node: ptr); |
17419 | return schedule_node(ptr); |
17420 | } |
17421 | |
17422 | schedule_node::schedule_node() |
17423 | : ptr(nullptr) {} |
17424 | |
17425 | schedule_node::schedule_node(const schedule_node &obj) |
17426 | : ptr(nullptr) |
17427 | { |
17428 | ptr = obj.copy(); |
17429 | } |
17430 | |
17431 | schedule_node::schedule_node(__isl_take isl_schedule_node *ptr) |
17432 | : ptr(ptr) {} |
17433 | |
17434 | schedule_node &schedule_node::operator=(schedule_node obj) { |
17435 | std::swap(a&: this->ptr, b&: obj.ptr); |
17436 | return *this; |
17437 | } |
17438 | |
17439 | schedule_node::~schedule_node() { |
17440 | if (ptr) |
17441 | isl_schedule_node_free(node: ptr); |
17442 | } |
17443 | |
17444 | __isl_give isl_schedule_node *schedule_node::copy() const & { |
17445 | return isl_schedule_node_copy(node: ptr); |
17446 | } |
17447 | |
17448 | __isl_keep isl_schedule_node *schedule_node::get() const { |
17449 | return ptr; |
17450 | } |
17451 | |
17452 | __isl_give isl_schedule_node *schedule_node::release() { |
17453 | isl_schedule_node *tmp = ptr; |
17454 | ptr = nullptr; |
17455 | return tmp; |
17456 | } |
17457 | |
17458 | bool schedule_node::is_null() const { |
17459 | return ptr == nullptr; |
17460 | } |
17461 | |
17462 | template <typename T, typename> |
17463 | boolean schedule_node::isa_type(T subtype) const |
17464 | { |
17465 | if (is_null()) |
17466 | return boolean(); |
17467 | return isl_schedule_node_get_type(node: get()) == subtype; |
17468 | } |
17469 | template <class T> |
17470 | boolean schedule_node::isa() const |
17471 | { |
17472 | return isa_type<decltype(T::type)>(T::type); |
17473 | } |
17474 | template <class T> |
17475 | T schedule_node::as() const |
17476 | { |
17477 | if (isa<T>().is_false()) |
17478 | isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype" , return T()); |
17479 | return T(copy()); |
17480 | } |
17481 | |
17482 | isl::ctx schedule_node::ctx() const { |
17483 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
17484 | } |
17485 | |
17486 | isl::schedule_node schedule_node::ancestor(int generation) const |
17487 | { |
17488 | auto res = isl_schedule_node_ancestor(node: copy(), generation); |
17489 | return manage(ptr: res); |
17490 | } |
17491 | |
17492 | class size schedule_node::ancestor_child_position(const isl::schedule_node &ancestor) const |
17493 | { |
17494 | auto res = isl_schedule_node_get_ancestor_child_position(node: get(), ancestor: ancestor.get()); |
17495 | return manage(val: res); |
17496 | } |
17497 | |
17498 | class size schedule_node::get_ancestor_child_position(const isl::schedule_node &ancestor) const |
17499 | { |
17500 | return ancestor_child_position(ancestor); |
17501 | } |
17502 | |
17503 | isl::schedule_node schedule_node::child(int pos) const |
17504 | { |
17505 | auto res = isl_schedule_node_child(node: copy(), pos); |
17506 | return manage(ptr: res); |
17507 | } |
17508 | |
17509 | class size schedule_node::child_position() const |
17510 | { |
17511 | auto res = isl_schedule_node_get_child_position(node: get()); |
17512 | return manage(val: res); |
17513 | } |
17514 | |
17515 | class size schedule_node::get_child_position() const |
17516 | { |
17517 | return child_position(); |
17518 | } |
17519 | |
17520 | isl::union_set schedule_node::domain() const |
17521 | { |
17522 | auto res = isl_schedule_node_get_domain(node: get()); |
17523 | return manage(ptr: res); |
17524 | } |
17525 | |
17526 | isl::union_set schedule_node::get_domain() const |
17527 | { |
17528 | return domain(); |
17529 | } |
17530 | |
17531 | boolean schedule_node::every_descendant(const std::function<boolean(isl::schedule_node)> &test) const |
17532 | { |
17533 | struct test_data { |
17534 | std::function<boolean(isl::schedule_node)> func; |
17535 | } test_data = { .func: test }; |
17536 | auto test_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_bool { |
17537 | auto *data = static_cast<struct test_data *>(arg_1); |
17538 | auto ret = (data->func)(manage_copy(ptr: arg_0)); |
17539 | return ret.release(); |
17540 | }; |
17541 | auto res = isl_schedule_node_every_descendant(node: get(), test: test_lambda, user: &test_data); |
17542 | return manage(val: res); |
17543 | } |
17544 | |
17545 | isl::schedule_node schedule_node::first_child() const |
17546 | { |
17547 | auto res = isl_schedule_node_first_child(node: copy()); |
17548 | return manage(ptr: res); |
17549 | } |
17550 | |
17551 | stat schedule_node::foreach_ancestor_top_down(const std::function<stat(isl::schedule_node)> &fn) const |
17552 | { |
17553 | struct fn_data { |
17554 | std::function<stat(isl::schedule_node)> func; |
17555 | } fn_data = { .func: fn }; |
17556 | auto fn_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_stat { |
17557 | auto *data = static_cast<struct fn_data *>(arg_1); |
17558 | auto ret = (data->func)(manage_copy(ptr: arg_0)); |
17559 | return ret.release(); |
17560 | }; |
17561 | auto res = isl_schedule_node_foreach_ancestor_top_down(node: get(), fn: fn_lambda, user: &fn_data); |
17562 | return manage(val: res); |
17563 | } |
17564 | |
17565 | stat schedule_node::foreach_descendant_top_down(const std::function<boolean(isl::schedule_node)> &fn) const |
17566 | { |
17567 | struct fn_data { |
17568 | std::function<boolean(isl::schedule_node)> func; |
17569 | } fn_data = { .func: fn }; |
17570 | auto fn_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_bool { |
17571 | auto *data = static_cast<struct fn_data *>(arg_1); |
17572 | auto ret = (data->func)(manage_copy(ptr: arg_0)); |
17573 | return ret.release(); |
17574 | }; |
17575 | auto res = isl_schedule_node_foreach_descendant_top_down(node: get(), fn: fn_lambda, user: &fn_data); |
17576 | return manage(val: res); |
17577 | } |
17578 | |
17579 | isl::schedule_node schedule_node::from_domain(isl::union_set domain) |
17580 | { |
17581 | auto res = isl_schedule_node_from_domain(domain: domain.release()); |
17582 | return manage(ptr: res); |
17583 | } |
17584 | |
17585 | isl::schedule_node schedule_node::from_extension(isl::union_map extension) |
17586 | { |
17587 | auto res = isl_schedule_node_from_extension(extension: extension.release()); |
17588 | return manage(ptr: res); |
17589 | } |
17590 | |
17591 | isl::schedule_node schedule_node::graft_after(isl::schedule_node graft) const |
17592 | { |
17593 | auto res = isl_schedule_node_graft_after(node: copy(), graft: graft.release()); |
17594 | return manage(ptr: res); |
17595 | } |
17596 | |
17597 | isl::schedule_node schedule_node::graft_before(isl::schedule_node graft) const |
17598 | { |
17599 | auto res = isl_schedule_node_graft_before(node: copy(), graft: graft.release()); |
17600 | return manage(ptr: res); |
17601 | } |
17602 | |
17603 | boolean schedule_node::has_children() const |
17604 | { |
17605 | auto res = isl_schedule_node_has_children(node: get()); |
17606 | return manage(val: res); |
17607 | } |
17608 | |
17609 | boolean schedule_node::has_next_sibling() const |
17610 | { |
17611 | auto res = isl_schedule_node_has_next_sibling(node: get()); |
17612 | return manage(val: res); |
17613 | } |
17614 | |
17615 | boolean schedule_node::has_parent() const |
17616 | { |
17617 | auto res = isl_schedule_node_has_parent(node: get()); |
17618 | return manage(val: res); |
17619 | } |
17620 | |
17621 | boolean schedule_node::has_previous_sibling() const |
17622 | { |
17623 | auto res = isl_schedule_node_has_previous_sibling(node: get()); |
17624 | return manage(val: res); |
17625 | } |
17626 | |
17627 | isl::schedule_node schedule_node::insert_context(isl::set context) const |
17628 | { |
17629 | auto res = isl_schedule_node_insert_context(node: copy(), context: context.release()); |
17630 | return manage(ptr: res); |
17631 | } |
17632 | |
17633 | isl::schedule_node schedule_node::insert_filter(isl::union_set filter) const |
17634 | { |
17635 | auto res = isl_schedule_node_insert_filter(node: copy(), filter: filter.release()); |
17636 | return manage(ptr: res); |
17637 | } |
17638 | |
17639 | isl::schedule_node schedule_node::insert_guard(isl::set context) const |
17640 | { |
17641 | auto res = isl_schedule_node_insert_guard(node: copy(), context: context.release()); |
17642 | return manage(ptr: res); |
17643 | } |
17644 | |
17645 | isl::schedule_node schedule_node::insert_mark(isl::id mark) const |
17646 | { |
17647 | auto res = isl_schedule_node_insert_mark(node: copy(), mark: mark.release()); |
17648 | return manage(ptr: res); |
17649 | } |
17650 | |
17651 | isl::schedule_node schedule_node::insert_mark(const std::string &mark) const |
17652 | { |
17653 | return this->insert_mark(mark: isl::id(ctx(), mark)); |
17654 | } |
17655 | |
17656 | isl::schedule_node schedule_node::insert_partial_schedule(isl::multi_union_pw_aff schedule) const |
17657 | { |
17658 | auto res = isl_schedule_node_insert_partial_schedule(node: copy(), schedule: schedule.release()); |
17659 | return manage(ptr: res); |
17660 | } |
17661 | |
17662 | isl::schedule_node schedule_node::insert_sequence(isl::union_set_list filters) const |
17663 | { |
17664 | auto res = isl_schedule_node_insert_sequence(node: copy(), filters: filters.release()); |
17665 | return manage(ptr: res); |
17666 | } |
17667 | |
17668 | isl::schedule_node schedule_node::insert_set(isl::union_set_list filters) const |
17669 | { |
17670 | auto res = isl_schedule_node_insert_set(node: copy(), filters: filters.release()); |
17671 | return manage(ptr: res); |
17672 | } |
17673 | |
17674 | boolean schedule_node::is_equal(const isl::schedule_node &node2) const |
17675 | { |
17676 | auto res = isl_schedule_node_is_equal(node1: get(), node2: node2.get()); |
17677 | return manage(val: res); |
17678 | } |
17679 | |
17680 | boolean schedule_node::is_subtree_anchored() const |
17681 | { |
17682 | auto res = isl_schedule_node_is_subtree_anchored(node: get()); |
17683 | return manage(val: res); |
17684 | } |
17685 | |
17686 | isl::schedule_node schedule_node::map_descendant_bottom_up(const std::function<isl::schedule_node(isl::schedule_node)> &fn) const |
17687 | { |
17688 | struct fn_data { |
17689 | std::function<isl::schedule_node(isl::schedule_node)> func; |
17690 | } fn_data = { .func: fn }; |
17691 | auto fn_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_schedule_node * { |
17692 | auto *data = static_cast<struct fn_data *>(arg_1); |
17693 | auto ret = (data->func)(manage(ptr: arg_0)); |
17694 | return ret.release(); |
17695 | }; |
17696 | auto res = isl_schedule_node_map_descendant_bottom_up(node: copy(), fn: fn_lambda, user: &fn_data); |
17697 | return manage(ptr: res); |
17698 | } |
17699 | |
17700 | class size schedule_node::n_children() const |
17701 | { |
17702 | auto res = isl_schedule_node_n_children(node: get()); |
17703 | return manage(val: res); |
17704 | } |
17705 | |
17706 | isl::schedule_node schedule_node::next_sibling() const |
17707 | { |
17708 | auto res = isl_schedule_node_next_sibling(node: copy()); |
17709 | return manage(ptr: res); |
17710 | } |
17711 | |
17712 | isl::schedule_node schedule_node::order_after(isl::union_set filter) const |
17713 | { |
17714 | auto res = isl_schedule_node_order_after(node: copy(), filter: filter.release()); |
17715 | return manage(ptr: res); |
17716 | } |
17717 | |
17718 | isl::schedule_node schedule_node::order_before(isl::union_set filter) const |
17719 | { |
17720 | auto res = isl_schedule_node_order_before(node: copy(), filter: filter.release()); |
17721 | return manage(ptr: res); |
17722 | } |
17723 | |
17724 | isl::schedule_node schedule_node::parent() const |
17725 | { |
17726 | auto res = isl_schedule_node_parent(node: copy()); |
17727 | return manage(ptr: res); |
17728 | } |
17729 | |
17730 | isl::multi_union_pw_aff schedule_node::prefix_schedule_multi_union_pw_aff() const |
17731 | { |
17732 | auto res = isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(node: get()); |
17733 | return manage(ptr: res); |
17734 | } |
17735 | |
17736 | isl::multi_union_pw_aff schedule_node::get_prefix_schedule_multi_union_pw_aff() const |
17737 | { |
17738 | return prefix_schedule_multi_union_pw_aff(); |
17739 | } |
17740 | |
17741 | isl::union_map schedule_node::prefix_schedule_relation() const |
17742 | { |
17743 | auto res = isl_schedule_node_get_prefix_schedule_relation(node: get()); |
17744 | return manage(ptr: res); |
17745 | } |
17746 | |
17747 | isl::union_map schedule_node::get_prefix_schedule_relation() const |
17748 | { |
17749 | return prefix_schedule_relation(); |
17750 | } |
17751 | |
17752 | isl::union_map schedule_node::prefix_schedule_union_map() const |
17753 | { |
17754 | auto res = isl_schedule_node_get_prefix_schedule_union_map(node: get()); |
17755 | return manage(ptr: res); |
17756 | } |
17757 | |
17758 | isl::union_map schedule_node::get_prefix_schedule_union_map() const |
17759 | { |
17760 | return prefix_schedule_union_map(); |
17761 | } |
17762 | |
17763 | isl::union_pw_multi_aff schedule_node::prefix_schedule_union_pw_multi_aff() const |
17764 | { |
17765 | auto res = isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(node: get()); |
17766 | return manage(ptr: res); |
17767 | } |
17768 | |
17769 | isl::union_pw_multi_aff schedule_node::get_prefix_schedule_union_pw_multi_aff() const |
17770 | { |
17771 | return prefix_schedule_union_pw_multi_aff(); |
17772 | } |
17773 | |
17774 | isl::schedule_node schedule_node::previous_sibling() const |
17775 | { |
17776 | auto res = isl_schedule_node_previous_sibling(node: copy()); |
17777 | return manage(ptr: res); |
17778 | } |
17779 | |
17780 | isl::schedule_node schedule_node::root() const |
17781 | { |
17782 | auto res = isl_schedule_node_root(node: copy()); |
17783 | return manage(ptr: res); |
17784 | } |
17785 | |
17786 | isl::schedule schedule_node::schedule() const |
17787 | { |
17788 | auto res = isl_schedule_node_get_schedule(node: get()); |
17789 | return manage(ptr: res); |
17790 | } |
17791 | |
17792 | isl::schedule schedule_node::get_schedule() const |
17793 | { |
17794 | return schedule(); |
17795 | } |
17796 | |
17797 | class size schedule_node::schedule_depth() const |
17798 | { |
17799 | auto res = isl_schedule_node_get_schedule_depth(node: get()); |
17800 | return manage(val: res); |
17801 | } |
17802 | |
17803 | class size schedule_node::get_schedule_depth() const |
17804 | { |
17805 | return schedule_depth(); |
17806 | } |
17807 | |
17808 | isl::schedule_node schedule_node::shared_ancestor(const isl::schedule_node &node2) const |
17809 | { |
17810 | auto res = isl_schedule_node_get_shared_ancestor(node1: get(), node2: node2.get()); |
17811 | return manage(ptr: res); |
17812 | } |
17813 | |
17814 | isl::schedule_node schedule_node::get_shared_ancestor(const isl::schedule_node &node2) const |
17815 | { |
17816 | return shared_ancestor(node2); |
17817 | } |
17818 | |
17819 | class size schedule_node::tree_depth() const |
17820 | { |
17821 | auto res = isl_schedule_node_get_tree_depth(node: get()); |
17822 | return manage(val: res); |
17823 | } |
17824 | |
17825 | class size schedule_node::get_tree_depth() const |
17826 | { |
17827 | return tree_depth(); |
17828 | } |
17829 | |
17830 | isl::union_set schedule_node::universe_domain() const |
17831 | { |
17832 | auto res = isl_schedule_node_get_universe_domain(node: get()); |
17833 | return manage(ptr: res); |
17834 | } |
17835 | |
17836 | isl::union_set schedule_node::get_universe_domain() const |
17837 | { |
17838 | return universe_domain(); |
17839 | } |
17840 | |
17841 | inline std::ostream &operator<<(std::ostream &os, const schedule_node &obj) |
17842 | { |
17843 | char *str = isl_schedule_node_to_str(node: obj.get()); |
17844 | if (!str) { |
17845 | os.setstate(std::ios_base::badbit); |
17846 | return os; |
17847 | } |
17848 | os << str; |
17849 | free(ptr: str); |
17850 | return os; |
17851 | } |
17852 | |
17853 | // implementations for isl::schedule_node_band |
17854 | schedule_node_band::schedule_node_band() |
17855 | : schedule_node() {} |
17856 | |
17857 | schedule_node_band::schedule_node_band(const schedule_node_band &obj) |
17858 | : schedule_node(obj) |
17859 | { |
17860 | } |
17861 | |
17862 | schedule_node_band::schedule_node_band(__isl_take isl_schedule_node *ptr) |
17863 | : schedule_node(ptr) {} |
17864 | |
17865 | schedule_node_band &schedule_node_band::operator=(schedule_node_band obj) { |
17866 | std::swap(a&: this->ptr, b&: obj.ptr); |
17867 | return *this; |
17868 | } |
17869 | |
17870 | isl::ctx schedule_node_band::ctx() const { |
17871 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
17872 | } |
17873 | |
17874 | isl::union_set schedule_node_band::ast_build_options() const |
17875 | { |
17876 | auto res = isl_schedule_node_band_get_ast_build_options(node: get()); |
17877 | return manage(ptr: res); |
17878 | } |
17879 | |
17880 | isl::union_set schedule_node_band::get_ast_build_options() const |
17881 | { |
17882 | return ast_build_options(); |
17883 | } |
17884 | |
17885 | isl::set schedule_node_band::ast_isolate_option() const |
17886 | { |
17887 | auto res = isl_schedule_node_band_get_ast_isolate_option(node: get()); |
17888 | return manage(ptr: res); |
17889 | } |
17890 | |
17891 | isl::set schedule_node_band::get_ast_isolate_option() const |
17892 | { |
17893 | return ast_isolate_option(); |
17894 | } |
17895 | |
17896 | boolean schedule_node_band::member_get_coincident(int pos) const |
17897 | { |
17898 | auto res = isl_schedule_node_band_member_get_coincident(node: get(), pos); |
17899 | return manage(val: res); |
17900 | } |
17901 | |
17902 | schedule_node_band schedule_node_band::member_set_coincident(int pos, int coincident) const |
17903 | { |
17904 | auto res = isl_schedule_node_band_member_set_coincident(node: copy(), pos, coincident); |
17905 | return manage(ptr: res).as<schedule_node_band>(); |
17906 | } |
17907 | |
17908 | schedule_node_band schedule_node_band::mod(isl::multi_val mv) const |
17909 | { |
17910 | auto res = isl_schedule_node_band_mod(node: copy(), mv: mv.release()); |
17911 | return manage(ptr: res).as<schedule_node_band>(); |
17912 | } |
17913 | |
17914 | class size schedule_node_band::n_member() const |
17915 | { |
17916 | auto res = isl_schedule_node_band_n_member(node: get()); |
17917 | return manage(val: res); |
17918 | } |
17919 | |
17920 | isl::multi_union_pw_aff schedule_node_band::partial_schedule() const |
17921 | { |
17922 | auto res = isl_schedule_node_band_get_partial_schedule(node: get()); |
17923 | return manage(ptr: res); |
17924 | } |
17925 | |
17926 | isl::multi_union_pw_aff schedule_node_band::get_partial_schedule() const |
17927 | { |
17928 | return partial_schedule(); |
17929 | } |
17930 | |
17931 | boolean schedule_node_band::permutable() const |
17932 | { |
17933 | auto res = isl_schedule_node_band_get_permutable(node: get()); |
17934 | return manage(val: res); |
17935 | } |
17936 | |
17937 | boolean schedule_node_band::get_permutable() const |
17938 | { |
17939 | return permutable(); |
17940 | } |
17941 | |
17942 | schedule_node_band schedule_node_band::scale(isl::multi_val mv) const |
17943 | { |
17944 | auto res = isl_schedule_node_band_scale(node: copy(), mv: mv.release()); |
17945 | return manage(ptr: res).as<schedule_node_band>(); |
17946 | } |
17947 | |
17948 | schedule_node_band schedule_node_band::scale_down(isl::multi_val mv) const |
17949 | { |
17950 | auto res = isl_schedule_node_band_scale_down(node: copy(), mv: mv.release()); |
17951 | return manage(ptr: res).as<schedule_node_band>(); |
17952 | } |
17953 | |
17954 | schedule_node_band schedule_node_band::set_ast_build_options(isl::union_set options) const |
17955 | { |
17956 | auto res = isl_schedule_node_band_set_ast_build_options(node: copy(), options: options.release()); |
17957 | return manage(ptr: res).as<schedule_node_band>(); |
17958 | } |
17959 | |
17960 | schedule_node_band schedule_node_band::set_permutable(int permutable) const |
17961 | { |
17962 | auto res = isl_schedule_node_band_set_permutable(node: copy(), permutable); |
17963 | return manage(ptr: res).as<schedule_node_band>(); |
17964 | } |
17965 | |
17966 | schedule_node_band schedule_node_band::shift(isl::multi_union_pw_aff shift) const |
17967 | { |
17968 | auto res = isl_schedule_node_band_shift(node: copy(), shift: shift.release()); |
17969 | return manage(ptr: res).as<schedule_node_band>(); |
17970 | } |
17971 | |
17972 | schedule_node_band schedule_node_band::split(int pos) const |
17973 | { |
17974 | auto res = isl_schedule_node_band_split(node: copy(), pos); |
17975 | return manage(ptr: res).as<schedule_node_band>(); |
17976 | } |
17977 | |
17978 | schedule_node_band schedule_node_band::tile(isl::multi_val sizes) const |
17979 | { |
17980 | auto res = isl_schedule_node_band_tile(node: copy(), sizes: sizes.release()); |
17981 | return manage(ptr: res).as<schedule_node_band>(); |
17982 | } |
17983 | |
17984 | schedule_node_band schedule_node_band::member_set_ast_loop_default(int pos) const |
17985 | { |
17986 | auto res = isl_schedule_node_band_member_set_ast_loop_type(node: copy(), pos, type: isl_ast_loop_default); |
17987 | return manage(ptr: res).as<schedule_node_band>(); |
17988 | } |
17989 | |
17990 | schedule_node_band schedule_node_band::member_set_ast_loop_atomic(int pos) const |
17991 | { |
17992 | auto res = isl_schedule_node_band_member_set_ast_loop_type(node: copy(), pos, type: isl_ast_loop_atomic); |
17993 | return manage(ptr: res).as<schedule_node_band>(); |
17994 | } |
17995 | |
17996 | schedule_node_band schedule_node_band::member_set_ast_loop_unroll(int pos) const |
17997 | { |
17998 | auto res = isl_schedule_node_band_member_set_ast_loop_type(node: copy(), pos, type: isl_ast_loop_unroll); |
17999 | return manage(ptr: res).as<schedule_node_band>(); |
18000 | } |
18001 | |
18002 | schedule_node_band schedule_node_band::member_set_ast_loop_separate(int pos) const |
18003 | { |
18004 | auto res = isl_schedule_node_band_member_set_ast_loop_type(node: copy(), pos, type: isl_ast_loop_separate); |
18005 | return manage(ptr: res).as<schedule_node_band>(); |
18006 | } |
18007 | |
18008 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_band &obj) |
18009 | { |
18010 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18011 | if (!str) { |
18012 | os.setstate(std::ios_base::badbit); |
18013 | return os; |
18014 | } |
18015 | os << str; |
18016 | free(ptr: str); |
18017 | return os; |
18018 | } |
18019 | |
18020 | // implementations for isl::schedule_node_context |
18021 | schedule_node_context::schedule_node_context() |
18022 | : schedule_node() {} |
18023 | |
18024 | schedule_node_context::schedule_node_context(const schedule_node_context &obj) |
18025 | : schedule_node(obj) |
18026 | { |
18027 | } |
18028 | |
18029 | schedule_node_context::schedule_node_context(__isl_take isl_schedule_node *ptr) |
18030 | : schedule_node(ptr) {} |
18031 | |
18032 | schedule_node_context &schedule_node_context::operator=(schedule_node_context obj) { |
18033 | std::swap(a&: this->ptr, b&: obj.ptr); |
18034 | return *this; |
18035 | } |
18036 | |
18037 | isl::ctx schedule_node_context::ctx() const { |
18038 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18039 | } |
18040 | |
18041 | isl::set schedule_node_context::context() const |
18042 | { |
18043 | auto res = isl_schedule_node_context_get_context(node: get()); |
18044 | return manage(ptr: res); |
18045 | } |
18046 | |
18047 | isl::set schedule_node_context::get_context() const |
18048 | { |
18049 | return context(); |
18050 | } |
18051 | |
18052 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_context &obj) |
18053 | { |
18054 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18055 | if (!str) { |
18056 | os.setstate(std::ios_base::badbit); |
18057 | return os; |
18058 | } |
18059 | os << str; |
18060 | free(ptr: str); |
18061 | return os; |
18062 | } |
18063 | |
18064 | // implementations for isl::schedule_node_domain |
18065 | schedule_node_domain::schedule_node_domain() |
18066 | : schedule_node() {} |
18067 | |
18068 | schedule_node_domain::schedule_node_domain(const schedule_node_domain &obj) |
18069 | : schedule_node(obj) |
18070 | { |
18071 | } |
18072 | |
18073 | schedule_node_domain::schedule_node_domain(__isl_take isl_schedule_node *ptr) |
18074 | : schedule_node(ptr) {} |
18075 | |
18076 | schedule_node_domain &schedule_node_domain::operator=(schedule_node_domain obj) { |
18077 | std::swap(a&: this->ptr, b&: obj.ptr); |
18078 | return *this; |
18079 | } |
18080 | |
18081 | isl::ctx schedule_node_domain::ctx() const { |
18082 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18083 | } |
18084 | |
18085 | isl::union_set schedule_node_domain::domain() const |
18086 | { |
18087 | auto res = isl_schedule_node_domain_get_domain(node: get()); |
18088 | return manage(ptr: res); |
18089 | } |
18090 | |
18091 | isl::union_set schedule_node_domain::get_domain() const |
18092 | { |
18093 | return domain(); |
18094 | } |
18095 | |
18096 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_domain &obj) |
18097 | { |
18098 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18099 | if (!str) { |
18100 | os.setstate(std::ios_base::badbit); |
18101 | return os; |
18102 | } |
18103 | os << str; |
18104 | free(ptr: str); |
18105 | return os; |
18106 | } |
18107 | |
18108 | // implementations for isl::schedule_node_expansion |
18109 | schedule_node_expansion::schedule_node_expansion() |
18110 | : schedule_node() {} |
18111 | |
18112 | schedule_node_expansion::schedule_node_expansion(const schedule_node_expansion &obj) |
18113 | : schedule_node(obj) |
18114 | { |
18115 | } |
18116 | |
18117 | schedule_node_expansion::schedule_node_expansion(__isl_take isl_schedule_node *ptr) |
18118 | : schedule_node(ptr) {} |
18119 | |
18120 | schedule_node_expansion &schedule_node_expansion::operator=(schedule_node_expansion obj) { |
18121 | std::swap(a&: this->ptr, b&: obj.ptr); |
18122 | return *this; |
18123 | } |
18124 | |
18125 | isl::ctx schedule_node_expansion::ctx() const { |
18126 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18127 | } |
18128 | |
18129 | isl::union_pw_multi_aff schedule_node_expansion::contraction() const |
18130 | { |
18131 | auto res = isl_schedule_node_expansion_get_contraction(node: get()); |
18132 | return manage(ptr: res); |
18133 | } |
18134 | |
18135 | isl::union_pw_multi_aff schedule_node_expansion::get_contraction() const |
18136 | { |
18137 | return contraction(); |
18138 | } |
18139 | |
18140 | isl::union_map schedule_node_expansion::expansion() const |
18141 | { |
18142 | auto res = isl_schedule_node_expansion_get_expansion(node: get()); |
18143 | return manage(ptr: res); |
18144 | } |
18145 | |
18146 | isl::union_map schedule_node_expansion::get_expansion() const |
18147 | { |
18148 | return expansion(); |
18149 | } |
18150 | |
18151 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_expansion &obj) |
18152 | { |
18153 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18154 | if (!str) { |
18155 | os.setstate(std::ios_base::badbit); |
18156 | return os; |
18157 | } |
18158 | os << str; |
18159 | free(ptr: str); |
18160 | return os; |
18161 | } |
18162 | |
18163 | // implementations for isl::schedule_node_extension |
18164 | schedule_node_extension::schedule_node_extension() |
18165 | : schedule_node() {} |
18166 | |
18167 | schedule_node_extension::schedule_node_extension(const schedule_node_extension &obj) |
18168 | : schedule_node(obj) |
18169 | { |
18170 | } |
18171 | |
18172 | schedule_node_extension::schedule_node_extension(__isl_take isl_schedule_node *ptr) |
18173 | : schedule_node(ptr) {} |
18174 | |
18175 | schedule_node_extension &schedule_node_extension::operator=(schedule_node_extension obj) { |
18176 | std::swap(a&: this->ptr, b&: obj.ptr); |
18177 | return *this; |
18178 | } |
18179 | |
18180 | isl::ctx schedule_node_extension::ctx() const { |
18181 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18182 | } |
18183 | |
18184 | isl::union_map schedule_node_extension::extension() const |
18185 | { |
18186 | auto res = isl_schedule_node_extension_get_extension(node: get()); |
18187 | return manage(ptr: res); |
18188 | } |
18189 | |
18190 | isl::union_map schedule_node_extension::get_extension() const |
18191 | { |
18192 | return extension(); |
18193 | } |
18194 | |
18195 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_extension &obj) |
18196 | { |
18197 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18198 | if (!str) { |
18199 | os.setstate(std::ios_base::badbit); |
18200 | return os; |
18201 | } |
18202 | os << str; |
18203 | free(ptr: str); |
18204 | return os; |
18205 | } |
18206 | |
18207 | // implementations for isl::schedule_node_filter |
18208 | schedule_node_filter::schedule_node_filter() |
18209 | : schedule_node() {} |
18210 | |
18211 | schedule_node_filter::schedule_node_filter(const schedule_node_filter &obj) |
18212 | : schedule_node(obj) |
18213 | { |
18214 | } |
18215 | |
18216 | schedule_node_filter::schedule_node_filter(__isl_take isl_schedule_node *ptr) |
18217 | : schedule_node(ptr) {} |
18218 | |
18219 | schedule_node_filter &schedule_node_filter::operator=(schedule_node_filter obj) { |
18220 | std::swap(a&: this->ptr, b&: obj.ptr); |
18221 | return *this; |
18222 | } |
18223 | |
18224 | isl::ctx schedule_node_filter::ctx() const { |
18225 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18226 | } |
18227 | |
18228 | isl::union_set schedule_node_filter::filter() const |
18229 | { |
18230 | auto res = isl_schedule_node_filter_get_filter(node: get()); |
18231 | return manage(ptr: res); |
18232 | } |
18233 | |
18234 | isl::union_set schedule_node_filter::get_filter() const |
18235 | { |
18236 | return filter(); |
18237 | } |
18238 | |
18239 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_filter &obj) |
18240 | { |
18241 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18242 | if (!str) { |
18243 | os.setstate(std::ios_base::badbit); |
18244 | return os; |
18245 | } |
18246 | os << str; |
18247 | free(ptr: str); |
18248 | return os; |
18249 | } |
18250 | |
18251 | // implementations for isl::schedule_node_guard |
18252 | schedule_node_guard::schedule_node_guard() |
18253 | : schedule_node() {} |
18254 | |
18255 | schedule_node_guard::schedule_node_guard(const schedule_node_guard &obj) |
18256 | : schedule_node(obj) |
18257 | { |
18258 | } |
18259 | |
18260 | schedule_node_guard::schedule_node_guard(__isl_take isl_schedule_node *ptr) |
18261 | : schedule_node(ptr) {} |
18262 | |
18263 | schedule_node_guard &schedule_node_guard::operator=(schedule_node_guard obj) { |
18264 | std::swap(a&: this->ptr, b&: obj.ptr); |
18265 | return *this; |
18266 | } |
18267 | |
18268 | isl::ctx schedule_node_guard::ctx() const { |
18269 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18270 | } |
18271 | |
18272 | isl::set schedule_node_guard::guard() const |
18273 | { |
18274 | auto res = isl_schedule_node_guard_get_guard(node: get()); |
18275 | return manage(ptr: res); |
18276 | } |
18277 | |
18278 | isl::set schedule_node_guard::get_guard() const |
18279 | { |
18280 | return guard(); |
18281 | } |
18282 | |
18283 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_guard &obj) |
18284 | { |
18285 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18286 | if (!str) { |
18287 | os.setstate(std::ios_base::badbit); |
18288 | return os; |
18289 | } |
18290 | os << str; |
18291 | free(ptr: str); |
18292 | return os; |
18293 | } |
18294 | |
18295 | // implementations for isl::schedule_node_leaf |
18296 | schedule_node_leaf::schedule_node_leaf() |
18297 | : schedule_node() {} |
18298 | |
18299 | schedule_node_leaf::schedule_node_leaf(const schedule_node_leaf &obj) |
18300 | : schedule_node(obj) |
18301 | { |
18302 | } |
18303 | |
18304 | schedule_node_leaf::schedule_node_leaf(__isl_take isl_schedule_node *ptr) |
18305 | : schedule_node(ptr) {} |
18306 | |
18307 | schedule_node_leaf &schedule_node_leaf::operator=(schedule_node_leaf obj) { |
18308 | std::swap(a&: this->ptr, b&: obj.ptr); |
18309 | return *this; |
18310 | } |
18311 | |
18312 | isl::ctx schedule_node_leaf::ctx() const { |
18313 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18314 | } |
18315 | |
18316 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_leaf &obj) |
18317 | { |
18318 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18319 | if (!str) { |
18320 | os.setstate(std::ios_base::badbit); |
18321 | return os; |
18322 | } |
18323 | os << str; |
18324 | free(ptr: str); |
18325 | return os; |
18326 | } |
18327 | |
18328 | // implementations for isl::schedule_node_mark |
18329 | schedule_node_mark::schedule_node_mark() |
18330 | : schedule_node() {} |
18331 | |
18332 | schedule_node_mark::schedule_node_mark(const schedule_node_mark &obj) |
18333 | : schedule_node(obj) |
18334 | { |
18335 | } |
18336 | |
18337 | schedule_node_mark::schedule_node_mark(__isl_take isl_schedule_node *ptr) |
18338 | : schedule_node(ptr) {} |
18339 | |
18340 | schedule_node_mark &schedule_node_mark::operator=(schedule_node_mark obj) { |
18341 | std::swap(a&: this->ptr, b&: obj.ptr); |
18342 | return *this; |
18343 | } |
18344 | |
18345 | isl::ctx schedule_node_mark::ctx() const { |
18346 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18347 | } |
18348 | |
18349 | isl::id schedule_node_mark::id() const |
18350 | { |
18351 | auto res = isl_schedule_node_mark_get_id(node: get()); |
18352 | return manage(ptr: res); |
18353 | } |
18354 | |
18355 | isl::id schedule_node_mark::get_id() const |
18356 | { |
18357 | return id(); |
18358 | } |
18359 | |
18360 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_mark &obj) |
18361 | { |
18362 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18363 | if (!str) { |
18364 | os.setstate(std::ios_base::badbit); |
18365 | return os; |
18366 | } |
18367 | os << str; |
18368 | free(ptr: str); |
18369 | return os; |
18370 | } |
18371 | |
18372 | // implementations for isl::schedule_node_sequence |
18373 | schedule_node_sequence::schedule_node_sequence() |
18374 | : schedule_node() {} |
18375 | |
18376 | schedule_node_sequence::schedule_node_sequence(const schedule_node_sequence &obj) |
18377 | : schedule_node(obj) |
18378 | { |
18379 | } |
18380 | |
18381 | schedule_node_sequence::schedule_node_sequence(__isl_take isl_schedule_node *ptr) |
18382 | : schedule_node(ptr) {} |
18383 | |
18384 | schedule_node_sequence &schedule_node_sequence::operator=(schedule_node_sequence obj) { |
18385 | std::swap(a&: this->ptr, b&: obj.ptr); |
18386 | return *this; |
18387 | } |
18388 | |
18389 | isl::ctx schedule_node_sequence::ctx() const { |
18390 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18391 | } |
18392 | |
18393 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_sequence &obj) |
18394 | { |
18395 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18396 | if (!str) { |
18397 | os.setstate(std::ios_base::badbit); |
18398 | return os; |
18399 | } |
18400 | os << str; |
18401 | free(ptr: str); |
18402 | return os; |
18403 | } |
18404 | |
18405 | // implementations for isl::schedule_node_set |
18406 | schedule_node_set::schedule_node_set() |
18407 | : schedule_node() {} |
18408 | |
18409 | schedule_node_set::schedule_node_set(const schedule_node_set &obj) |
18410 | : schedule_node(obj) |
18411 | { |
18412 | } |
18413 | |
18414 | schedule_node_set::schedule_node_set(__isl_take isl_schedule_node *ptr) |
18415 | : schedule_node(ptr) {} |
18416 | |
18417 | schedule_node_set &schedule_node_set::operator=(schedule_node_set obj) { |
18418 | std::swap(a&: this->ptr, b&: obj.ptr); |
18419 | return *this; |
18420 | } |
18421 | |
18422 | isl::ctx schedule_node_set::ctx() const { |
18423 | return isl::ctx(isl_schedule_node_get_ctx(node: ptr)); |
18424 | } |
18425 | |
18426 | inline std::ostream &operator<<(std::ostream &os, const schedule_node_set &obj) |
18427 | { |
18428 | char *str = isl_schedule_node_to_str(node: obj.get()); |
18429 | if (!str) { |
18430 | os.setstate(std::ios_base::badbit); |
18431 | return os; |
18432 | } |
18433 | os << str; |
18434 | free(ptr: str); |
18435 | return os; |
18436 | } |
18437 | |
18438 | // implementations for isl::set |
18439 | set manage(__isl_take isl_set *ptr) { |
18440 | return set(ptr); |
18441 | } |
18442 | set manage_copy(__isl_keep isl_set *ptr) { |
18443 | ptr = isl_set_copy(set: ptr); |
18444 | return set(ptr); |
18445 | } |
18446 | |
18447 | set::set() |
18448 | : ptr(nullptr) {} |
18449 | |
18450 | set::set(const set &obj) |
18451 | : ptr(nullptr) |
18452 | { |
18453 | ptr = obj.copy(); |
18454 | } |
18455 | |
18456 | set::set(__isl_take isl_set *ptr) |
18457 | : ptr(ptr) {} |
18458 | |
18459 | set::set(isl::basic_set bset) |
18460 | { |
18461 | auto res = isl_set_from_basic_set(bset: bset.release()); |
18462 | ptr = res; |
18463 | } |
18464 | |
18465 | set::set(isl::point pnt) |
18466 | { |
18467 | auto res = isl_set_from_point(pnt: pnt.release()); |
18468 | ptr = res; |
18469 | } |
18470 | |
18471 | set::set(isl::union_set uset) |
18472 | { |
18473 | auto res = isl_set_from_union_set(uset: uset.release()); |
18474 | ptr = res; |
18475 | } |
18476 | |
18477 | set::set(isl::ctx ctx, const std::string &str) |
18478 | { |
18479 | auto res = isl_set_read_from_str(ctx: ctx.release(), str: str.c_str()); |
18480 | ptr = res; |
18481 | } |
18482 | |
18483 | set &set::operator=(set obj) { |
18484 | std::swap(a&: this->ptr, b&: obj.ptr); |
18485 | return *this; |
18486 | } |
18487 | |
18488 | set::~set() { |
18489 | if (ptr) |
18490 | isl_set_free(set: ptr); |
18491 | } |
18492 | |
18493 | __isl_give isl_set *set::copy() const & { |
18494 | return isl_set_copy(set: ptr); |
18495 | } |
18496 | |
18497 | __isl_keep isl_set *set::get() const { |
18498 | return ptr; |
18499 | } |
18500 | |
18501 | __isl_give isl_set *set::release() { |
18502 | isl_set *tmp = ptr; |
18503 | ptr = nullptr; |
18504 | return tmp; |
18505 | } |
18506 | |
18507 | bool set::is_null() const { |
18508 | return ptr == nullptr; |
18509 | } |
18510 | |
18511 | isl::ctx set::ctx() const { |
18512 | return isl::ctx(isl_set_get_ctx(set: ptr)); |
18513 | } |
18514 | |
18515 | isl::set set::add_constraint(isl::constraint constraint) const |
18516 | { |
18517 | auto res = isl_set_add_constraint(set: copy(), constraint: constraint.release()); |
18518 | return manage(ptr: res); |
18519 | } |
18520 | |
18521 | isl::set set::add_dims(isl::dim type, unsigned int n) const |
18522 | { |
18523 | auto res = isl_set_add_dims(set: copy(), type: static_cast<enum isl_dim_type>(type), n); |
18524 | return manage(ptr: res); |
18525 | } |
18526 | |
18527 | isl::basic_set set::affine_hull() const |
18528 | { |
18529 | auto res = isl_set_affine_hull(set: copy()); |
18530 | return manage(ptr: res); |
18531 | } |
18532 | |
18533 | isl::set set::align_params(isl::space model) const |
18534 | { |
18535 | auto res = isl_set_align_params(set: copy(), model: model.release()); |
18536 | return manage(ptr: res); |
18537 | } |
18538 | |
18539 | isl::set set::apply(isl::map map) const |
18540 | { |
18541 | auto res = isl_set_apply(set: copy(), map: map.release()); |
18542 | return manage(ptr: res); |
18543 | } |
18544 | |
18545 | isl::union_set set::apply(const isl::union_map &umap) const |
18546 | { |
18547 | return isl::union_set(*this).apply(umap); |
18548 | } |
18549 | |
18550 | isl::set set::apply(const isl::basic_map &map) const |
18551 | { |
18552 | return this->apply(map: isl::map(map)); |
18553 | } |
18554 | |
18555 | isl::pw_multi_aff set::as_pw_multi_aff() const |
18556 | { |
18557 | auto res = isl_set_as_pw_multi_aff(set: copy()); |
18558 | return manage(ptr: res); |
18559 | } |
18560 | |
18561 | isl::set set::as_set() const |
18562 | { |
18563 | return isl::union_set(*this).as_set(); |
18564 | } |
18565 | |
18566 | isl::basic_set_list set::basic_set_list() const |
18567 | { |
18568 | auto res = isl_set_get_basic_set_list(set: get()); |
18569 | return manage(ptr: res); |
18570 | } |
18571 | |
18572 | isl::basic_set_list set::get_basic_set_list() const |
18573 | { |
18574 | return basic_set_list(); |
18575 | } |
18576 | |
18577 | isl::set set::bind(isl::multi_id tuple) const |
18578 | { |
18579 | auto res = isl_set_bind(set: copy(), tuple: tuple.release()); |
18580 | return manage(ptr: res); |
18581 | } |
18582 | |
18583 | isl::set set::coalesce() const |
18584 | { |
18585 | auto res = isl_set_coalesce(set: copy()); |
18586 | return manage(ptr: res); |
18587 | } |
18588 | |
18589 | isl::set set::complement() const |
18590 | { |
18591 | auto res = isl_set_complement(set: copy()); |
18592 | return manage(ptr: res); |
18593 | } |
18594 | |
18595 | isl::union_set set::compute_divs() const |
18596 | { |
18597 | return isl::union_set(*this).compute_divs(); |
18598 | } |
18599 | |
18600 | boolean set::contains(const isl::space &space) const |
18601 | { |
18602 | return isl::union_set(*this).contains(space); |
18603 | } |
18604 | |
18605 | isl::basic_set set::convex_hull() const |
18606 | { |
18607 | auto res = isl_set_convex_hull(set: copy()); |
18608 | return manage(ptr: res); |
18609 | } |
18610 | |
18611 | isl::set set::detect_equalities() const |
18612 | { |
18613 | auto res = isl_set_detect_equalities(set: copy()); |
18614 | return manage(ptr: res); |
18615 | } |
18616 | |
18617 | class size set::dim(isl::dim type) const |
18618 | { |
18619 | auto res = isl_set_dim(set: get(), type: static_cast<enum isl_dim_type>(type)); |
18620 | return manage(val: res); |
18621 | } |
18622 | |
18623 | boolean set::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const |
18624 | { |
18625 | auto res = isl_set_dim_has_any_lower_bound(set: get(), type: static_cast<enum isl_dim_type>(type), pos); |
18626 | return manage(val: res); |
18627 | } |
18628 | |
18629 | isl::id set::dim_id(isl::dim type, unsigned int pos) const |
18630 | { |
18631 | auto res = isl_set_get_dim_id(set: get(), type: static_cast<enum isl_dim_type>(type), pos); |
18632 | return manage(ptr: res); |
18633 | } |
18634 | |
18635 | isl::id set::get_dim_id(isl::dim type, unsigned int pos) const |
18636 | { |
18637 | return dim_id(type, pos); |
18638 | } |
18639 | |
18640 | isl::pw_aff set::dim_max(int pos) const |
18641 | { |
18642 | auto res = isl_set_dim_max(set: copy(), pos); |
18643 | return manage(ptr: res); |
18644 | } |
18645 | |
18646 | isl::val set::dim_max_val(int pos) const |
18647 | { |
18648 | auto res = isl_set_dim_max_val(set: copy(), pos); |
18649 | return manage(ptr: res); |
18650 | } |
18651 | |
18652 | isl::pw_aff set::dim_min(int pos) const |
18653 | { |
18654 | auto res = isl_set_dim_min(set: copy(), pos); |
18655 | return manage(ptr: res); |
18656 | } |
18657 | |
18658 | isl::val set::dim_min_val(int pos) const |
18659 | { |
18660 | auto res = isl_set_dim_min_val(set: copy(), pos); |
18661 | return manage(ptr: res); |
18662 | } |
18663 | |
18664 | std::string set::dim_name(isl::dim type, unsigned int pos) const |
18665 | { |
18666 | auto res = isl_set_get_dim_name(set: get(), type: static_cast<enum isl_dim_type>(type), pos); |
18667 | std::string tmp(res); |
18668 | return tmp; |
18669 | } |
18670 | |
18671 | std::string set::get_dim_name(isl::dim type, unsigned int pos) const |
18672 | { |
18673 | return dim_name(type, pos); |
18674 | } |
18675 | |
18676 | isl::set set::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const |
18677 | { |
18678 | auto res = isl_set_drop_constraints_involving_dims(set: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
18679 | return manage(ptr: res); |
18680 | } |
18681 | |
18682 | isl::set set::eliminate(isl::dim type, unsigned int first, unsigned int n) const |
18683 | { |
18684 | auto res = isl_set_eliminate(set: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
18685 | return manage(ptr: res); |
18686 | } |
18687 | |
18688 | isl::set set::empty(isl::space space) |
18689 | { |
18690 | auto res = isl_set_empty(space: space.release()); |
18691 | return manage(ptr: res); |
18692 | } |
18693 | |
18694 | boolean set::every_set(const std::function<boolean(isl::set)> &test) const |
18695 | { |
18696 | return isl::union_set(*this).every_set(test); |
18697 | } |
18698 | |
18699 | isl::set set::(const isl::space &space) const |
18700 | { |
18701 | return isl::union_set(*this).extract_set(space); |
18702 | } |
18703 | |
18704 | int set::find_dim_by_id(isl::dim type, const isl::id &id) const |
18705 | { |
18706 | auto res = isl_set_find_dim_by_id(set: get(), type: static_cast<enum isl_dim_type>(type), id: id.get()); |
18707 | return res; |
18708 | } |
18709 | |
18710 | int set::find_dim_by_id(isl::dim type, const std::string &id) const |
18711 | { |
18712 | return this->find_dim_by_id(type, id: isl::id(ctx(), id)); |
18713 | } |
18714 | |
18715 | isl::set set::fix_si(isl::dim type, unsigned int pos, int value) const |
18716 | { |
18717 | auto res = isl_set_fix_si(set: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
18718 | return manage(ptr: res); |
18719 | } |
18720 | |
18721 | isl::set set::flatten() const |
18722 | { |
18723 | auto res = isl_set_flatten(set: copy()); |
18724 | return manage(ptr: res); |
18725 | } |
18726 | |
18727 | stat set::foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const |
18728 | { |
18729 | struct fn_data { |
18730 | std::function<stat(isl::basic_set)> func; |
18731 | } fn_data = { .func: fn }; |
18732 | auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat { |
18733 | auto *data = static_cast<struct fn_data *>(arg_1); |
18734 | auto ret = (data->func)(manage(ptr: arg_0)); |
18735 | return ret.release(); |
18736 | }; |
18737 | auto res = isl_set_foreach_basic_set(set: get(), fn: fn_lambda, user: &fn_data); |
18738 | return manage(val: res); |
18739 | } |
18740 | |
18741 | stat set::foreach_point(const std::function<stat(isl::point)> &fn) const |
18742 | { |
18743 | struct fn_data { |
18744 | std::function<stat(isl::point)> func; |
18745 | } fn_data = { .func: fn }; |
18746 | auto fn_lambda = [](isl_point *arg_0, void *arg_1) -> isl_stat { |
18747 | auto *data = static_cast<struct fn_data *>(arg_1); |
18748 | auto ret = (data->func)(manage(ptr: arg_0)); |
18749 | return ret.release(); |
18750 | }; |
18751 | auto res = isl_set_foreach_point(set: get(), fn: fn_lambda, user: &fn_data); |
18752 | return manage(val: res); |
18753 | } |
18754 | |
18755 | stat set::foreach_set(const std::function<stat(isl::set)> &fn) const |
18756 | { |
18757 | return isl::union_set(*this).foreach_set(fn); |
18758 | } |
18759 | |
18760 | isl::set set::gist(isl::set context) const |
18761 | { |
18762 | auto res = isl_set_gist(set: copy(), context: context.release()); |
18763 | return manage(ptr: res); |
18764 | } |
18765 | |
18766 | isl::union_set set::gist(const isl::union_set &context) const |
18767 | { |
18768 | return isl::union_set(*this).gist(context); |
18769 | } |
18770 | |
18771 | isl::set set::gist(const isl::basic_set &context) const |
18772 | { |
18773 | return this->gist(context: isl::set(context)); |
18774 | } |
18775 | |
18776 | isl::set set::gist(const isl::point &context) const |
18777 | { |
18778 | return this->gist(context: isl::set(context)); |
18779 | } |
18780 | |
18781 | isl::set set::gist_params(isl::set context) const |
18782 | { |
18783 | auto res = isl_set_gist_params(set: copy(), context: context.release()); |
18784 | return manage(ptr: res); |
18785 | } |
18786 | |
18787 | boolean set::has_equal_space(const isl::set &set2) const |
18788 | { |
18789 | auto res = isl_set_has_equal_space(set1: get(), set2: set2.get()); |
18790 | return manage(val: res); |
18791 | } |
18792 | |
18793 | isl::map set::identity() const |
18794 | { |
18795 | auto res = isl_set_identity(set: copy()); |
18796 | return manage(ptr: res); |
18797 | } |
18798 | |
18799 | isl::union_pw_multi_aff set::identity_union_pw_multi_aff() const |
18800 | { |
18801 | return isl::union_set(*this).identity_union_pw_multi_aff(); |
18802 | } |
18803 | |
18804 | isl::pw_aff set::indicator_function() const |
18805 | { |
18806 | auto res = isl_set_indicator_function(set: copy()); |
18807 | return manage(ptr: res); |
18808 | } |
18809 | |
18810 | isl::set set::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const |
18811 | { |
18812 | auto res = isl_set_insert_dims(set: copy(), type: static_cast<enum isl_dim_type>(type), pos, n); |
18813 | return manage(ptr: res); |
18814 | } |
18815 | |
18816 | isl::map set::insert_domain(isl::space domain) const |
18817 | { |
18818 | auto res = isl_set_insert_domain(set: copy(), domain: domain.release()); |
18819 | return manage(ptr: res); |
18820 | } |
18821 | |
18822 | isl::set set::intersect(isl::set set2) const |
18823 | { |
18824 | auto res = isl_set_intersect(set1: copy(), set2: set2.release()); |
18825 | return manage(ptr: res); |
18826 | } |
18827 | |
18828 | isl::union_set set::intersect(const isl::union_set &uset2) const |
18829 | { |
18830 | return isl::union_set(*this).intersect(uset2); |
18831 | } |
18832 | |
18833 | isl::set set::intersect(const isl::basic_set &set2) const |
18834 | { |
18835 | return this->intersect(set2: isl::set(set2)); |
18836 | } |
18837 | |
18838 | isl::set set::intersect(const isl::point &set2) const |
18839 | { |
18840 | return this->intersect(set2: isl::set(set2)); |
18841 | } |
18842 | |
18843 | isl::set set::intersect_params(isl::set params) const |
18844 | { |
18845 | auto res = isl_set_intersect_params(set: copy(), params: params.release()); |
18846 | return manage(ptr: res); |
18847 | } |
18848 | |
18849 | boolean set::involves_dims(isl::dim type, unsigned int first, unsigned int n) const |
18850 | { |
18851 | auto res = isl_set_involves_dims(set: get(), type: static_cast<enum isl_dim_type>(type), first, n); |
18852 | return manage(val: res); |
18853 | } |
18854 | |
18855 | boolean set::involves_locals() const |
18856 | { |
18857 | auto res = isl_set_involves_locals(set: get()); |
18858 | return manage(val: res); |
18859 | } |
18860 | |
18861 | boolean set::is_bounded() const |
18862 | { |
18863 | auto res = isl_set_is_bounded(set: get()); |
18864 | return manage(val: res); |
18865 | } |
18866 | |
18867 | boolean set::is_disjoint(const isl::set &set2) const |
18868 | { |
18869 | auto res = isl_set_is_disjoint(set1: get(), set2: set2.get()); |
18870 | return manage(val: res); |
18871 | } |
18872 | |
18873 | boolean set::is_disjoint(const isl::union_set &uset2) const |
18874 | { |
18875 | return isl::union_set(*this).is_disjoint(uset2); |
18876 | } |
18877 | |
18878 | boolean set::is_disjoint(const isl::basic_set &set2) const |
18879 | { |
18880 | return this->is_disjoint(set2: isl::set(set2)); |
18881 | } |
18882 | |
18883 | boolean set::is_disjoint(const isl::point &set2) const |
18884 | { |
18885 | return this->is_disjoint(set2: isl::set(set2)); |
18886 | } |
18887 | |
18888 | boolean set::is_empty() const |
18889 | { |
18890 | auto res = isl_set_is_empty(set: get()); |
18891 | return manage(val: res); |
18892 | } |
18893 | |
18894 | boolean set::is_equal(const isl::set &set2) const |
18895 | { |
18896 | auto res = isl_set_is_equal(set1: get(), set2: set2.get()); |
18897 | return manage(val: res); |
18898 | } |
18899 | |
18900 | boolean set::is_equal(const isl::union_set &uset2) const |
18901 | { |
18902 | return isl::union_set(*this).is_equal(uset2); |
18903 | } |
18904 | |
18905 | boolean set::is_equal(const isl::basic_set &set2) const |
18906 | { |
18907 | return this->is_equal(set2: isl::set(set2)); |
18908 | } |
18909 | |
18910 | boolean set::is_equal(const isl::point &set2) const |
18911 | { |
18912 | return this->is_equal(set2: isl::set(set2)); |
18913 | } |
18914 | |
18915 | boolean set::is_params() const |
18916 | { |
18917 | auto res = isl_set_is_params(set: get()); |
18918 | return manage(val: res); |
18919 | } |
18920 | |
18921 | boolean set::is_singleton() const |
18922 | { |
18923 | auto res = isl_set_is_singleton(set: get()); |
18924 | return manage(val: res); |
18925 | } |
18926 | |
18927 | boolean set::is_strict_subset(const isl::set &set2) const |
18928 | { |
18929 | auto res = isl_set_is_strict_subset(set1: get(), set2: set2.get()); |
18930 | return manage(val: res); |
18931 | } |
18932 | |
18933 | boolean set::is_strict_subset(const isl::union_set &uset2) const |
18934 | { |
18935 | return isl::union_set(*this).is_strict_subset(uset2); |
18936 | } |
18937 | |
18938 | boolean set::is_strict_subset(const isl::basic_set &set2) const |
18939 | { |
18940 | return this->is_strict_subset(set2: isl::set(set2)); |
18941 | } |
18942 | |
18943 | boolean set::is_strict_subset(const isl::point &set2) const |
18944 | { |
18945 | return this->is_strict_subset(set2: isl::set(set2)); |
18946 | } |
18947 | |
18948 | boolean set::is_subset(const isl::set &set2) const |
18949 | { |
18950 | auto res = isl_set_is_subset(set1: get(), set2: set2.get()); |
18951 | return manage(val: res); |
18952 | } |
18953 | |
18954 | boolean set::is_subset(const isl::union_set &uset2) const |
18955 | { |
18956 | return isl::union_set(*this).is_subset(uset2); |
18957 | } |
18958 | |
18959 | boolean set::is_subset(const isl::basic_set &set2) const |
18960 | { |
18961 | return this->is_subset(set2: isl::set(set2)); |
18962 | } |
18963 | |
18964 | boolean set::is_subset(const isl::point &set2) const |
18965 | { |
18966 | return this->is_subset(set2: isl::set(set2)); |
18967 | } |
18968 | |
18969 | boolean set::is_wrapping() const |
18970 | { |
18971 | auto res = isl_set_is_wrapping(set: get()); |
18972 | return manage(val: res); |
18973 | } |
18974 | |
18975 | boolean set::isa_set() const |
18976 | { |
18977 | return isl::union_set(*this).isa_set(); |
18978 | } |
18979 | |
18980 | isl::set set::lexmax() const |
18981 | { |
18982 | auto res = isl_set_lexmax(set: copy()); |
18983 | return manage(ptr: res); |
18984 | } |
18985 | |
18986 | isl::pw_multi_aff set::lexmax_pw_multi_aff() const |
18987 | { |
18988 | auto res = isl_set_lexmax_pw_multi_aff(set: copy()); |
18989 | return manage(ptr: res); |
18990 | } |
18991 | |
18992 | isl::set set::lexmin() const |
18993 | { |
18994 | auto res = isl_set_lexmin(set: copy()); |
18995 | return manage(ptr: res); |
18996 | } |
18997 | |
18998 | isl::pw_multi_aff set::lexmin_pw_multi_aff() const |
18999 | { |
19000 | auto res = isl_set_lexmin_pw_multi_aff(set: copy()); |
19001 | return manage(ptr: res); |
19002 | } |
19003 | |
19004 | isl::set set::lower_bound(isl::multi_pw_aff lower) const |
19005 | { |
19006 | auto res = isl_set_lower_bound_multi_pw_aff(set: copy(), lower: lower.release()); |
19007 | return manage(ptr: res); |
19008 | } |
19009 | |
19010 | isl::set set::lower_bound(isl::multi_val lower) const |
19011 | { |
19012 | auto res = isl_set_lower_bound_multi_val(set: copy(), lower: lower.release()); |
19013 | return manage(ptr: res); |
19014 | } |
19015 | |
19016 | isl::set set::lower_bound_si(isl::dim type, unsigned int pos, int value) const |
19017 | { |
19018 | auto res = isl_set_lower_bound_si(set: copy(), type: static_cast<enum isl_dim_type>(type), pos, value); |
19019 | return manage(ptr: res); |
19020 | } |
19021 | |
19022 | isl::set set::lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const |
19023 | { |
19024 | auto res = isl_set_lower_bound_val(set: copy(), type: static_cast<enum isl_dim_type>(type), pos, value: value.release()); |
19025 | return manage(ptr: res); |
19026 | } |
19027 | |
19028 | isl::set set::lower_bound_val(isl::dim type, unsigned int pos, long value) const |
19029 | { |
19030 | return this->lower_bound_val(type, pos, value: isl::val(ctx(), value)); |
19031 | } |
19032 | |
19033 | isl::multi_pw_aff set::max_multi_pw_aff() const |
19034 | { |
19035 | auto res = isl_set_max_multi_pw_aff(set: copy()); |
19036 | return manage(ptr: res); |
19037 | } |
19038 | |
19039 | isl::val set::max_val(const isl::aff &obj) const |
19040 | { |
19041 | auto res = isl_set_max_val(set: get(), obj: obj.get()); |
19042 | return manage(ptr: res); |
19043 | } |
19044 | |
19045 | isl::multi_pw_aff set::min_multi_pw_aff() const |
19046 | { |
19047 | auto res = isl_set_min_multi_pw_aff(set: copy()); |
19048 | return manage(ptr: res); |
19049 | } |
19050 | |
19051 | isl::val set::min_val(const isl::aff &obj) const |
19052 | { |
19053 | auto res = isl_set_min_val(set: get(), obj: obj.get()); |
19054 | return manage(ptr: res); |
19055 | } |
19056 | |
19057 | class size set::n_basic_set() const |
19058 | { |
19059 | auto res = isl_set_n_basic_set(set: get()); |
19060 | return manage(val: res); |
19061 | } |
19062 | |
19063 | isl::set set::params() const |
19064 | { |
19065 | auto res = isl_set_params(set: copy()); |
19066 | return manage(ptr: res); |
19067 | } |
19068 | |
19069 | isl::val set::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const |
19070 | { |
19071 | auto res = isl_set_plain_get_val_if_fixed(set: get(), type: static_cast<enum isl_dim_type>(type), pos); |
19072 | return manage(ptr: res); |
19073 | } |
19074 | |
19075 | isl::multi_val set::plain_multi_val_if_fixed() const |
19076 | { |
19077 | auto res = isl_set_get_plain_multi_val_if_fixed(set: get()); |
19078 | return manage(ptr: res); |
19079 | } |
19080 | |
19081 | isl::multi_val set::get_plain_multi_val_if_fixed() const |
19082 | { |
19083 | return plain_multi_val_if_fixed(); |
19084 | } |
19085 | |
19086 | isl::basic_set set::polyhedral_hull() const |
19087 | { |
19088 | auto res = isl_set_polyhedral_hull(set: copy()); |
19089 | return manage(ptr: res); |
19090 | } |
19091 | |
19092 | isl::set set::preimage(isl::multi_aff ma) const |
19093 | { |
19094 | auto res = isl_set_preimage_multi_aff(set: copy(), ma: ma.release()); |
19095 | return manage(ptr: res); |
19096 | } |
19097 | |
19098 | isl::set set::preimage(isl::multi_pw_aff mpa) const |
19099 | { |
19100 | auto res = isl_set_preimage_multi_pw_aff(set: copy(), mpa: mpa.release()); |
19101 | return manage(ptr: res); |
19102 | } |
19103 | |
19104 | isl::set set::preimage(isl::pw_multi_aff pma) const |
19105 | { |
19106 | auto res = isl_set_preimage_pw_multi_aff(set: copy(), pma: pma.release()); |
19107 | return manage(ptr: res); |
19108 | } |
19109 | |
19110 | isl::union_set set::preimage(const isl::union_pw_multi_aff &upma) const |
19111 | { |
19112 | return isl::union_set(*this).preimage(upma); |
19113 | } |
19114 | |
19115 | isl::set set::product(isl::set set2) const |
19116 | { |
19117 | auto res = isl_set_product(set1: copy(), set2: set2.release()); |
19118 | return manage(ptr: res); |
19119 | } |
19120 | |
19121 | isl::set set::project_out(isl::dim type, unsigned int first, unsigned int n) const |
19122 | { |
19123 | auto res = isl_set_project_out(set: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
19124 | return manage(ptr: res); |
19125 | } |
19126 | |
19127 | isl::set set::project_out_all_params() const |
19128 | { |
19129 | auto res = isl_set_project_out_all_params(set: copy()); |
19130 | return manage(ptr: res); |
19131 | } |
19132 | |
19133 | isl::set set::project_out_param(isl::id id) const |
19134 | { |
19135 | auto res = isl_set_project_out_param_id(set: copy(), id: id.release()); |
19136 | return manage(ptr: res); |
19137 | } |
19138 | |
19139 | isl::set set::project_out_param(const std::string &id) const |
19140 | { |
19141 | return this->project_out_param(id: isl::id(ctx(), id)); |
19142 | } |
19143 | |
19144 | isl::set set::project_out_param(isl::id_list list) const |
19145 | { |
19146 | auto res = isl_set_project_out_param_id_list(set: copy(), list: list.release()); |
19147 | return manage(ptr: res); |
19148 | } |
19149 | |
19150 | isl::pw_multi_aff set::pw_multi_aff_on_domain(isl::multi_val mv) const |
19151 | { |
19152 | auto res = isl_set_pw_multi_aff_on_domain_multi_val(domain: copy(), mv: mv.release()); |
19153 | return manage(ptr: res); |
19154 | } |
19155 | |
19156 | isl::set set::remove_dims(isl::dim type, unsigned int first, unsigned int n) const |
19157 | { |
19158 | auto res = isl_set_remove_dims(bset: copy(), type: static_cast<enum isl_dim_type>(type), first, n); |
19159 | return manage(ptr: res); |
19160 | } |
19161 | |
19162 | isl::set set::remove_divs() const |
19163 | { |
19164 | auto res = isl_set_remove_divs(set: copy()); |
19165 | return manage(ptr: res); |
19166 | } |
19167 | |
19168 | isl::set set::remove_redundancies() const |
19169 | { |
19170 | auto res = isl_set_remove_redundancies(set: copy()); |
19171 | return manage(ptr: res); |
19172 | } |
19173 | |
19174 | isl::set set::reset_tuple_id() const |
19175 | { |
19176 | auto res = isl_set_reset_tuple_id(set: copy()); |
19177 | return manage(ptr: res); |
19178 | } |
19179 | |
19180 | isl::basic_set set::sample() const |
19181 | { |
19182 | auto res = isl_set_sample(set: copy()); |
19183 | return manage(ptr: res); |
19184 | } |
19185 | |
19186 | isl::point set::sample_point() const |
19187 | { |
19188 | auto res = isl_set_sample_point(set: copy()); |
19189 | return manage(ptr: res); |
19190 | } |
19191 | |
19192 | isl::set set::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const |
19193 | { |
19194 | auto res = isl_set_set_dim_id(set: copy(), type: static_cast<enum isl_dim_type>(type), pos, id: id.release()); |
19195 | return manage(ptr: res); |
19196 | } |
19197 | |
19198 | isl::set set::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const |
19199 | { |
19200 | return this->set_dim_id(type, pos, id: isl::id(ctx(), id)); |
19201 | } |
19202 | |
19203 | isl::set_list set::set_list() const |
19204 | { |
19205 | return isl::union_set(*this).set_list(); |
19206 | } |
19207 | |
19208 | isl::set set::set_tuple_id(isl::id id) const |
19209 | { |
19210 | auto res = isl_set_set_tuple_id(set: copy(), id: id.release()); |
19211 | return manage(ptr: res); |
19212 | } |
19213 | |
19214 | isl::set set::set_tuple_id(const std::string &id) const |
19215 | { |
19216 | return this->set_tuple_id(isl::id(ctx(), id)); |
19217 | } |
19218 | |
19219 | isl::fixed_box set::simple_fixed_box_hull() const |
19220 | { |
19221 | auto res = isl_set_get_simple_fixed_box_hull(set: get()); |
19222 | return manage(ptr: res); |
19223 | } |
19224 | |
19225 | isl::fixed_box set::get_simple_fixed_box_hull() const |
19226 | { |
19227 | return simple_fixed_box_hull(); |
19228 | } |
19229 | |
19230 | isl::basic_set set::simple_hull() const |
19231 | { |
19232 | auto res = isl_set_simple_hull(set: copy()); |
19233 | return manage(ptr: res); |
19234 | } |
19235 | |
19236 | isl::space set::space() const |
19237 | { |
19238 | auto res = isl_set_get_space(set: get()); |
19239 | return manage(ptr: res); |
19240 | } |
19241 | |
19242 | isl::space set::get_space() const |
19243 | { |
19244 | return space(); |
19245 | } |
19246 | |
19247 | isl::val set::stride(int pos) const |
19248 | { |
19249 | auto res = isl_set_get_stride(set: get(), pos); |
19250 | return manage(ptr: res); |
19251 | } |
19252 | |
19253 | isl::val set::get_stride(int pos) const |
19254 | { |
19255 | return stride(pos); |
19256 | } |
19257 | |
19258 | isl::set set::subtract(isl::set set2) const |
19259 | { |
19260 | auto res = isl_set_subtract(set1: copy(), set2: set2.release()); |
19261 | return manage(ptr: res); |
19262 | } |
19263 | |
19264 | isl::union_set set::subtract(const isl::union_set &uset2) const |
19265 | { |
19266 | return isl::union_set(*this).subtract(uset2); |
19267 | } |
19268 | |
19269 | isl::set set::subtract(const isl::basic_set &set2) const |
19270 | { |
19271 | return this->subtract(set2: isl::set(set2)); |
19272 | } |
19273 | |
19274 | isl::set set::subtract(const isl::point &set2) const |
19275 | { |
19276 | return this->subtract(set2: isl::set(set2)); |
19277 | } |
19278 | |
19279 | isl::set_list set::to_list() const |
19280 | { |
19281 | auto res = isl_set_to_list(el: copy()); |
19282 | return manage(ptr: res); |
19283 | } |
19284 | |
19285 | isl::union_set set::to_union_set() const |
19286 | { |
19287 | auto res = isl_set_to_union_set(set: copy()); |
19288 | return manage(ptr: res); |
19289 | } |
19290 | |
19291 | isl::map set::translation() const |
19292 | { |
19293 | auto res = isl_set_translation(deltas: copy()); |
19294 | return manage(ptr: res); |
19295 | } |
19296 | |
19297 | class size set::tuple_dim() const |
19298 | { |
19299 | auto res = isl_set_tuple_dim(set: get()); |
19300 | return manage(val: res); |
19301 | } |
19302 | |
19303 | isl::id set::tuple_id() const |
19304 | { |
19305 | auto res = isl_set_get_tuple_id(set: get()); |
19306 | return manage(ptr: res); |
19307 | } |
19308 | |
19309 | isl::id set::get_tuple_id() const |
19310 | { |
19311 | return tuple_id(); |
19312 | } |
19313 | |
19314 | std::string set::tuple_name() const |
19315 | { |
19316 | auto res = isl_set_get_tuple_name(set: get()); |
19317 | std::string tmp(res); |
19318 | return tmp; |
19319 | } |
19320 | |
19321 | std::string set::get_tuple_name() const |
19322 | { |
19323 | return tuple_name(); |
19324 | } |
19325 | |
19326 | isl::set set::unbind_params(isl::multi_id tuple) const |
19327 | { |
19328 | auto res = isl_set_unbind_params(set: copy(), tuple: tuple.release()); |
19329 | return manage(ptr: res); |
19330 | } |
19331 | |
19332 | isl::map set::unbind_params_insert_domain(isl::multi_id domain) const |
19333 | { |
19334 | auto res = isl_set_unbind_params_insert_domain(set: copy(), domain: domain.release()); |
19335 | return manage(ptr: res); |
19336 | } |
19337 | |
19338 | isl::set set::unite(isl::set set2) const |
19339 | { |
19340 | auto res = isl_set_union(set1: copy(), set2: set2.release()); |
19341 | return manage(ptr: res); |
19342 | } |
19343 | |
19344 | isl::union_set set::unite(const isl::union_set &uset2) const |
19345 | { |
19346 | return isl::union_set(*this).unite(uset2); |
19347 | } |
19348 | |
19349 | isl::set set::unite(const isl::basic_set &set2) const |
19350 | { |
19351 | return this->unite(set2: isl::set(set2)); |
19352 | } |
19353 | |
19354 | isl::set set::unite(const isl::point &set2) const |
19355 | { |
19356 | return this->unite(set2: isl::set(set2)); |
19357 | } |
19358 | |
19359 | isl::set set::universe(isl::space space) |
19360 | { |
19361 | auto res = isl_set_universe(space: space.release()); |
19362 | return manage(ptr: res); |
19363 | } |
19364 | |
19365 | isl::basic_set set::unshifted_simple_hull() const |
19366 | { |
19367 | auto res = isl_set_unshifted_simple_hull(set: copy()); |
19368 | return manage(ptr: res); |
19369 | } |
19370 | |
19371 | isl::map set::unwrap() const |
19372 | { |
19373 | auto res = isl_set_unwrap(set: copy()); |
19374 | return manage(ptr: res); |
19375 | } |
19376 | |
19377 | isl::set set::upper_bound(isl::multi_pw_aff upper) const |
19378 | { |
19379 | auto res = isl_set_upper_bound_multi_pw_aff(set: copy(), upper: upper.release()); |
19380 | return manage(ptr: res); |
19381 | } |
19382 | |
19383 | isl::set set::upper_bound(isl::multi_val upper) const |
19384 | { |
19385 | auto res = isl_set_upper_bound_multi_val(set: copy(), upper: upper.release()); |
19386 | return manage(ptr: res); |
19387 | } |
19388 | |
19389 | isl::set set::upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const |
19390 | { |
19391 | auto res = isl_set_upper_bound_val(set: copy(), type: static_cast<enum isl_dim_type>(type), pos, value: value.release()); |
19392 | return manage(ptr: res); |
19393 | } |
19394 | |
19395 | isl::set set::upper_bound_val(isl::dim type, unsigned int pos, long value) const |
19396 | { |
19397 | return this->upper_bound_val(type, pos, value: isl::val(ctx(), value)); |
19398 | } |
19399 | |
19400 | inline std::ostream &operator<<(std::ostream &os, const set &obj) |
19401 | { |
19402 | char *str = isl_set_to_str(set: obj.get()); |
19403 | if (!str) { |
19404 | os.setstate(std::ios_base::badbit); |
19405 | return os; |
19406 | } |
19407 | os << str; |
19408 | free(ptr: str); |
19409 | return os; |
19410 | } |
19411 | |
19412 | // implementations for isl::set_list |
19413 | set_list manage(__isl_take isl_set_list *ptr) { |
19414 | return set_list(ptr); |
19415 | } |
19416 | set_list manage_copy(__isl_keep isl_set_list *ptr) { |
19417 | ptr = isl_set_list_copy(list: ptr); |
19418 | return set_list(ptr); |
19419 | } |
19420 | |
19421 | set_list::set_list() |
19422 | : ptr(nullptr) {} |
19423 | |
19424 | set_list::set_list(const set_list &obj) |
19425 | : ptr(nullptr) |
19426 | { |
19427 | ptr = obj.copy(); |
19428 | } |
19429 | |
19430 | set_list::set_list(__isl_take isl_set_list *ptr) |
19431 | : ptr(ptr) {} |
19432 | |
19433 | set_list::set_list(isl::ctx ctx, int n) |
19434 | { |
19435 | auto res = isl_set_list_alloc(ctx: ctx.release(), n); |
19436 | ptr = res; |
19437 | } |
19438 | |
19439 | set_list::set_list(isl::set el) |
19440 | { |
19441 | auto res = isl_set_list_from_set(el: el.release()); |
19442 | ptr = res; |
19443 | } |
19444 | |
19445 | set_list::set_list(isl::ctx ctx, const std::string &str) |
19446 | { |
19447 | auto res = isl_set_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
19448 | ptr = res; |
19449 | } |
19450 | |
19451 | set_list &set_list::operator=(set_list obj) { |
19452 | std::swap(a&: this->ptr, b&: obj.ptr); |
19453 | return *this; |
19454 | } |
19455 | |
19456 | set_list::~set_list() { |
19457 | if (ptr) |
19458 | isl_set_list_free(list: ptr); |
19459 | } |
19460 | |
19461 | __isl_give isl_set_list *set_list::copy() const & { |
19462 | return isl_set_list_copy(list: ptr); |
19463 | } |
19464 | |
19465 | __isl_keep isl_set_list *set_list::get() const { |
19466 | return ptr; |
19467 | } |
19468 | |
19469 | __isl_give isl_set_list *set_list::release() { |
19470 | isl_set_list *tmp = ptr; |
19471 | ptr = nullptr; |
19472 | return tmp; |
19473 | } |
19474 | |
19475 | bool set_list::is_null() const { |
19476 | return ptr == nullptr; |
19477 | } |
19478 | |
19479 | isl::ctx set_list::ctx() const { |
19480 | return isl::ctx(isl_set_list_get_ctx(list: ptr)); |
19481 | } |
19482 | |
19483 | isl::set_list set_list::add(isl::set el) const |
19484 | { |
19485 | auto res = isl_set_list_add(list: copy(), el: el.release()); |
19486 | return manage(ptr: res); |
19487 | } |
19488 | |
19489 | isl::set set_list::at(int index) const |
19490 | { |
19491 | auto res = isl_set_list_get_at(list: get(), index); |
19492 | return manage(ptr: res); |
19493 | } |
19494 | |
19495 | isl::set set_list::get_at(int index) const |
19496 | { |
19497 | return at(index); |
19498 | } |
19499 | |
19500 | isl::set_list set_list::clear() const |
19501 | { |
19502 | auto res = isl_set_list_clear(list: copy()); |
19503 | return manage(ptr: res); |
19504 | } |
19505 | |
19506 | isl::set_list set_list::concat(isl::set_list list2) const |
19507 | { |
19508 | auto res = isl_set_list_concat(list1: copy(), list2: list2.release()); |
19509 | return manage(ptr: res); |
19510 | } |
19511 | |
19512 | isl::set_list set_list::drop(unsigned int first, unsigned int n) const |
19513 | { |
19514 | auto res = isl_set_list_drop(list: copy(), first, n); |
19515 | return manage(ptr: res); |
19516 | } |
19517 | |
19518 | stat set_list::foreach(const std::function<stat(isl::set)> &fn) const |
19519 | { |
19520 | struct fn_data { |
19521 | std::function<stat(isl::set)> func; |
19522 | } fn_data = { .func: fn }; |
19523 | auto fn_lambda = [](isl_set *arg_0, void *arg_1) -> isl_stat { |
19524 | auto *data = static_cast<struct fn_data *>(arg_1); |
19525 | auto ret = (data->func)(manage(ptr: arg_0)); |
19526 | return ret.release(); |
19527 | }; |
19528 | auto res = isl_set_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
19529 | return manage(val: res); |
19530 | } |
19531 | |
19532 | isl::set_list set_list::insert(unsigned int pos, isl::set el) const |
19533 | { |
19534 | auto res = isl_set_list_insert(list: copy(), pos, el: el.release()); |
19535 | return manage(ptr: res); |
19536 | } |
19537 | |
19538 | class size set_list::size() const |
19539 | { |
19540 | auto res = isl_set_list_size(list: get()); |
19541 | return manage(val: res); |
19542 | } |
19543 | |
19544 | inline std::ostream &operator<<(std::ostream &os, const set_list &obj) |
19545 | { |
19546 | char *str = isl_set_list_to_str(list: obj.get()); |
19547 | if (!str) { |
19548 | os.setstate(std::ios_base::badbit); |
19549 | return os; |
19550 | } |
19551 | os << str; |
19552 | free(ptr: str); |
19553 | return os; |
19554 | } |
19555 | |
19556 | // implementations for isl::space |
19557 | space manage(__isl_take isl_space *ptr) { |
19558 | return space(ptr); |
19559 | } |
19560 | space manage_copy(__isl_keep isl_space *ptr) { |
19561 | ptr = isl_space_copy(space: ptr); |
19562 | return space(ptr); |
19563 | } |
19564 | |
19565 | space::space() |
19566 | : ptr(nullptr) {} |
19567 | |
19568 | space::space(const space &obj) |
19569 | : ptr(nullptr) |
19570 | { |
19571 | ptr = obj.copy(); |
19572 | } |
19573 | |
19574 | space::space(__isl_take isl_space *ptr) |
19575 | : ptr(ptr) {} |
19576 | |
19577 | space::space(isl::ctx ctx, unsigned int nparam, unsigned int n_in, unsigned int n_out) |
19578 | { |
19579 | auto res = isl_space_alloc(ctx: ctx.release(), nparam, n_in, n_out); |
19580 | ptr = res; |
19581 | } |
19582 | |
19583 | space::space(isl::ctx ctx, unsigned int nparam, unsigned int dim) |
19584 | { |
19585 | auto res = isl_space_set_alloc(ctx: ctx.release(), nparam, dim); |
19586 | ptr = res; |
19587 | } |
19588 | |
19589 | space &space::operator=(space obj) { |
19590 | std::swap(a&: this->ptr, b&: obj.ptr); |
19591 | return *this; |
19592 | } |
19593 | |
19594 | space::~space() { |
19595 | if (ptr) |
19596 | isl_space_free(space: ptr); |
19597 | } |
19598 | |
19599 | __isl_give isl_space *space::copy() const & { |
19600 | return isl_space_copy(space: ptr); |
19601 | } |
19602 | |
19603 | __isl_keep isl_space *space::get() const { |
19604 | return ptr; |
19605 | } |
19606 | |
19607 | __isl_give isl_space *space::release() { |
19608 | isl_space *tmp = ptr; |
19609 | ptr = nullptr; |
19610 | return tmp; |
19611 | } |
19612 | |
19613 | bool space::is_null() const { |
19614 | return ptr == nullptr; |
19615 | } |
19616 | |
19617 | isl::ctx space::ctx() const { |
19618 | return isl::ctx(isl_space_get_ctx(space: ptr)); |
19619 | } |
19620 | |
19621 | isl::space space::add_dims(isl::dim type, unsigned int n) const |
19622 | { |
19623 | auto res = isl_space_add_dims(space: copy(), type: static_cast<enum isl_dim_type>(type), n); |
19624 | return manage(ptr: res); |
19625 | } |
19626 | |
19627 | isl::space space::add_named_tuple(isl::id tuple_id, unsigned int dim) const |
19628 | { |
19629 | auto res = isl_space_add_named_tuple_id_ui(space: copy(), tuple_id: tuple_id.release(), dim); |
19630 | return manage(ptr: res); |
19631 | } |
19632 | |
19633 | isl::space space::add_named_tuple(const std::string &tuple_id, unsigned int dim) const |
19634 | { |
19635 | return this->add_named_tuple(tuple_id: isl::id(ctx(), tuple_id), dim); |
19636 | } |
19637 | |
19638 | isl::space space::add_param(isl::id id) const |
19639 | { |
19640 | auto res = isl_space_add_param_id(space: copy(), id: id.release()); |
19641 | return manage(ptr: res); |
19642 | } |
19643 | |
19644 | isl::space space::add_param(const std::string &id) const |
19645 | { |
19646 | return this->add_param(id: isl::id(ctx(), id)); |
19647 | } |
19648 | |
19649 | isl::space space::add_unnamed_tuple(unsigned int dim) const |
19650 | { |
19651 | auto res = isl_space_add_unnamed_tuple_ui(space: copy(), dim); |
19652 | return manage(ptr: res); |
19653 | } |
19654 | |
19655 | isl::space space::align_params(isl::space space2) const |
19656 | { |
19657 | auto res = isl_space_align_params(space1: copy(), space2: space2.release()); |
19658 | return manage(ptr: res); |
19659 | } |
19660 | |
19661 | isl::space space::curry() const |
19662 | { |
19663 | auto res = isl_space_curry(space: copy()); |
19664 | return manage(ptr: res); |
19665 | } |
19666 | |
19667 | class size space::dim(isl::dim type) const |
19668 | { |
19669 | auto res = isl_space_dim(space: get(), type: static_cast<enum isl_dim_type>(type)); |
19670 | return manage(val: res); |
19671 | } |
19672 | |
19673 | isl::id space::dim_id(isl::dim type, unsigned int pos) const |
19674 | { |
19675 | auto res = isl_space_get_dim_id(space: get(), type: static_cast<enum isl_dim_type>(type), pos); |
19676 | return manage(ptr: res); |
19677 | } |
19678 | |
19679 | isl::id space::get_dim_id(isl::dim type, unsigned int pos) const |
19680 | { |
19681 | return dim_id(type, pos); |
19682 | } |
19683 | |
19684 | isl::space space::domain() const |
19685 | { |
19686 | auto res = isl_space_domain(space: copy()); |
19687 | return manage(ptr: res); |
19688 | } |
19689 | |
19690 | isl::multi_aff space::domain_map_multi_aff() const |
19691 | { |
19692 | auto res = isl_space_domain_map_multi_aff(space: copy()); |
19693 | return manage(ptr: res); |
19694 | } |
19695 | |
19696 | isl::pw_multi_aff space::domain_map_pw_multi_aff() const |
19697 | { |
19698 | auto res = isl_space_domain_map_pw_multi_aff(space: copy()); |
19699 | return manage(ptr: res); |
19700 | } |
19701 | |
19702 | isl::id space::domain_tuple_id() const |
19703 | { |
19704 | auto res = isl_space_get_domain_tuple_id(space: get()); |
19705 | return manage(ptr: res); |
19706 | } |
19707 | |
19708 | isl::id space::get_domain_tuple_id() const |
19709 | { |
19710 | return domain_tuple_id(); |
19711 | } |
19712 | |
19713 | isl::space space::drop_dims(isl::dim type, unsigned int first, unsigned int num) const |
19714 | { |
19715 | auto res = isl_space_drop_dims(space: copy(), type: static_cast<enum isl_dim_type>(type), first, num); |
19716 | return manage(ptr: res); |
19717 | } |
19718 | |
19719 | int space::find_dim_by_id(isl::dim type, const isl::id &id) const |
19720 | { |
19721 | auto res = isl_space_find_dim_by_id(space: get(), type: static_cast<enum isl_dim_type>(type), id: id.get()); |
19722 | return res; |
19723 | } |
19724 | |
19725 | int space::find_dim_by_id(isl::dim type, const std::string &id) const |
19726 | { |
19727 | return this->find_dim_by_id(type, id: isl::id(ctx(), id)); |
19728 | } |
19729 | |
19730 | isl::space space::flatten_domain() const |
19731 | { |
19732 | auto res = isl_space_flatten_domain(space: copy()); |
19733 | return manage(ptr: res); |
19734 | } |
19735 | |
19736 | isl::space space::flatten_range() const |
19737 | { |
19738 | auto res = isl_space_flatten_range(space: copy()); |
19739 | return manage(ptr: res); |
19740 | } |
19741 | |
19742 | boolean space::has_domain_tuple_id() const |
19743 | { |
19744 | auto res = isl_space_has_domain_tuple_id(space: get()); |
19745 | return manage(val: res); |
19746 | } |
19747 | |
19748 | boolean space::has_equal_tuples(const isl::space &space2) const |
19749 | { |
19750 | auto res = isl_space_has_equal_tuples(space1: get(), space2: space2.get()); |
19751 | return manage(val: res); |
19752 | } |
19753 | |
19754 | boolean space::has_range_tuple_id() const |
19755 | { |
19756 | auto res = isl_space_has_range_tuple_id(space: get()); |
19757 | return manage(val: res); |
19758 | } |
19759 | |
19760 | boolean space::has_tuple_id(isl::dim type) const |
19761 | { |
19762 | auto res = isl_space_has_tuple_id(space: get(), type: static_cast<enum isl_dim_type>(type)); |
19763 | return manage(val: res); |
19764 | } |
19765 | |
19766 | boolean space::has_tuple_name(isl::dim type) const |
19767 | { |
19768 | auto res = isl_space_has_tuple_name(space: get(), type: static_cast<enum isl_dim_type>(type)); |
19769 | return manage(val: res); |
19770 | } |
19771 | |
19772 | isl::multi_aff space::identity_multi_aff_on_domain() const |
19773 | { |
19774 | auto res = isl_space_identity_multi_aff_on_domain(space: copy()); |
19775 | return manage(ptr: res); |
19776 | } |
19777 | |
19778 | isl::multi_pw_aff space::identity_multi_pw_aff_on_domain() const |
19779 | { |
19780 | auto res = isl_space_identity_multi_pw_aff_on_domain(space: copy()); |
19781 | return manage(ptr: res); |
19782 | } |
19783 | |
19784 | isl::pw_multi_aff space::identity_pw_multi_aff_on_domain() const |
19785 | { |
19786 | auto res = isl_space_identity_pw_multi_aff_on_domain(space: copy()); |
19787 | return manage(ptr: res); |
19788 | } |
19789 | |
19790 | boolean space::is_equal(const isl::space &space2) const |
19791 | { |
19792 | auto res = isl_space_is_equal(space1: get(), space2: space2.get()); |
19793 | return manage(val: res); |
19794 | } |
19795 | |
19796 | boolean space::is_params() const |
19797 | { |
19798 | auto res = isl_space_is_params(space: get()); |
19799 | return manage(val: res); |
19800 | } |
19801 | |
19802 | boolean space::is_set() const |
19803 | { |
19804 | auto res = isl_space_is_set(space: get()); |
19805 | return manage(val: res); |
19806 | } |
19807 | |
19808 | boolean space::is_wrapping() const |
19809 | { |
19810 | auto res = isl_space_is_wrapping(space: get()); |
19811 | return manage(val: res); |
19812 | } |
19813 | |
19814 | isl::space space::map_from_domain_and_range(isl::space range) const |
19815 | { |
19816 | auto res = isl_space_map_from_domain_and_range(domain: copy(), range: range.release()); |
19817 | return manage(ptr: res); |
19818 | } |
19819 | |
19820 | isl::space space::map_from_set() const |
19821 | { |
19822 | auto res = isl_space_map_from_set(space: copy()); |
19823 | return manage(ptr: res); |
19824 | } |
19825 | |
19826 | isl::multi_aff space::multi_aff(isl::aff_list list) const |
19827 | { |
19828 | auto res = isl_space_multi_aff(space: copy(), list: list.release()); |
19829 | return manage(ptr: res); |
19830 | } |
19831 | |
19832 | isl::multi_aff space::multi_aff_on_domain(isl::multi_val mv) const |
19833 | { |
19834 | auto res = isl_space_multi_aff_on_domain_multi_val(space: copy(), mv: mv.release()); |
19835 | return manage(ptr: res); |
19836 | } |
19837 | |
19838 | isl::multi_id space::multi_id(isl::id_list list) const |
19839 | { |
19840 | auto res = isl_space_multi_id(space: copy(), list: list.release()); |
19841 | return manage(ptr: res); |
19842 | } |
19843 | |
19844 | isl::multi_pw_aff space::multi_pw_aff(isl::pw_aff_list list) const |
19845 | { |
19846 | auto res = isl_space_multi_pw_aff(space: copy(), list: list.release()); |
19847 | return manage(ptr: res); |
19848 | } |
19849 | |
19850 | isl::multi_union_pw_aff space::multi_union_pw_aff(isl::union_pw_aff_list list) const |
19851 | { |
19852 | auto res = isl_space_multi_union_pw_aff(space: copy(), list: list.release()); |
19853 | return manage(ptr: res); |
19854 | } |
19855 | |
19856 | isl::multi_val space::multi_val(isl::val_list list) const |
19857 | { |
19858 | auto res = isl_space_multi_val(space: copy(), list: list.release()); |
19859 | return manage(ptr: res); |
19860 | } |
19861 | |
19862 | isl::aff space::param_aff_on_domain(isl::id id) const |
19863 | { |
19864 | auto res = isl_space_param_aff_on_domain_id(space: copy(), id: id.release()); |
19865 | return manage(ptr: res); |
19866 | } |
19867 | |
19868 | isl::aff space::param_aff_on_domain(const std::string &id) const |
19869 | { |
19870 | return this->param_aff_on_domain(id: isl::id(ctx(), id)); |
19871 | } |
19872 | |
19873 | isl::space space::params() const |
19874 | { |
19875 | auto res = isl_space_params(space: copy()); |
19876 | return manage(ptr: res); |
19877 | } |
19878 | |
19879 | isl::space space::params_alloc(isl::ctx ctx, unsigned int nparam) |
19880 | { |
19881 | auto res = isl_space_params_alloc(ctx: ctx.release(), nparam); |
19882 | return manage(ptr: res); |
19883 | } |
19884 | |
19885 | isl::space space::product(isl::space right) const |
19886 | { |
19887 | auto res = isl_space_product(left: copy(), right: right.release()); |
19888 | return manage(ptr: res); |
19889 | } |
19890 | |
19891 | isl::space space::range() const |
19892 | { |
19893 | auto res = isl_space_range(space: copy()); |
19894 | return manage(ptr: res); |
19895 | } |
19896 | |
19897 | isl::multi_aff space::range_map_multi_aff() const |
19898 | { |
19899 | auto res = isl_space_range_map_multi_aff(space: copy()); |
19900 | return manage(ptr: res); |
19901 | } |
19902 | |
19903 | isl::pw_multi_aff space::range_map_pw_multi_aff() const |
19904 | { |
19905 | auto res = isl_space_range_map_pw_multi_aff(space: copy()); |
19906 | return manage(ptr: res); |
19907 | } |
19908 | |
19909 | isl::space space::range_reverse() const |
19910 | { |
19911 | auto res = isl_space_range_reverse(space: copy()); |
19912 | return manage(ptr: res); |
19913 | } |
19914 | |
19915 | isl::id space::range_tuple_id() const |
19916 | { |
19917 | auto res = isl_space_get_range_tuple_id(space: get()); |
19918 | return manage(ptr: res); |
19919 | } |
19920 | |
19921 | isl::id space::get_range_tuple_id() const |
19922 | { |
19923 | return range_tuple_id(); |
19924 | } |
19925 | |
19926 | isl::space space::reverse() const |
19927 | { |
19928 | auto res = isl_space_reverse(space: copy()); |
19929 | return manage(ptr: res); |
19930 | } |
19931 | |
19932 | isl::space space::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const |
19933 | { |
19934 | auto res = isl_space_set_dim_id(space: copy(), type: static_cast<enum isl_dim_type>(type), pos, id: id.release()); |
19935 | return manage(ptr: res); |
19936 | } |
19937 | |
19938 | isl::space space::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const |
19939 | { |
19940 | return this->set_dim_id(type, pos, id: isl::id(ctx(), id)); |
19941 | } |
19942 | |
19943 | isl::space space::set_domain_tuple(isl::id id) const |
19944 | { |
19945 | auto res = isl_space_set_domain_tuple_id(space: copy(), id: id.release()); |
19946 | return manage(ptr: res); |
19947 | } |
19948 | |
19949 | isl::space space::set_domain_tuple(const std::string &id) const |
19950 | { |
19951 | return this->set_domain_tuple(isl::id(ctx(), id)); |
19952 | } |
19953 | |
19954 | isl::space space::set_from_params() const |
19955 | { |
19956 | auto res = isl_space_set_from_params(space: copy()); |
19957 | return manage(ptr: res); |
19958 | } |
19959 | |
19960 | isl::space space::set_range_tuple(isl::id id) const |
19961 | { |
19962 | auto res = isl_space_set_range_tuple_id(space: copy(), id: id.release()); |
19963 | return manage(ptr: res); |
19964 | } |
19965 | |
19966 | isl::space space::set_range_tuple(const std::string &id) const |
19967 | { |
19968 | return this->set_range_tuple(isl::id(ctx(), id)); |
19969 | } |
19970 | |
19971 | isl::space space::set_tuple_id(isl::dim type, isl::id id) const |
19972 | { |
19973 | auto res = isl_space_set_tuple_id(space: copy(), type: static_cast<enum isl_dim_type>(type), id: id.release()); |
19974 | return manage(ptr: res); |
19975 | } |
19976 | |
19977 | isl::space space::set_tuple_id(isl::dim type, const std::string &id) const |
19978 | { |
19979 | return this->set_tuple_id(type, id: isl::id(ctx(), id)); |
19980 | } |
19981 | |
19982 | isl::id space::tuple_id(isl::dim type) const |
19983 | { |
19984 | auto res = isl_space_get_tuple_id(space: get(), type: static_cast<enum isl_dim_type>(type)); |
19985 | return manage(ptr: res); |
19986 | } |
19987 | |
19988 | isl::id space::get_tuple_id(isl::dim type) const |
19989 | { |
19990 | return tuple_id(type); |
19991 | } |
19992 | |
19993 | std::string space::tuple_name(isl::dim type) const |
19994 | { |
19995 | auto res = isl_space_get_tuple_name(space: get(), type: static_cast<enum isl_dim_type>(type)); |
19996 | std::string tmp(res); |
19997 | return tmp; |
19998 | } |
19999 | |
20000 | std::string space::get_tuple_name(isl::dim type) const |
20001 | { |
20002 | return tuple_name(type); |
20003 | } |
20004 | |
20005 | isl::space space::uncurry() const |
20006 | { |
20007 | auto res = isl_space_uncurry(space: copy()); |
20008 | return manage(ptr: res); |
20009 | } |
20010 | |
20011 | isl::space space::unit(isl::ctx ctx) |
20012 | { |
20013 | auto res = isl_space_unit(ctx: ctx.release()); |
20014 | return manage(ptr: res); |
20015 | } |
20016 | |
20017 | isl::map space::universe_map() const |
20018 | { |
20019 | auto res = isl_space_universe_map(space: copy()); |
20020 | return manage(ptr: res); |
20021 | } |
20022 | |
20023 | isl::set space::universe_set() const |
20024 | { |
20025 | auto res = isl_space_universe_set(space: copy()); |
20026 | return manage(ptr: res); |
20027 | } |
20028 | |
20029 | isl::space space::unwrap() const |
20030 | { |
20031 | auto res = isl_space_unwrap(space: copy()); |
20032 | return manage(ptr: res); |
20033 | } |
20034 | |
20035 | isl::space space::wrap() const |
20036 | { |
20037 | auto res = isl_space_wrap(space: copy()); |
20038 | return manage(ptr: res); |
20039 | } |
20040 | |
20041 | isl::aff space::zero_aff_on_domain() const |
20042 | { |
20043 | auto res = isl_space_zero_aff_on_domain(space: copy()); |
20044 | return manage(ptr: res); |
20045 | } |
20046 | |
20047 | isl::multi_aff space::zero_multi_aff() const |
20048 | { |
20049 | auto res = isl_space_zero_multi_aff(space: copy()); |
20050 | return manage(ptr: res); |
20051 | } |
20052 | |
20053 | isl::multi_pw_aff space::zero_multi_pw_aff() const |
20054 | { |
20055 | auto res = isl_space_zero_multi_pw_aff(space: copy()); |
20056 | return manage(ptr: res); |
20057 | } |
20058 | |
20059 | isl::multi_union_pw_aff space::zero_multi_union_pw_aff() const |
20060 | { |
20061 | auto res = isl_space_zero_multi_union_pw_aff(space: copy()); |
20062 | return manage(ptr: res); |
20063 | } |
20064 | |
20065 | isl::multi_val space::zero_multi_val() const |
20066 | { |
20067 | auto res = isl_space_zero_multi_val(space: copy()); |
20068 | return manage(ptr: res); |
20069 | } |
20070 | |
20071 | inline std::ostream &operator<<(std::ostream &os, const space &obj) |
20072 | { |
20073 | char *str = isl_space_to_str(space: obj.get()); |
20074 | if (!str) { |
20075 | os.setstate(std::ios_base::badbit); |
20076 | return os; |
20077 | } |
20078 | os << str; |
20079 | free(ptr: str); |
20080 | return os; |
20081 | } |
20082 | |
20083 | // implementations for isl::union_access_info |
20084 | union_access_info manage(__isl_take isl_union_access_info *ptr) { |
20085 | return union_access_info(ptr); |
20086 | } |
20087 | union_access_info manage_copy(__isl_keep isl_union_access_info *ptr) { |
20088 | ptr = isl_union_access_info_copy(access: ptr); |
20089 | return union_access_info(ptr); |
20090 | } |
20091 | |
20092 | union_access_info::union_access_info() |
20093 | : ptr(nullptr) {} |
20094 | |
20095 | union_access_info::union_access_info(const union_access_info &obj) |
20096 | : ptr(nullptr) |
20097 | { |
20098 | ptr = obj.copy(); |
20099 | } |
20100 | |
20101 | union_access_info::union_access_info(__isl_take isl_union_access_info *ptr) |
20102 | : ptr(ptr) {} |
20103 | |
20104 | union_access_info::union_access_info(isl::union_map sink) |
20105 | { |
20106 | auto res = isl_union_access_info_from_sink(sink: sink.release()); |
20107 | ptr = res; |
20108 | } |
20109 | |
20110 | union_access_info &union_access_info::operator=(union_access_info obj) { |
20111 | std::swap(a&: this->ptr, b&: obj.ptr); |
20112 | return *this; |
20113 | } |
20114 | |
20115 | union_access_info::~union_access_info() { |
20116 | if (ptr) |
20117 | isl_union_access_info_free(access: ptr); |
20118 | } |
20119 | |
20120 | __isl_give isl_union_access_info *union_access_info::copy() const & { |
20121 | return isl_union_access_info_copy(access: ptr); |
20122 | } |
20123 | |
20124 | __isl_keep isl_union_access_info *union_access_info::get() const { |
20125 | return ptr; |
20126 | } |
20127 | |
20128 | __isl_give isl_union_access_info *union_access_info::release() { |
20129 | isl_union_access_info *tmp = ptr; |
20130 | ptr = nullptr; |
20131 | return tmp; |
20132 | } |
20133 | |
20134 | bool union_access_info::is_null() const { |
20135 | return ptr == nullptr; |
20136 | } |
20137 | |
20138 | isl::ctx union_access_info::ctx() const { |
20139 | return isl::ctx(isl_union_access_info_get_ctx(access: ptr)); |
20140 | } |
20141 | |
20142 | isl::union_flow union_access_info::compute_flow() const |
20143 | { |
20144 | auto res = isl_union_access_info_compute_flow(access: copy()); |
20145 | return manage(ptr: res); |
20146 | } |
20147 | |
20148 | isl::union_access_info union_access_info::set_kill(isl::union_map kill) const |
20149 | { |
20150 | auto res = isl_union_access_info_set_kill(access: copy(), kill: kill.release()); |
20151 | return manage(ptr: res); |
20152 | } |
20153 | |
20154 | isl::union_access_info union_access_info::set_may_source(isl::union_map may_source) const |
20155 | { |
20156 | auto res = isl_union_access_info_set_may_source(access: copy(), may_source: may_source.release()); |
20157 | return manage(ptr: res); |
20158 | } |
20159 | |
20160 | isl::union_access_info union_access_info::set_must_source(isl::union_map must_source) const |
20161 | { |
20162 | auto res = isl_union_access_info_set_must_source(access: copy(), must_source: must_source.release()); |
20163 | return manage(ptr: res); |
20164 | } |
20165 | |
20166 | isl::union_access_info union_access_info::set_schedule(isl::schedule schedule) const |
20167 | { |
20168 | auto res = isl_union_access_info_set_schedule(access: copy(), schedule: schedule.release()); |
20169 | return manage(ptr: res); |
20170 | } |
20171 | |
20172 | isl::union_access_info union_access_info::set_schedule_map(isl::union_map schedule_map) const |
20173 | { |
20174 | auto res = isl_union_access_info_set_schedule_map(access: copy(), schedule_map: schedule_map.release()); |
20175 | return manage(ptr: res); |
20176 | } |
20177 | |
20178 | inline std::ostream &operator<<(std::ostream &os, const union_access_info &obj) |
20179 | { |
20180 | char *str = isl_union_access_info_to_str(access: obj.get()); |
20181 | if (!str) { |
20182 | os.setstate(std::ios_base::badbit); |
20183 | return os; |
20184 | } |
20185 | os << str; |
20186 | free(ptr: str); |
20187 | return os; |
20188 | } |
20189 | |
20190 | // implementations for isl::union_flow |
20191 | union_flow manage(__isl_take isl_union_flow *ptr) { |
20192 | return union_flow(ptr); |
20193 | } |
20194 | union_flow manage_copy(__isl_keep isl_union_flow *ptr) { |
20195 | ptr = isl_union_flow_copy(flow: ptr); |
20196 | return union_flow(ptr); |
20197 | } |
20198 | |
20199 | union_flow::union_flow() |
20200 | : ptr(nullptr) {} |
20201 | |
20202 | union_flow::union_flow(const union_flow &obj) |
20203 | : ptr(nullptr) |
20204 | { |
20205 | ptr = obj.copy(); |
20206 | } |
20207 | |
20208 | union_flow::union_flow(__isl_take isl_union_flow *ptr) |
20209 | : ptr(ptr) {} |
20210 | |
20211 | union_flow &union_flow::operator=(union_flow obj) { |
20212 | std::swap(a&: this->ptr, b&: obj.ptr); |
20213 | return *this; |
20214 | } |
20215 | |
20216 | union_flow::~union_flow() { |
20217 | if (ptr) |
20218 | isl_union_flow_free(flow: ptr); |
20219 | } |
20220 | |
20221 | __isl_give isl_union_flow *union_flow::copy() const & { |
20222 | return isl_union_flow_copy(flow: ptr); |
20223 | } |
20224 | |
20225 | __isl_keep isl_union_flow *union_flow::get() const { |
20226 | return ptr; |
20227 | } |
20228 | |
20229 | __isl_give isl_union_flow *union_flow::release() { |
20230 | isl_union_flow *tmp = ptr; |
20231 | ptr = nullptr; |
20232 | return tmp; |
20233 | } |
20234 | |
20235 | bool union_flow::is_null() const { |
20236 | return ptr == nullptr; |
20237 | } |
20238 | |
20239 | isl::ctx union_flow::ctx() const { |
20240 | return isl::ctx(isl_union_flow_get_ctx(flow: ptr)); |
20241 | } |
20242 | |
20243 | isl::union_map union_flow::full_may_dependence() const |
20244 | { |
20245 | auto res = isl_union_flow_get_full_may_dependence(flow: get()); |
20246 | return manage(ptr: res); |
20247 | } |
20248 | |
20249 | isl::union_map union_flow::get_full_may_dependence() const |
20250 | { |
20251 | return full_may_dependence(); |
20252 | } |
20253 | |
20254 | isl::union_map union_flow::full_must_dependence() const |
20255 | { |
20256 | auto res = isl_union_flow_get_full_must_dependence(flow: get()); |
20257 | return manage(ptr: res); |
20258 | } |
20259 | |
20260 | isl::union_map union_flow::get_full_must_dependence() const |
20261 | { |
20262 | return full_must_dependence(); |
20263 | } |
20264 | |
20265 | isl::union_map union_flow::may_dependence() const |
20266 | { |
20267 | auto res = isl_union_flow_get_may_dependence(flow: get()); |
20268 | return manage(ptr: res); |
20269 | } |
20270 | |
20271 | isl::union_map union_flow::get_may_dependence() const |
20272 | { |
20273 | return may_dependence(); |
20274 | } |
20275 | |
20276 | isl::union_map union_flow::may_no_source() const |
20277 | { |
20278 | auto res = isl_union_flow_get_may_no_source(flow: get()); |
20279 | return manage(ptr: res); |
20280 | } |
20281 | |
20282 | isl::union_map union_flow::get_may_no_source() const |
20283 | { |
20284 | return may_no_source(); |
20285 | } |
20286 | |
20287 | isl::union_map union_flow::must_dependence() const |
20288 | { |
20289 | auto res = isl_union_flow_get_must_dependence(flow: get()); |
20290 | return manage(ptr: res); |
20291 | } |
20292 | |
20293 | isl::union_map union_flow::get_must_dependence() const |
20294 | { |
20295 | return must_dependence(); |
20296 | } |
20297 | |
20298 | isl::union_map union_flow::must_no_source() const |
20299 | { |
20300 | auto res = isl_union_flow_get_must_no_source(flow: get()); |
20301 | return manage(ptr: res); |
20302 | } |
20303 | |
20304 | isl::union_map union_flow::get_must_no_source() const |
20305 | { |
20306 | return must_no_source(); |
20307 | } |
20308 | |
20309 | inline std::ostream &operator<<(std::ostream &os, const union_flow &obj) |
20310 | { |
20311 | char *str = isl_union_flow_to_str(flow: obj.get()); |
20312 | if (!str) { |
20313 | os.setstate(std::ios_base::badbit); |
20314 | return os; |
20315 | } |
20316 | os << str; |
20317 | free(ptr: str); |
20318 | return os; |
20319 | } |
20320 | |
20321 | // implementations for isl::union_map |
20322 | union_map manage(__isl_take isl_union_map *ptr) { |
20323 | return union_map(ptr); |
20324 | } |
20325 | union_map manage_copy(__isl_keep isl_union_map *ptr) { |
20326 | ptr = isl_union_map_copy(umap: ptr); |
20327 | return union_map(ptr); |
20328 | } |
20329 | |
20330 | union_map::union_map() |
20331 | : ptr(nullptr) {} |
20332 | |
20333 | union_map::union_map(const union_map &obj) |
20334 | : ptr(nullptr) |
20335 | { |
20336 | ptr = obj.copy(); |
20337 | } |
20338 | |
20339 | union_map::union_map(__isl_take isl_union_map *ptr) |
20340 | : ptr(ptr) {} |
20341 | |
20342 | union_map::union_map(isl::basic_map bmap) |
20343 | { |
20344 | auto res = isl_union_map_from_basic_map(bmap: bmap.release()); |
20345 | ptr = res; |
20346 | } |
20347 | |
20348 | union_map::union_map(isl::map map) |
20349 | { |
20350 | auto res = isl_union_map_from_map(map: map.release()); |
20351 | ptr = res; |
20352 | } |
20353 | |
20354 | union_map::union_map(isl::ctx ctx, const std::string &str) |
20355 | { |
20356 | auto res = isl_union_map_read_from_str(ctx: ctx.release(), str: str.c_str()); |
20357 | ptr = res; |
20358 | } |
20359 | |
20360 | union_map &union_map::operator=(union_map obj) { |
20361 | std::swap(a&: this->ptr, b&: obj.ptr); |
20362 | return *this; |
20363 | } |
20364 | |
20365 | union_map::~union_map() { |
20366 | if (ptr) |
20367 | isl_union_map_free(umap: ptr); |
20368 | } |
20369 | |
20370 | __isl_give isl_union_map *union_map::copy() const & { |
20371 | return isl_union_map_copy(umap: ptr); |
20372 | } |
20373 | |
20374 | __isl_keep isl_union_map *union_map::get() const { |
20375 | return ptr; |
20376 | } |
20377 | |
20378 | __isl_give isl_union_map *union_map::release() { |
20379 | isl_union_map *tmp = ptr; |
20380 | ptr = nullptr; |
20381 | return tmp; |
20382 | } |
20383 | |
20384 | bool union_map::is_null() const { |
20385 | return ptr == nullptr; |
20386 | } |
20387 | |
20388 | isl::ctx union_map::ctx() const { |
20389 | return isl::ctx(isl_union_map_get_ctx(umap: ptr)); |
20390 | } |
20391 | |
20392 | isl::union_map union_map::affine_hull() const |
20393 | { |
20394 | auto res = isl_union_map_affine_hull(umap: copy()); |
20395 | return manage(ptr: res); |
20396 | } |
20397 | |
20398 | isl::union_map union_map::apply_domain(isl::union_map umap2) const |
20399 | { |
20400 | auto res = isl_union_map_apply_domain(umap1: copy(), umap2: umap2.release()); |
20401 | return manage(ptr: res); |
20402 | } |
20403 | |
20404 | isl::union_map union_map::apply_range(isl::union_map umap2) const |
20405 | { |
20406 | auto res = isl_union_map_apply_range(umap1: copy(), umap2: umap2.release()); |
20407 | return manage(ptr: res); |
20408 | } |
20409 | |
20410 | isl::map union_map::as_map() const |
20411 | { |
20412 | auto res = isl_union_map_as_map(umap: copy()); |
20413 | return manage(ptr: res); |
20414 | } |
20415 | |
20416 | isl::multi_union_pw_aff union_map::as_multi_union_pw_aff() const |
20417 | { |
20418 | auto res = isl_union_map_as_multi_union_pw_aff(umap: copy()); |
20419 | return manage(ptr: res); |
20420 | } |
20421 | |
20422 | isl::union_pw_multi_aff union_map::as_union_pw_multi_aff() const |
20423 | { |
20424 | auto res = isl_union_map_as_union_pw_multi_aff(umap: copy()); |
20425 | return manage(ptr: res); |
20426 | } |
20427 | |
20428 | isl::union_set union_map::bind_range(isl::multi_id tuple) const |
20429 | { |
20430 | auto res = isl_union_map_bind_range(umap: copy(), tuple: tuple.release()); |
20431 | return manage(ptr: res); |
20432 | } |
20433 | |
20434 | isl::union_map union_map::coalesce() const |
20435 | { |
20436 | auto res = isl_union_map_coalesce(umap: copy()); |
20437 | return manage(ptr: res); |
20438 | } |
20439 | |
20440 | isl::union_map union_map::compute_divs() const |
20441 | { |
20442 | auto res = isl_union_map_compute_divs(umap: copy()); |
20443 | return manage(ptr: res); |
20444 | } |
20445 | |
20446 | isl::union_map union_map::curry() const |
20447 | { |
20448 | auto res = isl_union_map_curry(umap: copy()); |
20449 | return manage(ptr: res); |
20450 | } |
20451 | |
20452 | isl::union_set union_map::deltas() const |
20453 | { |
20454 | auto res = isl_union_map_deltas(umap: copy()); |
20455 | return manage(ptr: res); |
20456 | } |
20457 | |
20458 | isl::union_map union_map::detect_equalities() const |
20459 | { |
20460 | auto res = isl_union_map_detect_equalities(umap: copy()); |
20461 | return manage(ptr: res); |
20462 | } |
20463 | |
20464 | isl::union_set union_map::domain() const |
20465 | { |
20466 | auto res = isl_union_map_domain(umap: copy()); |
20467 | return manage(ptr: res); |
20468 | } |
20469 | |
20470 | isl::union_map union_map::domain_factor_domain() const |
20471 | { |
20472 | auto res = isl_union_map_domain_factor_domain(umap: copy()); |
20473 | return manage(ptr: res); |
20474 | } |
20475 | |
20476 | isl::union_map union_map::domain_factor_range() const |
20477 | { |
20478 | auto res = isl_union_map_domain_factor_range(umap: copy()); |
20479 | return manage(ptr: res); |
20480 | } |
20481 | |
20482 | isl::union_map union_map::domain_map() const |
20483 | { |
20484 | auto res = isl_union_map_domain_map(umap: copy()); |
20485 | return manage(ptr: res); |
20486 | } |
20487 | |
20488 | isl::union_pw_multi_aff union_map::domain_map_union_pw_multi_aff() const |
20489 | { |
20490 | auto res = isl_union_map_domain_map_union_pw_multi_aff(umap: copy()); |
20491 | return manage(ptr: res); |
20492 | } |
20493 | |
20494 | isl::union_map union_map::domain_product(isl::union_map umap2) const |
20495 | { |
20496 | auto res = isl_union_map_domain_product(umap1: copy(), umap2: umap2.release()); |
20497 | return manage(ptr: res); |
20498 | } |
20499 | |
20500 | isl::union_map union_map::empty(isl::ctx ctx) |
20501 | { |
20502 | auto res = isl_union_map_empty_ctx(ctx: ctx.release()); |
20503 | return manage(ptr: res); |
20504 | } |
20505 | |
20506 | isl::union_map union_map::eq_at(isl::multi_union_pw_aff mupa) const |
20507 | { |
20508 | auto res = isl_union_map_eq_at_multi_union_pw_aff(umap: copy(), mupa: mupa.release()); |
20509 | return manage(ptr: res); |
20510 | } |
20511 | |
20512 | boolean union_map::every_map(const std::function<boolean(isl::map)> &test) const |
20513 | { |
20514 | struct test_data { |
20515 | std::function<boolean(isl::map)> func; |
20516 | } test_data = { .func: test }; |
20517 | auto test_lambda = [](isl_map *arg_0, void *arg_1) -> isl_bool { |
20518 | auto *data = static_cast<struct test_data *>(arg_1); |
20519 | auto ret = (data->func)(manage_copy(ptr: arg_0)); |
20520 | return ret.release(); |
20521 | }; |
20522 | auto res = isl_union_map_every_map(umap: get(), test: test_lambda, user: &test_data); |
20523 | return manage(val: res); |
20524 | } |
20525 | |
20526 | isl::map union_map::(isl::space space) const |
20527 | { |
20528 | auto res = isl_union_map_extract_map(umap: get(), space: space.release()); |
20529 | return manage(ptr: res); |
20530 | } |
20531 | |
20532 | isl::union_map union_map::factor_domain() const |
20533 | { |
20534 | auto res = isl_union_map_factor_domain(umap: copy()); |
20535 | return manage(ptr: res); |
20536 | } |
20537 | |
20538 | isl::union_map union_map::factor_range() const |
20539 | { |
20540 | auto res = isl_union_map_factor_range(umap: copy()); |
20541 | return manage(ptr: res); |
20542 | } |
20543 | |
20544 | isl::union_map union_map::fixed_power(isl::val exp) const |
20545 | { |
20546 | auto res = isl_union_map_fixed_power_val(umap: copy(), exp: exp.release()); |
20547 | return manage(ptr: res); |
20548 | } |
20549 | |
20550 | isl::union_map union_map::fixed_power(long exp) const |
20551 | { |
20552 | return this->fixed_power(exp: isl::val(ctx(), exp)); |
20553 | } |
20554 | |
20555 | isl::union_map union_map::flat_range_product(isl::union_map umap2) const |
20556 | { |
20557 | auto res = isl_union_map_flat_range_product(umap1: copy(), umap2: umap2.release()); |
20558 | return manage(ptr: res); |
20559 | } |
20560 | |
20561 | stat union_map::foreach_map(const std::function<stat(isl::map)> &fn) const |
20562 | { |
20563 | struct fn_data { |
20564 | std::function<stat(isl::map)> func; |
20565 | } fn_data = { .func: fn }; |
20566 | auto fn_lambda = [](isl_map *arg_0, void *arg_1) -> isl_stat { |
20567 | auto *data = static_cast<struct fn_data *>(arg_1); |
20568 | auto ret = (data->func)(manage(ptr: arg_0)); |
20569 | return ret.release(); |
20570 | }; |
20571 | auto res = isl_union_map_foreach_map(umap: get(), fn: fn_lambda, user: &fn_data); |
20572 | return manage(val: res); |
20573 | } |
20574 | |
20575 | isl::union_map union_map::from(isl::multi_union_pw_aff mupa) |
20576 | { |
20577 | auto res = isl_union_map_from_multi_union_pw_aff(mupa: mupa.release()); |
20578 | return manage(ptr: res); |
20579 | } |
20580 | |
20581 | isl::union_map union_map::from(isl::union_pw_multi_aff upma) |
20582 | { |
20583 | auto res = isl_union_map_from_union_pw_multi_aff(upma: upma.release()); |
20584 | return manage(ptr: res); |
20585 | } |
20586 | |
20587 | isl::union_map union_map::from_domain(isl::union_set uset) |
20588 | { |
20589 | auto res = isl_union_map_from_domain(uset: uset.release()); |
20590 | return manage(ptr: res); |
20591 | } |
20592 | |
20593 | isl::union_map union_map::from_domain_and_range(isl::union_set domain, isl::union_set range) |
20594 | { |
20595 | auto res = isl_union_map_from_domain_and_range(domain: domain.release(), range: range.release()); |
20596 | return manage(ptr: res); |
20597 | } |
20598 | |
20599 | isl::union_map union_map::from_range(isl::union_set uset) |
20600 | { |
20601 | auto res = isl_union_map_from_range(uset: uset.release()); |
20602 | return manage(ptr: res); |
20603 | } |
20604 | |
20605 | isl::union_map union_map::gist(isl::union_map context) const |
20606 | { |
20607 | auto res = isl_union_map_gist(umap: copy(), context: context.release()); |
20608 | return manage(ptr: res); |
20609 | } |
20610 | |
20611 | isl::union_map union_map::gist_domain(isl::union_set uset) const |
20612 | { |
20613 | auto res = isl_union_map_gist_domain(umap: copy(), uset: uset.release()); |
20614 | return manage(ptr: res); |
20615 | } |
20616 | |
20617 | isl::union_map union_map::gist_params(isl::set set) const |
20618 | { |
20619 | auto res = isl_union_map_gist_params(umap: copy(), set: set.release()); |
20620 | return manage(ptr: res); |
20621 | } |
20622 | |
20623 | isl::union_map union_map::gist_range(isl::union_set uset) const |
20624 | { |
20625 | auto res = isl_union_map_gist_range(umap: copy(), uset: uset.release()); |
20626 | return manage(ptr: res); |
20627 | } |
20628 | |
20629 | isl::union_map union_map::intersect(isl::union_map umap2) const |
20630 | { |
20631 | auto res = isl_union_map_intersect(umap1: copy(), umap2: umap2.release()); |
20632 | return manage(ptr: res); |
20633 | } |
20634 | |
20635 | isl::union_map union_map::intersect_domain(isl::space space) const |
20636 | { |
20637 | auto res = isl_union_map_intersect_domain_space(umap: copy(), space: space.release()); |
20638 | return manage(ptr: res); |
20639 | } |
20640 | |
20641 | isl::union_map union_map::intersect_domain(isl::union_set uset) const |
20642 | { |
20643 | auto res = isl_union_map_intersect_domain_union_set(umap: copy(), uset: uset.release()); |
20644 | return manage(ptr: res); |
20645 | } |
20646 | |
20647 | isl::union_map union_map::intersect_domain_factor_domain(isl::union_map factor) const |
20648 | { |
20649 | auto res = isl_union_map_intersect_domain_factor_domain(umap: copy(), factor: factor.release()); |
20650 | return manage(ptr: res); |
20651 | } |
20652 | |
20653 | isl::union_map union_map::intersect_domain_factor_range(isl::union_map factor) const |
20654 | { |
20655 | auto res = isl_union_map_intersect_domain_factor_range(umap: copy(), factor: factor.release()); |
20656 | return manage(ptr: res); |
20657 | } |
20658 | |
20659 | isl::union_map union_map::intersect_params(isl::set set) const |
20660 | { |
20661 | auto res = isl_union_map_intersect_params(umap: copy(), set: set.release()); |
20662 | return manage(ptr: res); |
20663 | } |
20664 | |
20665 | isl::union_map union_map::intersect_range(isl::space space) const |
20666 | { |
20667 | auto res = isl_union_map_intersect_range_space(umap: copy(), space: space.release()); |
20668 | return manage(ptr: res); |
20669 | } |
20670 | |
20671 | isl::union_map union_map::intersect_range(isl::union_set uset) const |
20672 | { |
20673 | auto res = isl_union_map_intersect_range_union_set(umap: copy(), uset: uset.release()); |
20674 | return manage(ptr: res); |
20675 | } |
20676 | |
20677 | isl::union_map union_map::intersect_range_factor_domain(isl::union_map factor) const |
20678 | { |
20679 | auto res = isl_union_map_intersect_range_factor_domain(umap: copy(), factor: factor.release()); |
20680 | return manage(ptr: res); |
20681 | } |
20682 | |
20683 | isl::union_map union_map::intersect_range_factor_range(isl::union_map factor) const |
20684 | { |
20685 | auto res = isl_union_map_intersect_range_factor_range(umap: copy(), factor: factor.release()); |
20686 | return manage(ptr: res); |
20687 | } |
20688 | |
20689 | boolean union_map::is_bijective() const |
20690 | { |
20691 | auto res = isl_union_map_is_bijective(umap: get()); |
20692 | return manage(val: res); |
20693 | } |
20694 | |
20695 | boolean union_map::is_disjoint(const isl::union_map &umap2) const |
20696 | { |
20697 | auto res = isl_union_map_is_disjoint(umap1: get(), umap2: umap2.get()); |
20698 | return manage(val: res); |
20699 | } |
20700 | |
20701 | boolean union_map::is_empty() const |
20702 | { |
20703 | auto res = isl_union_map_is_empty(umap: get()); |
20704 | return manage(val: res); |
20705 | } |
20706 | |
20707 | boolean union_map::is_equal(const isl::union_map &umap2) const |
20708 | { |
20709 | auto res = isl_union_map_is_equal(umap1: get(), umap2: umap2.get()); |
20710 | return manage(val: res); |
20711 | } |
20712 | |
20713 | boolean union_map::is_injective() const |
20714 | { |
20715 | auto res = isl_union_map_is_injective(umap: get()); |
20716 | return manage(val: res); |
20717 | } |
20718 | |
20719 | boolean union_map::is_single_valued() const |
20720 | { |
20721 | auto res = isl_union_map_is_single_valued(umap: get()); |
20722 | return manage(val: res); |
20723 | } |
20724 | |
20725 | boolean union_map::is_strict_subset(const isl::union_map &umap2) const |
20726 | { |
20727 | auto res = isl_union_map_is_strict_subset(umap1: get(), umap2: umap2.get()); |
20728 | return manage(val: res); |
20729 | } |
20730 | |
20731 | boolean union_map::is_subset(const isl::union_map &umap2) const |
20732 | { |
20733 | auto res = isl_union_map_is_subset(umap1: get(), umap2: umap2.get()); |
20734 | return manage(val: res); |
20735 | } |
20736 | |
20737 | boolean union_map::isa_map() const |
20738 | { |
20739 | auto res = isl_union_map_isa_map(umap: get()); |
20740 | return manage(val: res); |
20741 | } |
20742 | |
20743 | isl::union_map union_map::lexmax() const |
20744 | { |
20745 | auto res = isl_union_map_lexmax(umap: copy()); |
20746 | return manage(ptr: res); |
20747 | } |
20748 | |
20749 | isl::union_map union_map::lexmin() const |
20750 | { |
20751 | auto res = isl_union_map_lexmin(umap: copy()); |
20752 | return manage(ptr: res); |
20753 | } |
20754 | |
20755 | isl::map_list union_map::map_list() const |
20756 | { |
20757 | auto res = isl_union_map_get_map_list(umap: get()); |
20758 | return manage(ptr: res); |
20759 | } |
20760 | |
20761 | isl::map_list union_map::get_map_list() const |
20762 | { |
20763 | return map_list(); |
20764 | } |
20765 | |
20766 | isl::set union_map::params() const |
20767 | { |
20768 | auto res = isl_union_map_params(umap: copy()); |
20769 | return manage(ptr: res); |
20770 | } |
20771 | |
20772 | isl::union_map union_map::polyhedral_hull() const |
20773 | { |
20774 | auto res = isl_union_map_polyhedral_hull(umap: copy()); |
20775 | return manage(ptr: res); |
20776 | } |
20777 | |
20778 | isl::union_map union_map::preimage_domain(isl::multi_aff ma) const |
20779 | { |
20780 | auto res = isl_union_map_preimage_domain_multi_aff(umap: copy(), ma: ma.release()); |
20781 | return manage(ptr: res); |
20782 | } |
20783 | |
20784 | isl::union_map union_map::preimage_domain(isl::multi_pw_aff mpa) const |
20785 | { |
20786 | auto res = isl_union_map_preimage_domain_multi_pw_aff(umap: copy(), mpa: mpa.release()); |
20787 | return manage(ptr: res); |
20788 | } |
20789 | |
20790 | isl::union_map union_map::preimage_domain(isl::pw_multi_aff pma) const |
20791 | { |
20792 | auto res = isl_union_map_preimage_domain_pw_multi_aff(umap: copy(), pma: pma.release()); |
20793 | return manage(ptr: res); |
20794 | } |
20795 | |
20796 | isl::union_map union_map::preimage_domain(isl::union_pw_multi_aff upma) const |
20797 | { |
20798 | auto res = isl_union_map_preimage_domain_union_pw_multi_aff(umap: copy(), upma: upma.release()); |
20799 | return manage(ptr: res); |
20800 | } |
20801 | |
20802 | isl::union_map union_map::preimage_range(isl::multi_aff ma) const |
20803 | { |
20804 | auto res = isl_union_map_preimage_range_multi_aff(umap: copy(), ma: ma.release()); |
20805 | return manage(ptr: res); |
20806 | } |
20807 | |
20808 | isl::union_map union_map::preimage_range(isl::pw_multi_aff pma) const |
20809 | { |
20810 | auto res = isl_union_map_preimage_range_pw_multi_aff(umap: copy(), pma: pma.release()); |
20811 | return manage(ptr: res); |
20812 | } |
20813 | |
20814 | isl::union_map union_map::preimage_range(isl::union_pw_multi_aff upma) const |
20815 | { |
20816 | auto res = isl_union_map_preimage_range_union_pw_multi_aff(umap: copy(), upma: upma.release()); |
20817 | return manage(ptr: res); |
20818 | } |
20819 | |
20820 | isl::union_map union_map::product(isl::union_map umap2) const |
20821 | { |
20822 | auto res = isl_union_map_product(umap1: copy(), umap2: umap2.release()); |
20823 | return manage(ptr: res); |
20824 | } |
20825 | |
20826 | isl::union_map union_map::project_out_all_params() const |
20827 | { |
20828 | auto res = isl_union_map_project_out_all_params(umap: copy()); |
20829 | return manage(ptr: res); |
20830 | } |
20831 | |
20832 | isl::union_set union_map::range() const |
20833 | { |
20834 | auto res = isl_union_map_range(umap: copy()); |
20835 | return manage(ptr: res); |
20836 | } |
20837 | |
20838 | isl::union_map union_map::range_factor_domain() const |
20839 | { |
20840 | auto res = isl_union_map_range_factor_domain(umap: copy()); |
20841 | return manage(ptr: res); |
20842 | } |
20843 | |
20844 | isl::union_map union_map::range_factor_range() const |
20845 | { |
20846 | auto res = isl_union_map_range_factor_range(umap: copy()); |
20847 | return manage(ptr: res); |
20848 | } |
20849 | |
20850 | isl::union_map union_map::range_map() const |
20851 | { |
20852 | auto res = isl_union_map_range_map(umap: copy()); |
20853 | return manage(ptr: res); |
20854 | } |
20855 | |
20856 | isl::union_map union_map::range_product(isl::union_map umap2) const |
20857 | { |
20858 | auto res = isl_union_map_range_product(umap1: copy(), umap2: umap2.release()); |
20859 | return manage(ptr: res); |
20860 | } |
20861 | |
20862 | isl::union_map union_map::range_reverse() const |
20863 | { |
20864 | auto res = isl_union_map_range_reverse(umap: copy()); |
20865 | return manage(ptr: res); |
20866 | } |
20867 | |
20868 | isl::union_map union_map::reverse() const |
20869 | { |
20870 | auto res = isl_union_map_reverse(umap: copy()); |
20871 | return manage(ptr: res); |
20872 | } |
20873 | |
20874 | isl::space union_map::space() const |
20875 | { |
20876 | auto res = isl_union_map_get_space(umap: get()); |
20877 | return manage(ptr: res); |
20878 | } |
20879 | |
20880 | isl::space union_map::get_space() const |
20881 | { |
20882 | return space(); |
20883 | } |
20884 | |
20885 | isl::union_map union_map::subtract(isl::union_map umap2) const |
20886 | { |
20887 | auto res = isl_union_map_subtract(umap1: copy(), umap2: umap2.release()); |
20888 | return manage(ptr: res); |
20889 | } |
20890 | |
20891 | isl::union_map union_map::subtract_domain(isl::union_set dom) const |
20892 | { |
20893 | auto res = isl_union_map_subtract_domain(umap: copy(), dom: dom.release()); |
20894 | return manage(ptr: res); |
20895 | } |
20896 | |
20897 | isl::union_map union_map::subtract_range(isl::union_set dom) const |
20898 | { |
20899 | auto res = isl_union_map_subtract_range(umap: copy(), dom: dom.release()); |
20900 | return manage(ptr: res); |
20901 | } |
20902 | |
20903 | isl::union_map union_map::uncurry() const |
20904 | { |
20905 | auto res = isl_union_map_uncurry(umap: copy()); |
20906 | return manage(ptr: res); |
20907 | } |
20908 | |
20909 | isl::union_map union_map::unite(isl::union_map umap2) const |
20910 | { |
20911 | auto res = isl_union_map_union(umap1: copy(), umap2: umap2.release()); |
20912 | return manage(ptr: res); |
20913 | } |
20914 | |
20915 | isl::union_map union_map::universe() const |
20916 | { |
20917 | auto res = isl_union_map_universe(umap: copy()); |
20918 | return manage(ptr: res); |
20919 | } |
20920 | |
20921 | isl::union_set union_map::wrap() const |
20922 | { |
20923 | auto res = isl_union_map_wrap(umap: copy()); |
20924 | return manage(ptr: res); |
20925 | } |
20926 | |
20927 | isl::union_map union_map::zip() const |
20928 | { |
20929 | auto res = isl_union_map_zip(umap: copy()); |
20930 | return manage(ptr: res); |
20931 | } |
20932 | |
20933 | inline std::ostream &operator<<(std::ostream &os, const union_map &obj) |
20934 | { |
20935 | char *str = isl_union_map_to_str(umap: obj.get()); |
20936 | if (!str) { |
20937 | os.setstate(std::ios_base::badbit); |
20938 | return os; |
20939 | } |
20940 | os << str; |
20941 | free(ptr: str); |
20942 | return os; |
20943 | } |
20944 | |
20945 | // implementations for isl::union_pw_aff |
20946 | union_pw_aff manage(__isl_take isl_union_pw_aff *ptr) { |
20947 | return union_pw_aff(ptr); |
20948 | } |
20949 | union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr) { |
20950 | ptr = isl_union_pw_aff_copy(upa: ptr); |
20951 | return union_pw_aff(ptr); |
20952 | } |
20953 | |
20954 | union_pw_aff::union_pw_aff() |
20955 | : ptr(nullptr) {} |
20956 | |
20957 | union_pw_aff::union_pw_aff(const union_pw_aff &obj) |
20958 | : ptr(nullptr) |
20959 | { |
20960 | ptr = obj.copy(); |
20961 | } |
20962 | |
20963 | union_pw_aff::union_pw_aff(__isl_take isl_union_pw_aff *ptr) |
20964 | : ptr(ptr) {} |
20965 | |
20966 | union_pw_aff::union_pw_aff(isl::aff aff) |
20967 | { |
20968 | auto res = isl_union_pw_aff_from_aff(aff: aff.release()); |
20969 | ptr = res; |
20970 | } |
20971 | |
20972 | union_pw_aff::union_pw_aff(isl::pw_aff pa) |
20973 | { |
20974 | auto res = isl_union_pw_aff_from_pw_aff(pa: pa.release()); |
20975 | ptr = res; |
20976 | } |
20977 | |
20978 | union_pw_aff::union_pw_aff(isl::ctx ctx, const std::string &str) |
20979 | { |
20980 | auto res = isl_union_pw_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
20981 | ptr = res; |
20982 | } |
20983 | |
20984 | union_pw_aff::union_pw_aff(isl::union_set domain, isl::val v) |
20985 | { |
20986 | auto res = isl_union_pw_aff_val_on_domain(domain: domain.release(), v: v.release()); |
20987 | ptr = res; |
20988 | } |
20989 | |
20990 | union_pw_aff &union_pw_aff::operator=(union_pw_aff obj) { |
20991 | std::swap(a&: this->ptr, b&: obj.ptr); |
20992 | return *this; |
20993 | } |
20994 | |
20995 | union_pw_aff::~union_pw_aff() { |
20996 | if (ptr) |
20997 | isl_union_pw_aff_free(upa: ptr); |
20998 | } |
20999 | |
21000 | __isl_give isl_union_pw_aff *union_pw_aff::copy() const & { |
21001 | return isl_union_pw_aff_copy(upa: ptr); |
21002 | } |
21003 | |
21004 | __isl_keep isl_union_pw_aff *union_pw_aff::get() const { |
21005 | return ptr; |
21006 | } |
21007 | |
21008 | __isl_give isl_union_pw_aff *union_pw_aff::release() { |
21009 | isl_union_pw_aff *tmp = ptr; |
21010 | ptr = nullptr; |
21011 | return tmp; |
21012 | } |
21013 | |
21014 | bool union_pw_aff::is_null() const { |
21015 | return ptr == nullptr; |
21016 | } |
21017 | |
21018 | isl::ctx union_pw_aff::ctx() const { |
21019 | return isl::ctx(isl_union_pw_aff_get_ctx(upa: ptr)); |
21020 | } |
21021 | |
21022 | isl::multi_union_pw_aff union_pw_aff::add(const isl::multi_union_pw_aff &multi2) const |
21023 | { |
21024 | return isl::multi_union_pw_aff(*this).add(multi2); |
21025 | } |
21026 | |
21027 | isl::union_pw_aff union_pw_aff::add(isl::union_pw_aff upa2) const |
21028 | { |
21029 | auto res = isl_union_pw_aff_add(upa1: copy(), upa2: upa2.release()); |
21030 | return manage(ptr: res); |
21031 | } |
21032 | |
21033 | isl::union_pw_multi_aff union_pw_aff::add(const isl::union_pw_multi_aff &upma2) const |
21034 | { |
21035 | return isl::union_pw_multi_aff(*this).add(upma2); |
21036 | } |
21037 | |
21038 | isl::union_pw_aff union_pw_aff::add(const isl::aff &upa2) const |
21039 | { |
21040 | return this->add(upa2: isl::union_pw_aff(upa2)); |
21041 | } |
21042 | |
21043 | isl::union_pw_aff union_pw_aff::add(const isl::pw_aff &upa2) const |
21044 | { |
21045 | return this->add(upa2: isl::union_pw_aff(upa2)); |
21046 | } |
21047 | |
21048 | isl::union_pw_multi_aff union_pw_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const |
21049 | { |
21050 | return isl::union_pw_multi_aff(*this).add_pw_multi_aff(pma); |
21051 | } |
21052 | |
21053 | isl::union_pw_multi_aff union_pw_aff::apply(const isl::union_pw_multi_aff &upma2) const |
21054 | { |
21055 | return isl::union_pw_multi_aff(*this).apply(upma2); |
21056 | } |
21057 | |
21058 | isl::multi_union_pw_aff union_pw_aff::as_multi_union_pw_aff() const |
21059 | { |
21060 | return isl::union_pw_multi_aff(*this).as_multi_union_pw_aff(); |
21061 | } |
21062 | |
21063 | isl::pw_multi_aff union_pw_aff::as_pw_multi_aff() const |
21064 | { |
21065 | return isl::union_pw_multi_aff(*this).as_pw_multi_aff(); |
21066 | } |
21067 | |
21068 | isl::union_map union_pw_aff::as_union_map() const |
21069 | { |
21070 | return isl::union_pw_multi_aff(*this).as_union_map(); |
21071 | } |
21072 | |
21073 | isl::union_pw_aff union_pw_aff::at(int pos) const |
21074 | { |
21075 | return isl::multi_union_pw_aff(*this).at(pos); |
21076 | } |
21077 | |
21078 | isl::union_set union_pw_aff::bind(const isl::multi_id &tuple) const |
21079 | { |
21080 | return isl::multi_union_pw_aff(*this).bind(tuple); |
21081 | } |
21082 | |
21083 | isl::union_set union_pw_aff::bind(isl::id id) const |
21084 | { |
21085 | auto res = isl_union_pw_aff_bind_id(upa: copy(), id: id.release()); |
21086 | return manage(ptr: res); |
21087 | } |
21088 | |
21089 | isl::union_set union_pw_aff::bind(const std::string &id) const |
21090 | { |
21091 | return this->bind(id: isl::id(ctx(), id)); |
21092 | } |
21093 | |
21094 | isl::union_pw_aff union_pw_aff::coalesce() const |
21095 | { |
21096 | auto res = isl_union_pw_aff_coalesce(upa: copy()); |
21097 | return manage(ptr: res); |
21098 | } |
21099 | |
21100 | class size union_pw_aff::dim(isl::dim type) const |
21101 | { |
21102 | return isl::multi_union_pw_aff(*this).dim(type); |
21103 | } |
21104 | |
21105 | isl::union_set union_pw_aff::domain() const |
21106 | { |
21107 | auto res = isl_union_pw_aff_domain(upa: copy()); |
21108 | return manage(ptr: res); |
21109 | } |
21110 | |
21111 | isl::union_pw_aff union_pw_aff::empty(isl::space space) |
21112 | { |
21113 | auto res = isl_union_pw_aff_empty(space: space.release()); |
21114 | return manage(ptr: res); |
21115 | } |
21116 | |
21117 | isl::pw_multi_aff union_pw_aff::(const isl::space &space) const |
21118 | { |
21119 | return isl::union_pw_multi_aff(*this).extract_pw_multi_aff(space); |
21120 | } |
21121 | |
21122 | isl::multi_union_pw_aff union_pw_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const |
21123 | { |
21124 | return isl::multi_union_pw_aff(*this).flat_range_product(multi2); |
21125 | } |
21126 | |
21127 | isl::union_pw_multi_aff union_pw_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const |
21128 | { |
21129 | return isl::union_pw_multi_aff(*this).flat_range_product(upma2); |
21130 | } |
21131 | |
21132 | stat union_pw_aff::foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const |
21133 | { |
21134 | struct fn_data { |
21135 | std::function<stat(isl::pw_aff)> func; |
21136 | } fn_data = { .func: fn }; |
21137 | auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat { |
21138 | auto *data = static_cast<struct fn_data *>(arg_1); |
21139 | auto ret = (data->func)(manage(ptr: arg_0)); |
21140 | return ret.release(); |
21141 | }; |
21142 | auto res = isl_union_pw_aff_foreach_pw_aff(upa: get(), fn: fn_lambda, user: &fn_data); |
21143 | return manage(val: res); |
21144 | } |
21145 | |
21146 | isl::union_pw_aff union_pw_aff::gist(isl::union_set context) const |
21147 | { |
21148 | auto res = isl_union_pw_aff_gist(upa: copy(), context: context.release()); |
21149 | return manage(ptr: res); |
21150 | } |
21151 | |
21152 | boolean union_pw_aff::has_range_tuple_id() const |
21153 | { |
21154 | return isl::multi_union_pw_aff(*this).has_range_tuple_id(); |
21155 | } |
21156 | |
21157 | isl::union_pw_aff union_pw_aff::intersect_domain(isl::space space) const |
21158 | { |
21159 | auto res = isl_union_pw_aff_intersect_domain_space(upa: copy(), space: space.release()); |
21160 | return manage(ptr: res); |
21161 | } |
21162 | |
21163 | isl::union_pw_aff union_pw_aff::intersect_domain(isl::union_set uset) const |
21164 | { |
21165 | auto res = isl_union_pw_aff_intersect_domain_union_set(upa: copy(), uset: uset.release()); |
21166 | return manage(ptr: res); |
21167 | } |
21168 | |
21169 | isl::union_pw_aff union_pw_aff::intersect_domain_wrapped_domain(isl::union_set uset) const |
21170 | { |
21171 | auto res = isl_union_pw_aff_intersect_domain_wrapped_domain(upa: copy(), uset: uset.release()); |
21172 | return manage(ptr: res); |
21173 | } |
21174 | |
21175 | isl::union_pw_aff union_pw_aff::intersect_domain_wrapped_range(isl::union_set uset) const |
21176 | { |
21177 | auto res = isl_union_pw_aff_intersect_domain_wrapped_range(upa: copy(), uset: uset.release()); |
21178 | return manage(ptr: res); |
21179 | } |
21180 | |
21181 | isl::union_pw_aff union_pw_aff::intersect_params(isl::set set) const |
21182 | { |
21183 | auto res = isl_union_pw_aff_intersect_params(upa: copy(), set: set.release()); |
21184 | return manage(ptr: res); |
21185 | } |
21186 | |
21187 | boolean union_pw_aff::involves_locals() const |
21188 | { |
21189 | return isl::union_pw_multi_aff(*this).involves_locals(); |
21190 | } |
21191 | |
21192 | boolean union_pw_aff::involves_nan() const |
21193 | { |
21194 | return isl::multi_union_pw_aff(*this).involves_nan(); |
21195 | } |
21196 | |
21197 | boolean union_pw_aff::isa_pw_multi_aff() const |
21198 | { |
21199 | return isl::union_pw_multi_aff(*this).isa_pw_multi_aff(); |
21200 | } |
21201 | |
21202 | isl::union_pw_aff_list union_pw_aff::list() const |
21203 | { |
21204 | return isl::multi_union_pw_aff(*this).list(); |
21205 | } |
21206 | |
21207 | isl::multi_union_pw_aff union_pw_aff::neg() const |
21208 | { |
21209 | return isl::multi_union_pw_aff(*this).neg(); |
21210 | } |
21211 | |
21212 | boolean union_pw_aff::plain_is_empty() const |
21213 | { |
21214 | return isl::union_pw_multi_aff(*this).plain_is_empty(); |
21215 | } |
21216 | |
21217 | boolean union_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const |
21218 | { |
21219 | return isl::multi_union_pw_aff(*this).plain_is_equal(multi2); |
21220 | } |
21221 | |
21222 | isl::union_pw_multi_aff union_pw_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const |
21223 | { |
21224 | return isl::union_pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2); |
21225 | } |
21226 | |
21227 | isl::union_pw_aff union_pw_aff::pullback(isl::union_pw_multi_aff upma) const |
21228 | { |
21229 | auto res = isl_union_pw_aff_pullback_union_pw_multi_aff(upa: copy(), upma: upma.release()); |
21230 | return manage(ptr: res); |
21231 | } |
21232 | |
21233 | isl::pw_multi_aff_list union_pw_aff::pw_multi_aff_list() const |
21234 | { |
21235 | return isl::union_pw_multi_aff(*this).pw_multi_aff_list(); |
21236 | } |
21237 | |
21238 | isl::union_pw_multi_aff union_pw_aff::range_factor_domain() const |
21239 | { |
21240 | return isl::union_pw_multi_aff(*this).range_factor_domain(); |
21241 | } |
21242 | |
21243 | isl::union_pw_multi_aff union_pw_aff::range_factor_range() const |
21244 | { |
21245 | return isl::union_pw_multi_aff(*this).range_factor_range(); |
21246 | } |
21247 | |
21248 | isl::multi_union_pw_aff union_pw_aff::range_product(const isl::multi_union_pw_aff &multi2) const |
21249 | { |
21250 | return isl::multi_union_pw_aff(*this).range_product(multi2); |
21251 | } |
21252 | |
21253 | isl::union_pw_multi_aff union_pw_aff::range_product(const isl::union_pw_multi_aff &upma2) const |
21254 | { |
21255 | return isl::union_pw_multi_aff(*this).range_product(upma2); |
21256 | } |
21257 | |
21258 | isl::id union_pw_aff::range_tuple_id() const |
21259 | { |
21260 | return isl::multi_union_pw_aff(*this).range_tuple_id(); |
21261 | } |
21262 | |
21263 | isl::multi_union_pw_aff union_pw_aff::reset_range_tuple_id() const |
21264 | { |
21265 | return isl::multi_union_pw_aff(*this).reset_range_tuple_id(); |
21266 | } |
21267 | |
21268 | isl::multi_union_pw_aff union_pw_aff::reset_tuple_id(isl::dim type) const |
21269 | { |
21270 | return isl::multi_union_pw_aff(*this).reset_tuple_id(type); |
21271 | } |
21272 | |
21273 | isl::multi_union_pw_aff union_pw_aff::scale(const isl::multi_val &mv) const |
21274 | { |
21275 | return isl::multi_union_pw_aff(*this).scale(mv); |
21276 | } |
21277 | |
21278 | isl::multi_union_pw_aff union_pw_aff::scale(const isl::val &v) const |
21279 | { |
21280 | return isl::multi_union_pw_aff(*this).scale(v); |
21281 | } |
21282 | |
21283 | isl::multi_union_pw_aff union_pw_aff::scale(long v) const |
21284 | { |
21285 | return this->scale(v: isl::val(ctx(), v)); |
21286 | } |
21287 | |
21288 | isl::multi_union_pw_aff union_pw_aff::scale_down(const isl::multi_val &mv) const |
21289 | { |
21290 | return isl::multi_union_pw_aff(*this).scale_down(mv); |
21291 | } |
21292 | |
21293 | isl::multi_union_pw_aff union_pw_aff::scale_down(const isl::val &v) const |
21294 | { |
21295 | return isl::multi_union_pw_aff(*this).scale_down(v); |
21296 | } |
21297 | |
21298 | isl::multi_union_pw_aff union_pw_aff::scale_down(long v) const |
21299 | { |
21300 | return this->scale_down(v: isl::val(ctx(), v)); |
21301 | } |
21302 | |
21303 | isl::multi_union_pw_aff union_pw_aff::set_at(int pos, const isl::union_pw_aff &el) const |
21304 | { |
21305 | return isl::multi_union_pw_aff(*this).set_at(pos, el); |
21306 | } |
21307 | |
21308 | isl::multi_union_pw_aff union_pw_aff::set_range_tuple(const isl::id &id) const |
21309 | { |
21310 | return isl::multi_union_pw_aff(*this).set_range_tuple(id); |
21311 | } |
21312 | |
21313 | isl::multi_union_pw_aff union_pw_aff::set_range_tuple(const std::string &id) const |
21314 | { |
21315 | return this->set_range_tuple(isl::id(ctx(), id)); |
21316 | } |
21317 | |
21318 | isl::multi_union_pw_aff union_pw_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const |
21319 | { |
21320 | return isl::multi_union_pw_aff(*this).set_union_pw_aff(pos, el); |
21321 | } |
21322 | |
21323 | class size union_pw_aff::size() const |
21324 | { |
21325 | return isl::multi_union_pw_aff(*this).size(); |
21326 | } |
21327 | |
21328 | isl::space union_pw_aff::space() const |
21329 | { |
21330 | auto res = isl_union_pw_aff_get_space(upa: get()); |
21331 | return manage(ptr: res); |
21332 | } |
21333 | |
21334 | isl::space union_pw_aff::get_space() const |
21335 | { |
21336 | return space(); |
21337 | } |
21338 | |
21339 | isl::multi_union_pw_aff union_pw_aff::sub(const isl::multi_union_pw_aff &multi2) const |
21340 | { |
21341 | return isl::multi_union_pw_aff(*this).sub(multi2); |
21342 | } |
21343 | |
21344 | isl::union_pw_aff union_pw_aff::sub(isl::union_pw_aff upa2) const |
21345 | { |
21346 | auto res = isl_union_pw_aff_sub(upa1: copy(), upa2: upa2.release()); |
21347 | return manage(ptr: res); |
21348 | } |
21349 | |
21350 | isl::union_pw_multi_aff union_pw_aff::sub(const isl::union_pw_multi_aff &upma2) const |
21351 | { |
21352 | return isl::union_pw_multi_aff(*this).sub(upma2); |
21353 | } |
21354 | |
21355 | isl::union_pw_aff union_pw_aff::sub(const isl::aff &upa2) const |
21356 | { |
21357 | return this->sub(upa2: isl::union_pw_aff(upa2)); |
21358 | } |
21359 | |
21360 | isl::union_pw_aff union_pw_aff::sub(const isl::pw_aff &upa2) const |
21361 | { |
21362 | return this->sub(upa2: isl::union_pw_aff(upa2)); |
21363 | } |
21364 | |
21365 | isl::union_pw_aff union_pw_aff::subtract_domain(isl::space space) const |
21366 | { |
21367 | auto res = isl_union_pw_aff_subtract_domain_space(upa: copy(), space: space.release()); |
21368 | return manage(ptr: res); |
21369 | } |
21370 | |
21371 | isl::union_pw_aff union_pw_aff::subtract_domain(isl::union_set uset) const |
21372 | { |
21373 | auto res = isl_union_pw_aff_subtract_domain_union_set(upa: copy(), uset: uset.release()); |
21374 | return manage(ptr: res); |
21375 | } |
21376 | |
21377 | isl::union_pw_aff_list union_pw_aff::to_list() const |
21378 | { |
21379 | auto res = isl_union_pw_aff_to_list(el: copy()); |
21380 | return manage(ptr: res); |
21381 | } |
21382 | |
21383 | isl::multi_union_pw_aff union_pw_aff::union_add(const isl::multi_union_pw_aff &mupa2) const |
21384 | { |
21385 | return isl::multi_union_pw_aff(*this).union_add(mupa2); |
21386 | } |
21387 | |
21388 | isl::union_pw_aff union_pw_aff::union_add(isl::union_pw_aff upa2) const |
21389 | { |
21390 | auto res = isl_union_pw_aff_union_add(upa1: copy(), upa2: upa2.release()); |
21391 | return manage(ptr: res); |
21392 | } |
21393 | |
21394 | isl::union_pw_multi_aff union_pw_aff::union_add(const isl::union_pw_multi_aff &upma2) const |
21395 | { |
21396 | return isl::union_pw_multi_aff(*this).union_add(upma2); |
21397 | } |
21398 | |
21399 | isl::union_pw_aff union_pw_aff::union_add(const isl::aff &upa2) const |
21400 | { |
21401 | return this->union_add(upa2: isl::union_pw_aff(upa2)); |
21402 | } |
21403 | |
21404 | isl::union_pw_aff union_pw_aff::union_add(const isl::pw_aff &upa2) const |
21405 | { |
21406 | return this->union_add(upa2: isl::union_pw_aff(upa2)); |
21407 | } |
21408 | |
21409 | inline std::ostream &operator<<(std::ostream &os, const union_pw_aff &obj) |
21410 | { |
21411 | char *str = isl_union_pw_aff_to_str(upa: obj.get()); |
21412 | if (!str) { |
21413 | os.setstate(std::ios_base::badbit); |
21414 | return os; |
21415 | } |
21416 | os << str; |
21417 | free(ptr: str); |
21418 | return os; |
21419 | } |
21420 | |
21421 | // implementations for isl::union_pw_aff_list |
21422 | union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr) { |
21423 | return union_pw_aff_list(ptr); |
21424 | } |
21425 | union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr) { |
21426 | ptr = isl_union_pw_aff_list_copy(list: ptr); |
21427 | return union_pw_aff_list(ptr); |
21428 | } |
21429 | |
21430 | union_pw_aff_list::union_pw_aff_list() |
21431 | : ptr(nullptr) {} |
21432 | |
21433 | union_pw_aff_list::union_pw_aff_list(const union_pw_aff_list &obj) |
21434 | : ptr(nullptr) |
21435 | { |
21436 | ptr = obj.copy(); |
21437 | } |
21438 | |
21439 | union_pw_aff_list::union_pw_aff_list(__isl_take isl_union_pw_aff_list *ptr) |
21440 | : ptr(ptr) {} |
21441 | |
21442 | union_pw_aff_list::union_pw_aff_list(isl::ctx ctx, int n) |
21443 | { |
21444 | auto res = isl_union_pw_aff_list_alloc(ctx: ctx.release(), n); |
21445 | ptr = res; |
21446 | } |
21447 | |
21448 | union_pw_aff_list::union_pw_aff_list(isl::union_pw_aff el) |
21449 | { |
21450 | auto res = isl_union_pw_aff_list_from_union_pw_aff(el: el.release()); |
21451 | ptr = res; |
21452 | } |
21453 | |
21454 | union_pw_aff_list::union_pw_aff_list(isl::ctx ctx, const std::string &str) |
21455 | { |
21456 | auto res = isl_union_pw_aff_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
21457 | ptr = res; |
21458 | } |
21459 | |
21460 | union_pw_aff_list &union_pw_aff_list::operator=(union_pw_aff_list obj) { |
21461 | std::swap(a&: this->ptr, b&: obj.ptr); |
21462 | return *this; |
21463 | } |
21464 | |
21465 | union_pw_aff_list::~union_pw_aff_list() { |
21466 | if (ptr) |
21467 | isl_union_pw_aff_list_free(list: ptr); |
21468 | } |
21469 | |
21470 | __isl_give isl_union_pw_aff_list *union_pw_aff_list::copy() const & { |
21471 | return isl_union_pw_aff_list_copy(list: ptr); |
21472 | } |
21473 | |
21474 | __isl_keep isl_union_pw_aff_list *union_pw_aff_list::get() const { |
21475 | return ptr; |
21476 | } |
21477 | |
21478 | __isl_give isl_union_pw_aff_list *union_pw_aff_list::release() { |
21479 | isl_union_pw_aff_list *tmp = ptr; |
21480 | ptr = nullptr; |
21481 | return tmp; |
21482 | } |
21483 | |
21484 | bool union_pw_aff_list::is_null() const { |
21485 | return ptr == nullptr; |
21486 | } |
21487 | |
21488 | isl::ctx union_pw_aff_list::ctx() const { |
21489 | return isl::ctx(isl_union_pw_aff_list_get_ctx(list: ptr)); |
21490 | } |
21491 | |
21492 | isl::union_pw_aff_list union_pw_aff_list::add(isl::union_pw_aff el) const |
21493 | { |
21494 | auto res = isl_union_pw_aff_list_add(list: copy(), el: el.release()); |
21495 | return manage(ptr: res); |
21496 | } |
21497 | |
21498 | isl::union_pw_aff union_pw_aff_list::at(int index) const |
21499 | { |
21500 | auto res = isl_union_pw_aff_list_get_at(list: get(), index); |
21501 | return manage(ptr: res); |
21502 | } |
21503 | |
21504 | isl::union_pw_aff union_pw_aff_list::get_at(int index) const |
21505 | { |
21506 | return at(index); |
21507 | } |
21508 | |
21509 | isl::union_pw_aff_list union_pw_aff_list::clear() const |
21510 | { |
21511 | auto res = isl_union_pw_aff_list_clear(list: copy()); |
21512 | return manage(ptr: res); |
21513 | } |
21514 | |
21515 | isl::union_pw_aff_list union_pw_aff_list::concat(isl::union_pw_aff_list list2) const |
21516 | { |
21517 | auto res = isl_union_pw_aff_list_concat(list1: copy(), list2: list2.release()); |
21518 | return manage(ptr: res); |
21519 | } |
21520 | |
21521 | isl::union_pw_aff_list union_pw_aff_list::drop(unsigned int first, unsigned int n) const |
21522 | { |
21523 | auto res = isl_union_pw_aff_list_drop(list: copy(), first, n); |
21524 | return manage(ptr: res); |
21525 | } |
21526 | |
21527 | stat union_pw_aff_list::foreach(const std::function<stat(isl::union_pw_aff)> &fn) const |
21528 | { |
21529 | struct fn_data { |
21530 | std::function<stat(isl::union_pw_aff)> func; |
21531 | } fn_data = { .func: fn }; |
21532 | auto fn_lambda = [](isl_union_pw_aff *arg_0, void *arg_1) -> isl_stat { |
21533 | auto *data = static_cast<struct fn_data *>(arg_1); |
21534 | auto ret = (data->func)(manage(ptr: arg_0)); |
21535 | return ret.release(); |
21536 | }; |
21537 | auto res = isl_union_pw_aff_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
21538 | return manage(val: res); |
21539 | } |
21540 | |
21541 | isl::union_pw_aff_list union_pw_aff_list::insert(unsigned int pos, isl::union_pw_aff el) const |
21542 | { |
21543 | auto res = isl_union_pw_aff_list_insert(list: copy(), pos, el: el.release()); |
21544 | return manage(ptr: res); |
21545 | } |
21546 | |
21547 | class size union_pw_aff_list::size() const |
21548 | { |
21549 | auto res = isl_union_pw_aff_list_size(list: get()); |
21550 | return manage(val: res); |
21551 | } |
21552 | |
21553 | inline std::ostream &operator<<(std::ostream &os, const union_pw_aff_list &obj) |
21554 | { |
21555 | char *str = isl_union_pw_aff_list_to_str(list: obj.get()); |
21556 | if (!str) { |
21557 | os.setstate(std::ios_base::badbit); |
21558 | return os; |
21559 | } |
21560 | os << str; |
21561 | free(ptr: str); |
21562 | return os; |
21563 | } |
21564 | |
21565 | // implementations for isl::union_pw_multi_aff |
21566 | union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr) { |
21567 | return union_pw_multi_aff(ptr); |
21568 | } |
21569 | union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr) { |
21570 | ptr = isl_union_pw_multi_aff_copy(upma: ptr); |
21571 | return union_pw_multi_aff(ptr); |
21572 | } |
21573 | |
21574 | union_pw_multi_aff::union_pw_multi_aff() |
21575 | : ptr(nullptr) {} |
21576 | |
21577 | union_pw_multi_aff::union_pw_multi_aff(const union_pw_multi_aff &obj) |
21578 | : ptr(nullptr) |
21579 | { |
21580 | ptr = obj.copy(); |
21581 | } |
21582 | |
21583 | union_pw_multi_aff::union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *ptr) |
21584 | : ptr(ptr) {} |
21585 | |
21586 | union_pw_multi_aff::union_pw_multi_aff(isl::union_set uset) |
21587 | { |
21588 | auto res = isl_union_pw_multi_aff_from_domain(uset: uset.release()); |
21589 | ptr = res; |
21590 | } |
21591 | |
21592 | union_pw_multi_aff::union_pw_multi_aff(isl::multi_aff ma) |
21593 | { |
21594 | auto res = isl_union_pw_multi_aff_from_multi_aff(ma: ma.release()); |
21595 | ptr = res; |
21596 | } |
21597 | |
21598 | union_pw_multi_aff::union_pw_multi_aff(isl::pw_multi_aff pma) |
21599 | { |
21600 | auto res = isl_union_pw_multi_aff_from_pw_multi_aff(pma: pma.release()); |
21601 | ptr = res; |
21602 | } |
21603 | |
21604 | union_pw_multi_aff::union_pw_multi_aff(isl::union_map umap) |
21605 | { |
21606 | auto res = isl_union_pw_multi_aff_from_union_map(umap: umap.release()); |
21607 | ptr = res; |
21608 | } |
21609 | |
21610 | union_pw_multi_aff::union_pw_multi_aff(isl::union_pw_aff upa) |
21611 | { |
21612 | auto res = isl_union_pw_multi_aff_from_union_pw_aff(upa: upa.release()); |
21613 | ptr = res; |
21614 | } |
21615 | |
21616 | union_pw_multi_aff::union_pw_multi_aff(isl::ctx ctx, const std::string &str) |
21617 | { |
21618 | auto res = isl_union_pw_multi_aff_read_from_str(ctx: ctx.release(), str: str.c_str()); |
21619 | ptr = res; |
21620 | } |
21621 | |
21622 | union_pw_multi_aff &union_pw_multi_aff::operator=(union_pw_multi_aff obj) { |
21623 | std::swap(a&: this->ptr, b&: obj.ptr); |
21624 | return *this; |
21625 | } |
21626 | |
21627 | union_pw_multi_aff::~union_pw_multi_aff() { |
21628 | if (ptr) |
21629 | isl_union_pw_multi_aff_free(upma: ptr); |
21630 | } |
21631 | |
21632 | __isl_give isl_union_pw_multi_aff *union_pw_multi_aff::copy() const & { |
21633 | return isl_union_pw_multi_aff_copy(upma: ptr); |
21634 | } |
21635 | |
21636 | __isl_keep isl_union_pw_multi_aff *union_pw_multi_aff::get() const { |
21637 | return ptr; |
21638 | } |
21639 | |
21640 | __isl_give isl_union_pw_multi_aff *union_pw_multi_aff::release() { |
21641 | isl_union_pw_multi_aff *tmp = ptr; |
21642 | ptr = nullptr; |
21643 | return tmp; |
21644 | } |
21645 | |
21646 | bool union_pw_multi_aff::is_null() const { |
21647 | return ptr == nullptr; |
21648 | } |
21649 | |
21650 | isl::ctx union_pw_multi_aff::ctx() const { |
21651 | return isl::ctx(isl_union_pw_multi_aff_get_ctx(upma: ptr)); |
21652 | } |
21653 | |
21654 | isl::union_pw_multi_aff union_pw_multi_aff::add(isl::union_pw_multi_aff upma2) const |
21655 | { |
21656 | auto res = isl_union_pw_multi_aff_add(upma1: copy(), upma2: upma2.release()); |
21657 | return manage(ptr: res); |
21658 | } |
21659 | |
21660 | isl::union_pw_multi_aff union_pw_multi_aff::add_pw_multi_aff(isl::pw_multi_aff pma) const |
21661 | { |
21662 | auto res = isl_union_pw_multi_aff_add_pw_multi_aff(upma: copy(), pma: pma.release()); |
21663 | return manage(ptr: res); |
21664 | } |
21665 | |
21666 | isl::union_pw_multi_aff union_pw_multi_aff::apply(isl::union_pw_multi_aff upma2) const |
21667 | { |
21668 | auto res = isl_union_pw_multi_aff_apply_union_pw_multi_aff(upma1: copy(), upma2: upma2.release()); |
21669 | return manage(ptr: res); |
21670 | } |
21671 | |
21672 | isl::multi_union_pw_aff union_pw_multi_aff::as_multi_union_pw_aff() const |
21673 | { |
21674 | auto res = isl_union_pw_multi_aff_as_multi_union_pw_aff(upma: copy()); |
21675 | return manage(ptr: res); |
21676 | } |
21677 | |
21678 | isl::pw_multi_aff union_pw_multi_aff::as_pw_multi_aff() const |
21679 | { |
21680 | auto res = isl_union_pw_multi_aff_as_pw_multi_aff(upma: copy()); |
21681 | return manage(ptr: res); |
21682 | } |
21683 | |
21684 | isl::union_map union_pw_multi_aff::as_union_map() const |
21685 | { |
21686 | auto res = isl_union_pw_multi_aff_as_union_map(upma: copy()); |
21687 | return manage(ptr: res); |
21688 | } |
21689 | |
21690 | isl::union_pw_multi_aff union_pw_multi_aff::coalesce() const |
21691 | { |
21692 | auto res = isl_union_pw_multi_aff_coalesce(upma: copy()); |
21693 | return manage(ptr: res); |
21694 | } |
21695 | |
21696 | isl::union_set union_pw_multi_aff::domain() const |
21697 | { |
21698 | auto res = isl_union_pw_multi_aff_domain(upma: copy()); |
21699 | return manage(ptr: res); |
21700 | } |
21701 | |
21702 | isl::union_pw_multi_aff union_pw_multi_aff::empty(isl::space space) |
21703 | { |
21704 | auto res = isl_union_pw_multi_aff_empty(space: space.release()); |
21705 | return manage(ptr: res); |
21706 | } |
21707 | |
21708 | isl::union_pw_multi_aff union_pw_multi_aff::empty(isl::ctx ctx) |
21709 | { |
21710 | auto res = isl_union_pw_multi_aff_empty_ctx(ctx: ctx.release()); |
21711 | return manage(ptr: res); |
21712 | } |
21713 | |
21714 | isl::pw_multi_aff union_pw_multi_aff::(isl::space space) const |
21715 | { |
21716 | auto res = isl_union_pw_multi_aff_extract_pw_multi_aff(upma: get(), space: space.release()); |
21717 | return manage(ptr: res); |
21718 | } |
21719 | |
21720 | isl::union_pw_multi_aff union_pw_multi_aff::flat_range_product(isl::union_pw_multi_aff upma2) const |
21721 | { |
21722 | auto res = isl_union_pw_multi_aff_flat_range_product(upma1: copy(), upma2: upma2.release()); |
21723 | return manage(ptr: res); |
21724 | } |
21725 | |
21726 | isl::union_pw_multi_aff union_pw_multi_aff::gist(isl::union_set context) const |
21727 | { |
21728 | auto res = isl_union_pw_multi_aff_gist(upma: copy(), context: context.release()); |
21729 | return manage(ptr: res); |
21730 | } |
21731 | |
21732 | isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain(isl::space space) const |
21733 | { |
21734 | auto res = isl_union_pw_multi_aff_intersect_domain_space(upma: copy(), space: space.release()); |
21735 | return manage(ptr: res); |
21736 | } |
21737 | |
21738 | isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain(isl::union_set uset) const |
21739 | { |
21740 | auto res = isl_union_pw_multi_aff_intersect_domain_union_set(upma: copy(), uset: uset.release()); |
21741 | return manage(ptr: res); |
21742 | } |
21743 | |
21744 | isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain_wrapped_domain(isl::union_set uset) const |
21745 | { |
21746 | auto res = isl_union_pw_multi_aff_intersect_domain_wrapped_domain(upma: copy(), uset: uset.release()); |
21747 | return manage(ptr: res); |
21748 | } |
21749 | |
21750 | isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain_wrapped_range(isl::union_set uset) const |
21751 | { |
21752 | auto res = isl_union_pw_multi_aff_intersect_domain_wrapped_range(upma: copy(), uset: uset.release()); |
21753 | return manage(ptr: res); |
21754 | } |
21755 | |
21756 | isl::union_pw_multi_aff union_pw_multi_aff::intersect_params(isl::set set) const |
21757 | { |
21758 | auto res = isl_union_pw_multi_aff_intersect_params(upma: copy(), set: set.release()); |
21759 | return manage(ptr: res); |
21760 | } |
21761 | |
21762 | boolean union_pw_multi_aff::involves_locals() const |
21763 | { |
21764 | auto res = isl_union_pw_multi_aff_involves_locals(upma: get()); |
21765 | return manage(val: res); |
21766 | } |
21767 | |
21768 | boolean union_pw_multi_aff::isa_pw_multi_aff() const |
21769 | { |
21770 | auto res = isl_union_pw_multi_aff_isa_pw_multi_aff(upma: get()); |
21771 | return manage(val: res); |
21772 | } |
21773 | |
21774 | boolean union_pw_multi_aff::plain_is_empty() const |
21775 | { |
21776 | auto res = isl_union_pw_multi_aff_plain_is_empty(upma: get()); |
21777 | return manage(val: res); |
21778 | } |
21779 | |
21780 | isl::union_pw_multi_aff union_pw_multi_aff::preimage_domain_wrapped_domain(isl::union_pw_multi_aff upma2) const |
21781 | { |
21782 | auto res = isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(upma1: copy(), upma2: upma2.release()); |
21783 | return manage(ptr: res); |
21784 | } |
21785 | |
21786 | isl::union_pw_multi_aff union_pw_multi_aff::pullback(isl::union_pw_multi_aff upma2) const |
21787 | { |
21788 | auto res = isl_union_pw_multi_aff_pullback_union_pw_multi_aff(upma1: copy(), upma2: upma2.release()); |
21789 | return manage(ptr: res); |
21790 | } |
21791 | |
21792 | isl::pw_multi_aff_list union_pw_multi_aff::pw_multi_aff_list() const |
21793 | { |
21794 | auto res = isl_union_pw_multi_aff_get_pw_multi_aff_list(upma: get()); |
21795 | return manage(ptr: res); |
21796 | } |
21797 | |
21798 | isl::pw_multi_aff_list union_pw_multi_aff::get_pw_multi_aff_list() const |
21799 | { |
21800 | return pw_multi_aff_list(); |
21801 | } |
21802 | |
21803 | isl::union_pw_multi_aff union_pw_multi_aff::range_factor_domain() const |
21804 | { |
21805 | auto res = isl_union_pw_multi_aff_range_factor_domain(upma: copy()); |
21806 | return manage(ptr: res); |
21807 | } |
21808 | |
21809 | isl::union_pw_multi_aff union_pw_multi_aff::range_factor_range() const |
21810 | { |
21811 | auto res = isl_union_pw_multi_aff_range_factor_range(upma: copy()); |
21812 | return manage(ptr: res); |
21813 | } |
21814 | |
21815 | isl::union_pw_multi_aff union_pw_multi_aff::range_product(isl::union_pw_multi_aff upma2) const |
21816 | { |
21817 | auto res = isl_union_pw_multi_aff_range_product(upma1: copy(), upma2: upma2.release()); |
21818 | return manage(ptr: res); |
21819 | } |
21820 | |
21821 | isl::space union_pw_multi_aff::space() const |
21822 | { |
21823 | auto res = isl_union_pw_multi_aff_get_space(upma: get()); |
21824 | return manage(ptr: res); |
21825 | } |
21826 | |
21827 | isl::space union_pw_multi_aff::get_space() const |
21828 | { |
21829 | return space(); |
21830 | } |
21831 | |
21832 | isl::union_pw_multi_aff union_pw_multi_aff::sub(isl::union_pw_multi_aff upma2) const |
21833 | { |
21834 | auto res = isl_union_pw_multi_aff_sub(upma1: copy(), upma2: upma2.release()); |
21835 | return manage(ptr: res); |
21836 | } |
21837 | |
21838 | isl::union_pw_multi_aff union_pw_multi_aff::subtract_domain(isl::space space) const |
21839 | { |
21840 | auto res = isl_union_pw_multi_aff_subtract_domain_space(upma: copy(), space: space.release()); |
21841 | return manage(ptr: res); |
21842 | } |
21843 | |
21844 | isl::union_pw_multi_aff union_pw_multi_aff::subtract_domain(isl::union_set uset) const |
21845 | { |
21846 | auto res = isl_union_pw_multi_aff_subtract_domain_union_set(upma: copy(), uset: uset.release()); |
21847 | return manage(ptr: res); |
21848 | } |
21849 | |
21850 | isl::union_pw_multi_aff union_pw_multi_aff::union_add(isl::union_pw_multi_aff upma2) const |
21851 | { |
21852 | auto res = isl_union_pw_multi_aff_union_add(upma1: copy(), upma2: upma2.release()); |
21853 | return manage(ptr: res); |
21854 | } |
21855 | |
21856 | inline std::ostream &operator<<(std::ostream &os, const union_pw_multi_aff &obj) |
21857 | { |
21858 | char *str = isl_union_pw_multi_aff_to_str(upma: obj.get()); |
21859 | if (!str) { |
21860 | os.setstate(std::ios_base::badbit); |
21861 | return os; |
21862 | } |
21863 | os << str; |
21864 | free(ptr: str); |
21865 | return os; |
21866 | } |
21867 | |
21868 | // implementations for isl::union_set |
21869 | union_set manage(__isl_take isl_union_set *ptr) { |
21870 | return union_set(ptr); |
21871 | } |
21872 | union_set manage_copy(__isl_keep isl_union_set *ptr) { |
21873 | ptr = isl_union_set_copy(uset: ptr); |
21874 | return union_set(ptr); |
21875 | } |
21876 | |
21877 | union_set::union_set() |
21878 | : ptr(nullptr) {} |
21879 | |
21880 | union_set::union_set(const union_set &obj) |
21881 | : ptr(nullptr) |
21882 | { |
21883 | ptr = obj.copy(); |
21884 | } |
21885 | |
21886 | union_set::union_set(__isl_take isl_union_set *ptr) |
21887 | : ptr(ptr) {} |
21888 | |
21889 | union_set::union_set(isl::basic_set bset) |
21890 | { |
21891 | auto res = isl_union_set_from_basic_set(bset: bset.release()); |
21892 | ptr = res; |
21893 | } |
21894 | |
21895 | union_set::union_set(isl::point pnt) |
21896 | { |
21897 | auto res = isl_union_set_from_point(pnt: pnt.release()); |
21898 | ptr = res; |
21899 | } |
21900 | |
21901 | union_set::union_set(isl::set set) |
21902 | { |
21903 | auto res = isl_union_set_from_set(set: set.release()); |
21904 | ptr = res; |
21905 | } |
21906 | |
21907 | union_set::union_set(isl::ctx ctx, const std::string &str) |
21908 | { |
21909 | auto res = isl_union_set_read_from_str(ctx: ctx.release(), str: str.c_str()); |
21910 | ptr = res; |
21911 | } |
21912 | |
21913 | union_set &union_set::operator=(union_set obj) { |
21914 | std::swap(a&: this->ptr, b&: obj.ptr); |
21915 | return *this; |
21916 | } |
21917 | |
21918 | union_set::~union_set() { |
21919 | if (ptr) |
21920 | isl_union_set_free(uset: ptr); |
21921 | } |
21922 | |
21923 | __isl_give isl_union_set *union_set::copy() const & { |
21924 | return isl_union_set_copy(uset: ptr); |
21925 | } |
21926 | |
21927 | __isl_keep isl_union_set *union_set::get() const { |
21928 | return ptr; |
21929 | } |
21930 | |
21931 | __isl_give isl_union_set *union_set::release() { |
21932 | isl_union_set *tmp = ptr; |
21933 | ptr = nullptr; |
21934 | return tmp; |
21935 | } |
21936 | |
21937 | bool union_set::is_null() const { |
21938 | return ptr == nullptr; |
21939 | } |
21940 | |
21941 | isl::ctx union_set::ctx() const { |
21942 | return isl::ctx(isl_union_set_get_ctx(uset: ptr)); |
21943 | } |
21944 | |
21945 | isl::union_set union_set::affine_hull() const |
21946 | { |
21947 | auto res = isl_union_set_affine_hull(uset: copy()); |
21948 | return manage(ptr: res); |
21949 | } |
21950 | |
21951 | isl::union_set union_set::apply(isl::union_map umap) const |
21952 | { |
21953 | auto res = isl_union_set_apply(uset: copy(), umap: umap.release()); |
21954 | return manage(ptr: res); |
21955 | } |
21956 | |
21957 | isl::set union_set::as_set() const |
21958 | { |
21959 | auto res = isl_union_set_as_set(uset: copy()); |
21960 | return manage(ptr: res); |
21961 | } |
21962 | |
21963 | isl::union_set union_set::coalesce() const |
21964 | { |
21965 | auto res = isl_union_set_coalesce(uset: copy()); |
21966 | return manage(ptr: res); |
21967 | } |
21968 | |
21969 | isl::union_set union_set::compute_divs() const |
21970 | { |
21971 | auto res = isl_union_set_compute_divs(uset: copy()); |
21972 | return manage(ptr: res); |
21973 | } |
21974 | |
21975 | boolean union_set::contains(const isl::space &space) const |
21976 | { |
21977 | auto res = isl_union_set_contains(uset: get(), space: space.get()); |
21978 | return manage(val: res); |
21979 | } |
21980 | |
21981 | isl::union_set union_set::detect_equalities() const |
21982 | { |
21983 | auto res = isl_union_set_detect_equalities(uset: copy()); |
21984 | return manage(ptr: res); |
21985 | } |
21986 | |
21987 | isl::union_set union_set::empty(isl::ctx ctx) |
21988 | { |
21989 | auto res = isl_union_set_empty_ctx(ctx: ctx.release()); |
21990 | return manage(ptr: res); |
21991 | } |
21992 | |
21993 | boolean union_set::every_set(const std::function<boolean(isl::set)> &test) const |
21994 | { |
21995 | struct test_data { |
21996 | std::function<boolean(isl::set)> func; |
21997 | } test_data = { .func: test }; |
21998 | auto test_lambda = [](isl_set *arg_0, void *arg_1) -> isl_bool { |
21999 | auto *data = static_cast<struct test_data *>(arg_1); |
22000 | auto ret = (data->func)(manage_copy(ptr: arg_0)); |
22001 | return ret.release(); |
22002 | }; |
22003 | auto res = isl_union_set_every_set(uset: get(), test: test_lambda, user: &test_data); |
22004 | return manage(val: res); |
22005 | } |
22006 | |
22007 | isl::set union_set::(isl::space space) const |
22008 | { |
22009 | auto res = isl_union_set_extract_set(uset: get(), space: space.release()); |
22010 | return manage(ptr: res); |
22011 | } |
22012 | |
22013 | stat union_set::foreach_point(const std::function<stat(isl::point)> &fn) const |
22014 | { |
22015 | struct fn_data { |
22016 | std::function<stat(isl::point)> func; |
22017 | } fn_data = { .func: fn }; |
22018 | auto fn_lambda = [](isl_point *arg_0, void *arg_1) -> isl_stat { |
22019 | auto *data = static_cast<struct fn_data *>(arg_1); |
22020 | auto ret = (data->func)(manage(ptr: arg_0)); |
22021 | return ret.release(); |
22022 | }; |
22023 | auto res = isl_union_set_foreach_point(uset: get(), fn: fn_lambda, user: &fn_data); |
22024 | return manage(val: res); |
22025 | } |
22026 | |
22027 | stat union_set::foreach_set(const std::function<stat(isl::set)> &fn) const |
22028 | { |
22029 | struct fn_data { |
22030 | std::function<stat(isl::set)> func; |
22031 | } fn_data = { .func: fn }; |
22032 | auto fn_lambda = [](isl_set *arg_0, void *arg_1) -> isl_stat { |
22033 | auto *data = static_cast<struct fn_data *>(arg_1); |
22034 | auto ret = (data->func)(manage(ptr: arg_0)); |
22035 | return ret.release(); |
22036 | }; |
22037 | auto res = isl_union_set_foreach_set(uset: get(), fn: fn_lambda, user: &fn_data); |
22038 | return manage(val: res); |
22039 | } |
22040 | |
22041 | isl::union_set union_set::gist(isl::union_set context) const |
22042 | { |
22043 | auto res = isl_union_set_gist(uset: copy(), context: context.release()); |
22044 | return manage(ptr: res); |
22045 | } |
22046 | |
22047 | isl::union_set union_set::gist_params(isl::set set) const |
22048 | { |
22049 | auto res = isl_union_set_gist_params(uset: copy(), set: set.release()); |
22050 | return manage(ptr: res); |
22051 | } |
22052 | |
22053 | isl::union_map union_set::identity() const |
22054 | { |
22055 | auto res = isl_union_set_identity(uset: copy()); |
22056 | return manage(ptr: res); |
22057 | } |
22058 | |
22059 | isl::union_pw_multi_aff union_set::identity_union_pw_multi_aff() const |
22060 | { |
22061 | auto res = isl_union_set_identity_union_pw_multi_aff(uset: copy()); |
22062 | return manage(ptr: res); |
22063 | } |
22064 | |
22065 | isl::union_set union_set::intersect(isl::union_set uset2) const |
22066 | { |
22067 | auto res = isl_union_set_intersect(uset1: copy(), uset2: uset2.release()); |
22068 | return manage(ptr: res); |
22069 | } |
22070 | |
22071 | isl::union_set union_set::intersect_params(isl::set set) const |
22072 | { |
22073 | auto res = isl_union_set_intersect_params(uset: copy(), set: set.release()); |
22074 | return manage(ptr: res); |
22075 | } |
22076 | |
22077 | boolean union_set::is_disjoint(const isl::union_set &uset2) const |
22078 | { |
22079 | auto res = isl_union_set_is_disjoint(uset1: get(), uset2: uset2.get()); |
22080 | return manage(val: res); |
22081 | } |
22082 | |
22083 | boolean union_set::is_empty() const |
22084 | { |
22085 | auto res = isl_union_set_is_empty(uset: get()); |
22086 | return manage(val: res); |
22087 | } |
22088 | |
22089 | boolean union_set::is_equal(const isl::union_set &uset2) const |
22090 | { |
22091 | auto res = isl_union_set_is_equal(uset1: get(), uset2: uset2.get()); |
22092 | return manage(val: res); |
22093 | } |
22094 | |
22095 | boolean union_set::is_strict_subset(const isl::union_set &uset2) const |
22096 | { |
22097 | auto res = isl_union_set_is_strict_subset(uset1: get(), uset2: uset2.get()); |
22098 | return manage(val: res); |
22099 | } |
22100 | |
22101 | boolean union_set::is_subset(const isl::union_set &uset2) const |
22102 | { |
22103 | auto res = isl_union_set_is_subset(uset1: get(), uset2: uset2.get()); |
22104 | return manage(val: res); |
22105 | } |
22106 | |
22107 | boolean union_set::isa_set() const |
22108 | { |
22109 | auto res = isl_union_set_isa_set(uset: get()); |
22110 | return manage(val: res); |
22111 | } |
22112 | |
22113 | isl::union_set union_set::lexmax() const |
22114 | { |
22115 | auto res = isl_union_set_lexmax(uset: copy()); |
22116 | return manage(ptr: res); |
22117 | } |
22118 | |
22119 | isl::union_set union_set::lexmin() const |
22120 | { |
22121 | auto res = isl_union_set_lexmin(uset: copy()); |
22122 | return manage(ptr: res); |
22123 | } |
22124 | |
22125 | isl::set union_set::params() const |
22126 | { |
22127 | auto res = isl_union_set_params(uset: copy()); |
22128 | return manage(ptr: res); |
22129 | } |
22130 | |
22131 | isl::union_set union_set::polyhedral_hull() const |
22132 | { |
22133 | auto res = isl_union_set_polyhedral_hull(uset: copy()); |
22134 | return manage(ptr: res); |
22135 | } |
22136 | |
22137 | isl::union_set union_set::preimage(isl::multi_aff ma) const |
22138 | { |
22139 | auto res = isl_union_set_preimage_multi_aff(uset: copy(), ma: ma.release()); |
22140 | return manage(ptr: res); |
22141 | } |
22142 | |
22143 | isl::union_set union_set::preimage(isl::pw_multi_aff pma) const |
22144 | { |
22145 | auto res = isl_union_set_preimage_pw_multi_aff(uset: copy(), pma: pma.release()); |
22146 | return manage(ptr: res); |
22147 | } |
22148 | |
22149 | isl::union_set union_set::preimage(isl::union_pw_multi_aff upma) const |
22150 | { |
22151 | auto res = isl_union_set_preimage_union_pw_multi_aff(uset: copy(), upma: upma.release()); |
22152 | return manage(ptr: res); |
22153 | } |
22154 | |
22155 | isl::point union_set::sample_point() const |
22156 | { |
22157 | auto res = isl_union_set_sample_point(uset: copy()); |
22158 | return manage(ptr: res); |
22159 | } |
22160 | |
22161 | isl::set_list union_set::set_list() const |
22162 | { |
22163 | auto res = isl_union_set_get_set_list(uset: get()); |
22164 | return manage(ptr: res); |
22165 | } |
22166 | |
22167 | isl::set_list union_set::get_set_list() const |
22168 | { |
22169 | return set_list(); |
22170 | } |
22171 | |
22172 | isl::space union_set::space() const |
22173 | { |
22174 | auto res = isl_union_set_get_space(uset: get()); |
22175 | return manage(ptr: res); |
22176 | } |
22177 | |
22178 | isl::space union_set::get_space() const |
22179 | { |
22180 | return space(); |
22181 | } |
22182 | |
22183 | isl::union_set union_set::subtract(isl::union_set uset2) const |
22184 | { |
22185 | auto res = isl_union_set_subtract(uset1: copy(), uset2: uset2.release()); |
22186 | return manage(ptr: res); |
22187 | } |
22188 | |
22189 | isl::union_set_list union_set::to_list() const |
22190 | { |
22191 | auto res = isl_union_set_to_list(el: copy()); |
22192 | return manage(ptr: res); |
22193 | } |
22194 | |
22195 | isl::union_set union_set::unite(isl::union_set uset2) const |
22196 | { |
22197 | auto res = isl_union_set_union(uset1: copy(), uset2: uset2.release()); |
22198 | return manage(ptr: res); |
22199 | } |
22200 | |
22201 | isl::union_set union_set::universe() const |
22202 | { |
22203 | auto res = isl_union_set_universe(uset: copy()); |
22204 | return manage(ptr: res); |
22205 | } |
22206 | |
22207 | isl::union_map union_set::unwrap() const |
22208 | { |
22209 | auto res = isl_union_set_unwrap(uset: copy()); |
22210 | return manage(ptr: res); |
22211 | } |
22212 | |
22213 | inline std::ostream &operator<<(std::ostream &os, const union_set &obj) |
22214 | { |
22215 | char *str = isl_union_set_to_str(uset: obj.get()); |
22216 | if (!str) { |
22217 | os.setstate(std::ios_base::badbit); |
22218 | return os; |
22219 | } |
22220 | os << str; |
22221 | free(ptr: str); |
22222 | return os; |
22223 | } |
22224 | |
22225 | // implementations for isl::union_set_list |
22226 | union_set_list manage(__isl_take isl_union_set_list *ptr) { |
22227 | return union_set_list(ptr); |
22228 | } |
22229 | union_set_list manage_copy(__isl_keep isl_union_set_list *ptr) { |
22230 | ptr = isl_union_set_list_copy(list: ptr); |
22231 | return union_set_list(ptr); |
22232 | } |
22233 | |
22234 | union_set_list::union_set_list() |
22235 | : ptr(nullptr) {} |
22236 | |
22237 | union_set_list::union_set_list(const union_set_list &obj) |
22238 | : ptr(nullptr) |
22239 | { |
22240 | ptr = obj.copy(); |
22241 | } |
22242 | |
22243 | union_set_list::union_set_list(__isl_take isl_union_set_list *ptr) |
22244 | : ptr(ptr) {} |
22245 | |
22246 | union_set_list::union_set_list(isl::ctx ctx, int n) |
22247 | { |
22248 | auto res = isl_union_set_list_alloc(ctx: ctx.release(), n); |
22249 | ptr = res; |
22250 | } |
22251 | |
22252 | union_set_list::union_set_list(isl::union_set el) |
22253 | { |
22254 | auto res = isl_union_set_list_from_union_set(el: el.release()); |
22255 | ptr = res; |
22256 | } |
22257 | |
22258 | union_set_list::union_set_list(isl::ctx ctx, const std::string &str) |
22259 | { |
22260 | auto res = isl_union_set_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
22261 | ptr = res; |
22262 | } |
22263 | |
22264 | union_set_list &union_set_list::operator=(union_set_list obj) { |
22265 | std::swap(a&: this->ptr, b&: obj.ptr); |
22266 | return *this; |
22267 | } |
22268 | |
22269 | union_set_list::~union_set_list() { |
22270 | if (ptr) |
22271 | isl_union_set_list_free(list: ptr); |
22272 | } |
22273 | |
22274 | __isl_give isl_union_set_list *union_set_list::copy() const & { |
22275 | return isl_union_set_list_copy(list: ptr); |
22276 | } |
22277 | |
22278 | __isl_keep isl_union_set_list *union_set_list::get() const { |
22279 | return ptr; |
22280 | } |
22281 | |
22282 | __isl_give isl_union_set_list *union_set_list::release() { |
22283 | isl_union_set_list *tmp = ptr; |
22284 | ptr = nullptr; |
22285 | return tmp; |
22286 | } |
22287 | |
22288 | bool union_set_list::is_null() const { |
22289 | return ptr == nullptr; |
22290 | } |
22291 | |
22292 | isl::ctx union_set_list::ctx() const { |
22293 | return isl::ctx(isl_union_set_list_get_ctx(list: ptr)); |
22294 | } |
22295 | |
22296 | isl::union_set_list union_set_list::add(isl::union_set el) const |
22297 | { |
22298 | auto res = isl_union_set_list_add(list: copy(), el: el.release()); |
22299 | return manage(ptr: res); |
22300 | } |
22301 | |
22302 | isl::union_set union_set_list::at(int index) const |
22303 | { |
22304 | auto res = isl_union_set_list_get_at(list: get(), index); |
22305 | return manage(ptr: res); |
22306 | } |
22307 | |
22308 | isl::union_set union_set_list::get_at(int index) const |
22309 | { |
22310 | return at(index); |
22311 | } |
22312 | |
22313 | isl::union_set_list union_set_list::clear() const |
22314 | { |
22315 | auto res = isl_union_set_list_clear(list: copy()); |
22316 | return manage(ptr: res); |
22317 | } |
22318 | |
22319 | isl::union_set_list union_set_list::concat(isl::union_set_list list2) const |
22320 | { |
22321 | auto res = isl_union_set_list_concat(list1: copy(), list2: list2.release()); |
22322 | return manage(ptr: res); |
22323 | } |
22324 | |
22325 | isl::union_set_list union_set_list::drop(unsigned int first, unsigned int n) const |
22326 | { |
22327 | auto res = isl_union_set_list_drop(list: copy(), first, n); |
22328 | return manage(ptr: res); |
22329 | } |
22330 | |
22331 | stat union_set_list::foreach(const std::function<stat(isl::union_set)> &fn) const |
22332 | { |
22333 | struct fn_data { |
22334 | std::function<stat(isl::union_set)> func; |
22335 | } fn_data = { .func: fn }; |
22336 | auto fn_lambda = [](isl_union_set *arg_0, void *arg_1) -> isl_stat { |
22337 | auto *data = static_cast<struct fn_data *>(arg_1); |
22338 | auto ret = (data->func)(manage(ptr: arg_0)); |
22339 | return ret.release(); |
22340 | }; |
22341 | auto res = isl_union_set_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
22342 | return manage(val: res); |
22343 | } |
22344 | |
22345 | isl::union_set_list union_set_list::insert(unsigned int pos, isl::union_set el) const |
22346 | { |
22347 | auto res = isl_union_set_list_insert(list: copy(), pos, el: el.release()); |
22348 | return manage(ptr: res); |
22349 | } |
22350 | |
22351 | class size union_set_list::size() const |
22352 | { |
22353 | auto res = isl_union_set_list_size(list: get()); |
22354 | return manage(val: res); |
22355 | } |
22356 | |
22357 | inline std::ostream &operator<<(std::ostream &os, const union_set_list &obj) |
22358 | { |
22359 | char *str = isl_union_set_list_to_str(list: obj.get()); |
22360 | if (!str) { |
22361 | os.setstate(std::ios_base::badbit); |
22362 | return os; |
22363 | } |
22364 | os << str; |
22365 | free(ptr: str); |
22366 | return os; |
22367 | } |
22368 | |
22369 | // implementations for isl::val |
22370 | val manage(__isl_take isl_val *ptr) { |
22371 | return val(ptr); |
22372 | } |
22373 | val manage_copy(__isl_keep isl_val *ptr) { |
22374 | ptr = isl_val_copy(v: ptr); |
22375 | return val(ptr); |
22376 | } |
22377 | |
22378 | val::val() |
22379 | : ptr(nullptr) {} |
22380 | |
22381 | val::val(const val &obj) |
22382 | : ptr(nullptr) |
22383 | { |
22384 | ptr = obj.copy(); |
22385 | } |
22386 | |
22387 | val::val(__isl_take isl_val *ptr) |
22388 | : ptr(ptr) {} |
22389 | |
22390 | val::val(isl::ctx ctx, long i) |
22391 | { |
22392 | auto res = isl_val_int_from_si(ctx: ctx.release(), i); |
22393 | ptr = res; |
22394 | } |
22395 | |
22396 | val::val(isl::ctx ctx, const std::string &str) |
22397 | { |
22398 | auto res = isl_val_read_from_str(ctx: ctx.release(), str: str.c_str()); |
22399 | ptr = res; |
22400 | } |
22401 | |
22402 | val &val::operator=(val obj) { |
22403 | std::swap(a&: this->ptr, b&: obj.ptr); |
22404 | return *this; |
22405 | } |
22406 | |
22407 | val::~val() { |
22408 | if (ptr) |
22409 | isl_val_free(v: ptr); |
22410 | } |
22411 | |
22412 | __isl_give isl_val *val::copy() const & { |
22413 | return isl_val_copy(v: ptr); |
22414 | } |
22415 | |
22416 | __isl_keep isl_val *val::get() const { |
22417 | return ptr; |
22418 | } |
22419 | |
22420 | __isl_give isl_val *val::release() { |
22421 | isl_val *tmp = ptr; |
22422 | ptr = nullptr; |
22423 | return tmp; |
22424 | } |
22425 | |
22426 | bool val::is_null() const { |
22427 | return ptr == nullptr; |
22428 | } |
22429 | |
22430 | isl::ctx val::ctx() const { |
22431 | return isl::ctx(isl_val_get_ctx(val: ptr)); |
22432 | } |
22433 | |
22434 | isl::val val::abs() const |
22435 | { |
22436 | auto res = isl_val_abs(v: copy()); |
22437 | return manage(ptr: res); |
22438 | } |
22439 | |
22440 | boolean val::abs_eq(const isl::val &v2) const |
22441 | { |
22442 | auto res = isl_val_abs_eq(v1: get(), v2: v2.get()); |
22443 | return manage(val: res); |
22444 | } |
22445 | |
22446 | boolean val::abs_eq(long v2) const |
22447 | { |
22448 | return this->abs_eq(v2: isl::val(ctx(), v2)); |
22449 | } |
22450 | |
22451 | isl::val val::add(isl::val v2) const |
22452 | { |
22453 | auto res = isl_val_add(v1: copy(), v2: v2.release()); |
22454 | return manage(ptr: res); |
22455 | } |
22456 | |
22457 | isl::val val::add(long v2) const |
22458 | { |
22459 | return this->add(v2: isl::val(ctx(), v2)); |
22460 | } |
22461 | |
22462 | isl::val val::ceil() const |
22463 | { |
22464 | auto res = isl_val_ceil(v: copy()); |
22465 | return manage(ptr: res); |
22466 | } |
22467 | |
22468 | int val::cmp_si(long i) const |
22469 | { |
22470 | auto res = isl_val_cmp_si(v: get(), i); |
22471 | return res; |
22472 | } |
22473 | |
22474 | long val::den_si() const |
22475 | { |
22476 | auto res = isl_val_get_den_si(v: get()); |
22477 | return res; |
22478 | } |
22479 | |
22480 | long val::get_den_si() const |
22481 | { |
22482 | return den_si(); |
22483 | } |
22484 | |
22485 | isl::val val::div(isl::val v2) const |
22486 | { |
22487 | auto res = isl_val_div(v1: copy(), v2: v2.release()); |
22488 | return manage(ptr: res); |
22489 | } |
22490 | |
22491 | isl::val val::div(long v2) const |
22492 | { |
22493 | return this->div(v2: isl::val(ctx(), v2)); |
22494 | } |
22495 | |
22496 | boolean val::eq(const isl::val &v2) const |
22497 | { |
22498 | auto res = isl_val_eq(v1: get(), v2: v2.get()); |
22499 | return manage(val: res); |
22500 | } |
22501 | |
22502 | boolean val::eq(long v2) const |
22503 | { |
22504 | return this->eq(v2: isl::val(ctx(), v2)); |
22505 | } |
22506 | |
22507 | isl::val val::floor() const |
22508 | { |
22509 | auto res = isl_val_floor(v: copy()); |
22510 | return manage(ptr: res); |
22511 | } |
22512 | |
22513 | isl::val val::gcd(isl::val v2) const |
22514 | { |
22515 | auto res = isl_val_gcd(v1: copy(), v2: v2.release()); |
22516 | return manage(ptr: res); |
22517 | } |
22518 | |
22519 | isl::val val::gcd(long v2) const |
22520 | { |
22521 | return this->gcd(v2: isl::val(ctx(), v2)); |
22522 | } |
22523 | |
22524 | boolean val::ge(const isl::val &v2) const |
22525 | { |
22526 | auto res = isl_val_ge(v1: get(), v2: v2.get()); |
22527 | return manage(val: res); |
22528 | } |
22529 | |
22530 | boolean val::ge(long v2) const |
22531 | { |
22532 | return this->ge(v2: isl::val(ctx(), v2)); |
22533 | } |
22534 | |
22535 | boolean val::gt(const isl::val &v2) const |
22536 | { |
22537 | auto res = isl_val_gt(v1: get(), v2: v2.get()); |
22538 | return manage(val: res); |
22539 | } |
22540 | |
22541 | boolean val::gt(long v2) const |
22542 | { |
22543 | return this->gt(v2: isl::val(ctx(), v2)); |
22544 | } |
22545 | |
22546 | isl::val val::infty(isl::ctx ctx) |
22547 | { |
22548 | auto res = isl_val_infty(ctx: ctx.release()); |
22549 | return manage(ptr: res); |
22550 | } |
22551 | |
22552 | isl::val val::int_from_ui(isl::ctx ctx, unsigned long u) |
22553 | { |
22554 | auto res = isl_val_int_from_ui(ctx: ctx.release(), u); |
22555 | return manage(ptr: res); |
22556 | } |
22557 | |
22558 | isl::val val::inv() const |
22559 | { |
22560 | auto res = isl_val_inv(v: copy()); |
22561 | return manage(ptr: res); |
22562 | } |
22563 | |
22564 | boolean val::is_divisible_by(const isl::val &v2) const |
22565 | { |
22566 | auto res = isl_val_is_divisible_by(v1: get(), v2: v2.get()); |
22567 | return manage(val: res); |
22568 | } |
22569 | |
22570 | boolean val::is_divisible_by(long v2) const |
22571 | { |
22572 | return this->is_divisible_by(v2: isl::val(ctx(), v2)); |
22573 | } |
22574 | |
22575 | boolean val::is_infty() const |
22576 | { |
22577 | auto res = isl_val_is_infty(v: get()); |
22578 | return manage(val: res); |
22579 | } |
22580 | |
22581 | boolean val::is_int() const |
22582 | { |
22583 | auto res = isl_val_is_int(v: get()); |
22584 | return manage(val: res); |
22585 | } |
22586 | |
22587 | boolean val::is_nan() const |
22588 | { |
22589 | auto res = isl_val_is_nan(v: get()); |
22590 | return manage(val: res); |
22591 | } |
22592 | |
22593 | boolean val::is_neg() const |
22594 | { |
22595 | auto res = isl_val_is_neg(v: get()); |
22596 | return manage(val: res); |
22597 | } |
22598 | |
22599 | boolean val::is_neginfty() const |
22600 | { |
22601 | auto res = isl_val_is_neginfty(v: get()); |
22602 | return manage(val: res); |
22603 | } |
22604 | |
22605 | boolean val::is_negone() const |
22606 | { |
22607 | auto res = isl_val_is_negone(v: get()); |
22608 | return manage(val: res); |
22609 | } |
22610 | |
22611 | boolean val::is_nonneg() const |
22612 | { |
22613 | auto res = isl_val_is_nonneg(v: get()); |
22614 | return manage(val: res); |
22615 | } |
22616 | |
22617 | boolean val::is_nonpos() const |
22618 | { |
22619 | auto res = isl_val_is_nonpos(v: get()); |
22620 | return manage(val: res); |
22621 | } |
22622 | |
22623 | boolean val::is_one() const |
22624 | { |
22625 | auto res = isl_val_is_one(v: get()); |
22626 | return manage(val: res); |
22627 | } |
22628 | |
22629 | boolean val::is_pos() const |
22630 | { |
22631 | auto res = isl_val_is_pos(v: get()); |
22632 | return manage(val: res); |
22633 | } |
22634 | |
22635 | boolean val::is_rat() const |
22636 | { |
22637 | auto res = isl_val_is_rat(v: get()); |
22638 | return manage(val: res); |
22639 | } |
22640 | |
22641 | boolean val::is_zero() const |
22642 | { |
22643 | auto res = isl_val_is_zero(v: get()); |
22644 | return manage(val: res); |
22645 | } |
22646 | |
22647 | boolean val::le(const isl::val &v2) const |
22648 | { |
22649 | auto res = isl_val_le(v1: get(), v2: v2.get()); |
22650 | return manage(val: res); |
22651 | } |
22652 | |
22653 | boolean val::le(long v2) const |
22654 | { |
22655 | return this->le(v2: isl::val(ctx(), v2)); |
22656 | } |
22657 | |
22658 | boolean val::lt(const isl::val &v2) const |
22659 | { |
22660 | auto res = isl_val_lt(v1: get(), v2: v2.get()); |
22661 | return manage(val: res); |
22662 | } |
22663 | |
22664 | boolean val::lt(long v2) const |
22665 | { |
22666 | return this->lt(v2: isl::val(ctx(), v2)); |
22667 | } |
22668 | |
22669 | isl::val val::max(isl::val v2) const |
22670 | { |
22671 | auto res = isl_val_max(v1: copy(), v2: v2.release()); |
22672 | return manage(ptr: res); |
22673 | } |
22674 | |
22675 | isl::val val::max(long v2) const |
22676 | { |
22677 | return this->max(v2: isl::val(ctx(), v2)); |
22678 | } |
22679 | |
22680 | isl::val val::min(isl::val v2) const |
22681 | { |
22682 | auto res = isl_val_min(v1: copy(), v2: v2.release()); |
22683 | return manage(ptr: res); |
22684 | } |
22685 | |
22686 | isl::val val::min(long v2) const |
22687 | { |
22688 | return this->min(v2: isl::val(ctx(), v2)); |
22689 | } |
22690 | |
22691 | isl::val val::mod(isl::val v2) const |
22692 | { |
22693 | auto res = isl_val_mod(v1: copy(), v2: v2.release()); |
22694 | return manage(ptr: res); |
22695 | } |
22696 | |
22697 | isl::val val::mod(long v2) const |
22698 | { |
22699 | return this->mod(v2: isl::val(ctx(), v2)); |
22700 | } |
22701 | |
22702 | isl::val val::mul(isl::val v2) const |
22703 | { |
22704 | auto res = isl_val_mul(v1: copy(), v2: v2.release()); |
22705 | return manage(ptr: res); |
22706 | } |
22707 | |
22708 | isl::val val::mul(long v2) const |
22709 | { |
22710 | return this->mul(v2: isl::val(ctx(), v2)); |
22711 | } |
22712 | |
22713 | isl::val val::nan(isl::ctx ctx) |
22714 | { |
22715 | auto res = isl_val_nan(ctx: ctx.release()); |
22716 | return manage(ptr: res); |
22717 | } |
22718 | |
22719 | boolean val::ne(const isl::val &v2) const |
22720 | { |
22721 | auto res = isl_val_ne(v1: get(), v2: v2.get()); |
22722 | return manage(val: res); |
22723 | } |
22724 | |
22725 | boolean val::ne(long v2) const |
22726 | { |
22727 | return this->ne(v2: isl::val(ctx(), v2)); |
22728 | } |
22729 | |
22730 | isl::val val::neg() const |
22731 | { |
22732 | auto res = isl_val_neg(v: copy()); |
22733 | return manage(ptr: res); |
22734 | } |
22735 | |
22736 | isl::val val::neginfty(isl::ctx ctx) |
22737 | { |
22738 | auto res = isl_val_neginfty(ctx: ctx.release()); |
22739 | return manage(ptr: res); |
22740 | } |
22741 | |
22742 | isl::val val::negone(isl::ctx ctx) |
22743 | { |
22744 | auto res = isl_val_negone(ctx: ctx.release()); |
22745 | return manage(ptr: res); |
22746 | } |
22747 | |
22748 | long val::num_si() const |
22749 | { |
22750 | auto res = isl_val_get_num_si(v: get()); |
22751 | return res; |
22752 | } |
22753 | |
22754 | long val::get_num_si() const |
22755 | { |
22756 | return num_si(); |
22757 | } |
22758 | |
22759 | isl::val val::one(isl::ctx ctx) |
22760 | { |
22761 | auto res = isl_val_one(ctx: ctx.release()); |
22762 | return manage(ptr: res); |
22763 | } |
22764 | |
22765 | isl::val val::pow2() const |
22766 | { |
22767 | auto res = isl_val_pow2(v: copy()); |
22768 | return manage(ptr: res); |
22769 | } |
22770 | |
22771 | int val::sgn() const |
22772 | { |
22773 | auto res = isl_val_sgn(v: get()); |
22774 | return res; |
22775 | } |
22776 | |
22777 | isl::val val::sub(isl::val v2) const |
22778 | { |
22779 | auto res = isl_val_sub(v1: copy(), v2: v2.release()); |
22780 | return manage(ptr: res); |
22781 | } |
22782 | |
22783 | isl::val val::sub(long v2) const |
22784 | { |
22785 | return this->sub(v2: isl::val(ctx(), v2)); |
22786 | } |
22787 | |
22788 | isl::val_list val::to_list() const |
22789 | { |
22790 | auto res = isl_val_to_list(el: copy()); |
22791 | return manage(ptr: res); |
22792 | } |
22793 | |
22794 | isl::val val::trunc() const |
22795 | { |
22796 | auto res = isl_val_trunc(v: copy()); |
22797 | return manage(ptr: res); |
22798 | } |
22799 | |
22800 | isl::val val::zero(isl::ctx ctx) |
22801 | { |
22802 | auto res = isl_val_zero(ctx: ctx.release()); |
22803 | return manage(ptr: res); |
22804 | } |
22805 | |
22806 | inline std::ostream &operator<<(std::ostream &os, const val &obj) |
22807 | { |
22808 | char *str = isl_val_to_str(v: obj.get()); |
22809 | if (!str) { |
22810 | os.setstate(std::ios_base::badbit); |
22811 | return os; |
22812 | } |
22813 | os << str; |
22814 | free(ptr: str); |
22815 | return os; |
22816 | } |
22817 | |
22818 | // implementations for isl::val_list |
22819 | val_list manage(__isl_take isl_val_list *ptr) { |
22820 | return val_list(ptr); |
22821 | } |
22822 | val_list manage_copy(__isl_keep isl_val_list *ptr) { |
22823 | ptr = isl_val_list_copy(list: ptr); |
22824 | return val_list(ptr); |
22825 | } |
22826 | |
22827 | val_list::val_list() |
22828 | : ptr(nullptr) {} |
22829 | |
22830 | val_list::val_list(const val_list &obj) |
22831 | : ptr(nullptr) |
22832 | { |
22833 | ptr = obj.copy(); |
22834 | } |
22835 | |
22836 | val_list::val_list(__isl_take isl_val_list *ptr) |
22837 | : ptr(ptr) {} |
22838 | |
22839 | val_list::val_list(isl::ctx ctx, int n) |
22840 | { |
22841 | auto res = isl_val_list_alloc(ctx: ctx.release(), n); |
22842 | ptr = res; |
22843 | } |
22844 | |
22845 | val_list::val_list(isl::val el) |
22846 | { |
22847 | auto res = isl_val_list_from_val(el: el.release()); |
22848 | ptr = res; |
22849 | } |
22850 | |
22851 | val_list::val_list(isl::ctx ctx, const std::string &str) |
22852 | { |
22853 | auto res = isl_val_list_read_from_str(ctx: ctx.release(), str: str.c_str()); |
22854 | ptr = res; |
22855 | } |
22856 | |
22857 | val_list &val_list::operator=(val_list obj) { |
22858 | std::swap(a&: this->ptr, b&: obj.ptr); |
22859 | return *this; |
22860 | } |
22861 | |
22862 | val_list::~val_list() { |
22863 | if (ptr) |
22864 | isl_val_list_free(list: ptr); |
22865 | } |
22866 | |
22867 | __isl_give isl_val_list *val_list::copy() const & { |
22868 | return isl_val_list_copy(list: ptr); |
22869 | } |
22870 | |
22871 | __isl_keep isl_val_list *val_list::get() const { |
22872 | return ptr; |
22873 | } |
22874 | |
22875 | __isl_give isl_val_list *val_list::release() { |
22876 | isl_val_list *tmp = ptr; |
22877 | ptr = nullptr; |
22878 | return tmp; |
22879 | } |
22880 | |
22881 | bool val_list::is_null() const { |
22882 | return ptr == nullptr; |
22883 | } |
22884 | |
22885 | isl::ctx val_list::ctx() const { |
22886 | return isl::ctx(isl_val_list_get_ctx(list: ptr)); |
22887 | } |
22888 | |
22889 | isl::val_list val_list::add(isl::val el) const |
22890 | { |
22891 | auto res = isl_val_list_add(list: copy(), el: el.release()); |
22892 | return manage(ptr: res); |
22893 | } |
22894 | |
22895 | isl::val_list val_list::add(long el) const |
22896 | { |
22897 | return this->add(el: isl::val(ctx(), el)); |
22898 | } |
22899 | |
22900 | isl::val val_list::at(int index) const |
22901 | { |
22902 | auto res = isl_val_list_get_at(list: get(), index); |
22903 | return manage(ptr: res); |
22904 | } |
22905 | |
22906 | isl::val val_list::get_at(int index) const |
22907 | { |
22908 | return at(index); |
22909 | } |
22910 | |
22911 | isl::val_list val_list::clear() const |
22912 | { |
22913 | auto res = isl_val_list_clear(list: copy()); |
22914 | return manage(ptr: res); |
22915 | } |
22916 | |
22917 | isl::val_list val_list::concat(isl::val_list list2) const |
22918 | { |
22919 | auto res = isl_val_list_concat(list1: copy(), list2: list2.release()); |
22920 | return manage(ptr: res); |
22921 | } |
22922 | |
22923 | isl::val_list val_list::drop(unsigned int first, unsigned int n) const |
22924 | { |
22925 | auto res = isl_val_list_drop(list: copy(), first, n); |
22926 | return manage(ptr: res); |
22927 | } |
22928 | |
22929 | stat val_list::foreach(const std::function<stat(isl::val)> &fn) const |
22930 | { |
22931 | struct fn_data { |
22932 | std::function<stat(isl::val)> func; |
22933 | } fn_data = { .func: fn }; |
22934 | auto fn_lambda = [](isl_val *arg_0, void *arg_1) -> isl_stat { |
22935 | auto *data = static_cast<struct fn_data *>(arg_1); |
22936 | auto ret = (data->func)(manage(ptr: arg_0)); |
22937 | return ret.release(); |
22938 | }; |
22939 | auto res = isl_val_list_foreach(list: get(), fn: fn_lambda, user: &fn_data); |
22940 | return manage(val: res); |
22941 | } |
22942 | |
22943 | isl::val_list val_list::insert(unsigned int pos, isl::val el) const |
22944 | { |
22945 | auto res = isl_val_list_insert(list: copy(), pos, el: el.release()); |
22946 | return manage(ptr: res); |
22947 | } |
22948 | |
22949 | isl::val_list val_list::insert(unsigned int pos, long el) const |
22950 | { |
22951 | return this->insert(pos, el: isl::val(ctx(), el)); |
22952 | } |
22953 | |
22954 | class size val_list::size() const |
22955 | { |
22956 | auto res = isl_val_list_size(list: get()); |
22957 | return manage(val: res); |
22958 | } |
22959 | |
22960 | inline std::ostream &operator<<(std::ostream &os, const val_list &obj) |
22961 | { |
22962 | char *str = isl_val_list_to_str(list: obj.get()); |
22963 | if (!str) { |
22964 | os.setstate(std::ios_base::badbit); |
22965 | return os; |
22966 | } |
22967 | os << str; |
22968 | free(ptr: str); |
22969 | return os; |
22970 | } |
22971 | } // namespace isl |
22972 | |
22973 | #endif /* ISL_CPP_CHECKED */ |
22974 | |