Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
14 | pmbaty | 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(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(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(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(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(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.release(), 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.release(), val.release()); |
||
4879 | ptr = res; |
||
4880 | } |
||
4881 | |||
4882 | aff::aff(isl::local_space ls) |
||
4883 | { |
||
4884 | auto res = isl_aff_zero_on_domain(ls.release()); |
||
4885 | ptr = res; |
||
4886 | } |
||
4887 | |||
4888 | aff &aff::operator=(aff obj) { |
||
4889 | std::swap(this->ptr, obj.ptr); |
||
4890 | return *this; |
||
4891 | } |
||
4892 | |||
4893 | aff::~aff() { |
||
4894 | if (ptr) |
||
4895 | isl_aff_free(ptr); |
||
4896 | } |
||
4897 | |||
4898 | __isl_give isl_aff *aff::copy() const & { |
||
4899 | return isl_aff_copy(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(ptr)); |
||
4918 | } |
||
4919 | |||
4920 | isl::aff aff::add(isl::aff aff2) const |
||
4921 | { |
||
4922 | auto res = isl_aff_add(copy(), aff2.release()); |
||
4923 | return manage(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(copy(), v.release()); |
||
4964 | return manage(res); |
||
4965 | } |
||
4966 | |||
4967 | isl::aff aff::add_constant(long v) const |
||
4968 | { |
||
4969 | return this->add_constant(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(copy(), v); |
||
4980 | return manage(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(copy(), id.release()); |
||
5041 | return manage(res); |
||
5042 | } |
||
5043 | |||
5044 | isl::basic_set aff::bind(const std::string &id) const |
||
5045 | { |
||
5046 | return this->bind(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(copy()); |
||
5067 | return manage(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(get()); |
||
5088 | return manage(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(get()); |
||
5099 | return manage(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(copy(), aff2.release()); |
||
5120 | return manage(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(copy(), aff2.release()); |
||
5146 | return manage(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(copy(), pnt.release()); |
||
5157 | return manage(res); |
||
5158 | } |
||
5159 | |||
5160 | isl::pw_multi_aff aff::extract_pw_multi_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(copy()); |
||
5193 | return manage(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(copy(), aff2.release()); |
||
5214 | return manage(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(copy(), context.release()); |
||
5225 | return manage(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(isl::set(context)); |
||
5236 | } |
||
5237 | |||
5238 | isl::aff aff::gist(const isl::point &context) const |
||
5239 | { |
||
5240 | return this->gist(isl::set(context)); |
||
5241 | } |
||
5242 | |||
5243 | isl::set aff::gt_set(isl::aff aff2) const |
||
5244 | { |
||
5245 | auto res = isl_aff_gt_set(copy(), aff2.release()); |
||
5246 | return manage(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(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(get()); |
||
5327 | return manage(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(copy(), aff2.release()); |
||
5353 | return manage(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(copy(), aff2.release()); |
||
5369 | return manage(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(copy(), mod.release()); |
||
5410 | return manage(res); |
||
5411 | } |
||
5412 | |||
5413 | isl::aff aff::mod(long mod) const |
||
5414 | { |
||
5415 | return this->mod(isl::val(ctx(), mod)); |
||
5416 | } |
||
5417 | |||
5418 | isl::aff aff::mul(isl::aff aff2) const |
||
5419 | { |
||
5420 | auto res = isl_aff_mul(copy(), aff2.release()); |
||
5421 | return manage(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(copy(), aff2.release()); |
||
5437 | return manage(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(copy()); |
||
5448 | return manage(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(copy(), ma.release()); |
||
5499 | return manage(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(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(copy(), v.release()); |
||
5580 | return manage(res); |
||
5581 | } |
||
5582 | |||
5583 | isl::aff aff::scale(long v) const |
||
5584 | { |
||
5585 | return this->scale(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(copy(), v.release()); |
||
5596 | return manage(res); |
||
5597 | } |
||
5598 | |||
5599 | isl::aff aff::scale_down(long v) const |
||
5600 | { |
||
5601 | return this->scale_down(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(copy(), v); |
||
5632 | return manage(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, 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(copy(), aff2.release()); |
||
5683 | return manage(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(copy()); |
||
5749 | return manage(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(copy(), domain.release()); |
||
5785 | return manage(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.release(), static_cast<enum isl_dim_type>(type), pos); |
||
5821 | return manage(res); |
||
5822 | } |
||
5823 | |||
5824 | isl::aff aff::zero_on_domain(isl::space space) |
||
5825 | { |
||
5826 | auto res = isl_aff_zero_on_domain_space(space.release()); |
||
5827 | return manage(res); |
||
5828 | } |
||
5829 | |||
5830 | inline std::ostream &operator<<(std::ostream &os, const aff &obj) |
||
5831 | { |
||
5832 | char *str = isl_aff_to_str(obj.get()); |
||
5833 | if (!str) { |
||
5834 | os.setstate(std::ios_base::badbit); |
||
5835 | return os; |
||
5836 | } |
||
5837 | os << str; |
||
5838 | free(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(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.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.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.release(), str.c_str()); |
||
5878 | ptr = res; |
||
5879 | } |
||
5880 | |||
5881 | aff_list &aff_list::operator=(aff_list obj) { |
||
5882 | std::swap(this->ptr, obj.ptr); |
||
5883 | return *this; |
||
5884 | } |
||
5885 | |||
5886 | aff_list::~aff_list() { |
||
5887 | if (ptr) |
||
5888 | isl_aff_list_free(ptr); |
||
5889 | } |
||
5890 | |||
5891 | __isl_give isl_aff_list *aff_list::copy() const & { |
||
5892 | return isl_aff_list_copy(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(ptr)); |
||
5911 | } |
||
5912 | |||
5913 | isl::aff_list aff_list::add(isl::aff el) const |
||
5914 | { |
||
5915 | auto res = isl_aff_list_add(copy(), el.release()); |
||
5916 | return manage(res); |
||
5917 | } |
||
5918 | |||
5919 | isl::aff aff_list::at(int index) const |
||
5920 | { |
||
5921 | auto res = isl_aff_list_get_at(get(), index); |
||
5922 | return manage(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(copy()); |
||
5933 | return manage(res); |
||
5934 | } |
||
5935 | |||
5936 | isl::aff_list aff_list::concat(isl::aff_list list2) const |
||
5937 | { |
||
5938 | auto res = isl_aff_list_concat(copy(), list2.release()); |
||
5939 | return manage(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(copy(), first, n); |
||
5945 | return manage(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 = { 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(arg_0)); |
||
5956 | return ret.release(); |
||
5957 | }; |
||
5958 | auto res = isl_aff_list_foreach(get(), fn_lambda, &fn_data); |
||
5959 | return manage(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(copy(), pos, el.release()); |
||
5965 | return manage(res); |
||
5966 | } |
||
5967 | |||
5968 | class size aff_list::size() const |
||
5969 | { |
||
5970 | auto res = isl_aff_list_size(get()); |
||
5971 | return manage(res); |
||
5972 | } |
||
5973 | |||
5974 | inline std::ostream &operator<<(std::ostream &os, const aff_list &obj) |
||
5975 | { |
||
5976 | char *str = isl_aff_list_to_str(obj.get()); |
||
5977 | if (!str) { |
||
5978 | os.setstate(std::ios_base::badbit); |
||
5979 | return os; |
||
5980 | } |
||
5981 | os << str; |
||
5982 | free(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(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.release()); |
||
6011 | ptr = res; |
||
6012 | } |
||
6013 | |||
6014 | ast_build &ast_build::operator=(ast_build obj) { |
||
6015 | std::swap(this->ptr, obj.ptr); |
||
6016 | copy_callbacks(obj); |
||
6017 | return *this; |
||
6018 | } |
||
6019 | |||
6020 | ast_build::~ast_build() { |
||
6021 | if (ptr) |
||
6022 | isl_ast_build_free(ptr); |
||
6023 | } |
||
6024 | |||
6025 | __isl_give isl_ast_build *ast_build::copy() const & { |
||
6026 | return isl_ast_build_copy(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(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(arg_0), manage_copy(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(ptr, &at_each_domain, 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(get(), mpa.release()); |
||
6079 | return manage(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(get(), pma.release()); |
||
6085 | return manage(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(get(), mpa.release()); |
||
6091 | return manage(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(get(), pma.release()); |
||
6097 | return manage(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(get(), pa.release()); |
||
6103 | return manage(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(get(), set.release()); |
||
6109 | return manage(res); |
||
6110 | } |
||
6111 | |||
6112 | isl::ast_build ast_build::from_context(isl::set set) |
||
6113 | { |
||
6114 | auto res = isl_ast_build_from_context(set.release()); |
||
6115 | return manage(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(get(), schedule.release()); |
||
6121 | return manage(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(get(), schedule.release()); |
||
6127 | return manage(res); |
||
6128 | } |
||
6129 | |||
6130 | isl::ast_build ast_build::restrict(isl::set set) const |
||
6131 | { |
||
6132 | auto res = isl_ast_build_restrict(copy(), set.release()); |
||
6133 | return manage(res).copy_callbacks(*this); |
||
6134 | } |
||
6135 | |||
6136 | isl::union_map ast_build::schedule() const |
||
6137 | { |
||
6138 | auto res = isl_ast_build_get_schedule(get()); |
||
6139 | return manage(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(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(this->ptr, obj.ptr); |
||
6170 | return *this; |
||
6171 | } |
||
6172 | |||
6173 | ast_expr::~ast_expr() { |
||
6174 | if (ptr) |
||
6175 | isl_ast_expr_free(ptr); |
||
6176 | } |
||
6177 | |||
6178 | __isl_give isl_ast_expr *ast_expr::copy() const & { |
||
6179 | return isl_ast_expr_copy(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(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(ptr)); |
||
6218 | } |
||
6219 | |||
6220 | isl::ast_expr ast_expr::add(isl::ast_expr expr2) const |
||
6221 | { |
||
6222 | auto res = isl_ast_expr_add(copy(), expr2.release()); |
||
6223 | return manage(res); |
||
6224 | } |
||
6225 | |||
6226 | isl::ast_expr ast_expr::address_of() const |
||
6227 | { |
||
6228 | auto res = isl_ast_expr_address_of(copy()); |
||
6229 | return manage(res); |
||
6230 | } |
||
6231 | |||
6232 | isl::ast_expr ast_expr::eq(isl::ast_expr expr2) const |
||
6233 | { |
||
6234 | auto res = isl_ast_expr_eq(copy(), expr2.release()); |
||
6235 | return manage(res); |
||
6236 | } |
||
6237 | |||
6238 | isl::ast_expr ast_expr::from_val(isl::val v) |
||
6239 | { |
||
6240 | auto res = isl_ast_expr_from_val(v.release()); |
||
6241 | return manage(res); |
||
6242 | } |
||
6243 | |||
6244 | isl::id ast_expr::id() const |
||
6245 | { |
||
6246 | auto res = isl_ast_expr_get_id(get()); |
||
6247 | return manage(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(copy(), expr2.release()); |
||
6258 | return manage(res); |
||
6259 | } |
||
6260 | |||
6261 | isl::ast_expr ast_expr::mul(isl::ast_expr expr2) const |
||
6262 | { |
||
6263 | auto res = isl_ast_expr_mul(copy(), expr2.release()); |
||
6264 | return manage(res); |
||
6265 | } |
||
6266 | |||
6267 | isl::ast_expr ast_expr::op_arg(int pos) const |
||
6268 | { |
||
6269 | auto res = isl_ast_expr_get_op_arg(get(), pos); |
||
6270 | return manage(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(get()); |
||
6281 | std::string tmp(res); |
||
6282 | free(res); |
||
6283 | return tmp; |
||
6284 | } |
||
6285 | |||
6286 | isl::val ast_expr::val() const |
||
6287 | { |
||
6288 | auto res = isl_ast_expr_get_val(get()); |
||
6289 | return manage(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(obj.get()); |
||
6300 | if (!str) { |
||
6301 | os.setstate(std::ios_base::badbit); |
||
6302 | return os; |
||
6303 | } |
||
6304 | os << str; |
||
6305 | free(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(this->ptr, obj.ptr); |
||
6323 | return *this; |
||
6324 | } |
||
6325 | |||
6326 | isl::ctx ast_expr_id::ctx() const { |
||
6327 | return isl::ctx(isl_ast_expr_get_ctx(ptr)); |
||
6328 | } |
||
6329 | |||
6330 | isl::id ast_expr_id::id() const |
||
6331 | { |
||
6332 | auto res = isl_ast_expr_id_get_id(get()); |
||
6333 | return manage(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(obj.get()); |
||
6344 | if (!str) { |
||
6345 | os.setstate(std::ios_base::badbit); |
||
6346 | return os; |
||
6347 | } |
||
6348 | os << str; |
||
6349 | free(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(this->ptr, obj.ptr); |
||
6367 | return *this; |
||
6368 | } |
||
6369 | |||
6370 | isl::ctx ast_expr_int::ctx() const { |
||
6371 | return isl::ctx(isl_ast_expr_get_ctx(ptr)); |
||
6372 | } |
||
6373 | |||
6374 | isl::val ast_expr_int::val() const |
||
6375 | { |
||
6376 | auto res = isl_ast_expr_int_get_val(get()); |
||
6377 | return manage(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(obj.get()); |
||
6388 | if (!str) { |
||
6389 | os.setstate(std::ios_base::badbit); |
||
6390 | return os; |
||
6391 | } |
||
6392 | os << str; |
||
6393 | free(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(this->ptr, 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(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(ptr)); |
||
6436 | } |
||
6437 | |||
6438 | isl::ast_expr ast_expr_op::arg(int pos) const |
||
6439 | { |
||
6440 | auto res = isl_ast_expr_op_get_arg(get(), pos); |
||
6441 | return manage(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(get()); |
||
6452 | return manage(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(obj.get()); |
||
6463 | if (!str) { |
||
6464 | os.setstate(std::ios_base::badbit); |
||
6465 | return os; |
||
6466 | } |
||
6467 | os << str; |
||
6468 | free(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(this->ptr, 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(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(obj.get()); |
||
6496 | if (!str) { |
||
6497 | os.setstate(std::ios_base::badbit); |
||
6498 | return os; |
||
6499 | } |
||
6500 | os << str; |
||
6501 | free(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(this->ptr, 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(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(obj.get()); |
||
6529 | if (!str) { |
||
6530 | os.setstate(std::ios_base::badbit); |
||
6531 | return os; |
||
6532 | } |
||
6533 | os << str; |
||
6534 | free(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(this->ptr, 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(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(obj.get()); |
||
6562 | if (!str) { |
||
6563 | os.setstate(std::ios_base::badbit); |
||
6564 | return os; |
||
6565 | } |
||
6566 | os << str; |
||
6567 | free(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(this->ptr, 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(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(obj.get()); |
||
6595 | if (!str) { |
||
6596 | os.setstate(std::ios_base::badbit); |
||
6597 | return os; |
||
6598 | } |
||
6599 | os << str; |
||
6600 | free(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(this->ptr, 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(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(obj.get()); |
||
6628 | if (!str) { |
||
6629 | os.setstate(std::ios_base::badbit); |
||
6630 | return os; |
||
6631 | } |
||
6632 | os << str; |
||
6633 | free(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(this->ptr, 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(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(obj.get()); |
||
6661 | if (!str) { |
||
6662 | os.setstate(std::ios_base::badbit); |
||
6663 | return os; |
||
6664 | } |
||
6665 | os << str; |
||
6666 | free(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(this->ptr, 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(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(obj.get()); |
||
6694 | if (!str) { |
||
6695 | os.setstate(std::ios_base::badbit); |
||
6696 | return os; |
||
6697 | } |
||
6698 | os << str; |
||
6699 | free(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(this->ptr, 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(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(obj.get()); |
||
6727 | if (!str) { |
||
6728 | os.setstate(std::ios_base::badbit); |
||
6729 | return os; |
||
6730 | } |
||
6731 | os << str; |
||
6732 | free(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(this->ptr, 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(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(obj.get()); |
||
6760 | if (!str) { |
||
6761 | os.setstate(std::ios_base::badbit); |
||
6762 | return os; |
||
6763 | } |
||
6764 | os << str; |
||
6765 | free(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(this->ptr, 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(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(obj.get()); |
||
6793 | if (!str) { |
||
6794 | os.setstate(std::ios_base::badbit); |
||
6795 | return os; |
||
6796 | } |
||
6797 | os << str; |
||
6798 | free(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(this->ptr, 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(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(obj.get()); |
||
6826 | if (!str) { |
||
6827 | os.setstate(std::ios_base::badbit); |
||
6828 | return os; |
||
6829 | } |
||
6830 | os << str; |
||
6831 | free(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(this->ptr, 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(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(obj.get()); |
||
6859 | if (!str) { |
||
6860 | os.setstate(std::ios_base::badbit); |
||
6861 | return os; |
||
6862 | } |
||
6863 | os << str; |
||
6864 | free(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(this->ptr, 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(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(obj.get()); |
||
6892 | if (!str) { |
||
6893 | os.setstate(std::ios_base::badbit); |
||
6894 | return os; |
||
6895 | } |
||
6896 | os << str; |
||
6897 | free(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(this->ptr, 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(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(obj.get()); |
||
6925 | if (!str) { |
||
6926 | os.setstate(std::ios_base::badbit); |
||
6927 | return os; |
||
6928 | } |
||
6929 | os << str; |
||
6930 | free(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(this->ptr, 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(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(obj.get()); |
||
6958 | if (!str) { |
||
6959 | os.setstate(std::ios_base::badbit); |
||
6960 | return os; |
||
6961 | } |
||
6962 | os << str; |
||
6963 | free(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(this->ptr, 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(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(obj.get()); |
||
6991 | if (!str) { |
||
6992 | os.setstate(std::ios_base::badbit); |
||
6993 | return os; |
||
6994 | } |
||
6995 | os << str; |
||
6996 | free(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(this->ptr, 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(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(obj.get()); |
||
7024 | if (!str) { |
||
7025 | os.setstate(std::ios_base::badbit); |
||
7026 | return os; |
||
7027 | } |
||
7028 | os << str; |
||
7029 | free(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(this->ptr, 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(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(obj.get()); |
||
7057 | if (!str) { |
||
7058 | os.setstate(std::ios_base::badbit); |
||
7059 | return os; |
||
7060 | } |
||
7061 | os << str; |
||
7062 | free(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(this->ptr, 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(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(obj.get()); |
||
7090 | if (!str) { |
||
7091 | os.setstate(std::ios_base::badbit); |
||
7092 | return os; |
||
7093 | } |
||
7094 | os << str; |
||
7095 | free(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(this->ptr, 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(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(obj.get()); |
||
7123 | if (!str) { |
||
7124 | os.setstate(std::ios_base::badbit); |
||
7125 | return os; |
||
7126 | } |
||
7127 | os << str; |
||
7128 | free(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(this->ptr, 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(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(obj.get()); |
||
7156 | if (!str) { |
||
7157 | os.setstate(std::ios_base::badbit); |
||
7158 | return os; |
||
7159 | } |
||
7160 | os << str; |
||
7161 | free(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(this->ptr, 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(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(obj.get()); |
||
7189 | if (!str) { |
||
7190 | os.setstate(std::ios_base::badbit); |
||
7191 | return os; |
||
7192 | } |
||
7193 | os << str; |
||
7194 | free(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(this->ptr, 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(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(obj.get()); |
||
7222 | if (!str) { |
||
7223 | os.setstate(std::ios_base::badbit); |
||
7224 | return os; |
||
7225 | } |
||
7226 | os << str; |
||
7227 | free(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(this->ptr, 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(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(obj.get()); |
||
7255 | if (!str) { |
||
7256 | os.setstate(std::ios_base::badbit); |
||
7257 | return os; |
||
7258 | } |
||
7259 | os << str; |
||
7260 | free(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(this->ptr, 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(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(obj.get()); |
||
7288 | if (!str) { |
||
7289 | os.setstate(std::ios_base::badbit); |
||
7290 | return os; |
||
7291 | } |
||
7292 | os << str; |
||
7293 | free(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(this->ptr, 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(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(obj.get()); |
||
7321 | if (!str) { |
||
7322 | os.setstate(std::ios_base::badbit); |
||
7323 | return os; |
||
7324 | } |
||
7325 | os << str; |
||
7326 | free(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(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(this->ptr, obj.ptr); |
||
7353 | return *this; |
||
7354 | } |
||
7355 | |||
7356 | ast_node::~ast_node() { |
||
7357 | if (ptr) |
||
7358 | isl_ast_node_free(ptr); |
||
7359 | } |
||
7360 | |||
7361 | __isl_give isl_ast_node *ast_node::copy() const & { |
||
7362 | return isl_ast_node_copy(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(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(ptr)); |
||
7401 | } |
||
7402 | |||
7403 | isl::id ast_node::annotation() const |
||
7404 | { |
||
7405 | auto res = isl_ast_node_get_annotation(get()); |
||
7406 | return manage(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(get()); |
||
7417 | std::string tmp(res); |
||
7418 | free(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(copy()); |
||
7425 | return manage(res); |
||
7426 | } |
||
7427 | |||
7428 | inline std::ostream &operator<<(std::ostream &os, const ast_node &obj) |
||
7429 | { |
||
7430 | char *str = isl_ast_node_to_str(obj.get()); |
||
7431 | if (!str) { |
||
7432 | os.setstate(std::ios_base::badbit); |
||
7433 | return os; |
||
7434 | } |
||
7435 | os << str; |
||
7436 | free(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(this->ptr, obj.ptr); |
||
7454 | return *this; |
||
7455 | } |
||
7456 | |||
7457 | isl::ctx ast_node_block::ctx() const { |
||
7458 | return isl::ctx(isl_ast_node_get_ctx(ptr)); |
||
7459 | } |
||
7460 | |||
7461 | isl::ast_node_list ast_node_block::children() const |
||
7462 | { |
||
7463 | auto res = isl_ast_node_block_get_children(get()); |
||
7464 | return manage(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(obj.get()); |
||
7475 | if (!str) { |
||
7476 | os.setstate(std::ios_base::badbit); |
||
7477 | return os; |
||
7478 | } |
||
7479 | os << str; |
||
7480 | free(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(this->ptr, obj.ptr); |
||
7498 | return *this; |
||
7499 | } |
||
7500 | |||
7501 | isl::ctx ast_node_for::ctx() const { |
||
7502 | return isl::ctx(isl_ast_node_get_ctx(ptr)); |
||
7503 | } |
||
7504 | |||
7505 | isl::ast_node ast_node_for::body() const |
||
7506 | { |
||
7507 | auto res = isl_ast_node_for_get_body(get()); |
||
7508 | return manage(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(get()); |
||
7519 | return manage(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(get()); |
||
7530 | return manage(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(get()); |
||
7541 | return manage(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(get()); |
||
7552 | return manage(res); |
||
7553 | } |
||
7554 | |||
7555 | isl::ast_expr ast_node_for::iterator() const |
||
7556 | { |
||
7557 | auto res = isl_ast_node_for_get_iterator(get()); |
||
7558 | return manage(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(obj.get()); |
||
7569 | if (!str) { |
||
7570 | os.setstate(std::ios_base::badbit); |
||
7571 | return os; |
||
7572 | } |
||
7573 | os << str; |
||
7574 | free(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(this->ptr, obj.ptr); |
||
7592 | return *this; |
||
7593 | } |
||
7594 | |||
7595 | isl::ctx ast_node_if::ctx() const { |
||
7596 | return isl::ctx(isl_ast_node_get_ctx(ptr)); |
||
7597 | } |
||
7598 | |||
7599 | isl::ast_expr ast_node_if::cond() const |
||
7600 | { |
||
7601 | auto res = isl_ast_node_if_get_cond(get()); |
||
7602 | return manage(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(get()); |
||
7613 | return manage(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(get()); |
||
7624 | return manage(res); |
||
7625 | } |
||
7626 | |||
7627 | isl::ast_node ast_node_if::then_node() const |
||
7628 | { |
||
7629 | auto res = isl_ast_node_if_get_then_node(get()); |
||
7630 | return manage(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(obj.get()); |
||
7641 | if (!str) { |
||
7642 | os.setstate(std::ios_base::badbit); |
||
7643 | return os; |
||
7644 | } |
||
7645 | os << str; |
||
7646 | free(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(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.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.release()); |
||
7680 | ptr = res; |
||
7681 | } |
||
7682 | |||
7683 | ast_node_list &ast_node_list::operator=(ast_node_list obj) { |
||
7684 | std::swap(this->ptr, obj.ptr); |
||
7685 | return *this; |
||
7686 | } |
||
7687 | |||
7688 | ast_node_list::~ast_node_list() { |
||
7689 | if (ptr) |
||
7690 | isl_ast_node_list_free(ptr); |
||
7691 | } |
||
7692 | |||
7693 | __isl_give isl_ast_node_list *ast_node_list::copy() const & { |
||
7694 | return isl_ast_node_list_copy(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(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(copy(), el.release()); |
||
7718 | return manage(res); |
||
7719 | } |
||
7720 | |||
7721 | isl::ast_node ast_node_list::at(int index) const |
||
7722 | { |
||
7723 | auto res = isl_ast_node_list_get_at(get(), index); |
||
7724 | return manage(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(copy()); |
||
7735 | return manage(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(copy(), list2.release()); |
||
7741 | return manage(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(copy(), first, n); |
||
7747 | return manage(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 = { 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(arg_0)); |
||
7758 | return ret.release(); |
||
7759 | }; |
||
7760 | auto res = isl_ast_node_list_foreach(get(), fn_lambda, &fn_data); |
||
7761 | return manage(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(copy(), pos, el.release()); |
||
7767 | return manage(res); |
||
7768 | } |
||
7769 | |||
7770 | class size ast_node_list::size() const |
||
7771 | { |
||
7772 | auto res = isl_ast_node_list_size(get()); |
||
7773 | return manage(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(obj.get()); |
||
7779 | if (!str) { |
||
7780 | os.setstate(std::ios_base::badbit); |
||
7781 | return os; |
||
7782 | } |
||
7783 | os << str; |
||
7784 | free(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(this->ptr, obj.ptr); |
||
7802 | return *this; |
||
7803 | } |
||
7804 | |||
7805 | isl::ctx ast_node_mark::ctx() const { |
||
7806 | return isl::ctx(isl_ast_node_get_ctx(ptr)); |
||
7807 | } |
||
7808 | |||
7809 | isl::id ast_node_mark::id() const |
||
7810 | { |
||
7811 | auto res = isl_ast_node_mark_get_id(get()); |
||
7812 | return manage(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(get()); |
||
7823 | return manage(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(obj.get()); |
||
7834 | if (!str) { |
||
7835 | os.setstate(std::ios_base::badbit); |
||
7836 | return os; |
||
7837 | } |
||
7838 | os << str; |
||
7839 | free(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(this->ptr, obj.ptr); |
||
7857 | return *this; |
||
7858 | } |
||
7859 | |||
7860 | isl::ctx ast_node_user::ctx() const { |
||
7861 | return isl::ctx(isl_ast_node_get_ctx(ptr)); |
||
7862 | } |
||
7863 | |||
7864 | isl::ast_expr ast_node_user::expr() const |
||
7865 | { |
||
7866 | auto res = isl_ast_node_user_get_expr(get()); |
||
7867 | return manage(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(obj.get()); |
||
7878 | if (!str) { |
||
7879 | os.setstate(std::ios_base::badbit); |
||
7880 | return os; |
||
7881 | } |
||
7882 | os << str; |
||
7883 | free(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(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.release(), str.c_str()); |
||
7911 | ptr = res; |
||
7912 | } |
||
7913 | |||
7914 | basic_map &basic_map::operator=(basic_map obj) { |
||
7915 | std::swap(this->ptr, obj.ptr); |
||
7916 | return *this; |
||
7917 | } |
||
7918 | |||
7919 | basic_map::~basic_map() { |
||
7920 | if (ptr) |
||
7921 | isl_basic_map_free(ptr); |
||
7922 | } |
||
7923 | |||
7924 | __isl_give isl_basic_map *basic_map::copy() const & { |
||
7925 | return isl_basic_map_copy(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(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(copy()); |
||
7959 | return manage(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(copy(), bmap2.release()); |
||
7970 | return manage(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(copy(), bmap2.release()); |
||
7986 | return manage(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(copy()); |
||
8062 | return manage(res); |
||
8063 | } |
||
8064 | |||
8065 | isl::basic_map basic_map::detect_equalities() const |
||
8066 | { |
||
8067 | auto res = isl_basic_map_detect_equalities(copy()); |
||
8068 | return manage(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(copy()); |
||
8089 | return manage(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.release(), n_equal); |
||
8145 | return manage(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(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2); |
||
8151 | return manage(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::extract_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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
8177 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, v.release()); |
||
8183 | return manage(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, 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(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(copy()); |
||
8214 | return manage(res); |
||
8215 | } |
||
8216 | |||
8217 | isl::basic_map basic_map::flatten_domain() const |
||
8218 | { |
||
8219 | auto res = isl_basic_map_flatten_domain(copy()); |
||
8220 | return manage(res); |
||
8221 | } |
||
8222 | |||
8223 | isl::basic_map basic_map::flatten_range() const |
||
8224 | { |
||
8225 | auto res = isl_basic_map_flatten_range(copy()); |
||
8226 | return manage(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(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.release()); |
||
8252 | return manage(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.release(), range.release()); |
||
8258 | return manage(res); |
||
8259 | } |
||
8260 | |||
8261 | isl::basic_map basic_map::gist(isl::basic_map context) const |
||
8262 | { |
||
8263 | auto res = isl_basic_map_gist(copy(), context.release()); |
||
8264 | return manage(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(copy(), bmap2.release()); |
||
8325 | return manage(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(copy(), bset.release()); |
||
8341 | return manage(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(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(copy(), bset.release()); |
||
8392 | return manage(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(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(get()); |
||
8458 | return manage(res); |
||
8459 | } |
||
8460 | |||
8461 | boolean basic_map::is_equal(const isl::basic_map &bmap2) const |
||
8462 | { |
||
8463 | auto res = isl_basic_map_is_equal(get(), bmap2.get()); |
||
8464 | return manage(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(get(), bmap2.get()); |
||
8500 | return manage(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(copy()); |
||
8541 | return manage(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(copy()); |
||
8552 | return manage(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
8608 | return manage(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(copy()); |
||
8729 | return manage(res); |
||
8730 | } |
||
8731 | |||
8732 | isl::basic_map basic_map::sample() const |
||
8733 | { |
||
8734 | auto res = isl_basic_map_sample(copy()); |
||
8735 | return manage(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, 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(copy()); |
||
8801 | return manage(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(copy(), bmap2.release()); |
||
8822 | return manage(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.release()); |
||
8838 | return manage(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(obj.get()); |
||
8869 | if (!str) { |
||
8870 | os.setstate(std::ios_base::badbit); |
||
8871 | return os; |
||
8872 | } |
||
8873 | os << str; |
||
8874 | free(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(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.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.release()); |
||
8908 | ptr = res; |
||
8909 | } |
||
8910 | |||
8911 | basic_map_list &basic_map_list::operator=(basic_map_list obj) { |
||
8912 | std::swap(this->ptr, obj.ptr); |
||
8913 | return *this; |
||
8914 | } |
||
8915 | |||
8916 | basic_map_list::~basic_map_list() { |
||
8917 | if (ptr) |
||
8918 | isl_basic_map_list_free(ptr); |
||
8919 | } |
||
8920 | |||
8921 | __isl_give isl_basic_map_list *basic_map_list::copy() const & { |
||
8922 | return isl_basic_map_list_copy(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(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(copy(), el.release()); |
||
8946 | return manage(res); |
||
8947 | } |
||
8948 | |||
8949 | isl::basic_map basic_map_list::at(int index) const |
||
8950 | { |
||
8951 | auto res = isl_basic_map_list_get_at(get(), index); |
||
8952 | return manage(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(copy()); |
||
8963 | return manage(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(copy(), list2.release()); |
||
8969 | return manage(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(copy(), first, n); |
||
8975 | return manage(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 = { 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(arg_0)); |
||
8986 | return ret.release(); |
||
8987 | }; |
||
8988 | auto res = isl_basic_map_list_foreach(get(), fn_lambda, &fn_data); |
||
8989 | return manage(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(copy(), pos, el.release()); |
||
8995 | return manage(res); |
||
8996 | } |
||
8997 | |||
8998 | class size basic_map_list::size() const |
||
8999 | { |
||
9000 | auto res = isl_basic_map_list_size(get()); |
||
9001 | return manage(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(obj.get()); |
||
9007 | if (!str) { |
||
9008 | os.setstate(std::ios_base::badbit); |
||
9009 | return os; |
||
9010 | } |
||
9011 | os << str; |
||
9012 | free(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(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.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.release(), str.c_str()); |
||
9046 | ptr = res; |
||
9047 | } |
||
9048 | |||
9049 | basic_set &basic_set::operator=(basic_set obj) { |
||
9050 | std::swap(this->ptr, obj.ptr); |
||
9051 | return *this; |
||
9052 | } |
||
9053 | |||
9054 | basic_set::~basic_set() { |
||
9055 | if (ptr) |
||
9056 | isl_basic_set_free(ptr); |
||
9057 | } |
||
9058 | |||
9059 | __isl_give isl_basic_set *basic_set::copy() const & { |
||
9060 | return isl_basic_set_copy(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(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(copy()); |
||
9094 | return manage(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(copy(), bmap.release()); |
||
9105 | return manage(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(copy()); |
||
9166 | return manage(res); |
||
9167 | } |
||
9168 | |||
9169 | class size basic_set::dim(isl::dim type) const |
||
9170 | { |
||
9171 | auto res = isl_basic_set_dim(get(), static_cast<enum isl_dim_type>(type)); |
||
9172 | return manage(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(copy(), pos); |
||
9193 | return manage(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(get(), pos); |
||
9214 | return manage(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::extract_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, 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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
9255 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, v.release()); |
||
9261 | return manage(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, isl::val(ctx(), v)); |
||
9267 | } |
||
9268 | |||
9269 | isl::basic_set basic_set::flatten() const |
||
9270 | { |
||
9271 | auto res = isl_basic_set_flatten(copy()); |
||
9272 | return manage(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(copy(), context.release()); |
||
9293 | return manage(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(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(copy(), bset2.release()); |
||
9349 | return manage(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(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(copy(), bset2.release()); |
||
9370 | return manage(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(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(get()); |
||
9396 | return manage(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(get()); |
||
9412 | return manage(res); |
||
9413 | } |
||
9414 | |||
9415 | boolean basic_set::is_equal(const isl::basic_set &bset2) const |
||
9416 | { |
||
9417 | auto res = isl_basic_set_is_equal(get(), bset2.get()); |
||
9418 | return manage(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(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(get(), bset2.get()); |
||
9459 | return manage(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(isl::basic_set(bset2)); |
||
9475 | } |
||
9476 | |||
9477 | boolean basic_set::is_wrapping() const |
||
9478 | { |
||
9479 | auto res = isl_basic_set_is_wrapping(get()); |
||
9480 | return manage(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(copy()); |
||
9491 | return manage(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(copy()); |
||
9502 | return manage(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, 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(copy()); |
||
9563 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
9609 | return manage(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(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(copy()); |
||
9660 | return manage(res); |
||
9661 | } |
||
9662 | |||
9663 | isl::point basic_set::sample_point() const |
||
9664 | { |
||
9665 | auto res = isl_basic_set_sample_point(copy()); |
||
9666 | return manage(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, 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(get()); |
||
9707 | return manage(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(copy()); |
||
9733 | return manage(res); |
||
9734 | } |
||
9735 | |||
9736 | isl::set basic_set::to_set() const |
||
9737 | { |
||
9738 | auto res = isl_basic_set_to_set(copy()); |
||
9739 | return manage(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(copy(), bset2.release()); |
||
9780 | return manage(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(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.release()); |
||
9801 | return manage(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, 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(obj.get()); |
||
9837 | if (!str) { |
||
9838 | os.setstate(std::ios_base::badbit); |
||
9839 | return os; |
||
9840 | } |
||
9841 | os << str; |
||
9842 | free(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(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.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.release()); |
||
9876 | ptr = res; |
||
9877 | } |
||
9878 | |||
9879 | basic_set_list &basic_set_list::operator=(basic_set_list obj) { |
||
9880 | std::swap(this->ptr, obj.ptr); |
||
9881 | return *this; |
||
9882 | } |
||
9883 | |||
9884 | basic_set_list::~basic_set_list() { |
||
9885 | if (ptr) |
||
9886 | isl_basic_set_list_free(ptr); |
||
9887 | } |
||
9888 | |||
9889 | __isl_give isl_basic_set_list *basic_set_list::copy() const & { |
||
9890 | return isl_basic_set_list_copy(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(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(copy(), el.release()); |
||
9914 | return manage(res); |
||
9915 | } |
||
9916 | |||
9917 | isl::basic_set basic_set_list::at(int index) const |
||
9918 | { |
||
9919 | auto res = isl_basic_set_list_get_at(get(), index); |
||
9920 | return manage(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(copy()); |
||
9931 | return manage(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(copy(), list2.release()); |
||
9937 | return manage(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(copy(), first, n); |
||
9943 | return manage(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 = { 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(arg_0)); |
||
9954 | return ret.release(); |
||
9955 | }; |
||
9956 | auto res = isl_basic_set_list_foreach(get(), fn_lambda, &fn_data); |
||
9957 | return manage(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(copy(), pos, el.release()); |
||
9963 | return manage(res); |
||
9964 | } |
||
9965 | |||
9966 | class size basic_set_list::size() const |
||
9967 | { |
||
9968 | auto res = isl_basic_set_list_size(get()); |
||
9969 | return manage(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(obj.get()); |
||
9975 | if (!str) { |
||
9976 | os.setstate(std::ios_base::badbit); |
||
9977 | return os; |
||
9978 | } |
||
9979 | os << str; |
||
9980 | free(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(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(this->ptr, obj.ptr); |
||
10007 | return *this; |
||
10008 | } |
||
10009 | |||
10010 | constraint::~constraint() { |
||
10011 | if (ptr) |
||
10012 | isl_constraint_free(ptr); |
||
10013 | } |
||
10014 | |||
10015 | __isl_give isl_constraint *constraint::copy() const & { |
||
10016 | return isl_constraint_copy(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(ptr)); |
||
10035 | } |
||
10036 | |||
10037 | isl::constraint constraint::alloc_equality(isl::local_space ls) |
||
10038 | { |
||
10039 | auto res = isl_constraint_alloc_equality(ls.release()); |
||
10040 | return manage(res); |
||
10041 | } |
||
10042 | |||
10043 | isl::constraint constraint::alloc_inequality(isl::local_space ls) |
||
10044 | { |
||
10045 | auto res = isl_constraint_alloc_inequality(ls.release()); |
||
10046 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, v); |
||
10052 | return manage(res); |
||
10053 | } |
||
10054 | |||
10055 | isl::constraint constraint::set_constant_si(int v) const |
||
10056 | { |
||
10057 | auto res = isl_constraint_set_constant_si(copy(), v); |
||
10058 | return manage(res); |
||
10059 | } |
||
10060 | |||
10061 | isl::constraint constraint::set_constant_val(isl::val v) const |
||
10062 | { |
||
10063 | auto res = isl_constraint_set_constant_val(copy(), v.release()); |
||
10064 | return manage(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(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(this->ptr, obj.ptr); |
||
10095 | return *this; |
||
10096 | } |
||
10097 | |||
10098 | fixed_box::~fixed_box() { |
||
10099 | if (ptr) |
||
10100 | isl_fixed_box_free(ptr); |
||
10101 | } |
||
10102 | |||
10103 | __isl_give isl_fixed_box *fixed_box::copy() const & { |
||
10104 | return isl_fixed_box_copy(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(ptr)); |
||
10123 | } |
||
10124 | |||
10125 | boolean fixed_box::is_valid() const |
||
10126 | { |
||
10127 | auto res = isl_fixed_box_is_valid(get()); |
||
10128 | return manage(res); |
||
10129 | } |
||
10130 | |||
10131 | isl::multi_aff fixed_box::offset() const |
||
10132 | { |
||
10133 | auto res = isl_fixed_box_get_offset(get()); |
||
10134 | return manage(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(get()); |
||
10145 | return manage(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(get()); |
||
10156 | return manage(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(obj.get()); |
||
10167 | if (!str) { |
||
10168 | os.setstate(std::ios_base::badbit); |
||
10169 | return os; |
||
10170 | } |
||
10171 | os << str; |
||
10172 | free(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(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.release(), str.c_str()); |
||
10200 | ptr = res; |
||
10201 | } |
||
10202 | |||
10203 | id &id::operator=(id obj) { |
||
10204 | std::swap(this->ptr, obj.ptr); |
||
10205 | return *this; |
||
10206 | } |
||
10207 | |||
10208 | id::~id() { |
||
10209 | if (ptr) |
||
10210 | isl_id_free(ptr); |
||
10211 | } |
||
10212 | |||
10213 | __isl_give isl_id *id::copy() const & { |
||
10214 | return isl_id_copy(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(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.release(), name.c_str(), user); |
||
10238 | return manage(res); |
||
10239 | } |
||
10240 | |||
10241 | std::string id::name() const |
||
10242 | { |
||
10243 | auto res = isl_id_get_name(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(copy()); |
||
10256 | return manage(res); |
||
10257 | } |
||
10258 | |||
10259 | void * id::user() const |
||
10260 | { |
||
10261 | auto res = isl_id_get_user(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(obj.get()); |
||
10273 | if (!str) { |
||
10274 | os.setstate(std::ios_base::badbit); |
||
10275 | return os; |
||
10276 | } |
||
10277 | os << str; |
||
10278 | free(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(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.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.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.release(), str.c_str()); |
||
10318 | ptr = res; |
||
10319 | } |
||
10320 | |||
10321 | id_list &id_list::operator=(id_list obj) { |
||
10322 | std::swap(this->ptr, obj.ptr); |
||
10323 | return *this; |
||
10324 | } |
||
10325 | |||
10326 | id_list::~id_list() { |
||
10327 | if (ptr) |
||
10328 | isl_id_list_free(ptr); |
||
10329 | } |
||
10330 | |||
10331 | __isl_give isl_id_list *id_list::copy() const & { |
||
10332 | return isl_id_list_copy(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(ptr)); |
||
10351 | } |
||
10352 | |||
10353 | isl::id_list id_list::add(isl::id el) const |
||
10354 | { |
||
10355 | auto res = isl_id_list_add(copy(), el.release()); |
||
10356 | return manage(res); |
||
10357 | } |
||
10358 | |||
10359 | isl::id_list id_list::add(const std::string &el) const |
||
10360 | { |
||
10361 | return this->add(isl::id(ctx(), el)); |
||
10362 | } |
||
10363 | |||
10364 | isl::id id_list::at(int index) const |
||
10365 | { |
||
10366 | auto res = isl_id_list_get_at(get(), index); |
||
10367 | return manage(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(copy()); |
||
10378 | return manage(res); |
||
10379 | } |
||
10380 | |||
10381 | isl::id_list id_list::concat(isl::id_list list2) const |
||
10382 | { |
||
10383 | auto res = isl_id_list_concat(copy(), list2.release()); |
||
10384 | return manage(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(copy(), first, n); |
||
10390 | return manage(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 = { 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(arg_0)); |
||
10401 | return ret.release(); |
||
10402 | }; |
||
10403 | auto res = isl_id_list_foreach(get(), fn_lambda, &fn_data); |
||
10404 | return manage(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(copy(), pos, el.release()); |
||
10410 | return manage(res); |
||
10411 | } |
||
10412 | |||
10413 | isl::id_list id_list::insert(unsigned int pos, const std::string &el) const |
||
10414 | { |
||
10415 | return this->insert(pos, isl::id(ctx(), el)); |
||
10416 | } |
||
10417 | |||
10418 | class size id_list::size() const |
||
10419 | { |
||
10420 | auto res = isl_id_list_size(get()); |
||
10421 | return manage(res); |
||
10422 | } |
||
10423 | |||
10424 | inline std::ostream &operator<<(std::ostream &os, const id_list &obj) |
||
10425 | { |
||
10426 | char *str = isl_id_list_to_str(obj.get()); |
||
10427 | if (!str) { |
||
10428 | os.setstate(std::ios_base::badbit); |
||
10429 | return os; |
||
10430 | } |
||
10431 | os << str; |
||
10432 | free(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(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(this->ptr, 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(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(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(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.release(), min_size); |
||
10492 | return manage(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(copy(), key.release(), val.release()); |
||
10498 | return manage(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(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(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.release()); |
||
10530 | ptr = res; |
||
10531 | } |
||
10532 | |||
10533 | local_space &local_space::operator=(local_space obj) { |
||
10534 | std::swap(this->ptr, obj.ptr); |
||
10535 | return *this; |
||
10536 | } |
||
10537 | |||
10538 | local_space::~local_space() { |
||
10539 | if (ptr) |
||
10540 | isl_local_space_free(ptr); |
||
10541 | } |
||
10542 | |||
10543 | __isl_give isl_local_space *local_space::copy() const & { |
||
10544 | return isl_local_space_copy(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(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(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.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.release(), str.c_str()); |
||
10595 | ptr = res; |
||
10596 | } |
||
10597 | |||
10598 | map &map::operator=(map obj) { |
||
10599 | std::swap(this->ptr, obj.ptr); |
||
10600 | return *this; |
||
10601 | } |
||
10602 | |||
10603 | map::~map() { |
||
10604 | if (ptr) |
||
10605 | isl_map_free(ptr); |
||
10606 | } |
||
10607 | |||
10608 | __isl_give isl_map *map::copy() const & { |
||
10609 | return isl_map_copy(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(ptr)); |
||
10628 | } |
||
10629 | |||
10630 | isl::map map::add_constraint(isl::constraint constraint) const |
||
10631 | { |
||
10632 | auto res = isl_map_add_constraint(copy(), constraint.release()); |
||
10633 | return manage(res); |
||
10634 | } |
||
10635 | |||
10636 | isl::map map::add_dims(isl::dim type, unsigned int n) const |
||
10637 | { |
||
10638 | auto res = isl_map_add_dims(copy(), static_cast<enum isl_dim_type>(type), n); |
||
10639 | return manage(res); |
||
10640 | } |
||
10641 | |||
10642 | isl::basic_map map::affine_hull() const |
||
10643 | { |
||
10644 | auto res = isl_map_affine_hull(copy()); |
||
10645 | return manage(res); |
||
10646 | } |
||
10647 | |||
10648 | isl::map map::align_params(isl::space model) const |
||
10649 | { |
||
10650 | auto res = isl_map_align_params(copy(), model.release()); |
||
10651 | return manage(res); |
||
10652 | } |
||
10653 | |||
10654 | isl::map map::apply_domain(isl::map map2) const |
||
10655 | { |
||
10656 | auto res = isl_map_apply_domain(copy(), map2.release()); |
||
10657 | return manage(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(isl::map(map2)); |
||
10668 | } |
||
10669 | |||
10670 | isl::map map::apply_range(isl::map map2) const |
||
10671 | { |
||
10672 | auto res = isl_map_apply_range(copy(), map2.release()); |
||
10673 | return manage(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(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(copy()); |
||
10699 | return manage(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(get()); |
||
10710 | return manage(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(copy(), tuple.release()); |
||
10721 | return manage(res); |
||
10722 | } |
||
10723 | |||
10724 | isl::set map::bind_range(isl::multi_id tuple) const |
||
10725 | { |
||
10726 | auto res = isl_map_bind_range(copy(), tuple.release()); |
||
10727 | return manage(res); |
||
10728 | } |
||
10729 | |||
10730 | boolean map::can_curry() const |
||
10731 | { |
||
10732 | auto res = isl_map_can_curry(get()); |
||
10733 | return manage(res); |
||
10734 | } |
||
10735 | |||
10736 | isl::map map::coalesce() const |
||
10737 | { |
||
10738 | auto res = isl_map_coalesce(copy()); |
||
10739 | return manage(res); |
||
10740 | } |
||
10741 | |||
10742 | isl::map map::complement() const |
||
10743 | { |
||
10744 | auto res = isl_map_complement(copy()); |
||
10745 | return manage(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(copy()); |
||
10756 | return manage(res); |
||
10757 | } |
||
10758 | |||
10759 | isl::set map::deltas() const |
||
10760 | { |
||
10761 | auto res = isl_map_deltas(copy()); |
||
10762 | return manage(res); |
||
10763 | } |
||
10764 | |||
10765 | isl::map map::detect_equalities() const |
||
10766 | { |
||
10767 | auto res = isl_map_detect_equalities(copy()); |
||
10768 | return manage(res); |
||
10769 | } |
||
10770 | |||
10771 | class size map::dim(isl::dim type) const |
||
10772 | { |
||
10773 | auto res = isl_map_dim(get(), static_cast<enum isl_dim_type>(type)); |
||
10774 | return manage(res); |
||
10775 | } |
||
10776 | |||
10777 | isl::pw_aff map::dim_max(int pos) const |
||
10778 | { |
||
10779 | auto res = isl_map_dim_max(copy(), pos); |
||
10780 | return manage(res); |
||
10781 | } |
||
10782 | |||
10783 | isl::pw_aff map::dim_min(int pos) const |
||
10784 | { |
||
10785 | auto res = isl_map_dim_min(copy(), pos); |
||
10786 | return manage(res); |
||
10787 | } |
||
10788 | |||
10789 | isl::set map::domain() const |
||
10790 | { |
||
10791 | auto res = isl_map_domain(copy()); |
||
10792 | return manage(res); |
||
10793 | } |
||
10794 | |||
10795 | isl::map map::domain_factor_domain() const |
||
10796 | { |
||
10797 | auto res = isl_map_domain_factor_domain(copy()); |
||
10798 | return manage(res); |
||
10799 | } |
||
10800 | |||
10801 | isl::map map::domain_factor_range() const |
||
10802 | { |
||
10803 | auto res = isl_map_domain_factor_range(copy()); |
||
10804 | return manage(res); |
||
10805 | } |
||
10806 | |||
10807 | isl::map map::domain_map() const |
||
10808 | { |
||
10809 | auto res = isl_map_domain_map(copy()); |
||
10810 | return manage(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(copy(), map2.release()); |
||
10821 | return manage(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(isl::map(map2)); |
||
10832 | } |
||
10833 | |||
10834 | class size map::domain_tuple_dim() const |
||
10835 | { |
||
10836 | auto res = isl_map_domain_tuple_dim(get()); |
||
10837 | return manage(res); |
||
10838 | } |
||
10839 | |||
10840 | isl::id map::domain_tuple_id() const |
||
10841 | { |
||
10842 | auto res = isl_map_get_domain_tuple_id(get()); |
||
10843 | return manage(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.release()); |
||
10854 | return manage(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(copy(), mpa.release()); |
||
10860 | return manage(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(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(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(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(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(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2); |
||
10891 | return manage(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::extract_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(copy()); |
||
10907 | return manage(res); |
||
10908 | } |
||
10909 | |||
10910 | isl::map map::factor_range() const |
||
10911 | { |
||
10912 | auto res = isl_map_factor_range(copy()); |
||
10913 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
10919 | return manage(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(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(copy(), map2.release()); |
||
10935 | return manage(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(isl::map(map2)); |
||
10946 | } |
||
10947 | |||
10948 | isl::map map::flatten() const |
||
10949 | { |
||
10950 | auto res = isl_map_flatten(copy()); |
||
10951 | return manage(res); |
||
10952 | } |
||
10953 | |||
10954 | isl::map map::flatten_domain() const |
||
10955 | { |
||
10956 | auto res = isl_map_flatten_domain(copy()); |
||
10957 | return manage(res); |
||
10958 | } |
||
10959 | |||
10960 | isl::map map::flatten_range() const |
||
10961 | { |
||
10962 | auto res = isl_map_flatten_range(copy()); |
||
10963 | return manage(res); |
||
10964 | } |
||
10965 | |||
10966 | isl::map map::floordiv_val(isl::val d) const |
||
10967 | { |
||
10968 | auto res = isl_map_floordiv_val(copy(), d.release()); |
||
10969 | return manage(res); |
||
10970 | } |
||
10971 | |||
10972 | isl::map map::floordiv_val(long d) const |
||
10973 | { |
||
10974 | return this->floordiv_val(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 = { 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(arg_0)); |
||
10985 | return ret.release(); |
||
10986 | }; |
||
10987 | auto res = isl_map_foreach_basic_map(get(), fn_lambda, &fn_data); |
||
10988 | return manage(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.release()); |
||
10999 | return manage(res); |
||
11000 | } |
||
11001 | |||
11002 | isl::map map::from_domain(isl::set set) |
||
11003 | { |
||
11004 | auto res = isl_map_from_domain(set.release()); |
||
11005 | return manage(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.release(), range.release()); |
||
11011 | return manage(res); |
||
11012 | } |
||
11013 | |||
11014 | isl::map map::from_multi_aff(isl::multi_aff maff) |
||
11015 | { |
||
11016 | auto res = isl_map_from_multi_aff(maff.release()); |
||
11017 | return manage(res); |
||
11018 | } |
||
11019 | |||
11020 | isl::map map::from_pw_aff(isl::pw_aff pwaff) |
||
11021 | { |
||
11022 | auto res = isl_map_from_pw_aff(pwaff.release()); |
||
11023 | return manage(res); |
||
11024 | } |
||
11025 | |||
11026 | isl::map map::from_range(isl::set set) |
||
11027 | { |
||
11028 | auto res = isl_map_from_range(set.release()); |
||
11029 | return manage(res); |
||
11030 | } |
||
11031 | |||
11032 | isl::map map::from_union_map(isl::union_map umap) |
||
11033 | { |
||
11034 | auto res = isl_map_from_union_map(umap.release()); |
||
11035 | return manage(res); |
||
11036 | } |
||
11037 | |||
11038 | isl::map map::gist(isl::map context) const |
||
11039 | { |
||
11040 | auto res = isl_map_gist(copy(), context.release()); |
||
11041 | return manage(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(isl::map(context)); |
||
11052 | } |
||
11053 | |||
11054 | isl::map map::gist_domain(isl::set context) const |
||
11055 | { |
||
11056 | auto res = isl_map_gist_domain(copy(), context.release()); |
||
11057 | return manage(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(isl::set(context)); |
||
11068 | } |
||
11069 | |||
11070 | isl::map map::gist_domain(const isl::point &context) const |
||
11071 | { |
||
11072 | return this->gist_domain(isl::set(context)); |
||
11073 | } |
||
11074 | |||
11075 | isl::map map::gist_params(isl::set context) const |
||
11076 | { |
||
11077 | auto res = isl_map_gist_params(copy(), context.release()); |
||
11078 | return manage(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(get()); |
||
11089 | return manage(res); |
||
11090 | } |
||
11091 | |||
11092 | boolean map::has_equal_space(const isl::map &map2) const |
||
11093 | { |
||
11094 | auto res = isl_map_has_equal_space(get(), map2.get()); |
||
11095 | return manage(res); |
||
11096 | } |
||
11097 | |||
11098 | boolean map::has_range_tuple_id() const |
||
11099 | { |
||
11100 | auto res = isl_map_has_range_tuple_id(get()); |
||
11101 | return manage(res); |
||
11102 | } |
||
11103 | |||
11104 | boolean map::has_tuple_id(isl::dim type) const |
||
11105 | { |
||
11106 | auto res = isl_map_has_tuple_id(get(), static_cast<enum isl_dim_type>(type)); |
||
11107 | return manage(res); |
||
11108 | } |
||
11109 | |||
11110 | boolean map::has_tuple_name(isl::dim type) const |
||
11111 | { |
||
11112 | auto res = isl_map_has_tuple_name(get(), static_cast<enum isl_dim_type>(type)); |
||
11113 | return manage(res); |
||
11114 | } |
||
11115 | |||
11116 | isl::map map::identity(isl::space space) |
||
11117 | { |
||
11118 | auto res = isl_map_identity(space.release()); |
||
11119 | return manage(res); |
||
11120 | } |
||
11121 | |||
11122 | isl::map map::intersect(isl::map map2) const |
||
11123 | { |
||
11124 | auto res = isl_map_intersect(copy(), map2.release()); |
||
11125 | return manage(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(isl::map(map2)); |
||
11136 | } |
||
11137 | |||
11138 | isl::map map::intersect_domain(isl::set set) const |
||
11139 | { |
||
11140 | auto res = isl_map_intersect_domain(copy(), set.release()); |
||
11141 | return manage(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(isl::set(set)); |
||
11157 | } |
||
11158 | |||
11159 | isl::map map::intersect_domain(const isl::point &set) const |
||
11160 | { |
||
11161 | return this->intersect_domain(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(copy(), factor.release()); |
||
11167 | return manage(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(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(copy(), factor.release()); |
||
11183 | return manage(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(isl::map(factor)); |
||
11194 | } |
||
11195 | |||
11196 | isl::map map::intersect_params(isl::set params) const |
||
11197 | { |
||
11198 | auto res = isl_map_intersect_params(copy(), params.release()); |
||
11199 | return manage(res); |
||
11200 | } |
||
11201 | |||
11202 | isl::map map::intersect_range(isl::set set) const |
||
11203 | { |
||
11204 | auto res = isl_map_intersect_range(copy(), set.release()); |
||
11205 | return manage(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(isl::set(set)); |
||
11221 | } |
||
11222 | |||
11223 | isl::map map::intersect_range(const isl::point &set) const |
||
11224 | { |
||
11225 | return this->intersect_range(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(copy(), factor.release()); |
||
11231 | return manage(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(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(copy(), factor.release()); |
||
11247 | return manage(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(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(get(), static_cast<enum isl_dim_type>(type), first, n); |
||
11263 | return manage(res); |
||
11264 | } |
||
11265 | |||
11266 | boolean map::is_bijective() const |
||
11267 | { |
||
11268 | auto res = isl_map_is_bijective(get()); |
||
11269 | return manage(res); |
||
11270 | } |
||
11271 | |||
11272 | boolean map::is_disjoint(const isl::map &map2) const |
||
11273 | { |
||
11274 | auto res = isl_map_is_disjoint(get(), map2.get()); |
||
11275 | return manage(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(isl::map(map2)); |
||
11286 | } |
||
11287 | |||
11288 | boolean map::is_empty() const |
||
11289 | { |
||
11290 | auto res = isl_map_is_empty(get()); |
||
11291 | return manage(res); |
||
11292 | } |
||
11293 | |||
11294 | boolean map::is_equal(const isl::map &map2) const |
||
11295 | { |
||
11296 | auto res = isl_map_is_equal(get(), map2.get()); |
||
11297 | return manage(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(isl::map(map2)); |
||
11308 | } |
||
11309 | |||
11310 | boolean map::is_injective() const |
||
11311 | { |
||
11312 | auto res = isl_map_is_injective(get()); |
||
11313 | return manage(res); |
||
11314 | } |
||
11315 | |||
11316 | boolean map::is_single_valued() const |
||
11317 | { |
||
11318 | auto res = isl_map_is_single_valued(get()); |
||
11319 | return manage(res); |
||
11320 | } |
||
11321 | |||
11322 | boolean map::is_strict_subset(const isl::map &map2) const |
||
11323 | { |
||
11324 | auto res = isl_map_is_strict_subset(get(), map2.get()); |
||
11325 | return manage(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(isl::map(map2)); |
||
11336 | } |
||
11337 | |||
11338 | boolean map::is_subset(const isl::map &map2) const |
||
11339 | { |
||
11340 | auto res = isl_map_is_subset(get(), map2.get()); |
||
11341 | return manage(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(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.release()); |
||
11362 | return manage(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(copy(), mpa.release()); |
||
11368 | return manage(res); |
||
11369 | } |
||
11370 | |||
11371 | isl::map map::lex_gt(isl::space set_space) |
||
11372 | { |
||
11373 | auto res = isl_map_lex_gt(set_space.release()); |
||
11374 | return manage(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(copy(), mpa.release()); |
||
11380 | return manage(res); |
||
11381 | } |
||
11382 | |||
11383 | isl::map map::lex_le(isl::space set_space) |
||
11384 | { |
||
11385 | auto res = isl_map_lex_le(set_space.release()); |
||
11386 | return manage(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(copy(), mpa.release()); |
||
11392 | return manage(res); |
||
11393 | } |
||
11394 | |||
11395 | isl::map map::lex_lt(isl::space set_space) |
||
11396 | { |
||
11397 | auto res = isl_map_lex_lt(set_space.release()); |
||
11398 | return manage(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(copy(), mpa.release()); |
||
11404 | return manage(res); |
||
11405 | } |
||
11406 | |||
11407 | isl::map map::lexmax() const |
||
11408 | { |
||
11409 | auto res = isl_map_lexmax(copy()); |
||
11410 | return manage(res); |
||
11411 | } |
||
11412 | |||
11413 | isl::pw_multi_aff map::lexmax_pw_multi_aff() const |
||
11414 | { |
||
11415 | auto res = isl_map_lexmax_pw_multi_aff(copy()); |
||
11416 | return manage(res); |
||
11417 | } |
||
11418 | |||
11419 | isl::map map::lexmin() const |
||
11420 | { |
||
11421 | auto res = isl_map_lexmin(copy()); |
||
11422 | return manage(res); |
||
11423 | } |
||
11424 | |||
11425 | isl::pw_multi_aff map::lexmin_pw_multi_aff() const |
||
11426 | { |
||
11427 | auto res = isl_map_lexmin_pw_multi_aff(copy()); |
||
11428 | return manage(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(copy(), lower.release()); |
||
11434 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
11440 | return manage(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(copy()); |
||
11451 | return manage(res); |
||
11452 | } |
||
11453 | |||
11454 | isl::multi_pw_aff map::min_multi_pw_aff() const |
||
11455 | { |
||
11456 | auto res = isl_map_min_multi_pw_aff(copy()); |
||
11457 | return manage(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(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n); |
||
11463 | return manage(res); |
||
11464 | } |
||
11465 | |||
11466 | class size map::n_basic_map() const |
||
11467 | { |
||
11468 | auto res = isl_map_n_basic_map(get()); |
||
11469 | return manage(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(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2); |
||
11475 | return manage(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(copy()); |
||
11486 | return manage(res); |
||
11487 | } |
||
11488 | |||
11489 | isl::map map::preimage_domain(isl::multi_aff ma) const |
||
11490 | { |
||
11491 | auto res = isl_map_preimage_domain_multi_aff(copy(), ma.release()); |
||
11492 | return manage(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(copy(), mpa.release()); |
||
11498 | return manage(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(copy(), pma.release()); |
||
11504 | return manage(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(copy(), ma.release()); |
||
11515 | return manage(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(copy(), pma.release()); |
||
11521 | return manage(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(copy(), map2.release()); |
||
11532 | return manage(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(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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
11548 | return manage(res); |
||
11549 | } |
||
11550 | |||
11551 | isl::map map::project_out_all_params() const |
||
11552 | { |
||
11553 | auto res = isl_map_project_out_all_params(copy()); |
||
11554 | return manage(res); |
||
11555 | } |
||
11556 | |||
11557 | isl::set map::range() const |
||
11558 | { |
||
11559 | auto res = isl_map_range(copy()); |
||
11560 | return manage(res); |
||
11561 | } |
||
11562 | |||
11563 | isl::map map::range_factor_domain() const |
||
11564 | { |
||
11565 | auto res = isl_map_range_factor_domain(copy()); |
||
11566 | return manage(res); |
||
11567 | } |
||
11568 | |||
11569 | isl::map map::range_factor_range() const |
||
11570 | { |
||
11571 | auto res = isl_map_range_factor_range(copy()); |
||
11572 | return manage(res); |
||
11573 | } |
||
11574 | |||
11575 | isl::fixed_box map::range_lattice_tile() const |
||
11576 | { |
||
11577 | auto res = isl_map_get_range_lattice_tile(get()); |
||
11578 | return manage(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(copy()); |
||
11589 | return manage(res); |
||
11590 | } |
||
11591 | |||
11592 | isl::map map::range_product(isl::map map2) const |
||
11593 | { |
||
11594 | auto res = isl_map_range_product(copy(), map2.release()); |
||
11595 | return manage(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(isl::map(map2)); |
||
11606 | } |
||
11607 | |||
11608 | isl::map map::range_reverse() const |
||
11609 | { |
||
11610 | auto res = isl_map_range_reverse(copy()); |
||
11611 | return manage(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(get()); |
||
11617 | return manage(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(get()); |
||
11628 | return manage(res); |
||
11629 | } |
||
11630 | |||
11631 | isl::id map::range_tuple_id() const |
||
11632 | { |
||
11633 | auto res = isl_map_get_range_tuple_id(get()); |
||
11634 | return manage(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(copy()); |
||
11645 | return manage(res); |
||
11646 | } |
||
11647 | |||
11648 | isl::basic_map map::sample() const |
||
11649 | { |
||
11650 | auto res = isl_map_sample(copy()); |
||
11651 | return manage(res); |
||
11652 | } |
||
11653 | |||
11654 | isl::map map::set_domain_tuple(isl::id id) const |
||
11655 | { |
||
11656 | auto res = isl_map_set_domain_tuple_id(copy(), id.release()); |
||
11657 | return manage(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(copy(), id.release()); |
||
11668 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), id.release()); |
||
11679 | return manage(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, isl::id(ctx(), id)); |
||
11685 | } |
||
11686 | |||
11687 | isl::space map::space() const |
||
11688 | { |
||
11689 | auto res = isl_map_get_space(get()); |
||
11690 | return manage(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(copy(), map2.release()); |
||
11701 | return manage(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(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(copy(), map2.release()); |
||
11727 | return manage(res); |
||
11728 | } |
||
11729 | |||
11730 | isl::map_list map::to_list() const |
||
11731 | { |
||
11732 | auto res = isl_map_to_list(copy()); |
||
11733 | return manage(res); |
||
11734 | } |
||
11735 | |||
11736 | isl::union_map map::to_union_map() const |
||
11737 | { |
||
11738 | auto res = isl_map_to_union_map(copy()); |
||
11739 | return manage(res); |
||
11740 | } |
||
11741 | |||
11742 | isl::id map::tuple_id(isl::dim type) const |
||
11743 | { |
||
11744 | auto res = isl_map_get_tuple_id(get(), static_cast<enum isl_dim_type>(type)); |
||
11745 | return manage(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(copy()); |
||
11756 | return manage(res); |
||
11757 | } |
||
11758 | |||
11759 | isl::map map::unite(isl::map map2) const |
||
11760 | { |
||
11761 | auto res = isl_map_union(copy(), map2.release()); |
||
11762 | return manage(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(isl::map(map2)); |
||
11773 | } |
||
11774 | |||
11775 | isl::map map::universe(isl::space space) |
||
11776 | { |
||
11777 | auto res = isl_map_universe(space.release()); |
||
11778 | return manage(res); |
||
11779 | } |
||
11780 | |||
11781 | isl::basic_map map::unshifted_simple_hull() const |
||
11782 | { |
||
11783 | auto res = isl_map_unshifted_simple_hull(copy()); |
||
11784 | return manage(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(copy(), upper.release()); |
||
11790 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
11796 | return manage(res); |
||
11797 | } |
||
11798 | |||
11799 | isl::set map::wrap() const |
||
11800 | { |
||
11801 | auto res = isl_map_wrap(copy()); |
||
11802 | return manage(res); |
||
11803 | } |
||
11804 | |||
11805 | isl::map map::zip() const |
||
11806 | { |
||
11807 | auto res = isl_map_zip(copy()); |
||
11808 | return manage(res); |
||
11809 | } |
||
11810 | |||
11811 | inline std::ostream &operator<<(std::ostream &os, const map &obj) |
||
11812 | { |
||
11813 | char *str = isl_map_to_str(obj.get()); |
||
11814 | if (!str) { |
||
11815 | os.setstate(std::ios_base::badbit); |
||
11816 | return os; |
||
11817 | } |
||
11818 | os << str; |
||
11819 | free(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(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.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.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.release(), str.c_str()); |
||
11859 | ptr = res; |
||
11860 | } |
||
11861 | |||
11862 | map_list &map_list::operator=(map_list obj) { |
||
11863 | std::swap(this->ptr, obj.ptr); |
||
11864 | return *this; |
||
11865 | } |
||
11866 | |||
11867 | map_list::~map_list() { |
||
11868 | if (ptr) |
||
11869 | isl_map_list_free(ptr); |
||
11870 | } |
||
11871 | |||
11872 | __isl_give isl_map_list *map_list::copy() const & { |
||
11873 | return isl_map_list_copy(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(ptr)); |
||
11892 | } |
||
11893 | |||
11894 | isl::map_list map_list::add(isl::map el) const |
||
11895 | { |
||
11896 | auto res = isl_map_list_add(copy(), el.release()); |
||
11897 | return manage(res); |
||
11898 | } |
||
11899 | |||
11900 | isl::map map_list::at(int index) const |
||
11901 | { |
||
11902 | auto res = isl_map_list_get_at(get(), index); |
||
11903 | return manage(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(copy()); |
||
11914 | return manage(res); |
||
11915 | } |
||
11916 | |||
11917 | isl::map_list map_list::concat(isl::map_list list2) const |
||
11918 | { |
||
11919 | auto res = isl_map_list_concat(copy(), list2.release()); |
||
11920 | return manage(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(copy(), first, n); |
||
11926 | return manage(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 = { 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(arg_0)); |
||
11937 | return ret.release(); |
||
11938 | }; |
||
11939 | auto res = isl_map_list_foreach(get(), fn_lambda, &fn_data); |
||
11940 | return manage(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(copy(), pos, el.release()); |
||
11946 | return manage(res); |
||
11947 | } |
||
11948 | |||
11949 | class size map_list::size() const |
||
11950 | { |
||
11951 | auto res = isl_map_list_size(get()); |
||
11952 | return manage(res); |
||
11953 | } |
||
11954 | |||
11955 | inline std::ostream &operator<<(std::ostream &os, const map_list &obj) |
||
11956 | { |
||
11957 | char *str = isl_map_list_to_str(obj.get()); |
||
11958 | if (!str) { |
||
11959 | os.setstate(std::ios_base::badbit); |
||
11960 | return os; |
||
11961 | } |
||
11962 | os << str; |
||
11963 | free(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(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.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.release(), 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.release(), str.c_str()); |
||
12003 | ptr = res; |
||
12004 | } |
||
12005 | |||
12006 | multi_aff &multi_aff::operator=(multi_aff obj) { |
||
12007 | std::swap(this->ptr, obj.ptr); |
||
12008 | return *this; |
||
12009 | } |
||
12010 | |||
12011 | multi_aff::~multi_aff() { |
||
12012 | if (ptr) |
||
12013 | isl_multi_aff_free(ptr); |
||
12014 | } |
||
12015 | |||
12016 | __isl_give isl_multi_aff *multi_aff::copy() const & { |
||
12017 | return isl_multi_aff_copy(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(ptr)); |
||
12036 | } |
||
12037 | |||
12038 | isl::multi_aff multi_aff::add(isl::multi_aff multi2) const |
||
12039 | { |
||
12040 | auto res = isl_multi_aff_add(copy(), multi2.release()); |
||
12041 | return manage(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(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(copy(), mv.release()); |
||
12072 | return manage(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(copy(), v.release()); |
||
12078 | return manage(res); |
||
12079 | } |
||
12080 | |||
12081 | isl::multi_aff multi_aff::add_constant(long v) const |
||
12082 | { |
||
12083 | return this->add_constant(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(copy()); |
||
12099 | return manage(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(copy()); |
||
12120 | return manage(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(get(), pos); |
||
12131 | return manage(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(copy(), tuple.release()); |
||
12142 | return manage(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(copy(), tuple.release()); |
||
12148 | return manage(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(copy(), tuple.release()); |
||
12154 | return manage(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(get()); |
||
12165 | return manage(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(get(), static_cast<enum isl_dim_type>(type)); |
||
12176 | return manage(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.release()); |
||
12187 | return manage(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::extract_pw_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(copy(), multi2.release()); |
||
12203 | return manage(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(isl::multi_aff(multi2)); |
||
12229 | } |
||
12230 | |||
12231 | isl::multi_aff multi_aff::floor() const |
||
12232 | { |
||
12233 | auto res = isl_multi_aff_floor(copy()); |
||
12234 | return manage(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(copy(), context.release()); |
||
12245 | return manage(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(isl::set(context)); |
||
12256 | } |
||
12257 | |||
12258 | isl::multi_aff multi_aff::gist(const isl::point &context) const |
||
12259 | { |
||
12260 | return this->gist(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(get()); |
||
12266 | return manage(res); |
||
12267 | } |
||
12268 | |||
12269 | isl::multi_aff multi_aff::identity(isl::space space) |
||
12270 | { |
||
12271 | auto res = isl_multi_aff_identity(space.release()); |
||
12272 | return manage(res); |
||
12273 | } |
||
12274 | |||
12275 | isl::multi_aff multi_aff::identity() const |
||
12276 | { |
||
12277 | auto res = isl_multi_aff_identity_multi_aff(copy()); |
||
12278 | return manage(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.release()); |
||
12284 | return manage(res); |
||
12285 | } |
||
12286 | |||
12287 | isl::multi_aff multi_aff::insert_domain(isl::space domain) const |
||
12288 | { |
||
12289 | auto res = isl_multi_aff_insert_domain(copy(), domain.release()); |
||
12290 | return manage(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(get()); |
||
12326 | return manage(res); |
||
12327 | } |
||
12328 | |||
12329 | boolean multi_aff::involves_nan() const |
||
12330 | { |
||
12331 | auto res = isl_multi_aff_involves_nan(get()); |
||
12332 | return manage(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(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(get()); |
||
12363 | return manage(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.release(), mv.release()); |
||
12394 | return manage(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(copy()); |
||
12405 | return manage(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(get(), multi2.get()); |
||
12416 | return manage(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(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(copy(), multi2.release()); |
||
12447 | return manage(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(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(copy(), ma2.release()); |
||
12468 | return manage(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(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.release()); |
||
12509 | return manage(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(copy(), multi2.release()); |
||
12515 | return manage(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(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(get()); |
||
12546 | return manage(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(copy()); |
||
12557 | return manage(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(copy(), static_cast<enum isl_dim_type>(type)); |
||
12563 | return manage(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(copy(), mv.release()); |
||
12569 | return manage(res); |
||
12570 | } |
||
12571 | |||
12572 | isl::multi_aff multi_aff::scale(isl::val v) const |
||
12573 | { |
||
12574 | auto res = isl_multi_aff_scale_val(copy(), v.release()); |
||
12575 | return manage(res); |
||
12576 | } |
||
12577 | |||
12578 | isl::multi_aff multi_aff::scale(long v) const |
||
12579 | { |
||
12580 | return this->scale(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(copy(), mv.release()); |
||
12586 | return manage(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(copy(), v.release()); |
||
12592 | return manage(res); |
||
12593 | } |
||
12594 | |||
12595 | isl::multi_aff multi_aff::scale_down(long v) const |
||
12596 | { |
||
12597 | return this->scale_down(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(copy(), pos, el.release()); |
||
12603 | return manage(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(copy(), pos, el.release()); |
||
12609 | return manage(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(copy(), id.release()); |
||
12635 | return manage(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(get()); |
||
12651 | return manage(res); |
||
12652 | } |
||
12653 | |||
12654 | isl::space multi_aff::space() const |
||
12655 | { |
||
12656 | auto res = isl_multi_aff_get_space(get()); |
||
12657 | return manage(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(copy(), multi2.release()); |
||
12668 | return manage(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(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(copy()); |
||
12719 | return manage(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(copy()); |
||
12725 | return manage(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(copy()); |
||
12731 | return manage(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(copy(), domain.release()); |
||
12747 | return manage(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.release()); |
||
12773 | return manage(res); |
||
12774 | } |
||
12775 | |||
12776 | inline std::ostream &operator<<(std::ostream &os, const multi_aff &obj) |
||
12777 | { |
||
12778 | char *str = isl_multi_aff_to_str(obj.get()); |
||
12779 | if (!str) { |
||
12780 | os.setstate(std::ios_base::badbit); |
||
12781 | return os; |
||
12782 | } |
||
12783 | os << str; |
||
12784 | free(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(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.release(), 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.release(), str.c_str()); |
||
12818 | ptr = res; |
||
12819 | } |
||
12820 | |||
12821 | multi_id &multi_id::operator=(multi_id obj) { |
||
12822 | std::swap(this->ptr, obj.ptr); |
||
12823 | return *this; |
||
12824 | } |
||
12825 | |||
12826 | multi_id::~multi_id() { |
||
12827 | if (ptr) |
||
12828 | isl_multi_id_free(ptr); |
||
12829 | } |
||
12830 | |||
12831 | __isl_give isl_multi_id *multi_id::copy() const & { |
||
12832 | return isl_multi_id_copy(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(ptr)); |
||
12851 | } |
||
12852 | |||
12853 | isl::id multi_id::at(int pos) const |
||
12854 | { |
||
12855 | auto res = isl_multi_id_get_at(get(), pos); |
||
12856 | return manage(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(copy(), multi2.release()); |
||
12867 | return manage(res); |
||
12868 | } |
||
12869 | |||
12870 | isl::id_list multi_id::list() const |
||
12871 | { |
||
12872 | auto res = isl_multi_id_get_list(get()); |
||
12873 | return manage(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(get(), multi2.get()); |
||
12884 | return manage(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(copy(), multi2.release()); |
||
12890 | return manage(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(copy(), pos, el.release()); |
||
12896 | return manage(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, 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(copy(), pos, el.release()); |
||
12907 | return manage(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, isl::id(ctx(), el)); |
||
12913 | } |
||
12914 | |||
12915 | class size multi_id::size() const |
||
12916 | { |
||
12917 | auto res = isl_multi_id_size(get()); |
||
12918 | return manage(res); |
||
12919 | } |
||
12920 | |||
12921 | isl::space multi_id::space() const |
||
12922 | { |
||
12923 | auto res = isl_multi_id_get_space(get()); |
||
12924 | return manage(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(obj.get()); |
||
12935 | if (!str) { |
||
12936 | os.setstate(std::ios_base::badbit); |
||
12937 | return os; |
||
12938 | } |
||
12939 | os << str; |
||
12940 | free(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(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.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.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.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.release(), 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.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.release(), str.c_str()); |
||
12998 | ptr = res; |
||
12999 | } |
||
13000 | |||
13001 | multi_pw_aff &multi_pw_aff::operator=(multi_pw_aff obj) { |
||
13002 | std::swap(this->ptr, obj.ptr); |
||
13003 | return *this; |
||
13004 | } |
||
13005 | |||
13006 | multi_pw_aff::~multi_pw_aff() { |
||
13007 | if (ptr) |
||
13008 | isl_multi_pw_aff_free(ptr); |
||
13009 | } |
||
13010 | |||
13011 | __isl_give isl_multi_pw_aff *multi_pw_aff::copy() const & { |
||
13012 | return isl_multi_pw_aff_copy(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(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(copy(), multi2.release()); |
||
13036 | return manage(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(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(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(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(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(copy(), mv.release()); |
||
13067 | return manage(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(copy(), v.release()); |
||
13073 | return manage(res); |
||
13074 | } |
||
13075 | |||
13076 | isl::multi_pw_aff multi_pw_aff::add_constant(long v) const |
||
13077 | { |
||
13078 | return this->add_constant(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(copy()); |
||
13084 | return manage(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(copy()); |
||
13090 | return manage(res); |
||
13091 | } |
||
13092 | |||
13093 | isl::set multi_pw_aff::as_set() const |
||
13094 | { |
||
13095 | auto res = isl_multi_pw_aff_as_set(copy()); |
||
13096 | return manage(res); |
||
13097 | } |
||
13098 | |||
13099 | isl::pw_aff multi_pw_aff::at(int pos) const |
||
13100 | { |
||
13101 | auto res = isl_multi_pw_aff_get_at(get(), pos); |
||
13102 | return manage(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(copy(), tuple.release()); |
||
13113 | return manage(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(copy(), tuple.release()); |
||
13119 | return manage(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(copy(), tuple.release()); |
||
13125 | return manage(res); |
||
13126 | } |
||
13127 | |||
13128 | isl::multi_pw_aff multi_pw_aff::coalesce() const |
||
13129 | { |
||
13130 | auto res = isl_multi_pw_aff_coalesce(copy()); |
||
13131 | return manage(res); |
||
13132 | } |
||
13133 | |||
13134 | class size multi_pw_aff::dim(isl::dim type) const |
||
13135 | { |
||
13136 | auto res = isl_multi_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type)); |
||
13137 | return manage(res); |
||
13138 | } |
||
13139 | |||
13140 | isl::set multi_pw_aff::domain() const |
||
13141 | { |
||
13142 | auto res = isl_multi_pw_aff_domain(copy()); |
||
13143 | return manage(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(copy(), multi2.release()); |
||
13149 | return manage(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(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(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(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(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(copy(), set.release()); |
||
13180 | return manage(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(isl::set(set)); |
||
13191 | } |
||
13192 | |||
13193 | isl::multi_pw_aff multi_pw_aff::gist(const isl::point &set) const |
||
13194 | { |
||
13195 | return this->gist(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(get()); |
||
13201 | return manage(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.release()); |
||
13207 | return manage(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(copy()); |
||
13213 | return manage(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.release()); |
||
13219 | return manage(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(copy(), domain.release()); |
||
13225 | return manage(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(copy(), domain.release()); |
||
13231 | return manage(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(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(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(copy(), set.release()); |
||
13252 | return manage(res); |
||
13253 | } |
||
13254 | |||
13255 | boolean multi_pw_aff::involves_nan() const |
||
13256 | { |
||
13257 | auto res = isl_multi_pw_aff_involves_nan(get()); |
||
13258 | return manage(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(get(), id.get()); |
||
13264 | return manage(res); |
||
13265 | } |
||
13266 | |||
13267 | boolean multi_pw_aff::involves_param(const std::string &id) const |
||
13268 | { |
||
13269 | return this->involves_param(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(get(), list.get()); |
||
13275 | return manage(res); |
||
13276 | } |
||
13277 | |||
13278 | boolean multi_pw_aff::isa_multi_aff() const |
||
13279 | { |
||
13280 | auto res = isl_multi_pw_aff_isa_multi_aff(get()); |
||
13281 | return manage(res); |
||
13282 | } |
||
13283 | |||
13284 | isl::pw_aff_list multi_pw_aff::list() const |
||
13285 | { |
||
13286 | auto res = isl_multi_pw_aff_get_list(get()); |
||
13287 | return manage(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(copy(), multi2.release()); |
||
13298 | return manage(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(copy()); |
||
13304 | return manage(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(copy(), multi2.release()); |
||
13310 | return manage(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(copy()); |
||
13316 | return manage(res); |
||
13317 | } |
||
13318 | |||
13319 | isl::multi_pw_aff multi_pw_aff::neg() const |
||
13320 | { |
||
13321 | auto res = isl_multi_pw_aff_neg(copy()); |
||
13322 | return manage(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(get(), multi2.get()); |
||
13328 | return manage(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(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(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(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(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(copy(), multi2.release()); |
||
13359 | return manage(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(copy(), ma.release()); |
||
13365 | return manage(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(copy(), mpa2.release()); |
||
13371 | return manage(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(copy(), pma.release()); |
||
13377 | return manage(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(copy(), multi2.release()); |
||
13388 | return manage(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(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(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(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(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(get()); |
||
13419 | return manage(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(copy()); |
||
13430 | return manage(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(copy(), static_cast<enum isl_dim_type>(type)); |
||
13436 | return manage(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(copy(), mv.release()); |
||
13442 | return manage(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(copy(), v.release()); |
||
13448 | return manage(res); |
||
13449 | } |
||
13450 | |||
13451 | isl::multi_pw_aff multi_pw_aff::scale(long v) const |
||
13452 | { |
||
13453 | return this->scale(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(copy(), mv.release()); |
||
13459 | return manage(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(copy(), v.release()); |
||
13465 | return manage(res); |
||
13466 | } |
||
13467 | |||
13468 | isl::multi_pw_aff multi_pw_aff::scale_down(long v) const |
||
13469 | { |
||
13470 | return this->scale_down(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(copy(), pos, el.release()); |
||
13476 | return manage(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(copy(), pos, el.release()); |
||
13487 | return manage(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(copy(), id.release()); |
||
13493 | return manage(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(get()); |
||
13509 | return manage(res); |
||
13510 | } |
||
13511 | |||
13512 | isl::space multi_pw_aff::space() const |
||
13513 | { |
||
13514 | auto res = isl_multi_pw_aff_get_space(get()); |
||
13515 | return manage(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(copy(), multi2.release()); |
||
13526 | return manage(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(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(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(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(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(copy(), domain.release()); |
||
13557 | return manage(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(copy(), mpa2.release()); |
||
13563 | return manage(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(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(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(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(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.release()); |
||
13594 | return manage(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(obj.get()); |
||
13600 | if (!str) { |
||
13601 | os.setstate(std::ios_base::badbit); |
||
13602 | return os; |
||
13603 | } |
||
13604 | os << str; |
||
13605 | free(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(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.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.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.release(), 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.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.release(), 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(this->ptr, 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(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(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(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(copy(), multi2.release()); |
||
13695 | return manage(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(get(), pos); |
||
13701 | return manage(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(copy(), tuple.release()); |
||
13712 | return manage(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(copy()); |
||
13718 | return manage(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(get(), static_cast<enum isl_dim_type>(type)); |
||
13724 | return manage(res); |
||
13725 | } |
||
13726 | |||
13727 | isl::union_set multi_union_pw_aff::domain() const |
||
13728 | { |
||
13729 | auto res = isl_multi_union_pw_aff_domain(copy()); |
||
13730 | return manage(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(copy(), multi2.release()); |
||
13736 | return manage(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.release()); |
||
13742 | return manage(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(copy(), context.release()); |
||
13748 | return manage(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(get()); |
||
13754 | return manage(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(copy(), uset.release()); |
||
13760 | return manage(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(copy(), params.release()); |
||
13766 | return manage(res); |
||
13767 | } |
||
13768 | |||
13769 | boolean multi_union_pw_aff::involves_nan() const |
||
13770 | { |
||
13771 | auto res = isl_multi_union_pw_aff_involves_nan(get()); |
||
13772 | return manage(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(get()); |
||
13778 | return manage(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(copy()); |
||
13789 | return manage(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(get(), multi2.get()); |
||
13795 | return manage(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(copy(), upma.release()); |
||
13801 | return manage(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(copy(), multi2.release()); |
||
13807 | return manage(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(get()); |
||
13813 | return manage(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(copy()); |
||
13824 | return manage(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(copy(), static_cast<enum isl_dim_type>(type)); |
||
13830 | return manage(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(copy(), mv.release()); |
||
13836 | return manage(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(copy(), v.release()); |
||
13842 | return manage(res); |
||
13843 | } |
||
13844 | |||
13845 | isl::multi_union_pw_aff multi_union_pw_aff::scale(long v) const |
||
13846 | { |
||
13847 | return this->scale(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(copy(), mv.release()); |
||
13853 | return manage(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(copy(), v.release()); |
||
13859 | return manage(res); |
||
13860 | } |
||
13861 | |||
13862 | isl::multi_union_pw_aff multi_union_pw_aff::scale_down(long v) const |
||
13863 | { |
||
13864 | return this->scale_down(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(copy(), pos, el.release()); |
||
13870 | return manage(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(copy(), id.release()); |
||
13876 | return manage(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(copy(), pos, el.release()); |
||
13887 | return manage(res); |
||
13888 | } |
||
13889 | |||
13890 | class size multi_union_pw_aff::size() const |
||
13891 | { |
||
13892 | auto res = isl_multi_union_pw_aff_size(get()); |
||
13893 | return manage(res); |
||
13894 | } |
||
13895 | |||
13896 | isl::space multi_union_pw_aff::space() const |
||
13897 | { |
||
13898 | auto res = isl_multi_union_pw_aff_get_space(get()); |
||
13899 | return manage(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(copy(), multi2.release()); |
||
13910 | return manage(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(copy(), mupa2.release()); |
||
13916 | return manage(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.release()); |
||
13922 | return manage(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(obj.get()); |
||
13928 | if (!str) { |
||
13929 | os.setstate(std::ios_base::badbit); |
||
13930 | return os; |
||
13931 | } |
||
13932 | os << str; |
||
13933 | free(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(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.release(), 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.release(), str.c_str()); |
||
13967 | ptr = res; |
||
13968 | } |
||
13969 | |||
13970 | multi_val &multi_val::operator=(multi_val obj) { |
||
13971 | std::swap(this->ptr, obj.ptr); |
||
13972 | return *this; |
||
13973 | } |
||
13974 | |||
13975 | multi_val::~multi_val() { |
||
13976 | if (ptr) |
||
13977 | isl_multi_val_free(ptr); |
||
13978 | } |
||
13979 | |||
13980 | __isl_give isl_multi_val *multi_val::copy() const & { |
||
13981 | return isl_multi_val_copy(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(ptr)); |
||
14000 | } |
||
14001 | |||
14002 | isl::multi_val multi_val::add(isl::multi_val multi2) const |
||
14003 | { |
||
14004 | auto res = isl_multi_val_add(copy(), multi2.release()); |
||
14005 | return manage(res); |
||
14006 | } |
||
14007 | |||
14008 | isl::multi_val multi_val::add(isl::val v) const |
||
14009 | { |
||
14010 | auto res = isl_multi_val_add_val(copy(), v.release()); |
||
14011 | return manage(res); |
||
14012 | } |
||
14013 | |||
14014 | isl::multi_val multi_val::add(long v) const |
||
14015 | { |
||
14016 | return this->add(isl::val(ctx(), v)); |
||
14017 | } |
||
14018 | |||
14019 | isl::val multi_val::at(int pos) const |
||
14020 | { |
||
14021 | auto res = isl_multi_val_get_at(get(), pos); |
||
14022 | return manage(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(get(), static_cast<enum isl_dim_type>(type)); |
||
14033 | return manage(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(copy(), multi2.release()); |
||
14039 | return manage(res); |
||
14040 | } |
||
14041 | |||
14042 | boolean multi_val::has_range_tuple_id() const |
||
14043 | { |
||
14044 | auto res = isl_multi_val_has_range_tuple_id(get()); |
||
14045 | return manage(res); |
||
14046 | } |
||
14047 | |||
14048 | boolean multi_val::involves_nan() const |
||
14049 | { |
||
14050 | auto res = isl_multi_val_involves_nan(get()); |
||
14051 | return manage(res); |
||
14052 | } |
||
14053 | |||
14054 | isl::val_list multi_val::list() const |
||
14055 | { |
||
14056 | auto res = isl_multi_val_get_list(get()); |
||
14057 | return manage(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(copy(), multi2.release()); |
||
14068 | return manage(res); |
||
14069 | } |
||
14070 | |||
14071 | isl::multi_val multi_val::min(isl::multi_val multi2) const |
||
14072 | { |
||
14073 | auto res = isl_multi_val_min(copy(), multi2.release()); |
||
14074 | return manage(res); |
||
14075 | } |
||
14076 | |||
14077 | isl::multi_val multi_val::neg() const |
||
14078 | { |
||
14079 | auto res = isl_multi_val_neg(copy()); |
||
14080 | return manage(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(get(), multi2.get()); |
||
14086 | return manage(res); |
||
14087 | } |
||
14088 | |||
14089 | isl::multi_val multi_val::product(isl::multi_val multi2) const |
||
14090 | { |
||
14091 | auto res = isl_multi_val_product(copy(), multi2.release()); |
||
14092 | return manage(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(copy(), multi2.release()); |
||
14098 | return manage(res); |
||
14099 | } |
||
14100 | |||
14101 | isl::id multi_val::range_tuple_id() const |
||
14102 | { |
||
14103 | auto res = isl_multi_val_get_range_tuple_id(get()); |
||
14104 | return manage(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(copy()); |
||
14115 | return manage(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(copy(), static_cast<enum isl_dim_type>(type)); |
||
14121 | return manage(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(copy(), mv.release()); |
||
14127 | return manage(res); |
||
14128 | } |
||
14129 | |||
14130 | isl::multi_val multi_val::scale(isl::val v) const |
||
14131 | { |
||
14132 | auto res = isl_multi_val_scale_val(copy(), v.release()); |
||
14133 | return manage(res); |
||
14134 | } |
||
14135 | |||
14136 | isl::multi_val multi_val::scale(long v) const |
||
14137 | { |
||
14138 | return this->scale(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(copy(), mv.release()); |
||
14144 | return manage(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(copy(), v.release()); |
||
14150 | return manage(res); |
||
14151 | } |
||
14152 | |||
14153 | isl::multi_val multi_val::scale_down(long v) const |
||
14154 | { |
||
14155 | return this->scale_down(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(copy(), pos, el.release()); |
||
14161 | return manage(res); |
||
14162 | } |
||
14163 | |||
14164 | isl::multi_val multi_val::set_at(int pos, long el) const |
||
14165 | { |
||
14166 | return this->set_at(pos, 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(copy(), id.release()); |
||
14172 | return manage(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(copy(), pos, el.release()); |
||
14183 | return manage(res); |
||
14184 | } |
||
14185 | |||
14186 | isl::multi_val multi_val::set_val(int pos, long el) const |
||
14187 | { |
||
14188 | return this->set_val(pos, isl::val(ctx(), el)); |
||
14189 | } |
||
14190 | |||
14191 | class size multi_val::size() const |
||
14192 | { |
||
14193 | auto res = isl_multi_val_size(get()); |
||
14194 | return manage(res); |
||
14195 | } |
||
14196 | |||
14197 | isl::space multi_val::space() const |
||
14198 | { |
||
14199 | auto res = isl_multi_val_get_space(get()); |
||
14200 | return manage(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(copy(), multi2.release()); |
||
14211 | return manage(res); |
||
14212 | } |
||
14213 | |||
14214 | isl::multi_val multi_val::zero(isl::space space) |
||
14215 | { |
||
14216 | auto res = isl_multi_val_zero(space.release()); |
||
14217 | return manage(res); |
||
14218 | } |
||
14219 | |||
14220 | inline std::ostream &operator<<(std::ostream &os, const multi_val &obj) |
||
14221 | { |
||
14222 | char *str = isl_multi_val_to_str(obj.get()); |
||
14223 | if (!str) { |
||
14224 | os.setstate(std::ios_base::badbit); |
||
14225 | return os; |
||
14226 | } |
||
14227 | os << str; |
||
14228 | free(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(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.release()); |
||
14256 | ptr = res; |
||
14257 | } |
||
14258 | |||
14259 | point &point::operator=(point obj) { |
||
14260 | std::swap(this->ptr, obj.ptr); |
||
14261 | return *this; |
||
14262 | } |
||
14263 | |||
14264 | point::~point() { |
||
14265 | if (ptr) |
||
14266 | isl_point_free(ptr); |
||
14267 | } |
||
14268 | |||
14269 | __isl_give isl_point *point::copy() const & { |
||
14270 | return isl_point_copy(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(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
14374 | return manage(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::extract_set(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, 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, 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, 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(get()); |
||
14730 | return manage(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(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, 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(copy()); |
||
14911 | return manage(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, 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(obj.get()); |
||
14997 | if (!str) { |
||
14998 | os.setstate(std::ios_base::badbit); |
||
14999 | return os; |
||
15000 | } |
||
15001 | os << str; |
||
15002 | free(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(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.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.release(), 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.release(), 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.release()); |
||
15048 | ptr = res; |
||
15049 | } |
||
15050 | |||
15051 | pw_aff &pw_aff::operator=(pw_aff obj) { |
||
15052 | std::swap(this->ptr, obj.ptr); |
||
15053 | return *this; |
||
15054 | } |
||
15055 | |||
15056 | pw_aff::~pw_aff() { |
||
15057 | if (ptr) |
||
15058 | isl_pw_aff_free(ptr); |
||
15059 | } |
||
15060 | |||
15061 | __isl_give isl_pw_aff *pw_aff::copy() const & { |
||
15062 | return isl_pw_aff_copy(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(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(copy(), pwaff2.release()); |
||
15096 | return manage(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(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(copy(), v.release()); |
||
15122 | return manage(res); |
||
15123 | } |
||
15124 | |||
15125 | isl::pw_aff pw_aff::add_constant(long v) const |
||
15126 | { |
||
15127 | return this->add_constant(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(copy(), static_cast<enum isl_dim_type>(type), n); |
||
15138 | return manage(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(copy()); |
||
15154 | return manage(res); |
||
15155 | } |
||
15156 | |||
15157 | isl::map pw_aff::as_map() const |
||
15158 | { |
||
15159 | auto res = isl_pw_aff_as_map(copy()); |
||
15160 | return manage(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(copy(), id.release()); |
||
15201 | return manage(res); |
||
15202 | } |
||
15203 | |||
15204 | isl::set pw_aff::bind(const std::string &id) const |
||
15205 | { |
||
15206 | return this->bind(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(copy(), tuple.release()); |
||
15212 | return manage(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(copy(), tuple.release()); |
||
15218 | return manage(res); |
||
15219 | } |
||
15220 | |||
15221 | isl::pw_aff pw_aff::ceil() const |
||
15222 | { |
||
15223 | auto res = isl_pw_aff_ceil(copy()); |
||
15224 | return manage(res); |
||
15225 | } |
||
15226 | |||
15227 | isl::pw_aff pw_aff::coalesce() const |
||
15228 | { |
||
15229 | auto res = isl_pw_aff_coalesce(copy()); |
||
15230 | return manage(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(copy(), pwaff_true.release(), pwaff_false.release()); |
||
15236 | return manage(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
15247 | return manage(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(copy(), pa2.release()); |
||
15258 | return manage(res); |
||
15259 | } |
||
15260 | |||
15261 | isl::set pw_aff::domain() const |
||
15262 | { |
||
15263 | auto res = isl_pw_aff_domain(copy()); |
||
15264 | return manage(res); |
||
15265 | } |
||
15266 | |||
15267 | isl::space pw_aff::domain_space() const |
||
15268 | { |
||
15269 | auto res = isl_pw_aff_get_domain_space(get()); |
||
15270 | return manage(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(copy(), pwaff2.release()); |
||
15286 | return manage(res); |
||
15287 | } |
||
15288 | |||
15289 | isl::val pw_aff::eval(isl::point pnt) const |
||
15290 | { |
||
15291 | auto res = isl_pw_aff_eval(copy(), pnt.release()); |
||
15292 | return manage(res); |
||
15293 | } |
||
15294 | |||
15295 | isl::pw_multi_aff pw_aff::extract_pw_multi_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(copy()); |
||
15323 | return manage(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 = { 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(arg_0), manage(arg_1)); |
||
15334 | return ret.release(); |
||
15335 | }; |
||
15336 | auto res = isl_pw_aff_foreach_piece(get(), fn_lambda, &fn_data); |
||
15337 | return manage(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(copy(), pwaff2.release()); |
||
15353 | return manage(res); |
||
15354 | } |
||
15355 | |||
15356 | isl::pw_aff pw_aff::gist(isl::set context) const |
||
15357 | { |
||
15358 | auto res = isl_pw_aff_gist(copy(), context.release()); |
||
15359 | return manage(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(isl::set(context)); |
||
15370 | } |
||
15371 | |||
15372 | isl::pw_aff pw_aff::gist(const isl::point &context) const |
||
15373 | { |
||
15374 | return this->gist(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(copy(), pwaff2.release()); |
||
15380 | return manage(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(copy(), domain.release()); |
||
15396 | return manage(res); |
||
15397 | } |
||
15398 | |||
15399 | isl::pw_aff pw_aff::intersect_domain(isl::set set) const |
||
15400 | { |
||
15401 | auto res = isl_pw_aff_intersect_domain(copy(), set.release()); |
||
15402 | return manage(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(isl::set(set)); |
||
15418 | } |
||
15419 | |||
15420 | isl::pw_aff pw_aff::intersect_domain(const isl::point &set) const |
||
15421 | { |
||
15422 | return this->intersect_domain(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(copy(), set.release()); |
||
15438 | return manage(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(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(get()); |
||
15469 | return manage(res); |
||
15470 | } |
||
15471 | |||
15472 | boolean pw_aff::is_equal(const isl::pw_aff &pa2) const |
||
15473 | { |
||
15474 | auto res = isl_pw_aff_is_equal(get(), pa2.get()); |
||
15475 | return manage(res); |
||
15476 | } |
||
15477 | |||
15478 | boolean pw_aff::isa_aff() const |
||
15479 | { |
||
15480 | auto res = isl_pw_aff_isa_aff(get()); |
||
15481 | return manage(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(copy(), pwaff2.release()); |
||
15497 | return manage(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(copy(), pwaff2.release()); |
||
15508 | return manage(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(copy(), pwaff2.release()); |
||
15519 | return manage(res); |
||
15520 | } |
||
15521 | |||
15522 | isl::pw_aff pw_aff::max(const isl::aff &pwaff2) const |
||
15523 | { |
||
15524 | return this->max(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(copy(), pwaff2.release()); |
||
15540 | return manage(res); |
||
15541 | } |
||
15542 | |||
15543 | isl::pw_aff pw_aff::min(const isl::aff &pwaff2) const |
||
15544 | { |
||
15545 | return this->min(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(copy(), mod.release()); |
||
15556 | return manage(res); |
||
15557 | } |
||
15558 | |||
15559 | isl::pw_aff pw_aff::mod(long mod) const |
||
15560 | { |
||
15561 | return this->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(copy(), pwaff2.release()); |
||
15567 | return manage(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(copy(), pwaff2.release()); |
||
15578 | return manage(res); |
||
15579 | } |
||
15580 | |||
15581 | isl::pw_aff pw_aff::neg() const |
||
15582 | { |
||
15583 | auto res = isl_pw_aff_neg(copy()); |
||
15584 | return manage(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.release(), id.release()); |
||
15590 | return manage(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(copy(), ma.release()); |
||
15631 | return manage(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(copy(), mpa.release()); |
||
15637 | return manage(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(copy(), pma.release()); |
||
15643 | return manage(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(copy(), v.release()); |
||
15709 | return manage(res); |
||
15710 | } |
||
15711 | |||
15712 | isl::pw_aff pw_aff::scale(long v) const |
||
15713 | { |
||
15714 | return this->scale(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(copy(), f.release()); |
||
15725 | return manage(res); |
||
15726 | } |
||
15727 | |||
15728 | isl::pw_aff pw_aff::scale_down(long f) const |
||
15729 | { |
||
15730 | return this->scale_down(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(copy(), static_cast<enum isl_dim_type>(type), id.release()); |
||
15766 | return manage(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, 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(get()); |
||
15787 | return manage(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(copy(), pwaff2.release()); |
||
15808 | return manage(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(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(copy(), set.release()); |
||
15834 | return manage(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(isl::set(set)); |
||
15850 | } |
||
15851 | |||
15852 | isl::pw_aff pw_aff::subtract_domain(const isl::point &set) const |
||
15853 | { |
||
15854 | return this->subtract_domain(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(copy(), pa2.release()); |
||
15860 | return manage(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(copy(), pa2.release()); |
||
15866 | return manage(res); |
||
15867 | } |
||
15868 | |||
15869 | isl::pw_aff_list pw_aff::to_list() const |
||
15870 | { |
||
15871 | auto res = isl_pw_aff_to_list(copy()); |
||
15872 | return manage(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(copy()); |
||
15883 | return manage(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(get(), static_cast<enum isl_dim_type>(type)); |
||
15894 | return manage(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(copy(), pwaff2.release()); |
||
15920 | return manage(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(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.release(), static_cast<enum isl_dim_type>(type), pos); |
||
15946 | return manage(res); |
||
15947 | } |
||
15948 | |||
15949 | inline std::ostream &operator<<(std::ostream &os, const pw_aff &obj) |
||
15950 | { |
||
15951 | char *str = isl_pw_aff_to_str(obj.get()); |
||
15952 | if (!str) { |
||
15953 | os.setstate(std::ios_base::badbit); |
||
15954 | return os; |
||
15955 | } |
||
15956 | os << str; |
||
15957 | free(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(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.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.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.release(), str.c_str()); |
||
15997 | ptr = res; |
||
15998 | } |
||
15999 | |||
16000 | pw_aff_list &pw_aff_list::operator=(pw_aff_list obj) { |
||
16001 | std::swap(this->ptr, obj.ptr); |
||
16002 | return *this; |
||
16003 | } |
||
16004 | |||
16005 | pw_aff_list::~pw_aff_list() { |
||
16006 | if (ptr) |
||
16007 | isl_pw_aff_list_free(ptr); |
||
16008 | } |
||
16009 | |||
16010 | __isl_give isl_pw_aff_list *pw_aff_list::copy() const & { |
||
16011 | return isl_pw_aff_list_copy(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(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(copy(), el.release()); |
||
16035 | return manage(res); |
||
16036 | } |
||
16037 | |||
16038 | isl::pw_aff pw_aff_list::at(int index) const |
||
16039 | { |
||
16040 | auto res = isl_pw_aff_list_get_at(get(), index); |
||
16041 | return manage(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(copy()); |
||
16052 | return manage(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(copy(), list2.release()); |
||
16058 | return manage(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(copy(), first, n); |
||
16064 | return manage(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 = { 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(arg_0)); |
||
16075 | return ret.release(); |
||
16076 | }; |
||
16077 | auto res = isl_pw_aff_list_foreach(get(), fn_lambda, &fn_data); |
||
16078 | return manage(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(copy(), pos, el.release()); |
||
16084 | return manage(res); |
||
16085 | } |
||
16086 | |||
16087 | class size pw_aff_list::size() const |
||
16088 | { |
||
16089 | auto res = isl_pw_aff_list_size(get()); |
||
16090 | return manage(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(obj.get()); |
||
16096 | if (!str) { |
||
16097 | os.setstate(std::ios_base::badbit); |
||
16098 | return os; |
||
16099 | } |
||
16100 | os << str; |
||
16101 | free(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(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.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.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.release(), str.c_str()); |
||
16141 | ptr = res; |
||
16142 | } |
||
16143 | |||
16144 | pw_multi_aff &pw_multi_aff::operator=(pw_multi_aff obj) { |
||
16145 | std::swap(this->ptr, obj.ptr); |
||
16146 | return *this; |
||
16147 | } |
||
16148 | |||
16149 | pw_multi_aff::~pw_multi_aff() { |
||
16150 | if (ptr) |
||
16151 | isl_pw_multi_aff_free(ptr); |
||
16152 | } |
||
16153 | |||
16154 | __isl_give isl_pw_multi_aff *pw_multi_aff::copy() const & { |
||
16155 | return isl_pw_multi_aff_copy(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(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(copy(), pma2.release()); |
||
16189 | return manage(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(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(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(copy(), mv.release()); |
||
16210 | return manage(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(copy(), v.release()); |
||
16216 | return manage(res); |
||
16217 | } |
||
16218 | |||
16219 | isl::pw_multi_aff pw_multi_aff::add_constant(long v) const |
||
16220 | { |
||
16221 | return this->add_constant(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(copy()); |
||
16237 | return manage(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(copy()); |
||
16243 | return manage(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(copy()); |
||
16259 | return manage(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(get(), pos); |
||
16270 | return manage(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(copy(), tuple.release()); |
||
16286 | return manage(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(copy(), tuple.release()); |
||
16292 | return manage(res); |
||
16293 | } |
||
16294 | |||
16295 | isl::pw_multi_aff pw_multi_aff::coalesce() const |
||
16296 | { |
||
16297 | auto res = isl_pw_multi_aff_coalesce(copy()); |
||
16298 | return manage(res); |
||
16299 | } |
||
16300 | |||
16301 | class size pw_multi_aff::dim(isl::dim type) const |
||
16302 | { |
||
16303 | auto res = isl_pw_multi_aff_dim(get(), static_cast<enum isl_dim_type>(type)); |
||
16304 | return manage(res); |
||
16305 | } |
||
16306 | |||
16307 | isl::set pw_multi_aff::domain() const |
||
16308 | { |
||
16309 | auto res = isl_pw_multi_aff_domain(copy()); |
||
16310 | return manage(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.release()); |
||
16316 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
16322 | return manage(res); |
||
16323 | } |
||
16324 | |||
16325 | isl::pw_multi_aff pw_multi_aff::extract_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(copy(), pma2.release()); |
||
16343 | return manage(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(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(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 = { 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(arg_0), manage(arg_1)); |
||
16369 | return ret.release(); |
||
16370 | }; |
||
16371 | auto res = isl_pw_multi_aff_foreach_piece(get(), fn_lambda, &fn_data); |
||
16372 | return manage(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.release()); |
||
16378 | return manage(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(copy(), set.release()); |
||
16384 | return manage(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(isl::set(set)); |
||
16395 | } |
||
16396 | |||
16397 | isl::pw_multi_aff pw_multi_aff::gist(const isl::point &set) const |
||
16398 | { |
||
16399 | return this->gist(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(get()); |
||
16405 | return manage(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.release()); |
||
16416 | return manage(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(copy(), domain.release()); |
||
16422 | return manage(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(copy(), set.release()); |
||
16428 | return manage(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(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(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(copy(), set.release()); |
||
16464 | return manage(res); |
||
16465 | } |
||
16466 | |||
16467 | boolean pw_multi_aff::involves_locals() const |
||
16468 | { |
||
16469 | auto res = isl_pw_multi_aff_involves_locals(get()); |
||
16470 | return manage(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(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(get()); |
||
16496 | return manage(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(copy()); |
||
16517 | return manage(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(copy()); |
||
16528 | return manage(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.release(), mv.release()); |
||
16534 | return manage(res); |
||
16535 | } |
||
16536 | |||
16537 | class size pw_multi_aff::n_piece() const |
||
16538 | { |
||
16539 | auto res = isl_pw_multi_aff_n_piece(get()); |
||
16540 | return manage(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(copy(), pma2.release()); |
||
16566 | return manage(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(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(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(copy(), pma2.release()); |
||
16592 | return manage(res); |
||
16593 | } |
||
16594 | |||
16595 | isl::pw_multi_aff pw_multi_aff::product(const isl::multi_aff &pma2) const |
||
16596 | { |
||
16597 | return this->product(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(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.release(), static_cast<enum isl_dim_type>(type), first, n); |
||
16608 | return manage(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(copy(), ma.release()); |
||
16619 | return manage(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(copy(), pma2.release()); |
||
16625 | return manage(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(copy()); |
||
16641 | return manage(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(copy()); |
||
16647 | return manage(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.release()); |
||
16653 | return manage(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(copy(), pma2.release()); |
||
16669 | return manage(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(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(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(get()); |
||
16690 | return manage(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(copy(), v.release()); |
||
16716 | return manage(res); |
||
16717 | } |
||
16718 | |||
16719 | isl::pw_multi_aff pw_multi_aff::scale(long v) const |
||
16720 | { |
||
16721 | return this->scale(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(copy(), v.release()); |
||
16732 | return manage(res); |
||
16733 | } |
||
16734 | |||
16735 | isl::pw_multi_aff pw_multi_aff::scale_down(long v) const |
||
16736 | { |
||
16737 | return this->scale_down(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(copy(), pos, pa.release()); |
||
16758 | return manage(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(copy(), id.release()); |
||
16764 | return manage(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(get()); |
||
16785 | return manage(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(copy(), pma2.release()); |
||
16806 | return manage(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(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(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(copy(), set.release()); |
||
16827 | return manage(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(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(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(copy()); |
||
16853 | return manage(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(copy()); |
||
16859 | return manage(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(copy()); |
||
16865 | return manage(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(get(), static_cast<enum isl_dim_type>(type)); |
||
16871 | return manage(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(copy(), pma2.release()); |
||
16897 | return manage(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(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(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.release()); |
||
16918 | return manage(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(obj.get()); |
||
16924 | if (!str) { |
||
16925 | os.setstate(std::ios_base::badbit); |
||
16926 | return os; |
||
16927 | } |
||
16928 | os << str; |
||
16929 | free(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(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.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.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.release(), 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(this->ptr, 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(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(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(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(copy(), el.release()); |
||
17007 | return manage(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(get(), index); |
||
17013 | return manage(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(copy()); |
||
17024 | return manage(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(copy(), list2.release()); |
||
17030 | return manage(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(copy(), first, n); |
||
17036 | return manage(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 = { 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(arg_0)); |
||
17047 | return ret.release(); |
||
17048 | }; |
||
17049 | auto res = isl_pw_multi_aff_list_foreach(get(), fn_lambda, &fn_data); |
||
17050 | return manage(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(copy(), pos, el.release()); |
||
17056 | return manage(res); |
||
17057 | } |
||
17058 | |||
17059 | class size pw_multi_aff_list::size() const |
||
17060 | { |
||
17061 | auto res = isl_pw_multi_aff_list_size(get()); |
||
17062 | return manage(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(obj.get()); |
||
17068 | if (!str) { |
||
17069 | os.setstate(std::ios_base::badbit); |
||
17070 | return os; |
||
17071 | } |
||
17072 | os << str; |
||
17073 | free(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(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.release(), str.c_str()); |
||
17101 | ptr = res; |
||
17102 | } |
||
17103 | |||
17104 | schedule &schedule::operator=(schedule obj) { |
||
17105 | std::swap(this->ptr, obj.ptr); |
||
17106 | return *this; |
||
17107 | } |
||
17108 | |||
17109 | schedule::~schedule() { |
||
17110 | if (ptr) |
||
17111 | isl_schedule_free(ptr); |
||
17112 | } |
||
17113 | |||
17114 | __isl_give isl_schedule *schedule::copy() const & { |
||
17115 | return isl_schedule_copy(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(ptr)); |
||
17134 | } |
||
17135 | |||
17136 | isl::schedule schedule::align_params(isl::space space) const |
||
17137 | { |
||
17138 | auto res = isl_schedule_align_params(copy(), space.release()); |
||
17139 | return manage(res); |
||
17140 | } |
||
17141 | |||
17142 | isl::union_set schedule::domain() const |
||
17143 | { |
||
17144 | auto res = isl_schedule_get_domain(get()); |
||
17145 | return manage(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.release()); |
||
17156 | return manage(res); |
||
17157 | } |
||
17158 | |||
17159 | isl::schedule schedule::gist_domain_params(isl::set context) const |
||
17160 | { |
||
17161 | auto res = isl_schedule_gist_domain_params(copy(), context.release()); |
||
17162 | return manage(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(copy(), partial.release()); |
||
17168 | return manage(res); |
||
17169 | } |
||
17170 | |||
17171 | isl::schedule schedule::intersect_domain(isl::union_set domain) const |
||
17172 | { |
||
17173 | auto res = isl_schedule_intersect_domain(copy(), domain.release()); |
||
17174 | return manage(res); |
||
17175 | } |
||
17176 | |||
17177 | isl::union_map schedule::map() const |
||
17178 | { |
||
17179 | auto res = isl_schedule_get_map(get()); |
||
17180 | return manage(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(copy(), upma.release()); |
||
17191 | return manage(res); |
||
17192 | } |
||
17193 | |||
17194 | isl::schedule_node schedule::root() const |
||
17195 | { |
||
17196 | auto res = isl_schedule_get_root(get()); |
||
17197 | return manage(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(copy(), schedule2.release()); |
||
17208 | return manage(res); |
||
17209 | } |
||
17210 | |||
17211 | inline std::ostream &operator<<(std::ostream &os, const schedule &obj) |
||
17212 | { |
||
17213 | char *str = isl_schedule_to_str(obj.get()); |
||
17214 | if (!str) { |
||
17215 | os.setstate(std::ios_base::badbit); |
||
17216 | return os; |
||
17217 | } |
||
17218 | os << str; |
||
17219 | free(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(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.release(), str.c_str()); |
||
17247 | ptr = res; |
||
17248 | } |
||
17249 | |||
17250 | schedule_constraints &schedule_constraints::operator=(schedule_constraints obj) { |
||
17251 | std::swap(this->ptr, obj.ptr); |
||
17252 | return *this; |
||
17253 | } |
||
17254 | |||
17255 | schedule_constraints::~schedule_constraints() { |
||
17256 | if (ptr) |
||
17257 | isl_schedule_constraints_free(ptr); |
||
17258 | } |
||
17259 | |||
17260 | __isl_give isl_schedule_constraints *schedule_constraints::copy() const & { |
||
17261 | return isl_schedule_constraints_copy(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(ptr)); |
||
17280 | } |
||
17281 | |||
17282 | isl::union_map schedule_constraints::coincidence() const |
||
17283 | { |
||
17284 | auto res = isl_schedule_constraints_get_coincidence(get()); |
||
17285 | return manage(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(copy()); |
||
17296 | return manage(res); |
||
17297 | } |
||
17298 | |||
17299 | isl::union_map schedule_constraints::conditional_validity() const |
||
17300 | { |
||
17301 | auto res = isl_schedule_constraints_get_conditional_validity(get()); |
||
17302 | return manage(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(get()); |
||
17313 | return manage(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(get()); |
||
17324 | return manage(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(get()); |
||
17335 | return manage(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.release()); |
||
17346 | return manage(res); |
||
17347 | } |
||
17348 | |||
17349 | isl::union_map schedule_constraints::proximity() const |
||
17350 | { |
||
17351 | auto res = isl_schedule_constraints_get_proximity(get()); |
||
17352 | return manage(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(copy(), coincidence.release()); |
||
17363 | return manage(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(copy(), condition.release(), validity.release()); |
||
17369 | return manage(res); |
||
17370 | } |
||
17371 | |||
17372 | isl::schedule_constraints schedule_constraints::set_context(isl::set context) const |
||
17373 | { |
||
17374 | auto res = isl_schedule_constraints_set_context(copy(), context.release()); |
||
17375 | return manage(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(copy(), proximity.release()); |
||
17381 | return manage(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(copy(), validity.release()); |
||
17387 | return manage(res); |
||
17388 | } |
||
17389 | |||
17390 | isl::union_map schedule_constraints::validity() const |
||
17391 | { |
||
17392 | auto res = isl_schedule_constraints_get_validity(get()); |
||
17393 | return manage(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(obj.get()); |
||
17404 | if (!str) { |
||
17405 | os.setstate(std::ios_base::badbit); |
||
17406 | return os; |
||
17407 | } |
||
17408 | os << str; |
||
17409 | free(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(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(this->ptr, obj.ptr); |
||
17436 | return *this; |
||
17437 | } |
||
17438 | |||
17439 | schedule_node::~schedule_node() { |
||
17440 | if (ptr) |
||
17441 | isl_schedule_node_free(ptr); |
||
17442 | } |
||
17443 | |||
17444 | __isl_give isl_schedule_node *schedule_node::copy() const & { |
||
17445 | return isl_schedule_node_copy(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(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(ptr)); |
||
17484 | } |
||
17485 | |||
17486 | isl::schedule_node schedule_node::ancestor(int generation) const |
||
17487 | { |
||
17488 | auto res = isl_schedule_node_ancestor(copy(), generation); |
||
17489 | return manage(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(get(), ancestor.get()); |
||
17495 | return manage(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(copy(), pos); |
||
17506 | return manage(res); |
||
17507 | } |
||
17508 | |||
17509 | class size schedule_node::child_position() const |
||
17510 | { |
||
17511 | auto res = isl_schedule_node_get_child_position(get()); |
||
17512 | return manage(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(get()); |
||
17523 | return manage(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 = { 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(arg_0)); |
||
17539 | return ret.release(); |
||
17540 | }; |
||
17541 | auto res = isl_schedule_node_every_descendant(get(), test_lambda, &test_data); |
||
17542 | return manage(res); |
||
17543 | } |
||
17544 | |||
17545 | isl::schedule_node schedule_node::first_child() const |
||
17546 | { |
||
17547 | auto res = isl_schedule_node_first_child(copy()); |
||
17548 | return manage(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 = { 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(arg_0)); |
||
17559 | return ret.release(); |
||
17560 | }; |
||
17561 | auto res = isl_schedule_node_foreach_ancestor_top_down(get(), fn_lambda, &fn_data); |
||
17562 | return manage(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 = { 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(arg_0)); |
||
17573 | return ret.release(); |
||
17574 | }; |
||
17575 | auto res = isl_schedule_node_foreach_descendant_top_down(get(), fn_lambda, &fn_data); |
||
17576 | return manage(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.release()); |
||
17582 | return manage(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.release()); |
||
17588 | return manage(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(copy(), graft.release()); |
||
17594 | return manage(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(copy(), graft.release()); |
||
17600 | return manage(res); |
||
17601 | } |
||
17602 | |||
17603 | boolean schedule_node::has_children() const |
||
17604 | { |
||
17605 | auto res = isl_schedule_node_has_children(get()); |
||
17606 | return manage(res); |
||
17607 | } |
||
17608 | |||
17609 | boolean schedule_node::has_next_sibling() const |
||
17610 | { |
||
17611 | auto res = isl_schedule_node_has_next_sibling(get()); |
||
17612 | return manage(res); |
||
17613 | } |
||
17614 | |||
17615 | boolean schedule_node::has_parent() const |
||
17616 | { |
||
17617 | auto res = isl_schedule_node_has_parent(get()); |
||
17618 | return manage(res); |
||
17619 | } |
||
17620 | |||
17621 | boolean schedule_node::has_previous_sibling() const |
||
17622 | { |
||
17623 | auto res = isl_schedule_node_has_previous_sibling(get()); |
||
17624 | return manage(res); |
||
17625 | } |
||
17626 | |||
17627 | isl::schedule_node schedule_node::insert_context(isl::set context) const |
||
17628 | { |
||
17629 | auto res = isl_schedule_node_insert_context(copy(), context.release()); |
||
17630 | return manage(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(copy(), filter.release()); |
||
17636 | return manage(res); |
||
17637 | } |
||
17638 | |||
17639 | isl::schedule_node schedule_node::insert_guard(isl::set context) const |
||
17640 | { |
||
17641 | auto res = isl_schedule_node_insert_guard(copy(), context.release()); |
||
17642 | return manage(res); |
||
17643 | } |
||
17644 | |||
17645 | isl::schedule_node schedule_node::insert_mark(isl::id mark) const |
||
17646 | { |
||
17647 | auto res = isl_schedule_node_insert_mark(copy(), mark.release()); |
||
17648 | return manage(res); |
||
17649 | } |
||
17650 | |||
17651 | isl::schedule_node schedule_node::insert_mark(const std::string &mark) const |
||
17652 | { |
||
17653 | return this->insert_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(copy(), schedule.release()); |
||
17659 | return manage(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(copy(), filters.release()); |
||
17665 | return manage(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(copy(), filters.release()); |
||
17671 | return manage(res); |
||
17672 | } |
||
17673 | |||
17674 | boolean schedule_node::is_equal(const isl::schedule_node &node2) const |
||
17675 | { |
||
17676 | auto res = isl_schedule_node_is_equal(get(), node2.get()); |
||
17677 | return manage(res); |
||
17678 | } |
||
17679 | |||
17680 | boolean schedule_node::is_subtree_anchored() const |
||
17681 | { |
||
17682 | auto res = isl_schedule_node_is_subtree_anchored(get()); |
||
17683 | return manage(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 = { 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(arg_0)); |
||
17694 | return ret.release(); |
||
17695 | }; |
||
17696 | auto res = isl_schedule_node_map_descendant_bottom_up(copy(), fn_lambda, &fn_data); |
||
17697 | return manage(res); |
||
17698 | } |
||
17699 | |||
17700 | class size schedule_node::n_children() const |
||
17701 | { |
||
17702 | auto res = isl_schedule_node_n_children(get()); |
||
17703 | return manage(res); |
||
17704 | } |
||
17705 | |||
17706 | isl::schedule_node schedule_node::next_sibling() const |
||
17707 | { |
||
17708 | auto res = isl_schedule_node_next_sibling(copy()); |
||
17709 | return manage(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(copy(), filter.release()); |
||
17715 | return manage(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(copy(), filter.release()); |
||
17721 | return manage(res); |
||
17722 | } |
||
17723 | |||
17724 | isl::schedule_node schedule_node::parent() const |
||
17725 | { |
||
17726 | auto res = isl_schedule_node_parent(copy()); |
||
17727 | return manage(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(get()); |
||
17733 | return manage(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(get()); |
||
17744 | return manage(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(get()); |
||
17755 | return manage(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(get()); |
||
17766 | return manage(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(copy()); |
||
17777 | return manage(res); |
||
17778 | } |
||
17779 | |||
17780 | isl::schedule_node schedule_node::root() const |
||
17781 | { |
||
17782 | auto res = isl_schedule_node_root(copy()); |
||
17783 | return manage(res); |
||
17784 | } |
||
17785 | |||
17786 | isl::schedule schedule_node::schedule() const |
||
17787 | { |
||
17788 | auto res = isl_schedule_node_get_schedule(get()); |
||
17789 | return manage(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(get()); |
||
17800 | return manage(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(get(), node2.get()); |
||
17811 | return manage(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(get()); |
||
17822 | return manage(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(get()); |
||
17833 | return manage(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(obj.get()); |
||
17844 | if (!str) { |
||
17845 | os.setstate(std::ios_base::badbit); |
||
17846 | return os; |
||
17847 | } |
||
17848 | os << str; |
||
17849 | free(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(this->ptr, obj.ptr); |
||
17867 | return *this; |
||
17868 | } |
||
17869 | |||
17870 | isl::ctx schedule_node_band::ctx() const { |
||
17871 | return isl::ctx(isl_schedule_node_get_ctx(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(get()); |
||
17877 | return manage(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(get()); |
||
17888 | return manage(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(get(), pos); |
||
17899 | return manage(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(copy(), pos, coincident); |
||
17905 | return manage(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(copy(), mv.release()); |
||
17911 | return manage(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(get()); |
||
17917 | return manage(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(get()); |
||
17923 | return manage(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(get()); |
||
17934 | return manage(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(copy(), mv.release()); |
||
17945 | return manage(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(copy(), mv.release()); |
||
17951 | return manage(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(copy(), options.release()); |
||
17957 | return manage(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(copy(), permutable); |
||
17963 | return manage(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(copy(), shift.release()); |
||
17969 | return manage(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(copy(), pos); |
||
17975 | return manage(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(copy(), sizes.release()); |
||
17981 | return manage(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(copy(), pos, isl_ast_loop_default); |
||
17987 | return manage(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(copy(), pos, isl_ast_loop_atomic); |
||
17993 | return manage(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(copy(), pos, isl_ast_loop_unroll); |
||
17999 | return manage(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(copy(), pos, isl_ast_loop_separate); |
||
18005 | return manage(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(obj.get()); |
||
18011 | if (!str) { |
||
18012 | os.setstate(std::ios_base::badbit); |
||
18013 | return os; |
||
18014 | } |
||
18015 | os << str; |
||
18016 | free(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(this->ptr, obj.ptr); |
||
18034 | return *this; |
||
18035 | } |
||
18036 | |||
18037 | isl::ctx schedule_node_context::ctx() const { |
||
18038 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18039 | } |
||
18040 | |||
18041 | isl::set schedule_node_context::context() const |
||
18042 | { |
||
18043 | auto res = isl_schedule_node_context_get_context(get()); |
||
18044 | return manage(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(obj.get()); |
||
18055 | if (!str) { |
||
18056 | os.setstate(std::ios_base::badbit); |
||
18057 | return os; |
||
18058 | } |
||
18059 | os << str; |
||
18060 | free(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(this->ptr, obj.ptr); |
||
18078 | return *this; |
||
18079 | } |
||
18080 | |||
18081 | isl::ctx schedule_node_domain::ctx() const { |
||
18082 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18083 | } |
||
18084 | |||
18085 | isl::union_set schedule_node_domain::domain() const |
||
18086 | { |
||
18087 | auto res = isl_schedule_node_domain_get_domain(get()); |
||
18088 | return manage(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(obj.get()); |
||
18099 | if (!str) { |
||
18100 | os.setstate(std::ios_base::badbit); |
||
18101 | return os; |
||
18102 | } |
||
18103 | os << str; |
||
18104 | free(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(this->ptr, obj.ptr); |
||
18122 | return *this; |
||
18123 | } |
||
18124 | |||
18125 | isl::ctx schedule_node_expansion::ctx() const { |
||
18126 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18127 | } |
||
18128 | |||
18129 | isl::union_pw_multi_aff schedule_node_expansion::contraction() const |
||
18130 | { |
||
18131 | auto res = isl_schedule_node_expansion_get_contraction(get()); |
||
18132 | return manage(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(get()); |
||
18143 | return manage(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(obj.get()); |
||
18154 | if (!str) { |
||
18155 | os.setstate(std::ios_base::badbit); |
||
18156 | return os; |
||
18157 | } |
||
18158 | os << str; |
||
18159 | free(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(this->ptr, obj.ptr); |
||
18177 | return *this; |
||
18178 | } |
||
18179 | |||
18180 | isl::ctx schedule_node_extension::ctx() const { |
||
18181 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18182 | } |
||
18183 | |||
18184 | isl::union_map schedule_node_extension::extension() const |
||
18185 | { |
||
18186 | auto res = isl_schedule_node_extension_get_extension(get()); |
||
18187 | return manage(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(obj.get()); |
||
18198 | if (!str) { |
||
18199 | os.setstate(std::ios_base::badbit); |
||
18200 | return os; |
||
18201 | } |
||
18202 | os << str; |
||
18203 | free(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(this->ptr, obj.ptr); |
||
18221 | return *this; |
||
18222 | } |
||
18223 | |||
18224 | isl::ctx schedule_node_filter::ctx() const { |
||
18225 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18226 | } |
||
18227 | |||
18228 | isl::union_set schedule_node_filter::filter() const |
||
18229 | { |
||
18230 | auto res = isl_schedule_node_filter_get_filter(get()); |
||
18231 | return manage(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(obj.get()); |
||
18242 | if (!str) { |
||
18243 | os.setstate(std::ios_base::badbit); |
||
18244 | return os; |
||
18245 | } |
||
18246 | os << str; |
||
18247 | free(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(this->ptr, obj.ptr); |
||
18265 | return *this; |
||
18266 | } |
||
18267 | |||
18268 | isl::ctx schedule_node_guard::ctx() const { |
||
18269 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18270 | } |
||
18271 | |||
18272 | isl::set schedule_node_guard::guard() const |
||
18273 | { |
||
18274 | auto res = isl_schedule_node_guard_get_guard(get()); |
||
18275 | return manage(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(obj.get()); |
||
18286 | if (!str) { |
||
18287 | os.setstate(std::ios_base::badbit); |
||
18288 | return os; |
||
18289 | } |
||
18290 | os << str; |
||
18291 | free(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(this->ptr, obj.ptr); |
||
18309 | return *this; |
||
18310 | } |
||
18311 | |||
18312 | isl::ctx schedule_node_leaf::ctx() const { |
||
18313 | return isl::ctx(isl_schedule_node_get_ctx(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(obj.get()); |
||
18319 | if (!str) { |
||
18320 | os.setstate(std::ios_base::badbit); |
||
18321 | return os; |
||
18322 | } |
||
18323 | os << str; |
||
18324 | free(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(this->ptr, obj.ptr); |
||
18342 | return *this; |
||
18343 | } |
||
18344 | |||
18345 | isl::ctx schedule_node_mark::ctx() const { |
||
18346 | return isl::ctx(isl_schedule_node_get_ctx(ptr)); |
||
18347 | } |
||
18348 | |||
18349 | isl::id schedule_node_mark::id() const |
||
18350 | { |
||
18351 | auto res = isl_schedule_node_mark_get_id(get()); |
||
18352 | return manage(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(obj.get()); |
||
18363 | if (!str) { |
||
18364 | os.setstate(std::ios_base::badbit); |
||
18365 | return os; |
||
18366 | } |
||
18367 | os << str; |
||
18368 | free(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(this->ptr, obj.ptr); |
||
18386 | return *this; |
||
18387 | } |
||
18388 | |||
18389 | isl::ctx schedule_node_sequence::ctx() const { |
||
18390 | return isl::ctx(isl_schedule_node_get_ctx(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(obj.get()); |
||
18396 | if (!str) { |
||
18397 | os.setstate(std::ios_base::badbit); |
||
18398 | return os; |
||
18399 | } |
||
18400 | os << str; |
||
18401 | free(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(this->ptr, obj.ptr); |
||
18419 | return *this; |
||
18420 | } |
||
18421 | |||
18422 | isl::ctx schedule_node_set::ctx() const { |
||
18423 | return isl::ctx(isl_schedule_node_get_ctx(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(obj.get()); |
||
18429 | if (!str) { |
||
18430 | os.setstate(std::ios_base::badbit); |
||
18431 | return os; |
||
18432 | } |
||
18433 | os << str; |
||
18434 | free(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(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.release()); |
||
18462 | ptr = res; |
||
18463 | } |
||
18464 | |||
18465 | set::set(isl::point pnt) |
||
18466 | { |
||
18467 | auto res = isl_set_from_point(pnt.release()); |
||
18468 | ptr = res; |
||
18469 | } |
||
18470 | |||
18471 | set::set(isl::union_set uset) |
||
18472 | { |
||
18473 | auto res = isl_set_from_union_set(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.release(), str.c_str()); |
||
18480 | ptr = res; |
||
18481 | } |
||
18482 | |||
18483 | set &set::operator=(set obj) { |
||
18484 | std::swap(this->ptr, obj.ptr); |
||
18485 | return *this; |
||
18486 | } |
||
18487 | |||
18488 | set::~set() { |
||
18489 | if (ptr) |
||
18490 | isl_set_free(ptr); |
||
18491 | } |
||
18492 | |||
18493 | __isl_give isl_set *set::copy() const & { |
||
18494 | return isl_set_copy(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(ptr)); |
||
18513 | } |
||
18514 | |||
18515 | isl::set set::add_constraint(isl::constraint constraint) const |
||
18516 | { |
||
18517 | auto res = isl_set_add_constraint(copy(), constraint.release()); |
||
18518 | return manage(res); |
||
18519 | } |
||
18520 | |||
18521 | isl::set set::add_dims(isl::dim type, unsigned int n) const |
||
18522 | { |
||
18523 | auto res = isl_set_add_dims(copy(), static_cast<enum isl_dim_type>(type), n); |
||
18524 | return manage(res); |
||
18525 | } |
||
18526 | |||
18527 | isl::basic_set set::affine_hull() const |
||
18528 | { |
||
18529 | auto res = isl_set_affine_hull(copy()); |
||
18530 | return manage(res); |
||
18531 | } |
||
18532 | |||
18533 | isl::set set::align_params(isl::space model) const |
||
18534 | { |
||
18535 | auto res = isl_set_align_params(copy(), model.release()); |
||
18536 | return manage(res); |
||
18537 | } |
||
18538 | |||
18539 | isl::set set::apply(isl::map map) const |
||
18540 | { |
||
18541 | auto res = isl_set_apply(copy(), map.release()); |
||
18542 | return manage(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(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(copy()); |
||
18558 | return manage(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(get()); |
||
18569 | return manage(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(copy(), tuple.release()); |
||
18580 | return manage(res); |
||
18581 | } |
||
18582 | |||
18583 | isl::set set::coalesce() const |
||
18584 | { |
||
18585 | auto res = isl_set_coalesce(copy()); |
||
18586 | return manage(res); |
||
18587 | } |
||
18588 | |||
18589 | isl::set set::complement() const |
||
18590 | { |
||
18591 | auto res = isl_set_complement(copy()); |
||
18592 | return manage(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(copy()); |
||
18608 | return manage(res); |
||
18609 | } |
||
18610 | |||
18611 | isl::set set::detect_equalities() const |
||
18612 | { |
||
18613 | auto res = isl_set_detect_equalities(copy()); |
||
18614 | return manage(res); |
||
18615 | } |
||
18616 | |||
18617 | class size set::dim(isl::dim type) const |
||
18618 | { |
||
18619 | auto res = isl_set_dim(get(), static_cast<enum isl_dim_type>(type)); |
||
18620 | return manage(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
18626 | return manage(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
18632 | return manage(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(copy(), pos); |
||
18643 | return manage(res); |
||
18644 | } |
||
18645 | |||
18646 | isl::val set::dim_max_val(int pos) const |
||
18647 | { |
||
18648 | auto res = isl_set_dim_max_val(copy(), pos); |
||
18649 | return manage(res); |
||
18650 | } |
||
18651 | |||
18652 | isl::pw_aff set::dim_min(int pos) const |
||
18653 | { |
||
18654 | auto res = isl_set_dim_min(copy(), pos); |
||
18655 | return manage(res); |
||
18656 | } |
||
18657 | |||
18658 | isl::val set::dim_min_val(int pos) const |
||
18659 | { |
||
18660 | auto res = isl_set_dim_min_val(copy(), pos); |
||
18661 | return manage(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(get(), 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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
18679 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
18685 | return manage(res); |
||
18686 | } |
||
18687 | |||
18688 | isl::set set::empty(isl::space space) |
||
18689 | { |
||
18690 | auto res = isl_set_empty(space.release()); |
||
18691 | return manage(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::extract_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(get(), static_cast<enum isl_dim_type>(type), 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, 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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
18718 | return manage(res); |
||
18719 | } |
||
18720 | |||
18721 | isl::set set::flatten() const |
||
18722 | { |
||
18723 | auto res = isl_set_flatten(copy()); |
||
18724 | return manage(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 = { 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(arg_0)); |
||
18735 | return ret.release(); |
||
18736 | }; |
||
18737 | auto res = isl_set_foreach_basic_set(get(), fn_lambda, &fn_data); |
||
18738 | return manage(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 = { 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(arg_0)); |
||
18749 | return ret.release(); |
||
18750 | }; |
||
18751 | auto res = isl_set_foreach_point(get(), fn_lambda, &fn_data); |
||
18752 | return manage(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(copy(), context.release()); |
||
18763 | return manage(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(isl::set(context)); |
||
18774 | } |
||
18775 | |||
18776 | isl::set set::gist(const isl::point &context) const |
||
18777 | { |
||
18778 | return this->gist(isl::set(context)); |
||
18779 | } |
||
18780 | |||
18781 | isl::set set::gist_params(isl::set context) const |
||
18782 | { |
||
18783 | auto res = isl_set_gist_params(copy(), context.release()); |
||
18784 | return manage(res); |
||
18785 | } |
||
18786 | |||
18787 | boolean set::has_equal_space(const isl::set &set2) const |
||
18788 | { |
||
18789 | auto res = isl_set_has_equal_space(get(), set2.get()); |
||
18790 | return manage(res); |
||
18791 | } |
||
18792 | |||
18793 | isl::map set::identity() const |
||
18794 | { |
||
18795 | auto res = isl_set_identity(copy()); |
||
18796 | return manage(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(copy()); |
||
18807 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, n); |
||
18813 | return manage(res); |
||
18814 | } |
||
18815 | |||
18816 | isl::map set::insert_domain(isl::space domain) const |
||
18817 | { |
||
18818 | auto res = isl_set_insert_domain(copy(), domain.release()); |
||
18819 | return manage(res); |
||
18820 | } |
||
18821 | |||
18822 | isl::set set::intersect(isl::set set2) const |
||
18823 | { |
||
18824 | auto res = isl_set_intersect(copy(), set2.release()); |
||
18825 | return manage(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(isl::set(set2)); |
||
18836 | } |
||
18837 | |||
18838 | isl::set set::intersect(const isl::point &set2) const |
||
18839 | { |
||
18840 | return this->intersect(isl::set(set2)); |
||
18841 | } |
||
18842 | |||
18843 | isl::set set::intersect_params(isl::set params) const |
||
18844 | { |
||
18845 | auto res = isl_set_intersect_params(copy(), params.release()); |
||
18846 | return manage(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(get(), static_cast<enum isl_dim_type>(type), first, n); |
||
18852 | return manage(res); |
||
18853 | } |
||
18854 | |||
18855 | boolean set::involves_locals() const |
||
18856 | { |
||
18857 | auto res = isl_set_involves_locals(get()); |
||
18858 | return manage(res); |
||
18859 | } |
||
18860 | |||
18861 | boolean set::is_bounded() const |
||
18862 | { |
||
18863 | auto res = isl_set_is_bounded(get()); |
||
18864 | return manage(res); |
||
18865 | } |
||
18866 | |||
18867 | boolean set::is_disjoint(const isl::set &set2) const |
||
18868 | { |
||
18869 | auto res = isl_set_is_disjoint(get(), set2.get()); |
||
18870 | return manage(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(isl::set(set2)); |
||
18881 | } |
||
18882 | |||
18883 | boolean set::is_disjoint(const isl::point &set2) const |
||
18884 | { |
||
18885 | return this->is_disjoint(isl::set(set2)); |
||
18886 | } |
||
18887 | |||
18888 | boolean set::is_empty() const |
||
18889 | { |
||
18890 | auto res = isl_set_is_empty(get()); |
||
18891 | return manage(res); |
||
18892 | } |
||
18893 | |||
18894 | boolean set::is_equal(const isl::set &set2) const |
||
18895 | { |
||
18896 | auto res = isl_set_is_equal(get(), set2.get()); |
||
18897 | return manage(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(isl::set(set2)); |
||
18908 | } |
||
18909 | |||
18910 | boolean set::is_equal(const isl::point &set2) const |
||
18911 | { |
||
18912 | return this->is_equal(isl::set(set2)); |
||
18913 | } |
||
18914 | |||
18915 | boolean set::is_params() const |
||
18916 | { |
||
18917 | auto res = isl_set_is_params(get()); |
||
18918 | return manage(res); |
||
18919 | } |
||
18920 | |||
18921 | boolean set::is_singleton() const |
||
18922 | { |
||
18923 | auto res = isl_set_is_singleton(get()); |
||
18924 | return manage(res); |
||
18925 | } |
||
18926 | |||
18927 | boolean set::is_strict_subset(const isl::set &set2) const |
||
18928 | { |
||
18929 | auto res = isl_set_is_strict_subset(get(), set2.get()); |
||
18930 | return manage(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(isl::set(set2)); |
||
18941 | } |
||
18942 | |||
18943 | boolean set::is_strict_subset(const isl::point &set2) const |
||
18944 | { |
||
18945 | return this->is_strict_subset(isl::set(set2)); |
||
18946 | } |
||
18947 | |||
18948 | boolean set::is_subset(const isl::set &set2) const |
||
18949 | { |
||
18950 | auto res = isl_set_is_subset(get(), set2.get()); |
||
18951 | return manage(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(isl::set(set2)); |
||
18962 | } |
||
18963 | |||
18964 | boolean set::is_subset(const isl::point &set2) const |
||
18965 | { |
||
18966 | return this->is_subset(isl::set(set2)); |
||
18967 | } |
||
18968 | |||
18969 | boolean set::is_wrapping() const |
||
18970 | { |
||
18971 | auto res = isl_set_is_wrapping(get()); |
||
18972 | return manage(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(copy()); |
||
18983 | return manage(res); |
||
18984 | } |
||
18985 | |||
18986 | isl::pw_multi_aff set::lexmax_pw_multi_aff() const |
||
18987 | { |
||
18988 | auto res = isl_set_lexmax_pw_multi_aff(copy()); |
||
18989 | return manage(res); |
||
18990 | } |
||
18991 | |||
18992 | isl::set set::lexmin() const |
||
18993 | { |
||
18994 | auto res = isl_set_lexmin(copy()); |
||
18995 | return manage(res); |
||
18996 | } |
||
18997 | |||
18998 | isl::pw_multi_aff set::lexmin_pw_multi_aff() const |
||
18999 | { |
||
19000 | auto res = isl_set_lexmin_pw_multi_aff(copy()); |
||
19001 | return manage(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(copy(), lower.release()); |
||
19007 | return manage(res); |
||
19008 | } |
||
19009 | |||
19010 | isl::set set::lower_bound(isl::multi_val lower) const |
||
19011 | { |
||
19012 | auto res = isl_set_lower_bound_multi_val(copy(), lower.release()); |
||
19013 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, value); |
||
19019 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, value.release()); |
||
19025 | return manage(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, 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(copy()); |
||
19036 | return manage(res); |
||
19037 | } |
||
19038 | |||
19039 | isl::val set::max_val(const isl::aff &obj) const |
||
19040 | { |
||
19041 | auto res = isl_set_max_val(get(), obj.get()); |
||
19042 | return manage(res); |
||
19043 | } |
||
19044 | |||
19045 | isl::multi_pw_aff set::min_multi_pw_aff() const |
||
19046 | { |
||
19047 | auto res = isl_set_min_multi_pw_aff(copy()); |
||
19048 | return manage(res); |
||
19049 | } |
||
19050 | |||
19051 | isl::val set::min_val(const isl::aff &obj) const |
||
19052 | { |
||
19053 | auto res = isl_set_min_val(get(), obj.get()); |
||
19054 | return manage(res); |
||
19055 | } |
||
19056 | |||
19057 | class size set::n_basic_set() const |
||
19058 | { |
||
19059 | auto res = isl_set_n_basic_set(get()); |
||
19060 | return manage(res); |
||
19061 | } |
||
19062 | |||
19063 | isl::set set::params() const |
||
19064 | { |
||
19065 | auto res = isl_set_params(copy()); |
||
19066 | return manage(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
19072 | return manage(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(get()); |
||
19078 | return manage(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(copy()); |
||
19089 | return manage(res); |
||
19090 | } |
||
19091 | |||
19092 | isl::set set::preimage(isl::multi_aff ma) const |
||
19093 | { |
||
19094 | auto res = isl_set_preimage_multi_aff(copy(), ma.release()); |
||
19095 | return manage(res); |
||
19096 | } |
||
19097 | |||
19098 | isl::set set::preimage(isl::multi_pw_aff mpa) const |
||
19099 | { |
||
19100 | auto res = isl_set_preimage_multi_pw_aff(copy(), mpa.release()); |
||
19101 | return manage(res); |
||
19102 | } |
||
19103 | |||
19104 | isl::set set::preimage(isl::pw_multi_aff pma) const |
||
19105 | { |
||
19106 | auto res = isl_set_preimage_pw_multi_aff(copy(), pma.release()); |
||
19107 | return manage(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(copy(), set2.release()); |
||
19118 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
19124 | return manage(res); |
||
19125 | } |
||
19126 | |||
19127 | isl::set set::project_out_all_params() const |
||
19128 | { |
||
19129 | auto res = isl_set_project_out_all_params(copy()); |
||
19130 | return manage(res); |
||
19131 | } |
||
19132 | |||
19133 | isl::set set::project_out_param(isl::id id) const |
||
19134 | { |
||
19135 | auto res = isl_set_project_out_param_id(copy(), id.release()); |
||
19136 | return manage(res); |
||
19137 | } |
||
19138 | |||
19139 | isl::set set::project_out_param(const std::string &id) const |
||
19140 | { |
||
19141 | return this->project_out_param(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(copy(), list.release()); |
||
19147 | return manage(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(copy(), mv.release()); |
||
19153 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), first, n); |
||
19159 | return manage(res); |
||
19160 | } |
||
19161 | |||
19162 | isl::set set::remove_divs() const |
||
19163 | { |
||
19164 | auto res = isl_set_remove_divs(copy()); |
||
19165 | return manage(res); |
||
19166 | } |
||
19167 | |||
19168 | isl::set set::remove_redundancies() const |
||
19169 | { |
||
19170 | auto res = isl_set_remove_redundancies(copy()); |
||
19171 | return manage(res); |
||
19172 | } |
||
19173 | |||
19174 | isl::set set::reset_tuple_id() const |
||
19175 | { |
||
19176 | auto res = isl_set_reset_tuple_id(copy()); |
||
19177 | return manage(res); |
||
19178 | } |
||
19179 | |||
19180 | isl::basic_set set::sample() const |
||
19181 | { |
||
19182 | auto res = isl_set_sample(copy()); |
||
19183 | return manage(res); |
||
19184 | } |
||
19185 | |||
19186 | isl::point set::sample_point() const |
||
19187 | { |
||
19188 | auto res = isl_set_sample_point(copy()); |
||
19189 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, id.release()); |
||
19195 | return manage(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, 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(copy(), id.release()); |
||
19211 | return manage(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(get()); |
||
19222 | return manage(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(copy()); |
||
19233 | return manage(res); |
||
19234 | } |
||
19235 | |||
19236 | isl::space set::space() const |
||
19237 | { |
||
19238 | auto res = isl_set_get_space(get()); |
||
19239 | return manage(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(get(), pos); |
||
19250 | return manage(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(copy(), set2.release()); |
||
19261 | return manage(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(isl::set(set2)); |
||
19272 | } |
||
19273 | |||
19274 | isl::set set::subtract(const isl::point &set2) const |
||
19275 | { |
||
19276 | return this->subtract(isl::set(set2)); |
||
19277 | } |
||
19278 | |||
19279 | isl::set_list set::to_list() const |
||
19280 | { |
||
19281 | auto res = isl_set_to_list(copy()); |
||
19282 | return manage(res); |
||
19283 | } |
||
19284 | |||
19285 | isl::union_set set::to_union_set() const |
||
19286 | { |
||
19287 | auto res = isl_set_to_union_set(copy()); |
||
19288 | return manage(res); |
||
19289 | } |
||
19290 | |||
19291 | isl::map set::translation() const |
||
19292 | { |
||
19293 | auto res = isl_set_translation(copy()); |
||
19294 | return manage(res); |
||
19295 | } |
||
19296 | |||
19297 | class size set::tuple_dim() const |
||
19298 | { |
||
19299 | auto res = isl_set_tuple_dim(get()); |
||
19300 | return manage(res); |
||
19301 | } |
||
19302 | |||
19303 | isl::id set::tuple_id() const |
||
19304 | { |
||
19305 | auto res = isl_set_get_tuple_id(get()); |
||
19306 | return manage(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(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(copy(), tuple.release()); |
||
19329 | return manage(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(copy(), domain.release()); |
||
19335 | return manage(res); |
||
19336 | } |
||
19337 | |||
19338 | isl::set set::unite(isl::set set2) const |
||
19339 | { |
||
19340 | auto res = isl_set_union(copy(), set2.release()); |
||
19341 | return manage(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(isl::set(set2)); |
||
19352 | } |
||
19353 | |||
19354 | isl::set set::unite(const isl::point &set2) const |
||
19355 | { |
||
19356 | return this->unite(isl::set(set2)); |
||
19357 | } |
||
19358 | |||
19359 | isl::set set::universe(isl::space space) |
||
19360 | { |
||
19361 | auto res = isl_set_universe(space.release()); |
||
19362 | return manage(res); |
||
19363 | } |
||
19364 | |||
19365 | isl::basic_set set::unshifted_simple_hull() const |
||
19366 | { |
||
19367 | auto res = isl_set_unshifted_simple_hull(copy()); |
||
19368 | return manage(res); |
||
19369 | } |
||
19370 | |||
19371 | isl::map set::unwrap() const |
||
19372 | { |
||
19373 | auto res = isl_set_unwrap(copy()); |
||
19374 | return manage(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(copy(), upper.release()); |
||
19380 | return manage(res); |
||
19381 | } |
||
19382 | |||
19383 | isl::set set::upper_bound(isl::multi_val upper) const |
||
19384 | { |
||
19385 | auto res = isl_set_upper_bound_multi_val(copy(), upper.release()); |
||
19386 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, value.release()); |
||
19392 | return manage(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, 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(obj.get()); |
||
19403 | if (!str) { |
||
19404 | os.setstate(std::ios_base::badbit); |
||
19405 | return os; |
||
19406 | } |
||
19407 | os << str; |
||
19408 | free(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(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.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.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.release(), str.c_str()); |
||
19448 | ptr = res; |
||
19449 | } |
||
19450 | |||
19451 | set_list &set_list::operator=(set_list obj) { |
||
19452 | std::swap(this->ptr, obj.ptr); |
||
19453 | return *this; |
||
19454 | } |
||
19455 | |||
19456 | set_list::~set_list() { |
||
19457 | if (ptr) |
||
19458 | isl_set_list_free(ptr); |
||
19459 | } |
||
19460 | |||
19461 | __isl_give isl_set_list *set_list::copy() const & { |
||
19462 | return isl_set_list_copy(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(ptr)); |
||
19481 | } |
||
19482 | |||
19483 | isl::set_list set_list::add(isl::set el) const |
||
19484 | { |
||
19485 | auto res = isl_set_list_add(copy(), el.release()); |
||
19486 | return manage(res); |
||
19487 | } |
||
19488 | |||
19489 | isl::set set_list::at(int index) const |
||
19490 | { |
||
19491 | auto res = isl_set_list_get_at(get(), index); |
||
19492 | return manage(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(copy()); |
||
19503 | return manage(res); |
||
19504 | } |
||
19505 | |||
19506 | isl::set_list set_list::concat(isl::set_list list2) const |
||
19507 | { |
||
19508 | auto res = isl_set_list_concat(copy(), list2.release()); |
||
19509 | return manage(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(copy(), first, n); |
||
19515 | return manage(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 = { 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(arg_0)); |
||
19526 | return ret.release(); |
||
19527 | }; |
||
19528 | auto res = isl_set_list_foreach(get(), fn_lambda, &fn_data); |
||
19529 | return manage(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(copy(), pos, el.release()); |
||
19535 | return manage(res); |
||
19536 | } |
||
19537 | |||
19538 | class size set_list::size() const |
||
19539 | { |
||
19540 | auto res = isl_set_list_size(get()); |
||
19541 | return manage(res); |
||
19542 | } |
||
19543 | |||
19544 | inline std::ostream &operator<<(std::ostream &os, const set_list &obj) |
||
19545 | { |
||
19546 | char *str = isl_set_list_to_str(obj.get()); |
||
19547 | if (!str) { |
||
19548 | os.setstate(std::ios_base::badbit); |
||
19549 | return os; |
||
19550 | } |
||
19551 | os << str; |
||
19552 | free(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(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.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.release(), nparam, dim); |
||
19586 | ptr = res; |
||
19587 | } |
||
19588 | |||
19589 | space &space::operator=(space obj) { |
||
19590 | std::swap(this->ptr, obj.ptr); |
||
19591 | return *this; |
||
19592 | } |
||
19593 | |||
19594 | space::~space() { |
||
19595 | if (ptr) |
||
19596 | isl_space_free(ptr); |
||
19597 | } |
||
19598 | |||
19599 | __isl_give isl_space *space::copy() const & { |
||
19600 | return isl_space_copy(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(ptr)); |
||
19619 | } |
||
19620 | |||
19621 | isl::space space::add_dims(isl::dim type, unsigned int n) const |
||
19622 | { |
||
19623 | auto res = isl_space_add_dims(copy(), static_cast<enum isl_dim_type>(type), n); |
||
19624 | return manage(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(copy(), tuple_id.release(), dim); |
||
19630 | return manage(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(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(copy(), id.release()); |
||
19641 | return manage(res); |
||
19642 | } |
||
19643 | |||
19644 | isl::space space::add_param(const std::string &id) const |
||
19645 | { |
||
19646 | return this->add_param(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(copy(), dim); |
||
19652 | return manage(res); |
||
19653 | } |
||
19654 | |||
19655 | isl::space space::align_params(isl::space space2) const |
||
19656 | { |
||
19657 | auto res = isl_space_align_params(copy(), space2.release()); |
||
19658 | return manage(res); |
||
19659 | } |
||
19660 | |||
19661 | isl::space space::curry() const |
||
19662 | { |
||
19663 | auto res = isl_space_curry(copy()); |
||
19664 | return manage(res); |
||
19665 | } |
||
19666 | |||
19667 | class size space::dim(isl::dim type) const |
||
19668 | { |
||
19669 | auto res = isl_space_dim(get(), static_cast<enum isl_dim_type>(type)); |
||
19670 | return manage(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(get(), static_cast<enum isl_dim_type>(type), pos); |
||
19676 | return manage(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(copy()); |
||
19687 | return manage(res); |
||
19688 | } |
||
19689 | |||
19690 | isl::multi_aff space::domain_map_multi_aff() const |
||
19691 | { |
||
19692 | auto res = isl_space_domain_map_multi_aff(copy()); |
||
19693 | return manage(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(copy()); |
||
19699 | return manage(res); |
||
19700 | } |
||
19701 | |||
19702 | isl::id space::domain_tuple_id() const |
||
19703 | { |
||
19704 | auto res = isl_space_get_domain_tuple_id(get()); |
||
19705 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), first, num); |
||
19716 | return manage(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(get(), static_cast<enum isl_dim_type>(type), 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, isl::id(ctx(), id)); |
||
19728 | } |
||
19729 | |||
19730 | isl::space space::flatten_domain() const |
||
19731 | { |
||
19732 | auto res = isl_space_flatten_domain(copy()); |
||
19733 | return manage(res); |
||
19734 | } |
||
19735 | |||
19736 | isl::space space::flatten_range() const |
||
19737 | { |
||
19738 | auto res = isl_space_flatten_range(copy()); |
||
19739 | return manage(res); |
||
19740 | } |
||
19741 | |||
19742 | boolean space::has_domain_tuple_id() const |
||
19743 | { |
||
19744 | auto res = isl_space_has_domain_tuple_id(get()); |
||
19745 | return manage(res); |
||
19746 | } |
||
19747 | |||
19748 | boolean space::has_equal_tuples(const isl::space &space2) const |
||
19749 | { |
||
19750 | auto res = isl_space_has_equal_tuples(get(), space2.get()); |
||
19751 | return manage(res); |
||
19752 | } |
||
19753 | |||
19754 | boolean space::has_range_tuple_id() const |
||
19755 | { |
||
19756 | auto res = isl_space_has_range_tuple_id(get()); |
||
19757 | return manage(res); |
||
19758 | } |
||
19759 | |||
19760 | boolean space::has_tuple_id(isl::dim type) const |
||
19761 | { |
||
19762 | auto res = isl_space_has_tuple_id(get(), static_cast<enum isl_dim_type>(type)); |
||
19763 | return manage(res); |
||
19764 | } |
||
19765 | |||
19766 | boolean space::has_tuple_name(isl::dim type) const |
||
19767 | { |
||
19768 | auto res = isl_space_has_tuple_name(get(), static_cast<enum isl_dim_type>(type)); |
||
19769 | return manage(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(copy()); |
||
19775 | return manage(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(copy()); |
||
19781 | return manage(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(copy()); |
||
19787 | return manage(res); |
||
19788 | } |
||
19789 | |||
19790 | boolean space::is_equal(const isl::space &space2) const |
||
19791 | { |
||
19792 | auto res = isl_space_is_equal(get(), space2.get()); |
||
19793 | return manage(res); |
||
19794 | } |
||
19795 | |||
19796 | boolean space::is_params() const |
||
19797 | { |
||
19798 | auto res = isl_space_is_params(get()); |
||
19799 | return manage(res); |
||
19800 | } |
||
19801 | |||
19802 | boolean space::is_set() const |
||
19803 | { |
||
19804 | auto res = isl_space_is_set(get()); |
||
19805 | return manage(res); |
||
19806 | } |
||
19807 | |||
19808 | boolean space::is_wrapping() const |
||
19809 | { |
||
19810 | auto res = isl_space_is_wrapping(get()); |
||
19811 | return manage(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(copy(), range.release()); |
||
19817 | return manage(res); |
||
19818 | } |
||
19819 | |||
19820 | isl::space space::map_from_set() const |
||
19821 | { |
||
19822 | auto res = isl_space_map_from_set(copy()); |
||
19823 | return manage(res); |
||
19824 | } |
||
19825 | |||
19826 | isl::multi_aff space::multi_aff(isl::aff_list list) const |
||
19827 | { |
||
19828 | auto res = isl_space_multi_aff(copy(), list.release()); |
||
19829 | return manage(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(copy(), mv.release()); |
||
19835 | return manage(res); |
||
19836 | } |
||
19837 | |||
19838 | isl::multi_id space::multi_id(isl::id_list list) const |
||
19839 | { |
||
19840 | auto res = isl_space_multi_id(copy(), list.release()); |
||
19841 | return manage(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(copy(), list.release()); |
||
19847 | return manage(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(copy(), list.release()); |
||
19853 | return manage(res); |
||
19854 | } |
||
19855 | |||
19856 | isl::multi_val space::multi_val(isl::val_list list) const |
||
19857 | { |
||
19858 | auto res = isl_space_multi_val(copy(), list.release()); |
||
19859 | return manage(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(copy(), id.release()); |
||
19865 | return manage(res); |
||
19866 | } |
||
19867 | |||
19868 | isl::aff space::param_aff_on_domain(const std::string &id) const |
||
19869 | { |
||
19870 | return this->param_aff_on_domain(isl::id(ctx(), id)); |
||
19871 | } |
||
19872 | |||
19873 | isl::space space::params() const |
||
19874 | { |
||
19875 | auto res = isl_space_params(copy()); |
||
19876 | return manage(res); |
||
19877 | } |
||
19878 | |||
19879 | isl::space space::params_alloc(isl::ctx ctx, unsigned int nparam) |
||
19880 | { |
||
19881 | auto res = isl_space_params_alloc(ctx.release(), nparam); |
||
19882 | return manage(res); |
||
19883 | } |
||
19884 | |||
19885 | isl::space space::product(isl::space right) const |
||
19886 | { |
||
19887 | auto res = isl_space_product(copy(), right.release()); |
||
19888 | return manage(res); |
||
19889 | } |
||
19890 | |||
19891 | isl::space space::range() const |
||
19892 | { |
||
19893 | auto res = isl_space_range(copy()); |
||
19894 | return manage(res); |
||
19895 | } |
||
19896 | |||
19897 | isl::multi_aff space::range_map_multi_aff() const |
||
19898 | { |
||
19899 | auto res = isl_space_range_map_multi_aff(copy()); |
||
19900 | return manage(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(copy()); |
||
19906 | return manage(res); |
||
19907 | } |
||
19908 | |||
19909 | isl::space space::range_reverse() const |
||
19910 | { |
||
19911 | auto res = isl_space_range_reverse(copy()); |
||
19912 | return manage(res); |
||
19913 | } |
||
19914 | |||
19915 | isl::id space::range_tuple_id() const |
||
19916 | { |
||
19917 | auto res = isl_space_get_range_tuple_id(get()); |
||
19918 | return manage(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(copy()); |
||
19929 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), pos, id.release()); |
||
19935 | return manage(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, 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(copy(), id.release()); |
||
19946 | return manage(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(copy()); |
||
19957 | return manage(res); |
||
19958 | } |
||
19959 | |||
19960 | isl::space space::set_range_tuple(isl::id id) const |
||
19961 | { |
||
19962 | auto res = isl_space_set_range_tuple_id(copy(), id.release()); |
||
19963 | return manage(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(copy(), static_cast<enum isl_dim_type>(type), id.release()); |
||
19974 | return manage(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, 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(get(), static_cast<enum isl_dim_type>(type)); |
||
19985 | return manage(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(get(), 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(copy()); |
||
20008 | return manage(res); |
||
20009 | } |
||
20010 | |||
20011 | isl::space space::unit(isl::ctx ctx) |
||
20012 | { |
||
20013 | auto res = isl_space_unit(ctx.release()); |
||
20014 | return manage(res); |
||
20015 | } |
||
20016 | |||
20017 | isl::map space::universe_map() const |
||
20018 | { |
||
20019 | auto res = isl_space_universe_map(copy()); |
||
20020 | return manage(res); |
||
20021 | } |
||
20022 | |||
20023 | isl::set space::universe_set() const |
||
20024 | { |
||
20025 | auto res = isl_space_universe_set(copy()); |
||
20026 | return manage(res); |
||
20027 | } |
||
20028 | |||
20029 | isl::space space::unwrap() const |
||
20030 | { |
||
20031 | auto res = isl_space_unwrap(copy()); |
||
20032 | return manage(res); |
||
20033 | } |
||
20034 | |||
20035 | isl::space space::wrap() const |
||
20036 | { |
||
20037 | auto res = isl_space_wrap(copy()); |
||
20038 | return manage(res); |
||
20039 | } |
||
20040 | |||
20041 | isl::aff space::zero_aff_on_domain() const |
||
20042 | { |
||
20043 | auto res = isl_space_zero_aff_on_domain(copy()); |
||
20044 | return manage(res); |
||
20045 | } |
||
20046 | |||
20047 | isl::multi_aff space::zero_multi_aff() const |
||
20048 | { |
||
20049 | auto res = isl_space_zero_multi_aff(copy()); |
||
20050 | return manage(res); |
||
20051 | } |
||
20052 | |||
20053 | isl::multi_pw_aff space::zero_multi_pw_aff() const |
||
20054 | { |
||
20055 | auto res = isl_space_zero_multi_pw_aff(copy()); |
||
20056 | return manage(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(copy()); |
||
20062 | return manage(res); |
||
20063 | } |
||
20064 | |||
20065 | isl::multi_val space::zero_multi_val() const |
||
20066 | { |
||
20067 | auto res = isl_space_zero_multi_val(copy()); |
||
20068 | return manage(res); |
||
20069 | } |
||
20070 | |||
20071 | inline std::ostream &operator<<(std::ostream &os, const space &obj) |
||
20072 | { |
||
20073 | char *str = isl_space_to_str(obj.get()); |
||
20074 | if (!str) { |
||
20075 | os.setstate(std::ios_base::badbit); |
||
20076 | return os; |
||
20077 | } |
||
20078 | os << str; |
||
20079 | free(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(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.release()); |
||
20107 | ptr = res; |
||
20108 | } |
||
20109 | |||
20110 | union_access_info &union_access_info::operator=(union_access_info obj) { |
||
20111 | std::swap(this->ptr, obj.ptr); |
||
20112 | return *this; |
||
20113 | } |
||
20114 | |||
20115 | union_access_info::~union_access_info() { |
||
20116 | if (ptr) |
||
20117 | isl_union_access_info_free(ptr); |
||
20118 | } |
||
20119 | |||
20120 | __isl_give isl_union_access_info *union_access_info::copy() const & { |
||
20121 | return isl_union_access_info_copy(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(ptr)); |
||
20140 | } |
||
20141 | |||
20142 | isl::union_flow union_access_info::compute_flow() const |
||
20143 | { |
||
20144 | auto res = isl_union_access_info_compute_flow(copy()); |
||
20145 | return manage(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(copy(), kill.release()); |
||
20151 | return manage(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(copy(), may_source.release()); |
||
20157 | return manage(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(copy(), must_source.release()); |
||
20163 | return manage(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(copy(), schedule.release()); |
||
20169 | return manage(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(copy(), schedule_map.release()); |
||
20175 | return manage(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(obj.get()); |
||
20181 | if (!str) { |
||
20182 | os.setstate(std::ios_base::badbit); |
||
20183 | return os; |
||
20184 | } |
||
20185 | os << str; |
||
20186 | free(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(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(this->ptr, obj.ptr); |
||
20213 | return *this; |
||
20214 | } |
||
20215 | |||
20216 | union_flow::~union_flow() { |
||
20217 | if (ptr) |
||
20218 | isl_union_flow_free(ptr); |
||
20219 | } |
||
20220 | |||
20221 | __isl_give isl_union_flow *union_flow::copy() const & { |
||
20222 | return isl_union_flow_copy(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(ptr)); |
||
20241 | } |
||
20242 | |||
20243 | isl::union_map union_flow::full_may_dependence() const |
||
20244 | { |
||
20245 | auto res = isl_union_flow_get_full_may_dependence(get()); |
||
20246 | return manage(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(get()); |
||
20257 | return manage(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(get()); |
||
20268 | return manage(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(get()); |
||
20279 | return manage(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(get()); |
||
20290 | return manage(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(get()); |
||
20301 | return manage(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(obj.get()); |
||
20312 | if (!str) { |
||
20313 | os.setstate(std::ios_base::badbit); |
||
20314 | return os; |
||
20315 | } |
||
20316 | os << str; |
||
20317 | free(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(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.release()); |
||
20345 | ptr = res; |
||
20346 | } |
||
20347 | |||
20348 | union_map::union_map(isl::map map) |
||
20349 | { |
||
20350 | auto res = isl_union_map_from_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.release(), str.c_str()); |
||
20357 | ptr = res; |
||
20358 | } |
||
20359 | |||
20360 | union_map &union_map::operator=(union_map obj) { |
||
20361 | std::swap(this->ptr, obj.ptr); |
||
20362 | return *this; |
||
20363 | } |
||
20364 | |||
20365 | union_map::~union_map() { |
||
20366 | if (ptr) |
||
20367 | isl_union_map_free(ptr); |
||
20368 | } |
||
20369 | |||
20370 | __isl_give isl_union_map *union_map::copy() const & { |
||
20371 | return isl_union_map_copy(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(ptr)); |
||
20390 | } |
||
20391 | |||
20392 | isl::union_map union_map::affine_hull() const |
||
20393 | { |
||
20394 | auto res = isl_union_map_affine_hull(copy()); |
||
20395 | return manage(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(copy(), umap2.release()); |
||
20401 | return manage(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(copy(), umap2.release()); |
||
20407 | return manage(res); |
||
20408 | } |
||
20409 | |||
20410 | isl::map union_map::as_map() const |
||
20411 | { |
||
20412 | auto res = isl_union_map_as_map(copy()); |
||
20413 | return manage(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(copy()); |
||
20419 | return manage(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(copy()); |
||
20425 | return manage(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(copy(), tuple.release()); |
||
20431 | return manage(res); |
||
20432 | } |
||
20433 | |||
20434 | isl::union_map union_map::coalesce() const |
||
20435 | { |
||
20436 | auto res = isl_union_map_coalesce(copy()); |
||
20437 | return manage(res); |
||
20438 | } |
||
20439 | |||
20440 | isl::union_map union_map::compute_divs() const |
||
20441 | { |
||
20442 | auto res = isl_union_map_compute_divs(copy()); |
||
20443 | return manage(res); |
||
20444 | } |
||
20445 | |||
20446 | isl::union_map union_map::curry() const |
||
20447 | { |
||
20448 | auto res = isl_union_map_curry(copy()); |
||
20449 | return manage(res); |
||
20450 | } |
||
20451 | |||
20452 | isl::union_set union_map::deltas() const |
||
20453 | { |
||
20454 | auto res = isl_union_map_deltas(copy()); |
||
20455 | return manage(res); |
||
20456 | } |
||
20457 | |||
20458 | isl::union_map union_map::detect_equalities() const |
||
20459 | { |
||
20460 | auto res = isl_union_map_detect_equalities(copy()); |
||
20461 | return manage(res); |
||
20462 | } |
||
20463 | |||
20464 | isl::union_set union_map::domain() const |
||
20465 | { |
||
20466 | auto res = isl_union_map_domain(copy()); |
||
20467 | return manage(res); |
||
20468 | } |
||
20469 | |||
20470 | isl::union_map union_map::domain_factor_domain() const |
||
20471 | { |
||
20472 | auto res = isl_union_map_domain_factor_domain(copy()); |
||
20473 | return manage(res); |
||
20474 | } |
||
20475 | |||
20476 | isl::union_map union_map::domain_factor_range() const |
||
20477 | { |
||
20478 | auto res = isl_union_map_domain_factor_range(copy()); |
||
20479 | return manage(res); |
||
20480 | } |
||
20481 | |||
20482 | isl::union_map union_map::domain_map() const |
||
20483 | { |
||
20484 | auto res = isl_union_map_domain_map(copy()); |
||
20485 | return manage(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(copy()); |
||
20491 | return manage(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(copy(), umap2.release()); |
||
20497 | return manage(res); |
||
20498 | } |
||
20499 | |||
20500 | isl::union_map union_map::empty(isl::ctx ctx) |
||
20501 | { |
||
20502 | auto res = isl_union_map_empty_ctx(ctx.release()); |
||
20503 | return manage(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(copy(), mupa.release()); |
||
20509 | return manage(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 = { 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(arg_0)); |
||
20520 | return ret.release(); |
||
20521 | }; |
||
20522 | auto res = isl_union_map_every_map(get(), test_lambda, &test_data); |
||
20523 | return manage(res); |
||
20524 | } |
||
20525 | |||
20526 | isl::map union_map::extract_map(isl::space space) const |
||
20527 | { |
||
20528 | auto res = isl_union_map_extract_map(get(), space.release()); |
||
20529 | return manage(res); |
||
20530 | } |
||
20531 | |||
20532 | isl::union_map union_map::factor_domain() const |
||
20533 | { |
||
20534 | auto res = isl_union_map_factor_domain(copy()); |
||
20535 | return manage(res); |
||
20536 | } |
||
20537 | |||
20538 | isl::union_map union_map::factor_range() const |
||
20539 | { |
||
20540 | auto res = isl_union_map_factor_range(copy()); |
||
20541 | return manage(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(copy(), exp.release()); |
||
20547 | return manage(res); |
||
20548 | } |
||
20549 | |||
20550 | isl::union_map union_map::fixed_power(long exp) const |
||
20551 | { |
||
20552 | return this->fixed_power(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(copy(), umap2.release()); |
||
20558 | return manage(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 = { 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(arg_0)); |
||
20569 | return ret.release(); |
||
20570 | }; |
||
20571 | auto res = isl_union_map_foreach_map(get(), fn_lambda, &fn_data); |
||
20572 | return manage(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.release()); |
||
20578 | return manage(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.release()); |
||
20584 | return manage(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.release()); |
||
20590 | return manage(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.release(), range.release()); |
||
20596 | return manage(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.release()); |
||
20602 | return manage(res); |
||
20603 | } |
||
20604 | |||
20605 | isl::union_map union_map::gist(isl::union_map context) const |
||
20606 | { |
||
20607 | auto res = isl_union_map_gist(copy(), context.release()); |
||
20608 | return manage(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(copy(), uset.release()); |
||
20614 | return manage(res); |
||
20615 | } |
||
20616 | |||
20617 | isl::union_map union_map::gist_params(isl::set set) const |
||
20618 | { |
||
20619 | auto res = isl_union_map_gist_params(copy(), set.release()); |
||
20620 | return manage(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(copy(), uset.release()); |
||
20626 | return manage(res); |
||
20627 | } |
||
20628 | |||
20629 | isl::union_map union_map::intersect(isl::union_map umap2) const |
||
20630 | { |
||
20631 | auto res = isl_union_map_intersect(copy(), umap2.release()); |
||
20632 | return manage(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(copy(), space.release()); |
||
20638 | return manage(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(copy(), uset.release()); |
||
20644 | return manage(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(copy(), factor.release()); |
||
20650 | return manage(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(copy(), factor.release()); |
||
20656 | return manage(res); |
||
20657 | } |
||
20658 | |||
20659 | isl::union_map union_map::intersect_params(isl::set set) const |
||
20660 | { |
||
20661 | auto res = isl_union_map_intersect_params(copy(), set.release()); |
||
20662 | return manage(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(copy(), space.release()); |
||
20668 | return manage(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(copy(), uset.release()); |
||
20674 | return manage(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(copy(), factor.release()); |
||
20680 | return manage(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(copy(), factor.release()); |
||
20686 | return manage(res); |
||
20687 | } |
||
20688 | |||
20689 | boolean union_map::is_bijective() const |
||
20690 | { |
||
20691 | auto res = isl_union_map_is_bijective(get()); |
||
20692 | return manage(res); |
||
20693 | } |
||
20694 | |||
20695 | boolean union_map::is_disjoint(const isl::union_map &umap2) const |
||
20696 | { |
||
20697 | auto res = isl_union_map_is_disjoint(get(), umap2.get()); |
||
20698 | return manage(res); |
||
20699 | } |
||
20700 | |||
20701 | boolean union_map::is_empty() const |
||
20702 | { |
||
20703 | auto res = isl_union_map_is_empty(get()); |
||
20704 | return manage(res); |
||
20705 | } |
||
20706 | |||
20707 | boolean union_map::is_equal(const isl::union_map &umap2) const |
||
20708 | { |
||
20709 | auto res = isl_union_map_is_equal(get(), umap2.get()); |
||
20710 | return manage(res); |
||
20711 | } |
||
20712 | |||
20713 | boolean union_map::is_injective() const |
||
20714 | { |
||
20715 | auto res = isl_union_map_is_injective(get()); |
||
20716 | return manage(res); |
||
20717 | } |
||
20718 | |||
20719 | boolean union_map::is_single_valued() const |
||
20720 | { |
||
20721 | auto res = isl_union_map_is_single_valued(get()); |
||
20722 | return manage(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(get(), umap2.get()); |
||
20728 | return manage(res); |
||
20729 | } |
||
20730 | |||
20731 | boolean union_map::is_subset(const isl::union_map &umap2) const |
||
20732 | { |
||
20733 | auto res = isl_union_map_is_subset(get(), umap2.get()); |
||
20734 | return manage(res); |
||
20735 | } |
||
20736 | |||
20737 | boolean union_map::isa_map() const |
||
20738 | { |
||
20739 | auto res = isl_union_map_isa_map(get()); |
||
20740 | return manage(res); |
||
20741 | } |
||
20742 | |||
20743 | isl::union_map union_map::lexmax() const |
||
20744 | { |
||
20745 | auto res = isl_union_map_lexmax(copy()); |
||
20746 | return manage(res); |
||
20747 | } |
||
20748 | |||
20749 | isl::union_map union_map::lexmin() const |
||
20750 | { |
||
20751 | auto res = isl_union_map_lexmin(copy()); |
||
20752 | return manage(res); |
||
20753 | } |
||
20754 | |||
20755 | isl::map_list union_map::map_list() const |
||
20756 | { |
||
20757 | auto res = isl_union_map_get_map_list(get()); |
||
20758 | return manage(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(copy()); |
||
20769 | return manage(res); |
||
20770 | } |
||
20771 | |||
20772 | isl::union_map union_map::polyhedral_hull() const |
||
20773 | { |
||
20774 | auto res = isl_union_map_polyhedral_hull(copy()); |
||
20775 | return manage(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(copy(), ma.release()); |
||
20781 | return manage(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(copy(), mpa.release()); |
||
20787 | return manage(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(copy(), pma.release()); |
||
20793 | return manage(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(copy(), upma.release()); |
||
20799 | return manage(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(copy(), ma.release()); |
||
20805 | return manage(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(copy(), pma.release()); |
||
20811 | return manage(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(copy(), upma.release()); |
||
20817 | return manage(res); |
||
20818 | } |
||
20819 | |||
20820 | isl::union_map union_map::product(isl::union_map umap2) const |
||
20821 | { |
||
20822 | auto res = isl_union_map_product(copy(), umap2.release()); |
||
20823 | return manage(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(copy()); |
||
20829 | return manage(res); |
||
20830 | } |
||
20831 | |||
20832 | isl::union_set union_map::range() const |
||
20833 | { |
||
20834 | auto res = isl_union_map_range(copy()); |
||
20835 | return manage(res); |
||
20836 | } |
||
20837 | |||
20838 | isl::union_map union_map::range_factor_domain() const |
||
20839 | { |
||
20840 | auto res = isl_union_map_range_factor_domain(copy()); |
||
20841 | return manage(res); |
||
20842 | } |
||
20843 | |||
20844 | isl::union_map union_map::range_factor_range() const |
||
20845 | { |
||
20846 | auto res = isl_union_map_range_factor_range(copy()); |
||
20847 | return manage(res); |
||
20848 | } |
||
20849 | |||
20850 | isl::union_map union_map::range_map() const |
||
20851 | { |
||
20852 | auto res = isl_union_map_range_map(copy()); |
||
20853 | return manage(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(copy(), umap2.release()); |
||
20859 | return manage(res); |
||
20860 | } |
||
20861 | |||
20862 | isl::union_map union_map::range_reverse() const |
||
20863 | { |
||
20864 | auto res = isl_union_map_range_reverse(copy()); |
||
20865 | return manage(res); |
||
20866 | } |
||
20867 | |||
20868 | isl::union_map union_map::reverse() const |
||
20869 | { |
||
20870 | auto res = isl_union_map_reverse(copy()); |
||
20871 | return manage(res); |
||
20872 | } |
||
20873 | |||
20874 | isl::space union_map::space() const |
||
20875 | { |
||
20876 | auto res = isl_union_map_get_space(get()); |
||
20877 | return manage(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(copy(), umap2.release()); |
||
20888 | return manage(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(copy(), dom.release()); |
||
20894 | return manage(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(copy(), dom.release()); |
||
20900 | return manage(res); |
||
20901 | } |
||
20902 | |||
20903 | isl::union_map union_map::uncurry() const |
||
20904 | { |
||
20905 | auto res = isl_union_map_uncurry(copy()); |
||
20906 | return manage(res); |
||
20907 | } |
||
20908 | |||
20909 | isl::union_map union_map::unite(isl::union_map umap2) const |
||
20910 | { |
||
20911 | auto res = isl_union_map_union(copy(), umap2.release()); |
||
20912 | return manage(res); |
||
20913 | } |
||
20914 | |||
20915 | isl::union_map union_map::universe() const |
||
20916 | { |
||
20917 | auto res = isl_union_map_universe(copy()); |
||
20918 | return manage(res); |
||
20919 | } |
||
20920 | |||
20921 | isl::union_set union_map::wrap() const |
||
20922 | { |
||
20923 | auto res = isl_union_map_wrap(copy()); |
||
20924 | return manage(res); |
||
20925 | } |
||
20926 | |||
20927 | isl::union_map union_map::zip() const |
||
20928 | { |
||
20929 | auto res = isl_union_map_zip(copy()); |
||
20930 | return manage(res); |
||
20931 | } |
||
20932 | |||
20933 | inline std::ostream &operator<<(std::ostream &os, const union_map &obj) |
||
20934 | { |
||
20935 | char *str = isl_union_map_to_str(obj.get()); |
||
20936 | if (!str) { |
||
20937 | os.setstate(std::ios_base::badbit); |
||
20938 | return os; |
||
20939 | } |
||
20940 | os << str; |
||
20941 | free(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(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.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.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.release(), 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.release(), v.release()); |
||
20987 | ptr = res; |
||
20988 | } |
||
20989 | |||
20990 | union_pw_aff &union_pw_aff::operator=(union_pw_aff obj) { |
||
20991 | std::swap(this->ptr, obj.ptr); |
||
20992 | return *this; |
||
20993 | } |
||
20994 | |||
20995 | union_pw_aff::~union_pw_aff() { |
||
20996 | if (ptr) |
||
20997 | isl_union_pw_aff_free(ptr); |
||
20998 | } |
||
20999 | |||
21000 | __isl_give isl_union_pw_aff *union_pw_aff::copy() const & { |
||
21001 | return isl_union_pw_aff_copy(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(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(copy(), upa2.release()); |
||
21030 | return manage(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(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(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(copy(), id.release()); |
||
21086 | return manage(res); |
||
21087 | } |
||
21088 | |||
21089 | isl::union_set union_pw_aff::bind(const std::string &id) const |
||
21090 | { |
||
21091 | return this->bind(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(copy()); |
||
21097 | return manage(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(copy()); |
||
21108 | return manage(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.release()); |
||
21114 | return manage(res); |
||
21115 | } |
||
21116 | |||
21117 | isl::pw_multi_aff union_pw_aff::extract_pw_multi_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 = { 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(arg_0)); |
||
21140 | return ret.release(); |
||
21141 | }; |
||
21142 | auto res = isl_union_pw_aff_foreach_pw_aff(get(), fn_lambda, &fn_data); |
||
21143 | return manage(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(copy(), context.release()); |
||
21149 | return manage(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(copy(), space.release()); |
||
21160 | return manage(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(copy(), uset.release()); |
||
21166 | return manage(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(copy(), uset.release()); |
||
21172 | return manage(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(copy(), uset.release()); |
||
21178 | return manage(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(copy(), set.release()); |
||
21184 | return manage(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(copy(), upma.release()); |
||
21230 | return manage(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(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(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(get()); |
||
21331 | return manage(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(copy(), upa2.release()); |
||
21347 | return manage(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(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(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(copy(), space.release()); |
||
21368 | return manage(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(copy(), uset.release()); |
||
21374 | return manage(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(copy()); |
||
21380 | return manage(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(copy(), upa2.release()); |
||
21391 | return manage(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(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(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(obj.get()); |
||
21412 | if (!str) { |
||
21413 | os.setstate(std::ios_base::badbit); |
||
21414 | return os; |
||
21415 | } |
||
21416 | os << str; |
||
21417 | free(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(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.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.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.release(), 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(this->ptr, 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(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(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(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(copy(), el.release()); |
||
21495 | return manage(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(get(), index); |
||
21501 | return manage(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(copy()); |
||
21512 | return manage(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(copy(), list2.release()); |
||
21518 | return manage(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(copy(), first, n); |
||
21524 | return manage(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 = { 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(arg_0)); |
||
21535 | return ret.release(); |
||
21536 | }; |
||
21537 | auto res = isl_union_pw_aff_list_foreach(get(), fn_lambda, &fn_data); |
||
21538 | return manage(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(copy(), pos, el.release()); |
||
21544 | return manage(res); |
||
21545 | } |
||
21546 | |||
21547 | class size union_pw_aff_list::size() const |
||
21548 | { |
||
21549 | auto res = isl_union_pw_aff_list_size(get()); |
||
21550 | return manage(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(obj.get()); |
||
21556 | if (!str) { |
||
21557 | os.setstate(std::ios_base::badbit); |
||
21558 | return os; |
||
21559 | } |
||
21560 | os << str; |
||
21561 | free(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(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.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.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.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.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.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.release(), 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(this->ptr, 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(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(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(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(copy(), upma2.release()); |
||
21657 | return manage(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(copy(), pma.release()); |
||
21663 | return manage(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(copy(), upma2.release()); |
||
21669 | return manage(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(copy()); |
||
21675 | return manage(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(copy()); |
||
21681 | return manage(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(copy()); |
||
21687 | return manage(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(copy()); |
||
21693 | return manage(res); |
||
21694 | } |
||
21695 | |||
21696 | isl::union_set union_pw_multi_aff::domain() const |
||
21697 | { |
||
21698 | auto res = isl_union_pw_multi_aff_domain(copy()); |
||
21699 | return manage(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.release()); |
||
21705 | return manage(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.release()); |
||
21711 | return manage(res); |
||
21712 | } |
||
21713 | |||
21714 | isl::pw_multi_aff union_pw_multi_aff::extract_pw_multi_aff(isl::space space) const |
||
21715 | { |
||
21716 | auto res = isl_union_pw_multi_aff_extract_pw_multi_aff(get(), space.release()); |
||
21717 | return manage(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(copy(), upma2.release()); |
||
21723 | return manage(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(copy(), context.release()); |
||
21729 | return manage(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(copy(), space.release()); |
||
21735 | return manage(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(copy(), uset.release()); |
||
21741 | return manage(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(copy(), uset.release()); |
||
21747 | return manage(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(copy(), uset.release()); |
||
21753 | return manage(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(copy(), set.release()); |
||
21759 | return manage(res); |
||
21760 | } |
||
21761 | |||
21762 | boolean union_pw_multi_aff::involves_locals() const |
||
21763 | { |
||
21764 | auto res = isl_union_pw_multi_aff_involves_locals(get()); |
||
21765 | return manage(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(get()); |
||
21771 | return manage(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(get()); |
||
21777 | return manage(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(copy(), upma2.release()); |
||
21783 | return manage(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(copy(), upma2.release()); |
||
21789 | return manage(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(get()); |
||
21795 | return manage(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(copy()); |
||
21806 | return manage(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(copy()); |
||
21812 | return manage(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(copy(), upma2.release()); |
||
21818 | return manage(res); |
||
21819 | } |
||
21820 | |||
21821 | isl::space union_pw_multi_aff::space() const |
||
21822 | { |
||
21823 | auto res = isl_union_pw_multi_aff_get_space(get()); |
||
21824 | return manage(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(copy(), upma2.release()); |
||
21835 | return manage(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(copy(), space.release()); |
||
21841 | return manage(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(copy(), uset.release()); |
||
21847 | return manage(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(copy(), upma2.release()); |
||
21853 | return manage(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(obj.get()); |
||
21859 | if (!str) { |
||
21860 | os.setstate(std::ios_base::badbit); |
||
21861 | return os; |
||
21862 | } |
||
21863 | os << str; |
||
21864 | free(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(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.release()); |
||
21892 | ptr = res; |
||
21893 | } |
||
21894 | |||
21895 | union_set::union_set(isl::point pnt) |
||
21896 | { |
||
21897 | auto res = isl_union_set_from_point(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.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.release(), str.c_str()); |
||
21910 | ptr = res; |
||
21911 | } |
||
21912 | |||
21913 | union_set &union_set::operator=(union_set obj) { |
||
21914 | std::swap(this->ptr, obj.ptr); |
||
21915 | return *this; |
||
21916 | } |
||
21917 | |||
21918 | union_set::~union_set() { |
||
21919 | if (ptr) |
||
21920 | isl_union_set_free(ptr); |
||
21921 | } |
||
21922 | |||
21923 | __isl_give isl_union_set *union_set::copy() const & { |
||
21924 | return isl_union_set_copy(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(ptr)); |
||
21943 | } |
||
21944 | |||
21945 | isl::union_set union_set::affine_hull() const |
||
21946 | { |
||
21947 | auto res = isl_union_set_affine_hull(copy()); |
||
21948 | return manage(res); |
||
21949 | } |
||
21950 | |||
21951 | isl::union_set union_set::apply(isl::union_map umap) const |
||
21952 | { |
||
21953 | auto res = isl_union_set_apply(copy(), umap.release()); |
||
21954 | return manage(res); |
||
21955 | } |
||
21956 | |||
21957 | isl::set union_set::as_set() const |
||
21958 | { |
||
21959 | auto res = isl_union_set_as_set(copy()); |
||
21960 | return manage(res); |
||
21961 | } |
||
21962 | |||
21963 | isl::union_set union_set::coalesce() const |
||
21964 | { |
||
21965 | auto res = isl_union_set_coalesce(copy()); |
||
21966 | return manage(res); |
||
21967 | } |
||
21968 | |||
21969 | isl::union_set union_set::compute_divs() const |
||
21970 | { |
||
21971 | auto res = isl_union_set_compute_divs(copy()); |
||
21972 | return manage(res); |
||
21973 | } |
||
21974 | |||
21975 | boolean union_set::contains(const isl::space &space) const |
||
21976 | { |
||
21977 | auto res = isl_union_set_contains(get(), space.get()); |
||
21978 | return manage(res); |
||
21979 | } |
||
21980 | |||
21981 | isl::union_set union_set::detect_equalities() const |
||
21982 | { |
||
21983 | auto res = isl_union_set_detect_equalities(copy()); |
||
21984 | return manage(res); |
||
21985 | } |
||
21986 | |||
21987 | isl::union_set union_set::empty(isl::ctx ctx) |
||
21988 | { |
||
21989 | auto res = isl_union_set_empty_ctx(ctx.release()); |
||
21990 | return manage(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 = { 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(arg_0)); |
||
22001 | return ret.release(); |
||
22002 | }; |
||
22003 | auto res = isl_union_set_every_set(get(), test_lambda, &test_data); |
||
22004 | return manage(res); |
||
22005 | } |
||
22006 | |||
22007 | isl::set union_set::extract_set(isl::space space) const |
||
22008 | { |
||
22009 | auto res = isl_union_set_extract_set(get(), space.release()); |
||
22010 | return manage(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 = { 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(arg_0)); |
||
22021 | return ret.release(); |
||
22022 | }; |
||
22023 | auto res = isl_union_set_foreach_point(get(), fn_lambda, &fn_data); |
||
22024 | return manage(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 = { 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(arg_0)); |
||
22035 | return ret.release(); |
||
22036 | }; |
||
22037 | auto res = isl_union_set_foreach_set(get(), fn_lambda, &fn_data); |
||
22038 | return manage(res); |
||
22039 | } |
||
22040 | |||
22041 | isl::union_set union_set::gist(isl::union_set context) const |
||
22042 | { |
||
22043 | auto res = isl_union_set_gist(copy(), context.release()); |
||
22044 | return manage(res); |
||
22045 | } |
||
22046 | |||
22047 | isl::union_set union_set::gist_params(isl::set set) const |
||
22048 | { |
||
22049 | auto res = isl_union_set_gist_params(copy(), set.release()); |
||
22050 | return manage(res); |
||
22051 | } |
||
22052 | |||
22053 | isl::union_map union_set::identity() const |
||
22054 | { |
||
22055 | auto res = isl_union_set_identity(copy()); |
||
22056 | return manage(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(copy()); |
||
22062 | return manage(res); |
||
22063 | } |
||
22064 | |||
22065 | isl::union_set union_set::intersect(isl::union_set uset2) const |
||
22066 | { |
||
22067 | auto res = isl_union_set_intersect(copy(), uset2.release()); |
||
22068 | return manage(res); |
||
22069 | } |
||
22070 | |||
22071 | isl::union_set union_set::intersect_params(isl::set set) const |
||
22072 | { |
||
22073 | auto res = isl_union_set_intersect_params(copy(), set.release()); |
||
22074 | return manage(res); |
||
22075 | } |
||
22076 | |||
22077 | boolean union_set::is_disjoint(const isl::union_set &uset2) const |
||
22078 | { |
||
22079 | auto res = isl_union_set_is_disjoint(get(), uset2.get()); |
||
22080 | return manage(res); |
||
22081 | } |
||
22082 | |||
22083 | boolean union_set::is_empty() const |
||
22084 | { |
||
22085 | auto res = isl_union_set_is_empty(get()); |
||
22086 | return manage(res); |
||
22087 | } |
||
22088 | |||
22089 | boolean union_set::is_equal(const isl::union_set &uset2) const |
||
22090 | { |
||
22091 | auto res = isl_union_set_is_equal(get(), uset2.get()); |
||
22092 | return manage(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(get(), uset2.get()); |
||
22098 | return manage(res); |
||
22099 | } |
||
22100 | |||
22101 | boolean union_set::is_subset(const isl::union_set &uset2) const |
||
22102 | { |
||
22103 | auto res = isl_union_set_is_subset(get(), uset2.get()); |
||
22104 | return manage(res); |
||
22105 | } |
||
22106 | |||
22107 | boolean union_set::isa_set() const |
||
22108 | { |
||
22109 | auto res = isl_union_set_isa_set(get()); |
||
22110 | return manage(res); |
||
22111 | } |
||
22112 | |||
22113 | isl::union_set union_set::lexmax() const |
||
22114 | { |
||
22115 | auto res = isl_union_set_lexmax(copy()); |
||
22116 | return manage(res); |
||
22117 | } |
||
22118 | |||
22119 | isl::union_set union_set::lexmin() const |
||
22120 | { |
||
22121 | auto res = isl_union_set_lexmin(copy()); |
||
22122 | return manage(res); |
||
22123 | } |
||
22124 | |||
22125 | isl::set union_set::params() const |
||
22126 | { |
||
22127 | auto res = isl_union_set_params(copy()); |
||
22128 | return manage(res); |
||
22129 | } |
||
22130 | |||
22131 | isl::union_set union_set::polyhedral_hull() const |
||
22132 | { |
||
22133 | auto res = isl_union_set_polyhedral_hull(copy()); |
||
22134 | return manage(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(copy(), ma.release()); |
||
22140 | return manage(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(copy(), pma.release()); |
||
22146 | return manage(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(copy(), upma.release()); |
||
22152 | return manage(res); |
||
22153 | } |
||
22154 | |||
22155 | isl::point union_set::sample_point() const |
||
22156 | { |
||
22157 | auto res = isl_union_set_sample_point(copy()); |
||
22158 | return manage(res); |
||
22159 | } |
||
22160 | |||
22161 | isl::set_list union_set::set_list() const |
||
22162 | { |
||
22163 | auto res = isl_union_set_get_set_list(get()); |
||
22164 | return manage(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(get()); |
||
22175 | return manage(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(copy(), uset2.release()); |
||
22186 | return manage(res); |
||
22187 | } |
||
22188 | |||
22189 | isl::union_set_list union_set::to_list() const |
||
22190 | { |
||
22191 | auto res = isl_union_set_to_list(copy()); |
||
22192 | return manage(res); |
||
22193 | } |
||
22194 | |||
22195 | isl::union_set union_set::unite(isl::union_set uset2) const |
||
22196 | { |
||
22197 | auto res = isl_union_set_union(copy(), uset2.release()); |
||
22198 | return manage(res); |
||
22199 | } |
||
22200 | |||
22201 | isl::union_set union_set::universe() const |
||
22202 | { |
||
22203 | auto res = isl_union_set_universe(copy()); |
||
22204 | return manage(res); |
||
22205 | } |
||
22206 | |||
22207 | isl::union_map union_set::unwrap() const |
||
22208 | { |
||
22209 | auto res = isl_union_set_unwrap(copy()); |
||
22210 | return manage(res); |
||
22211 | } |
||
22212 | |||
22213 | inline std::ostream &operator<<(std::ostream &os, const union_set &obj) |
||
22214 | { |
||
22215 | char *str = isl_union_set_to_str(obj.get()); |
||
22216 | if (!str) { |
||
22217 | os.setstate(std::ios_base::badbit); |
||
22218 | return os; |
||
22219 | } |
||
22220 | os << str; |
||
22221 | free(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(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.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.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.release(), str.c_str()); |
||
22261 | ptr = res; |
||
22262 | } |
||
22263 | |||
22264 | union_set_list &union_set_list::operator=(union_set_list obj) { |
||
22265 | std::swap(this->ptr, obj.ptr); |
||
22266 | return *this; |
||
22267 | } |
||
22268 | |||
22269 | union_set_list::~union_set_list() { |
||
22270 | if (ptr) |
||
22271 | isl_union_set_list_free(ptr); |
||
22272 | } |
||
22273 | |||
22274 | __isl_give isl_union_set_list *union_set_list::copy() const & { |
||
22275 | return isl_union_set_list_copy(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(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(copy(), el.release()); |
||
22299 | return manage(res); |
||
22300 | } |
||
22301 | |||
22302 | isl::union_set union_set_list::at(int index) const |
||
22303 | { |
||
22304 | auto res = isl_union_set_list_get_at(get(), index); |
||
22305 | return manage(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(copy()); |
||
22316 | return manage(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(copy(), list2.release()); |
||
22322 | return manage(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(copy(), first, n); |
||
22328 | return manage(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 = { 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(arg_0)); |
||
22339 | return ret.release(); |
||
22340 | }; |
||
22341 | auto res = isl_union_set_list_foreach(get(), fn_lambda, &fn_data); |
||
22342 | return manage(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(copy(), pos, el.release()); |
||
22348 | return manage(res); |
||
22349 | } |
||
22350 | |||
22351 | class size union_set_list::size() const |
||
22352 | { |
||
22353 | auto res = isl_union_set_list_size(get()); |
||
22354 | return manage(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(obj.get()); |
||
22360 | if (!str) { |
||
22361 | os.setstate(std::ios_base::badbit); |
||
22362 | return os; |
||
22363 | } |
||
22364 | os << str; |
||
22365 | free(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(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.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.release(), str.c_str()); |
||
22399 | ptr = res; |
||
22400 | } |
||
22401 | |||
22402 | val &val::operator=(val obj) { |
||
22403 | std::swap(this->ptr, obj.ptr); |
||
22404 | return *this; |
||
22405 | } |
||
22406 | |||
22407 | val::~val() { |
||
22408 | if (ptr) |
||
22409 | isl_val_free(ptr); |
||
22410 | } |
||
22411 | |||
22412 | __isl_give isl_val *val::copy() const & { |
||
22413 | return isl_val_copy(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(ptr)); |
||
22432 | } |
||
22433 | |||
22434 | isl::val val::abs() const |
||
22435 | { |
||
22436 | auto res = isl_val_abs(copy()); |
||
22437 | return manage(res); |
||
22438 | } |
||
22439 | |||
22440 | boolean val::abs_eq(const isl::val &v2) const |
||
22441 | { |
||
22442 | auto res = isl_val_abs_eq(get(), v2.get()); |
||
22443 | return manage(res); |
||
22444 | } |
||
22445 | |||
22446 | boolean val::abs_eq(long v2) const |
||
22447 | { |
||
22448 | return this->abs_eq(isl::val(ctx(), v2)); |
||
22449 | } |
||
22450 | |||
22451 | isl::val val::add(isl::val v2) const |
||
22452 | { |
||
22453 | auto res = isl_val_add(copy(), v2.release()); |
||
22454 | return manage(res); |
||
22455 | } |
||
22456 | |||
22457 | isl::val val::add(long v2) const |
||
22458 | { |
||
22459 | return this->add(isl::val(ctx(), v2)); |
||
22460 | } |
||
22461 | |||
22462 | isl::val val::ceil() const |
||
22463 | { |
||
22464 | auto res = isl_val_ceil(copy()); |
||
22465 | return manage(res); |
||
22466 | } |
||
22467 | |||
22468 | int val::cmp_si(long i) const |
||
22469 | { |
||
22470 | auto res = isl_val_cmp_si(get(), i); |
||
22471 | return res; |
||
22472 | } |
||
22473 | |||
22474 | long val::den_si() const |
||
22475 | { |
||
22476 | auto res = isl_val_get_den_si(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(copy(), v2.release()); |
||
22488 | return manage(res); |
||
22489 | } |
||
22490 | |||
22491 | isl::val val::div(long v2) const |
||
22492 | { |
||
22493 | return this->div(isl::val(ctx(), v2)); |
||
22494 | } |
||
22495 | |||
22496 | boolean val::eq(const isl::val &v2) const |
||
22497 | { |
||
22498 | auto res = isl_val_eq(get(), v2.get()); |
||
22499 | return manage(res); |
||
22500 | } |
||
22501 | |||
22502 | boolean val::eq(long v2) const |
||
22503 | { |
||
22504 | return this->eq(isl::val(ctx(), v2)); |
||
22505 | } |
||
22506 | |||
22507 | isl::val val::floor() const |
||
22508 | { |
||
22509 | auto res = isl_val_floor(copy()); |
||
22510 | return manage(res); |
||
22511 | } |
||
22512 | |||
22513 | isl::val val::gcd(isl::val v2) const |
||
22514 | { |
||
22515 | auto res = isl_val_gcd(copy(), v2.release()); |
||
22516 | return manage(res); |
||
22517 | } |
||
22518 | |||
22519 | isl::val val::gcd(long v2) const |
||
22520 | { |
||
22521 | return this->gcd(isl::val(ctx(), v2)); |
||
22522 | } |
||
22523 | |||
22524 | boolean val::ge(const isl::val &v2) const |
||
22525 | { |
||
22526 | auto res = isl_val_ge(get(), v2.get()); |
||
22527 | return manage(res); |
||
22528 | } |
||
22529 | |||
22530 | boolean val::ge(long v2) const |
||
22531 | { |
||
22532 | return this->ge(isl::val(ctx(), v2)); |
||
22533 | } |
||
22534 | |||
22535 | boolean val::gt(const isl::val &v2) const |
||
22536 | { |
||
22537 | auto res = isl_val_gt(get(), v2.get()); |
||
22538 | return manage(res); |
||
22539 | } |
||
22540 | |||
22541 | boolean val::gt(long v2) const |
||
22542 | { |
||
22543 | return this->gt(isl::val(ctx(), v2)); |
||
22544 | } |
||
22545 | |||
22546 | isl::val val::infty(isl::ctx ctx) |
||
22547 | { |
||
22548 | auto res = isl_val_infty(ctx.release()); |
||
22549 | return manage(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.release(), u); |
||
22555 | return manage(res); |
||
22556 | } |
||
22557 | |||
22558 | isl::val val::inv() const |
||
22559 | { |
||
22560 | auto res = isl_val_inv(copy()); |
||
22561 | return manage(res); |
||
22562 | } |
||
22563 | |||
22564 | boolean val::is_divisible_by(const isl::val &v2) const |
||
22565 | { |
||
22566 | auto res = isl_val_is_divisible_by(get(), v2.get()); |
||
22567 | return manage(res); |
||
22568 | } |
||
22569 | |||
22570 | boolean val::is_divisible_by(long v2) const |
||
22571 | { |
||
22572 | return this->is_divisible_by(isl::val(ctx(), v2)); |
||
22573 | } |
||
22574 | |||
22575 | boolean val::is_infty() const |
||
22576 | { |
||
22577 | auto res = isl_val_is_infty(get()); |
||
22578 | return manage(res); |
||
22579 | } |
||
22580 | |||
22581 | boolean val::is_int() const |
||
22582 | { |
||
22583 | auto res = isl_val_is_int(get()); |
||
22584 | return manage(res); |
||
22585 | } |
||
22586 | |||
22587 | boolean val::is_nan() const |
||
22588 | { |
||
22589 | auto res = isl_val_is_nan(get()); |
||
22590 | return manage(res); |
||
22591 | } |
||
22592 | |||
22593 | boolean val::is_neg() const |
||
22594 | { |
||
22595 | auto res = isl_val_is_neg(get()); |
||
22596 | return manage(res); |
||
22597 | } |
||
22598 | |||
22599 | boolean val::is_neginfty() const |
||
22600 | { |
||
22601 | auto res = isl_val_is_neginfty(get()); |
||
22602 | return manage(res); |
||
22603 | } |
||
22604 | |||
22605 | boolean val::is_negone() const |
||
22606 | { |
||
22607 | auto res = isl_val_is_negone(get()); |
||
22608 | return manage(res); |
||
22609 | } |
||
22610 | |||
22611 | boolean val::is_nonneg() const |
||
22612 | { |
||
22613 | auto res = isl_val_is_nonneg(get()); |
||
22614 | return manage(res); |
||
22615 | } |
||
22616 | |||
22617 | boolean val::is_nonpos() const |
||
22618 | { |
||
22619 | auto res = isl_val_is_nonpos(get()); |
||
22620 | return manage(res); |
||
22621 | } |
||
22622 | |||
22623 | boolean val::is_one() const |
||
22624 | { |
||
22625 | auto res = isl_val_is_one(get()); |
||
22626 | return manage(res); |
||
22627 | } |
||
22628 | |||
22629 | boolean val::is_pos() const |
||
22630 | { |
||
22631 | auto res = isl_val_is_pos(get()); |
||
22632 | return manage(res); |
||
22633 | } |
||
22634 | |||
22635 | boolean val::is_rat() const |
||
22636 | { |
||
22637 | auto res = isl_val_is_rat(get()); |
||
22638 | return manage(res); |
||
22639 | } |
||
22640 | |||
22641 | boolean val::is_zero() const |
||
22642 | { |
||
22643 | auto res = isl_val_is_zero(get()); |
||
22644 | return manage(res); |
||
22645 | } |
||
22646 | |||
22647 | boolean val::le(const isl::val &v2) const |
||
22648 | { |
||
22649 | auto res = isl_val_le(get(), v2.get()); |
||
22650 | return manage(res); |
||
22651 | } |
||
22652 | |||
22653 | boolean val::le(long v2) const |
||
22654 | { |
||
22655 | return this->le(isl::val(ctx(), v2)); |
||
22656 | } |
||
22657 | |||
22658 | boolean val::lt(const isl::val &v2) const |
||
22659 | { |
||
22660 | auto res = isl_val_lt(get(), v2.get()); |
||
22661 | return manage(res); |
||
22662 | } |
||
22663 | |||
22664 | boolean val::lt(long v2) const |
||
22665 | { |
||
22666 | return this->lt(isl::val(ctx(), v2)); |
||
22667 | } |
||
22668 | |||
22669 | isl::val val::max(isl::val v2) const |
||
22670 | { |
||
22671 | auto res = isl_val_max(copy(), v2.release()); |
||
22672 | return manage(res); |
||
22673 | } |
||
22674 | |||
22675 | isl::val val::max(long v2) const |
||
22676 | { |
||
22677 | return this->max(isl::val(ctx(), v2)); |
||
22678 | } |
||
22679 | |||
22680 | isl::val val::min(isl::val v2) const |
||
22681 | { |
||
22682 | auto res = isl_val_min(copy(), v2.release()); |
||
22683 | return manage(res); |
||
22684 | } |
||
22685 | |||
22686 | isl::val val::min(long v2) const |
||
22687 | { |
||
22688 | return this->min(isl::val(ctx(), v2)); |
||
22689 | } |
||
22690 | |||
22691 | isl::val val::mod(isl::val v2) const |
||
22692 | { |
||
22693 | auto res = isl_val_mod(copy(), v2.release()); |
||
22694 | return manage(res); |
||
22695 | } |
||
22696 | |||
22697 | isl::val val::mod(long v2) const |
||
22698 | { |
||
22699 | return this->mod(isl::val(ctx(), v2)); |
||
22700 | } |
||
22701 | |||
22702 | isl::val val::mul(isl::val v2) const |
||
22703 | { |
||
22704 | auto res = isl_val_mul(copy(), v2.release()); |
||
22705 | return manage(res); |
||
22706 | } |
||
22707 | |||
22708 | isl::val val::mul(long v2) const |
||
22709 | { |
||
22710 | return this->mul(isl::val(ctx(), v2)); |
||
22711 | } |
||
22712 | |||
22713 | isl::val val::nan(isl::ctx ctx) |
||
22714 | { |
||
22715 | auto res = isl_val_nan(ctx.release()); |
||
22716 | return manage(res); |
||
22717 | } |
||
22718 | |||
22719 | boolean val::ne(const isl::val &v2) const |
||
22720 | { |
||
22721 | auto res = isl_val_ne(get(), v2.get()); |
||
22722 | return manage(res); |
||
22723 | } |
||
22724 | |||
22725 | boolean val::ne(long v2) const |
||
22726 | { |
||
22727 | return this->ne(isl::val(ctx(), v2)); |
||
22728 | } |
||
22729 | |||
22730 | isl::val val::neg() const |
||
22731 | { |
||
22732 | auto res = isl_val_neg(copy()); |
||
22733 | return manage(res); |
||
22734 | } |
||
22735 | |||
22736 | isl::val val::neginfty(isl::ctx ctx) |
||
22737 | { |
||
22738 | auto res = isl_val_neginfty(ctx.release()); |
||
22739 | return manage(res); |
||
22740 | } |
||
22741 | |||
22742 | isl::val val::negone(isl::ctx ctx) |
||
22743 | { |
||
22744 | auto res = isl_val_negone(ctx.release()); |
||
22745 | return manage(res); |
||
22746 | } |
||
22747 | |||
22748 | long val::num_si() const |
||
22749 | { |
||
22750 | auto res = isl_val_get_num_si(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.release()); |
||
22762 | return manage(res); |
||
22763 | } |
||
22764 | |||
22765 | isl::val val::pow2() const |
||
22766 | { |
||
22767 | auto res = isl_val_pow2(copy()); |
||
22768 | return manage(res); |
||
22769 | } |
||
22770 | |||
22771 | int val::sgn() const |
||
22772 | { |
||
22773 | auto res = isl_val_sgn(get()); |
||
22774 | return res; |
||
22775 | } |
||
22776 | |||
22777 | isl::val val::sub(isl::val v2) const |
||
22778 | { |
||
22779 | auto res = isl_val_sub(copy(), v2.release()); |
||
22780 | return manage(res); |
||
22781 | } |
||
22782 | |||
22783 | isl::val val::sub(long v2) const |
||
22784 | { |
||
22785 | return this->sub(isl::val(ctx(), v2)); |
||
22786 | } |
||
22787 | |||
22788 | isl::val_list val::to_list() const |
||
22789 | { |
||
22790 | auto res = isl_val_to_list(copy()); |
||
22791 | return manage(res); |
||
22792 | } |
||
22793 | |||
22794 | isl::val val::trunc() const |
||
22795 | { |
||
22796 | auto res = isl_val_trunc(copy()); |
||
22797 | return manage(res); |
||
22798 | } |
||
22799 | |||
22800 | isl::val val::zero(isl::ctx ctx) |
||
22801 | { |
||
22802 | auto res = isl_val_zero(ctx.release()); |
||
22803 | return manage(res); |
||
22804 | } |
||
22805 | |||
22806 | inline std::ostream &operator<<(std::ostream &os, const val &obj) |
||
22807 | { |
||
22808 | char *str = isl_val_to_str(obj.get()); |
||
22809 | if (!str) { |
||
22810 | os.setstate(std::ios_base::badbit); |
||
22811 | return os; |
||
22812 | } |
||
22813 | os << str; |
||
22814 | free(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(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.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.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.release(), str.c_str()); |
||
22854 | ptr = res; |
||
22855 | } |
||
22856 | |||
22857 | val_list &val_list::operator=(val_list obj) { |
||
22858 | std::swap(this->ptr, obj.ptr); |
||
22859 | return *this; |
||
22860 | } |
||
22861 | |||
22862 | val_list::~val_list() { |
||
22863 | if (ptr) |
||
22864 | isl_val_list_free(ptr); |
||
22865 | } |
||
22866 | |||
22867 | __isl_give isl_val_list *val_list::copy() const & { |
||
22868 | return isl_val_list_copy(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(ptr)); |
||
22887 | } |
||
22888 | |||
22889 | isl::val_list val_list::add(isl::val el) const |
||
22890 | { |
||
22891 | auto res = isl_val_list_add(copy(), el.release()); |
||
22892 | return manage(res); |
||
22893 | } |
||
22894 | |||
22895 | isl::val_list val_list::add(long el) const |
||
22896 | { |
||
22897 | return this->add(isl::val(ctx(), el)); |
||
22898 | } |
||
22899 | |||
22900 | isl::val val_list::at(int index) const |
||
22901 | { |
||
22902 | auto res = isl_val_list_get_at(get(), index); |
||
22903 | return manage(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(copy()); |
||
22914 | return manage(res); |
||
22915 | } |
||
22916 | |||
22917 | isl::val_list val_list::concat(isl::val_list list2) const |
||
22918 | { |
||
22919 | auto res = isl_val_list_concat(copy(), list2.release()); |
||
22920 | return manage(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(copy(), first, n); |
||
22926 | return manage(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 = { 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(arg_0)); |
||
22937 | return ret.release(); |
||
22938 | }; |
||
22939 | auto res = isl_val_list_foreach(get(), fn_lambda, &fn_data); |
||
22940 | return manage(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(copy(), pos, el.release()); |
||
22946 | return manage(res); |
||
22947 | } |
||
22948 | |||
22949 | isl::val_list val_list::insert(unsigned int pos, long el) const |
||
22950 | { |
||
22951 | return this->insert(pos, isl::val(ctx(), el)); |
||
22952 | } |
||
22953 | |||
22954 | class size val_list::size() const |
||
22955 | { |
||
22956 | auto res = isl_val_list_size(get()); |
||
22957 | return manage(res); |
||
22958 | } |
||
22959 | |||
22960 | inline std::ostream &operator<<(std::ostream &os, const val_list &obj) |
||
22961 | { |
||
22962 | char *str = isl_val_list_to_str(obj.get()); |
||
22963 | if (!str) { |
||
22964 | os.setstate(std::ios_base::badbit); |
||
22965 | return os; |
||
22966 | } |
||
22967 | os << str; |
||
22968 | free(str); |
||
22969 | return os; |
||
22970 | } |
||
22971 | } // namespace isl |
||
22972 | |||
22973 | #endif /* ISL_CPP_CHECKED */ |