1 /// These are automatically generated C++ bindings without exceptions for isl.
3 /// isl is a library for computing with integer sets and maps described by
4 /// Presburger formulas. On top of this, isl provides various tools for
5 /// polyhedral compilation, ranging from dependence analysis over scheduling
8 #ifndef ISL_CPP_NOEXCEPTIONS
9 #define ISL_CPP_NOEXCEPTIONS
16 #include <isl/union_set.h>
17 #include <isl/union_map.h>
19 #include <isl/schedule.h>
20 #include <isl/schedule_node.h>
21 #include <isl/ast_build.h>
22 #include <isl/constraint.h>
23 #include <isl/polynomial.h>
29 inline namespace noexceptions
{
31 #define ISLPP_STRINGIZE_(X) #X
32 #define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
34 #define ISLPP_ASSERT(test, message) \
38 fputs("Assertion \"" #test "\" failed at " __FILE__ \
39 ":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \
48 friend isl::boolean
manage(isl_bool val
);
49 boolean(isl_bool val
): val(val
) {}
52 : val(isl_bool_error
) {}
54 /* implicit */ boolean(bool val
)
55 : val(val
? isl_bool_true
: isl_bool_false
) {}
57 bool is_error() const { return val
== isl_bool_error
; }
58 bool is_false() const { return val
== isl_bool_false
; }
59 bool is_true() const { return val
== isl_bool_true
; }
61 operator bool() const {
62 ISLPP_ASSERT(!is_error(), "IMPLEMENTATION ERROR: Unhandled error state");
66 boolean
operator!() const {
73 inline isl::boolean
manage(isl_bool val
) {
74 return isl::boolean(val
);
80 /* implicit */ ctx(isl_ctx
*ctx
)
94 error
= isl_stat_error
99 param
= isl_dim_param
,
112 inline namespace noexceptions
{
114 // forward declarations
123 class basic_map_list
;
125 class basic_set_list
;
127 class constraint_list
;
130 class id_to_ast_expr
;
137 class multi_union_pw_aff
;
143 class pw_qpolynomial
;
146 class schedule_constraints
;
152 class union_access_info
;
155 class union_map_list
;
157 class union_pw_aff_list
;
158 class union_pw_multi_aff
;
159 class union_pw_multi_aff_list
;
160 class union_pw_qpolynomial
;
162 class union_set_list
;
167 // declarations for isl::aff
168 inline isl::aff
manage(__isl_take isl_aff
*ptr
);
169 inline isl::aff
manage_copy(__isl_keep isl_aff
*ptr
);
170 inline isl::aff
give(__isl_take isl_aff
*ptr
);
174 friend inline isl::aff
manage(__isl_take isl_aff
*ptr
);
175 friend inline isl::aff
manage_copy(__isl_keep isl_aff
*ptr
);
177 isl_aff
*ptr
= nullptr;
179 inline explicit aff(__isl_take isl_aff
*ptr
);
182 inline /* implicit */ aff();
183 inline /* implicit */ aff(const isl::aff
&obj
);
184 inline /* implicit */ aff(std::nullptr_t
);
185 inline explicit aff(isl::local_space ls
);
186 inline explicit aff(isl::local_space ls
, isl::val val
);
187 inline explicit aff(isl::ctx ctx
, const std::string
&str
);
188 inline isl::aff
&operator=(isl::aff obj
);
190 inline __isl_give isl_aff
*copy() const &;
191 inline __isl_give isl_aff
*copy() && = delete;
192 inline __isl_keep isl_aff
*get() const;
193 inline __isl_give isl_aff
*release();
194 inline bool is_null() const;
195 inline __isl_keep isl_aff
*keep() const;
196 inline __isl_give isl_aff
*take();
197 inline explicit operator bool() const;
198 inline isl::ctx
get_ctx() const;
199 inline std::string
to_str() const;
200 inline void dump() const;
202 inline isl::aff
add(isl::aff aff2
) const;
203 inline isl::aff
add_coefficient_si(isl::dim type
, int pos
, int v
) const;
204 inline isl::aff
add_coefficient_val(isl::dim type
, int pos
, isl::val v
) const;
205 inline isl::aff
add_constant_num_si(int v
) const;
206 inline isl::aff
add_constant_si(int v
) const;
207 inline isl::aff
add_constant_val(isl::val v
) const;
208 inline isl::aff
add_dims(isl::dim type
, unsigned int n
) const;
209 inline isl::aff
align_params(isl::space model
) const;
210 inline isl::aff
ceil() const;
211 inline int coefficient_sgn(isl::dim type
, int pos
) const;
212 inline int dim(isl::dim type
) const;
213 inline isl::aff
div(isl::aff aff2
) const;
214 inline isl::aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
215 inline isl::basic_set
eq_basic_set(isl::aff aff2
) const;
216 inline isl::set
eq_set(isl::aff aff2
) const;
217 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
218 inline isl::aff
floor() const;
219 inline isl::basic_set
ge_basic_set(isl::aff aff2
) const;
220 inline isl::set
ge_set(isl::aff aff2
) const;
221 inline isl::val
get_coefficient_val(isl::dim type
, int pos
) const;
222 inline isl::val
get_constant_val() const;
223 inline isl::val
get_denominator_val() const;
224 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
225 inline isl::aff
get_div(int pos
) const;
226 inline isl::local_space
get_domain_local_space() const;
227 inline isl::space
get_domain_space() const;
228 inline uint32_t get_hash() const;
229 inline isl::local_space
get_local_space() const;
230 inline isl::space
get_space() const;
231 inline isl::aff
gist(isl::set context
) const;
232 inline isl::aff
gist_params(isl::set context
) const;
233 inline isl::basic_set
gt_basic_set(isl::aff aff2
) const;
234 inline isl::set
gt_set(isl::aff aff2
) const;
235 inline isl::aff
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
236 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
237 inline isl::boolean
is_cst() const;
238 inline isl::boolean
is_nan() const;
239 inline isl::basic_set
le_basic_set(isl::aff aff2
) const;
240 inline isl::set
le_set(isl::aff aff2
) const;
241 inline isl::basic_set
lt_basic_set(isl::aff aff2
) const;
242 inline isl::set
lt_set(isl::aff aff2
) const;
243 inline isl::aff
mod(isl::val mod
) const;
244 inline isl::aff
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
245 inline isl::aff
mul(isl::aff aff2
) const;
246 static inline isl::aff
nan_on_domain(isl::local_space ls
);
247 inline isl::set
ne_set(isl::aff aff2
) const;
248 inline isl::aff
neg() const;
249 inline isl::basic_set
neg_basic_set() const;
250 inline isl::boolean
plain_is_equal(const isl::aff
&aff2
) const;
251 inline isl::boolean
plain_is_zero() const;
252 inline isl::aff
project_domain_on_params() const;
253 inline isl::aff
pullback(isl::multi_aff ma
) const;
254 inline isl::aff
pullback_aff(isl::aff aff2
) const;
255 inline isl::aff
scale(isl::val v
) const;
256 inline isl::aff
scale_down(isl::val v
) const;
257 inline isl::aff
scale_down_ui(unsigned int f
) const;
258 inline isl::aff
set_coefficient_si(isl::dim type
, int pos
, int v
) const;
259 inline isl::aff
set_coefficient_val(isl::dim type
, int pos
, isl::val v
) const;
260 inline isl::aff
set_constant_si(int v
) const;
261 inline isl::aff
set_constant_val(isl::val v
) const;
262 inline isl::aff
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
263 inline isl::aff
set_tuple_id(isl::dim type
, isl::id id
) const;
264 inline isl::aff
sub(isl::aff aff2
) const;
265 static inline isl::aff
var_on_domain(isl::local_space ls
, isl::dim type
, unsigned int pos
);
266 inline isl::basic_set
zero_basic_set() const;
269 // declarations for isl::aff_list
270 inline isl::aff_list
manage(__isl_take isl_aff_list
*ptr
);
271 inline isl::aff_list
manage_copy(__isl_keep isl_aff_list
*ptr
);
272 inline isl::aff_list
give(__isl_take isl_aff_list
*ptr
);
276 friend inline isl::aff_list
manage(__isl_take isl_aff_list
*ptr
);
277 friend inline isl::aff_list
manage_copy(__isl_keep isl_aff_list
*ptr
);
279 isl_aff_list
*ptr
= nullptr;
281 inline explicit aff_list(__isl_take isl_aff_list
*ptr
);
284 inline /* implicit */ aff_list();
285 inline /* implicit */ aff_list(const isl::aff_list
&obj
);
286 inline /* implicit */ aff_list(std::nullptr_t
);
287 inline isl::aff_list
&operator=(isl::aff_list obj
);
289 inline __isl_give isl_aff_list
*copy() const &;
290 inline __isl_give isl_aff_list
*copy() && = delete;
291 inline __isl_keep isl_aff_list
*get() const;
292 inline __isl_give isl_aff_list
*release();
293 inline bool is_null() const;
294 inline __isl_keep isl_aff_list
*keep() const;
295 inline __isl_give isl_aff_list
*take();
296 inline explicit operator bool() const;
297 inline isl::ctx
get_ctx() const;
298 inline void dump() const;
302 // declarations for isl::ast_build
303 inline isl::ast_build
manage(__isl_take isl_ast_build
*ptr
);
304 inline isl::ast_build
manage_copy(__isl_keep isl_ast_build
*ptr
);
305 inline isl::ast_build
give(__isl_take isl_ast_build
*ptr
);
309 friend inline isl::ast_build
manage(__isl_take isl_ast_build
*ptr
);
310 friend inline isl::ast_build
manage_copy(__isl_keep isl_ast_build
*ptr
);
312 isl_ast_build
*ptr
= nullptr;
314 inline explicit ast_build(__isl_take isl_ast_build
*ptr
);
317 inline /* implicit */ ast_build();
318 inline /* implicit */ ast_build(const isl::ast_build
&obj
);
319 inline /* implicit */ ast_build(std::nullptr_t
);
320 inline explicit ast_build(isl::ctx ctx
);
321 inline isl::ast_build
&operator=(isl::ast_build obj
);
323 inline __isl_give isl_ast_build
*copy() const &;
324 inline __isl_give isl_ast_build
*copy() && = delete;
325 inline __isl_keep isl_ast_build
*get() const;
326 inline __isl_give isl_ast_build
*release();
327 inline bool is_null() const;
328 inline __isl_keep isl_ast_build
*keep() const;
329 inline __isl_give isl_ast_build
*take();
330 inline explicit operator bool() const;
331 inline isl::ctx
get_ctx() const;
333 inline isl::ast_expr
access_from(isl::pw_multi_aff pma
) const;
334 inline isl::ast_expr
access_from(isl::multi_pw_aff mpa
) const;
335 inline isl::ast_node
ast_from_schedule(isl::union_map schedule
) const;
336 inline isl::ast_expr
call_from(isl::pw_multi_aff pma
) const;
337 inline isl::ast_expr
call_from(isl::multi_pw_aff mpa
) const;
338 inline isl::ast_expr
expr_from(isl::set set
) const;
339 inline isl::ast_expr
expr_from(isl::pw_aff pa
) const;
340 static inline isl::ast_build
from_context(isl::set set
);
341 inline isl::union_map
get_schedule() const;
342 inline isl::space
get_schedule_space() const;
343 inline isl::ast_node
node_from_schedule(isl::schedule schedule
) const;
344 inline isl::ast_node
node_from_schedule_map(isl::union_map schedule
) const;
345 inline isl::ast_build
restrict(isl::set set
) const;
348 // declarations for isl::ast_expr
349 inline isl::ast_expr
manage(__isl_take isl_ast_expr
*ptr
);
350 inline isl::ast_expr
manage_copy(__isl_keep isl_ast_expr
*ptr
);
351 inline isl::ast_expr
give(__isl_take isl_ast_expr
*ptr
);
355 friend inline isl::ast_expr
manage(__isl_take isl_ast_expr
*ptr
);
356 friend inline isl::ast_expr
manage_copy(__isl_keep isl_ast_expr
*ptr
);
358 isl_ast_expr
*ptr
= nullptr;
360 inline explicit ast_expr(__isl_take isl_ast_expr
*ptr
);
363 inline /* implicit */ ast_expr();
364 inline /* implicit */ ast_expr(const isl::ast_expr
&obj
);
365 inline /* implicit */ ast_expr(std::nullptr_t
);
366 inline isl::ast_expr
&operator=(isl::ast_expr obj
);
368 inline __isl_give isl_ast_expr
*copy() const &;
369 inline __isl_give isl_ast_expr
*copy() && = delete;
370 inline __isl_keep isl_ast_expr
*get() const;
371 inline __isl_give isl_ast_expr
*release();
372 inline bool is_null() const;
373 inline __isl_keep isl_ast_expr
*keep() const;
374 inline __isl_give isl_ast_expr
*take();
375 inline explicit operator bool() const;
376 inline isl::ctx
get_ctx() const;
377 inline std::string
to_str() const;
378 inline void dump() const;
380 inline isl::ast_expr
access(isl::ast_expr_list indices
) const;
381 inline isl::ast_expr
add(isl::ast_expr expr2
) const;
382 inline isl::ast_expr
address_of() const;
383 inline isl::ast_expr
call(isl::ast_expr_list arguments
) const;
384 inline isl::ast_expr
div(isl::ast_expr expr2
) const;
385 inline isl::ast_expr
eq(isl::ast_expr expr2
) const;
386 static inline isl::ast_expr
from_id(isl::id id
);
387 static inline isl::ast_expr
from_val(isl::val v
);
388 inline isl::ast_expr
ge(isl::ast_expr expr2
) const;
389 inline isl::id
get_id() const;
390 inline isl::ast_expr
get_op_arg(int pos
) const;
391 inline isl::val
get_val() const;
392 inline isl::ast_expr
gt(isl::ast_expr expr2
) const;
393 inline isl::boolean
is_equal(const isl::ast_expr
&expr2
) const;
394 inline isl::ast_expr
le(isl::ast_expr expr2
) const;
395 inline isl::ast_expr
lt(isl::ast_expr expr2
) const;
396 inline isl::ast_expr
mul(isl::ast_expr expr2
) const;
397 inline isl::ast_expr
neg() const;
398 inline isl::ast_expr
pdiv_q(isl::ast_expr expr2
) const;
399 inline isl::ast_expr
pdiv_r(isl::ast_expr expr2
) const;
400 inline isl::ast_expr
set_op_arg(int pos
, isl::ast_expr arg
) const;
401 inline isl::ast_expr
sub(isl::ast_expr expr2
) const;
402 inline isl::ast_expr
substitute_ids(isl::id_to_ast_expr id2expr
) const;
403 inline std::string
to_C_str() const;
406 // declarations for isl::ast_expr_list
407 inline isl::ast_expr_list
manage(__isl_take isl_ast_expr_list
*ptr
);
408 inline isl::ast_expr_list
manage_copy(__isl_keep isl_ast_expr_list
*ptr
);
409 inline isl::ast_expr_list
give(__isl_take isl_ast_expr_list
*ptr
);
412 class ast_expr_list
{
413 friend inline isl::ast_expr_list
manage(__isl_take isl_ast_expr_list
*ptr
);
414 friend inline isl::ast_expr_list
manage_copy(__isl_keep isl_ast_expr_list
*ptr
);
416 isl_ast_expr_list
*ptr
= nullptr;
418 inline explicit ast_expr_list(__isl_take isl_ast_expr_list
*ptr
);
421 inline /* implicit */ ast_expr_list();
422 inline /* implicit */ ast_expr_list(const isl::ast_expr_list
&obj
);
423 inline /* implicit */ ast_expr_list(std::nullptr_t
);
424 inline isl::ast_expr_list
&operator=(isl::ast_expr_list obj
);
425 inline ~ast_expr_list();
426 inline __isl_give isl_ast_expr_list
*copy() const &;
427 inline __isl_give isl_ast_expr_list
*copy() && = delete;
428 inline __isl_keep isl_ast_expr_list
*get() const;
429 inline __isl_give isl_ast_expr_list
*release();
430 inline bool is_null() const;
431 inline __isl_keep isl_ast_expr_list
*keep() const;
432 inline __isl_give isl_ast_expr_list
*take();
433 inline explicit operator bool() const;
434 inline isl::ctx
get_ctx() const;
435 inline void dump() const;
439 // declarations for isl::ast_node
440 inline isl::ast_node
manage(__isl_take isl_ast_node
*ptr
);
441 inline isl::ast_node
manage_copy(__isl_keep isl_ast_node
*ptr
);
442 inline isl::ast_node
give(__isl_take isl_ast_node
*ptr
);
446 friend inline isl::ast_node
manage(__isl_take isl_ast_node
*ptr
);
447 friend inline isl::ast_node
manage_copy(__isl_keep isl_ast_node
*ptr
);
449 isl_ast_node
*ptr
= nullptr;
451 inline explicit ast_node(__isl_take isl_ast_node
*ptr
);
454 inline /* implicit */ ast_node();
455 inline /* implicit */ ast_node(const isl::ast_node
&obj
);
456 inline /* implicit */ ast_node(std::nullptr_t
);
457 inline isl::ast_node
&operator=(isl::ast_node obj
);
459 inline __isl_give isl_ast_node
*copy() const &;
460 inline __isl_give isl_ast_node
*copy() && = delete;
461 inline __isl_keep isl_ast_node
*get() const;
462 inline __isl_give isl_ast_node
*release();
463 inline bool is_null() const;
464 inline __isl_keep isl_ast_node
*keep() const;
465 inline __isl_give isl_ast_node
*take();
466 inline explicit operator bool() const;
467 inline isl::ctx
get_ctx() const;
468 inline std::string
to_str() const;
469 inline void dump() const;
471 static inline isl::ast_node
alloc_user(isl::ast_expr expr
);
472 inline isl::ast_node_list
block_get_children() const;
473 inline isl::ast_node
for_get_body() const;
474 inline isl::ast_expr
for_get_cond() const;
475 inline isl::ast_expr
for_get_inc() const;
476 inline isl::ast_expr
for_get_init() const;
477 inline isl::ast_expr
for_get_iterator() const;
478 inline isl::boolean
for_is_degenerate() const;
479 inline isl::id
get_annotation() const;
480 inline isl::ast_expr
if_get_cond() const;
481 inline isl::ast_node
if_get_else() const;
482 inline isl::ast_node
if_get_then() const;
483 inline isl::boolean
if_has_else() const;
484 inline isl::id
mark_get_id() const;
485 inline isl::ast_node
mark_get_node() const;
486 inline isl::ast_node
set_annotation(isl::id annotation
) const;
487 inline std::string
to_C_str() const;
488 inline isl::ast_expr
user_get_expr() const;
491 // declarations for isl::ast_node_list
492 inline isl::ast_node_list
manage(__isl_take isl_ast_node_list
*ptr
);
493 inline isl::ast_node_list
manage_copy(__isl_keep isl_ast_node_list
*ptr
);
494 inline isl::ast_node_list
give(__isl_take isl_ast_node_list
*ptr
);
497 class ast_node_list
{
498 friend inline isl::ast_node_list
manage(__isl_take isl_ast_node_list
*ptr
);
499 friend inline isl::ast_node_list
manage_copy(__isl_keep isl_ast_node_list
*ptr
);
501 isl_ast_node_list
*ptr
= nullptr;
503 inline explicit ast_node_list(__isl_take isl_ast_node_list
*ptr
);
506 inline /* implicit */ ast_node_list();
507 inline /* implicit */ ast_node_list(const isl::ast_node_list
&obj
);
508 inline /* implicit */ ast_node_list(std::nullptr_t
);
509 inline isl::ast_node_list
&operator=(isl::ast_node_list obj
);
510 inline ~ast_node_list();
511 inline __isl_give isl_ast_node_list
*copy() const &;
512 inline __isl_give isl_ast_node_list
*copy() && = delete;
513 inline __isl_keep isl_ast_node_list
*get() const;
514 inline __isl_give isl_ast_node_list
*release();
515 inline bool is_null() const;
516 inline __isl_keep isl_ast_node_list
*keep() const;
517 inline __isl_give isl_ast_node_list
*take();
518 inline explicit operator bool() const;
519 inline isl::ctx
get_ctx() const;
520 inline void dump() const;
524 // declarations for isl::basic_map
525 inline isl::basic_map
manage(__isl_take isl_basic_map
*ptr
);
526 inline isl::basic_map
manage_copy(__isl_keep isl_basic_map
*ptr
);
527 inline isl::basic_map
give(__isl_take isl_basic_map
*ptr
);
531 friend inline isl::basic_map
manage(__isl_take isl_basic_map
*ptr
);
532 friend inline isl::basic_map
manage_copy(__isl_keep isl_basic_map
*ptr
);
534 isl_basic_map
*ptr
= nullptr;
536 inline explicit basic_map(__isl_take isl_basic_map
*ptr
);
539 inline /* implicit */ basic_map();
540 inline /* implicit */ basic_map(const isl::basic_map
&obj
);
541 inline /* implicit */ basic_map(std::nullptr_t
);
542 inline explicit basic_map(isl::ctx ctx
, const std::string
&str
);
543 inline isl::basic_map
&operator=(isl::basic_map obj
);
545 inline __isl_give isl_basic_map
*copy() const &;
546 inline __isl_give isl_basic_map
*copy() && = delete;
547 inline __isl_keep isl_basic_map
*get() const;
548 inline __isl_give isl_basic_map
*release();
549 inline bool is_null() const;
550 inline __isl_keep isl_basic_map
*keep() const;
551 inline __isl_give isl_basic_map
*take();
552 inline explicit operator bool() const;
553 inline isl::ctx
get_ctx() const;
554 inline std::string
to_str() const;
555 inline void dump() const;
557 inline isl::basic_map
add_constraint(isl::constraint constraint
) const;
558 inline isl::basic_map
add_dims(isl::dim type
, unsigned int n
) const;
559 inline isl::basic_map
affine_hull() const;
560 inline isl::basic_map
align_params(isl::space model
) const;
561 inline isl::basic_map
apply_domain(isl::basic_map bmap2
) const;
562 inline isl::basic_map
apply_range(isl::basic_map bmap2
) const;
563 inline isl::boolean
can_curry() const;
564 inline isl::boolean
can_uncurry() const;
565 inline isl::boolean
can_zip() const;
566 inline isl::basic_map
curry() const;
567 inline isl::basic_set
deltas() const;
568 inline isl::basic_map
deltas_map() const;
569 inline isl::basic_map
detect_equalities() const;
570 inline unsigned int dim(isl::dim type
) const;
571 inline isl::basic_set
domain() const;
572 inline isl::basic_map
domain_map() const;
573 inline isl::basic_map
domain_product(isl::basic_map bmap2
) const;
574 inline isl::basic_map
drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
575 inline isl::basic_map
drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
576 inline isl::basic_map
eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const;
577 static inline isl::basic_map
empty(isl::space space
);
578 static inline isl::basic_map
equal(isl::space dim
, unsigned int n_equal
);
579 inline isl::mat
equalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
, isl::dim c5
) const;
580 inline isl::basic_map
equate(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
581 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
582 inline isl::basic_map
fix_si(isl::dim type
, unsigned int pos
, int value
) const;
583 inline isl::basic_map
fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const;
584 inline isl::basic_map
flat_product(isl::basic_map bmap2
) const;
585 inline isl::basic_map
flat_range_product(isl::basic_map bmap2
) const;
586 inline isl::basic_map
flatten() const;
587 inline isl::basic_map
flatten_domain() const;
588 inline isl::basic_map
flatten_range() const;
589 inline isl::stat
foreach_constraint(const std::function
<isl::stat(isl::constraint
)> &fn
) const;
590 static inline isl::basic_map
from_aff(isl::aff aff
);
591 static inline isl::basic_map
from_aff_list(isl::space domain_dim
, isl::aff_list list
);
592 static inline isl::basic_map
from_constraint(isl::constraint constraint
);
593 static inline isl::basic_map
from_domain(isl::basic_set bset
);
594 static inline isl::basic_map
from_domain_and_range(isl::basic_set domain
, isl::basic_set range
);
595 static inline isl::basic_map
from_multi_aff(isl::multi_aff maff
);
596 static inline isl::basic_map
from_qpolynomial(isl::qpolynomial qp
);
597 static inline isl::basic_map
from_range(isl::basic_set bset
);
598 inline isl::constraint_list
get_constraint_list() const;
599 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
600 inline isl::aff
get_div(int pos
) const;
601 inline isl::local_space
get_local_space() const;
602 inline isl::space
get_space() const;
603 inline std::string
get_tuple_name(isl::dim type
) const;
604 inline isl::basic_map
gist(isl::basic_map context
) const;
605 inline isl::basic_map
gist_domain(isl::basic_set context
) const;
606 inline isl::boolean
has_dim_id(isl::dim type
, unsigned int pos
) const;
607 static inline isl::basic_map
identity(isl::space dim
);
608 inline isl::boolean
image_is_bounded() const;
609 inline isl::mat
inequalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
, isl::dim c5
) const;
610 inline isl::basic_map
insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const;
611 inline isl::basic_map
intersect(isl::basic_map bmap2
) const;
612 inline isl::basic_map
intersect_domain(isl::basic_set bset
) const;
613 inline isl::basic_map
intersect_range(isl::basic_set bset
) const;
614 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
615 inline isl::boolean
is_disjoint(const isl::basic_map
&bmap2
) const;
616 inline isl::boolean
is_empty() const;
617 inline isl::boolean
is_equal(const isl::basic_map
&bmap2
) const;
618 inline isl::boolean
is_rational() const;
619 inline isl::boolean
is_single_valued() const;
620 inline isl::boolean
is_strict_subset(const isl::basic_map
&bmap2
) const;
621 inline isl::boolean
is_subset(const isl::basic_map
&bmap2
) const;
622 inline isl::boolean
is_universe() const;
623 static inline isl::basic_map
less_at(isl::space dim
, unsigned int pos
);
624 inline isl::map
lexmax() const;
625 inline isl::map
lexmin() const;
626 inline isl::pw_multi_aff
lexmin_pw_multi_aff() const;
627 inline isl::basic_map
lower_bound_si(isl::dim type
, unsigned int pos
, int value
) const;
628 static inline isl::basic_map
more_at(isl::space dim
, unsigned int pos
);
629 inline isl::basic_map
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
630 static inline isl::basic_map
nat_universe(isl::space dim
);
631 inline isl::basic_map
neg() const;
632 inline isl::basic_map
order_ge(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
633 inline isl::basic_map
order_gt(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
634 inline isl::val
plain_get_val_if_fixed(isl::dim type
, unsigned int pos
) const;
635 inline isl::boolean
plain_is_empty() const;
636 inline isl::boolean
plain_is_universe() const;
637 inline isl::basic_map
preimage_domain_multi_aff(isl::multi_aff ma
) const;
638 inline isl::basic_map
preimage_range_multi_aff(isl::multi_aff ma
) const;
639 inline isl::basic_map
product(isl::basic_map bmap2
) const;
640 inline isl::basic_map
project_out(isl::dim type
, unsigned int first
, unsigned int n
) const;
641 inline isl::basic_set
range() const;
642 inline isl::basic_map
range_map() const;
643 inline isl::basic_map
range_product(isl::basic_map bmap2
) const;
644 inline isl::basic_map
remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
645 inline isl::basic_map
remove_divs() const;
646 inline isl::basic_map
remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
647 inline isl::basic_map
remove_redundancies() const;
648 inline isl::basic_map
reverse() const;
649 inline isl::basic_map
sample() const;
650 inline isl::basic_map
set_tuple_id(isl::dim type
, isl::id id
) const;
651 inline isl::basic_map
set_tuple_name(isl::dim type
, const std::string
&s
) const;
652 inline isl::basic_map
sum(isl::basic_map bmap2
) const;
653 inline isl::basic_map
uncurry() const;
654 inline isl::map
unite(isl::basic_map bmap2
) const;
655 static inline isl::basic_map
universe(isl::space space
);
656 inline isl::basic_map
upper_bound_si(isl::dim type
, unsigned int pos
, int value
) const;
657 inline isl::basic_set
wrap() const;
658 inline isl::basic_map
zip() const;
661 // declarations for isl::basic_map_list
662 inline isl::basic_map_list
manage(__isl_take isl_basic_map_list
*ptr
);
663 inline isl::basic_map_list
manage_copy(__isl_keep isl_basic_map_list
*ptr
);
664 inline isl::basic_map_list
give(__isl_take isl_basic_map_list
*ptr
);
667 class basic_map_list
{
668 friend inline isl::basic_map_list
manage(__isl_take isl_basic_map_list
*ptr
);
669 friend inline isl::basic_map_list
manage_copy(__isl_keep isl_basic_map_list
*ptr
);
671 isl_basic_map_list
*ptr
= nullptr;
673 inline explicit basic_map_list(__isl_take isl_basic_map_list
*ptr
);
676 inline /* implicit */ basic_map_list();
677 inline /* implicit */ basic_map_list(const isl::basic_map_list
&obj
);
678 inline /* implicit */ basic_map_list(std::nullptr_t
);
679 inline isl::basic_map_list
&operator=(isl::basic_map_list obj
);
680 inline ~basic_map_list();
681 inline __isl_give isl_basic_map_list
*copy() const &;
682 inline __isl_give isl_basic_map_list
*copy() && = delete;
683 inline __isl_keep isl_basic_map_list
*get() const;
684 inline __isl_give isl_basic_map_list
*release();
685 inline bool is_null() const;
686 inline __isl_keep isl_basic_map_list
*keep() const;
687 inline __isl_give isl_basic_map_list
*take();
688 inline explicit operator bool() const;
689 inline isl::ctx
get_ctx() const;
690 inline void dump() const;
694 // declarations for isl::basic_set
695 inline isl::basic_set
manage(__isl_take isl_basic_set
*ptr
);
696 inline isl::basic_set
manage_copy(__isl_keep isl_basic_set
*ptr
);
697 inline isl::basic_set
give(__isl_take isl_basic_set
*ptr
);
701 friend inline isl::basic_set
manage(__isl_take isl_basic_set
*ptr
);
702 friend inline isl::basic_set
manage_copy(__isl_keep isl_basic_set
*ptr
);
704 isl_basic_set
*ptr
= nullptr;
706 inline explicit basic_set(__isl_take isl_basic_set
*ptr
);
709 inline /* implicit */ basic_set();
710 inline /* implicit */ basic_set(const isl::basic_set
&obj
);
711 inline /* implicit */ basic_set(std::nullptr_t
);
712 inline explicit basic_set(isl::ctx ctx
, const std::string
&str
);
713 inline /* implicit */ basic_set(isl::point pnt
);
714 inline isl::basic_set
&operator=(isl::basic_set obj
);
716 inline __isl_give isl_basic_set
*copy() const &;
717 inline __isl_give isl_basic_set
*copy() && = delete;
718 inline __isl_keep isl_basic_set
*get() const;
719 inline __isl_give isl_basic_set
*release();
720 inline bool is_null() const;
721 inline __isl_keep isl_basic_set
*keep() const;
722 inline __isl_give isl_basic_set
*take();
723 inline explicit operator bool() const;
724 inline isl::ctx
get_ctx() const;
725 inline std::string
to_str() const;
726 inline void dump() const;
728 inline isl::basic_set
affine_hull() const;
729 inline isl::basic_set
align_params(isl::space model
) const;
730 inline isl::basic_set
apply(isl::basic_map bmap
) const;
731 static inline isl::basic_set
box_from_points(isl::point pnt1
, isl::point pnt2
);
732 inline isl::basic_set
coefficients() const;
733 inline isl::basic_set
detect_equalities() const;
734 inline unsigned int dim(isl::dim type
) const;
735 inline isl::basic_set
drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
736 inline isl::basic_set
drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
737 inline isl::basic_set
eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const;
738 static inline isl::basic_set
empty(isl::space space
);
739 inline isl::mat
equalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
) const;
740 inline isl::basic_set
fix_si(isl::dim type
, unsigned int pos
, int value
) const;
741 inline isl::basic_set
fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const;
742 inline isl::basic_set
flat_product(isl::basic_set bset2
) const;
743 inline isl::basic_set
flatten() const;
744 inline isl::stat
foreach_bound_pair(isl::dim type
, unsigned int pos
, const std::function
<isl::stat(isl::constraint
, isl::constraint
, isl::basic_set
)> &fn
) const;
745 inline isl::stat
foreach_constraint(const std::function
<isl::stat(isl::constraint
)> &fn
) const;
746 static inline isl::basic_set
from_constraint(isl::constraint constraint
);
747 inline isl::basic_set
from_params() const;
748 inline isl::constraint_list
get_constraint_list() const;
749 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
750 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
751 inline isl::aff
get_div(int pos
) const;
752 inline isl::local_space
get_local_space() const;
753 inline isl::space
get_space() const;
754 inline std::string
get_tuple_name() const;
755 inline isl::basic_set
gist(isl::basic_set context
) const;
756 inline isl::mat
inequalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
) const;
757 inline isl::basic_set
insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const;
758 inline isl::basic_set
intersect(isl::basic_set bset2
) const;
759 inline isl::basic_set
intersect_params(isl::basic_set bset2
) const;
760 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
761 inline isl::boolean
is_bounded() const;
762 inline isl::boolean
is_disjoint(const isl::basic_set
&bset2
) const;
763 inline isl::boolean
is_empty() const;
764 inline isl::boolean
is_equal(const isl::basic_set
&bset2
) const;
765 inline int is_rational() const;
766 inline isl::boolean
is_subset(const isl::basic_set
&bset2
) const;
767 inline isl::boolean
is_universe() const;
768 inline isl::boolean
is_wrapping() const;
769 inline isl::set
lexmax() const;
770 inline isl::set
lexmin() const;
771 inline isl::basic_set
lower_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const;
772 inline isl::val
max_val(const isl::aff
&obj
) const;
773 inline isl::basic_set
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
774 static inline isl::basic_set
nat_universe(isl::space dim
);
775 inline isl::basic_set
neg() const;
776 inline isl::basic_set
params() const;
777 inline isl::boolean
plain_is_empty() const;
778 inline isl::boolean
plain_is_equal(const isl::basic_set
&bset2
) const;
779 inline isl::boolean
plain_is_universe() const;
780 static inline isl::basic_set
positive_orthant(isl::space space
);
781 inline isl::basic_set
preimage_multi_aff(isl::multi_aff ma
) const;
782 inline isl::basic_set
project_out(isl::dim type
, unsigned int first
, unsigned int n
) const;
783 inline isl::mat
reduced_basis() const;
784 inline isl::basic_set
remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
785 inline isl::basic_set
remove_divs() const;
786 inline isl::basic_set
remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
787 inline isl::basic_set
remove_redundancies() const;
788 inline isl::basic_set
remove_unknown_divs() const;
789 inline isl::basic_set
sample() const;
790 inline isl::point
sample_point() const;
791 inline isl::basic_set
set_tuple_id(isl::id id
) const;
792 inline isl::basic_set
set_tuple_name(const std::string
&s
) const;
793 inline isl::basic_set
solutions() const;
794 inline isl::set
unite(isl::basic_set bset2
) const;
795 static inline isl::basic_set
universe(isl::space space
);
796 inline isl::basic_map
unwrap() const;
797 inline isl::basic_set
upper_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const;
800 // declarations for isl::basic_set_list
801 inline isl::basic_set_list
manage(__isl_take isl_basic_set_list
*ptr
);
802 inline isl::basic_set_list
manage_copy(__isl_keep isl_basic_set_list
*ptr
);
803 inline isl::basic_set_list
give(__isl_take isl_basic_set_list
*ptr
);
806 class basic_set_list
{
807 friend inline isl::basic_set_list
manage(__isl_take isl_basic_set_list
*ptr
);
808 friend inline isl::basic_set_list
manage_copy(__isl_keep isl_basic_set_list
*ptr
);
810 isl_basic_set_list
*ptr
= nullptr;
812 inline explicit basic_set_list(__isl_take isl_basic_set_list
*ptr
);
815 inline /* implicit */ basic_set_list();
816 inline /* implicit */ basic_set_list(const isl::basic_set_list
&obj
);
817 inline /* implicit */ basic_set_list(std::nullptr_t
);
818 inline isl::basic_set_list
&operator=(isl::basic_set_list obj
);
819 inline ~basic_set_list();
820 inline __isl_give isl_basic_set_list
*copy() const &;
821 inline __isl_give isl_basic_set_list
*copy() && = delete;
822 inline __isl_keep isl_basic_set_list
*get() const;
823 inline __isl_give isl_basic_set_list
*release();
824 inline bool is_null() const;
825 inline __isl_keep isl_basic_set_list
*keep() const;
826 inline __isl_give isl_basic_set_list
*take();
827 inline explicit operator bool() const;
828 inline isl::ctx
get_ctx() const;
829 inline void dump() const;
833 // declarations for isl::constraint
834 inline isl::constraint
manage(__isl_take isl_constraint
*ptr
);
835 inline isl::constraint
manage_copy(__isl_keep isl_constraint
*ptr
);
836 inline isl::constraint
give(__isl_take isl_constraint
*ptr
);
840 friend inline isl::constraint
manage(__isl_take isl_constraint
*ptr
);
841 friend inline isl::constraint
manage_copy(__isl_keep isl_constraint
*ptr
);
843 isl_constraint
*ptr
= nullptr;
845 inline explicit constraint(__isl_take isl_constraint
*ptr
);
848 inline /* implicit */ constraint();
849 inline /* implicit */ constraint(const isl::constraint
&obj
);
850 inline /* implicit */ constraint(std::nullptr_t
);
851 inline isl::constraint
&operator=(isl::constraint obj
);
852 inline ~constraint();
853 inline __isl_give isl_constraint
*copy() const &;
854 inline __isl_give isl_constraint
*copy() && = delete;
855 inline __isl_keep isl_constraint
*get() const;
856 inline __isl_give isl_constraint
*release();
857 inline bool is_null() const;
858 inline __isl_keep isl_constraint
*keep() const;
859 inline __isl_give isl_constraint
*take();
860 inline explicit operator bool() const;
861 inline isl::ctx
get_ctx() const;
862 inline void dump() const;
864 static inline isl::constraint
alloc_equality(isl::local_space ls
);
865 static inline isl::constraint
alloc_inequality(isl::local_space ls
);
866 inline int cmp_last_non_zero(const isl::constraint
&c2
) const;
867 inline isl::aff
get_aff() const;
868 inline isl::aff
get_bound(isl::dim type
, int pos
) const;
869 inline isl::val
get_coefficient_val(isl::dim type
, int pos
) const;
870 inline isl::val
get_constant_val() const;
871 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
872 inline isl::aff
get_div(int pos
) const;
873 inline isl::local_space
get_local_space() const;
874 inline isl::space
get_space() const;
875 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
876 inline int is_div_constraint() const;
877 inline isl::boolean
is_lower_bound(isl::dim type
, unsigned int pos
) const;
878 inline isl::boolean
is_upper_bound(isl::dim type
, unsigned int pos
) const;
879 inline int plain_cmp(const isl::constraint
&c2
) const;
880 inline isl::constraint
set_coefficient_si(isl::dim type
, int pos
, int v
) const;
881 inline isl::constraint
set_coefficient_val(isl::dim type
, int pos
, isl::val v
) const;
882 inline isl::constraint
set_constant_si(int v
) const;
883 inline isl::constraint
set_constant_val(isl::val v
) const;
886 // declarations for isl::constraint_list
887 inline isl::constraint_list
manage(__isl_take isl_constraint_list
*ptr
);
888 inline isl::constraint_list
manage_copy(__isl_keep isl_constraint_list
*ptr
);
889 inline isl::constraint_list
give(__isl_take isl_constraint_list
*ptr
);
892 class constraint_list
{
893 friend inline isl::constraint_list
manage(__isl_take isl_constraint_list
*ptr
);
894 friend inline isl::constraint_list
manage_copy(__isl_keep isl_constraint_list
*ptr
);
896 isl_constraint_list
*ptr
= nullptr;
898 inline explicit constraint_list(__isl_take isl_constraint_list
*ptr
);
901 inline /* implicit */ constraint_list();
902 inline /* implicit */ constraint_list(const isl::constraint_list
&obj
);
903 inline /* implicit */ constraint_list(std::nullptr_t
);
904 inline isl::constraint_list
&operator=(isl::constraint_list obj
);
905 inline ~constraint_list();
906 inline __isl_give isl_constraint_list
*copy() const &;
907 inline __isl_give isl_constraint_list
*copy() && = delete;
908 inline __isl_keep isl_constraint_list
*get() const;
909 inline __isl_give isl_constraint_list
*release();
910 inline bool is_null() const;
911 inline __isl_keep isl_constraint_list
*keep() const;
912 inline __isl_give isl_constraint_list
*take();
913 inline explicit operator bool() const;
914 inline isl::ctx
get_ctx() const;
915 inline void dump() const;
919 // declarations for isl::id
920 inline isl::id
manage(__isl_take isl_id
*ptr
);
921 inline isl::id
manage_copy(__isl_keep isl_id
*ptr
);
922 inline isl::id
give(__isl_take isl_id
*ptr
);
926 friend inline isl::id
manage(__isl_take isl_id
*ptr
);
927 friend inline isl::id
manage_copy(__isl_keep isl_id
*ptr
);
929 isl_id
*ptr
= nullptr;
931 inline explicit id(__isl_take isl_id
*ptr
);
934 inline /* implicit */ id();
935 inline /* implicit */ id(const isl::id
&obj
);
936 inline /* implicit */ id(std::nullptr_t
);
937 inline isl::id
&operator=(isl::id obj
);
939 inline __isl_give isl_id
*copy() const &;
940 inline __isl_give isl_id
*copy() && = delete;
941 inline __isl_keep isl_id
*get() const;
942 inline __isl_give isl_id
*release();
943 inline bool is_null() const;
944 inline __isl_keep isl_id
*keep() const;
945 inline __isl_give isl_id
*take();
946 inline explicit operator bool() const;
947 inline isl::ctx
get_ctx() const;
948 inline std::string
to_str() const;
949 inline void dump() const;
951 static inline isl::id
alloc(isl::ctx ctx
, const std::string
&name
, void * user
);
952 inline uint32_t get_hash() const;
953 inline std::string
get_name() const;
954 inline void * get_user() const;
957 // declarations for isl::id_list
958 inline isl::id_list
manage(__isl_take isl_id_list
*ptr
);
959 inline isl::id_list
manage_copy(__isl_keep isl_id_list
*ptr
);
960 inline isl::id_list
give(__isl_take isl_id_list
*ptr
);
964 friend inline isl::id_list
manage(__isl_take isl_id_list
*ptr
);
965 friend inline isl::id_list
manage_copy(__isl_keep isl_id_list
*ptr
);
967 isl_id_list
*ptr
= nullptr;
969 inline explicit id_list(__isl_take isl_id_list
*ptr
);
972 inline /* implicit */ id_list();
973 inline /* implicit */ id_list(const isl::id_list
&obj
);
974 inline /* implicit */ id_list(std::nullptr_t
);
975 inline isl::id_list
&operator=(isl::id_list obj
);
977 inline __isl_give isl_id_list
*copy() const &;
978 inline __isl_give isl_id_list
*copy() && = delete;
979 inline __isl_keep isl_id_list
*get() const;
980 inline __isl_give isl_id_list
*release();
981 inline bool is_null() const;
982 inline __isl_keep isl_id_list
*keep() const;
983 inline __isl_give isl_id_list
*take();
984 inline explicit operator bool() const;
985 inline isl::ctx
get_ctx() const;
986 inline void dump() const;
990 // declarations for isl::id_to_ast_expr
991 inline isl::id_to_ast_expr
manage(__isl_take isl_id_to_ast_expr
*ptr
);
992 inline isl::id_to_ast_expr
manage_copy(__isl_keep isl_id_to_ast_expr
*ptr
);
993 inline isl::id_to_ast_expr
give(__isl_take isl_id_to_ast_expr
*ptr
);
996 class id_to_ast_expr
{
997 friend inline isl::id_to_ast_expr
manage(__isl_take isl_id_to_ast_expr
*ptr
);
998 friend inline isl::id_to_ast_expr
manage_copy(__isl_keep isl_id_to_ast_expr
*ptr
);
1000 isl_id_to_ast_expr
*ptr
= nullptr;
1002 inline explicit id_to_ast_expr(__isl_take isl_id_to_ast_expr
*ptr
);
1005 inline /* implicit */ id_to_ast_expr();
1006 inline /* implicit */ id_to_ast_expr(const isl::id_to_ast_expr
&obj
);
1007 inline /* implicit */ id_to_ast_expr(std::nullptr_t
);
1008 inline isl::id_to_ast_expr
&operator=(isl::id_to_ast_expr obj
);
1009 inline ~id_to_ast_expr();
1010 inline __isl_give isl_id_to_ast_expr
*copy() const &;
1011 inline __isl_give isl_id_to_ast_expr
*copy() && = delete;
1012 inline __isl_keep isl_id_to_ast_expr
*get() const;
1013 inline __isl_give isl_id_to_ast_expr
*release();
1014 inline bool is_null() const;
1015 inline __isl_keep isl_id_to_ast_expr
*keep() const;
1016 inline __isl_give isl_id_to_ast_expr
*take();
1017 inline explicit operator bool() const;
1018 inline isl::ctx
get_ctx() const;
1019 inline void dump() const;
1021 static inline isl::id_to_ast_expr
alloc(isl::ctx ctx
, int min_size
);
1022 inline isl::id_to_ast_expr
drop(isl::id key
) const;
1023 inline isl::stat
foreach(const std::function
<isl::stat(isl::id
, isl::ast_expr
)> &fn
) const;
1024 inline isl::ast_expr
get(isl::id key
) const;
1025 inline isl::boolean
has(const isl::id
&key
) const;
1026 inline isl::id_to_ast_expr
set(isl::id key
, isl::ast_expr val
) const;
1029 // declarations for isl::local_space
1030 inline isl::local_space
manage(__isl_take isl_local_space
*ptr
);
1031 inline isl::local_space
manage_copy(__isl_keep isl_local_space
*ptr
);
1032 inline isl::local_space
give(__isl_take isl_local_space
*ptr
);
1036 friend inline isl::local_space
manage(__isl_take isl_local_space
*ptr
);
1037 friend inline isl::local_space
manage_copy(__isl_keep isl_local_space
*ptr
);
1039 isl_local_space
*ptr
= nullptr;
1041 inline explicit local_space(__isl_take isl_local_space
*ptr
);
1044 inline /* implicit */ local_space();
1045 inline /* implicit */ local_space(const isl::local_space
&obj
);
1046 inline /* implicit */ local_space(std::nullptr_t
);
1047 inline explicit local_space(isl::space dim
);
1048 inline isl::local_space
&operator=(isl::local_space obj
);
1049 inline ~local_space();
1050 inline __isl_give isl_local_space
*copy() const &;
1051 inline __isl_give isl_local_space
*copy() && = delete;
1052 inline __isl_keep isl_local_space
*get() const;
1053 inline __isl_give isl_local_space
*release();
1054 inline bool is_null() const;
1055 inline __isl_keep isl_local_space
*keep() const;
1056 inline __isl_give isl_local_space
*take();
1057 inline explicit operator bool() const;
1058 inline isl::ctx
get_ctx() const;
1059 inline void dump() const;
1061 inline isl::local_space
add_dims(isl::dim type
, unsigned int n
) const;
1062 inline int dim(isl::dim type
) const;
1063 inline isl::local_space
domain() const;
1064 inline isl::local_space
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1065 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1066 inline isl::local_space
flatten_domain() const;
1067 inline isl::local_space
flatten_range() const;
1068 inline isl::local_space
from_domain() const;
1069 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1070 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
1071 inline isl::aff
get_div(int pos
) const;
1072 inline isl::space
get_space() const;
1073 inline isl::boolean
has_dim_id(isl::dim type
, unsigned int pos
) const;
1074 inline isl::boolean
has_dim_name(isl::dim type
, unsigned int pos
) const;
1075 inline isl::local_space
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1076 inline isl::local_space
intersect(isl::local_space ls2
) const;
1077 inline isl::boolean
is_equal(const isl::local_space
&ls2
) const;
1078 inline isl::boolean
is_params() const;
1079 inline isl::boolean
is_set() const;
1080 inline isl::local_space
range() const;
1081 inline isl::local_space
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1082 inline isl::local_space
set_tuple_id(isl::dim type
, isl::id id
) const;
1083 inline isl::local_space
wrap() const;
1086 // declarations for isl::map
1087 inline isl::map
manage(__isl_take isl_map
*ptr
);
1088 inline isl::map
manage_copy(__isl_keep isl_map
*ptr
);
1089 inline isl::map
give(__isl_take isl_map
*ptr
);
1093 friend inline isl::map
manage(__isl_take isl_map
*ptr
);
1094 friend inline isl::map
manage_copy(__isl_keep isl_map
*ptr
);
1096 isl_map
*ptr
= nullptr;
1098 inline explicit map(__isl_take isl_map
*ptr
);
1101 inline /* implicit */ map();
1102 inline /* implicit */ map(const isl::map
&obj
);
1103 inline /* implicit */ map(std::nullptr_t
);
1104 inline explicit map(isl::ctx ctx
, const std::string
&str
);
1105 inline /* implicit */ map(isl::basic_map bmap
);
1106 inline isl::map
&operator=(isl::map obj
);
1108 inline __isl_give isl_map
*copy() const &;
1109 inline __isl_give isl_map
*copy() && = delete;
1110 inline __isl_keep isl_map
*get() const;
1111 inline __isl_give isl_map
*release();
1112 inline bool is_null() const;
1113 inline __isl_keep isl_map
*keep() const;
1114 inline __isl_give isl_map
*take();
1115 inline explicit operator bool() const;
1116 inline isl::ctx
get_ctx() const;
1117 inline std::string
to_str() const;
1118 inline void dump() const;
1120 inline isl::map
add_constraint(isl::constraint constraint
) const;
1121 inline isl::map
add_dims(isl::dim type
, unsigned int n
) const;
1122 inline isl::basic_map
affine_hull() const;
1123 inline isl::map
align_params(isl::space model
) const;
1124 inline isl::map
apply_domain(isl::map map2
) const;
1125 inline isl::map
apply_range(isl::map map2
) const;
1126 inline isl::boolean
can_curry() const;
1127 inline isl::boolean
can_range_curry() const;
1128 inline isl::boolean
can_uncurry() const;
1129 inline isl::boolean
can_zip() const;
1130 inline isl::map
coalesce() const;
1131 inline isl::map
complement() const;
1132 inline isl::basic_map
convex_hull() const;
1133 inline isl::map
curry() const;
1134 inline isl::set
deltas() const;
1135 inline isl::map
deltas_map() const;
1136 inline isl::map
detect_equalities() const;
1137 inline unsigned int dim(isl::dim type
) const;
1138 inline isl::pw_aff
dim_max(int pos
) const;
1139 inline isl::pw_aff
dim_min(int pos
) const;
1140 inline isl::set
domain() const;
1141 inline isl::map
domain_factor_domain() const;
1142 inline isl::map
domain_factor_range() const;
1143 inline isl::boolean
domain_is_wrapping() const;
1144 inline isl::map
domain_map() const;
1145 inline isl::map
domain_product(isl::map map2
) const;
1146 inline isl::map
drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1147 inline isl::map
drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1148 inline isl::map
eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const;
1149 static inline isl::map
empty(isl::space space
);
1150 inline isl::map
equate(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
1151 inline isl::map
factor_domain() const;
1152 inline isl::map
factor_range() const;
1153 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
1154 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1155 inline isl::map
fix_si(isl::dim type
, unsigned int pos
, int value
) const;
1156 inline isl::map
fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const;
1157 inline isl::map
fixed_power_val(isl::val exp
) const;
1158 inline isl::map
flat_domain_product(isl::map map2
) const;
1159 inline isl::map
flat_product(isl::map map2
) const;
1160 inline isl::map
flat_range_product(isl::map map2
) const;
1161 inline isl::map
flatten() const;
1162 inline isl::map
flatten_domain() const;
1163 inline isl::map
flatten_range() const;
1164 inline isl::map
floordiv_val(isl::val d
) const;
1165 inline isl::stat
foreach_basic_map(const std::function
<isl::stat(isl::basic_map
)> &fn
) const;
1166 static inline isl::map
from_aff(isl::aff aff
);
1167 static inline isl::map
from_domain(isl::set set
);
1168 static inline isl::map
from_domain_and_range(isl::set domain
, isl::set range
);
1169 static inline isl::map
from_multi_aff(isl::multi_aff maff
);
1170 static inline isl::map
from_multi_pw_aff(isl::multi_pw_aff mpa
);
1171 static inline isl::map
from_pw_aff(isl::pw_aff pwaff
);
1172 static inline isl::map
from_pw_multi_aff(isl::pw_multi_aff pma
);
1173 static inline isl::map
from_range(isl::set set
);
1174 static inline isl::map
from_union_map(isl::union_map umap
);
1175 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1176 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
1177 inline uint32_t get_hash() const;
1178 inline isl::space
get_space() const;
1179 inline isl::id
get_tuple_id(isl::dim type
) const;
1180 inline std::string
get_tuple_name(isl::dim type
) const;
1181 inline isl::map
gist(isl::map context
) const;
1182 inline isl::map
gist_basic_map(isl::basic_map context
) const;
1183 inline isl::map
gist_domain(isl::set context
) const;
1184 inline isl::map
gist_params(isl::set context
) const;
1185 inline isl::map
gist_range(isl::set context
) const;
1186 inline isl::boolean
has_dim_id(isl::dim type
, unsigned int pos
) const;
1187 inline isl::boolean
has_dim_name(isl::dim type
, unsigned int pos
) const;
1188 inline isl::boolean
has_equal_space(const isl::map
&map2
) const;
1189 inline isl::boolean
has_tuple_id(isl::dim type
) const;
1190 inline isl::boolean
has_tuple_name(isl::dim type
) const;
1191 static inline isl::map
identity(isl::space dim
);
1192 inline isl::map
insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const;
1193 inline isl::map
intersect(isl::map map2
) const;
1194 inline isl::map
intersect_domain(isl::set set
) const;
1195 inline isl::map
intersect_domain_factor_range(isl::map factor
) const;
1196 inline isl::map
intersect_params(isl::set params
) const;
1197 inline isl::map
intersect_range(isl::set set
) const;
1198 inline isl::map
intersect_range_factor_range(isl::map factor
) const;
1199 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1200 inline isl::boolean
is_bijective() const;
1201 inline isl::boolean
is_disjoint(const isl::map
&map2
) const;
1202 inline isl::boolean
is_empty() const;
1203 inline isl::boolean
is_equal(const isl::map
&map2
) const;
1204 inline isl::boolean
is_identity() const;
1205 inline isl::boolean
is_injective() const;
1206 inline isl::boolean
is_product() const;
1207 inline isl::boolean
is_single_valued() const;
1208 inline isl::boolean
is_strict_subset(const isl::map
&map2
) const;
1209 inline isl::boolean
is_subset(const isl::map
&map2
) const;
1210 inline int is_translation() const;
1211 static inline isl::map
lex_ge(isl::space set_dim
);
1212 static inline isl::map
lex_ge_first(isl::space dim
, unsigned int n
);
1213 inline isl::map
lex_ge_map(isl::map map2
) const;
1214 static inline isl::map
lex_gt(isl::space set_dim
);
1215 static inline isl::map
lex_gt_first(isl::space dim
, unsigned int n
);
1216 inline isl::map
lex_gt_map(isl::map map2
) const;
1217 static inline isl::map
lex_le(isl::space set_dim
);
1218 static inline isl::map
lex_le_first(isl::space dim
, unsigned int n
);
1219 inline isl::map
lex_le_map(isl::map map2
) const;
1220 static inline isl::map
lex_lt(isl::space set_dim
);
1221 static inline isl::map
lex_lt_first(isl::space dim
, unsigned int n
);
1222 inline isl::map
lex_lt_map(isl::map map2
) const;
1223 inline isl::map
lexmax() const;
1224 inline isl::pw_multi_aff
lexmax_pw_multi_aff() const;
1225 inline isl::map
lexmin() const;
1226 inline isl::pw_multi_aff
lexmin_pw_multi_aff() const;
1227 inline isl::map
lower_bound_si(isl::dim type
, unsigned int pos
, int value
) const;
1228 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;
1229 static inline isl::map
nat_universe(isl::space dim
);
1230 inline isl::map
neg() const;
1231 inline isl::map
oppose(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
1232 inline isl::map
order_ge(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
1233 inline isl::map
order_gt(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
1234 inline isl::map
order_le(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
1235 inline isl::map
order_lt(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
1236 inline isl::set
params() const;
1237 inline isl::val
plain_get_val_if_fixed(isl::dim type
, unsigned int pos
) const;
1238 inline isl::boolean
plain_is_empty() const;
1239 inline isl::boolean
plain_is_equal(const isl::map
&map2
) const;
1240 inline isl::boolean
plain_is_injective() const;
1241 inline isl::boolean
plain_is_single_valued() const;
1242 inline isl::boolean
plain_is_universe() const;
1243 inline isl::basic_map
plain_unshifted_simple_hull() const;
1244 inline isl::basic_map
polyhedral_hull() const;
1245 inline isl::map
preimage_domain_multi_aff(isl::multi_aff ma
) const;
1246 inline isl::map
preimage_domain_multi_pw_aff(isl::multi_pw_aff mpa
) const;
1247 inline isl::map
preimage_domain_pw_multi_aff(isl::pw_multi_aff pma
) const;
1248 inline isl::map
preimage_range_multi_aff(isl::multi_aff ma
) const;
1249 inline isl::map
preimage_range_pw_multi_aff(isl::pw_multi_aff pma
) const;
1250 inline isl::map
product(isl::map map2
) const;
1251 inline isl::map
project_out(isl::dim type
, unsigned int first
, unsigned int n
) const;
1252 inline isl::set
range() const;
1253 inline isl::map
range_curry() const;
1254 inline isl::map
range_factor_domain() const;
1255 inline isl::map
range_factor_range() const;
1256 inline isl::boolean
range_is_wrapping() const;
1257 inline isl::map
range_map() const;
1258 inline isl::map
range_product(isl::map map2
) const;
1259 inline isl::map
remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1260 inline isl::map
remove_divs() const;
1261 inline isl::map
remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1262 inline isl::map
remove_redundancies() const;
1263 inline isl::map
remove_unknown_divs() const;
1264 inline isl::map
reset_tuple_id(isl::dim type
) const;
1265 inline isl::map
reset_user() const;
1266 inline isl::map
reverse() const;
1267 inline isl::basic_map
sample() const;
1268 inline isl::map
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1269 inline isl::map
set_tuple_id(isl::dim type
, isl::id id
) const;
1270 inline isl::map
set_tuple_name(isl::dim type
, const std::string
&s
) const;
1271 inline isl::basic_map
simple_hull() const;
1272 inline isl::map
subtract(isl::map map2
) const;
1273 inline isl::map
subtract_domain(isl::set dom
) const;
1274 inline isl::map
subtract_range(isl::set dom
) const;
1275 inline isl::map
sum(isl::map map2
) const;
1276 inline isl::map
uncurry() const;
1277 inline isl::map
unite(isl::map map2
) const;
1278 static inline isl::map
universe(isl::space space
);
1279 inline isl::basic_map
unshifted_simple_hull() const;
1280 inline isl::basic_map
unshifted_simple_hull_from_map_list(isl::map_list list
) const;
1281 inline isl::map
upper_bound_si(isl::dim type
, unsigned int pos
, int value
) const;
1282 inline isl::set
wrap() const;
1283 inline isl::map
zip() const;
1286 // declarations for isl::map_list
1287 inline isl::map_list
manage(__isl_take isl_map_list
*ptr
);
1288 inline isl::map_list
manage_copy(__isl_keep isl_map_list
*ptr
);
1289 inline isl::map_list
give(__isl_take isl_map_list
*ptr
);
1293 friend inline isl::map_list
manage(__isl_take isl_map_list
*ptr
);
1294 friend inline isl::map_list
manage_copy(__isl_keep isl_map_list
*ptr
);
1296 isl_map_list
*ptr
= nullptr;
1298 inline explicit map_list(__isl_take isl_map_list
*ptr
);
1301 inline /* implicit */ map_list();
1302 inline /* implicit */ map_list(const isl::map_list
&obj
);
1303 inline /* implicit */ map_list(std::nullptr_t
);
1304 inline isl::map_list
&operator=(isl::map_list obj
);
1306 inline __isl_give isl_map_list
*copy() const &;
1307 inline __isl_give isl_map_list
*copy() && = delete;
1308 inline __isl_keep isl_map_list
*get() const;
1309 inline __isl_give isl_map_list
*release();
1310 inline bool is_null() const;
1311 inline __isl_keep isl_map_list
*keep() const;
1312 inline __isl_give isl_map_list
*take();
1313 inline explicit operator bool() const;
1314 inline isl::ctx
get_ctx() const;
1315 inline void dump() const;
1319 // declarations for isl::mat
1320 inline isl::mat
manage(__isl_take isl_mat
*ptr
);
1321 inline isl::mat
manage_copy(__isl_keep isl_mat
*ptr
);
1322 inline isl::mat
give(__isl_take isl_mat
*ptr
);
1326 friend inline isl::mat
manage(__isl_take isl_mat
*ptr
);
1327 friend inline isl::mat
manage_copy(__isl_keep isl_mat
*ptr
);
1329 isl_mat
*ptr
= nullptr;
1331 inline explicit mat(__isl_take isl_mat
*ptr
);
1334 inline /* implicit */ mat();
1335 inline /* implicit */ mat(const isl::mat
&obj
);
1336 inline /* implicit */ mat(std::nullptr_t
);
1337 inline isl::mat
&operator=(isl::mat obj
);
1339 inline __isl_give isl_mat
*copy() const &;
1340 inline __isl_give isl_mat
*copy() && = delete;
1341 inline __isl_keep isl_mat
*get() const;
1342 inline __isl_give isl_mat
*release();
1343 inline bool is_null() const;
1344 inline __isl_keep isl_mat
*keep() const;
1345 inline __isl_give isl_mat
*take();
1346 inline explicit operator bool() const;
1347 inline isl::ctx
get_ctx() const;
1348 inline void dump() const;
1350 inline isl::mat
add_rows(unsigned int n
) const;
1351 inline isl::mat
add_zero_cols(unsigned int n
) const;
1352 inline isl::mat
add_zero_rows(unsigned int n
) const;
1353 inline isl::mat
aff_direct_sum(isl::mat right
) const;
1354 static inline isl::mat
alloc(isl::ctx ctx
, unsigned int n_row
, unsigned int n_col
);
1355 inline int cols() const;
1356 inline isl::mat
concat(isl::mat bot
) const;
1357 inline isl::mat
diagonal(isl::mat mat2
) const;
1358 inline isl::mat
drop_cols(unsigned int col
, unsigned int n
) const;
1359 inline isl::mat
drop_rows(unsigned int row
, unsigned int n
) const;
1360 static inline isl::mat
from_row_vec(isl::vec vec
);
1361 inline isl::val
get_element_val(int row
, int col
) const;
1362 inline int initial_non_zero_cols() const;
1363 inline isl::mat
insert_cols(unsigned int col
, unsigned int n
) const;
1364 inline isl::mat
insert_rows(unsigned int row
, unsigned int n
) const;
1365 inline isl::mat
insert_zero_cols(unsigned int first
, unsigned int n
) const;
1366 inline isl::mat
insert_zero_rows(unsigned int row
, unsigned int n
) const;
1367 inline isl::mat
inverse_product(isl::mat right
) const;
1368 inline isl::boolean
is_equal(const isl::mat
&mat2
) const;
1369 inline isl::mat
lin_to_aff() const;
1370 inline isl::mat
move_cols(unsigned int dst_col
, unsigned int src_col
, unsigned int n
) const;
1371 inline isl::mat
normalize() const;
1372 inline isl::mat
normalize_row(int row
) const;
1373 inline isl::mat
product(isl::mat right
) const;
1374 inline isl::mat
right_inverse() const;
1375 inline isl::mat
right_kernel() const;
1376 inline int rows() const;
1377 inline isl::mat
set_element_si(int row
, int col
, int v
) const;
1378 inline isl::mat
set_element_val(int row
, int col
, isl::val v
) const;
1379 inline isl::mat
swap_cols(unsigned int i
, unsigned int j
) const;
1380 inline isl::mat
swap_rows(unsigned int i
, unsigned int j
) const;
1381 inline isl::mat
transpose() const;
1382 inline isl::mat
unimodular_complete(int row
) const;
1383 inline isl::mat
vec_concat(isl::vec bot
) const;
1384 inline isl::vec
vec_inverse_product(isl::vec vec
) const;
1385 inline isl::vec
vec_product(isl::vec vec
) const;
1388 // declarations for isl::multi_aff
1389 inline isl::multi_aff
manage(__isl_take isl_multi_aff
*ptr
);
1390 inline isl::multi_aff
manage_copy(__isl_keep isl_multi_aff
*ptr
);
1391 inline isl::multi_aff
give(__isl_take isl_multi_aff
*ptr
);
1395 friend inline isl::multi_aff
manage(__isl_take isl_multi_aff
*ptr
);
1396 friend inline isl::multi_aff
manage_copy(__isl_keep isl_multi_aff
*ptr
);
1398 isl_multi_aff
*ptr
= nullptr;
1400 inline explicit multi_aff(__isl_take isl_multi_aff
*ptr
);
1403 inline /* implicit */ multi_aff();
1404 inline /* implicit */ multi_aff(const isl::multi_aff
&obj
);
1405 inline /* implicit */ multi_aff(std::nullptr_t
);
1406 inline explicit multi_aff(isl::ctx ctx
, const std::string
&str
);
1407 inline /* implicit */ multi_aff(isl::aff aff
);
1408 inline isl::multi_aff
&operator=(isl::multi_aff obj
);
1409 inline ~multi_aff();
1410 inline __isl_give isl_multi_aff
*copy() const &;
1411 inline __isl_give isl_multi_aff
*copy() && = delete;
1412 inline __isl_keep isl_multi_aff
*get() const;
1413 inline __isl_give isl_multi_aff
*release();
1414 inline bool is_null() const;
1415 inline __isl_keep isl_multi_aff
*keep() const;
1416 inline __isl_give isl_multi_aff
*take();
1417 inline explicit operator bool() const;
1418 inline isl::ctx
get_ctx() const;
1419 inline std::string
to_str() const;
1420 inline void dump() const;
1422 inline isl::multi_aff
add(isl::multi_aff multi2
) const;
1423 inline isl::multi_aff
add_dims(isl::dim type
, unsigned int n
) const;
1424 inline isl::multi_aff
align_params(isl::space model
) const;
1425 inline unsigned int dim(isl::dim type
) const;
1426 static inline isl::multi_aff
domain_map(isl::space space
);
1427 inline isl::multi_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1428 inline isl::multi_aff
factor_range() const;
1429 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
1430 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1431 inline isl::multi_aff
flat_range_product(isl::multi_aff multi2
) const;
1432 inline isl::multi_aff
flatten_domain() const;
1433 inline isl::multi_aff
flatten_range() const;
1434 inline isl::multi_aff
floor() const;
1435 static inline isl::multi_aff
from_aff_list(isl::space space
, isl::aff_list list
);
1436 inline isl::multi_aff
from_range() const;
1437 inline isl::aff
get_aff(int pos
) const;
1438 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1439 inline isl::space
get_domain_space() const;
1440 inline isl::space
get_space() const;
1441 inline isl::id
get_tuple_id(isl::dim type
) const;
1442 inline std::string
get_tuple_name(isl::dim type
) const;
1443 inline isl::multi_aff
gist(isl::set context
) const;
1444 inline isl::multi_aff
gist_params(isl::set context
) const;
1445 inline isl::boolean
has_tuple_id(isl::dim type
) const;
1446 static inline isl::multi_aff
identity(isl::space space
);
1447 inline isl::multi_aff
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1448 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1449 inline isl::boolean
involves_nan() const;
1450 inline isl::set
lex_ge_set(isl::multi_aff ma2
) const;
1451 inline isl::set
lex_gt_set(isl::multi_aff ma2
) const;
1452 inline isl::set
lex_le_set(isl::multi_aff ma2
) const;
1453 inline isl::set
lex_lt_set(isl::multi_aff ma2
) const;
1454 inline isl::multi_aff
mod_multi_val(isl::multi_val mv
) const;
1455 inline isl::multi_aff
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
1456 static inline isl::multi_aff
multi_val_on_space(isl::space space
, isl::multi_val mv
);
1457 inline isl::multi_aff
neg() const;
1458 inline int plain_cmp(const isl::multi_aff
&multi2
) const;
1459 inline isl::boolean
plain_is_equal(const isl::multi_aff
&multi2
) const;
1460 inline isl::multi_aff
product(isl::multi_aff multi2
) const;
1461 static inline isl::multi_aff
project_out_map(isl::space space
, isl::dim type
, unsigned int first
, unsigned int n
);
1462 inline isl::multi_aff
pullback(isl::multi_aff ma2
) const;
1463 inline isl::multi_aff
range_factor_domain() const;
1464 inline isl::multi_aff
range_factor_range() const;
1465 inline isl::boolean
range_is_wrapping() const;
1466 static inline isl::multi_aff
range_map(isl::space space
);
1467 inline isl::multi_aff
range_product(isl::multi_aff multi2
) const;
1468 inline isl::multi_aff
range_splice(unsigned int pos
, isl::multi_aff multi2
) const;
1469 inline isl::multi_aff
reset_tuple_id(isl::dim type
) const;
1470 inline isl::multi_aff
reset_user() const;
1471 inline isl::multi_aff
scale_down_multi_val(isl::multi_val mv
) const;
1472 inline isl::multi_aff
scale_down_val(isl::val v
) const;
1473 inline isl::multi_aff
scale_multi_val(isl::multi_val mv
) const;
1474 inline isl::multi_aff
scale_val(isl::val v
) const;
1475 inline isl::multi_aff
set_aff(int pos
, isl::aff el
) const;
1476 inline isl::multi_aff
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1477 inline isl::multi_aff
set_tuple_id(isl::dim type
, isl::id id
) const;
1478 inline isl::multi_aff
set_tuple_name(isl::dim type
, const std::string
&s
) const;
1479 inline isl::multi_aff
splice(unsigned int in_pos
, unsigned int out_pos
, isl::multi_aff multi2
) const;
1480 inline isl::multi_aff
sub(isl::multi_aff multi2
) const;
1481 static inline isl::multi_aff
zero(isl::space space
);
1484 // declarations for isl::multi_pw_aff
1485 inline isl::multi_pw_aff
manage(__isl_take isl_multi_pw_aff
*ptr
);
1486 inline isl::multi_pw_aff
manage_copy(__isl_keep isl_multi_pw_aff
*ptr
);
1487 inline isl::multi_pw_aff
give(__isl_take isl_multi_pw_aff
*ptr
);
1490 class multi_pw_aff
{
1491 friend inline isl::multi_pw_aff
manage(__isl_take isl_multi_pw_aff
*ptr
);
1492 friend inline isl::multi_pw_aff
manage_copy(__isl_keep isl_multi_pw_aff
*ptr
);
1494 isl_multi_pw_aff
*ptr
= nullptr;
1496 inline explicit multi_pw_aff(__isl_take isl_multi_pw_aff
*ptr
);
1499 inline /* implicit */ multi_pw_aff();
1500 inline /* implicit */ multi_pw_aff(const isl::multi_pw_aff
&obj
);
1501 inline /* implicit */ multi_pw_aff(std::nullptr_t
);
1502 inline /* implicit */ multi_pw_aff(isl::multi_aff ma
);
1503 inline /* implicit */ multi_pw_aff(isl::pw_aff pa
);
1504 inline /* implicit */ multi_pw_aff(isl::pw_multi_aff pma
);
1505 inline explicit multi_pw_aff(isl::ctx ctx
, const std::string
&str
);
1506 inline isl::multi_pw_aff
&operator=(isl::multi_pw_aff obj
);
1507 inline ~multi_pw_aff();
1508 inline __isl_give isl_multi_pw_aff
*copy() const &;
1509 inline __isl_give isl_multi_pw_aff
*copy() && = delete;
1510 inline __isl_keep isl_multi_pw_aff
*get() const;
1511 inline __isl_give isl_multi_pw_aff
*release();
1512 inline bool is_null() const;
1513 inline __isl_keep isl_multi_pw_aff
*keep() const;
1514 inline __isl_give isl_multi_pw_aff
*take();
1515 inline explicit operator bool() const;
1516 inline isl::ctx
get_ctx() const;
1517 inline std::string
to_str() const;
1518 inline void dump() const;
1520 inline isl::multi_pw_aff
add(isl::multi_pw_aff multi2
) const;
1521 inline isl::multi_pw_aff
add_dims(isl::dim type
, unsigned int n
) const;
1522 inline isl::multi_pw_aff
align_params(isl::space model
) const;
1523 inline isl::multi_pw_aff
coalesce() const;
1524 inline unsigned int dim(isl::dim type
) const;
1525 inline isl::set
domain() const;
1526 inline isl::multi_pw_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1527 inline isl::map
eq_map(isl::multi_pw_aff mpa2
) const;
1528 inline isl::multi_pw_aff
factor_range() const;
1529 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
1530 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1531 inline isl::multi_pw_aff
flat_range_product(isl::multi_pw_aff multi2
) const;
1532 inline isl::multi_pw_aff
flatten_range() const;
1533 static inline isl::multi_pw_aff
from_pw_aff_list(isl::space space
, isl::pw_aff_list list
);
1534 inline isl::multi_pw_aff
from_range() const;
1535 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1536 inline isl::space
get_domain_space() const;
1537 inline uint32_t get_hash() const;
1538 inline isl::pw_aff
get_pw_aff(int pos
) const;
1539 inline isl::space
get_space() const;
1540 inline isl::id
get_tuple_id(isl::dim type
) const;
1541 inline std::string
get_tuple_name(isl::dim type
) const;
1542 inline isl::multi_pw_aff
gist(isl::set set
) const;
1543 inline isl::multi_pw_aff
gist_params(isl::set set
) const;
1544 inline isl::boolean
has_tuple_id(isl::dim type
) const;
1545 static inline isl::multi_pw_aff
identity(isl::space space
);
1546 inline isl::multi_pw_aff
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1547 inline isl::multi_pw_aff
intersect_domain(isl::set domain
) const;
1548 inline isl::multi_pw_aff
intersect_params(isl::set set
) const;
1549 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1550 inline isl::boolean
involves_nan() const;
1551 inline isl::boolean
is_cst() const;
1552 inline isl::boolean
is_equal(const isl::multi_pw_aff
&mpa2
) const;
1553 inline isl::map
lex_gt_map(isl::multi_pw_aff mpa2
) const;
1554 inline isl::map
lex_lt_map(isl::multi_pw_aff mpa2
) const;
1555 inline isl::multi_pw_aff
mod_multi_val(isl::multi_val mv
) const;
1556 inline isl::multi_pw_aff
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
1557 inline isl::multi_pw_aff
neg() const;
1558 inline isl::boolean
plain_is_equal(const isl::multi_pw_aff
&multi2
) const;
1559 inline isl::multi_pw_aff
product(isl::multi_pw_aff multi2
) const;
1560 inline isl::multi_pw_aff
pullback(isl::multi_aff ma
) const;
1561 inline isl::multi_pw_aff
pullback(isl::pw_multi_aff pma
) const;
1562 inline isl::multi_pw_aff
pullback(isl::multi_pw_aff mpa2
) const;
1563 inline isl::multi_pw_aff
range_factor_domain() const;
1564 inline isl::multi_pw_aff
range_factor_range() const;
1565 inline isl::boolean
range_is_wrapping() const;
1566 inline isl::multi_pw_aff
range_product(isl::multi_pw_aff multi2
) const;
1567 inline isl::multi_pw_aff
range_splice(unsigned int pos
, isl::multi_pw_aff multi2
) const;
1568 inline isl::multi_pw_aff
reset_tuple_id(isl::dim type
) const;
1569 inline isl::multi_pw_aff
reset_user() const;
1570 inline isl::multi_pw_aff
scale_down_multi_val(isl::multi_val mv
) const;
1571 inline isl::multi_pw_aff
scale_down_val(isl::val v
) const;
1572 inline isl::multi_pw_aff
scale_multi_val(isl::multi_val mv
) const;
1573 inline isl::multi_pw_aff
scale_val(isl::val v
) const;
1574 inline isl::multi_pw_aff
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1575 inline isl::multi_pw_aff
set_pw_aff(int pos
, isl::pw_aff el
) const;
1576 inline isl::multi_pw_aff
set_tuple_id(isl::dim type
, isl::id id
) const;
1577 inline isl::multi_pw_aff
set_tuple_name(isl::dim type
, const std::string
&s
) const;
1578 inline isl::multi_pw_aff
splice(unsigned int in_pos
, unsigned int out_pos
, isl::multi_pw_aff multi2
) const;
1579 inline isl::multi_pw_aff
sub(isl::multi_pw_aff multi2
) const;
1580 static inline isl::multi_pw_aff
zero(isl::space space
);
1583 // declarations for isl::multi_union_pw_aff
1584 inline isl::multi_union_pw_aff
manage(__isl_take isl_multi_union_pw_aff
*ptr
);
1585 inline isl::multi_union_pw_aff
manage_copy(__isl_keep isl_multi_union_pw_aff
*ptr
);
1586 inline isl::multi_union_pw_aff
give(__isl_take isl_multi_union_pw_aff
*ptr
);
1589 class multi_union_pw_aff
{
1590 friend inline isl::multi_union_pw_aff
manage(__isl_take isl_multi_union_pw_aff
*ptr
);
1591 friend inline isl::multi_union_pw_aff
manage_copy(__isl_keep isl_multi_union_pw_aff
*ptr
);
1593 isl_multi_union_pw_aff
*ptr
= nullptr;
1595 inline explicit multi_union_pw_aff(__isl_take isl_multi_union_pw_aff
*ptr
);
1598 inline /* implicit */ multi_union_pw_aff();
1599 inline /* implicit */ multi_union_pw_aff(const isl::multi_union_pw_aff
&obj
);
1600 inline /* implicit */ multi_union_pw_aff(std::nullptr_t
);
1601 inline /* implicit */ multi_union_pw_aff(isl::union_pw_aff upa
);
1602 inline /* implicit */ multi_union_pw_aff(isl::multi_pw_aff mpa
);
1603 inline explicit multi_union_pw_aff(isl::union_pw_multi_aff upma
);
1604 inline explicit multi_union_pw_aff(isl::ctx ctx
, const std::string
&str
);
1605 inline isl::multi_union_pw_aff
&operator=(isl::multi_union_pw_aff obj
);
1606 inline ~multi_union_pw_aff();
1607 inline __isl_give isl_multi_union_pw_aff
*copy() const &;
1608 inline __isl_give isl_multi_union_pw_aff
*copy() && = delete;
1609 inline __isl_keep isl_multi_union_pw_aff
*get() const;
1610 inline __isl_give isl_multi_union_pw_aff
*release();
1611 inline bool is_null() const;
1612 inline __isl_keep isl_multi_union_pw_aff
*keep() const;
1613 inline __isl_give isl_multi_union_pw_aff
*take();
1614 inline explicit operator bool() const;
1615 inline isl::ctx
get_ctx() const;
1616 inline std::string
to_str() const;
1617 inline void dump() const;
1619 inline isl::multi_union_pw_aff
add(isl::multi_union_pw_aff multi2
) const;
1620 inline isl::multi_union_pw_aff
align_params(isl::space model
) const;
1621 inline isl::union_pw_aff
apply_aff(isl::aff aff
) const;
1622 inline isl::union_pw_aff
apply_pw_aff(isl::pw_aff pa
) const;
1623 inline isl::multi_union_pw_aff
apply_pw_multi_aff(isl::pw_multi_aff pma
) const;
1624 inline isl::multi_union_pw_aff
coalesce() const;
1625 inline unsigned int dim(isl::dim type
) const;
1626 inline isl::union_set
domain() const;
1627 inline isl::multi_union_pw_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1628 inline isl::multi_pw_aff
extract_multi_pw_aff(isl::space space
) const;
1629 inline isl::multi_union_pw_aff
factor_range() const;
1630 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
1631 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1632 inline isl::multi_union_pw_aff
flat_range_product(isl::multi_union_pw_aff multi2
) const;
1633 inline isl::multi_union_pw_aff
flatten_range() const;
1634 inline isl::multi_union_pw_aff
floor() const;
1635 static inline isl::multi_union_pw_aff
from_multi_aff(isl::multi_aff ma
);
1636 inline isl::multi_union_pw_aff
from_range() const;
1637 static inline isl::multi_union_pw_aff
from_union_map(isl::union_map umap
);
1638 static inline isl::multi_union_pw_aff
from_union_pw_aff_list(isl::space space
, isl::union_pw_aff_list list
);
1639 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1640 inline isl::space
get_domain_space() const;
1641 inline isl::space
get_space() const;
1642 inline isl::id
get_tuple_id(isl::dim type
) const;
1643 inline std::string
get_tuple_name(isl::dim type
) const;
1644 inline isl::union_pw_aff
get_union_pw_aff(int pos
) const;
1645 inline isl::multi_union_pw_aff
gist(isl::union_set context
) const;
1646 inline isl::multi_union_pw_aff
gist_params(isl::set context
) const;
1647 inline isl::boolean
has_tuple_id(isl::dim type
) const;
1648 inline isl::multi_union_pw_aff
intersect_domain(isl::union_set uset
) const;
1649 inline isl::multi_union_pw_aff
intersect_params(isl::set params
) const;
1650 inline isl::multi_union_pw_aff
intersect_range(isl::set set
) const;
1651 inline isl::boolean
involves_nan() const;
1652 inline isl::multi_union_pw_aff
mod_multi_val(isl::multi_val mv
) const;
1653 static inline isl::multi_union_pw_aff
multi_aff_on_domain(isl::union_set domain
, isl::multi_aff ma
);
1654 static inline isl::multi_union_pw_aff
multi_val_on_domain(isl::union_set domain
, isl::multi_val mv
);
1655 inline isl::multi_union_pw_aff
neg() const;
1656 inline isl::boolean
plain_is_equal(const isl::multi_union_pw_aff
&multi2
) const;
1657 inline isl::multi_union_pw_aff
pullback(isl::union_pw_multi_aff upma
) const;
1658 inline isl::multi_union_pw_aff
range_factor_domain() const;
1659 inline isl::multi_union_pw_aff
range_factor_range() const;
1660 inline isl::boolean
range_is_wrapping() const;
1661 inline isl::multi_union_pw_aff
range_product(isl::multi_union_pw_aff multi2
) const;
1662 inline isl::multi_union_pw_aff
range_splice(unsigned int pos
, isl::multi_union_pw_aff multi2
) const;
1663 inline isl::multi_union_pw_aff
reset_tuple_id(isl::dim type
) const;
1664 inline isl::multi_union_pw_aff
reset_user() const;
1665 inline isl::multi_union_pw_aff
scale_down_multi_val(isl::multi_val mv
) const;
1666 inline isl::multi_union_pw_aff
scale_down_val(isl::val v
) const;
1667 inline isl::multi_union_pw_aff
scale_multi_val(isl::multi_val mv
) const;
1668 inline isl::multi_union_pw_aff
scale_val(isl::val v
) const;
1669 inline isl::multi_union_pw_aff
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1670 inline isl::multi_union_pw_aff
set_tuple_id(isl::dim type
, isl::id id
) const;
1671 inline isl::multi_union_pw_aff
set_tuple_name(isl::dim type
, const std::string
&s
) const;
1672 inline isl::multi_union_pw_aff
set_union_pw_aff(int pos
, isl::union_pw_aff el
) const;
1673 inline isl::multi_union_pw_aff
sub(isl::multi_union_pw_aff multi2
) const;
1674 inline isl::multi_union_pw_aff
union_add(isl::multi_union_pw_aff mupa2
) const;
1675 static inline isl::multi_union_pw_aff
zero(isl::space space
);
1676 inline isl::union_set
zero_union_set() const;
1679 // declarations for isl::multi_val
1680 inline isl::multi_val
manage(__isl_take isl_multi_val
*ptr
);
1681 inline isl::multi_val
manage_copy(__isl_keep isl_multi_val
*ptr
);
1682 inline isl::multi_val
give(__isl_take isl_multi_val
*ptr
);
1686 friend inline isl::multi_val
manage(__isl_take isl_multi_val
*ptr
);
1687 friend inline isl::multi_val
manage_copy(__isl_keep isl_multi_val
*ptr
);
1689 isl_multi_val
*ptr
= nullptr;
1691 inline explicit multi_val(__isl_take isl_multi_val
*ptr
);
1694 inline /* implicit */ multi_val();
1695 inline /* implicit */ multi_val(const isl::multi_val
&obj
);
1696 inline /* implicit */ multi_val(std::nullptr_t
);
1697 inline explicit multi_val(isl::ctx ctx
, const std::string
&str
);
1698 inline isl::multi_val
&operator=(isl::multi_val obj
);
1699 inline ~multi_val();
1700 inline __isl_give isl_multi_val
*copy() const &;
1701 inline __isl_give isl_multi_val
*copy() && = delete;
1702 inline __isl_keep isl_multi_val
*get() const;
1703 inline __isl_give isl_multi_val
*release();
1704 inline bool is_null() const;
1705 inline __isl_keep isl_multi_val
*keep() const;
1706 inline __isl_give isl_multi_val
*take();
1707 inline explicit operator bool() const;
1708 inline isl::ctx
get_ctx() const;
1709 inline std::string
to_str() const;
1710 inline void dump() const;
1712 inline isl::multi_val
add(isl::multi_val multi2
) const;
1713 inline isl::multi_val
add_dims(isl::dim type
, unsigned int n
) const;
1714 inline isl::multi_val
add_val(isl::val v
) const;
1715 inline isl::multi_val
align_params(isl::space model
) const;
1716 inline unsigned int dim(isl::dim type
) const;
1717 inline isl::multi_val
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1718 inline isl::multi_val
factor_range() const;
1719 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
1720 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1721 inline isl::multi_val
flat_range_product(isl::multi_val multi2
) const;
1722 inline isl::multi_val
flatten_range() const;
1723 inline isl::multi_val
from_range() const;
1724 static inline isl::multi_val
from_val_list(isl::space space
, isl::val_list list
);
1725 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1726 inline isl::space
get_domain_space() const;
1727 inline isl::space
get_space() const;
1728 inline isl::id
get_tuple_id(isl::dim type
) const;
1729 inline std::string
get_tuple_name(isl::dim type
) const;
1730 inline isl::val
get_val(int pos
) const;
1731 inline isl::boolean
has_tuple_id(isl::dim type
) const;
1732 inline isl::multi_val
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1733 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1734 inline isl::boolean
involves_nan() const;
1735 inline isl::multi_val
mod_multi_val(isl::multi_val mv
) const;
1736 inline isl::multi_val
mod_val(isl::val v
) const;
1737 inline isl::multi_val
neg() const;
1738 inline isl::boolean
plain_is_equal(const isl::multi_val
&multi2
) const;
1739 inline isl::multi_val
product(isl::multi_val multi2
) const;
1740 inline isl::multi_val
range_factor_domain() const;
1741 inline isl::multi_val
range_factor_range() const;
1742 inline isl::boolean
range_is_wrapping() const;
1743 inline isl::multi_val
range_product(isl::multi_val multi2
) const;
1744 inline isl::multi_val
range_splice(unsigned int pos
, isl::multi_val multi2
) const;
1745 inline isl::multi_val
reset_tuple_id(isl::dim type
) const;
1746 inline isl::multi_val
reset_user() const;
1747 inline isl::multi_val
scale_down_multi_val(isl::multi_val mv
) const;
1748 inline isl::multi_val
scale_down_val(isl::val v
) const;
1749 inline isl::multi_val
scale_multi_val(isl::multi_val mv
) const;
1750 inline isl::multi_val
scale_val(isl::val v
) const;
1751 inline isl::multi_val
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1752 inline isl::multi_val
set_tuple_id(isl::dim type
, isl::id id
) const;
1753 inline isl::multi_val
set_tuple_name(isl::dim type
, const std::string
&s
) const;
1754 inline isl::multi_val
set_val(int pos
, isl::val el
) const;
1755 inline isl::multi_val
splice(unsigned int in_pos
, unsigned int out_pos
, isl::multi_val multi2
) const;
1756 inline isl::multi_val
sub(isl::multi_val multi2
) const;
1757 static inline isl::multi_val
zero(isl::space space
);
1760 // declarations for isl::point
1761 inline isl::point
manage(__isl_take isl_point
*ptr
);
1762 inline isl::point
manage_copy(__isl_keep isl_point
*ptr
);
1763 inline isl::point
give(__isl_take isl_point
*ptr
);
1767 friend inline isl::point
manage(__isl_take isl_point
*ptr
);
1768 friend inline isl::point
manage_copy(__isl_keep isl_point
*ptr
);
1770 isl_point
*ptr
= nullptr;
1772 inline explicit point(__isl_take isl_point
*ptr
);
1775 inline /* implicit */ point();
1776 inline /* implicit */ point(const isl::point
&obj
);
1777 inline /* implicit */ point(std::nullptr_t
);
1778 inline explicit point(isl::space dim
);
1779 inline isl::point
&operator=(isl::point obj
);
1781 inline __isl_give isl_point
*copy() const &;
1782 inline __isl_give isl_point
*copy() && = delete;
1783 inline __isl_keep isl_point
*get() const;
1784 inline __isl_give isl_point
*release();
1785 inline bool is_null() const;
1786 inline __isl_keep isl_point
*keep() const;
1787 inline __isl_give isl_point
*take();
1788 inline explicit operator bool() const;
1789 inline isl::ctx
get_ctx() const;
1790 inline std::string
to_str() const;
1791 inline void dump() const;
1793 inline isl::point
add_ui(isl::dim type
, int pos
, unsigned int val
) const;
1794 inline isl::val
get_coordinate_val(isl::dim type
, int pos
) const;
1795 inline isl::space
get_space() const;
1796 inline isl::point
set_coordinate_val(isl::dim type
, int pos
, isl::val v
) const;
1797 inline isl::point
sub_ui(isl::dim type
, int pos
, unsigned int val
) const;
1800 // declarations for isl::pw_aff
1801 inline isl::pw_aff
manage(__isl_take isl_pw_aff
*ptr
);
1802 inline isl::pw_aff
manage_copy(__isl_keep isl_pw_aff
*ptr
);
1803 inline isl::pw_aff
give(__isl_take isl_pw_aff
*ptr
);
1807 friend inline isl::pw_aff
manage(__isl_take isl_pw_aff
*ptr
);
1808 friend inline isl::pw_aff
manage_copy(__isl_keep isl_pw_aff
*ptr
);
1810 isl_pw_aff
*ptr
= nullptr;
1812 inline explicit pw_aff(__isl_take isl_pw_aff
*ptr
);
1815 inline /* implicit */ pw_aff();
1816 inline /* implicit */ pw_aff(const isl::pw_aff
&obj
);
1817 inline /* implicit */ pw_aff(std::nullptr_t
);
1818 inline /* implicit */ pw_aff(isl::aff aff
);
1819 inline explicit pw_aff(isl::local_space ls
);
1820 inline explicit pw_aff(isl::set domain
, isl::val v
);
1821 inline explicit pw_aff(isl::ctx ctx
, const std::string
&str
);
1822 inline isl::pw_aff
&operator=(isl::pw_aff obj
);
1824 inline __isl_give isl_pw_aff
*copy() const &;
1825 inline __isl_give isl_pw_aff
*copy() && = delete;
1826 inline __isl_keep isl_pw_aff
*get() const;
1827 inline __isl_give isl_pw_aff
*release();
1828 inline bool is_null() const;
1829 inline __isl_keep isl_pw_aff
*keep() const;
1830 inline __isl_give isl_pw_aff
*take();
1831 inline explicit operator bool() const;
1832 inline isl::ctx
get_ctx() const;
1833 inline std::string
to_str() const;
1834 inline void dump() const;
1836 inline isl::pw_aff
add(isl::pw_aff pwaff2
) const;
1837 inline isl::pw_aff
add_dims(isl::dim type
, unsigned int n
) const;
1838 inline isl::pw_aff
align_params(isl::space model
) const;
1839 static inline isl::pw_aff
alloc(isl::set set
, isl::aff aff
);
1840 inline isl::pw_aff
ceil() const;
1841 inline isl::pw_aff
coalesce() const;
1842 inline isl::pw_aff
cond(isl::pw_aff pwaff_true
, isl::pw_aff pwaff_false
) const;
1843 inline unsigned int dim(isl::dim type
) const;
1844 inline isl::pw_aff
div(isl::pw_aff pa2
) const;
1845 inline isl::set
domain() const;
1846 inline isl::pw_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1847 static inline isl::pw_aff
empty(isl::space dim
);
1848 inline isl::map
eq_map(isl::pw_aff pa2
) const;
1849 inline isl::set
eq_set(isl::pw_aff pwaff2
) const;
1850 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1851 inline isl::pw_aff
floor() const;
1852 inline isl::stat
foreach_piece(const std::function
<isl::stat(isl::set
, isl::aff
)> &fn
) const;
1853 inline isl::pw_aff
from_range() const;
1854 inline isl::set
ge_set(isl::pw_aff pwaff2
) const;
1855 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1856 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
1857 inline isl::space
get_domain_space() const;
1858 inline uint32_t get_hash() const;
1859 inline isl::space
get_space() const;
1860 inline isl::id
get_tuple_id(isl::dim type
) const;
1861 inline isl::pw_aff
gist(isl::set context
) const;
1862 inline isl::pw_aff
gist_params(isl::set context
) const;
1863 inline isl::map
gt_map(isl::pw_aff pa2
) const;
1864 inline isl::set
gt_set(isl::pw_aff pwaff2
) const;
1865 inline isl::boolean
has_dim_id(isl::dim type
, unsigned int pos
) const;
1866 inline isl::boolean
has_tuple_id(isl::dim type
) const;
1867 inline isl::pw_aff
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1868 inline isl::pw_aff
intersect_domain(isl::set set
) const;
1869 inline isl::pw_aff
intersect_params(isl::set set
) const;
1870 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1871 inline isl::boolean
involves_nan() const;
1872 inline isl::boolean
is_cst() const;
1873 inline isl::boolean
is_empty() const;
1874 inline isl::boolean
is_equal(const isl::pw_aff
&pa2
) const;
1875 inline isl::set
le_set(isl::pw_aff pwaff2
) const;
1876 inline isl::map
lt_map(isl::pw_aff pa2
) const;
1877 inline isl::set
lt_set(isl::pw_aff pwaff2
) const;
1878 inline isl::pw_aff
max(isl::pw_aff pwaff2
) const;
1879 inline isl::pw_aff
min(isl::pw_aff pwaff2
) const;
1880 inline isl::pw_aff
mod(isl::val mod
) const;
1881 inline isl::pw_aff
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
1882 inline isl::pw_aff
mul(isl::pw_aff pwaff2
) const;
1883 static inline isl::pw_aff
nan_on_domain(isl::local_space ls
);
1884 inline isl::set
ne_set(isl::pw_aff pwaff2
) const;
1885 inline isl::pw_aff
neg() const;
1886 inline isl::set
non_zero_set() const;
1887 inline isl::set
nonneg_set() const;
1888 inline isl::set
params() const;
1889 inline int plain_cmp(const isl::pw_aff
&pa2
) const;
1890 inline isl::boolean
plain_is_equal(const isl::pw_aff
&pwaff2
) const;
1891 inline isl::set
pos_set() const;
1892 inline isl::pw_aff
project_domain_on_params() const;
1893 inline isl::pw_aff
pullback(isl::multi_aff ma
) const;
1894 inline isl::pw_aff
pullback(isl::pw_multi_aff pma
) const;
1895 inline isl::pw_aff
pullback(isl::multi_pw_aff mpa
) const;
1896 inline isl::pw_aff
reset_tuple_id(isl::dim type
) const;
1897 inline isl::pw_aff
reset_user() const;
1898 inline isl::pw_aff
scale(isl::val v
) const;
1899 inline isl::pw_aff
scale_down(isl::val f
) const;
1900 inline isl::pw_aff
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
1901 inline isl::pw_aff
set_tuple_id(isl::dim type
, isl::id id
) const;
1902 inline isl::pw_aff
sub(isl::pw_aff pwaff2
) const;
1903 inline isl::pw_aff
subtract_domain(isl::set set
) const;
1904 inline isl::pw_aff
tdiv_q(isl::pw_aff pa2
) const;
1905 inline isl::pw_aff
tdiv_r(isl::pw_aff pa2
) const;
1906 inline isl::pw_aff
union_add(isl::pw_aff pwaff2
) const;
1907 inline isl::pw_aff
union_max(isl::pw_aff pwaff2
) const;
1908 inline isl::pw_aff
union_min(isl::pw_aff pwaff2
) const;
1909 static inline isl::pw_aff
var_on_domain(isl::local_space ls
, isl::dim type
, unsigned int pos
);
1910 inline isl::set
zero_set() const;
1913 // declarations for isl::pw_aff_list
1914 inline isl::pw_aff_list
manage(__isl_take isl_pw_aff_list
*ptr
);
1915 inline isl::pw_aff_list
manage_copy(__isl_keep isl_pw_aff_list
*ptr
);
1916 inline isl::pw_aff_list
give(__isl_take isl_pw_aff_list
*ptr
);
1920 friend inline isl::pw_aff_list
manage(__isl_take isl_pw_aff_list
*ptr
);
1921 friend inline isl::pw_aff_list
manage_copy(__isl_keep isl_pw_aff_list
*ptr
);
1923 isl_pw_aff_list
*ptr
= nullptr;
1925 inline explicit pw_aff_list(__isl_take isl_pw_aff_list
*ptr
);
1928 inline /* implicit */ pw_aff_list();
1929 inline /* implicit */ pw_aff_list(const isl::pw_aff_list
&obj
);
1930 inline /* implicit */ pw_aff_list(std::nullptr_t
);
1931 inline isl::pw_aff_list
&operator=(isl::pw_aff_list obj
);
1932 inline ~pw_aff_list();
1933 inline __isl_give isl_pw_aff_list
*copy() const &;
1934 inline __isl_give isl_pw_aff_list
*copy() && = delete;
1935 inline __isl_keep isl_pw_aff_list
*get() const;
1936 inline __isl_give isl_pw_aff_list
*release();
1937 inline bool is_null() const;
1938 inline __isl_keep isl_pw_aff_list
*keep() const;
1939 inline __isl_give isl_pw_aff_list
*take();
1940 inline explicit operator bool() const;
1941 inline isl::ctx
get_ctx() const;
1942 inline void dump() const;
1946 // declarations for isl::pw_multi_aff
1947 inline isl::pw_multi_aff
manage(__isl_take isl_pw_multi_aff
*ptr
);
1948 inline isl::pw_multi_aff
manage_copy(__isl_keep isl_pw_multi_aff
*ptr
);
1949 inline isl::pw_multi_aff
give(__isl_take isl_pw_multi_aff
*ptr
);
1952 class pw_multi_aff
{
1953 friend inline isl::pw_multi_aff
manage(__isl_take isl_pw_multi_aff
*ptr
);
1954 friend inline isl::pw_multi_aff
manage_copy(__isl_keep isl_pw_multi_aff
*ptr
);
1956 isl_pw_multi_aff
*ptr
= nullptr;
1958 inline explicit pw_multi_aff(__isl_take isl_pw_multi_aff
*ptr
);
1961 inline /* implicit */ pw_multi_aff();
1962 inline /* implicit */ pw_multi_aff(const isl::pw_multi_aff
&obj
);
1963 inline /* implicit */ pw_multi_aff(std::nullptr_t
);
1964 inline /* implicit */ pw_multi_aff(isl::multi_aff ma
);
1965 inline /* implicit */ pw_multi_aff(isl::pw_aff pa
);
1966 inline explicit pw_multi_aff(isl::ctx ctx
, const std::string
&str
);
1967 inline isl::pw_multi_aff
&operator=(isl::pw_multi_aff obj
);
1968 inline ~pw_multi_aff();
1969 inline __isl_give isl_pw_multi_aff
*copy() const &;
1970 inline __isl_give isl_pw_multi_aff
*copy() && = delete;
1971 inline __isl_keep isl_pw_multi_aff
*get() const;
1972 inline __isl_give isl_pw_multi_aff
*release();
1973 inline bool is_null() const;
1974 inline __isl_keep isl_pw_multi_aff
*keep() const;
1975 inline __isl_give isl_pw_multi_aff
*take();
1976 inline explicit operator bool() const;
1977 inline isl::ctx
get_ctx() const;
1978 inline std::string
to_str() const;
1979 inline void dump() const;
1981 inline isl::pw_multi_aff
add(isl::pw_multi_aff pma2
) const;
1982 inline isl::pw_multi_aff
align_params(isl::space model
) const;
1983 static inline isl::pw_multi_aff
alloc(isl::set set
, isl::multi_aff maff
);
1984 inline isl::pw_multi_aff
coalesce() const;
1985 inline unsigned int dim(isl::dim type
) const;
1986 inline isl::set
domain() const;
1987 inline isl::pw_multi_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
1988 static inline isl::pw_multi_aff
empty(isl::space space
);
1989 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
1990 inline isl::pw_multi_aff
fix_si(isl::dim type
, unsigned int pos
, int value
) const;
1991 inline isl::pw_multi_aff
flat_range_product(isl::pw_multi_aff pma2
) const;
1992 inline isl::stat
foreach_piece(const std::function
<isl::stat(isl::set
, isl::multi_aff
)> &fn
) const;
1993 static inline isl::pw_multi_aff
from_domain(isl::set set
);
1994 static inline isl::pw_multi_aff
from_map(isl::map map
);
1995 static inline isl::pw_multi_aff
from_multi_pw_aff(isl::multi_pw_aff mpa
);
1996 static inline isl::pw_multi_aff
from_set(isl::set set
);
1997 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
1998 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
1999 inline isl::space
get_domain_space() const;
2000 inline isl::pw_aff
get_pw_aff(int pos
) const;
2001 inline isl::space
get_space() const;
2002 inline isl::id
get_tuple_id(isl::dim type
) const;
2003 inline std::string
get_tuple_name(isl::dim type
) const;
2004 inline isl::pw_multi_aff
gist(isl::set set
) const;
2005 inline isl::pw_multi_aff
gist_params(isl::set set
) const;
2006 inline isl::boolean
has_tuple_id(isl::dim type
) const;
2007 inline isl::boolean
has_tuple_name(isl::dim type
) const;
2008 static inline isl::pw_multi_aff
identity(isl::space space
);
2009 inline isl::pw_multi_aff
intersect_domain(isl::set set
) const;
2010 inline isl::pw_multi_aff
intersect_params(isl::set set
) const;
2011 inline isl::boolean
involves_nan() const;
2012 inline isl::boolean
is_equal(const isl::pw_multi_aff
&pma2
) const;
2013 static inline isl::pw_multi_aff
multi_val_on_domain(isl::set domain
, isl::multi_val mv
);
2014 inline isl::pw_multi_aff
neg() const;
2015 inline isl::boolean
plain_is_equal(const isl::pw_multi_aff
&pma2
) const;
2016 inline isl::pw_multi_aff
product(isl::pw_multi_aff pma2
) const;
2017 inline isl::pw_multi_aff
project_domain_on_params() const;
2018 static inline isl::pw_multi_aff
project_out_map(isl::space space
, isl::dim type
, unsigned int first
, unsigned int n
);
2019 inline isl::pw_multi_aff
pullback(isl::multi_aff ma
) const;
2020 inline isl::pw_multi_aff
pullback(isl::pw_multi_aff pma2
) const;
2021 static inline isl::pw_multi_aff
range_map(isl::space space
);
2022 inline isl::pw_multi_aff
range_product(isl::pw_multi_aff pma2
) const;
2023 inline isl::pw_multi_aff
reset_tuple_id(isl::dim type
) const;
2024 inline isl::pw_multi_aff
reset_user() const;
2025 inline isl::pw_multi_aff
scale_down_val(isl::val v
) const;
2026 inline isl::pw_multi_aff
scale_multi_val(isl::multi_val mv
) const;
2027 inline isl::pw_multi_aff
scale_val(isl::val v
) const;
2028 inline isl::pw_multi_aff
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
2029 inline isl::pw_multi_aff
set_pw_aff(unsigned int pos
, isl::pw_aff pa
) const;
2030 inline isl::pw_multi_aff
set_tuple_id(isl::dim type
, isl::id id
) const;
2031 inline isl::pw_multi_aff
sub(isl::pw_multi_aff pma2
) const;
2032 inline isl::pw_multi_aff
subtract_domain(isl::set set
) const;
2033 inline isl::pw_multi_aff
union_add(isl::pw_multi_aff pma2
) const;
2034 inline isl::pw_multi_aff
union_lexmax(isl::pw_multi_aff pma2
) const;
2035 inline isl::pw_multi_aff
union_lexmin(isl::pw_multi_aff pma2
) const;
2036 static inline isl::pw_multi_aff
zero(isl::space space
);
2039 // declarations for isl::pw_qpolynomial
2040 inline isl::pw_qpolynomial
manage(__isl_take isl_pw_qpolynomial
*ptr
);
2041 inline isl::pw_qpolynomial
manage_copy(__isl_keep isl_pw_qpolynomial
*ptr
);
2042 inline isl::pw_qpolynomial
give(__isl_take isl_pw_qpolynomial
*ptr
);
2045 class pw_qpolynomial
{
2046 friend inline isl::pw_qpolynomial
manage(__isl_take isl_pw_qpolynomial
*ptr
);
2047 friend inline isl::pw_qpolynomial
manage_copy(__isl_keep isl_pw_qpolynomial
*ptr
);
2049 isl_pw_qpolynomial
*ptr
= nullptr;
2051 inline explicit pw_qpolynomial(__isl_take isl_pw_qpolynomial
*ptr
);
2054 inline /* implicit */ pw_qpolynomial();
2055 inline /* implicit */ pw_qpolynomial(const isl::pw_qpolynomial
&obj
);
2056 inline /* implicit */ pw_qpolynomial(std::nullptr_t
);
2057 inline explicit pw_qpolynomial(isl::ctx ctx
, const std::string
&str
);
2058 inline isl::pw_qpolynomial
&operator=(isl::pw_qpolynomial obj
);
2059 inline ~pw_qpolynomial();
2060 inline __isl_give isl_pw_qpolynomial
*copy() const &;
2061 inline __isl_give isl_pw_qpolynomial
*copy() && = delete;
2062 inline __isl_keep isl_pw_qpolynomial
*get() const;
2063 inline __isl_give isl_pw_qpolynomial
*release();
2064 inline bool is_null() const;
2065 inline __isl_keep isl_pw_qpolynomial
*keep() const;
2066 inline __isl_give isl_pw_qpolynomial
*take();
2067 inline explicit operator bool() const;
2068 inline isl::ctx
get_ctx() const;
2069 inline std::string
to_str() const;
2070 inline void dump() const;
2072 inline isl::pw_qpolynomial
add(isl::pw_qpolynomial pwqp2
) const;
2073 inline isl::pw_qpolynomial
add_dims(isl::dim type
, unsigned int n
) const;
2074 static inline isl::pw_qpolynomial
alloc(isl::set set
, isl::qpolynomial qp
);
2075 inline isl::pw_qpolynomial
coalesce() const;
2076 inline unsigned int dim(isl::dim type
) const;
2077 inline isl::set
domain() const;
2078 inline isl::pw_qpolynomial
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2079 inline isl::val
eval(isl::point pnt
) const;
2080 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
2081 inline isl::pw_qpolynomial
fix_val(isl::dim type
, unsigned int n
, isl::val v
) const;
2082 inline isl::stat
foreach_piece(const std::function
<isl::stat(isl::set
, isl::qpolynomial
)> &fn
) const;
2083 static inline isl::pw_qpolynomial
from_pw_aff(isl::pw_aff pwaff
);
2084 static inline isl::pw_qpolynomial
from_qpolynomial(isl::qpolynomial qp
);
2085 inline isl::pw_qpolynomial
from_range() const;
2086 inline isl::space
get_domain_space() const;
2087 inline isl::space
get_space() const;
2088 inline isl::pw_qpolynomial
gist(isl::set context
) const;
2089 inline isl::pw_qpolynomial
gist_params(isl::set context
) const;
2090 inline isl::boolean
has_equal_space(const isl::pw_qpolynomial
&pwqp2
) const;
2091 inline isl::pw_qpolynomial
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2092 inline isl::pw_qpolynomial
intersect_domain(isl::set set
) const;
2093 inline isl::pw_qpolynomial
intersect_params(isl::set set
) const;
2094 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2095 inline isl::boolean
involves_nan() const;
2096 inline isl::boolean
is_zero() const;
2097 inline isl::val
max() const;
2098 inline isl::val
min() const;
2099 inline isl::pw_qpolynomial
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
2100 inline isl::pw_qpolynomial
mul(isl::pw_qpolynomial pwqp2
) const;
2101 inline isl::pw_qpolynomial
neg() const;
2102 inline isl::boolean
plain_is_equal(const isl::pw_qpolynomial
&pwqp2
) const;
2103 inline isl::pw_qpolynomial
pow(unsigned int exponent
) const;
2104 inline isl::pw_qpolynomial
project_domain_on_params() const;
2105 inline isl::pw_qpolynomial
reset_domain_space(isl::space dim
) const;
2106 inline isl::pw_qpolynomial
reset_user() const;
2107 inline isl::pw_qpolynomial
scale_down_val(isl::val v
) const;
2108 inline isl::pw_qpolynomial
scale_val(isl::val v
) const;
2109 inline isl::pw_qpolynomial
split_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2110 inline isl::pw_qpolynomial
split_periods(int max_periods
) const;
2111 inline isl::pw_qpolynomial
sub(isl::pw_qpolynomial pwqp2
) const;
2112 inline isl::pw_qpolynomial
subtract_domain(isl::set set
) const;
2113 inline isl::pw_qpolynomial
to_polynomial(int sign
) const;
2114 static inline isl::pw_qpolynomial
zero(isl::space dim
);
2117 // declarations for isl::qpolynomial
2118 inline isl::qpolynomial
manage(__isl_take isl_qpolynomial
*ptr
);
2119 inline isl::qpolynomial
manage_copy(__isl_keep isl_qpolynomial
*ptr
);
2120 inline isl::qpolynomial
give(__isl_take isl_qpolynomial
*ptr
);
2124 friend inline isl::qpolynomial
manage(__isl_take isl_qpolynomial
*ptr
);
2125 friend inline isl::qpolynomial
manage_copy(__isl_keep isl_qpolynomial
*ptr
);
2127 isl_qpolynomial
*ptr
= nullptr;
2129 inline explicit qpolynomial(__isl_take isl_qpolynomial
*ptr
);
2132 inline /* implicit */ qpolynomial();
2133 inline /* implicit */ qpolynomial(const isl::qpolynomial
&obj
);
2134 inline /* implicit */ qpolynomial(std::nullptr_t
);
2135 inline isl::qpolynomial
&operator=(isl::qpolynomial obj
);
2136 inline ~qpolynomial();
2137 inline __isl_give isl_qpolynomial
*copy() const &;
2138 inline __isl_give isl_qpolynomial
*copy() && = delete;
2139 inline __isl_keep isl_qpolynomial
*get() const;
2140 inline __isl_give isl_qpolynomial
*release();
2141 inline bool is_null() const;
2142 inline __isl_keep isl_qpolynomial
*keep() const;
2143 inline __isl_give isl_qpolynomial
*take();
2144 inline explicit operator bool() const;
2145 inline isl::ctx
get_ctx() const;
2146 inline void dump() const;
2148 inline isl::qpolynomial
add(isl::qpolynomial qp2
) const;
2149 inline isl::qpolynomial
add_dims(isl::dim type
, unsigned int n
) const;
2150 inline isl::qpolynomial
align_params(isl::space model
) const;
2151 inline isl::stat
as_polynomial_on_domain(const isl::basic_set
&bset
, const std::function
<isl::stat(isl::basic_set
, isl::qpolynomial
)> &fn
) const;
2152 inline unsigned int dim(isl::dim type
) const;
2153 inline isl::qpolynomial
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2154 inline isl::val
eval(isl::point pnt
) const;
2155 inline isl::stat
foreach_term(const std::function
<isl::stat(isl::term
)> &fn
) const;
2156 static inline isl::qpolynomial
from_aff(isl::aff aff
);
2157 static inline isl::qpolynomial
from_constraint(isl::constraint c
, isl::dim type
, unsigned int pos
);
2158 static inline isl::qpolynomial
from_term(isl::term term
);
2159 inline isl::val
get_constant_val() const;
2160 inline isl::space
get_domain_space() const;
2161 inline isl::space
get_space() const;
2162 inline isl::qpolynomial
gist(isl::set context
) const;
2163 inline isl::qpolynomial
gist_params(isl::set context
) const;
2164 inline isl::qpolynomial
homogenize() const;
2165 static inline isl::qpolynomial
infty_on_domain(isl::space dim
);
2166 inline isl::qpolynomial
insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2167 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2168 inline isl::boolean
is_infty() const;
2169 inline isl::boolean
is_nan() const;
2170 inline isl::boolean
is_neginfty() const;
2171 inline isl::boolean
is_zero() const;
2172 inline isl::qpolynomial
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
2173 inline isl::qpolynomial
mul(isl::qpolynomial qp2
) const;
2174 static inline isl::qpolynomial
nan_on_domain(isl::space dim
);
2175 inline isl::qpolynomial
neg() const;
2176 static inline isl::qpolynomial
neginfty_on_domain(isl::space dim
);
2177 static inline isl::qpolynomial
one_on_domain(isl::space dim
);
2178 inline isl::boolean
plain_is_equal(const isl::qpolynomial
&qp2
) const;
2179 inline isl::qpolynomial
pow(unsigned int power
) const;
2180 inline isl::qpolynomial
project_domain_on_params() const;
2181 inline isl::qpolynomial
scale_down_val(isl::val v
) const;
2182 inline isl::qpolynomial
scale_val(isl::val v
) const;
2183 inline int sgn() const;
2184 inline isl::qpolynomial
sub(isl::qpolynomial qp2
) const;
2185 static inline isl::qpolynomial
val_on_domain(isl::space space
, isl::val val
);
2186 static inline isl::qpolynomial
var_on_domain(isl::space dim
, isl::dim type
, unsigned int pos
);
2187 static inline isl::qpolynomial
zero_on_domain(isl::space dim
);
2190 // declarations for isl::schedule
2191 inline isl::schedule
manage(__isl_take isl_schedule
*ptr
);
2192 inline isl::schedule
manage_copy(__isl_keep isl_schedule
*ptr
);
2193 inline isl::schedule
give(__isl_take isl_schedule
*ptr
);
2197 friend inline isl::schedule
manage(__isl_take isl_schedule
*ptr
);
2198 friend inline isl::schedule
manage_copy(__isl_keep isl_schedule
*ptr
);
2200 isl_schedule
*ptr
= nullptr;
2202 inline explicit schedule(__isl_take isl_schedule
*ptr
);
2205 inline /* implicit */ schedule();
2206 inline /* implicit */ schedule(const isl::schedule
&obj
);
2207 inline /* implicit */ schedule(std::nullptr_t
);
2208 inline explicit schedule(isl::ctx ctx
, const std::string
&str
);
2209 inline isl::schedule
&operator=(isl::schedule obj
);
2211 inline __isl_give isl_schedule
*copy() const &;
2212 inline __isl_give isl_schedule
*copy() && = delete;
2213 inline __isl_keep isl_schedule
*get() const;
2214 inline __isl_give isl_schedule
*release();
2215 inline bool is_null() const;
2216 inline __isl_keep isl_schedule
*keep() const;
2217 inline __isl_give isl_schedule
*take();
2218 inline explicit operator bool() const;
2219 inline isl::ctx
get_ctx() const;
2220 inline std::string
to_str() const;
2221 inline void dump() const;
2223 inline isl::schedule
align_params(isl::space space
) const;
2224 static inline isl::schedule
empty(isl::space space
);
2225 static inline isl::schedule
from_domain(isl::union_set domain
);
2226 inline isl::union_set
get_domain() const;
2227 inline isl::union_map
get_map() const;
2228 inline isl::schedule_node
get_root() const;
2229 inline isl::schedule
gist_domain_params(isl::set context
) const;
2230 inline isl::schedule
insert_context(isl::set context
) const;
2231 inline isl::schedule
insert_guard(isl::set guard
) const;
2232 inline isl::schedule
insert_partial_schedule(isl::multi_union_pw_aff partial
) const;
2233 inline isl::schedule
intersect_domain(isl::union_set domain
) const;
2234 inline isl::boolean
plain_is_equal(const isl::schedule
&schedule2
) const;
2235 inline isl::schedule
pullback(isl::union_pw_multi_aff upma
) const;
2236 inline isl::schedule
reset_user() const;
2237 inline isl::schedule
sequence(isl::schedule schedule2
) const;
2238 inline isl::schedule
set(isl::schedule schedule2
) const;
2241 // declarations for isl::schedule_constraints
2242 inline isl::schedule_constraints
manage(__isl_take isl_schedule_constraints
*ptr
);
2243 inline isl::schedule_constraints
manage_copy(__isl_keep isl_schedule_constraints
*ptr
);
2244 inline isl::schedule_constraints
give(__isl_take isl_schedule_constraints
*ptr
);
2247 class schedule_constraints
{
2248 friend inline isl::schedule_constraints
manage(__isl_take isl_schedule_constraints
*ptr
);
2249 friend inline isl::schedule_constraints
manage_copy(__isl_keep isl_schedule_constraints
*ptr
);
2251 isl_schedule_constraints
*ptr
= nullptr;
2253 inline explicit schedule_constraints(__isl_take isl_schedule_constraints
*ptr
);
2256 inline /* implicit */ schedule_constraints();
2257 inline /* implicit */ schedule_constraints(const isl::schedule_constraints
&obj
);
2258 inline /* implicit */ schedule_constraints(std::nullptr_t
);
2259 inline explicit schedule_constraints(isl::ctx ctx
, const std::string
&str
);
2260 inline isl::schedule_constraints
&operator=(isl::schedule_constraints obj
);
2261 inline ~schedule_constraints();
2262 inline __isl_give isl_schedule_constraints
*copy() const &;
2263 inline __isl_give isl_schedule_constraints
*copy() && = delete;
2264 inline __isl_keep isl_schedule_constraints
*get() const;
2265 inline __isl_give isl_schedule_constraints
*release();
2266 inline bool is_null() const;
2267 inline __isl_keep isl_schedule_constraints
*keep() const;
2268 inline __isl_give isl_schedule_constraints
*take();
2269 inline explicit operator bool() const;
2270 inline isl::ctx
get_ctx() const;
2271 inline std::string
to_str() const;
2272 inline void dump() const;
2274 inline isl::schedule_constraints
apply(isl::union_map umap
) const;
2275 inline isl::schedule
compute_schedule() const;
2276 inline isl::union_map
get_coincidence() const;
2277 inline isl::union_map
get_conditional_validity() const;
2278 inline isl::union_map
get_conditional_validity_condition() const;
2279 inline isl::set
get_context() const;
2280 inline isl::union_set
get_domain() const;
2281 inline isl::union_map
get_proximity() const;
2282 inline isl::union_map
get_validity() const;
2283 static inline isl::schedule_constraints
on_domain(isl::union_set domain
);
2284 inline isl::schedule_constraints
set_coincidence(isl::union_map coincidence
) const;
2285 inline isl::schedule_constraints
set_conditional_validity(isl::union_map condition
, isl::union_map validity
) const;
2286 inline isl::schedule_constraints
set_context(isl::set context
) const;
2287 inline isl::schedule_constraints
set_proximity(isl::union_map proximity
) const;
2288 inline isl::schedule_constraints
set_validity(isl::union_map validity
) const;
2291 // declarations for isl::schedule_node
2292 inline isl::schedule_node
manage(__isl_take isl_schedule_node
*ptr
);
2293 inline isl::schedule_node
manage_copy(__isl_keep isl_schedule_node
*ptr
);
2294 inline isl::schedule_node
give(__isl_take isl_schedule_node
*ptr
);
2297 class schedule_node
{
2298 friend inline isl::schedule_node
manage(__isl_take isl_schedule_node
*ptr
);
2299 friend inline isl::schedule_node
manage_copy(__isl_keep isl_schedule_node
*ptr
);
2301 isl_schedule_node
*ptr
= nullptr;
2303 inline explicit schedule_node(__isl_take isl_schedule_node
*ptr
);
2306 inline /* implicit */ schedule_node();
2307 inline /* implicit */ schedule_node(const isl::schedule_node
&obj
);
2308 inline /* implicit */ schedule_node(std::nullptr_t
);
2309 inline isl::schedule_node
&operator=(isl::schedule_node obj
);
2310 inline ~schedule_node();
2311 inline __isl_give isl_schedule_node
*copy() const &;
2312 inline __isl_give isl_schedule_node
*copy() && = delete;
2313 inline __isl_keep isl_schedule_node
*get() const;
2314 inline __isl_give isl_schedule_node
*release();
2315 inline bool is_null() const;
2316 inline __isl_keep isl_schedule_node
*keep() const;
2317 inline __isl_give isl_schedule_node
*take();
2318 inline explicit operator bool() const;
2319 inline isl::ctx
get_ctx() const;
2320 inline std::string
to_str() const;
2321 inline void dump() const;
2323 inline isl::schedule_node
align_params(isl::space space
) const;
2324 inline isl::schedule_node
ancestor(int generation
) const;
2325 inline isl::boolean
band_member_get_coincident(int pos
) const;
2326 inline isl::schedule_node
band_member_set_coincident(int pos
, int coincident
) const;
2327 inline isl::schedule_node
band_set_ast_build_options(isl::union_set options
) const;
2328 inline isl::schedule_node
child(int pos
) const;
2329 inline isl::set
context_get_context() const;
2330 inline isl::schedule_node
cut() const;
2331 inline isl::union_set
domain_get_domain() const;
2332 inline isl::union_pw_multi_aff
expansion_get_contraction() const;
2333 inline isl::union_map
expansion_get_expansion() const;
2334 inline isl::union_map
extension_get_extension() const;
2335 inline isl::union_set
filter_get_filter() const;
2336 inline isl::schedule_node
first_child() const;
2337 inline isl::stat
foreach_ancestor_top_down(const std::function
<isl::stat(isl::schedule_node
)> &fn
) const;
2338 static inline isl::schedule_node
from_domain(isl::union_set domain
);
2339 static inline isl::schedule_node
from_extension(isl::union_map extension
);
2340 inline int get_ancestor_child_position(const isl::schedule_node
&ancestor
) const;
2341 inline isl::schedule_node
get_child(int pos
) const;
2342 inline int get_child_position() const;
2343 inline isl::union_set
get_domain() const;
2344 inline isl::multi_union_pw_aff
get_prefix_schedule_multi_union_pw_aff() const;
2345 inline isl::union_map
get_prefix_schedule_relation() const;
2346 inline isl::union_map
get_prefix_schedule_union_map() const;
2347 inline isl::union_pw_multi_aff
get_prefix_schedule_union_pw_multi_aff() const;
2348 inline isl::schedule
get_schedule() const;
2349 inline int get_schedule_depth() const;
2350 inline isl::schedule_node
get_shared_ancestor(const isl::schedule_node
&node2
) const;
2351 inline isl::union_pw_multi_aff
get_subtree_contraction() const;
2352 inline isl::union_map
get_subtree_expansion() const;
2353 inline isl::union_map
get_subtree_schedule_union_map() const;
2354 inline int get_tree_depth() const;
2355 inline isl::union_set
get_universe_domain() const;
2356 inline isl::schedule_node
graft_after(isl::schedule_node graft
) const;
2357 inline isl::schedule_node
graft_before(isl::schedule_node graft
) const;
2358 inline isl::schedule_node
group(isl::id group_id
) const;
2359 inline isl::set
guard_get_guard() const;
2360 inline isl::boolean
has_children() const;
2361 inline isl::boolean
has_next_sibling() const;
2362 inline isl::boolean
has_parent() const;
2363 inline isl::boolean
has_previous_sibling() const;
2364 inline isl::schedule_node
insert_context(isl::set context
) const;
2365 inline isl::schedule_node
insert_filter(isl::union_set filter
) const;
2366 inline isl::schedule_node
insert_guard(isl::set context
) const;
2367 inline isl::schedule_node
insert_mark(isl::id mark
) const;
2368 inline isl::schedule_node
insert_partial_schedule(isl::multi_union_pw_aff schedule
) const;
2369 inline isl::schedule_node
insert_sequence(isl::union_set_list filters
) const;
2370 inline isl::schedule_node
insert_set(isl::union_set_list filters
) const;
2371 inline isl::boolean
is_equal(const isl::schedule_node
&node2
) const;
2372 inline isl::boolean
is_subtree_anchored() const;
2373 inline isl::id
mark_get_id() const;
2374 inline isl::schedule_node
next_sibling() const;
2375 inline isl::schedule_node
order_after(isl::union_set filter
) const;
2376 inline isl::schedule_node
order_before(isl::union_set filter
) const;
2377 inline isl::schedule_node
parent() const;
2378 inline isl::schedule_node
previous_sibling() const;
2379 inline isl::schedule_node
reset_user() const;
2380 inline isl::schedule_node
root() const;
2381 inline isl::schedule_node
sequence_splice_child(int pos
) const;
2384 // declarations for isl::set
2385 inline isl::set
manage(__isl_take isl_set
*ptr
);
2386 inline isl::set
manage_copy(__isl_keep isl_set
*ptr
);
2387 inline isl::set
give(__isl_take isl_set
*ptr
);
2391 friend inline isl::set
manage(__isl_take isl_set
*ptr
);
2392 friend inline isl::set
manage_copy(__isl_keep isl_set
*ptr
);
2394 isl_set
*ptr
= nullptr;
2396 inline explicit set(__isl_take isl_set
*ptr
);
2399 inline /* implicit */ set();
2400 inline /* implicit */ set(const isl::set
&obj
);
2401 inline /* implicit */ set(std::nullptr_t
);
2402 inline explicit set(isl::ctx ctx
, const std::string
&str
);
2403 inline /* implicit */ set(isl::basic_set bset
);
2404 inline /* implicit */ set(isl::point pnt
);
2405 inline explicit set(isl::union_set uset
);
2406 inline isl::set
&operator=(isl::set obj
);
2408 inline __isl_give isl_set
*copy() const &;
2409 inline __isl_give isl_set
*copy() && = delete;
2410 inline __isl_keep isl_set
*get() const;
2411 inline __isl_give isl_set
*release();
2412 inline bool is_null() const;
2413 inline __isl_keep isl_set
*keep() const;
2414 inline __isl_give isl_set
*take();
2415 inline explicit operator bool() const;
2416 inline isl::ctx
get_ctx() const;
2417 inline std::string
to_str() const;
2418 inline void dump() const;
2420 inline isl::set
add_constraint(isl::constraint constraint
) const;
2421 inline isl::set
add_dims(isl::dim type
, unsigned int n
) const;
2422 inline isl::basic_set
affine_hull() const;
2423 inline isl::set
align_params(isl::space model
) const;
2424 inline isl::set
apply(isl::map map
) const;
2425 inline isl::basic_set
bounded_simple_hull() const;
2426 static inline isl::set
box_from_points(isl::point pnt1
, isl::point pnt2
);
2427 inline isl::set
coalesce() const;
2428 inline isl::basic_set
coefficients() const;
2429 inline isl::set
complement() const;
2430 inline isl::basic_set
convex_hull() const;
2431 inline isl::val
count_val() const;
2432 inline isl::set
detect_equalities() const;
2433 inline unsigned int dim(isl::dim type
) const;
2434 inline isl::boolean
dim_has_any_lower_bound(isl::dim type
, unsigned int pos
) const;
2435 inline isl::boolean
dim_has_any_upper_bound(isl::dim type
, unsigned int pos
) const;
2436 inline isl::boolean
dim_has_lower_bound(isl::dim type
, unsigned int pos
) const;
2437 inline isl::boolean
dim_has_upper_bound(isl::dim type
, unsigned int pos
) const;
2438 inline isl::boolean
dim_is_bounded(isl::dim type
, unsigned int pos
) const;
2439 inline isl::pw_aff
dim_max(int pos
) const;
2440 inline isl::pw_aff
dim_min(int pos
) const;
2441 inline isl::set
drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2442 inline isl::set
drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2443 inline isl::set
eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const;
2444 static inline isl::set
empty(isl::space space
);
2445 inline isl::set
equate(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const;
2446 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
2447 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
2448 inline isl::set
fix_si(isl::dim type
, unsigned int pos
, int value
) const;
2449 inline isl::set
fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const;
2450 inline isl::set
flat_product(isl::set set2
) const;
2451 inline isl::set
flatten() const;
2452 inline isl::map
flatten_map() const;
2453 inline int follows_at(const isl::set
&set2
, int pos
) const;
2454 inline isl::stat
foreach_basic_set(const std::function
<isl::stat(isl::basic_set
)> &fn
) const;
2455 inline isl::stat
foreach_point(const std::function
<isl::stat(isl::point
)> &fn
) const;
2456 static inline isl::set
from_multi_pw_aff(isl::multi_pw_aff mpa
);
2457 inline isl::set
from_params() const;
2458 static inline isl::set
from_pw_aff(isl::pw_aff pwaff
);
2459 static inline isl::set
from_pw_multi_aff(isl::pw_multi_aff pma
);
2460 inline isl::basic_set_list
get_basic_set_list() const;
2461 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
2462 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
2463 inline isl::space
get_space() const;
2464 inline isl::id
get_tuple_id() const;
2465 inline std::string
get_tuple_name() const;
2466 inline isl::set
gist(isl::set context
) const;
2467 inline isl::set
gist_basic_set(isl::basic_set context
) const;
2468 inline isl::set
gist_params(isl::set context
) const;
2469 inline isl::boolean
has_dim_id(isl::dim type
, unsigned int pos
) const;
2470 inline isl::boolean
has_dim_name(isl::dim type
, unsigned int pos
) const;
2471 inline isl::boolean
has_equal_space(const isl::set
&set2
) const;
2472 inline isl::boolean
has_tuple_id() const;
2473 inline isl::boolean
has_tuple_name() const;
2474 inline isl::map
identity() const;
2475 inline isl::pw_aff
indicator_function() const;
2476 inline isl::set
insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const;
2477 inline isl::set
intersect(isl::set set2
) const;
2478 inline isl::set
intersect_params(isl::set params
) const;
2479 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2480 inline isl::boolean
is_bounded() const;
2481 inline isl::boolean
is_box() const;
2482 inline isl::boolean
is_disjoint(const isl::set
&set2
) const;
2483 inline isl::boolean
is_empty() const;
2484 inline isl::boolean
is_equal(const isl::set
&set2
) const;
2485 inline isl::boolean
is_params() const;
2486 inline isl::boolean
is_singleton() const;
2487 inline isl::boolean
is_strict_subset(const isl::set
&set2
) const;
2488 inline isl::boolean
is_subset(const isl::set
&set2
) const;
2489 inline isl::boolean
is_wrapping() const;
2490 inline isl::map
lex_ge_set(isl::set set2
) const;
2491 inline isl::map
lex_gt_set(isl::set set2
) const;
2492 inline isl::map
lex_le_set(isl::set set2
) const;
2493 inline isl::map
lex_lt_set(isl::set set2
) const;
2494 inline isl::set
lexmax() const;
2495 inline isl::pw_multi_aff
lexmax_pw_multi_aff() const;
2496 inline isl::set
lexmin() const;
2497 inline isl::pw_multi_aff
lexmin_pw_multi_aff() const;
2498 inline isl::set
lower_bound_si(isl::dim type
, unsigned int pos
, int value
) const;
2499 inline isl::set
lower_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const;
2500 inline isl::val
max_val(const isl::aff
&obj
) const;
2501 inline isl::val
min_val(const isl::aff
&obj
) const;
2502 inline isl::set
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
2503 static inline isl::set
nat_universe(isl::space dim
);
2504 inline isl::set
neg() const;
2505 inline isl::set
params() const;
2506 inline int plain_cmp(const isl::set
&set2
) const;
2507 inline isl::val
plain_get_val_if_fixed(isl::dim type
, unsigned int pos
) const;
2508 inline isl::boolean
plain_is_disjoint(const isl::set
&set2
) const;
2509 inline isl::boolean
plain_is_empty() const;
2510 inline isl::boolean
plain_is_equal(const isl::set
&set2
) const;
2511 inline isl::boolean
plain_is_universe() const;
2512 inline isl::basic_set
plain_unshifted_simple_hull() const;
2513 inline isl::basic_set
polyhedral_hull() const;
2514 inline isl::set
preimage_multi_aff(isl::multi_aff ma
) const;
2515 inline isl::set
preimage_multi_pw_aff(isl::multi_pw_aff mpa
) const;
2516 inline isl::set
preimage_pw_multi_aff(isl::pw_multi_aff pma
) const;
2517 inline isl::set
product(isl::set set2
) const;
2518 inline isl::map
project_onto_map(isl::dim type
, unsigned int first
, unsigned int n
) const;
2519 inline isl::set
project_out(isl::dim type
, unsigned int first
, unsigned int n
) const;
2520 inline isl::set
remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2521 inline isl::set
remove_divs() const;
2522 inline isl::set
remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2523 inline isl::set
remove_redundancies() const;
2524 inline isl::set
remove_unknown_divs() const;
2525 inline isl::set
reset_space(isl::space dim
) const;
2526 inline isl::set
reset_tuple_id() const;
2527 inline isl::set
reset_user() const;
2528 inline isl::basic_set
sample() const;
2529 inline isl::point
sample_point() const;
2530 inline isl::set
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
2531 inline isl::set
set_tuple_id(isl::id id
) const;
2532 inline isl::set
set_tuple_name(const std::string
&s
) const;
2533 inline isl::basic_set
simple_hull() const;
2534 inline int size() const;
2535 inline isl::basic_set
solutions() const;
2536 inline isl::set
split_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2537 inline isl::set
subtract(isl::set set2
) const;
2538 inline isl::set
sum(isl::set set2
) const;
2539 inline isl::set
unite(isl::set set2
) const;
2540 static inline isl::set
universe(isl::space space
);
2541 inline isl::basic_set
unshifted_simple_hull() const;
2542 inline isl::basic_set
unshifted_simple_hull_from_set_list(isl::set_list list
) const;
2543 inline isl::map
unwrap() const;
2544 inline isl::set
upper_bound_si(isl::dim type
, unsigned int pos
, int value
) const;
2545 inline isl::set
upper_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const;
2546 inline isl::map
wrapped_domain_map() const;
2549 // declarations for isl::set_list
2550 inline isl::set_list
manage(__isl_take isl_set_list
*ptr
);
2551 inline isl::set_list
manage_copy(__isl_keep isl_set_list
*ptr
);
2552 inline isl::set_list
give(__isl_take isl_set_list
*ptr
);
2556 friend inline isl::set_list
manage(__isl_take isl_set_list
*ptr
);
2557 friend inline isl::set_list
manage_copy(__isl_keep isl_set_list
*ptr
);
2559 isl_set_list
*ptr
= nullptr;
2561 inline explicit set_list(__isl_take isl_set_list
*ptr
);
2564 inline /* implicit */ set_list();
2565 inline /* implicit */ set_list(const isl::set_list
&obj
);
2566 inline /* implicit */ set_list(std::nullptr_t
);
2567 inline isl::set_list
&operator=(isl::set_list obj
);
2569 inline __isl_give isl_set_list
*copy() const &;
2570 inline __isl_give isl_set_list
*copy() && = delete;
2571 inline __isl_keep isl_set_list
*get() const;
2572 inline __isl_give isl_set_list
*release();
2573 inline bool is_null() const;
2574 inline __isl_keep isl_set_list
*keep() const;
2575 inline __isl_give isl_set_list
*take();
2576 inline explicit operator bool() const;
2577 inline isl::ctx
get_ctx() const;
2578 inline void dump() const;
2582 // declarations for isl::space
2583 inline isl::space
manage(__isl_take isl_space
*ptr
);
2584 inline isl::space
manage_copy(__isl_keep isl_space
*ptr
);
2585 inline isl::space
give(__isl_take isl_space
*ptr
);
2589 friend inline isl::space
manage(__isl_take isl_space
*ptr
);
2590 friend inline isl::space
manage_copy(__isl_keep isl_space
*ptr
);
2592 isl_space
*ptr
= nullptr;
2594 inline explicit space(__isl_take isl_space
*ptr
);
2597 inline /* implicit */ space();
2598 inline /* implicit */ space(const isl::space
&obj
);
2599 inline /* implicit */ space(std::nullptr_t
);
2600 inline explicit space(isl::ctx ctx
, unsigned int nparam
, unsigned int n_in
, unsigned int n_out
);
2601 inline explicit space(isl::ctx ctx
, unsigned int nparam
, unsigned int dim
);
2602 inline isl::space
&operator=(isl::space obj
);
2604 inline __isl_give isl_space
*copy() const &;
2605 inline __isl_give isl_space
*copy() && = delete;
2606 inline __isl_keep isl_space
*get() const;
2607 inline __isl_give isl_space
*release();
2608 inline bool is_null() const;
2609 inline __isl_keep isl_space
*keep() const;
2610 inline __isl_give isl_space
*take();
2611 inline explicit operator bool() const;
2612 inline isl::ctx
get_ctx() const;
2613 inline std::string
to_str() const;
2614 inline void dump() const;
2616 inline isl::space
add_dims(isl::dim type
, unsigned int n
) const;
2617 inline isl::space
align_params(isl::space dim2
) const;
2618 inline isl::boolean
can_curry() const;
2619 inline isl::boolean
can_range_curry() const;
2620 inline isl::boolean
can_uncurry() const;
2621 inline isl::boolean
can_zip() const;
2622 inline isl::space
curry() const;
2623 inline unsigned int dim(isl::dim type
) const;
2624 inline isl::space
domain() const;
2625 inline isl::space
domain_factor_domain() const;
2626 inline isl::space
domain_factor_range() const;
2627 inline isl::boolean
domain_is_wrapping() const;
2628 inline isl::space
domain_map() const;
2629 inline isl::space
domain_product(isl::space right
) const;
2630 inline isl::space
drop_dims(isl::dim type
, unsigned int first
, unsigned int num
) const;
2631 inline isl::space
factor_domain() const;
2632 inline isl::space
factor_range() const;
2633 inline int find_dim_by_id(isl::dim type
, const isl::id
&id
) const;
2634 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
2635 inline isl::space
from_domain() const;
2636 inline isl::space
from_range() const;
2637 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
2638 inline std::string
get_dim_name(isl::dim type
, unsigned int pos
) const;
2639 inline isl::id
get_tuple_id(isl::dim type
) const;
2640 inline std::string
get_tuple_name(isl::dim type
) const;
2641 inline isl::boolean
has_dim_id(isl::dim type
, unsigned int pos
) const;
2642 inline isl::boolean
has_dim_name(isl::dim type
, unsigned int pos
) const;
2643 inline isl::boolean
has_equal_params(const isl::space
&space2
) const;
2644 inline isl::boolean
has_equal_tuples(const isl::space
&space2
) const;
2645 inline isl::boolean
has_tuple_id(isl::dim type
) const;
2646 inline isl::boolean
has_tuple_name(isl::dim type
) const;
2647 inline isl::space
insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const;
2648 inline isl::boolean
is_domain(const isl::space
&space2
) const;
2649 inline isl::boolean
is_equal(const isl::space
&space2
) const;
2650 inline isl::boolean
is_map() const;
2651 inline isl::boolean
is_params() const;
2652 inline isl::boolean
is_product() const;
2653 inline isl::boolean
is_range(const isl::space
&space2
) const;
2654 inline isl::boolean
is_set() const;
2655 inline isl::boolean
is_wrapping() const;
2656 inline isl::space
join(isl::space right
) const;
2657 inline isl::space
map_from_domain_and_range(isl::space range
) const;
2658 inline isl::space
map_from_set() const;
2659 inline isl::space
move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const;
2660 inline isl::space
params() const;
2661 static inline isl::space
params_alloc(isl::ctx ctx
, unsigned int nparam
);
2662 inline isl::space
product(isl::space right
) const;
2663 inline isl::space
range() const;
2664 inline isl::space
range_curry() const;
2665 inline isl::space
range_factor_domain() const;
2666 inline isl::space
range_factor_range() const;
2667 inline isl::boolean
range_is_wrapping() const;
2668 inline isl::space
range_map() const;
2669 inline isl::space
range_product(isl::space right
) const;
2670 inline isl::space
reset_tuple_id(isl::dim type
) const;
2671 inline isl::space
reset_user() const;
2672 inline isl::space
reverse() const;
2673 inline isl::space
set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const;
2674 inline isl::space
set_from_params() const;
2675 inline isl::space
set_tuple_id(isl::dim type
, isl::id id
) const;
2676 inline isl::space
set_tuple_name(isl::dim type
, const std::string
&s
) const;
2677 inline isl::boolean
tuple_is_equal(isl::dim type1
, const isl::space
&space2
, isl::dim type2
) const;
2678 inline isl::space
uncurry() const;
2679 inline isl::space
unwrap() const;
2680 inline isl::space
wrap() const;
2681 inline isl::space
zip() const;
2684 // declarations for isl::term
2685 inline isl::term
manage(__isl_take isl_term
*ptr
);
2686 inline isl::term
manage_copy(__isl_keep isl_term
*ptr
);
2687 inline isl::term
give(__isl_take isl_term
*ptr
);
2691 friend inline isl::term
manage(__isl_take isl_term
*ptr
);
2692 friend inline isl::term
manage_copy(__isl_keep isl_term
*ptr
);
2694 isl_term
*ptr
= nullptr;
2696 inline explicit term(__isl_take isl_term
*ptr
);
2699 inline /* implicit */ term();
2700 inline /* implicit */ term(const isl::term
&obj
);
2701 inline /* implicit */ term(std::nullptr_t
);
2702 inline isl::term
&operator=(isl::term obj
);
2704 inline __isl_give isl_term
*copy() const &;
2705 inline __isl_give isl_term
*copy() && = delete;
2706 inline __isl_keep isl_term
*get() const;
2707 inline __isl_give isl_term
*release();
2708 inline bool is_null() const;
2709 inline __isl_keep isl_term
*keep() const;
2710 inline __isl_give isl_term
*take();
2711 inline explicit operator bool() const;
2712 inline isl::ctx
get_ctx() const;
2714 inline unsigned int dim(isl::dim type
) const;
2715 inline isl::val
get_coefficient_val() const;
2716 inline isl::aff
get_div(unsigned int pos
) const;
2717 inline int get_exp(isl::dim type
, unsigned int pos
) const;
2720 // declarations for isl::union_access_info
2721 inline isl::union_access_info
manage(__isl_take isl_union_access_info
*ptr
);
2722 inline isl::union_access_info
manage_copy(__isl_keep isl_union_access_info
*ptr
);
2723 inline isl::union_access_info
give(__isl_take isl_union_access_info
*ptr
);
2726 class union_access_info
{
2727 friend inline isl::union_access_info
manage(__isl_take isl_union_access_info
*ptr
);
2728 friend inline isl::union_access_info
manage_copy(__isl_keep isl_union_access_info
*ptr
);
2730 isl_union_access_info
*ptr
= nullptr;
2732 inline explicit union_access_info(__isl_take isl_union_access_info
*ptr
);
2735 inline /* implicit */ union_access_info();
2736 inline /* implicit */ union_access_info(const isl::union_access_info
&obj
);
2737 inline /* implicit */ union_access_info(std::nullptr_t
);
2738 inline explicit union_access_info(isl::union_map sink
);
2739 inline isl::union_access_info
&operator=(isl::union_access_info obj
);
2740 inline ~union_access_info();
2741 inline __isl_give isl_union_access_info
*copy() const &;
2742 inline __isl_give isl_union_access_info
*copy() && = delete;
2743 inline __isl_keep isl_union_access_info
*get() const;
2744 inline __isl_give isl_union_access_info
*release();
2745 inline bool is_null() const;
2746 inline __isl_keep isl_union_access_info
*keep() const;
2747 inline __isl_give isl_union_access_info
*take();
2748 inline explicit operator bool() const;
2749 inline isl::ctx
get_ctx() const;
2750 inline std::string
to_str() const;
2752 inline isl::union_flow
compute_flow() const;
2753 inline isl::union_access_info
set_kill(isl::union_map kill
) const;
2754 inline isl::union_access_info
set_may_source(isl::union_map may_source
) const;
2755 inline isl::union_access_info
set_must_source(isl::union_map must_source
) const;
2756 inline isl::union_access_info
set_schedule(isl::schedule schedule
) const;
2757 inline isl::union_access_info
set_schedule_map(isl::union_map schedule_map
) const;
2760 // declarations for isl::union_flow
2761 inline isl::union_flow
manage(__isl_take isl_union_flow
*ptr
);
2762 inline isl::union_flow
manage_copy(__isl_keep isl_union_flow
*ptr
);
2763 inline isl::union_flow
give(__isl_take isl_union_flow
*ptr
);
2767 friend inline isl::union_flow
manage(__isl_take isl_union_flow
*ptr
);
2768 friend inline isl::union_flow
manage_copy(__isl_keep isl_union_flow
*ptr
);
2770 isl_union_flow
*ptr
= nullptr;
2772 inline explicit union_flow(__isl_take isl_union_flow
*ptr
);
2775 inline /* implicit */ union_flow();
2776 inline /* implicit */ union_flow(const isl::union_flow
&obj
);
2777 inline /* implicit */ union_flow(std::nullptr_t
);
2778 inline isl::union_flow
&operator=(isl::union_flow obj
);
2779 inline ~union_flow();
2780 inline __isl_give isl_union_flow
*copy() const &;
2781 inline __isl_give isl_union_flow
*copy() && = delete;
2782 inline __isl_keep isl_union_flow
*get() const;
2783 inline __isl_give isl_union_flow
*release();
2784 inline bool is_null() const;
2785 inline __isl_keep isl_union_flow
*keep() const;
2786 inline __isl_give isl_union_flow
*take();
2787 inline explicit operator bool() const;
2788 inline isl::ctx
get_ctx() const;
2789 inline std::string
to_str() const;
2791 inline isl::union_map
get_full_may_dependence() const;
2792 inline isl::union_map
get_full_must_dependence() const;
2793 inline isl::union_map
get_may_dependence() const;
2794 inline isl::union_map
get_may_no_source() const;
2795 inline isl::union_map
get_must_dependence() const;
2796 inline isl::union_map
get_must_no_source() const;
2799 // declarations for isl::union_map
2800 inline isl::union_map
manage(__isl_take isl_union_map
*ptr
);
2801 inline isl::union_map
manage_copy(__isl_keep isl_union_map
*ptr
);
2802 inline isl::union_map
give(__isl_take isl_union_map
*ptr
);
2806 friend inline isl::union_map
manage(__isl_take isl_union_map
*ptr
);
2807 friend inline isl::union_map
manage_copy(__isl_keep isl_union_map
*ptr
);
2809 isl_union_map
*ptr
= nullptr;
2811 inline explicit union_map(__isl_take isl_union_map
*ptr
);
2814 inline /* implicit */ union_map();
2815 inline /* implicit */ union_map(const isl::union_map
&obj
);
2816 inline /* implicit */ union_map(std::nullptr_t
);
2817 inline explicit union_map(isl::ctx ctx
, const std::string
&str
);
2818 inline explicit union_map(isl::union_pw_aff upa
);
2819 inline /* implicit */ union_map(isl::basic_map bmap
);
2820 inline /* implicit */ union_map(isl::map map
);
2821 inline isl::union_map
&operator=(isl::union_map obj
);
2822 inline ~union_map();
2823 inline __isl_give isl_union_map
*copy() const &;
2824 inline __isl_give isl_union_map
*copy() && = delete;
2825 inline __isl_keep isl_union_map
*get() const;
2826 inline __isl_give isl_union_map
*release();
2827 inline bool is_null() const;
2828 inline __isl_keep isl_union_map
*keep() const;
2829 inline __isl_give isl_union_map
*take();
2830 inline explicit operator bool() const;
2831 inline isl::ctx
get_ctx() const;
2832 inline std::string
to_str() const;
2833 inline void dump() const;
2835 inline isl::union_map
add_map(isl::map map
) const;
2836 inline isl::union_map
affine_hull() const;
2837 inline isl::union_map
align_params(isl::space model
) const;
2838 inline isl::union_map
apply_domain(isl::union_map umap2
) const;
2839 inline isl::union_map
apply_range(isl::union_map umap2
) const;
2840 inline isl::union_map
coalesce() const;
2841 inline isl::boolean
contains(const isl::space
&space
) const;
2842 inline isl::union_map
curry() const;
2843 inline isl::union_set
deltas() const;
2844 inline isl::union_map
deltas_map() const;
2845 inline isl::union_map
detect_equalities() const;
2846 inline unsigned int dim(isl::dim type
) const;
2847 inline isl::union_set
domain() const;
2848 inline isl::union_map
domain_factor_domain() const;
2849 inline isl::union_map
domain_factor_range() const;
2850 inline isl::union_map
domain_map() const;
2851 inline isl::union_pw_multi_aff
domain_map_union_pw_multi_aff() const;
2852 inline isl::union_map
domain_product(isl::union_map umap2
) const;
2853 static inline isl::union_map
empty(isl::space space
);
2854 inline isl::union_map
eq_at(isl::multi_union_pw_aff mupa
) const;
2855 inline isl::map
extract_map(isl::space dim
) const;
2856 inline isl::union_map
factor_domain() const;
2857 inline isl::union_map
factor_range() const;
2858 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
2859 inline isl::union_map
fixed_power(isl::val exp
) const;
2860 inline isl::union_map
flat_domain_product(isl::union_map umap2
) const;
2861 inline isl::union_map
flat_range_product(isl::union_map umap2
) const;
2862 inline isl::stat
foreach_map(const std::function
<isl::stat(isl::map
)> &fn
) const;
2863 static inline isl::union_map
from(isl::union_pw_multi_aff upma
);
2864 static inline isl::union_map
from(isl::multi_union_pw_aff mupa
);
2865 static inline isl::union_map
from_domain(isl::union_set uset
);
2866 static inline isl::union_map
from_domain_and_range(isl::union_set domain
, isl::union_set range
);
2867 static inline isl::union_map
from_range(isl::union_set uset
);
2868 inline isl::id
get_dim_id(isl::dim type
, unsigned int pos
) const;
2869 inline uint32_t get_hash() const;
2870 inline isl::space
get_space() const;
2871 inline isl::union_map
gist(isl::union_map context
) const;
2872 inline isl::union_map
gist_domain(isl::union_set uset
) const;
2873 inline isl::union_map
gist_params(isl::set set
) const;
2874 inline isl::union_map
gist_range(isl::union_set uset
) const;
2875 inline isl::union_map
intersect(isl::union_map umap2
) const;
2876 inline isl::union_map
intersect_domain(isl::union_set uset
) const;
2877 inline isl::union_map
intersect_params(isl::set set
) const;
2878 inline isl::union_map
intersect_range(isl::union_set uset
) const;
2879 inline isl::union_map
intersect_range_factor_range(isl::union_map factor
) const;
2880 inline isl::boolean
involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
2881 inline isl::boolean
is_bijective() const;
2882 inline isl::boolean
is_disjoint(const isl::union_map
&umap2
) const;
2883 inline isl::boolean
is_empty() const;
2884 inline isl::boolean
is_equal(const isl::union_map
&umap2
) const;
2885 inline isl::boolean
is_identity() const;
2886 inline isl::boolean
is_injective() const;
2887 inline isl::boolean
is_single_valued() const;
2888 inline isl::boolean
is_strict_subset(const isl::union_map
&umap2
) const;
2889 inline isl::boolean
is_subset(const isl::union_map
&umap2
) const;
2890 inline isl::union_map
lex_ge_union_map(isl::union_map umap2
) const;
2891 inline isl::union_map
lex_gt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa
) const;
2892 inline isl::union_map
lex_gt_union_map(isl::union_map umap2
) const;
2893 inline isl::union_map
lex_le_union_map(isl::union_map umap2
) const;
2894 inline isl::union_map
lex_lt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa
) const;
2895 inline isl::union_map
lex_lt_union_map(isl::union_map umap2
) const;
2896 inline isl::union_map
lexmax() const;
2897 inline isl::union_map
lexmin() const;
2898 inline isl::set
params() const;
2899 inline isl::boolean
plain_is_injective() const;
2900 inline isl::union_map
polyhedral_hull() const;
2901 inline isl::union_map
preimage_domain_multi_aff(isl::multi_aff ma
) const;
2902 inline isl::union_map
preimage_domain_multi_pw_aff(isl::multi_pw_aff mpa
) const;
2903 inline isl::union_map
preimage_domain_pw_multi_aff(isl::pw_multi_aff pma
) const;
2904 inline isl::union_map
preimage_domain_union_pw_multi_aff(isl::union_pw_multi_aff upma
) const;
2905 inline isl::union_map
preimage_range_multi_aff(isl::multi_aff ma
) const;
2906 inline isl::union_map
preimage_range_pw_multi_aff(isl::pw_multi_aff pma
) const;
2907 inline isl::union_map
preimage_range_union_pw_multi_aff(isl::union_pw_multi_aff upma
) const;
2908 inline isl::union_map
product(isl::union_map umap2
) const;
2909 inline isl::union_map
project_out(isl::dim type
, unsigned int first
, unsigned int n
) const;
2910 inline isl::union_set
range() const;
2911 inline isl::union_map
range_curry() const;
2912 inline isl::union_map
range_factor_domain() const;
2913 inline isl::union_map
range_factor_range() const;
2914 inline isl::union_map
range_map() const;
2915 inline isl::union_map
range_product(isl::union_map umap2
) const;
2916 inline isl::union_map
remove_divs() const;
2917 inline isl::union_map
remove_redundancies() const;
2918 inline isl::union_map
reset_user() const;
2919 inline isl::union_map
reverse() const;
2920 inline isl::basic_map
sample() const;
2921 inline isl::union_map
simple_hull() const;
2922 inline isl::union_map
subtract(isl::union_map umap2
) const;
2923 inline isl::union_map
subtract_domain(isl::union_set dom
) const;
2924 inline isl::union_map
subtract_range(isl::union_set dom
) const;
2925 inline isl::union_map
uncurry() const;
2926 inline isl::union_map
unite(isl::union_map umap2
) const;
2927 inline isl::union_map
universe() const;
2928 inline isl::union_set
wrap() const;
2929 inline isl::union_map
zip() const;
2932 // declarations for isl::union_map_list
2933 inline isl::union_map_list
manage(__isl_take isl_union_map_list
*ptr
);
2934 inline isl::union_map_list
manage_copy(__isl_keep isl_union_map_list
*ptr
);
2935 inline isl::union_map_list
give(__isl_take isl_union_map_list
*ptr
);
2938 class union_map_list
{
2939 friend inline isl::union_map_list
manage(__isl_take isl_union_map_list
*ptr
);
2940 friend inline isl::union_map_list
manage_copy(__isl_keep isl_union_map_list
*ptr
);
2942 isl_union_map_list
*ptr
= nullptr;
2944 inline explicit union_map_list(__isl_take isl_union_map_list
*ptr
);
2947 inline /* implicit */ union_map_list();
2948 inline /* implicit */ union_map_list(const isl::union_map_list
&obj
);
2949 inline /* implicit */ union_map_list(std::nullptr_t
);
2950 inline isl::union_map_list
&operator=(isl::union_map_list obj
);
2951 inline ~union_map_list();
2952 inline __isl_give isl_union_map_list
*copy() const &;
2953 inline __isl_give isl_union_map_list
*copy() && = delete;
2954 inline __isl_keep isl_union_map_list
*get() const;
2955 inline __isl_give isl_union_map_list
*release();
2956 inline bool is_null() const;
2957 inline __isl_keep isl_union_map_list
*keep() const;
2958 inline __isl_give isl_union_map_list
*take();
2959 inline explicit operator bool() const;
2960 inline isl::ctx
get_ctx() const;
2961 inline void dump() const;
2965 // declarations for isl::union_pw_aff
2966 inline isl::union_pw_aff
manage(__isl_take isl_union_pw_aff
*ptr
);
2967 inline isl::union_pw_aff
manage_copy(__isl_keep isl_union_pw_aff
*ptr
);
2968 inline isl::union_pw_aff
give(__isl_take isl_union_pw_aff
*ptr
);
2971 class union_pw_aff
{
2972 friend inline isl::union_pw_aff
manage(__isl_take isl_union_pw_aff
*ptr
);
2973 friend inline isl::union_pw_aff
manage_copy(__isl_keep isl_union_pw_aff
*ptr
);
2975 isl_union_pw_aff
*ptr
= nullptr;
2977 inline explicit union_pw_aff(__isl_take isl_union_pw_aff
*ptr
);
2980 inline /* implicit */ union_pw_aff();
2981 inline /* implicit */ union_pw_aff(const isl::union_pw_aff
&obj
);
2982 inline /* implicit */ union_pw_aff(std::nullptr_t
);
2983 inline /* implicit */ union_pw_aff(isl::pw_aff pa
);
2984 inline explicit union_pw_aff(isl::union_set domain
, isl::val v
);
2985 inline explicit union_pw_aff(isl::ctx ctx
, const std::string
&str
);
2986 inline isl::union_pw_aff
&operator=(isl::union_pw_aff obj
);
2987 inline ~union_pw_aff();
2988 inline __isl_give isl_union_pw_aff
*copy() const &;
2989 inline __isl_give isl_union_pw_aff
*copy() && = delete;
2990 inline __isl_keep isl_union_pw_aff
*get() const;
2991 inline __isl_give isl_union_pw_aff
*release();
2992 inline bool is_null() const;
2993 inline __isl_keep isl_union_pw_aff
*keep() const;
2994 inline __isl_give isl_union_pw_aff
*take();
2995 inline explicit operator bool() const;
2996 inline isl::ctx
get_ctx() const;
2997 inline std::string
to_str() const;
2998 inline void dump() const;
3000 inline isl::union_pw_aff
add(isl::union_pw_aff upa2
) const;
3001 inline isl::union_pw_aff
add_pw_aff(isl::pw_aff pa
) const;
3002 static inline isl::union_pw_aff
aff_on_domain(isl::union_set domain
, isl::aff aff
);
3003 inline isl::union_pw_aff
align_params(isl::space model
) const;
3004 inline isl::union_pw_aff
coalesce() const;
3005 inline unsigned int dim(isl::dim type
) const;
3006 inline isl::union_set
domain() const;
3007 inline isl::union_pw_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
3008 static inline isl::union_pw_aff
empty(isl::space space
);
3009 inline isl::pw_aff
extract_pw_aff(isl::space space
) const;
3010 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
3011 inline isl::union_pw_aff
floor() const;
3012 inline isl::stat
foreach_pw_aff(const std::function
<isl::stat(isl::pw_aff
)> &fn
) const;
3013 inline isl::space
get_space() const;
3014 inline isl::union_pw_aff
gist(isl::union_set context
) const;
3015 inline isl::union_pw_aff
gist_params(isl::set context
) const;
3016 inline isl::union_pw_aff
intersect_domain(isl::union_set uset
) const;
3017 inline isl::union_pw_aff
intersect_params(isl::set set
) const;
3018 inline isl::boolean
involves_nan() const;
3019 inline isl::union_pw_aff
mod_val(isl::val f
) const;
3020 inline isl::union_pw_aff
neg() const;
3021 inline isl::boolean
plain_is_equal(const isl::union_pw_aff
&upa2
) const;
3022 inline isl::union_pw_aff
pullback(isl::union_pw_multi_aff upma
) const;
3023 inline isl::union_pw_aff
reset_user() const;
3024 inline isl::union_pw_aff
scale_down_val(isl::val v
) const;
3025 inline isl::union_pw_aff
scale_val(isl::val v
) const;
3026 inline isl::union_pw_aff
sub(isl::union_pw_aff upa2
) const;
3027 inline isl::union_pw_aff
subtract_domain(isl::union_set uset
) const;
3028 inline isl::union_pw_aff
union_add(isl::union_pw_aff upa2
) const;
3029 inline isl::union_set
zero_union_set() const;
3032 // declarations for isl::union_pw_aff_list
3033 inline isl::union_pw_aff_list
manage(__isl_take isl_union_pw_aff_list
*ptr
);
3034 inline isl::union_pw_aff_list
manage_copy(__isl_keep isl_union_pw_aff_list
*ptr
);
3035 inline isl::union_pw_aff_list
give(__isl_take isl_union_pw_aff_list
*ptr
);
3038 class union_pw_aff_list
{
3039 friend inline isl::union_pw_aff_list
manage(__isl_take isl_union_pw_aff_list
*ptr
);
3040 friend inline isl::union_pw_aff_list
manage_copy(__isl_keep isl_union_pw_aff_list
*ptr
);
3042 isl_union_pw_aff_list
*ptr
= nullptr;
3044 inline explicit union_pw_aff_list(__isl_take isl_union_pw_aff_list
*ptr
);
3047 inline /* implicit */ union_pw_aff_list();
3048 inline /* implicit */ union_pw_aff_list(const isl::union_pw_aff_list
&obj
);
3049 inline /* implicit */ union_pw_aff_list(std::nullptr_t
);
3050 inline isl::union_pw_aff_list
&operator=(isl::union_pw_aff_list obj
);
3051 inline ~union_pw_aff_list();
3052 inline __isl_give isl_union_pw_aff_list
*copy() const &;
3053 inline __isl_give isl_union_pw_aff_list
*copy() && = delete;
3054 inline __isl_keep isl_union_pw_aff_list
*get() const;
3055 inline __isl_give isl_union_pw_aff_list
*release();
3056 inline bool is_null() const;
3057 inline __isl_keep isl_union_pw_aff_list
*keep() const;
3058 inline __isl_give isl_union_pw_aff_list
*take();
3059 inline explicit operator bool() const;
3060 inline isl::ctx
get_ctx() const;
3061 inline void dump() const;
3065 // declarations for isl::union_pw_multi_aff
3066 inline isl::union_pw_multi_aff
manage(__isl_take isl_union_pw_multi_aff
*ptr
);
3067 inline isl::union_pw_multi_aff
manage_copy(__isl_keep isl_union_pw_multi_aff
*ptr
);
3068 inline isl::union_pw_multi_aff
give(__isl_take isl_union_pw_multi_aff
*ptr
);
3071 class union_pw_multi_aff
{
3072 friend inline isl::union_pw_multi_aff
manage(__isl_take isl_union_pw_multi_aff
*ptr
);
3073 friend inline isl::union_pw_multi_aff
manage_copy(__isl_keep isl_union_pw_multi_aff
*ptr
);
3075 isl_union_pw_multi_aff
*ptr
= nullptr;
3077 inline explicit union_pw_multi_aff(__isl_take isl_union_pw_multi_aff
*ptr
);
3080 inline /* implicit */ union_pw_multi_aff();
3081 inline /* implicit */ union_pw_multi_aff(const isl::union_pw_multi_aff
&obj
);
3082 inline /* implicit */ union_pw_multi_aff(std::nullptr_t
);
3083 inline /* implicit */ union_pw_multi_aff(isl::pw_multi_aff pma
);
3084 inline explicit union_pw_multi_aff(isl::union_set uset
);
3085 inline explicit union_pw_multi_aff(isl::union_map umap
);
3086 inline explicit union_pw_multi_aff(isl::ctx ctx
, const std::string
&str
);
3087 inline /* implicit */ union_pw_multi_aff(isl::union_pw_aff upa
);
3088 inline isl::union_pw_multi_aff
&operator=(isl::union_pw_multi_aff obj
);
3089 inline ~union_pw_multi_aff();
3090 inline __isl_give isl_union_pw_multi_aff
*copy() const &;
3091 inline __isl_give isl_union_pw_multi_aff
*copy() && = delete;
3092 inline __isl_keep isl_union_pw_multi_aff
*get() const;
3093 inline __isl_give isl_union_pw_multi_aff
*release();
3094 inline bool is_null() const;
3095 inline __isl_keep isl_union_pw_multi_aff
*keep() const;
3096 inline __isl_give isl_union_pw_multi_aff
*take();
3097 inline explicit operator bool() const;
3098 inline isl::ctx
get_ctx() const;
3099 inline std::string
to_str() const;
3100 inline void dump() const;
3102 inline isl::union_pw_multi_aff
add(isl::union_pw_multi_aff upma2
) const;
3103 inline isl::union_pw_multi_aff
add_pw_multi_aff(isl::pw_multi_aff pma
) const;
3104 inline isl::union_pw_multi_aff
align_params(isl::space model
) const;
3105 inline isl::union_pw_multi_aff
coalesce() const;
3106 inline unsigned int dim(isl::dim type
) const;
3107 inline isl::union_set
domain() const;
3108 inline isl::union_pw_multi_aff
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
3109 static inline isl::union_pw_multi_aff
empty(isl::space space
);
3110 inline isl::pw_multi_aff
extract_pw_multi_aff(isl::space space
) const;
3111 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
3112 inline isl::union_pw_multi_aff
flat_range_product(isl::union_pw_multi_aff upma2
) const;
3113 inline isl::stat
foreach_pw_multi_aff(const std::function
<isl::stat(isl::pw_multi_aff
)> &fn
) const;
3114 static inline isl::union_pw_multi_aff
from_aff(isl::aff aff
);
3115 static inline isl::union_pw_multi_aff
from_multi_union_pw_aff(isl::multi_union_pw_aff mupa
);
3116 static inline isl::union_pw_multi_aff
from_union_set(isl::union_set uset
);
3117 inline isl::space
get_space() const;
3118 inline isl::union_pw_aff
get_union_pw_aff(int pos
) const;
3119 inline isl::union_pw_multi_aff
gist(isl::union_set context
) const;
3120 inline isl::union_pw_multi_aff
gist_params(isl::set context
) const;
3121 inline isl::union_pw_multi_aff
intersect_domain(isl::union_set uset
) const;
3122 inline isl::union_pw_multi_aff
intersect_params(isl::set set
) const;
3123 inline isl::boolean
involves_nan() const;
3124 static inline isl::union_pw_multi_aff
multi_val_on_domain(isl::union_set domain
, isl::multi_val mv
);
3125 inline isl::union_pw_multi_aff
neg() const;
3126 inline isl::boolean
plain_is_equal(const isl::union_pw_multi_aff
&upma2
) const;
3127 inline isl::union_pw_multi_aff
pullback(isl::union_pw_multi_aff upma2
) const;
3128 inline isl::union_pw_multi_aff
reset_user() const;
3129 inline isl::union_pw_multi_aff
scale_down_val(isl::val val
) const;
3130 inline isl::union_pw_multi_aff
scale_multi_val(isl::multi_val mv
) const;
3131 inline isl::union_pw_multi_aff
scale_val(isl::val val
) const;
3132 inline isl::union_pw_multi_aff
sub(isl::union_pw_multi_aff upma2
) const;
3133 inline isl::union_pw_multi_aff
subtract_domain(isl::union_set uset
) const;
3134 inline isl::union_pw_multi_aff
union_add(isl::union_pw_multi_aff upma2
) const;
3137 // declarations for isl::union_pw_multi_aff_list
3138 inline isl::union_pw_multi_aff_list
manage(__isl_take isl_union_pw_multi_aff_list
*ptr
);
3139 inline isl::union_pw_multi_aff_list
manage_copy(__isl_keep isl_union_pw_multi_aff_list
*ptr
);
3140 inline isl::union_pw_multi_aff_list
give(__isl_take isl_union_pw_multi_aff_list
*ptr
);
3143 class union_pw_multi_aff_list
{
3144 friend inline isl::union_pw_multi_aff_list
manage(__isl_take isl_union_pw_multi_aff_list
*ptr
);
3145 friend inline isl::union_pw_multi_aff_list
manage_copy(__isl_keep isl_union_pw_multi_aff_list
*ptr
);
3147 isl_union_pw_multi_aff_list
*ptr
= nullptr;
3149 inline explicit union_pw_multi_aff_list(__isl_take isl_union_pw_multi_aff_list
*ptr
);
3152 inline /* implicit */ union_pw_multi_aff_list();
3153 inline /* implicit */ union_pw_multi_aff_list(const isl::union_pw_multi_aff_list
&obj
);
3154 inline /* implicit */ union_pw_multi_aff_list(std::nullptr_t
);
3155 inline isl::union_pw_multi_aff_list
&operator=(isl::union_pw_multi_aff_list obj
);
3156 inline ~union_pw_multi_aff_list();
3157 inline __isl_give isl_union_pw_multi_aff_list
*copy() const &;
3158 inline __isl_give isl_union_pw_multi_aff_list
*copy() && = delete;
3159 inline __isl_keep isl_union_pw_multi_aff_list
*get() const;
3160 inline __isl_give isl_union_pw_multi_aff_list
*release();
3161 inline bool is_null() const;
3162 inline __isl_keep isl_union_pw_multi_aff_list
*keep() const;
3163 inline __isl_give isl_union_pw_multi_aff_list
*take();
3164 inline explicit operator bool() const;
3165 inline isl::ctx
get_ctx() const;
3166 inline void dump() const;
3170 // declarations for isl::union_pw_qpolynomial
3171 inline isl::union_pw_qpolynomial
manage(__isl_take isl_union_pw_qpolynomial
*ptr
);
3172 inline isl::union_pw_qpolynomial
manage_copy(__isl_keep isl_union_pw_qpolynomial
*ptr
);
3173 inline isl::union_pw_qpolynomial
give(__isl_take isl_union_pw_qpolynomial
*ptr
);
3176 class union_pw_qpolynomial
{
3177 friend inline isl::union_pw_qpolynomial
manage(__isl_take isl_union_pw_qpolynomial
*ptr
);
3178 friend inline isl::union_pw_qpolynomial
manage_copy(__isl_keep isl_union_pw_qpolynomial
*ptr
);
3180 isl_union_pw_qpolynomial
*ptr
= nullptr;
3182 inline explicit union_pw_qpolynomial(__isl_take isl_union_pw_qpolynomial
*ptr
);
3185 inline /* implicit */ union_pw_qpolynomial();
3186 inline /* implicit */ union_pw_qpolynomial(const isl::union_pw_qpolynomial
&obj
);
3187 inline /* implicit */ union_pw_qpolynomial(std::nullptr_t
);
3188 inline explicit union_pw_qpolynomial(isl::ctx ctx
, const std::string
&str
);
3189 inline isl::union_pw_qpolynomial
&operator=(isl::union_pw_qpolynomial obj
);
3190 inline ~union_pw_qpolynomial();
3191 inline __isl_give isl_union_pw_qpolynomial
*copy() const &;
3192 inline __isl_give isl_union_pw_qpolynomial
*copy() && = delete;
3193 inline __isl_keep isl_union_pw_qpolynomial
*get() const;
3194 inline __isl_give isl_union_pw_qpolynomial
*release();
3195 inline bool is_null() const;
3196 inline __isl_keep isl_union_pw_qpolynomial
*keep() const;
3197 inline __isl_give isl_union_pw_qpolynomial
*take();
3198 inline explicit operator bool() const;
3199 inline isl::ctx
get_ctx() const;
3200 inline std::string
to_str() const;
3202 inline isl::union_pw_qpolynomial
add(isl::union_pw_qpolynomial upwqp2
) const;
3203 inline isl::union_pw_qpolynomial
add_pw_qpolynomial(isl::pw_qpolynomial pwqp
) const;
3204 inline isl::union_pw_qpolynomial
align_params(isl::space model
) const;
3205 inline isl::union_pw_qpolynomial
coalesce() const;
3206 inline unsigned int dim(isl::dim type
) const;
3207 inline isl::union_set
domain() const;
3208 inline isl::union_pw_qpolynomial
drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const;
3209 inline isl::val
eval(isl::point pnt
) const;
3210 inline isl::pw_qpolynomial
extract_pw_qpolynomial(isl::space dim
) const;
3211 inline int find_dim_by_name(isl::dim type
, const std::string
&name
) const;
3212 inline isl::stat
foreach_pw_qpolynomial(const std::function
<isl::stat(isl::pw_qpolynomial
)> &fn
) const;
3213 static inline isl::union_pw_qpolynomial
from_pw_qpolynomial(isl::pw_qpolynomial pwqp
);
3214 inline isl::space
get_space() const;
3215 inline isl::union_pw_qpolynomial
gist(isl::union_set context
) const;
3216 inline isl::union_pw_qpolynomial
gist_params(isl::set context
) const;
3217 inline isl::union_pw_qpolynomial
intersect_domain(isl::union_set uset
) const;
3218 inline isl::union_pw_qpolynomial
intersect_params(isl::set set
) const;
3219 inline isl::boolean
involves_nan() const;
3220 inline isl::union_pw_qpolynomial
mul(isl::union_pw_qpolynomial upwqp2
) const;
3221 inline isl::union_pw_qpolynomial
neg() const;
3222 inline isl::boolean
plain_is_equal(const isl::union_pw_qpolynomial
&upwqp2
) const;
3223 inline isl::union_pw_qpolynomial
reset_user() const;
3224 inline isl::union_pw_qpolynomial
scale_down_val(isl::val v
) const;
3225 inline isl::union_pw_qpolynomial
scale_val(isl::val v
) const;
3226 inline isl::union_pw_qpolynomial
sub(isl::union_pw_qpolynomial upwqp2
) const;
3227 inline isl::union_pw_qpolynomial
subtract_domain(isl::union_set uset
) const;
3228 inline isl::union_pw_qpolynomial
to_polynomial(int sign
) const;
3229 static inline isl::union_pw_qpolynomial
zero(isl::space dim
);
3232 // declarations for isl::union_set
3233 inline isl::union_set
manage(__isl_take isl_union_set
*ptr
);
3234 inline isl::union_set
manage_copy(__isl_keep isl_union_set
*ptr
);
3235 inline isl::union_set
give(__isl_take isl_union_set
*ptr
);
3239 friend inline isl::union_set
manage(__isl_take isl_union_set
*ptr
);
3240 friend inline isl::union_set
manage_copy(__isl_keep isl_union_set
*ptr
);
3242 isl_union_set
*ptr
= nullptr;
3244 inline explicit union_set(__isl_take isl_union_set
*ptr
);
3247 inline /* implicit */ union_set();
3248 inline /* implicit */ union_set(const isl::union_set
&obj
);
3249 inline /* implicit */ union_set(std::nullptr_t
);
3250 inline /* implicit */ union_set(isl::basic_set bset
);
3251 inline /* implicit */ union_set(isl::set set
);
3252 inline /* implicit */ union_set(isl::point pnt
);
3253 inline explicit union_set(isl::ctx ctx
, const std::string
&str
);
3254 inline isl::union_set
&operator=(isl::union_set obj
);
3255 inline ~union_set();
3256 inline __isl_give isl_union_set
*copy() const &;
3257 inline __isl_give isl_union_set
*copy() && = delete;
3258 inline __isl_keep isl_union_set
*get() const;
3259 inline __isl_give isl_union_set
*release();
3260 inline bool is_null() const;
3261 inline __isl_keep isl_union_set
*keep() const;
3262 inline __isl_give isl_union_set
*take();
3263 inline explicit operator bool() const;
3264 inline isl::ctx
get_ctx() const;
3265 inline std::string
to_str() const;
3266 inline void dump() const;
3268 inline isl::union_set
add_set(isl::set set
) const;
3269 inline isl::union_set
affine_hull() const;
3270 inline isl::union_set
align_params(isl::space model
) const;
3271 inline isl::union_set
apply(isl::union_map umap
) const;
3272 inline isl::union_set
coalesce() const;
3273 inline isl::union_set
coefficients() const;
3274 inline isl::schedule
compute_schedule(isl::union_map validity
, isl::union_map proximity
) const;
3275 inline isl::boolean
contains(const isl::space
&space
) const;
3276 inline isl::union_set
detect_equalities() const;
3277 inline unsigned int dim(isl::dim type
) const;
3278 static inline isl::union_set
empty(isl::space space
);
3279 inline isl::set
extract_set(isl::space dim
) const;
3280 inline isl::stat
foreach_point(const std::function
<isl::stat(isl::point
)> &fn
) const;
3281 inline isl::stat
foreach_set(const std::function
<isl::stat(isl::set
)> &fn
) const;
3282 inline isl::basic_set_list
get_basic_set_list() const;
3283 inline uint32_t get_hash() const;
3284 inline isl::space
get_space() const;
3285 inline isl::union_set
gist(isl::union_set context
) const;
3286 inline isl::union_set
gist_params(isl::set set
) const;
3287 inline isl::union_map
identity() const;
3288 inline isl::union_pw_multi_aff
identity_union_pw_multi_aff() const;
3289 inline isl::union_set
intersect(isl::union_set uset2
) const;
3290 inline isl::union_set
intersect_params(isl::set set
) const;
3291 inline isl::boolean
is_disjoint(const isl::union_set
&uset2
) const;
3292 inline isl::boolean
is_empty() const;
3293 inline isl::boolean
is_equal(const isl::union_set
&uset2
) const;
3294 inline isl::boolean
is_params() const;
3295 inline isl::boolean
is_strict_subset(const isl::union_set
&uset2
) const;
3296 inline isl::boolean
is_subset(const isl::union_set
&uset2
) const;
3297 inline isl::union_map
lex_ge_union_set(isl::union_set uset2
) const;
3298 inline isl::union_map
lex_gt_union_set(isl::union_set uset2
) const;
3299 inline isl::union_map
lex_le_union_set(isl::union_set uset2
) const;
3300 inline isl::union_map
lex_lt_union_set(isl::union_set uset2
) const;
3301 inline isl::union_set
lexmax() const;
3302 inline isl::union_set
lexmin() const;
3303 inline isl::multi_val
min_multi_union_pw_aff(const isl::multi_union_pw_aff
&obj
) const;
3304 inline isl::set
params() const;
3305 inline isl::union_set
polyhedral_hull() const;
3306 inline isl::union_set
preimage(isl::multi_aff ma
) const;
3307 inline isl::union_set
preimage(isl::pw_multi_aff pma
) const;
3308 inline isl::union_set
preimage(isl::union_pw_multi_aff upma
) const;
3309 inline isl::union_set
product(isl::union_set uset2
) const;
3310 inline isl::union_set
project_out(isl::dim type
, unsigned int first
, unsigned int n
) const;
3311 inline isl::union_set
remove_divs() const;
3312 inline isl::union_set
remove_redundancies() const;
3313 inline isl::union_set
reset_user() const;
3314 inline isl::basic_set
sample() const;
3315 inline isl::point
sample_point() const;
3316 inline isl::union_set
simple_hull() const;
3317 inline isl::union_set
solutions() const;
3318 inline isl::union_set
subtract(isl::union_set uset2
) const;
3319 inline isl::union_set
unite(isl::union_set uset2
) const;
3320 inline isl::union_set
universe() const;
3321 inline isl::union_map
unwrap() const;
3322 inline isl::union_map
wrapped_domain_map() const;
3325 // declarations for isl::union_set_list
3326 inline isl::union_set_list
manage(__isl_take isl_union_set_list
*ptr
);
3327 inline isl::union_set_list
manage_copy(__isl_keep isl_union_set_list
*ptr
);
3328 inline isl::union_set_list
give(__isl_take isl_union_set_list
*ptr
);
3331 class union_set_list
{
3332 friend inline isl::union_set_list
manage(__isl_take isl_union_set_list
*ptr
);
3333 friend inline isl::union_set_list
manage_copy(__isl_keep isl_union_set_list
*ptr
);
3335 isl_union_set_list
*ptr
= nullptr;
3337 inline explicit union_set_list(__isl_take isl_union_set_list
*ptr
);
3340 inline /* implicit */ union_set_list();
3341 inline /* implicit */ union_set_list(const isl::union_set_list
&obj
);
3342 inline /* implicit */ union_set_list(std::nullptr_t
);
3343 inline isl::union_set_list
&operator=(isl::union_set_list obj
);
3344 inline ~union_set_list();
3345 inline __isl_give isl_union_set_list
*copy() const &;
3346 inline __isl_give isl_union_set_list
*copy() && = delete;
3347 inline __isl_keep isl_union_set_list
*get() const;
3348 inline __isl_give isl_union_set_list
*release();
3349 inline bool is_null() const;
3350 inline __isl_keep isl_union_set_list
*keep() const;
3351 inline __isl_give isl_union_set_list
*take();
3352 inline explicit operator bool() const;
3353 inline isl::ctx
get_ctx() const;
3354 inline void dump() const;
3358 // declarations for isl::val
3359 inline isl::val
manage(__isl_take isl_val
*ptr
);
3360 inline isl::val
manage_copy(__isl_keep isl_val
*ptr
);
3361 inline isl::val
give(__isl_take isl_val
*ptr
);
3365 friend inline isl::val
manage(__isl_take isl_val
*ptr
);
3366 friend inline isl::val
manage_copy(__isl_keep isl_val
*ptr
);
3368 isl_val
*ptr
= nullptr;
3370 inline explicit val(__isl_take isl_val
*ptr
);
3373 inline /* implicit */ val();
3374 inline /* implicit */ val(const isl::val
&obj
);
3375 inline /* implicit */ val(std::nullptr_t
);
3376 inline explicit val(isl::ctx ctx
, long i
);
3377 inline explicit val(isl::ctx ctx
, const std::string
&str
);
3378 inline isl::val
&operator=(isl::val obj
);
3380 inline __isl_give isl_val
*copy() const &;
3381 inline __isl_give isl_val
*copy() && = delete;
3382 inline __isl_keep isl_val
*get() const;
3383 inline __isl_give isl_val
*release();
3384 inline bool is_null() const;
3385 inline __isl_keep isl_val
*keep() const;
3386 inline __isl_give isl_val
*take();
3387 inline explicit operator bool() const;
3388 inline isl::ctx
get_ctx() const;
3389 inline std::string
to_str() const;
3390 inline void dump() const;
3392 inline isl::val
two_exp() const;
3393 inline isl::val
abs() const;
3394 inline isl::boolean
abs_eq(const isl::val
&v2
) const;
3395 inline isl::val
add(isl::val v2
) const;
3396 inline isl::val
add_ui(unsigned long v2
) const;
3397 inline isl::val
ceil() const;
3398 inline int cmp_si(long i
) const;
3399 inline isl::val
div(isl::val v2
) const;
3400 inline isl::val
div_ui(unsigned long v2
) const;
3401 inline isl::boolean
eq(const isl::val
&v2
) const;
3402 inline isl::val
floor() const;
3403 inline isl::val
gcd(isl::val v2
) const;
3404 inline isl::boolean
ge(const isl::val
&v2
) const;
3405 inline uint32_t get_hash() const;
3406 inline long get_num_si() const;
3407 inline isl::boolean
gt(const isl::val
&v2
) const;
3408 static inline isl::val
infty(isl::ctx ctx
);
3409 static inline isl::val
int_from_ui(isl::ctx ctx
, unsigned long u
);
3410 inline isl::val
inv() const;
3411 inline isl::boolean
is_divisible_by(const isl::val
&v2
) const;
3412 inline isl::boolean
is_infty() const;
3413 inline isl::boolean
is_int() const;
3414 inline isl::boolean
is_nan() const;
3415 inline isl::boolean
is_neg() const;
3416 inline isl::boolean
is_neginfty() const;
3417 inline isl::boolean
is_negone() const;
3418 inline isl::boolean
is_nonneg() const;
3419 inline isl::boolean
is_nonpos() const;
3420 inline isl::boolean
is_one() const;
3421 inline isl::boolean
is_pos() const;
3422 inline isl::boolean
is_rat() const;
3423 inline isl::boolean
is_zero() const;
3424 inline isl::boolean
le(const isl::val
&v2
) const;
3425 inline isl::boolean
lt(const isl::val
&v2
) const;
3426 inline isl::val
max(isl::val v2
) const;
3427 inline isl::val
min(isl::val v2
) const;
3428 inline isl::val
mod(isl::val v2
) const;
3429 inline isl::val
mul(isl::val v2
) const;
3430 inline isl::val
mul_ui(unsigned long v2
) const;
3431 static inline isl::val
nan(isl::ctx ctx
);
3432 inline isl::boolean
ne(const isl::val
&v2
) const;
3433 inline isl::val
neg() const;
3434 static inline isl::val
neginfty(isl::ctx ctx
);
3435 static inline isl::val
negone(isl::ctx ctx
);
3436 static inline isl::val
one(isl::ctx ctx
);
3437 inline isl::val
set_si(long i
) const;
3438 inline int sgn() const;
3439 inline isl::val
sub(isl::val v2
) const;
3440 inline isl::val
sub_ui(unsigned long v2
) const;
3441 inline isl::val
trunc() const;
3442 static inline isl::val
zero(isl::ctx ctx
);
3445 // declarations for isl::val_list
3446 inline isl::val_list
manage(__isl_take isl_val_list
*ptr
);
3447 inline isl::val_list
manage_copy(__isl_keep isl_val_list
*ptr
);
3448 inline isl::val_list
give(__isl_take isl_val_list
*ptr
);
3452 friend inline isl::val_list
manage(__isl_take isl_val_list
*ptr
);
3453 friend inline isl::val_list
manage_copy(__isl_keep isl_val_list
*ptr
);
3455 isl_val_list
*ptr
= nullptr;
3457 inline explicit val_list(__isl_take isl_val_list
*ptr
);
3460 inline /* implicit */ val_list();
3461 inline /* implicit */ val_list(const isl::val_list
&obj
);
3462 inline /* implicit */ val_list(std::nullptr_t
);
3463 inline isl::val_list
&operator=(isl::val_list obj
);
3465 inline __isl_give isl_val_list
*copy() const &;
3466 inline __isl_give isl_val_list
*copy() && = delete;
3467 inline __isl_keep isl_val_list
*get() const;
3468 inline __isl_give isl_val_list
*release();
3469 inline bool is_null() const;
3470 inline __isl_keep isl_val_list
*keep() const;
3471 inline __isl_give isl_val_list
*take();
3472 inline explicit operator bool() const;
3473 inline isl::ctx
get_ctx() const;
3474 inline void dump() const;
3478 // declarations for isl::vec
3479 inline isl::vec
manage(__isl_take isl_vec
*ptr
);
3480 inline isl::vec
manage_copy(__isl_keep isl_vec
*ptr
);
3481 inline isl::vec
give(__isl_take isl_vec
*ptr
);
3485 friend inline isl::vec
manage(__isl_take isl_vec
*ptr
);
3486 friend inline isl::vec
manage_copy(__isl_keep isl_vec
*ptr
);
3488 isl_vec
*ptr
= nullptr;
3490 inline explicit vec(__isl_take isl_vec
*ptr
);
3493 inline /* implicit */ vec();
3494 inline /* implicit */ vec(const isl::vec
&obj
);
3495 inline /* implicit */ vec(std::nullptr_t
);
3496 inline isl::vec
&operator=(isl::vec obj
);
3498 inline __isl_give isl_vec
*copy() const &;
3499 inline __isl_give isl_vec
*copy() && = delete;
3500 inline __isl_keep isl_vec
*get() const;
3501 inline __isl_give isl_vec
*release();
3502 inline bool is_null() const;
3503 inline __isl_keep isl_vec
*keep() const;
3504 inline __isl_give isl_vec
*take();
3505 inline explicit operator bool() const;
3506 inline isl::ctx
get_ctx() const;
3507 inline void dump() const;
3509 inline isl::vec
add(isl::vec vec2
) const;
3510 static inline isl::vec
alloc(isl::ctx ctx
, unsigned int size
);
3511 inline isl::vec
ceil() const;
3512 inline isl::vec
clr() const;
3513 inline int cmp_element(const isl::vec
&vec2
, int pos
) const;
3514 inline isl::vec
concat(isl::vec vec2
) const;
3515 inline isl::vec
drop_els(unsigned int pos
, unsigned int n
) const;
3516 inline isl::vec
extend(unsigned int size
) const;
3517 inline isl::val
get_element_val(int pos
) const;
3518 inline isl::vec
insert_els(unsigned int pos
, unsigned int n
) const;
3519 inline isl::vec
insert_zero_els(unsigned int pos
, unsigned int n
) const;
3520 inline isl::boolean
is_equal(const isl::vec
&vec2
) const;
3521 inline isl::vec
mat_product(isl::mat mat
) const;
3522 inline isl::vec
move_els(unsigned int dst_col
, unsigned int src_col
, unsigned int n
) const;
3523 inline isl::vec
neg() const;
3524 inline isl::vec
set_element_si(int pos
, int v
) const;
3525 inline isl::vec
set_element_val(int pos
, isl::val v
) const;
3526 inline isl::vec
set_si(int v
) const;
3527 inline isl::vec
set_val(isl::val v
) const;
3528 inline int size() const;
3529 inline isl::vec
sort() const;
3532 // implementations for isl::aff
3533 isl::aff
manage(__isl_take isl_aff
*ptr
) {
3536 isl::aff
manage_copy(__isl_keep isl_aff
*ptr
) {
3537 return aff(isl_aff_copy(ptr
));
3539 isl::aff
give(__isl_take isl_aff
*ptr
) {
3547 aff::aff(const isl::aff
&obj
)
3548 : ptr(obj
.copy()) {}
3549 aff::aff(std::nullptr_t
)
3553 aff::aff(__isl_take isl_aff
*ptr
)
3556 aff::aff(isl::local_space ls
) {
3557 auto res
= isl_aff_zero_on_domain(ls
.release());
3560 aff::aff(isl::local_space ls
, isl::val val
) {
3561 auto res
= isl_aff_val_on_domain(ls
.release(), val
.release());
3564 aff::aff(isl::ctx ctx
, const std::string
&str
) {
3565 auto res
= isl_aff_read_from_str(ctx
.release(), str
.c_str());
3569 aff
&aff::operator=(isl::aff obj
) {
3570 std::swap(this->ptr
, obj
.ptr
);
3579 __isl_give isl_aff
*aff::copy() const & {
3580 return isl_aff_copy(ptr
);
3583 __isl_keep isl_aff
*aff::get() const {
3587 __isl_give isl_aff
*aff::release() {
3593 bool aff::is_null() const {
3594 return ptr
== nullptr;
3596 __isl_keep isl_aff
*aff::keep() const {
3600 __isl_give isl_aff
*aff::take() {
3604 aff::operator bool() const {
3609 isl::ctx
aff::get_ctx() const {
3610 return isl::ctx(isl_aff_get_ctx(ptr
));
3612 std::string
aff::to_str() const {
3613 char *Tmp
= isl_aff_to_str(get());
3622 void aff::dump() const {
3623 isl_aff_dump(get());
3627 isl::aff
aff::add(isl::aff aff2
) const {
3628 auto res
= isl_aff_add(copy(), aff2
.release());
3632 isl::aff
aff::add_coefficient_si(isl::dim type
, int pos
, int v
) const {
3633 auto res
= isl_aff_add_coefficient_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
);
3637 isl::aff
aff::add_coefficient_val(isl::dim type
, int pos
, isl::val v
) const {
3638 auto res
= isl_aff_add_coefficient_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
3642 isl::aff
aff::add_constant_num_si(int v
) const {
3643 auto res
= isl_aff_add_constant_num_si(copy(), v
);
3647 isl::aff
aff::add_constant_si(int v
) const {
3648 auto res
= isl_aff_add_constant_si(copy(), v
);
3652 isl::aff
aff::add_constant_val(isl::val v
) const {
3653 auto res
= isl_aff_add_constant_val(copy(), v
.release());
3657 isl::aff
aff::add_dims(isl::dim type
, unsigned int n
) const {
3658 auto res
= isl_aff_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
3662 isl::aff
aff::align_params(isl::space model
) const {
3663 auto res
= isl_aff_align_params(copy(), model
.release());
3667 isl::aff
aff::ceil() const {
3668 auto res
= isl_aff_ceil(copy());
3672 int aff::coefficient_sgn(isl::dim type
, int pos
) const {
3673 auto res
= isl_aff_coefficient_sgn(get(), static_cast<enum isl_dim_type
>(type
), pos
);
3677 int aff::dim(isl::dim type
) const {
3678 auto res
= isl_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
3682 isl::aff
aff::div(isl::aff aff2
) const {
3683 auto res
= isl_aff_div(copy(), aff2
.release());
3687 isl::aff
aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
3688 auto res
= isl_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
3692 isl::basic_set
aff::eq_basic_set(isl::aff aff2
) const {
3693 auto res
= isl_aff_eq_basic_set(copy(), aff2
.release());
3697 isl::set
aff::eq_set(isl::aff aff2
) const {
3698 auto res
= isl_aff_eq_set(copy(), aff2
.release());
3702 int aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
3703 auto res
= isl_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
3707 isl::aff
aff::floor() const {
3708 auto res
= isl_aff_floor(copy());
3712 isl::basic_set
aff::ge_basic_set(isl::aff aff2
) const {
3713 auto res
= isl_aff_ge_basic_set(copy(), aff2
.release());
3717 isl::set
aff::ge_set(isl::aff aff2
) const {
3718 auto res
= isl_aff_ge_set(copy(), aff2
.release());
3722 isl::val
aff::get_coefficient_val(isl::dim type
, int pos
) const {
3723 auto res
= isl_aff_get_coefficient_val(get(), static_cast<enum isl_dim_type
>(type
), pos
);
3727 isl::val
aff::get_constant_val() const {
3728 auto res
= isl_aff_get_constant_val(get());
3732 isl::val
aff::get_denominator_val() const {
3733 auto res
= isl_aff_get_denominator_val(get());
3737 std::string
aff::get_dim_name(isl::dim type
, unsigned int pos
) const {
3738 auto res
= isl_aff_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
3739 std::string
tmp(res
);
3743 isl::aff
aff::get_div(int pos
) const {
3744 auto res
= isl_aff_get_div(get(), pos
);
3748 isl::local_space
aff::get_domain_local_space() const {
3749 auto res
= isl_aff_get_domain_local_space(get());
3753 isl::space
aff::get_domain_space() const {
3754 auto res
= isl_aff_get_domain_space(get());
3758 uint32_t aff::get_hash() const {
3759 auto res
= isl_aff_get_hash(get());
3763 isl::local_space
aff::get_local_space() const {
3764 auto res
= isl_aff_get_local_space(get());
3768 isl::space
aff::get_space() const {
3769 auto res
= isl_aff_get_space(get());
3773 isl::aff
aff::gist(isl::set context
) const {
3774 auto res
= isl_aff_gist(copy(), context
.release());
3778 isl::aff
aff::gist_params(isl::set context
) const {
3779 auto res
= isl_aff_gist_params(copy(), context
.release());
3783 isl::basic_set
aff::gt_basic_set(isl::aff aff2
) const {
3784 auto res
= isl_aff_gt_basic_set(copy(), aff2
.release());
3788 isl::set
aff::gt_set(isl::aff aff2
) const {
3789 auto res
= isl_aff_gt_set(copy(), aff2
.release());
3793 isl::aff
aff::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
3794 auto res
= isl_aff_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
3798 isl::boolean
aff::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
3799 auto res
= isl_aff_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
3803 isl::boolean
aff::is_cst() const {
3804 auto res
= isl_aff_is_cst(get());
3808 isl::boolean
aff::is_nan() const {
3809 auto res
= isl_aff_is_nan(get());
3813 isl::basic_set
aff::le_basic_set(isl::aff aff2
) const {
3814 auto res
= isl_aff_le_basic_set(copy(), aff2
.release());
3818 isl::set
aff::le_set(isl::aff aff2
) const {
3819 auto res
= isl_aff_le_set(copy(), aff2
.release());
3823 isl::basic_set
aff::lt_basic_set(isl::aff aff2
) const {
3824 auto res
= isl_aff_lt_basic_set(copy(), aff2
.release());
3828 isl::set
aff::lt_set(isl::aff aff2
) const {
3829 auto res
= isl_aff_lt_set(copy(), aff2
.release());
3833 isl::aff
aff::mod(isl::val mod
) const {
3834 auto res
= isl_aff_mod_val(copy(), mod
.release());
3838 isl::aff
aff::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
3839 auto res
= isl_aff_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
3843 isl::aff
aff::mul(isl::aff aff2
) const {
3844 auto res
= isl_aff_mul(copy(), aff2
.release());
3848 isl::aff
aff::nan_on_domain(isl::local_space ls
) {
3849 auto res
= isl_aff_nan_on_domain(ls
.release());
3853 isl::set
aff::ne_set(isl::aff aff2
) const {
3854 auto res
= isl_aff_ne_set(copy(), aff2
.release());
3858 isl::aff
aff::neg() const {
3859 auto res
= isl_aff_neg(copy());
3863 isl::basic_set
aff::neg_basic_set() const {
3864 auto res
= isl_aff_neg_basic_set(copy());
3868 isl::boolean
aff::plain_is_equal(const isl::aff
&aff2
) const {
3869 auto res
= isl_aff_plain_is_equal(get(), aff2
.get());
3873 isl::boolean
aff::plain_is_zero() const {
3874 auto res
= isl_aff_plain_is_zero(get());
3878 isl::aff
aff::project_domain_on_params() const {
3879 auto res
= isl_aff_project_domain_on_params(copy());
3883 isl::aff
aff::pullback(isl::multi_aff ma
) const {
3884 auto res
= isl_aff_pullback_multi_aff(copy(), ma
.release());
3888 isl::aff
aff::pullback_aff(isl::aff aff2
) const {
3889 auto res
= isl_aff_pullback_aff(copy(), aff2
.release());
3893 isl::aff
aff::scale(isl::val v
) const {
3894 auto res
= isl_aff_scale_val(copy(), v
.release());
3898 isl::aff
aff::scale_down(isl::val v
) const {
3899 auto res
= isl_aff_scale_down_val(copy(), v
.release());
3903 isl::aff
aff::scale_down_ui(unsigned int f
) const {
3904 auto res
= isl_aff_scale_down_ui(copy(), f
);
3908 isl::aff
aff::set_coefficient_si(isl::dim type
, int pos
, int v
) const {
3909 auto res
= isl_aff_set_coefficient_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
);
3913 isl::aff
aff::set_coefficient_val(isl::dim type
, int pos
, isl::val v
) const {
3914 auto res
= isl_aff_set_coefficient_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
3918 isl::aff
aff::set_constant_si(int v
) const {
3919 auto res
= isl_aff_set_constant_si(copy(), v
);
3923 isl::aff
aff::set_constant_val(isl::val v
) const {
3924 auto res
= isl_aff_set_constant_val(copy(), v
.release());
3928 isl::aff
aff::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
3929 auto res
= isl_aff_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
3933 isl::aff
aff::set_tuple_id(isl::dim type
, isl::id id
) const {
3934 auto res
= isl_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
3938 isl::aff
aff::sub(isl::aff aff2
) const {
3939 auto res
= isl_aff_sub(copy(), aff2
.release());
3943 isl::aff
aff::var_on_domain(isl::local_space ls
, isl::dim type
, unsigned int pos
) {
3944 auto res
= isl_aff_var_on_domain(ls
.release(), static_cast<enum isl_dim_type
>(type
), pos
);
3948 isl::basic_set
aff::zero_basic_set() const {
3949 auto res
= isl_aff_zero_basic_set(copy());
3953 // implementations for isl::aff_list
3954 isl::aff_list
manage(__isl_take isl_aff_list
*ptr
) {
3955 return aff_list(ptr
);
3957 isl::aff_list
manage_copy(__isl_keep isl_aff_list
*ptr
) {
3958 return aff_list(isl_aff_list_copy(ptr
));
3960 isl::aff_list
give(__isl_take isl_aff_list
*ptr
) {
3965 aff_list::aff_list()
3968 aff_list::aff_list(const isl::aff_list
&obj
)
3969 : ptr(obj
.copy()) {}
3970 aff_list::aff_list(std::nullptr_t
)
3974 aff_list::aff_list(__isl_take isl_aff_list
*ptr
)
3978 aff_list
&aff_list::operator=(isl::aff_list obj
) {
3979 std::swap(this->ptr
, obj
.ptr
);
3983 aff_list::~aff_list() {
3985 isl_aff_list_free(ptr
);
3988 __isl_give isl_aff_list
*aff_list::copy() const & {
3989 return isl_aff_list_copy(ptr
);
3992 __isl_keep isl_aff_list
*aff_list::get() const {
3996 __isl_give isl_aff_list
*aff_list::release() {
3997 isl_aff_list
*tmp
= ptr
;
4002 bool aff_list::is_null() const {
4003 return ptr
== nullptr;
4005 __isl_keep isl_aff_list
*aff_list::keep() const {
4009 __isl_give isl_aff_list
*aff_list::take() {
4013 aff_list::operator bool() const {
4018 isl::ctx
aff_list::get_ctx() const {
4019 return isl::ctx(isl_aff_list_get_ctx(ptr
));
4022 void aff_list::dump() const {
4023 isl_aff_list_dump(get());
4028 // implementations for isl::ast_build
4029 isl::ast_build
manage(__isl_take isl_ast_build
*ptr
) {
4030 return ast_build(ptr
);
4032 isl::ast_build
manage_copy(__isl_keep isl_ast_build
*ptr
) {
4033 return ast_build(isl_ast_build_copy(ptr
));
4035 isl::ast_build
give(__isl_take isl_ast_build
*ptr
) {
4040 ast_build::ast_build()
4043 ast_build::ast_build(const isl::ast_build
&obj
)
4044 : ptr(obj
.copy()) {}
4045 ast_build::ast_build(std::nullptr_t
)
4049 ast_build::ast_build(__isl_take isl_ast_build
*ptr
)
4052 ast_build::ast_build(isl::ctx ctx
) {
4053 auto res
= isl_ast_build_alloc(ctx
.release());
4057 ast_build
&ast_build::operator=(isl::ast_build obj
) {
4058 std::swap(this->ptr
, obj
.ptr
);
4062 ast_build::~ast_build() {
4064 isl_ast_build_free(ptr
);
4067 __isl_give isl_ast_build
*ast_build::copy() const & {
4068 return isl_ast_build_copy(ptr
);
4071 __isl_keep isl_ast_build
*ast_build::get() const {
4075 __isl_give isl_ast_build
*ast_build::release() {
4076 isl_ast_build
*tmp
= ptr
;
4081 bool ast_build::is_null() const {
4082 return ptr
== nullptr;
4084 __isl_keep isl_ast_build
*ast_build::keep() const {
4088 __isl_give isl_ast_build
*ast_build::take() {
4092 ast_build::operator bool() const {
4097 isl::ctx
ast_build::get_ctx() const {
4098 return isl::ctx(isl_ast_build_get_ctx(ptr
));
4102 isl::ast_expr
ast_build::access_from(isl::pw_multi_aff pma
) const {
4103 auto res
= isl_ast_build_access_from_pw_multi_aff(get(), pma
.release());
4107 isl::ast_expr
ast_build::access_from(isl::multi_pw_aff mpa
) const {
4108 auto res
= isl_ast_build_access_from_multi_pw_aff(get(), mpa
.release());
4112 isl::ast_node
ast_build::ast_from_schedule(isl::union_map schedule
) const {
4113 auto res
= isl_ast_build_ast_from_schedule(get(), schedule
.release());
4117 isl::ast_expr
ast_build::call_from(isl::pw_multi_aff pma
) const {
4118 auto res
= isl_ast_build_call_from_pw_multi_aff(get(), pma
.release());
4122 isl::ast_expr
ast_build::call_from(isl::multi_pw_aff mpa
) const {
4123 auto res
= isl_ast_build_call_from_multi_pw_aff(get(), mpa
.release());
4127 isl::ast_expr
ast_build::expr_from(isl::set set
) const {
4128 auto res
= isl_ast_build_expr_from_set(get(), set
.release());
4132 isl::ast_expr
ast_build::expr_from(isl::pw_aff pa
) const {
4133 auto res
= isl_ast_build_expr_from_pw_aff(get(), pa
.release());
4137 isl::ast_build
ast_build::from_context(isl::set set
) {
4138 auto res
= isl_ast_build_from_context(set
.release());
4142 isl::union_map
ast_build::get_schedule() const {
4143 auto res
= isl_ast_build_get_schedule(get());
4147 isl::space
ast_build::get_schedule_space() const {
4148 auto res
= isl_ast_build_get_schedule_space(get());
4152 isl::ast_node
ast_build::node_from_schedule(isl::schedule schedule
) const {
4153 auto res
= isl_ast_build_node_from_schedule(get(), schedule
.release());
4157 isl::ast_node
ast_build::node_from_schedule_map(isl::union_map schedule
) const {
4158 auto res
= isl_ast_build_node_from_schedule_map(get(), schedule
.release());
4162 isl::ast_build
ast_build::restrict(isl::set set
) const {
4163 auto res
= isl_ast_build_restrict(copy(), set
.release());
4167 // implementations for isl::ast_expr
4168 isl::ast_expr
manage(__isl_take isl_ast_expr
*ptr
) {
4169 return ast_expr(ptr
);
4171 isl::ast_expr
manage_copy(__isl_keep isl_ast_expr
*ptr
) {
4172 return ast_expr(isl_ast_expr_copy(ptr
));
4174 isl::ast_expr
give(__isl_take isl_ast_expr
*ptr
) {
4179 ast_expr::ast_expr()
4182 ast_expr::ast_expr(const isl::ast_expr
&obj
)
4183 : ptr(obj
.copy()) {}
4184 ast_expr::ast_expr(std::nullptr_t
)
4188 ast_expr::ast_expr(__isl_take isl_ast_expr
*ptr
)
4192 ast_expr
&ast_expr::operator=(isl::ast_expr obj
) {
4193 std::swap(this->ptr
, obj
.ptr
);
4197 ast_expr::~ast_expr() {
4199 isl_ast_expr_free(ptr
);
4202 __isl_give isl_ast_expr
*ast_expr::copy() const & {
4203 return isl_ast_expr_copy(ptr
);
4206 __isl_keep isl_ast_expr
*ast_expr::get() const {
4210 __isl_give isl_ast_expr
*ast_expr::release() {
4211 isl_ast_expr
*tmp
= ptr
;
4216 bool ast_expr::is_null() const {
4217 return ptr
== nullptr;
4219 __isl_keep isl_ast_expr
*ast_expr::keep() const {
4223 __isl_give isl_ast_expr
*ast_expr::take() {
4227 ast_expr::operator bool() const {
4232 isl::ctx
ast_expr::get_ctx() const {
4233 return isl::ctx(isl_ast_expr_get_ctx(ptr
));
4235 std::string
ast_expr::to_str() const {
4236 char *Tmp
= isl_ast_expr_to_str(get());
4245 void ast_expr::dump() const {
4246 isl_ast_expr_dump(get());
4250 isl::ast_expr
ast_expr::access(isl::ast_expr_list indices
) const {
4251 auto res
= isl_ast_expr_access(copy(), indices
.release());
4255 isl::ast_expr
ast_expr::add(isl::ast_expr expr2
) const {
4256 auto res
= isl_ast_expr_add(copy(), expr2
.release());
4260 isl::ast_expr
ast_expr::address_of() const {
4261 auto res
= isl_ast_expr_address_of(copy());
4265 isl::ast_expr
ast_expr::call(isl::ast_expr_list arguments
) const {
4266 auto res
= isl_ast_expr_call(copy(), arguments
.release());
4270 isl::ast_expr
ast_expr::div(isl::ast_expr expr2
) const {
4271 auto res
= isl_ast_expr_div(copy(), expr2
.release());
4275 isl::ast_expr
ast_expr::eq(isl::ast_expr expr2
) const {
4276 auto res
= isl_ast_expr_eq(copy(), expr2
.release());
4280 isl::ast_expr
ast_expr::from_id(isl::id id
) {
4281 auto res
= isl_ast_expr_from_id(id
.release());
4285 isl::ast_expr
ast_expr::from_val(isl::val v
) {
4286 auto res
= isl_ast_expr_from_val(v
.release());
4290 isl::ast_expr
ast_expr::ge(isl::ast_expr expr2
) const {
4291 auto res
= isl_ast_expr_ge(copy(), expr2
.release());
4295 isl::id
ast_expr::get_id() const {
4296 auto res
= isl_ast_expr_get_id(get());
4300 isl::ast_expr
ast_expr::get_op_arg(int pos
) const {
4301 auto res
= isl_ast_expr_get_op_arg(get(), pos
);
4305 isl::val
ast_expr::get_val() const {
4306 auto res
= isl_ast_expr_get_val(get());
4310 isl::ast_expr
ast_expr::gt(isl::ast_expr expr2
) const {
4311 auto res
= isl_ast_expr_gt(copy(), expr2
.release());
4315 isl::boolean
ast_expr::is_equal(const isl::ast_expr
&expr2
) const {
4316 auto res
= isl_ast_expr_is_equal(get(), expr2
.get());
4320 isl::ast_expr
ast_expr::le(isl::ast_expr expr2
) const {
4321 auto res
= isl_ast_expr_le(copy(), expr2
.release());
4325 isl::ast_expr
ast_expr::lt(isl::ast_expr expr2
) const {
4326 auto res
= isl_ast_expr_lt(copy(), expr2
.release());
4330 isl::ast_expr
ast_expr::mul(isl::ast_expr expr2
) const {
4331 auto res
= isl_ast_expr_mul(copy(), expr2
.release());
4335 isl::ast_expr
ast_expr::neg() const {
4336 auto res
= isl_ast_expr_neg(copy());
4340 isl::ast_expr
ast_expr::pdiv_q(isl::ast_expr expr2
) const {
4341 auto res
= isl_ast_expr_pdiv_q(copy(), expr2
.release());
4345 isl::ast_expr
ast_expr::pdiv_r(isl::ast_expr expr2
) const {
4346 auto res
= isl_ast_expr_pdiv_r(copy(), expr2
.release());
4350 isl::ast_expr
ast_expr::set_op_arg(int pos
, isl::ast_expr arg
) const {
4351 auto res
= isl_ast_expr_set_op_arg(copy(), pos
, arg
.release());
4355 isl::ast_expr
ast_expr::sub(isl::ast_expr expr2
) const {
4356 auto res
= isl_ast_expr_sub(copy(), expr2
.release());
4360 isl::ast_expr
ast_expr::substitute_ids(isl::id_to_ast_expr id2expr
) const {
4361 auto res
= isl_ast_expr_substitute_ids(copy(), id2expr
.release());
4365 std::string
ast_expr::to_C_str() const {
4366 auto res
= isl_ast_expr_to_C_str(get());
4367 std::string
tmp(res
);
4372 // implementations for isl::ast_expr_list
4373 isl::ast_expr_list
manage(__isl_take isl_ast_expr_list
*ptr
) {
4374 return ast_expr_list(ptr
);
4376 isl::ast_expr_list
manage_copy(__isl_keep isl_ast_expr_list
*ptr
) {
4377 return ast_expr_list(isl_ast_expr_list_copy(ptr
));
4379 isl::ast_expr_list
give(__isl_take isl_ast_expr_list
*ptr
) {
4384 ast_expr_list::ast_expr_list()
4387 ast_expr_list::ast_expr_list(const isl::ast_expr_list
&obj
)
4388 : ptr(obj
.copy()) {}
4389 ast_expr_list::ast_expr_list(std::nullptr_t
)
4393 ast_expr_list::ast_expr_list(__isl_take isl_ast_expr_list
*ptr
)
4397 ast_expr_list
&ast_expr_list::operator=(isl::ast_expr_list obj
) {
4398 std::swap(this->ptr
, obj
.ptr
);
4402 ast_expr_list::~ast_expr_list() {
4404 isl_ast_expr_list_free(ptr
);
4407 __isl_give isl_ast_expr_list
*ast_expr_list::copy() const & {
4408 return isl_ast_expr_list_copy(ptr
);
4411 __isl_keep isl_ast_expr_list
*ast_expr_list::get() const {
4415 __isl_give isl_ast_expr_list
*ast_expr_list::release() {
4416 isl_ast_expr_list
*tmp
= ptr
;
4421 bool ast_expr_list::is_null() const {
4422 return ptr
== nullptr;
4424 __isl_keep isl_ast_expr_list
*ast_expr_list::keep() const {
4428 __isl_give isl_ast_expr_list
*ast_expr_list::take() {
4432 ast_expr_list::operator bool() const {
4437 isl::ctx
ast_expr_list::get_ctx() const {
4438 return isl::ctx(isl_ast_expr_list_get_ctx(ptr
));
4441 void ast_expr_list::dump() const {
4442 isl_ast_expr_list_dump(get());
4447 // implementations for isl::ast_node
4448 isl::ast_node
manage(__isl_take isl_ast_node
*ptr
) {
4449 return ast_node(ptr
);
4451 isl::ast_node
manage_copy(__isl_keep isl_ast_node
*ptr
) {
4452 return ast_node(isl_ast_node_copy(ptr
));
4454 isl::ast_node
give(__isl_take isl_ast_node
*ptr
) {
4459 ast_node::ast_node()
4462 ast_node::ast_node(const isl::ast_node
&obj
)
4463 : ptr(obj
.copy()) {}
4464 ast_node::ast_node(std::nullptr_t
)
4468 ast_node::ast_node(__isl_take isl_ast_node
*ptr
)
4472 ast_node
&ast_node::operator=(isl::ast_node obj
) {
4473 std::swap(this->ptr
, obj
.ptr
);
4477 ast_node::~ast_node() {
4479 isl_ast_node_free(ptr
);
4482 __isl_give isl_ast_node
*ast_node::copy() const & {
4483 return isl_ast_node_copy(ptr
);
4486 __isl_keep isl_ast_node
*ast_node::get() const {
4490 __isl_give isl_ast_node
*ast_node::release() {
4491 isl_ast_node
*tmp
= ptr
;
4496 bool ast_node::is_null() const {
4497 return ptr
== nullptr;
4499 __isl_keep isl_ast_node
*ast_node::keep() const {
4503 __isl_give isl_ast_node
*ast_node::take() {
4507 ast_node::operator bool() const {
4512 isl::ctx
ast_node::get_ctx() const {
4513 return isl::ctx(isl_ast_node_get_ctx(ptr
));
4515 std::string
ast_node::to_str() const {
4516 char *Tmp
= isl_ast_node_to_str(get());
4525 void ast_node::dump() const {
4526 isl_ast_node_dump(get());
4530 isl::ast_node
ast_node::alloc_user(isl::ast_expr expr
) {
4531 auto res
= isl_ast_node_alloc_user(expr
.release());
4535 isl::ast_node_list
ast_node::block_get_children() const {
4536 auto res
= isl_ast_node_block_get_children(get());
4540 isl::ast_node
ast_node::for_get_body() const {
4541 auto res
= isl_ast_node_for_get_body(get());
4545 isl::ast_expr
ast_node::for_get_cond() const {
4546 auto res
= isl_ast_node_for_get_cond(get());
4550 isl::ast_expr
ast_node::for_get_inc() const {
4551 auto res
= isl_ast_node_for_get_inc(get());
4555 isl::ast_expr
ast_node::for_get_init() const {
4556 auto res
= isl_ast_node_for_get_init(get());
4560 isl::ast_expr
ast_node::for_get_iterator() const {
4561 auto res
= isl_ast_node_for_get_iterator(get());
4565 isl::boolean
ast_node::for_is_degenerate() const {
4566 auto res
= isl_ast_node_for_is_degenerate(get());
4570 isl::id
ast_node::get_annotation() const {
4571 auto res
= isl_ast_node_get_annotation(get());
4575 isl::ast_expr
ast_node::if_get_cond() const {
4576 auto res
= isl_ast_node_if_get_cond(get());
4580 isl::ast_node
ast_node::if_get_else() const {
4581 auto res
= isl_ast_node_if_get_else(get());
4585 isl::ast_node
ast_node::if_get_then() const {
4586 auto res
= isl_ast_node_if_get_then(get());
4590 isl::boolean
ast_node::if_has_else() const {
4591 auto res
= isl_ast_node_if_has_else(get());
4595 isl::id
ast_node::mark_get_id() const {
4596 auto res
= isl_ast_node_mark_get_id(get());
4600 isl::ast_node
ast_node::mark_get_node() const {
4601 auto res
= isl_ast_node_mark_get_node(get());
4605 isl::ast_node
ast_node::set_annotation(isl::id annotation
) const {
4606 auto res
= isl_ast_node_set_annotation(copy(), annotation
.release());
4610 std::string
ast_node::to_C_str() const {
4611 auto res
= isl_ast_node_to_C_str(get());
4612 std::string
tmp(res
);
4617 isl::ast_expr
ast_node::user_get_expr() const {
4618 auto res
= isl_ast_node_user_get_expr(get());
4622 // implementations for isl::ast_node_list
4623 isl::ast_node_list
manage(__isl_take isl_ast_node_list
*ptr
) {
4624 return ast_node_list(ptr
);
4626 isl::ast_node_list
manage_copy(__isl_keep isl_ast_node_list
*ptr
) {
4627 return ast_node_list(isl_ast_node_list_copy(ptr
));
4629 isl::ast_node_list
give(__isl_take isl_ast_node_list
*ptr
) {
4634 ast_node_list::ast_node_list()
4637 ast_node_list::ast_node_list(const isl::ast_node_list
&obj
)
4638 : ptr(obj
.copy()) {}
4639 ast_node_list::ast_node_list(std::nullptr_t
)
4643 ast_node_list::ast_node_list(__isl_take isl_ast_node_list
*ptr
)
4647 ast_node_list
&ast_node_list::operator=(isl::ast_node_list obj
) {
4648 std::swap(this->ptr
, obj
.ptr
);
4652 ast_node_list::~ast_node_list() {
4654 isl_ast_node_list_free(ptr
);
4657 __isl_give isl_ast_node_list
*ast_node_list::copy() const & {
4658 return isl_ast_node_list_copy(ptr
);
4661 __isl_keep isl_ast_node_list
*ast_node_list::get() const {
4665 __isl_give isl_ast_node_list
*ast_node_list::release() {
4666 isl_ast_node_list
*tmp
= ptr
;
4671 bool ast_node_list::is_null() const {
4672 return ptr
== nullptr;
4674 __isl_keep isl_ast_node_list
*ast_node_list::keep() const {
4678 __isl_give isl_ast_node_list
*ast_node_list::take() {
4682 ast_node_list::operator bool() const {
4687 isl::ctx
ast_node_list::get_ctx() const {
4688 return isl::ctx(isl_ast_node_list_get_ctx(ptr
));
4691 void ast_node_list::dump() const {
4692 isl_ast_node_list_dump(get());
4697 // implementations for isl::basic_map
4698 isl::basic_map
manage(__isl_take isl_basic_map
*ptr
) {
4699 return basic_map(ptr
);
4701 isl::basic_map
manage_copy(__isl_keep isl_basic_map
*ptr
) {
4702 return basic_map(isl_basic_map_copy(ptr
));
4704 isl::basic_map
give(__isl_take isl_basic_map
*ptr
) {
4709 basic_map::basic_map()
4712 basic_map::basic_map(const isl::basic_map
&obj
)
4713 : ptr(obj
.copy()) {}
4714 basic_map::basic_map(std::nullptr_t
)
4718 basic_map::basic_map(__isl_take isl_basic_map
*ptr
)
4721 basic_map::basic_map(isl::ctx ctx
, const std::string
&str
) {
4722 auto res
= isl_basic_map_read_from_str(ctx
.release(), str
.c_str());
4726 basic_map
&basic_map::operator=(isl::basic_map obj
) {
4727 std::swap(this->ptr
, obj
.ptr
);
4731 basic_map::~basic_map() {
4733 isl_basic_map_free(ptr
);
4736 __isl_give isl_basic_map
*basic_map::copy() const & {
4737 return isl_basic_map_copy(ptr
);
4740 __isl_keep isl_basic_map
*basic_map::get() const {
4744 __isl_give isl_basic_map
*basic_map::release() {
4745 isl_basic_map
*tmp
= ptr
;
4750 bool basic_map::is_null() const {
4751 return ptr
== nullptr;
4753 __isl_keep isl_basic_map
*basic_map::keep() const {
4757 __isl_give isl_basic_map
*basic_map::take() {
4761 basic_map::operator bool() const {
4766 isl::ctx
basic_map::get_ctx() const {
4767 return isl::ctx(isl_basic_map_get_ctx(ptr
));
4769 std::string
basic_map::to_str() const {
4770 char *Tmp
= isl_basic_map_to_str(get());
4779 void basic_map::dump() const {
4780 isl_basic_map_dump(get());
4784 isl::basic_map
basic_map::add_constraint(isl::constraint constraint
) const {
4785 auto res
= isl_basic_map_add_constraint(copy(), constraint
.release());
4789 isl::basic_map
basic_map::add_dims(isl::dim type
, unsigned int n
) const {
4790 auto res
= isl_basic_map_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
4794 isl::basic_map
basic_map::affine_hull() const {
4795 auto res
= isl_basic_map_affine_hull(copy());
4799 isl::basic_map
basic_map::align_params(isl::space model
) const {
4800 auto res
= isl_basic_map_align_params(copy(), model
.release());
4804 isl::basic_map
basic_map::apply_domain(isl::basic_map bmap2
) const {
4805 auto res
= isl_basic_map_apply_domain(copy(), bmap2
.release());
4809 isl::basic_map
basic_map::apply_range(isl::basic_map bmap2
) const {
4810 auto res
= isl_basic_map_apply_range(copy(), bmap2
.release());
4814 isl::boolean
basic_map::can_curry() const {
4815 auto res
= isl_basic_map_can_curry(get());
4819 isl::boolean
basic_map::can_uncurry() const {
4820 auto res
= isl_basic_map_can_uncurry(get());
4824 isl::boolean
basic_map::can_zip() const {
4825 auto res
= isl_basic_map_can_zip(get());
4829 isl::basic_map
basic_map::curry() const {
4830 auto res
= isl_basic_map_curry(copy());
4834 isl::basic_set
basic_map::deltas() const {
4835 auto res
= isl_basic_map_deltas(copy());
4839 isl::basic_map
basic_map::deltas_map() const {
4840 auto res
= isl_basic_map_deltas_map(copy());
4844 isl::basic_map
basic_map::detect_equalities() const {
4845 auto res
= isl_basic_map_detect_equalities(copy());
4849 unsigned int basic_map::dim(isl::dim type
) const {
4850 auto res
= isl_basic_map_dim(get(), static_cast<enum isl_dim_type
>(type
));
4854 isl::basic_set
basic_map::domain() const {
4855 auto res
= isl_basic_map_domain(copy());
4859 isl::basic_map
basic_map::domain_map() const {
4860 auto res
= isl_basic_map_domain_map(copy());
4864 isl::basic_map
basic_map::domain_product(isl::basic_map bmap2
) const {
4865 auto res
= isl_basic_map_domain_product(copy(), bmap2
.release());
4869 isl::basic_map
basic_map::drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
4870 auto res
= isl_basic_map_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
4874 isl::basic_map
basic_map::drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
4875 auto res
= isl_basic_map_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
4879 isl::basic_map
basic_map::eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const {
4880 auto res
= isl_basic_map_eliminate(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
4884 isl::basic_map
basic_map::empty(isl::space space
) {
4885 auto res
= isl_basic_map_empty(space
.release());
4889 isl::basic_map
basic_map::equal(isl::space dim
, unsigned int n_equal
) {
4890 auto res
= isl_basic_map_equal(dim
.release(), n_equal
);
4894 isl::mat
basic_map::equalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
, isl::dim c5
) const {
4895 auto res
= isl_basic_map_equalities_matrix(get(), static_cast<enum isl_dim_type
>(c1
), static_cast<enum isl_dim_type
>(c2
), static_cast<enum isl_dim_type
>(c3
), static_cast<enum isl_dim_type
>(c4
), static_cast<enum isl_dim_type
>(c5
));
4899 isl::basic_map
basic_map::equate(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
4900 auto res
= isl_basic_map_equate(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
4904 int basic_map::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
4905 auto res
= isl_basic_map_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
4909 isl::basic_map
basic_map::fix_si(isl::dim type
, unsigned int pos
, int value
) const {
4910 auto res
= isl_basic_map_fix_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
4914 isl::basic_map
basic_map::fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const {
4915 auto res
= isl_basic_map_fix_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
4919 isl::basic_map
basic_map::flat_product(isl::basic_map bmap2
) const {
4920 auto res
= isl_basic_map_flat_product(copy(), bmap2
.release());
4924 isl::basic_map
basic_map::flat_range_product(isl::basic_map bmap2
) const {
4925 auto res
= isl_basic_map_flat_range_product(copy(), bmap2
.release());
4929 isl::basic_map
basic_map::flatten() const {
4930 auto res
= isl_basic_map_flatten(copy());
4934 isl::basic_map
basic_map::flatten_domain() const {
4935 auto res
= isl_basic_map_flatten_domain(copy());
4939 isl::basic_map
basic_map::flatten_range() const {
4940 auto res
= isl_basic_map_flatten_range(copy());
4944 isl::stat
basic_map::foreach_constraint(const std::function
<isl::stat(isl::constraint
)> &fn
) const {
4946 auto fn_lambda
= [](isl_constraint
*arg_0
, void *arg_1
) -> isl_stat
{
4947 auto *func
= *static_cast<const std::function
<isl::stat(isl::constraint
)> **>(arg_1
);
4948 stat ret
= (*func
)(isl::manage(arg_0
));
4949 return isl_stat(ret
);
4951 auto res
= isl_basic_map_foreach_constraint(get(), fn_lambda
, &fn_p
);
4952 return isl::stat(res
);
4955 isl::basic_map
basic_map::from_aff(isl::aff aff
) {
4956 auto res
= isl_basic_map_from_aff(aff
.release());
4960 isl::basic_map
basic_map::from_aff_list(isl::space domain_dim
, isl::aff_list list
) {
4961 auto res
= isl_basic_map_from_aff_list(domain_dim
.release(), list
.release());
4965 isl::basic_map
basic_map::from_constraint(isl::constraint constraint
) {
4966 auto res
= isl_basic_map_from_constraint(constraint
.release());
4970 isl::basic_map
basic_map::from_domain(isl::basic_set bset
) {
4971 auto res
= isl_basic_map_from_domain(bset
.release());
4975 isl::basic_map
basic_map::from_domain_and_range(isl::basic_set domain
, isl::basic_set range
) {
4976 auto res
= isl_basic_map_from_domain_and_range(domain
.release(), range
.release());
4980 isl::basic_map
basic_map::from_multi_aff(isl::multi_aff maff
) {
4981 auto res
= isl_basic_map_from_multi_aff(maff
.release());
4985 isl::basic_map
basic_map::from_qpolynomial(isl::qpolynomial qp
) {
4986 auto res
= isl_basic_map_from_qpolynomial(qp
.release());
4990 isl::basic_map
basic_map::from_range(isl::basic_set bset
) {
4991 auto res
= isl_basic_map_from_range(bset
.release());
4995 isl::constraint_list
basic_map::get_constraint_list() const {
4996 auto res
= isl_basic_map_get_constraint_list(get());
5000 std::string
basic_map::get_dim_name(isl::dim type
, unsigned int pos
) const {
5001 auto res
= isl_basic_map_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
5002 std::string
tmp(res
);
5006 isl::aff
basic_map::get_div(int pos
) const {
5007 auto res
= isl_basic_map_get_div(get(), pos
);
5011 isl::local_space
basic_map::get_local_space() const {
5012 auto res
= isl_basic_map_get_local_space(get());
5016 isl::space
basic_map::get_space() const {
5017 auto res
= isl_basic_map_get_space(get());
5021 std::string
basic_map::get_tuple_name(isl::dim type
) const {
5022 auto res
= isl_basic_map_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
5023 std::string
tmp(res
);
5027 isl::basic_map
basic_map::gist(isl::basic_map context
) const {
5028 auto res
= isl_basic_map_gist(copy(), context
.release());
5032 isl::basic_map
basic_map::gist_domain(isl::basic_set context
) const {
5033 auto res
= isl_basic_map_gist_domain(copy(), context
.release());
5037 isl::boolean
basic_map::has_dim_id(isl::dim type
, unsigned int pos
) const {
5038 auto res
= isl_basic_map_has_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
5042 isl::basic_map
basic_map::identity(isl::space dim
) {
5043 auto res
= isl_basic_map_identity(dim
.release());
5047 isl::boolean
basic_map::image_is_bounded() const {
5048 auto res
= isl_basic_map_image_is_bounded(get());
5052 isl::mat
basic_map::inequalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
, isl::dim c5
) const {
5053 auto res
= isl_basic_map_inequalities_matrix(get(), static_cast<enum isl_dim_type
>(c1
), static_cast<enum isl_dim_type
>(c2
), static_cast<enum isl_dim_type
>(c3
), static_cast<enum isl_dim_type
>(c4
), static_cast<enum isl_dim_type
>(c5
));
5057 isl::basic_map
basic_map::insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const {
5058 auto res
= isl_basic_map_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), pos
, n
);
5062 isl::basic_map
basic_map::intersect(isl::basic_map bmap2
) const {
5063 auto res
= isl_basic_map_intersect(copy(), bmap2
.release());
5067 isl::basic_map
basic_map::intersect_domain(isl::basic_set bset
) const {
5068 auto res
= isl_basic_map_intersect_domain(copy(), bset
.release());
5072 isl::basic_map
basic_map::intersect_range(isl::basic_set bset
) const {
5073 auto res
= isl_basic_map_intersect_range(copy(), bset
.release());
5077 isl::boolean
basic_map::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5078 auto res
= isl_basic_map_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5082 isl::boolean
basic_map::is_disjoint(const isl::basic_map
&bmap2
) const {
5083 auto res
= isl_basic_map_is_disjoint(get(), bmap2
.get());
5087 isl::boolean
basic_map::is_empty() const {
5088 auto res
= isl_basic_map_is_empty(get());
5092 isl::boolean
basic_map::is_equal(const isl::basic_map
&bmap2
) const {
5093 auto res
= isl_basic_map_is_equal(get(), bmap2
.get());
5097 isl::boolean
basic_map::is_rational() const {
5098 auto res
= isl_basic_map_is_rational(get());
5102 isl::boolean
basic_map::is_single_valued() const {
5103 auto res
= isl_basic_map_is_single_valued(get());
5107 isl::boolean
basic_map::is_strict_subset(const isl::basic_map
&bmap2
) const {
5108 auto res
= isl_basic_map_is_strict_subset(get(), bmap2
.get());
5112 isl::boolean
basic_map::is_subset(const isl::basic_map
&bmap2
) const {
5113 auto res
= isl_basic_map_is_subset(get(), bmap2
.get());
5117 isl::boolean
basic_map::is_universe() const {
5118 auto res
= isl_basic_map_is_universe(get());
5122 isl::basic_map
basic_map::less_at(isl::space dim
, unsigned int pos
) {
5123 auto res
= isl_basic_map_less_at(dim
.release(), pos
);
5127 isl::map
basic_map::lexmax() const {
5128 auto res
= isl_basic_map_lexmax(copy());
5132 isl::map
basic_map::lexmin() const {
5133 auto res
= isl_basic_map_lexmin(copy());
5137 isl::pw_multi_aff
basic_map::lexmin_pw_multi_aff() const {
5138 auto res
= isl_basic_map_lexmin_pw_multi_aff(copy());
5142 isl::basic_map
basic_map::lower_bound_si(isl::dim type
, unsigned int pos
, int value
) const {
5143 auto res
= isl_basic_map_lower_bound_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
5147 isl::basic_map
basic_map::more_at(isl::space dim
, unsigned int pos
) {
5148 auto res
= isl_basic_map_more_at(dim
.release(), pos
);
5152 isl::basic_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 {
5153 auto res
= isl_basic_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
);
5157 isl::basic_map
basic_map::nat_universe(isl::space dim
) {
5158 auto res
= isl_basic_map_nat_universe(dim
.release());
5162 isl::basic_map
basic_map::neg() const {
5163 auto res
= isl_basic_map_neg(copy());
5167 isl::basic_map
basic_map::order_ge(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
5168 auto res
= isl_basic_map_order_ge(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
5172 isl::basic_map
basic_map::order_gt(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
5173 auto res
= isl_basic_map_order_gt(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
5177 isl::val
basic_map::plain_get_val_if_fixed(isl::dim type
, unsigned int pos
) const {
5178 auto res
= isl_basic_map_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type
>(type
), pos
);
5182 isl::boolean
basic_map::plain_is_empty() const {
5183 auto res
= isl_basic_map_plain_is_empty(get());
5187 isl::boolean
basic_map::plain_is_universe() const {
5188 auto res
= isl_basic_map_plain_is_universe(get());
5192 isl::basic_map
basic_map::preimage_domain_multi_aff(isl::multi_aff ma
) const {
5193 auto res
= isl_basic_map_preimage_domain_multi_aff(copy(), ma
.release());
5197 isl::basic_map
basic_map::preimage_range_multi_aff(isl::multi_aff ma
) const {
5198 auto res
= isl_basic_map_preimage_range_multi_aff(copy(), ma
.release());
5202 isl::basic_map
basic_map::product(isl::basic_map bmap2
) const {
5203 auto res
= isl_basic_map_product(copy(), bmap2
.release());
5207 isl::basic_map
basic_map::project_out(isl::dim type
, unsigned int first
, unsigned int n
) const {
5208 auto res
= isl_basic_map_project_out(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5212 isl::basic_set
basic_map::range() const {
5213 auto res
= isl_basic_map_range(copy());
5217 isl::basic_map
basic_map::range_map() const {
5218 auto res
= isl_basic_map_range_map(copy());
5222 isl::basic_map
basic_map::range_product(isl::basic_map bmap2
) const {
5223 auto res
= isl_basic_map_range_product(copy(), bmap2
.release());
5227 isl::basic_map
basic_map::remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5228 auto res
= isl_basic_map_remove_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5232 isl::basic_map
basic_map::remove_divs() const {
5233 auto res
= isl_basic_map_remove_divs(copy());
5237 isl::basic_map
basic_map::remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5238 auto res
= isl_basic_map_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5242 isl::basic_map
basic_map::remove_redundancies() const {
5243 auto res
= isl_basic_map_remove_redundancies(copy());
5247 isl::basic_map
basic_map::reverse() const {
5248 auto res
= isl_basic_map_reverse(copy());
5252 isl::basic_map
basic_map::sample() const {
5253 auto res
= isl_basic_map_sample(copy());
5257 isl::basic_map
basic_map::set_tuple_id(isl::dim type
, isl::id id
) const {
5258 auto res
= isl_basic_map_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
5262 isl::basic_map
basic_map::set_tuple_name(isl::dim type
, const std::string
&s
) const {
5263 auto res
= isl_basic_map_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
5267 isl::basic_map
basic_map::sum(isl::basic_map bmap2
) const {
5268 auto res
= isl_basic_map_sum(copy(), bmap2
.release());
5272 isl::basic_map
basic_map::uncurry() const {
5273 auto res
= isl_basic_map_uncurry(copy());
5277 isl::map
basic_map::unite(isl::basic_map bmap2
) const {
5278 auto res
= isl_basic_map_union(copy(), bmap2
.release());
5282 isl::basic_map
basic_map::universe(isl::space space
) {
5283 auto res
= isl_basic_map_universe(space
.release());
5287 isl::basic_map
basic_map::upper_bound_si(isl::dim type
, unsigned int pos
, int value
) const {
5288 auto res
= isl_basic_map_upper_bound_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
5292 isl::basic_set
basic_map::wrap() const {
5293 auto res
= isl_basic_map_wrap(copy());
5297 isl::basic_map
basic_map::zip() const {
5298 auto res
= isl_basic_map_zip(copy());
5302 // implementations for isl::basic_map_list
5303 isl::basic_map_list
manage(__isl_take isl_basic_map_list
*ptr
) {
5304 return basic_map_list(ptr
);
5306 isl::basic_map_list
manage_copy(__isl_keep isl_basic_map_list
*ptr
) {
5307 return basic_map_list(isl_basic_map_list_copy(ptr
));
5309 isl::basic_map_list
give(__isl_take isl_basic_map_list
*ptr
) {
5314 basic_map_list::basic_map_list()
5317 basic_map_list::basic_map_list(const isl::basic_map_list
&obj
)
5318 : ptr(obj
.copy()) {}
5319 basic_map_list::basic_map_list(std::nullptr_t
)
5323 basic_map_list::basic_map_list(__isl_take isl_basic_map_list
*ptr
)
5327 basic_map_list
&basic_map_list::operator=(isl::basic_map_list obj
) {
5328 std::swap(this->ptr
, obj
.ptr
);
5332 basic_map_list::~basic_map_list() {
5334 isl_basic_map_list_free(ptr
);
5337 __isl_give isl_basic_map_list
*basic_map_list::copy() const & {
5338 return isl_basic_map_list_copy(ptr
);
5341 __isl_keep isl_basic_map_list
*basic_map_list::get() const {
5345 __isl_give isl_basic_map_list
*basic_map_list::release() {
5346 isl_basic_map_list
*tmp
= ptr
;
5351 bool basic_map_list::is_null() const {
5352 return ptr
== nullptr;
5354 __isl_keep isl_basic_map_list
*basic_map_list::keep() const {
5358 __isl_give isl_basic_map_list
*basic_map_list::take() {
5362 basic_map_list::operator bool() const {
5367 isl::ctx
basic_map_list::get_ctx() const {
5368 return isl::ctx(isl_basic_map_list_get_ctx(ptr
));
5371 void basic_map_list::dump() const {
5372 isl_basic_map_list_dump(get());
5377 // implementations for isl::basic_set
5378 isl::basic_set
manage(__isl_take isl_basic_set
*ptr
) {
5379 return basic_set(ptr
);
5381 isl::basic_set
manage_copy(__isl_keep isl_basic_set
*ptr
) {
5382 return basic_set(isl_basic_set_copy(ptr
));
5384 isl::basic_set
give(__isl_take isl_basic_set
*ptr
) {
5389 basic_set::basic_set()
5392 basic_set::basic_set(const isl::basic_set
&obj
)
5393 : ptr(obj
.copy()) {}
5394 basic_set::basic_set(std::nullptr_t
)
5398 basic_set::basic_set(__isl_take isl_basic_set
*ptr
)
5401 basic_set::basic_set(isl::ctx ctx
, const std::string
&str
) {
5402 auto res
= isl_basic_set_read_from_str(ctx
.release(), str
.c_str());
5405 basic_set::basic_set(isl::point pnt
) {
5406 auto res
= isl_basic_set_from_point(pnt
.release());
5410 basic_set
&basic_set::operator=(isl::basic_set obj
) {
5411 std::swap(this->ptr
, obj
.ptr
);
5415 basic_set::~basic_set() {
5417 isl_basic_set_free(ptr
);
5420 __isl_give isl_basic_set
*basic_set::copy() const & {
5421 return isl_basic_set_copy(ptr
);
5424 __isl_keep isl_basic_set
*basic_set::get() const {
5428 __isl_give isl_basic_set
*basic_set::release() {
5429 isl_basic_set
*tmp
= ptr
;
5434 bool basic_set::is_null() const {
5435 return ptr
== nullptr;
5437 __isl_keep isl_basic_set
*basic_set::keep() const {
5441 __isl_give isl_basic_set
*basic_set::take() {
5445 basic_set::operator bool() const {
5450 isl::ctx
basic_set::get_ctx() const {
5451 return isl::ctx(isl_basic_set_get_ctx(ptr
));
5453 std::string
basic_set::to_str() const {
5454 char *Tmp
= isl_basic_set_to_str(get());
5463 void basic_set::dump() const {
5464 isl_basic_set_dump(get());
5468 isl::basic_set
basic_set::affine_hull() const {
5469 auto res
= isl_basic_set_affine_hull(copy());
5473 isl::basic_set
basic_set::align_params(isl::space model
) const {
5474 auto res
= isl_basic_set_align_params(copy(), model
.release());
5478 isl::basic_set
basic_set::apply(isl::basic_map bmap
) const {
5479 auto res
= isl_basic_set_apply(copy(), bmap
.release());
5483 isl::basic_set
basic_set::box_from_points(isl::point pnt1
, isl::point pnt2
) {
5484 auto res
= isl_basic_set_box_from_points(pnt1
.release(), pnt2
.release());
5488 isl::basic_set
basic_set::coefficients() const {
5489 auto res
= isl_basic_set_coefficients(copy());
5493 isl::basic_set
basic_set::detect_equalities() const {
5494 auto res
= isl_basic_set_detect_equalities(copy());
5498 unsigned int basic_set::dim(isl::dim type
) const {
5499 auto res
= isl_basic_set_dim(get(), static_cast<enum isl_dim_type
>(type
));
5503 isl::basic_set
basic_set::drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5504 auto res
= isl_basic_set_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5508 isl::basic_set
basic_set::drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5509 auto res
= isl_basic_set_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5513 isl::basic_set
basic_set::eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const {
5514 auto res
= isl_basic_set_eliminate(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5518 isl::basic_set
basic_set::empty(isl::space space
) {
5519 auto res
= isl_basic_set_empty(space
.release());
5523 isl::mat
basic_set::equalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
) const {
5524 auto res
= isl_basic_set_equalities_matrix(get(), static_cast<enum isl_dim_type
>(c1
), static_cast<enum isl_dim_type
>(c2
), static_cast<enum isl_dim_type
>(c3
), static_cast<enum isl_dim_type
>(c4
));
5528 isl::basic_set
basic_set::fix_si(isl::dim type
, unsigned int pos
, int value
) const {
5529 auto res
= isl_basic_set_fix_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
5533 isl::basic_set
basic_set::fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const {
5534 auto res
= isl_basic_set_fix_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
5538 isl::basic_set
basic_set::flat_product(isl::basic_set bset2
) const {
5539 auto res
= isl_basic_set_flat_product(copy(), bset2
.release());
5543 isl::basic_set
basic_set::flatten() const {
5544 auto res
= isl_basic_set_flatten(copy());
5548 isl::stat
basic_set::foreach_bound_pair(isl::dim type
, unsigned int pos
, const std::function
<isl::stat(isl::constraint
, isl::constraint
, isl::basic_set
)> &fn
) const {
5550 auto fn_lambda
= [](isl_constraint
*arg_0
, isl_constraint
*arg_1
, isl_basic_set
*arg_2
, void *arg_3
) -> isl_stat
{
5551 auto *func
= *static_cast<const std::function
<isl::stat(isl::constraint
, isl::constraint
, isl::basic_set
)> **>(arg_3
);
5552 stat ret
= (*func
)(isl::manage(arg_0
), isl::manage(arg_1
), isl::manage(arg_2
));
5553 return isl_stat(ret
);
5555 auto res
= isl_basic_set_foreach_bound_pair(get(), static_cast<enum isl_dim_type
>(type
), pos
, fn_lambda
, &fn_p
);
5556 return isl::stat(res
);
5559 isl::stat
basic_set::foreach_constraint(const std::function
<isl::stat(isl::constraint
)> &fn
) const {
5561 auto fn_lambda
= [](isl_constraint
*arg_0
, void *arg_1
) -> isl_stat
{
5562 auto *func
= *static_cast<const std::function
<isl::stat(isl::constraint
)> **>(arg_1
);
5563 stat ret
= (*func
)(isl::manage(arg_0
));
5564 return isl_stat(ret
);
5566 auto res
= isl_basic_set_foreach_constraint(get(), fn_lambda
, &fn_p
);
5567 return isl::stat(res
);
5570 isl::basic_set
basic_set::from_constraint(isl::constraint constraint
) {
5571 auto res
= isl_basic_set_from_constraint(constraint
.release());
5575 isl::basic_set
basic_set::from_params() const {
5576 auto res
= isl_basic_set_from_params(copy());
5580 isl::constraint_list
basic_set::get_constraint_list() const {
5581 auto res
= isl_basic_set_get_constraint_list(get());
5585 isl::id
basic_set::get_dim_id(isl::dim type
, unsigned int pos
) const {
5586 auto res
= isl_basic_set_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
5590 std::string
basic_set::get_dim_name(isl::dim type
, unsigned int pos
) const {
5591 auto res
= isl_basic_set_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
5592 std::string
tmp(res
);
5596 isl::aff
basic_set::get_div(int pos
) const {
5597 auto res
= isl_basic_set_get_div(get(), pos
);
5601 isl::local_space
basic_set::get_local_space() const {
5602 auto res
= isl_basic_set_get_local_space(get());
5606 isl::space
basic_set::get_space() const {
5607 auto res
= isl_basic_set_get_space(get());
5611 std::string
basic_set::get_tuple_name() const {
5612 auto res
= isl_basic_set_get_tuple_name(get());
5613 std::string
tmp(res
);
5617 isl::basic_set
basic_set::gist(isl::basic_set context
) const {
5618 auto res
= isl_basic_set_gist(copy(), context
.release());
5622 isl::mat
basic_set::inequalities_matrix(isl::dim c1
, isl::dim c2
, isl::dim c3
, isl::dim c4
) const {
5623 auto res
= isl_basic_set_inequalities_matrix(get(), static_cast<enum isl_dim_type
>(c1
), static_cast<enum isl_dim_type
>(c2
), static_cast<enum isl_dim_type
>(c3
), static_cast<enum isl_dim_type
>(c4
));
5627 isl::basic_set
basic_set::insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const {
5628 auto res
= isl_basic_set_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), pos
, n
);
5632 isl::basic_set
basic_set::intersect(isl::basic_set bset2
) const {
5633 auto res
= isl_basic_set_intersect(copy(), bset2
.release());
5637 isl::basic_set
basic_set::intersect_params(isl::basic_set bset2
) const {
5638 auto res
= isl_basic_set_intersect_params(copy(), bset2
.release());
5642 isl::boolean
basic_set::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5643 auto res
= isl_basic_set_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5647 isl::boolean
basic_set::is_bounded() const {
5648 auto res
= isl_basic_set_is_bounded(get());
5652 isl::boolean
basic_set::is_disjoint(const isl::basic_set
&bset2
) const {
5653 auto res
= isl_basic_set_is_disjoint(get(), bset2
.get());
5657 isl::boolean
basic_set::is_empty() const {
5658 auto res
= isl_basic_set_is_empty(get());
5662 isl::boolean
basic_set::is_equal(const isl::basic_set
&bset2
) const {
5663 auto res
= isl_basic_set_is_equal(get(), bset2
.get());
5667 int basic_set::is_rational() const {
5668 auto res
= isl_basic_set_is_rational(get());
5672 isl::boolean
basic_set::is_subset(const isl::basic_set
&bset2
) const {
5673 auto res
= isl_basic_set_is_subset(get(), bset2
.get());
5677 isl::boolean
basic_set::is_universe() const {
5678 auto res
= isl_basic_set_is_universe(get());
5682 isl::boolean
basic_set::is_wrapping() const {
5683 auto res
= isl_basic_set_is_wrapping(get());
5687 isl::set
basic_set::lexmax() const {
5688 auto res
= isl_basic_set_lexmax(copy());
5692 isl::set
basic_set::lexmin() const {
5693 auto res
= isl_basic_set_lexmin(copy());
5697 isl::basic_set
basic_set::lower_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const {
5698 auto res
= isl_basic_set_lower_bound_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
.release());
5702 isl::val
basic_set::max_val(const isl::aff
&obj
) const {
5703 auto res
= isl_basic_set_max_val(get(), obj
.get());
5707 isl::basic_set
basic_set::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
5708 auto res
= isl_basic_set_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
5712 isl::basic_set
basic_set::nat_universe(isl::space dim
) {
5713 auto res
= isl_basic_set_nat_universe(dim
.release());
5717 isl::basic_set
basic_set::neg() const {
5718 auto res
= isl_basic_set_neg(copy());
5722 isl::basic_set
basic_set::params() const {
5723 auto res
= isl_basic_set_params(copy());
5727 isl::boolean
basic_set::plain_is_empty() const {
5728 auto res
= isl_basic_set_plain_is_empty(get());
5732 isl::boolean
basic_set::plain_is_equal(const isl::basic_set
&bset2
) const {
5733 auto res
= isl_basic_set_plain_is_equal(get(), bset2
.get());
5737 isl::boolean
basic_set::plain_is_universe() const {
5738 auto res
= isl_basic_set_plain_is_universe(get());
5742 isl::basic_set
basic_set::positive_orthant(isl::space space
) {
5743 auto res
= isl_basic_set_positive_orthant(space
.release());
5747 isl::basic_set
basic_set::preimage_multi_aff(isl::multi_aff ma
) const {
5748 auto res
= isl_basic_set_preimage_multi_aff(copy(), ma
.release());
5752 isl::basic_set
basic_set::project_out(isl::dim type
, unsigned int first
, unsigned int n
) const {
5753 auto res
= isl_basic_set_project_out(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5757 isl::mat
basic_set::reduced_basis() const {
5758 auto res
= isl_basic_set_reduced_basis(get());
5762 isl::basic_set
basic_set::remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5763 auto res
= isl_basic_set_remove_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5767 isl::basic_set
basic_set::remove_divs() const {
5768 auto res
= isl_basic_set_remove_divs(copy());
5772 isl::basic_set
basic_set::remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
5773 auto res
= isl_basic_set_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
5777 isl::basic_set
basic_set::remove_redundancies() const {
5778 auto res
= isl_basic_set_remove_redundancies(copy());
5782 isl::basic_set
basic_set::remove_unknown_divs() const {
5783 auto res
= isl_basic_set_remove_unknown_divs(copy());
5787 isl::basic_set
basic_set::sample() const {
5788 auto res
= isl_basic_set_sample(copy());
5792 isl::point
basic_set::sample_point() const {
5793 auto res
= isl_basic_set_sample_point(copy());
5797 isl::basic_set
basic_set::set_tuple_id(isl::id id
) const {
5798 auto res
= isl_basic_set_set_tuple_id(copy(), id
.release());
5802 isl::basic_set
basic_set::set_tuple_name(const std::string
&s
) const {
5803 auto res
= isl_basic_set_set_tuple_name(copy(), s
.c_str());
5807 isl::basic_set
basic_set::solutions() const {
5808 auto res
= isl_basic_set_solutions(copy());
5812 isl::set
basic_set::unite(isl::basic_set bset2
) const {
5813 auto res
= isl_basic_set_union(copy(), bset2
.release());
5817 isl::basic_set
basic_set::universe(isl::space space
) {
5818 auto res
= isl_basic_set_universe(space
.release());
5822 isl::basic_map
basic_set::unwrap() const {
5823 auto res
= isl_basic_set_unwrap(copy());
5827 isl::basic_set
basic_set::upper_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const {
5828 auto res
= isl_basic_set_upper_bound_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
.release());
5832 // implementations for isl::basic_set_list
5833 isl::basic_set_list
manage(__isl_take isl_basic_set_list
*ptr
) {
5834 return basic_set_list(ptr
);
5836 isl::basic_set_list
manage_copy(__isl_keep isl_basic_set_list
*ptr
) {
5837 return basic_set_list(isl_basic_set_list_copy(ptr
));
5839 isl::basic_set_list
give(__isl_take isl_basic_set_list
*ptr
) {
5844 basic_set_list::basic_set_list()
5847 basic_set_list::basic_set_list(const isl::basic_set_list
&obj
)
5848 : ptr(obj
.copy()) {}
5849 basic_set_list::basic_set_list(std::nullptr_t
)
5853 basic_set_list::basic_set_list(__isl_take isl_basic_set_list
*ptr
)
5857 basic_set_list
&basic_set_list::operator=(isl::basic_set_list obj
) {
5858 std::swap(this->ptr
, obj
.ptr
);
5862 basic_set_list::~basic_set_list() {
5864 isl_basic_set_list_free(ptr
);
5867 __isl_give isl_basic_set_list
*basic_set_list::copy() const & {
5868 return isl_basic_set_list_copy(ptr
);
5871 __isl_keep isl_basic_set_list
*basic_set_list::get() const {
5875 __isl_give isl_basic_set_list
*basic_set_list::release() {
5876 isl_basic_set_list
*tmp
= ptr
;
5881 bool basic_set_list::is_null() const {
5882 return ptr
== nullptr;
5884 __isl_keep isl_basic_set_list
*basic_set_list::keep() const {
5888 __isl_give isl_basic_set_list
*basic_set_list::take() {
5892 basic_set_list::operator bool() const {
5897 isl::ctx
basic_set_list::get_ctx() const {
5898 return isl::ctx(isl_basic_set_list_get_ctx(ptr
));
5901 void basic_set_list::dump() const {
5902 isl_basic_set_list_dump(get());
5907 // implementations for isl::constraint
5908 isl::constraint
manage(__isl_take isl_constraint
*ptr
) {
5909 return constraint(ptr
);
5911 isl::constraint
manage_copy(__isl_keep isl_constraint
*ptr
) {
5912 return constraint(isl_constraint_copy(ptr
));
5914 isl::constraint
give(__isl_take isl_constraint
*ptr
) {
5919 constraint::constraint()
5922 constraint::constraint(const isl::constraint
&obj
)
5923 : ptr(obj
.copy()) {}
5924 constraint::constraint(std::nullptr_t
)
5928 constraint::constraint(__isl_take isl_constraint
*ptr
)
5932 constraint
&constraint::operator=(isl::constraint obj
) {
5933 std::swap(this->ptr
, obj
.ptr
);
5937 constraint::~constraint() {
5939 isl_constraint_free(ptr
);
5942 __isl_give isl_constraint
*constraint::copy() const & {
5943 return isl_constraint_copy(ptr
);
5946 __isl_keep isl_constraint
*constraint::get() const {
5950 __isl_give isl_constraint
*constraint::release() {
5951 isl_constraint
*tmp
= ptr
;
5956 bool constraint::is_null() const {
5957 return ptr
== nullptr;
5959 __isl_keep isl_constraint
*constraint::keep() const {
5963 __isl_give isl_constraint
*constraint::take() {
5967 constraint::operator bool() const {
5972 isl::ctx
constraint::get_ctx() const {
5973 return isl::ctx(isl_constraint_get_ctx(ptr
));
5976 void constraint::dump() const {
5977 isl_constraint_dump(get());
5981 isl::constraint
constraint::alloc_equality(isl::local_space ls
) {
5982 auto res
= isl_constraint_alloc_equality(ls
.release());
5986 isl::constraint
constraint::alloc_inequality(isl::local_space ls
) {
5987 auto res
= isl_constraint_alloc_inequality(ls
.release());
5991 int constraint::cmp_last_non_zero(const isl::constraint
&c2
) const {
5992 auto res
= isl_constraint_cmp_last_non_zero(get(), c2
.get());
5996 isl::aff
constraint::get_aff() const {
5997 auto res
= isl_constraint_get_aff(get());
6001 isl::aff
constraint::get_bound(isl::dim type
, int pos
) const {
6002 auto res
= isl_constraint_get_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6006 isl::val
constraint::get_coefficient_val(isl::dim type
, int pos
) const {
6007 auto res
= isl_constraint_get_coefficient_val(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6011 isl::val
constraint::get_constant_val() const {
6012 auto res
= isl_constraint_get_constant_val(get());
6016 std::string
constraint::get_dim_name(isl::dim type
, unsigned int pos
) const {
6017 auto res
= isl_constraint_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6018 std::string
tmp(res
);
6022 isl::aff
constraint::get_div(int pos
) const {
6023 auto res
= isl_constraint_get_div(get(), pos
);
6027 isl::local_space
constraint::get_local_space() const {
6028 auto res
= isl_constraint_get_local_space(get());
6032 isl::space
constraint::get_space() const {
6033 auto res
= isl_constraint_get_space(get());
6037 isl::boolean
constraint::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
6038 auto res
= isl_constraint_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
6042 int constraint::is_div_constraint() const {
6043 auto res
= isl_constraint_is_div_constraint(get());
6047 isl::boolean
constraint::is_lower_bound(isl::dim type
, unsigned int pos
) const {
6048 auto res
= isl_constraint_is_lower_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6052 isl::boolean
constraint::is_upper_bound(isl::dim type
, unsigned int pos
) const {
6053 auto res
= isl_constraint_is_upper_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6057 int constraint::plain_cmp(const isl::constraint
&c2
) const {
6058 auto res
= isl_constraint_plain_cmp(get(), c2
.get());
6062 isl::constraint
constraint::set_coefficient_si(isl::dim type
, int pos
, int v
) const {
6063 auto res
= isl_constraint_set_coefficient_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
);
6067 isl::constraint
constraint::set_coefficient_val(isl::dim type
, int pos
, isl::val v
) const {
6068 auto res
= isl_constraint_set_coefficient_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
6072 isl::constraint
constraint::set_constant_si(int v
) const {
6073 auto res
= isl_constraint_set_constant_si(copy(), v
);
6077 isl::constraint
constraint::set_constant_val(isl::val v
) const {
6078 auto res
= isl_constraint_set_constant_val(copy(), v
.release());
6082 // implementations for isl::constraint_list
6083 isl::constraint_list
manage(__isl_take isl_constraint_list
*ptr
) {
6084 return constraint_list(ptr
);
6086 isl::constraint_list
manage_copy(__isl_keep isl_constraint_list
*ptr
) {
6087 return constraint_list(isl_constraint_list_copy(ptr
));
6089 isl::constraint_list
give(__isl_take isl_constraint_list
*ptr
) {
6094 constraint_list::constraint_list()
6097 constraint_list::constraint_list(const isl::constraint_list
&obj
)
6098 : ptr(obj
.copy()) {}
6099 constraint_list::constraint_list(std::nullptr_t
)
6103 constraint_list::constraint_list(__isl_take isl_constraint_list
*ptr
)
6107 constraint_list
&constraint_list::operator=(isl::constraint_list obj
) {
6108 std::swap(this->ptr
, obj
.ptr
);
6112 constraint_list::~constraint_list() {
6114 isl_constraint_list_free(ptr
);
6117 __isl_give isl_constraint_list
*constraint_list::copy() const & {
6118 return isl_constraint_list_copy(ptr
);
6121 __isl_keep isl_constraint_list
*constraint_list::get() const {
6125 __isl_give isl_constraint_list
*constraint_list::release() {
6126 isl_constraint_list
*tmp
= ptr
;
6131 bool constraint_list::is_null() const {
6132 return ptr
== nullptr;
6134 __isl_keep isl_constraint_list
*constraint_list::keep() const {
6138 __isl_give isl_constraint_list
*constraint_list::take() {
6142 constraint_list::operator bool() const {
6147 isl::ctx
constraint_list::get_ctx() const {
6148 return isl::ctx(isl_constraint_list_get_ctx(ptr
));
6151 void constraint_list::dump() const {
6152 isl_constraint_list_dump(get());
6157 // implementations for isl::id
6158 isl::id
manage(__isl_take isl_id
*ptr
) {
6161 isl::id
manage_copy(__isl_keep isl_id
*ptr
) {
6162 return id(isl_id_copy(ptr
));
6164 isl::id
give(__isl_take isl_id
*ptr
) {
6172 id::id(const isl::id
&obj
)
6173 : ptr(obj
.copy()) {}
6174 id::id(std::nullptr_t
)
6178 id::id(__isl_take isl_id
*ptr
)
6182 id
&id::operator=(isl::id obj
) {
6183 std::swap(this->ptr
, obj
.ptr
);
6192 __isl_give isl_id
*id::copy() const & {
6193 return isl_id_copy(ptr
);
6196 __isl_keep isl_id
*id::get() const {
6200 __isl_give isl_id
*id::release() {
6206 bool id::is_null() const {
6207 return ptr
== nullptr;
6209 __isl_keep isl_id
*id::keep() const {
6213 __isl_give isl_id
*id::take() {
6217 id::operator bool() const {
6222 isl::ctx
id::get_ctx() const {
6223 return isl::ctx(isl_id_get_ctx(ptr
));
6225 std::string
id::to_str() const {
6226 char *Tmp
= isl_id_to_str(get());
6235 void id::dump() const {
6240 isl::id
id::alloc(isl::ctx ctx
, const std::string
&name
, void * user
) {
6241 auto res
= isl_id_alloc(ctx
.release(), name
.c_str(), user
);
6245 uint32_t id::get_hash() const {
6246 auto res
= isl_id_get_hash(get());
6250 std::string
id::get_name() const {
6251 auto res
= isl_id_get_name(get());
6252 std::string
tmp(res
);
6256 void * id::get_user() const {
6257 auto res
= isl_id_get_user(get());
6261 // implementations for isl::id_list
6262 isl::id_list
manage(__isl_take isl_id_list
*ptr
) {
6263 return id_list(ptr
);
6265 isl::id_list
manage_copy(__isl_keep isl_id_list
*ptr
) {
6266 return id_list(isl_id_list_copy(ptr
));
6268 isl::id_list
give(__isl_take isl_id_list
*ptr
) {
6276 id_list::id_list(const isl::id_list
&obj
)
6277 : ptr(obj
.copy()) {}
6278 id_list::id_list(std::nullptr_t
)
6282 id_list::id_list(__isl_take isl_id_list
*ptr
)
6286 id_list
&id_list::operator=(isl::id_list obj
) {
6287 std::swap(this->ptr
, obj
.ptr
);
6291 id_list::~id_list() {
6293 isl_id_list_free(ptr
);
6296 __isl_give isl_id_list
*id_list::copy() const & {
6297 return isl_id_list_copy(ptr
);
6300 __isl_keep isl_id_list
*id_list::get() const {
6304 __isl_give isl_id_list
*id_list::release() {
6305 isl_id_list
*tmp
= ptr
;
6310 bool id_list::is_null() const {
6311 return ptr
== nullptr;
6313 __isl_keep isl_id_list
*id_list::keep() const {
6317 __isl_give isl_id_list
*id_list::take() {
6321 id_list::operator bool() const {
6326 isl::ctx
id_list::get_ctx() const {
6327 return isl::ctx(isl_id_list_get_ctx(ptr
));
6330 void id_list::dump() const {
6331 isl_id_list_dump(get());
6336 // implementations for isl::id_to_ast_expr
6337 isl::id_to_ast_expr
manage(__isl_take isl_id_to_ast_expr
*ptr
) {
6338 return id_to_ast_expr(ptr
);
6340 isl::id_to_ast_expr
manage_copy(__isl_keep isl_id_to_ast_expr
*ptr
) {
6341 return id_to_ast_expr(isl_id_to_ast_expr_copy(ptr
));
6343 isl::id_to_ast_expr
give(__isl_take isl_id_to_ast_expr
*ptr
) {
6348 id_to_ast_expr::id_to_ast_expr()
6351 id_to_ast_expr::id_to_ast_expr(const isl::id_to_ast_expr
&obj
)
6352 : ptr(obj
.copy()) {}
6353 id_to_ast_expr::id_to_ast_expr(std::nullptr_t
)
6357 id_to_ast_expr::id_to_ast_expr(__isl_take isl_id_to_ast_expr
*ptr
)
6361 id_to_ast_expr
&id_to_ast_expr::operator=(isl::id_to_ast_expr obj
) {
6362 std::swap(this->ptr
, obj
.ptr
);
6366 id_to_ast_expr::~id_to_ast_expr() {
6368 isl_id_to_ast_expr_free(ptr
);
6371 __isl_give isl_id_to_ast_expr
*id_to_ast_expr::copy() const & {
6372 return isl_id_to_ast_expr_copy(ptr
);
6375 __isl_keep isl_id_to_ast_expr
*id_to_ast_expr::get() const {
6379 __isl_give isl_id_to_ast_expr
*id_to_ast_expr::release() {
6380 isl_id_to_ast_expr
*tmp
= ptr
;
6385 bool id_to_ast_expr::is_null() const {
6386 return ptr
== nullptr;
6388 __isl_keep isl_id_to_ast_expr
*id_to_ast_expr::keep() const {
6392 __isl_give isl_id_to_ast_expr
*id_to_ast_expr::take() {
6396 id_to_ast_expr::operator bool() const {
6401 isl::ctx
id_to_ast_expr::get_ctx() const {
6402 return isl::ctx(isl_id_to_ast_expr_get_ctx(ptr
));
6405 void id_to_ast_expr::dump() const {
6406 isl_id_to_ast_expr_dump(get());
6410 isl::id_to_ast_expr
id_to_ast_expr::alloc(isl::ctx ctx
, int min_size
) {
6411 auto res
= isl_id_to_ast_expr_alloc(ctx
.release(), min_size
);
6415 isl::id_to_ast_expr
id_to_ast_expr::drop(isl::id key
) const {
6416 auto res
= isl_id_to_ast_expr_drop(copy(), key
.release());
6420 isl::stat
id_to_ast_expr::foreach(const std::function
<isl::stat(isl::id
, isl::ast_expr
)> &fn
) const {
6422 auto fn_lambda
= [](isl_id
*arg_0
, isl_ast_expr
*arg_1
, void *arg_2
) -> isl_stat
{
6423 auto *func
= *static_cast<const std::function
<isl::stat(isl::id
, isl::ast_expr
)> **>(arg_2
);
6424 stat ret
= (*func
)(isl::manage(arg_0
), isl::manage(arg_1
));
6425 return isl_stat(ret
);
6427 auto res
= isl_id_to_ast_expr_foreach(get(), fn_lambda
, &fn_p
);
6428 return isl::stat(res
);
6431 isl::ast_expr
id_to_ast_expr::get(isl::id key
) const {
6432 auto res
= isl_id_to_ast_expr_get(get(), key
.release());
6436 isl::boolean
id_to_ast_expr::has(const isl::id
&key
) const {
6437 auto res
= isl_id_to_ast_expr_has(get(), key
.get());
6441 isl::id_to_ast_expr
id_to_ast_expr::set(isl::id key
, isl::ast_expr val
) const {
6442 auto res
= isl_id_to_ast_expr_set(copy(), key
.release(), val
.release());
6446 // implementations for isl::local_space
6447 isl::local_space
manage(__isl_take isl_local_space
*ptr
) {
6448 return local_space(ptr
);
6450 isl::local_space
manage_copy(__isl_keep isl_local_space
*ptr
) {
6451 return local_space(isl_local_space_copy(ptr
));
6453 isl::local_space
give(__isl_take isl_local_space
*ptr
) {
6458 local_space::local_space()
6461 local_space::local_space(const isl::local_space
&obj
)
6462 : ptr(obj
.copy()) {}
6463 local_space::local_space(std::nullptr_t
)
6467 local_space::local_space(__isl_take isl_local_space
*ptr
)
6470 local_space::local_space(isl::space dim
) {
6471 auto res
= isl_local_space_from_space(dim
.release());
6475 local_space
&local_space::operator=(isl::local_space obj
) {
6476 std::swap(this->ptr
, obj
.ptr
);
6480 local_space::~local_space() {
6482 isl_local_space_free(ptr
);
6485 __isl_give isl_local_space
*local_space::copy() const & {
6486 return isl_local_space_copy(ptr
);
6489 __isl_keep isl_local_space
*local_space::get() const {
6493 __isl_give isl_local_space
*local_space::release() {
6494 isl_local_space
*tmp
= ptr
;
6499 bool local_space::is_null() const {
6500 return ptr
== nullptr;
6502 __isl_keep isl_local_space
*local_space::keep() const {
6506 __isl_give isl_local_space
*local_space::take() {
6510 local_space::operator bool() const {
6515 isl::ctx
local_space::get_ctx() const {
6516 return isl::ctx(isl_local_space_get_ctx(ptr
));
6519 void local_space::dump() const {
6520 isl_local_space_dump(get());
6524 isl::local_space
local_space::add_dims(isl::dim type
, unsigned int n
) const {
6525 auto res
= isl_local_space_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
6529 int local_space::dim(isl::dim type
) const {
6530 auto res
= isl_local_space_dim(get(), static_cast<enum isl_dim_type
>(type
));
6534 isl::local_space
local_space::domain() const {
6535 auto res
= isl_local_space_domain(copy());
6539 isl::local_space
local_space::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
6540 auto res
= isl_local_space_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
6544 int local_space::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
6545 auto res
= isl_local_space_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
6549 isl::local_space
local_space::flatten_domain() const {
6550 auto res
= isl_local_space_flatten_domain(copy());
6554 isl::local_space
local_space::flatten_range() const {
6555 auto res
= isl_local_space_flatten_range(copy());
6559 isl::local_space
local_space::from_domain() const {
6560 auto res
= isl_local_space_from_domain(copy());
6564 isl::id
local_space::get_dim_id(isl::dim type
, unsigned int pos
) const {
6565 auto res
= isl_local_space_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6569 std::string
local_space::get_dim_name(isl::dim type
, unsigned int pos
) const {
6570 auto res
= isl_local_space_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6571 std::string
tmp(res
);
6575 isl::aff
local_space::get_div(int pos
) const {
6576 auto res
= isl_local_space_get_div(get(), pos
);
6580 isl::space
local_space::get_space() const {
6581 auto res
= isl_local_space_get_space(get());
6585 isl::boolean
local_space::has_dim_id(isl::dim type
, unsigned int pos
) const {
6586 auto res
= isl_local_space_has_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6590 isl::boolean
local_space::has_dim_name(isl::dim type
, unsigned int pos
) const {
6591 auto res
= isl_local_space_has_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
6595 isl::local_space
local_space::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
6596 auto res
= isl_local_space_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
6600 isl::local_space
local_space::intersect(isl::local_space ls2
) const {
6601 auto res
= isl_local_space_intersect(copy(), ls2
.release());
6605 isl::boolean
local_space::is_equal(const isl::local_space
&ls2
) const {
6606 auto res
= isl_local_space_is_equal(get(), ls2
.get());
6610 isl::boolean
local_space::is_params() const {
6611 auto res
= isl_local_space_is_params(get());
6615 isl::boolean
local_space::is_set() const {
6616 auto res
= isl_local_space_is_set(get());
6620 isl::local_space
local_space::range() const {
6621 auto res
= isl_local_space_range(copy());
6625 isl::local_space
local_space::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
6626 auto res
= isl_local_space_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
6630 isl::local_space
local_space::set_tuple_id(isl::dim type
, isl::id id
) const {
6631 auto res
= isl_local_space_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
6635 isl::local_space
local_space::wrap() const {
6636 auto res
= isl_local_space_wrap(copy());
6640 // implementations for isl::map
6641 isl::map
manage(__isl_take isl_map
*ptr
) {
6644 isl::map
manage_copy(__isl_keep isl_map
*ptr
) {
6645 return map(isl_map_copy(ptr
));
6647 isl::map
give(__isl_take isl_map
*ptr
) {
6655 map::map(const isl::map
&obj
)
6656 : ptr(obj
.copy()) {}
6657 map::map(std::nullptr_t
)
6661 map::map(__isl_take isl_map
*ptr
)
6664 map::map(isl::ctx ctx
, const std::string
&str
) {
6665 auto res
= isl_map_read_from_str(ctx
.release(), str
.c_str());
6668 map::map(isl::basic_map bmap
) {
6669 auto res
= isl_map_from_basic_map(bmap
.release());
6673 map
&map::operator=(isl::map obj
) {
6674 std::swap(this->ptr
, obj
.ptr
);
6683 __isl_give isl_map
*map::copy() const & {
6684 return isl_map_copy(ptr
);
6687 __isl_keep isl_map
*map::get() const {
6691 __isl_give isl_map
*map::release() {
6697 bool map::is_null() const {
6698 return ptr
== nullptr;
6700 __isl_keep isl_map
*map::keep() const {
6704 __isl_give isl_map
*map::take() {
6708 map::operator bool() const {
6713 isl::ctx
map::get_ctx() const {
6714 return isl::ctx(isl_map_get_ctx(ptr
));
6716 std::string
map::to_str() const {
6717 char *Tmp
= isl_map_to_str(get());
6726 void map::dump() const {
6727 isl_map_dump(get());
6731 isl::map
map::add_constraint(isl::constraint constraint
) const {
6732 auto res
= isl_map_add_constraint(copy(), constraint
.release());
6736 isl::map
map::add_dims(isl::dim type
, unsigned int n
) const {
6737 auto res
= isl_map_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
6741 isl::basic_map
map::affine_hull() const {
6742 auto res
= isl_map_affine_hull(copy());
6746 isl::map
map::align_params(isl::space model
) const {
6747 auto res
= isl_map_align_params(copy(), model
.release());
6751 isl::map
map::apply_domain(isl::map map2
) const {
6752 auto res
= isl_map_apply_domain(copy(), map2
.release());
6756 isl::map
map::apply_range(isl::map map2
) const {
6757 auto res
= isl_map_apply_range(copy(), map2
.release());
6761 isl::boolean
map::can_curry() const {
6762 auto res
= isl_map_can_curry(get());
6766 isl::boolean
map::can_range_curry() const {
6767 auto res
= isl_map_can_range_curry(get());
6771 isl::boolean
map::can_uncurry() const {
6772 auto res
= isl_map_can_uncurry(get());
6776 isl::boolean
map::can_zip() const {
6777 auto res
= isl_map_can_zip(get());
6781 isl::map
map::coalesce() const {
6782 auto res
= isl_map_coalesce(copy());
6786 isl::map
map::complement() const {
6787 auto res
= isl_map_complement(copy());
6791 isl::basic_map
map::convex_hull() const {
6792 auto res
= isl_map_convex_hull(copy());
6796 isl::map
map::curry() const {
6797 auto res
= isl_map_curry(copy());
6801 isl::set
map::deltas() const {
6802 auto res
= isl_map_deltas(copy());
6806 isl::map
map::deltas_map() const {
6807 auto res
= isl_map_deltas_map(copy());
6811 isl::map
map::detect_equalities() const {
6812 auto res
= isl_map_detect_equalities(copy());
6816 unsigned int map::dim(isl::dim type
) const {
6817 auto res
= isl_map_dim(get(), static_cast<enum isl_dim_type
>(type
));
6821 isl::pw_aff
map::dim_max(int pos
) const {
6822 auto res
= isl_map_dim_max(copy(), pos
);
6826 isl::pw_aff
map::dim_min(int pos
) const {
6827 auto res
= isl_map_dim_min(copy(), pos
);
6831 isl::set
map::domain() const {
6832 auto res
= isl_map_domain(copy());
6836 isl::map
map::domain_factor_domain() const {
6837 auto res
= isl_map_domain_factor_domain(copy());
6841 isl::map
map::domain_factor_range() const {
6842 auto res
= isl_map_domain_factor_range(copy());
6846 isl::boolean
map::domain_is_wrapping() const {
6847 auto res
= isl_map_domain_is_wrapping(get());
6851 isl::map
map::domain_map() const {
6852 auto res
= isl_map_domain_map(copy());
6856 isl::map
map::domain_product(isl::map map2
) const {
6857 auto res
= isl_map_domain_product(copy(), map2
.release());
6861 isl::map
map::drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
6862 auto res
= isl_map_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
6866 isl::map
map::drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
6867 auto res
= isl_map_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
6871 isl::map
map::eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const {
6872 auto res
= isl_map_eliminate(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
6876 isl::map
map::empty(isl::space space
) {
6877 auto res
= isl_map_empty(space
.release());
6881 isl::map
map::equate(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
6882 auto res
= isl_map_equate(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
6886 isl::map
map::factor_domain() const {
6887 auto res
= isl_map_factor_domain(copy());
6891 isl::map
map::factor_range() const {
6892 auto res
= isl_map_factor_range(copy());
6896 int map::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
6897 auto res
= isl_map_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
6901 int map::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
6902 auto res
= isl_map_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
6906 isl::map
map::fix_si(isl::dim type
, unsigned int pos
, int value
) const {
6907 auto res
= isl_map_fix_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
6911 isl::map
map::fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const {
6912 auto res
= isl_map_fix_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
6916 isl::map
map::fixed_power_val(isl::val exp
) const {
6917 auto res
= isl_map_fixed_power_val(copy(), exp
.release());
6921 isl::map
map::flat_domain_product(isl::map map2
) const {
6922 auto res
= isl_map_flat_domain_product(copy(), map2
.release());
6926 isl::map
map::flat_product(isl::map map2
) const {
6927 auto res
= isl_map_flat_product(copy(), map2
.release());
6931 isl::map
map::flat_range_product(isl::map map2
) const {
6932 auto res
= isl_map_flat_range_product(copy(), map2
.release());
6936 isl::map
map::flatten() const {
6937 auto res
= isl_map_flatten(copy());
6941 isl::map
map::flatten_domain() const {
6942 auto res
= isl_map_flatten_domain(copy());
6946 isl::map
map::flatten_range() const {
6947 auto res
= isl_map_flatten_range(copy());
6951 isl::map
map::floordiv_val(isl::val d
) const {
6952 auto res
= isl_map_floordiv_val(copy(), d
.release());
6956 isl::stat
map::foreach_basic_map(const std::function
<isl::stat(isl::basic_map
)> &fn
) const {
6958 auto fn_lambda
= [](isl_basic_map
*arg_0
, void *arg_1
) -> isl_stat
{
6959 auto *func
= *static_cast<const std::function
<isl::stat(isl::basic_map
)> **>(arg_1
);
6960 stat ret
= (*func
)(isl::manage(arg_0
));
6961 return isl_stat(ret
);
6963 auto res
= isl_map_foreach_basic_map(get(), fn_lambda
, &fn_p
);
6964 return isl::stat(res
);
6967 isl::map
map::from_aff(isl::aff aff
) {
6968 auto res
= isl_map_from_aff(aff
.release());
6972 isl::map
map::from_domain(isl::set set
) {
6973 auto res
= isl_map_from_domain(set
.release());
6977 isl::map
map::from_domain_and_range(isl::set domain
, isl::set range
) {
6978 auto res
= isl_map_from_domain_and_range(domain
.release(), range
.release());
6982 isl::map
map::from_multi_aff(isl::multi_aff maff
) {
6983 auto res
= isl_map_from_multi_aff(maff
.release());
6987 isl::map
map::from_multi_pw_aff(isl::multi_pw_aff mpa
) {
6988 auto res
= isl_map_from_multi_pw_aff(mpa
.release());
6992 isl::map
map::from_pw_aff(isl::pw_aff pwaff
) {
6993 auto res
= isl_map_from_pw_aff(pwaff
.release());
6997 isl::map
map::from_pw_multi_aff(isl::pw_multi_aff pma
) {
6998 auto res
= isl_map_from_pw_multi_aff(pma
.release());
7002 isl::map
map::from_range(isl::set set
) {
7003 auto res
= isl_map_from_range(set
.release());
7007 isl::map
map::from_union_map(isl::union_map umap
) {
7008 auto res
= isl_map_from_union_map(umap
.release());
7012 isl::id
map::get_dim_id(isl::dim type
, unsigned int pos
) const {
7013 auto res
= isl_map_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
7017 std::string
map::get_dim_name(isl::dim type
, unsigned int pos
) const {
7018 auto res
= isl_map_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
7019 std::string
tmp(res
);
7023 uint32_t map::get_hash() const {
7024 auto res
= isl_map_get_hash(get());
7028 isl::space
map::get_space() const {
7029 auto res
= isl_map_get_space(get());
7033 isl::id
map::get_tuple_id(isl::dim type
) const {
7034 auto res
= isl_map_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
7038 std::string
map::get_tuple_name(isl::dim type
) const {
7039 auto res
= isl_map_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
7040 std::string
tmp(res
);
7044 isl::map
map::gist(isl::map context
) const {
7045 auto res
= isl_map_gist(copy(), context
.release());
7049 isl::map
map::gist_basic_map(isl::basic_map context
) const {
7050 auto res
= isl_map_gist_basic_map(copy(), context
.release());
7054 isl::map
map::gist_domain(isl::set context
) const {
7055 auto res
= isl_map_gist_domain(copy(), context
.release());
7059 isl::map
map::gist_params(isl::set context
) const {
7060 auto res
= isl_map_gist_params(copy(), context
.release());
7064 isl::map
map::gist_range(isl::set context
) const {
7065 auto res
= isl_map_gist_range(copy(), context
.release());
7069 isl::boolean
map::has_dim_id(isl::dim type
, unsigned int pos
) const {
7070 auto res
= isl_map_has_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
7074 isl::boolean
map::has_dim_name(isl::dim type
, unsigned int pos
) const {
7075 auto res
= isl_map_has_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
7079 isl::boolean
map::has_equal_space(const isl::map
&map2
) const {
7080 auto res
= isl_map_has_equal_space(get(), map2
.get());
7084 isl::boolean
map::has_tuple_id(isl::dim type
) const {
7085 auto res
= isl_map_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
7089 isl::boolean
map::has_tuple_name(isl::dim type
) const {
7090 auto res
= isl_map_has_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
7094 isl::map
map::identity(isl::space dim
) {
7095 auto res
= isl_map_identity(dim
.release());
7099 isl::map
map::insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const {
7100 auto res
= isl_map_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), pos
, n
);
7104 isl::map
map::intersect(isl::map map2
) const {
7105 auto res
= isl_map_intersect(copy(), map2
.release());
7109 isl::map
map::intersect_domain(isl::set set
) const {
7110 auto res
= isl_map_intersect_domain(copy(), set
.release());
7114 isl::map
map::intersect_domain_factor_range(isl::map factor
) const {
7115 auto res
= isl_map_intersect_domain_factor_range(copy(), factor
.release());
7119 isl::map
map::intersect_params(isl::set params
) const {
7120 auto res
= isl_map_intersect_params(copy(), params
.release());
7124 isl::map
map::intersect_range(isl::set set
) const {
7125 auto res
= isl_map_intersect_range(copy(), set
.release());
7129 isl::map
map::intersect_range_factor_range(isl::map factor
) const {
7130 auto res
= isl_map_intersect_range_factor_range(copy(), factor
.release());
7134 isl::boolean
map::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
7135 auto res
= isl_map_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
7139 isl::boolean
map::is_bijective() const {
7140 auto res
= isl_map_is_bijective(get());
7144 isl::boolean
map::is_disjoint(const isl::map
&map2
) const {
7145 auto res
= isl_map_is_disjoint(get(), map2
.get());
7149 isl::boolean
map::is_empty() const {
7150 auto res
= isl_map_is_empty(get());
7154 isl::boolean
map::is_equal(const isl::map
&map2
) const {
7155 auto res
= isl_map_is_equal(get(), map2
.get());
7159 isl::boolean
map::is_identity() const {
7160 auto res
= isl_map_is_identity(get());
7164 isl::boolean
map::is_injective() const {
7165 auto res
= isl_map_is_injective(get());
7169 isl::boolean
map::is_product() const {
7170 auto res
= isl_map_is_product(get());
7174 isl::boolean
map::is_single_valued() const {
7175 auto res
= isl_map_is_single_valued(get());
7179 isl::boolean
map::is_strict_subset(const isl::map
&map2
) const {
7180 auto res
= isl_map_is_strict_subset(get(), map2
.get());
7184 isl::boolean
map::is_subset(const isl::map
&map2
) const {
7185 auto res
= isl_map_is_subset(get(), map2
.get());
7189 int map::is_translation() const {
7190 auto res
= isl_map_is_translation(get());
7194 isl::map
map::lex_ge(isl::space set_dim
) {
7195 auto res
= isl_map_lex_ge(set_dim
.release());
7199 isl::map
map::lex_ge_first(isl::space dim
, unsigned int n
) {
7200 auto res
= isl_map_lex_ge_first(dim
.release(), n
);
7204 isl::map
map::lex_ge_map(isl::map map2
) const {
7205 auto res
= isl_map_lex_ge_map(copy(), map2
.release());
7209 isl::map
map::lex_gt(isl::space set_dim
) {
7210 auto res
= isl_map_lex_gt(set_dim
.release());
7214 isl::map
map::lex_gt_first(isl::space dim
, unsigned int n
) {
7215 auto res
= isl_map_lex_gt_first(dim
.release(), n
);
7219 isl::map
map::lex_gt_map(isl::map map2
) const {
7220 auto res
= isl_map_lex_gt_map(copy(), map2
.release());
7224 isl::map
map::lex_le(isl::space set_dim
) {
7225 auto res
= isl_map_lex_le(set_dim
.release());
7229 isl::map
map::lex_le_first(isl::space dim
, unsigned int n
) {
7230 auto res
= isl_map_lex_le_first(dim
.release(), n
);
7234 isl::map
map::lex_le_map(isl::map map2
) const {
7235 auto res
= isl_map_lex_le_map(copy(), map2
.release());
7239 isl::map
map::lex_lt(isl::space set_dim
) {
7240 auto res
= isl_map_lex_lt(set_dim
.release());
7244 isl::map
map::lex_lt_first(isl::space dim
, unsigned int n
) {
7245 auto res
= isl_map_lex_lt_first(dim
.release(), n
);
7249 isl::map
map::lex_lt_map(isl::map map2
) const {
7250 auto res
= isl_map_lex_lt_map(copy(), map2
.release());
7254 isl::map
map::lexmax() const {
7255 auto res
= isl_map_lexmax(copy());
7259 isl::pw_multi_aff
map::lexmax_pw_multi_aff() const {
7260 auto res
= isl_map_lexmax_pw_multi_aff(copy());
7264 isl::map
map::lexmin() const {
7265 auto res
= isl_map_lexmin(copy());
7269 isl::pw_multi_aff
map::lexmin_pw_multi_aff() const {
7270 auto res
= isl_map_lexmin_pw_multi_aff(copy());
7274 isl::map
map::lower_bound_si(isl::dim type
, unsigned int pos
, int value
) const {
7275 auto res
= isl_map_lower_bound_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
7279 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 {
7280 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
);
7284 isl::map
map::nat_universe(isl::space dim
) {
7285 auto res
= isl_map_nat_universe(dim
.release());
7289 isl::map
map::neg() const {
7290 auto res
= isl_map_neg(copy());
7294 isl::map
map::oppose(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
7295 auto res
= isl_map_oppose(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
7299 isl::map
map::order_ge(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
7300 auto res
= isl_map_order_ge(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
7304 isl::map
map::order_gt(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
7305 auto res
= isl_map_order_gt(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
7309 isl::map
map::order_le(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
7310 auto res
= isl_map_order_le(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
7314 isl::map
map::order_lt(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
7315 auto res
= isl_map_order_lt(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
7319 isl::set
map::params() const {
7320 auto res
= isl_map_params(copy());
7324 isl::val
map::plain_get_val_if_fixed(isl::dim type
, unsigned int pos
) const {
7325 auto res
= isl_map_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type
>(type
), pos
);
7329 isl::boolean
map::plain_is_empty() const {
7330 auto res
= isl_map_plain_is_empty(get());
7334 isl::boolean
map::plain_is_equal(const isl::map
&map2
) const {
7335 auto res
= isl_map_plain_is_equal(get(), map2
.get());
7339 isl::boolean
map::plain_is_injective() const {
7340 auto res
= isl_map_plain_is_injective(get());
7344 isl::boolean
map::plain_is_single_valued() const {
7345 auto res
= isl_map_plain_is_single_valued(get());
7349 isl::boolean
map::plain_is_universe() const {
7350 auto res
= isl_map_plain_is_universe(get());
7354 isl::basic_map
map::plain_unshifted_simple_hull() const {
7355 auto res
= isl_map_plain_unshifted_simple_hull(copy());
7359 isl::basic_map
map::polyhedral_hull() const {
7360 auto res
= isl_map_polyhedral_hull(copy());
7364 isl::map
map::preimage_domain_multi_aff(isl::multi_aff ma
) const {
7365 auto res
= isl_map_preimage_domain_multi_aff(copy(), ma
.release());
7369 isl::map
map::preimage_domain_multi_pw_aff(isl::multi_pw_aff mpa
) const {
7370 auto res
= isl_map_preimage_domain_multi_pw_aff(copy(), mpa
.release());
7374 isl::map
map::preimage_domain_pw_multi_aff(isl::pw_multi_aff pma
) const {
7375 auto res
= isl_map_preimage_domain_pw_multi_aff(copy(), pma
.release());
7379 isl::map
map::preimage_range_multi_aff(isl::multi_aff ma
) const {
7380 auto res
= isl_map_preimage_range_multi_aff(copy(), ma
.release());
7384 isl::map
map::preimage_range_pw_multi_aff(isl::pw_multi_aff pma
) const {
7385 auto res
= isl_map_preimage_range_pw_multi_aff(copy(), pma
.release());
7389 isl::map
map::product(isl::map map2
) const {
7390 auto res
= isl_map_product(copy(), map2
.release());
7394 isl::map
map::project_out(isl::dim type
, unsigned int first
, unsigned int n
) const {
7395 auto res
= isl_map_project_out(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
7399 isl::set
map::range() const {
7400 auto res
= isl_map_range(copy());
7404 isl::map
map::range_curry() const {
7405 auto res
= isl_map_range_curry(copy());
7409 isl::map
map::range_factor_domain() const {
7410 auto res
= isl_map_range_factor_domain(copy());
7414 isl::map
map::range_factor_range() const {
7415 auto res
= isl_map_range_factor_range(copy());
7419 isl::boolean
map::range_is_wrapping() const {
7420 auto res
= isl_map_range_is_wrapping(get());
7424 isl::map
map::range_map() const {
7425 auto res
= isl_map_range_map(copy());
7429 isl::map
map::range_product(isl::map map2
) const {
7430 auto res
= isl_map_range_product(copy(), map2
.release());
7434 isl::map
map::remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
7435 auto res
= isl_map_remove_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
7439 isl::map
map::remove_divs() const {
7440 auto res
= isl_map_remove_divs(copy());
7444 isl::map
map::remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
7445 auto res
= isl_map_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
7449 isl::map
map::remove_redundancies() const {
7450 auto res
= isl_map_remove_redundancies(copy());
7454 isl::map
map::remove_unknown_divs() const {
7455 auto res
= isl_map_remove_unknown_divs(copy());
7459 isl::map
map::reset_tuple_id(isl::dim type
) const {
7460 auto res
= isl_map_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
7464 isl::map
map::reset_user() const {
7465 auto res
= isl_map_reset_user(copy());
7469 isl::map
map::reverse() const {
7470 auto res
= isl_map_reverse(copy());
7474 isl::basic_map
map::sample() const {
7475 auto res
= isl_map_sample(copy());
7479 isl::map
map::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
7480 auto res
= isl_map_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
7484 isl::map
map::set_tuple_id(isl::dim type
, isl::id id
) const {
7485 auto res
= isl_map_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
7489 isl::map
map::set_tuple_name(isl::dim type
, const std::string
&s
) const {
7490 auto res
= isl_map_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
7494 isl::basic_map
map::simple_hull() const {
7495 auto res
= isl_map_simple_hull(copy());
7499 isl::map
map::subtract(isl::map map2
) const {
7500 auto res
= isl_map_subtract(copy(), map2
.release());
7504 isl::map
map::subtract_domain(isl::set dom
) const {
7505 auto res
= isl_map_subtract_domain(copy(), dom
.release());
7509 isl::map
map::subtract_range(isl::set dom
) const {
7510 auto res
= isl_map_subtract_range(copy(), dom
.release());
7514 isl::map
map::sum(isl::map map2
) const {
7515 auto res
= isl_map_sum(copy(), map2
.release());
7519 isl::map
map::uncurry() const {
7520 auto res
= isl_map_uncurry(copy());
7524 isl::map
map::unite(isl::map map2
) const {
7525 auto res
= isl_map_union(copy(), map2
.release());
7529 isl::map
map::universe(isl::space space
) {
7530 auto res
= isl_map_universe(space
.release());
7534 isl::basic_map
map::unshifted_simple_hull() const {
7535 auto res
= isl_map_unshifted_simple_hull(copy());
7539 isl::basic_map
map::unshifted_simple_hull_from_map_list(isl::map_list list
) const {
7540 auto res
= isl_map_unshifted_simple_hull_from_map_list(copy(), list
.release());
7544 isl::map
map::upper_bound_si(isl::dim type
, unsigned int pos
, int value
) const {
7545 auto res
= isl_map_upper_bound_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
7549 isl::set
map::wrap() const {
7550 auto res
= isl_map_wrap(copy());
7554 isl::map
map::zip() const {
7555 auto res
= isl_map_zip(copy());
7559 // implementations for isl::map_list
7560 isl::map_list
manage(__isl_take isl_map_list
*ptr
) {
7561 return map_list(ptr
);
7563 isl::map_list
manage_copy(__isl_keep isl_map_list
*ptr
) {
7564 return map_list(isl_map_list_copy(ptr
));
7566 isl::map_list
give(__isl_take isl_map_list
*ptr
) {
7571 map_list::map_list()
7574 map_list::map_list(const isl::map_list
&obj
)
7575 : ptr(obj
.copy()) {}
7576 map_list::map_list(std::nullptr_t
)
7580 map_list::map_list(__isl_take isl_map_list
*ptr
)
7584 map_list
&map_list::operator=(isl::map_list obj
) {
7585 std::swap(this->ptr
, obj
.ptr
);
7589 map_list::~map_list() {
7591 isl_map_list_free(ptr
);
7594 __isl_give isl_map_list
*map_list::copy() const & {
7595 return isl_map_list_copy(ptr
);
7598 __isl_keep isl_map_list
*map_list::get() const {
7602 __isl_give isl_map_list
*map_list::release() {
7603 isl_map_list
*tmp
= ptr
;
7608 bool map_list::is_null() const {
7609 return ptr
== nullptr;
7611 __isl_keep isl_map_list
*map_list::keep() const {
7615 __isl_give isl_map_list
*map_list::take() {
7619 map_list::operator bool() const {
7624 isl::ctx
map_list::get_ctx() const {
7625 return isl::ctx(isl_map_list_get_ctx(ptr
));
7628 void map_list::dump() const {
7629 isl_map_list_dump(get());
7634 // implementations for isl::mat
7635 isl::mat
manage(__isl_take isl_mat
*ptr
) {
7638 isl::mat
manage_copy(__isl_keep isl_mat
*ptr
) {
7639 return mat(isl_mat_copy(ptr
));
7641 isl::mat
give(__isl_take isl_mat
*ptr
) {
7649 mat::mat(const isl::mat
&obj
)
7650 : ptr(obj
.copy()) {}
7651 mat::mat(std::nullptr_t
)
7655 mat::mat(__isl_take isl_mat
*ptr
)
7659 mat
&mat::operator=(isl::mat obj
) {
7660 std::swap(this->ptr
, obj
.ptr
);
7669 __isl_give isl_mat
*mat::copy() const & {
7670 return isl_mat_copy(ptr
);
7673 __isl_keep isl_mat
*mat::get() const {
7677 __isl_give isl_mat
*mat::release() {
7683 bool mat::is_null() const {
7684 return ptr
== nullptr;
7686 __isl_keep isl_mat
*mat::keep() const {
7690 __isl_give isl_mat
*mat::take() {
7694 mat::operator bool() const {
7699 isl::ctx
mat::get_ctx() const {
7700 return isl::ctx(isl_mat_get_ctx(ptr
));
7703 void mat::dump() const {
7704 isl_mat_dump(get());
7708 isl::mat
mat::add_rows(unsigned int n
) const {
7709 auto res
= isl_mat_add_rows(copy(), n
);
7713 isl::mat
mat::add_zero_cols(unsigned int n
) const {
7714 auto res
= isl_mat_add_zero_cols(copy(), n
);
7718 isl::mat
mat::add_zero_rows(unsigned int n
) const {
7719 auto res
= isl_mat_add_zero_rows(copy(), n
);
7723 isl::mat
mat::aff_direct_sum(isl::mat right
) const {
7724 auto res
= isl_mat_aff_direct_sum(copy(), right
.release());
7728 isl::mat
mat::alloc(isl::ctx ctx
, unsigned int n_row
, unsigned int n_col
) {
7729 auto res
= isl_mat_alloc(ctx
.release(), n_row
, n_col
);
7733 int mat::cols() const {
7734 auto res
= isl_mat_cols(get());
7738 isl::mat
mat::concat(isl::mat bot
) const {
7739 auto res
= isl_mat_concat(copy(), bot
.release());
7743 isl::mat
mat::diagonal(isl::mat mat2
) const {
7744 auto res
= isl_mat_diagonal(copy(), mat2
.release());
7748 isl::mat
mat::drop_cols(unsigned int col
, unsigned int n
) const {
7749 auto res
= isl_mat_drop_cols(copy(), col
, n
);
7753 isl::mat
mat::drop_rows(unsigned int row
, unsigned int n
) const {
7754 auto res
= isl_mat_drop_rows(copy(), row
, n
);
7758 isl::mat
mat::from_row_vec(isl::vec vec
) {
7759 auto res
= isl_mat_from_row_vec(vec
.release());
7763 isl::val
mat::get_element_val(int row
, int col
) const {
7764 auto res
= isl_mat_get_element_val(get(), row
, col
);
7768 int mat::initial_non_zero_cols() const {
7769 auto res
= isl_mat_initial_non_zero_cols(get());
7773 isl::mat
mat::insert_cols(unsigned int col
, unsigned int n
) const {
7774 auto res
= isl_mat_insert_cols(copy(), col
, n
);
7778 isl::mat
mat::insert_rows(unsigned int row
, unsigned int n
) const {
7779 auto res
= isl_mat_insert_rows(copy(), row
, n
);
7783 isl::mat
mat::insert_zero_cols(unsigned int first
, unsigned int n
) const {
7784 auto res
= isl_mat_insert_zero_cols(copy(), first
, n
);
7788 isl::mat
mat::insert_zero_rows(unsigned int row
, unsigned int n
) const {
7789 auto res
= isl_mat_insert_zero_rows(copy(), row
, n
);
7793 isl::mat
mat::inverse_product(isl::mat right
) const {
7794 auto res
= isl_mat_inverse_product(copy(), right
.release());
7798 isl::boolean
mat::is_equal(const isl::mat
&mat2
) const {
7799 auto res
= isl_mat_is_equal(get(), mat2
.get());
7803 isl::mat
mat::lin_to_aff() const {
7804 auto res
= isl_mat_lin_to_aff(copy());
7808 isl::mat
mat::move_cols(unsigned int dst_col
, unsigned int src_col
, unsigned int n
) const {
7809 auto res
= isl_mat_move_cols(copy(), dst_col
, src_col
, n
);
7813 isl::mat
mat::normalize() const {
7814 auto res
= isl_mat_normalize(copy());
7818 isl::mat
mat::normalize_row(int row
) const {
7819 auto res
= isl_mat_normalize_row(copy(), row
);
7823 isl::mat
mat::product(isl::mat right
) const {
7824 auto res
= isl_mat_product(copy(), right
.release());
7828 isl::mat
mat::right_inverse() const {
7829 auto res
= isl_mat_right_inverse(copy());
7833 isl::mat
mat::right_kernel() const {
7834 auto res
= isl_mat_right_kernel(copy());
7838 int mat::rows() const {
7839 auto res
= isl_mat_rows(get());
7843 isl::mat
mat::set_element_si(int row
, int col
, int v
) const {
7844 auto res
= isl_mat_set_element_si(copy(), row
, col
, v
);
7848 isl::mat
mat::set_element_val(int row
, int col
, isl::val v
) const {
7849 auto res
= isl_mat_set_element_val(copy(), row
, col
, v
.release());
7853 isl::mat
mat::swap_cols(unsigned int i
, unsigned int j
) const {
7854 auto res
= isl_mat_swap_cols(copy(), i
, j
);
7858 isl::mat
mat::swap_rows(unsigned int i
, unsigned int j
) const {
7859 auto res
= isl_mat_swap_rows(copy(), i
, j
);
7863 isl::mat
mat::transpose() const {
7864 auto res
= isl_mat_transpose(copy());
7868 isl::mat
mat::unimodular_complete(int row
) const {
7869 auto res
= isl_mat_unimodular_complete(copy(), row
);
7873 isl::mat
mat::vec_concat(isl::vec bot
) const {
7874 auto res
= isl_mat_vec_concat(copy(), bot
.release());
7878 isl::vec
mat::vec_inverse_product(isl::vec vec
) const {
7879 auto res
= isl_mat_vec_inverse_product(copy(), vec
.release());
7883 isl::vec
mat::vec_product(isl::vec vec
) const {
7884 auto res
= isl_mat_vec_product(copy(), vec
.release());
7888 // implementations for isl::multi_aff
7889 isl::multi_aff
manage(__isl_take isl_multi_aff
*ptr
) {
7890 return multi_aff(ptr
);
7892 isl::multi_aff
manage_copy(__isl_keep isl_multi_aff
*ptr
) {
7893 return multi_aff(isl_multi_aff_copy(ptr
));
7895 isl::multi_aff
give(__isl_take isl_multi_aff
*ptr
) {
7900 multi_aff::multi_aff()
7903 multi_aff::multi_aff(const isl::multi_aff
&obj
)
7904 : ptr(obj
.copy()) {}
7905 multi_aff::multi_aff(std::nullptr_t
)
7909 multi_aff::multi_aff(__isl_take isl_multi_aff
*ptr
)
7912 multi_aff::multi_aff(isl::ctx ctx
, const std::string
&str
) {
7913 auto res
= isl_multi_aff_read_from_str(ctx
.release(), str
.c_str());
7916 multi_aff::multi_aff(isl::aff aff
) {
7917 auto res
= isl_multi_aff_from_aff(aff
.release());
7921 multi_aff
&multi_aff::operator=(isl::multi_aff obj
) {
7922 std::swap(this->ptr
, obj
.ptr
);
7926 multi_aff::~multi_aff() {
7928 isl_multi_aff_free(ptr
);
7931 __isl_give isl_multi_aff
*multi_aff::copy() const & {
7932 return isl_multi_aff_copy(ptr
);
7935 __isl_keep isl_multi_aff
*multi_aff::get() const {
7939 __isl_give isl_multi_aff
*multi_aff::release() {
7940 isl_multi_aff
*tmp
= ptr
;
7945 bool multi_aff::is_null() const {
7946 return ptr
== nullptr;
7948 __isl_keep isl_multi_aff
*multi_aff::keep() const {
7952 __isl_give isl_multi_aff
*multi_aff::take() {
7956 multi_aff::operator bool() const {
7961 isl::ctx
multi_aff::get_ctx() const {
7962 return isl::ctx(isl_multi_aff_get_ctx(ptr
));
7964 std::string
multi_aff::to_str() const {
7965 char *Tmp
= isl_multi_aff_to_str(get());
7974 void multi_aff::dump() const {
7975 isl_multi_aff_dump(get());
7979 isl::multi_aff
multi_aff::add(isl::multi_aff multi2
) const {
7980 auto res
= isl_multi_aff_add(copy(), multi2
.release());
7984 isl::multi_aff
multi_aff::add_dims(isl::dim type
, unsigned int n
) const {
7985 auto res
= isl_multi_aff_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
7989 isl::multi_aff
multi_aff::align_params(isl::space model
) const {
7990 auto res
= isl_multi_aff_align_params(copy(), model
.release());
7994 unsigned int multi_aff::dim(isl::dim type
) const {
7995 auto res
= isl_multi_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
7999 isl::multi_aff
multi_aff::domain_map(isl::space space
) {
8000 auto res
= isl_multi_aff_domain_map(space
.release());
8004 isl::multi_aff
multi_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8005 auto res
= isl_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8009 isl::multi_aff
multi_aff::factor_range() const {
8010 auto res
= isl_multi_aff_factor_range(copy());
8014 int multi_aff::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
8015 auto res
= isl_multi_aff_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
8019 int multi_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
8020 auto res
= isl_multi_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
8024 isl::multi_aff
multi_aff::flat_range_product(isl::multi_aff multi2
) const {
8025 auto res
= isl_multi_aff_flat_range_product(copy(), multi2
.release());
8029 isl::multi_aff
multi_aff::flatten_domain() const {
8030 auto res
= isl_multi_aff_flatten_domain(copy());
8034 isl::multi_aff
multi_aff::flatten_range() const {
8035 auto res
= isl_multi_aff_flatten_range(copy());
8039 isl::multi_aff
multi_aff::floor() const {
8040 auto res
= isl_multi_aff_floor(copy());
8044 isl::multi_aff
multi_aff::from_aff_list(isl::space space
, isl::aff_list list
) {
8045 auto res
= isl_multi_aff_from_aff_list(space
.release(), list
.release());
8049 isl::multi_aff
multi_aff::from_range() const {
8050 auto res
= isl_multi_aff_from_range(copy());
8054 isl::aff
multi_aff::get_aff(int pos
) const {
8055 auto res
= isl_multi_aff_get_aff(get(), pos
);
8059 isl::id
multi_aff::get_dim_id(isl::dim type
, unsigned int pos
) const {
8060 auto res
= isl_multi_aff_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
8064 isl::space
multi_aff::get_domain_space() const {
8065 auto res
= isl_multi_aff_get_domain_space(get());
8069 isl::space
multi_aff::get_space() const {
8070 auto res
= isl_multi_aff_get_space(get());
8074 isl::id
multi_aff::get_tuple_id(isl::dim type
) const {
8075 auto res
= isl_multi_aff_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
8079 std::string
multi_aff::get_tuple_name(isl::dim type
) const {
8080 auto res
= isl_multi_aff_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
8081 std::string
tmp(res
);
8085 isl::multi_aff
multi_aff::gist(isl::set context
) const {
8086 auto res
= isl_multi_aff_gist(copy(), context
.release());
8090 isl::multi_aff
multi_aff::gist_params(isl::set context
) const {
8091 auto res
= isl_multi_aff_gist_params(copy(), context
.release());
8095 isl::boolean
multi_aff::has_tuple_id(isl::dim type
) const {
8096 auto res
= isl_multi_aff_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
8100 isl::multi_aff
multi_aff::identity(isl::space space
) {
8101 auto res
= isl_multi_aff_identity(space
.release());
8105 isl::multi_aff
multi_aff::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8106 auto res
= isl_multi_aff_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8110 isl::boolean
multi_aff::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8111 auto res
= isl_multi_aff_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8115 isl::boolean
multi_aff::involves_nan() const {
8116 auto res
= isl_multi_aff_involves_nan(get());
8120 isl::set
multi_aff::lex_ge_set(isl::multi_aff ma2
) const {
8121 auto res
= isl_multi_aff_lex_ge_set(copy(), ma2
.release());
8125 isl::set
multi_aff::lex_gt_set(isl::multi_aff ma2
) const {
8126 auto res
= isl_multi_aff_lex_gt_set(copy(), ma2
.release());
8130 isl::set
multi_aff::lex_le_set(isl::multi_aff ma2
) const {
8131 auto res
= isl_multi_aff_lex_le_set(copy(), ma2
.release());
8135 isl::set
multi_aff::lex_lt_set(isl::multi_aff ma2
) const {
8136 auto res
= isl_multi_aff_lex_lt_set(copy(), ma2
.release());
8140 isl::multi_aff
multi_aff::mod_multi_val(isl::multi_val mv
) const {
8141 auto res
= isl_multi_aff_mod_multi_val(copy(), mv
.release());
8145 isl::multi_aff
multi_aff::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
8146 auto res
= isl_multi_aff_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
8150 isl::multi_aff
multi_aff::multi_val_on_space(isl::space space
, isl::multi_val mv
) {
8151 auto res
= isl_multi_aff_multi_val_on_space(space
.release(), mv
.release());
8155 isl::multi_aff
multi_aff::neg() const {
8156 auto res
= isl_multi_aff_neg(copy());
8160 int multi_aff::plain_cmp(const isl::multi_aff
&multi2
) const {
8161 auto res
= isl_multi_aff_plain_cmp(get(), multi2
.get());
8165 isl::boolean
multi_aff::plain_is_equal(const isl::multi_aff
&multi2
) const {
8166 auto res
= isl_multi_aff_plain_is_equal(get(), multi2
.get());
8170 isl::multi_aff
multi_aff::product(isl::multi_aff multi2
) const {
8171 auto res
= isl_multi_aff_product(copy(), multi2
.release());
8175 isl::multi_aff
multi_aff::project_out_map(isl::space space
, isl::dim type
, unsigned int first
, unsigned int n
) {
8176 auto res
= isl_multi_aff_project_out_map(space
.release(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8180 isl::multi_aff
multi_aff::pullback(isl::multi_aff ma2
) const {
8181 auto res
= isl_multi_aff_pullback_multi_aff(copy(), ma2
.release());
8185 isl::multi_aff
multi_aff::range_factor_domain() const {
8186 auto res
= isl_multi_aff_range_factor_domain(copy());
8190 isl::multi_aff
multi_aff::range_factor_range() const {
8191 auto res
= isl_multi_aff_range_factor_range(copy());
8195 isl::boolean
multi_aff::range_is_wrapping() const {
8196 auto res
= isl_multi_aff_range_is_wrapping(get());
8200 isl::multi_aff
multi_aff::range_map(isl::space space
) {
8201 auto res
= isl_multi_aff_range_map(space
.release());
8205 isl::multi_aff
multi_aff::range_product(isl::multi_aff multi2
) const {
8206 auto res
= isl_multi_aff_range_product(copy(), multi2
.release());
8210 isl::multi_aff
multi_aff::range_splice(unsigned int pos
, isl::multi_aff multi2
) const {
8211 auto res
= isl_multi_aff_range_splice(copy(), pos
, multi2
.release());
8215 isl::multi_aff
multi_aff::reset_tuple_id(isl::dim type
) const {
8216 auto res
= isl_multi_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
8220 isl::multi_aff
multi_aff::reset_user() const {
8221 auto res
= isl_multi_aff_reset_user(copy());
8225 isl::multi_aff
multi_aff::scale_down_multi_val(isl::multi_val mv
) const {
8226 auto res
= isl_multi_aff_scale_down_multi_val(copy(), mv
.release());
8230 isl::multi_aff
multi_aff::scale_down_val(isl::val v
) const {
8231 auto res
= isl_multi_aff_scale_down_val(copy(), v
.release());
8235 isl::multi_aff
multi_aff::scale_multi_val(isl::multi_val mv
) const {
8236 auto res
= isl_multi_aff_scale_multi_val(copy(), mv
.release());
8240 isl::multi_aff
multi_aff::scale_val(isl::val v
) const {
8241 auto res
= isl_multi_aff_scale_val(copy(), v
.release());
8245 isl::multi_aff
multi_aff::set_aff(int pos
, isl::aff el
) const {
8246 auto res
= isl_multi_aff_set_aff(copy(), pos
, el
.release());
8250 isl::multi_aff
multi_aff::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
8251 auto res
= isl_multi_aff_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
8255 isl::multi_aff
multi_aff::set_tuple_id(isl::dim type
, isl::id id
) const {
8256 auto res
= isl_multi_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
8260 isl::multi_aff
multi_aff::set_tuple_name(isl::dim type
, const std::string
&s
) const {
8261 auto res
= isl_multi_aff_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
8265 isl::multi_aff
multi_aff::splice(unsigned int in_pos
, unsigned int out_pos
, isl::multi_aff multi2
) const {
8266 auto res
= isl_multi_aff_splice(copy(), in_pos
, out_pos
, multi2
.release());
8270 isl::multi_aff
multi_aff::sub(isl::multi_aff multi2
) const {
8271 auto res
= isl_multi_aff_sub(copy(), multi2
.release());
8275 isl::multi_aff
multi_aff::zero(isl::space space
) {
8276 auto res
= isl_multi_aff_zero(space
.release());
8280 // implementations for isl::multi_pw_aff
8281 isl::multi_pw_aff
manage(__isl_take isl_multi_pw_aff
*ptr
) {
8282 return multi_pw_aff(ptr
);
8284 isl::multi_pw_aff
manage_copy(__isl_keep isl_multi_pw_aff
*ptr
) {
8285 return multi_pw_aff(isl_multi_pw_aff_copy(ptr
));
8287 isl::multi_pw_aff
give(__isl_take isl_multi_pw_aff
*ptr
) {
8292 multi_pw_aff::multi_pw_aff()
8295 multi_pw_aff::multi_pw_aff(const isl::multi_pw_aff
&obj
)
8296 : ptr(obj
.copy()) {}
8297 multi_pw_aff::multi_pw_aff(std::nullptr_t
)
8301 multi_pw_aff::multi_pw_aff(__isl_take isl_multi_pw_aff
*ptr
)
8304 multi_pw_aff::multi_pw_aff(isl::multi_aff ma
) {
8305 auto res
= isl_multi_pw_aff_from_multi_aff(ma
.release());
8308 multi_pw_aff::multi_pw_aff(isl::pw_aff pa
) {
8309 auto res
= isl_multi_pw_aff_from_pw_aff(pa
.release());
8312 multi_pw_aff::multi_pw_aff(isl::pw_multi_aff pma
) {
8313 auto res
= isl_multi_pw_aff_from_pw_multi_aff(pma
.release());
8316 multi_pw_aff::multi_pw_aff(isl::ctx ctx
, const std::string
&str
) {
8317 auto res
= isl_multi_pw_aff_read_from_str(ctx
.release(), str
.c_str());
8321 multi_pw_aff
&multi_pw_aff::operator=(isl::multi_pw_aff obj
) {
8322 std::swap(this->ptr
, obj
.ptr
);
8326 multi_pw_aff::~multi_pw_aff() {
8328 isl_multi_pw_aff_free(ptr
);
8331 __isl_give isl_multi_pw_aff
*multi_pw_aff::copy() const & {
8332 return isl_multi_pw_aff_copy(ptr
);
8335 __isl_keep isl_multi_pw_aff
*multi_pw_aff::get() const {
8339 __isl_give isl_multi_pw_aff
*multi_pw_aff::release() {
8340 isl_multi_pw_aff
*tmp
= ptr
;
8345 bool multi_pw_aff::is_null() const {
8346 return ptr
== nullptr;
8348 __isl_keep isl_multi_pw_aff
*multi_pw_aff::keep() const {
8352 __isl_give isl_multi_pw_aff
*multi_pw_aff::take() {
8356 multi_pw_aff::operator bool() const {
8361 isl::ctx
multi_pw_aff::get_ctx() const {
8362 return isl::ctx(isl_multi_pw_aff_get_ctx(ptr
));
8364 std::string
multi_pw_aff::to_str() const {
8365 char *Tmp
= isl_multi_pw_aff_to_str(get());
8374 void multi_pw_aff::dump() const {
8375 isl_multi_pw_aff_dump(get());
8379 isl::multi_pw_aff
multi_pw_aff::add(isl::multi_pw_aff multi2
) const {
8380 auto res
= isl_multi_pw_aff_add(copy(), multi2
.release());
8384 isl::multi_pw_aff
multi_pw_aff::add_dims(isl::dim type
, unsigned int n
) const {
8385 auto res
= isl_multi_pw_aff_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
8389 isl::multi_pw_aff
multi_pw_aff::align_params(isl::space model
) const {
8390 auto res
= isl_multi_pw_aff_align_params(copy(), model
.release());
8394 isl::multi_pw_aff
multi_pw_aff::coalesce() const {
8395 auto res
= isl_multi_pw_aff_coalesce(copy());
8399 unsigned int multi_pw_aff::dim(isl::dim type
) const {
8400 auto res
= isl_multi_pw_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
8404 isl::set
multi_pw_aff::domain() const {
8405 auto res
= isl_multi_pw_aff_domain(copy());
8409 isl::multi_pw_aff
multi_pw_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8410 auto res
= isl_multi_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8414 isl::map
multi_pw_aff::eq_map(isl::multi_pw_aff mpa2
) const {
8415 auto res
= isl_multi_pw_aff_eq_map(copy(), mpa2
.release());
8419 isl::multi_pw_aff
multi_pw_aff::factor_range() const {
8420 auto res
= isl_multi_pw_aff_factor_range(copy());
8424 int multi_pw_aff::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
8425 auto res
= isl_multi_pw_aff_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
8429 int multi_pw_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
8430 auto res
= isl_multi_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
8434 isl::multi_pw_aff
multi_pw_aff::flat_range_product(isl::multi_pw_aff multi2
) const {
8435 auto res
= isl_multi_pw_aff_flat_range_product(copy(), multi2
.release());
8439 isl::multi_pw_aff
multi_pw_aff::flatten_range() const {
8440 auto res
= isl_multi_pw_aff_flatten_range(copy());
8444 isl::multi_pw_aff
multi_pw_aff::from_pw_aff_list(isl::space space
, isl::pw_aff_list list
) {
8445 auto res
= isl_multi_pw_aff_from_pw_aff_list(space
.release(), list
.release());
8449 isl::multi_pw_aff
multi_pw_aff::from_range() const {
8450 auto res
= isl_multi_pw_aff_from_range(copy());
8454 isl::id
multi_pw_aff::get_dim_id(isl::dim type
, unsigned int pos
) const {
8455 auto res
= isl_multi_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
8459 isl::space
multi_pw_aff::get_domain_space() const {
8460 auto res
= isl_multi_pw_aff_get_domain_space(get());
8464 uint32_t multi_pw_aff::get_hash() const {
8465 auto res
= isl_multi_pw_aff_get_hash(get());
8469 isl::pw_aff
multi_pw_aff::get_pw_aff(int pos
) const {
8470 auto res
= isl_multi_pw_aff_get_pw_aff(get(), pos
);
8474 isl::space
multi_pw_aff::get_space() const {
8475 auto res
= isl_multi_pw_aff_get_space(get());
8479 isl::id
multi_pw_aff::get_tuple_id(isl::dim type
) const {
8480 auto res
= isl_multi_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
8484 std::string
multi_pw_aff::get_tuple_name(isl::dim type
) const {
8485 auto res
= isl_multi_pw_aff_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
8486 std::string
tmp(res
);
8490 isl::multi_pw_aff
multi_pw_aff::gist(isl::set set
) const {
8491 auto res
= isl_multi_pw_aff_gist(copy(), set
.release());
8495 isl::multi_pw_aff
multi_pw_aff::gist_params(isl::set set
) const {
8496 auto res
= isl_multi_pw_aff_gist_params(copy(), set
.release());
8500 isl::boolean
multi_pw_aff::has_tuple_id(isl::dim type
) const {
8501 auto res
= isl_multi_pw_aff_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
8505 isl::multi_pw_aff
multi_pw_aff::identity(isl::space space
) {
8506 auto res
= isl_multi_pw_aff_identity(space
.release());
8510 isl::multi_pw_aff
multi_pw_aff::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8511 auto res
= isl_multi_pw_aff_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8515 isl::multi_pw_aff
multi_pw_aff::intersect_domain(isl::set domain
) const {
8516 auto res
= isl_multi_pw_aff_intersect_domain(copy(), domain
.release());
8520 isl::multi_pw_aff
multi_pw_aff::intersect_params(isl::set set
) const {
8521 auto res
= isl_multi_pw_aff_intersect_params(copy(), set
.release());
8525 isl::boolean
multi_pw_aff::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8526 auto res
= isl_multi_pw_aff_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8530 isl::boolean
multi_pw_aff::involves_nan() const {
8531 auto res
= isl_multi_pw_aff_involves_nan(get());
8535 isl::boolean
multi_pw_aff::is_cst() const {
8536 auto res
= isl_multi_pw_aff_is_cst(get());
8540 isl::boolean
multi_pw_aff::is_equal(const isl::multi_pw_aff
&mpa2
) const {
8541 auto res
= isl_multi_pw_aff_is_equal(get(), mpa2
.get());
8545 isl::map
multi_pw_aff::lex_gt_map(isl::multi_pw_aff mpa2
) const {
8546 auto res
= isl_multi_pw_aff_lex_gt_map(copy(), mpa2
.release());
8550 isl::map
multi_pw_aff::lex_lt_map(isl::multi_pw_aff mpa2
) const {
8551 auto res
= isl_multi_pw_aff_lex_lt_map(copy(), mpa2
.release());
8555 isl::multi_pw_aff
multi_pw_aff::mod_multi_val(isl::multi_val mv
) const {
8556 auto res
= isl_multi_pw_aff_mod_multi_val(copy(), mv
.release());
8560 isl::multi_pw_aff
multi_pw_aff::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
8561 auto res
= isl_multi_pw_aff_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
8565 isl::multi_pw_aff
multi_pw_aff::neg() const {
8566 auto res
= isl_multi_pw_aff_neg(copy());
8570 isl::boolean
multi_pw_aff::plain_is_equal(const isl::multi_pw_aff
&multi2
) const {
8571 auto res
= isl_multi_pw_aff_plain_is_equal(get(), multi2
.get());
8575 isl::multi_pw_aff
multi_pw_aff::product(isl::multi_pw_aff multi2
) const {
8576 auto res
= isl_multi_pw_aff_product(copy(), multi2
.release());
8580 isl::multi_pw_aff
multi_pw_aff::pullback(isl::multi_aff ma
) const {
8581 auto res
= isl_multi_pw_aff_pullback_multi_aff(copy(), ma
.release());
8585 isl::multi_pw_aff
multi_pw_aff::pullback(isl::pw_multi_aff pma
) const {
8586 auto res
= isl_multi_pw_aff_pullback_pw_multi_aff(copy(), pma
.release());
8590 isl::multi_pw_aff
multi_pw_aff::pullback(isl::multi_pw_aff mpa2
) const {
8591 auto res
= isl_multi_pw_aff_pullback_multi_pw_aff(copy(), mpa2
.release());
8595 isl::multi_pw_aff
multi_pw_aff::range_factor_domain() const {
8596 auto res
= isl_multi_pw_aff_range_factor_domain(copy());
8600 isl::multi_pw_aff
multi_pw_aff::range_factor_range() const {
8601 auto res
= isl_multi_pw_aff_range_factor_range(copy());
8605 isl::boolean
multi_pw_aff::range_is_wrapping() const {
8606 auto res
= isl_multi_pw_aff_range_is_wrapping(get());
8610 isl::multi_pw_aff
multi_pw_aff::range_product(isl::multi_pw_aff multi2
) const {
8611 auto res
= isl_multi_pw_aff_range_product(copy(), multi2
.release());
8615 isl::multi_pw_aff
multi_pw_aff::range_splice(unsigned int pos
, isl::multi_pw_aff multi2
) const {
8616 auto res
= isl_multi_pw_aff_range_splice(copy(), pos
, multi2
.release());
8620 isl::multi_pw_aff
multi_pw_aff::reset_tuple_id(isl::dim type
) const {
8621 auto res
= isl_multi_pw_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
8625 isl::multi_pw_aff
multi_pw_aff::reset_user() const {
8626 auto res
= isl_multi_pw_aff_reset_user(copy());
8630 isl::multi_pw_aff
multi_pw_aff::scale_down_multi_val(isl::multi_val mv
) const {
8631 auto res
= isl_multi_pw_aff_scale_down_multi_val(copy(), mv
.release());
8635 isl::multi_pw_aff
multi_pw_aff::scale_down_val(isl::val v
) const {
8636 auto res
= isl_multi_pw_aff_scale_down_val(copy(), v
.release());
8640 isl::multi_pw_aff
multi_pw_aff::scale_multi_val(isl::multi_val mv
) const {
8641 auto res
= isl_multi_pw_aff_scale_multi_val(copy(), mv
.release());
8645 isl::multi_pw_aff
multi_pw_aff::scale_val(isl::val v
) const {
8646 auto res
= isl_multi_pw_aff_scale_val(copy(), v
.release());
8650 isl::multi_pw_aff
multi_pw_aff::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
8651 auto res
= isl_multi_pw_aff_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
8655 isl::multi_pw_aff
multi_pw_aff::set_pw_aff(int pos
, isl::pw_aff el
) const {
8656 auto res
= isl_multi_pw_aff_set_pw_aff(copy(), pos
, el
.release());
8660 isl::multi_pw_aff
multi_pw_aff::set_tuple_id(isl::dim type
, isl::id id
) const {
8661 auto res
= isl_multi_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
8665 isl::multi_pw_aff
multi_pw_aff::set_tuple_name(isl::dim type
, const std::string
&s
) const {
8666 auto res
= isl_multi_pw_aff_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
8670 isl::multi_pw_aff
multi_pw_aff::splice(unsigned int in_pos
, unsigned int out_pos
, isl::multi_pw_aff multi2
) const {
8671 auto res
= isl_multi_pw_aff_splice(copy(), in_pos
, out_pos
, multi2
.release());
8675 isl::multi_pw_aff
multi_pw_aff::sub(isl::multi_pw_aff multi2
) const {
8676 auto res
= isl_multi_pw_aff_sub(copy(), multi2
.release());
8680 isl::multi_pw_aff
multi_pw_aff::zero(isl::space space
) {
8681 auto res
= isl_multi_pw_aff_zero(space
.release());
8685 // implementations for isl::multi_union_pw_aff
8686 isl::multi_union_pw_aff
manage(__isl_take isl_multi_union_pw_aff
*ptr
) {
8687 return multi_union_pw_aff(ptr
);
8689 isl::multi_union_pw_aff
manage_copy(__isl_keep isl_multi_union_pw_aff
*ptr
) {
8690 return multi_union_pw_aff(isl_multi_union_pw_aff_copy(ptr
));
8692 isl::multi_union_pw_aff
give(__isl_take isl_multi_union_pw_aff
*ptr
) {
8697 multi_union_pw_aff::multi_union_pw_aff()
8700 multi_union_pw_aff::multi_union_pw_aff(const isl::multi_union_pw_aff
&obj
)
8701 : ptr(obj
.copy()) {}
8702 multi_union_pw_aff::multi_union_pw_aff(std::nullptr_t
)
8706 multi_union_pw_aff::multi_union_pw_aff(__isl_take isl_multi_union_pw_aff
*ptr
)
8709 multi_union_pw_aff::multi_union_pw_aff(isl::union_pw_aff upa
) {
8710 auto res
= isl_multi_union_pw_aff_from_union_pw_aff(upa
.release());
8713 multi_union_pw_aff::multi_union_pw_aff(isl::multi_pw_aff mpa
) {
8714 auto res
= isl_multi_union_pw_aff_from_multi_pw_aff(mpa
.release());
8717 multi_union_pw_aff::multi_union_pw_aff(isl::union_pw_multi_aff upma
) {
8718 auto res
= isl_multi_union_pw_aff_from_union_pw_multi_aff(upma
.release());
8721 multi_union_pw_aff::multi_union_pw_aff(isl::ctx ctx
, const std::string
&str
) {
8722 auto res
= isl_multi_union_pw_aff_read_from_str(ctx
.release(), str
.c_str());
8726 multi_union_pw_aff
&multi_union_pw_aff::operator=(isl::multi_union_pw_aff obj
) {
8727 std::swap(this->ptr
, obj
.ptr
);
8731 multi_union_pw_aff::~multi_union_pw_aff() {
8733 isl_multi_union_pw_aff_free(ptr
);
8736 __isl_give isl_multi_union_pw_aff
*multi_union_pw_aff::copy() const & {
8737 return isl_multi_union_pw_aff_copy(ptr
);
8740 __isl_keep isl_multi_union_pw_aff
*multi_union_pw_aff::get() const {
8744 __isl_give isl_multi_union_pw_aff
*multi_union_pw_aff::release() {
8745 isl_multi_union_pw_aff
*tmp
= ptr
;
8750 bool multi_union_pw_aff::is_null() const {
8751 return ptr
== nullptr;
8753 __isl_keep isl_multi_union_pw_aff
*multi_union_pw_aff::keep() const {
8757 __isl_give isl_multi_union_pw_aff
*multi_union_pw_aff::take() {
8761 multi_union_pw_aff::operator bool() const {
8766 isl::ctx
multi_union_pw_aff::get_ctx() const {
8767 return isl::ctx(isl_multi_union_pw_aff_get_ctx(ptr
));
8769 std::string
multi_union_pw_aff::to_str() const {
8770 char *Tmp
= isl_multi_union_pw_aff_to_str(get());
8779 void multi_union_pw_aff::dump() const {
8780 isl_multi_union_pw_aff_dump(get());
8784 isl::multi_union_pw_aff
multi_union_pw_aff::add(isl::multi_union_pw_aff multi2
) const {
8785 auto res
= isl_multi_union_pw_aff_add(copy(), multi2
.release());
8789 isl::multi_union_pw_aff
multi_union_pw_aff::align_params(isl::space model
) const {
8790 auto res
= isl_multi_union_pw_aff_align_params(copy(), model
.release());
8794 isl::union_pw_aff
multi_union_pw_aff::apply_aff(isl::aff aff
) const {
8795 auto res
= isl_multi_union_pw_aff_apply_aff(copy(), aff
.release());
8799 isl::union_pw_aff
multi_union_pw_aff::apply_pw_aff(isl::pw_aff pa
) const {
8800 auto res
= isl_multi_union_pw_aff_apply_pw_aff(copy(), pa
.release());
8804 isl::multi_union_pw_aff
multi_union_pw_aff::apply_pw_multi_aff(isl::pw_multi_aff pma
) const {
8805 auto res
= isl_multi_union_pw_aff_apply_pw_multi_aff(copy(), pma
.release());
8809 isl::multi_union_pw_aff
multi_union_pw_aff::coalesce() const {
8810 auto res
= isl_multi_union_pw_aff_coalesce(copy());
8814 unsigned int multi_union_pw_aff::dim(isl::dim type
) const {
8815 auto res
= isl_multi_union_pw_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
8819 isl::union_set
multi_union_pw_aff::domain() const {
8820 auto res
= isl_multi_union_pw_aff_domain(copy());
8824 isl::multi_union_pw_aff
multi_union_pw_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
8825 auto res
= isl_multi_union_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
8829 isl::multi_pw_aff
multi_union_pw_aff::extract_multi_pw_aff(isl::space space
) const {
8830 auto res
= isl_multi_union_pw_aff_extract_multi_pw_aff(get(), space
.release());
8834 isl::multi_union_pw_aff
multi_union_pw_aff::factor_range() const {
8835 auto res
= isl_multi_union_pw_aff_factor_range(copy());
8839 int multi_union_pw_aff::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
8840 auto res
= isl_multi_union_pw_aff_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
8844 int multi_union_pw_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
8845 auto res
= isl_multi_union_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
8849 isl::multi_union_pw_aff
multi_union_pw_aff::flat_range_product(isl::multi_union_pw_aff multi2
) const {
8850 auto res
= isl_multi_union_pw_aff_flat_range_product(copy(), multi2
.release());
8854 isl::multi_union_pw_aff
multi_union_pw_aff::flatten_range() const {
8855 auto res
= isl_multi_union_pw_aff_flatten_range(copy());
8859 isl::multi_union_pw_aff
multi_union_pw_aff::floor() const {
8860 auto res
= isl_multi_union_pw_aff_floor(copy());
8864 isl::multi_union_pw_aff
multi_union_pw_aff::from_multi_aff(isl::multi_aff ma
) {
8865 auto res
= isl_multi_union_pw_aff_from_multi_aff(ma
.release());
8869 isl::multi_union_pw_aff
multi_union_pw_aff::from_range() const {
8870 auto res
= isl_multi_union_pw_aff_from_range(copy());
8874 isl::multi_union_pw_aff
multi_union_pw_aff::from_union_map(isl::union_map umap
) {
8875 auto res
= isl_multi_union_pw_aff_from_union_map(umap
.release());
8879 isl::multi_union_pw_aff
multi_union_pw_aff::from_union_pw_aff_list(isl::space space
, isl::union_pw_aff_list list
) {
8880 auto res
= isl_multi_union_pw_aff_from_union_pw_aff_list(space
.release(), list
.release());
8884 isl::id
multi_union_pw_aff::get_dim_id(isl::dim type
, unsigned int pos
) const {
8885 auto res
= isl_multi_union_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
8889 isl::space
multi_union_pw_aff::get_domain_space() const {
8890 auto res
= isl_multi_union_pw_aff_get_domain_space(get());
8894 isl::space
multi_union_pw_aff::get_space() const {
8895 auto res
= isl_multi_union_pw_aff_get_space(get());
8899 isl::id
multi_union_pw_aff::get_tuple_id(isl::dim type
) const {
8900 auto res
= isl_multi_union_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
8904 std::string
multi_union_pw_aff::get_tuple_name(isl::dim type
) const {
8905 auto res
= isl_multi_union_pw_aff_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
8906 std::string
tmp(res
);
8910 isl::union_pw_aff
multi_union_pw_aff::get_union_pw_aff(int pos
) const {
8911 auto res
= isl_multi_union_pw_aff_get_union_pw_aff(get(), pos
);
8915 isl::multi_union_pw_aff
multi_union_pw_aff::gist(isl::union_set context
) const {
8916 auto res
= isl_multi_union_pw_aff_gist(copy(), context
.release());
8920 isl::multi_union_pw_aff
multi_union_pw_aff::gist_params(isl::set context
) const {
8921 auto res
= isl_multi_union_pw_aff_gist_params(copy(), context
.release());
8925 isl::boolean
multi_union_pw_aff::has_tuple_id(isl::dim type
) const {
8926 auto res
= isl_multi_union_pw_aff_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
8930 isl::multi_union_pw_aff
multi_union_pw_aff::intersect_domain(isl::union_set uset
) const {
8931 auto res
= isl_multi_union_pw_aff_intersect_domain(copy(), uset
.release());
8935 isl::multi_union_pw_aff
multi_union_pw_aff::intersect_params(isl::set params
) const {
8936 auto res
= isl_multi_union_pw_aff_intersect_params(copy(), params
.release());
8940 isl::multi_union_pw_aff
multi_union_pw_aff::intersect_range(isl::set set
) const {
8941 auto res
= isl_multi_union_pw_aff_intersect_range(copy(), set
.release());
8945 isl::boolean
multi_union_pw_aff::involves_nan() const {
8946 auto res
= isl_multi_union_pw_aff_involves_nan(get());
8950 isl::multi_union_pw_aff
multi_union_pw_aff::mod_multi_val(isl::multi_val mv
) const {
8951 auto res
= isl_multi_union_pw_aff_mod_multi_val(copy(), mv
.release());
8955 isl::multi_union_pw_aff
multi_union_pw_aff::multi_aff_on_domain(isl::union_set domain
, isl::multi_aff ma
) {
8956 auto res
= isl_multi_union_pw_aff_multi_aff_on_domain(domain
.release(), ma
.release());
8960 isl::multi_union_pw_aff
multi_union_pw_aff::multi_val_on_domain(isl::union_set domain
, isl::multi_val mv
) {
8961 auto res
= isl_multi_union_pw_aff_multi_val_on_domain(domain
.release(), mv
.release());
8965 isl::multi_union_pw_aff
multi_union_pw_aff::neg() const {
8966 auto res
= isl_multi_union_pw_aff_neg(copy());
8970 isl::boolean
multi_union_pw_aff::plain_is_equal(const isl::multi_union_pw_aff
&multi2
) const {
8971 auto res
= isl_multi_union_pw_aff_plain_is_equal(get(), multi2
.get());
8975 isl::multi_union_pw_aff
multi_union_pw_aff::pullback(isl::union_pw_multi_aff upma
) const {
8976 auto res
= isl_multi_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma
.release());
8980 isl::multi_union_pw_aff
multi_union_pw_aff::range_factor_domain() const {
8981 auto res
= isl_multi_union_pw_aff_range_factor_domain(copy());
8985 isl::multi_union_pw_aff
multi_union_pw_aff::range_factor_range() const {
8986 auto res
= isl_multi_union_pw_aff_range_factor_range(copy());
8990 isl::boolean
multi_union_pw_aff::range_is_wrapping() const {
8991 auto res
= isl_multi_union_pw_aff_range_is_wrapping(get());
8995 isl::multi_union_pw_aff
multi_union_pw_aff::range_product(isl::multi_union_pw_aff multi2
) const {
8996 auto res
= isl_multi_union_pw_aff_range_product(copy(), multi2
.release());
9000 isl::multi_union_pw_aff
multi_union_pw_aff::range_splice(unsigned int pos
, isl::multi_union_pw_aff multi2
) const {
9001 auto res
= isl_multi_union_pw_aff_range_splice(copy(), pos
, multi2
.release());
9005 isl::multi_union_pw_aff
multi_union_pw_aff::reset_tuple_id(isl::dim type
) const {
9006 auto res
= isl_multi_union_pw_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
9010 isl::multi_union_pw_aff
multi_union_pw_aff::reset_user() const {
9011 auto res
= isl_multi_union_pw_aff_reset_user(copy());
9015 isl::multi_union_pw_aff
multi_union_pw_aff::scale_down_multi_val(isl::multi_val mv
) const {
9016 auto res
= isl_multi_union_pw_aff_scale_down_multi_val(copy(), mv
.release());
9020 isl::multi_union_pw_aff
multi_union_pw_aff::scale_down_val(isl::val v
) const {
9021 auto res
= isl_multi_union_pw_aff_scale_down_val(copy(), v
.release());
9025 isl::multi_union_pw_aff
multi_union_pw_aff::scale_multi_val(isl::multi_val mv
) const {
9026 auto res
= isl_multi_union_pw_aff_scale_multi_val(copy(), mv
.release());
9030 isl::multi_union_pw_aff
multi_union_pw_aff::scale_val(isl::val v
) const {
9031 auto res
= isl_multi_union_pw_aff_scale_val(copy(), v
.release());
9035 isl::multi_union_pw_aff
multi_union_pw_aff::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
9036 auto res
= isl_multi_union_pw_aff_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
9040 isl::multi_union_pw_aff
multi_union_pw_aff::set_tuple_id(isl::dim type
, isl::id id
) const {
9041 auto res
= isl_multi_union_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
9045 isl::multi_union_pw_aff
multi_union_pw_aff::set_tuple_name(isl::dim type
, const std::string
&s
) const {
9046 auto res
= isl_multi_union_pw_aff_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
9050 isl::multi_union_pw_aff
multi_union_pw_aff::set_union_pw_aff(int pos
, isl::union_pw_aff el
) const {
9051 auto res
= isl_multi_union_pw_aff_set_union_pw_aff(copy(), pos
, el
.release());
9055 isl::multi_union_pw_aff
multi_union_pw_aff::sub(isl::multi_union_pw_aff multi2
) const {
9056 auto res
= isl_multi_union_pw_aff_sub(copy(), multi2
.release());
9060 isl::multi_union_pw_aff
multi_union_pw_aff::union_add(isl::multi_union_pw_aff mupa2
) const {
9061 auto res
= isl_multi_union_pw_aff_union_add(copy(), mupa2
.release());
9065 isl::multi_union_pw_aff
multi_union_pw_aff::zero(isl::space space
) {
9066 auto res
= isl_multi_union_pw_aff_zero(space
.release());
9070 isl::union_set
multi_union_pw_aff::zero_union_set() const {
9071 auto res
= isl_multi_union_pw_aff_zero_union_set(copy());
9075 // implementations for isl::multi_val
9076 isl::multi_val
manage(__isl_take isl_multi_val
*ptr
) {
9077 return multi_val(ptr
);
9079 isl::multi_val
manage_copy(__isl_keep isl_multi_val
*ptr
) {
9080 return multi_val(isl_multi_val_copy(ptr
));
9082 isl::multi_val
give(__isl_take isl_multi_val
*ptr
) {
9087 multi_val::multi_val()
9090 multi_val::multi_val(const isl::multi_val
&obj
)
9091 : ptr(obj
.copy()) {}
9092 multi_val::multi_val(std::nullptr_t
)
9096 multi_val::multi_val(__isl_take isl_multi_val
*ptr
)
9099 multi_val::multi_val(isl::ctx ctx
, const std::string
&str
) {
9100 auto res
= isl_multi_val_read_from_str(ctx
.release(), str
.c_str());
9104 multi_val
&multi_val::operator=(isl::multi_val obj
) {
9105 std::swap(this->ptr
, obj
.ptr
);
9109 multi_val::~multi_val() {
9111 isl_multi_val_free(ptr
);
9114 __isl_give isl_multi_val
*multi_val::copy() const & {
9115 return isl_multi_val_copy(ptr
);
9118 __isl_keep isl_multi_val
*multi_val::get() const {
9122 __isl_give isl_multi_val
*multi_val::release() {
9123 isl_multi_val
*tmp
= ptr
;
9128 bool multi_val::is_null() const {
9129 return ptr
== nullptr;
9131 __isl_keep isl_multi_val
*multi_val::keep() const {
9135 __isl_give isl_multi_val
*multi_val::take() {
9139 multi_val::operator bool() const {
9144 isl::ctx
multi_val::get_ctx() const {
9145 return isl::ctx(isl_multi_val_get_ctx(ptr
));
9147 std::string
multi_val::to_str() const {
9148 char *Tmp
= isl_multi_val_to_str(get());
9157 void multi_val::dump() const {
9158 isl_multi_val_dump(get());
9162 isl::multi_val
multi_val::add(isl::multi_val multi2
) const {
9163 auto res
= isl_multi_val_add(copy(), multi2
.release());
9167 isl::multi_val
multi_val::add_dims(isl::dim type
, unsigned int n
) const {
9168 auto res
= isl_multi_val_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
9172 isl::multi_val
multi_val::add_val(isl::val v
) const {
9173 auto res
= isl_multi_val_add_val(copy(), v
.release());
9177 isl::multi_val
multi_val::align_params(isl::space model
) const {
9178 auto res
= isl_multi_val_align_params(copy(), model
.release());
9182 unsigned int multi_val::dim(isl::dim type
) const {
9183 auto res
= isl_multi_val_dim(get(), static_cast<enum isl_dim_type
>(type
));
9187 isl::multi_val
multi_val::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
9188 auto res
= isl_multi_val_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
9192 isl::multi_val
multi_val::factor_range() const {
9193 auto res
= isl_multi_val_factor_range(copy());
9197 int multi_val::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
9198 auto res
= isl_multi_val_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
9202 int multi_val::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
9203 auto res
= isl_multi_val_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
9207 isl::multi_val
multi_val::flat_range_product(isl::multi_val multi2
) const {
9208 auto res
= isl_multi_val_flat_range_product(copy(), multi2
.release());
9212 isl::multi_val
multi_val::flatten_range() const {
9213 auto res
= isl_multi_val_flatten_range(copy());
9217 isl::multi_val
multi_val::from_range() const {
9218 auto res
= isl_multi_val_from_range(copy());
9222 isl::multi_val
multi_val::from_val_list(isl::space space
, isl::val_list list
) {
9223 auto res
= isl_multi_val_from_val_list(space
.release(), list
.release());
9227 isl::id
multi_val::get_dim_id(isl::dim type
, unsigned int pos
) const {
9228 auto res
= isl_multi_val_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
9232 isl::space
multi_val::get_domain_space() const {
9233 auto res
= isl_multi_val_get_domain_space(get());
9237 isl::space
multi_val::get_space() const {
9238 auto res
= isl_multi_val_get_space(get());
9242 isl::id
multi_val::get_tuple_id(isl::dim type
) const {
9243 auto res
= isl_multi_val_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
9247 std::string
multi_val::get_tuple_name(isl::dim type
) const {
9248 auto res
= isl_multi_val_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
9249 std::string
tmp(res
);
9253 isl::val
multi_val::get_val(int pos
) const {
9254 auto res
= isl_multi_val_get_val(get(), pos
);
9258 isl::boolean
multi_val::has_tuple_id(isl::dim type
) const {
9259 auto res
= isl_multi_val_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
9263 isl::multi_val
multi_val::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
9264 auto res
= isl_multi_val_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
9268 isl::boolean
multi_val::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
9269 auto res
= isl_multi_val_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
9273 isl::boolean
multi_val::involves_nan() const {
9274 auto res
= isl_multi_val_involves_nan(get());
9278 isl::multi_val
multi_val::mod_multi_val(isl::multi_val mv
) const {
9279 auto res
= isl_multi_val_mod_multi_val(copy(), mv
.release());
9283 isl::multi_val
multi_val::mod_val(isl::val v
) const {
9284 auto res
= isl_multi_val_mod_val(copy(), v
.release());
9288 isl::multi_val
multi_val::neg() const {
9289 auto res
= isl_multi_val_neg(copy());
9293 isl::boolean
multi_val::plain_is_equal(const isl::multi_val
&multi2
) const {
9294 auto res
= isl_multi_val_plain_is_equal(get(), multi2
.get());
9298 isl::multi_val
multi_val::product(isl::multi_val multi2
) const {
9299 auto res
= isl_multi_val_product(copy(), multi2
.release());
9303 isl::multi_val
multi_val::range_factor_domain() const {
9304 auto res
= isl_multi_val_range_factor_domain(copy());
9308 isl::multi_val
multi_val::range_factor_range() const {
9309 auto res
= isl_multi_val_range_factor_range(copy());
9313 isl::boolean
multi_val::range_is_wrapping() const {
9314 auto res
= isl_multi_val_range_is_wrapping(get());
9318 isl::multi_val
multi_val::range_product(isl::multi_val multi2
) const {
9319 auto res
= isl_multi_val_range_product(copy(), multi2
.release());
9323 isl::multi_val
multi_val::range_splice(unsigned int pos
, isl::multi_val multi2
) const {
9324 auto res
= isl_multi_val_range_splice(copy(), pos
, multi2
.release());
9328 isl::multi_val
multi_val::reset_tuple_id(isl::dim type
) const {
9329 auto res
= isl_multi_val_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
9333 isl::multi_val
multi_val::reset_user() const {
9334 auto res
= isl_multi_val_reset_user(copy());
9338 isl::multi_val
multi_val::scale_down_multi_val(isl::multi_val mv
) const {
9339 auto res
= isl_multi_val_scale_down_multi_val(copy(), mv
.release());
9343 isl::multi_val
multi_val::scale_down_val(isl::val v
) const {
9344 auto res
= isl_multi_val_scale_down_val(copy(), v
.release());
9348 isl::multi_val
multi_val::scale_multi_val(isl::multi_val mv
) const {
9349 auto res
= isl_multi_val_scale_multi_val(copy(), mv
.release());
9353 isl::multi_val
multi_val::scale_val(isl::val v
) const {
9354 auto res
= isl_multi_val_scale_val(copy(), v
.release());
9358 isl::multi_val
multi_val::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
9359 auto res
= isl_multi_val_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
9363 isl::multi_val
multi_val::set_tuple_id(isl::dim type
, isl::id id
) const {
9364 auto res
= isl_multi_val_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
9368 isl::multi_val
multi_val::set_tuple_name(isl::dim type
, const std::string
&s
) const {
9369 auto res
= isl_multi_val_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
9373 isl::multi_val
multi_val::set_val(int pos
, isl::val el
) const {
9374 auto res
= isl_multi_val_set_val(copy(), pos
, el
.release());
9378 isl::multi_val
multi_val::splice(unsigned int in_pos
, unsigned int out_pos
, isl::multi_val multi2
) const {
9379 auto res
= isl_multi_val_splice(copy(), in_pos
, out_pos
, multi2
.release());
9383 isl::multi_val
multi_val::sub(isl::multi_val multi2
) const {
9384 auto res
= isl_multi_val_sub(copy(), multi2
.release());
9388 isl::multi_val
multi_val::zero(isl::space space
) {
9389 auto res
= isl_multi_val_zero(space
.release());
9393 // implementations for isl::point
9394 isl::point
manage(__isl_take isl_point
*ptr
) {
9397 isl::point
manage_copy(__isl_keep isl_point
*ptr
) {
9398 return point(isl_point_copy(ptr
));
9400 isl::point
give(__isl_take isl_point
*ptr
) {
9408 point::point(const isl::point
&obj
)
9409 : ptr(obj
.copy()) {}
9410 point::point(std::nullptr_t
)
9414 point::point(__isl_take isl_point
*ptr
)
9417 point::point(isl::space dim
) {
9418 auto res
= isl_point_zero(dim
.release());
9422 point
&point::operator=(isl::point obj
) {
9423 std::swap(this->ptr
, obj
.ptr
);
9429 isl_point_free(ptr
);
9432 __isl_give isl_point
*point::copy() const & {
9433 return isl_point_copy(ptr
);
9436 __isl_keep isl_point
*point::get() const {
9440 __isl_give isl_point
*point::release() {
9441 isl_point
*tmp
= ptr
;
9446 bool point::is_null() const {
9447 return ptr
== nullptr;
9449 __isl_keep isl_point
*point::keep() const {
9453 __isl_give isl_point
*point::take() {
9457 point::operator bool() const {
9462 isl::ctx
point::get_ctx() const {
9463 return isl::ctx(isl_point_get_ctx(ptr
));
9465 std::string
point::to_str() const {
9466 char *Tmp
= isl_point_to_str(get());
9475 void point::dump() const {
9476 isl_point_dump(get());
9480 isl::point
point::add_ui(isl::dim type
, int pos
, unsigned int val
) const {
9481 auto res
= isl_point_add_ui(copy(), static_cast<enum isl_dim_type
>(type
), pos
, val
);
9485 isl::val
point::get_coordinate_val(isl::dim type
, int pos
) const {
9486 auto res
= isl_point_get_coordinate_val(get(), static_cast<enum isl_dim_type
>(type
), pos
);
9490 isl::space
point::get_space() const {
9491 auto res
= isl_point_get_space(get());
9495 isl::point
point::set_coordinate_val(isl::dim type
, int pos
, isl::val v
) const {
9496 auto res
= isl_point_set_coordinate_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
9500 isl::point
point::sub_ui(isl::dim type
, int pos
, unsigned int val
) const {
9501 auto res
= isl_point_sub_ui(copy(), static_cast<enum isl_dim_type
>(type
), pos
, val
);
9505 // implementations for isl::pw_aff
9506 isl::pw_aff
manage(__isl_take isl_pw_aff
*ptr
) {
9509 isl::pw_aff
manage_copy(__isl_keep isl_pw_aff
*ptr
) {
9510 return pw_aff(isl_pw_aff_copy(ptr
));
9512 isl::pw_aff
give(__isl_take isl_pw_aff
*ptr
) {
9520 pw_aff::pw_aff(const isl::pw_aff
&obj
)
9521 : ptr(obj
.copy()) {}
9522 pw_aff::pw_aff(std::nullptr_t
)
9526 pw_aff::pw_aff(__isl_take isl_pw_aff
*ptr
)
9529 pw_aff::pw_aff(isl::aff aff
) {
9530 auto res
= isl_pw_aff_from_aff(aff
.release());
9533 pw_aff::pw_aff(isl::local_space ls
) {
9534 auto res
= isl_pw_aff_zero_on_domain(ls
.release());
9537 pw_aff::pw_aff(isl::set domain
, isl::val v
) {
9538 auto res
= isl_pw_aff_val_on_domain(domain
.release(), v
.release());
9541 pw_aff::pw_aff(isl::ctx ctx
, const std::string
&str
) {
9542 auto res
= isl_pw_aff_read_from_str(ctx
.release(), str
.c_str());
9546 pw_aff
&pw_aff::operator=(isl::pw_aff obj
) {
9547 std::swap(this->ptr
, obj
.ptr
);
9553 isl_pw_aff_free(ptr
);
9556 __isl_give isl_pw_aff
*pw_aff::copy() const & {
9557 return isl_pw_aff_copy(ptr
);
9560 __isl_keep isl_pw_aff
*pw_aff::get() const {
9564 __isl_give isl_pw_aff
*pw_aff::release() {
9565 isl_pw_aff
*tmp
= ptr
;
9570 bool pw_aff::is_null() const {
9571 return ptr
== nullptr;
9573 __isl_keep isl_pw_aff
*pw_aff::keep() const {
9577 __isl_give isl_pw_aff
*pw_aff::take() {
9581 pw_aff::operator bool() const {
9586 isl::ctx
pw_aff::get_ctx() const {
9587 return isl::ctx(isl_pw_aff_get_ctx(ptr
));
9589 std::string
pw_aff::to_str() const {
9590 char *Tmp
= isl_pw_aff_to_str(get());
9599 void pw_aff::dump() const {
9600 isl_pw_aff_dump(get());
9604 isl::pw_aff
pw_aff::add(isl::pw_aff pwaff2
) const {
9605 auto res
= isl_pw_aff_add(copy(), pwaff2
.release());
9609 isl::pw_aff
pw_aff::add_dims(isl::dim type
, unsigned int n
) const {
9610 auto res
= isl_pw_aff_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
9614 isl::pw_aff
pw_aff::align_params(isl::space model
) const {
9615 auto res
= isl_pw_aff_align_params(copy(), model
.release());
9619 isl::pw_aff
pw_aff::alloc(isl::set set
, isl::aff aff
) {
9620 auto res
= isl_pw_aff_alloc(set
.release(), aff
.release());
9624 isl::pw_aff
pw_aff::ceil() const {
9625 auto res
= isl_pw_aff_ceil(copy());
9629 isl::pw_aff
pw_aff::coalesce() const {
9630 auto res
= isl_pw_aff_coalesce(copy());
9634 isl::pw_aff
pw_aff::cond(isl::pw_aff pwaff_true
, isl::pw_aff pwaff_false
) const {
9635 auto res
= isl_pw_aff_cond(copy(), pwaff_true
.release(), pwaff_false
.release());
9639 unsigned int pw_aff::dim(isl::dim type
) const {
9640 auto res
= isl_pw_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
9644 isl::pw_aff
pw_aff::div(isl::pw_aff pa2
) const {
9645 auto res
= isl_pw_aff_div(copy(), pa2
.release());
9649 isl::set
pw_aff::domain() const {
9650 auto res
= isl_pw_aff_domain(copy());
9654 isl::pw_aff
pw_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
9655 auto res
= isl_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
9659 isl::pw_aff
pw_aff::empty(isl::space dim
) {
9660 auto res
= isl_pw_aff_empty(dim
.release());
9664 isl::map
pw_aff::eq_map(isl::pw_aff pa2
) const {
9665 auto res
= isl_pw_aff_eq_map(copy(), pa2
.release());
9669 isl::set
pw_aff::eq_set(isl::pw_aff pwaff2
) const {
9670 auto res
= isl_pw_aff_eq_set(copy(), pwaff2
.release());
9674 int pw_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
9675 auto res
= isl_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
9679 isl::pw_aff
pw_aff::floor() const {
9680 auto res
= isl_pw_aff_floor(copy());
9684 isl::stat
pw_aff::foreach_piece(const std::function
<isl::stat(isl::set
, isl::aff
)> &fn
) const {
9686 auto fn_lambda
= [](isl_set
*arg_0
, isl_aff
*arg_1
, void *arg_2
) -> isl_stat
{
9687 auto *func
= *static_cast<const std::function
<isl::stat(isl::set
, isl::aff
)> **>(arg_2
);
9688 stat ret
= (*func
)(isl::manage(arg_0
), isl::manage(arg_1
));
9689 return isl_stat(ret
);
9691 auto res
= isl_pw_aff_foreach_piece(get(), fn_lambda
, &fn_p
);
9692 return isl::stat(res
);
9695 isl::pw_aff
pw_aff::from_range() const {
9696 auto res
= isl_pw_aff_from_range(copy());
9700 isl::set
pw_aff::ge_set(isl::pw_aff pwaff2
) const {
9701 auto res
= isl_pw_aff_ge_set(copy(), pwaff2
.release());
9705 isl::id
pw_aff::get_dim_id(isl::dim type
, unsigned int pos
) const {
9706 auto res
= isl_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
9710 std::string
pw_aff::get_dim_name(isl::dim type
, unsigned int pos
) const {
9711 auto res
= isl_pw_aff_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
9712 std::string
tmp(res
);
9716 isl::space
pw_aff::get_domain_space() const {
9717 auto res
= isl_pw_aff_get_domain_space(get());
9721 uint32_t pw_aff::get_hash() const {
9722 auto res
= isl_pw_aff_get_hash(get());
9726 isl::space
pw_aff::get_space() const {
9727 auto res
= isl_pw_aff_get_space(get());
9731 isl::id
pw_aff::get_tuple_id(isl::dim type
) const {
9732 auto res
= isl_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
9736 isl::pw_aff
pw_aff::gist(isl::set context
) const {
9737 auto res
= isl_pw_aff_gist(copy(), context
.release());
9741 isl::pw_aff
pw_aff::gist_params(isl::set context
) const {
9742 auto res
= isl_pw_aff_gist_params(copy(), context
.release());
9746 isl::map
pw_aff::gt_map(isl::pw_aff pa2
) const {
9747 auto res
= isl_pw_aff_gt_map(copy(), pa2
.release());
9751 isl::set
pw_aff::gt_set(isl::pw_aff pwaff2
) const {
9752 auto res
= isl_pw_aff_gt_set(copy(), pwaff2
.release());
9756 isl::boolean
pw_aff::has_dim_id(isl::dim type
, unsigned int pos
) const {
9757 auto res
= isl_pw_aff_has_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
9761 isl::boolean
pw_aff::has_tuple_id(isl::dim type
) const {
9762 auto res
= isl_pw_aff_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
9766 isl::pw_aff
pw_aff::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
9767 auto res
= isl_pw_aff_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
9771 isl::pw_aff
pw_aff::intersect_domain(isl::set set
) const {
9772 auto res
= isl_pw_aff_intersect_domain(copy(), set
.release());
9776 isl::pw_aff
pw_aff::intersect_params(isl::set set
) const {
9777 auto res
= isl_pw_aff_intersect_params(copy(), set
.release());
9781 isl::boolean
pw_aff::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
9782 auto res
= isl_pw_aff_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
9786 isl::boolean
pw_aff::involves_nan() const {
9787 auto res
= isl_pw_aff_involves_nan(get());
9791 isl::boolean
pw_aff::is_cst() const {
9792 auto res
= isl_pw_aff_is_cst(get());
9796 isl::boolean
pw_aff::is_empty() const {
9797 auto res
= isl_pw_aff_is_empty(get());
9801 isl::boolean
pw_aff::is_equal(const isl::pw_aff
&pa2
) const {
9802 auto res
= isl_pw_aff_is_equal(get(), pa2
.get());
9806 isl::set
pw_aff::le_set(isl::pw_aff pwaff2
) const {
9807 auto res
= isl_pw_aff_le_set(copy(), pwaff2
.release());
9811 isl::map
pw_aff::lt_map(isl::pw_aff pa2
) const {
9812 auto res
= isl_pw_aff_lt_map(copy(), pa2
.release());
9816 isl::set
pw_aff::lt_set(isl::pw_aff pwaff2
) const {
9817 auto res
= isl_pw_aff_lt_set(copy(), pwaff2
.release());
9821 isl::pw_aff
pw_aff::max(isl::pw_aff pwaff2
) const {
9822 auto res
= isl_pw_aff_max(copy(), pwaff2
.release());
9826 isl::pw_aff
pw_aff::min(isl::pw_aff pwaff2
) const {
9827 auto res
= isl_pw_aff_min(copy(), pwaff2
.release());
9831 isl::pw_aff
pw_aff::mod(isl::val mod
) const {
9832 auto res
= isl_pw_aff_mod_val(copy(), mod
.release());
9836 isl::pw_aff
pw_aff::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
9837 auto res
= isl_pw_aff_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
9841 isl::pw_aff
pw_aff::mul(isl::pw_aff pwaff2
) const {
9842 auto res
= isl_pw_aff_mul(copy(), pwaff2
.release());
9846 isl::pw_aff
pw_aff::nan_on_domain(isl::local_space ls
) {
9847 auto res
= isl_pw_aff_nan_on_domain(ls
.release());
9851 isl::set
pw_aff::ne_set(isl::pw_aff pwaff2
) const {
9852 auto res
= isl_pw_aff_ne_set(copy(), pwaff2
.release());
9856 isl::pw_aff
pw_aff::neg() const {
9857 auto res
= isl_pw_aff_neg(copy());
9861 isl::set
pw_aff::non_zero_set() const {
9862 auto res
= isl_pw_aff_non_zero_set(copy());
9866 isl::set
pw_aff::nonneg_set() const {
9867 auto res
= isl_pw_aff_nonneg_set(copy());
9871 isl::set
pw_aff::params() const {
9872 auto res
= isl_pw_aff_params(copy());
9876 int pw_aff::plain_cmp(const isl::pw_aff
&pa2
) const {
9877 auto res
= isl_pw_aff_plain_cmp(get(), pa2
.get());
9881 isl::boolean
pw_aff::plain_is_equal(const isl::pw_aff
&pwaff2
) const {
9882 auto res
= isl_pw_aff_plain_is_equal(get(), pwaff2
.get());
9886 isl::set
pw_aff::pos_set() const {
9887 auto res
= isl_pw_aff_pos_set(copy());
9891 isl::pw_aff
pw_aff::project_domain_on_params() const {
9892 auto res
= isl_pw_aff_project_domain_on_params(copy());
9896 isl::pw_aff
pw_aff::pullback(isl::multi_aff ma
) const {
9897 auto res
= isl_pw_aff_pullback_multi_aff(copy(), ma
.release());
9901 isl::pw_aff
pw_aff::pullback(isl::pw_multi_aff pma
) const {
9902 auto res
= isl_pw_aff_pullback_pw_multi_aff(copy(), pma
.release());
9906 isl::pw_aff
pw_aff::pullback(isl::multi_pw_aff mpa
) const {
9907 auto res
= isl_pw_aff_pullback_multi_pw_aff(copy(), mpa
.release());
9911 isl::pw_aff
pw_aff::reset_tuple_id(isl::dim type
) const {
9912 auto res
= isl_pw_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
9916 isl::pw_aff
pw_aff::reset_user() const {
9917 auto res
= isl_pw_aff_reset_user(copy());
9921 isl::pw_aff
pw_aff::scale(isl::val v
) const {
9922 auto res
= isl_pw_aff_scale_val(copy(), v
.release());
9926 isl::pw_aff
pw_aff::scale_down(isl::val f
) const {
9927 auto res
= isl_pw_aff_scale_down_val(copy(), f
.release());
9931 isl::pw_aff
pw_aff::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
9932 auto res
= isl_pw_aff_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
9936 isl::pw_aff
pw_aff::set_tuple_id(isl::dim type
, isl::id id
) const {
9937 auto res
= isl_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
9941 isl::pw_aff
pw_aff::sub(isl::pw_aff pwaff2
) const {
9942 auto res
= isl_pw_aff_sub(copy(), pwaff2
.release());
9946 isl::pw_aff
pw_aff::subtract_domain(isl::set set
) const {
9947 auto res
= isl_pw_aff_subtract_domain(copy(), set
.release());
9951 isl::pw_aff
pw_aff::tdiv_q(isl::pw_aff pa2
) const {
9952 auto res
= isl_pw_aff_tdiv_q(copy(), pa2
.release());
9956 isl::pw_aff
pw_aff::tdiv_r(isl::pw_aff pa2
) const {
9957 auto res
= isl_pw_aff_tdiv_r(copy(), pa2
.release());
9961 isl::pw_aff
pw_aff::union_add(isl::pw_aff pwaff2
) const {
9962 auto res
= isl_pw_aff_union_add(copy(), pwaff2
.release());
9966 isl::pw_aff
pw_aff::union_max(isl::pw_aff pwaff2
) const {
9967 auto res
= isl_pw_aff_union_max(copy(), pwaff2
.release());
9971 isl::pw_aff
pw_aff::union_min(isl::pw_aff pwaff2
) const {
9972 auto res
= isl_pw_aff_union_min(copy(), pwaff2
.release());
9976 isl::pw_aff
pw_aff::var_on_domain(isl::local_space ls
, isl::dim type
, unsigned int pos
) {
9977 auto res
= isl_pw_aff_var_on_domain(ls
.release(), static_cast<enum isl_dim_type
>(type
), pos
);
9981 isl::set
pw_aff::zero_set() const {
9982 auto res
= isl_pw_aff_zero_set(copy());
9986 // implementations for isl::pw_aff_list
9987 isl::pw_aff_list
manage(__isl_take isl_pw_aff_list
*ptr
) {
9988 return pw_aff_list(ptr
);
9990 isl::pw_aff_list
manage_copy(__isl_keep isl_pw_aff_list
*ptr
) {
9991 return pw_aff_list(isl_pw_aff_list_copy(ptr
));
9993 isl::pw_aff_list
give(__isl_take isl_pw_aff_list
*ptr
) {
9998 pw_aff_list::pw_aff_list()
10001 pw_aff_list::pw_aff_list(const isl::pw_aff_list
&obj
)
10002 : ptr(obj
.copy()) {}
10003 pw_aff_list::pw_aff_list(std::nullptr_t
)
10007 pw_aff_list::pw_aff_list(__isl_take isl_pw_aff_list
*ptr
)
10011 pw_aff_list
&pw_aff_list::operator=(isl::pw_aff_list obj
) {
10012 std::swap(this->ptr
, obj
.ptr
);
10016 pw_aff_list::~pw_aff_list() {
10018 isl_pw_aff_list_free(ptr
);
10021 __isl_give isl_pw_aff_list
*pw_aff_list::copy() const & {
10022 return isl_pw_aff_list_copy(ptr
);
10025 __isl_keep isl_pw_aff_list
*pw_aff_list::get() const {
10029 __isl_give isl_pw_aff_list
*pw_aff_list::release() {
10030 isl_pw_aff_list
*tmp
= ptr
;
10035 bool pw_aff_list::is_null() const {
10036 return ptr
== nullptr;
10038 __isl_keep isl_pw_aff_list
*pw_aff_list::keep() const {
10042 __isl_give isl_pw_aff_list
*pw_aff_list::take() {
10046 pw_aff_list::operator bool() const {
10051 isl::ctx
pw_aff_list::get_ctx() const {
10052 return isl::ctx(isl_pw_aff_list_get_ctx(ptr
));
10055 void pw_aff_list::dump() const {
10056 isl_pw_aff_list_dump(get());
10061 // implementations for isl::pw_multi_aff
10062 isl::pw_multi_aff
manage(__isl_take isl_pw_multi_aff
*ptr
) {
10063 return pw_multi_aff(ptr
);
10065 isl::pw_multi_aff
manage_copy(__isl_keep isl_pw_multi_aff
*ptr
) {
10066 return pw_multi_aff(isl_pw_multi_aff_copy(ptr
));
10068 isl::pw_multi_aff
give(__isl_take isl_pw_multi_aff
*ptr
) {
10069 return manage(ptr
);
10073 pw_multi_aff::pw_multi_aff()
10076 pw_multi_aff::pw_multi_aff(const isl::pw_multi_aff
&obj
)
10077 : ptr(obj
.copy()) {}
10078 pw_multi_aff::pw_multi_aff(std::nullptr_t
)
10082 pw_multi_aff::pw_multi_aff(__isl_take isl_pw_multi_aff
*ptr
)
10085 pw_multi_aff::pw_multi_aff(isl::multi_aff ma
) {
10086 auto res
= isl_pw_multi_aff_from_multi_aff(ma
.release());
10089 pw_multi_aff::pw_multi_aff(isl::pw_aff pa
) {
10090 auto res
= isl_pw_multi_aff_from_pw_aff(pa
.release());
10093 pw_multi_aff::pw_multi_aff(isl::ctx ctx
, const std::string
&str
) {
10094 auto res
= isl_pw_multi_aff_read_from_str(ctx
.release(), str
.c_str());
10098 pw_multi_aff
&pw_multi_aff::operator=(isl::pw_multi_aff obj
) {
10099 std::swap(this->ptr
, obj
.ptr
);
10103 pw_multi_aff::~pw_multi_aff() {
10105 isl_pw_multi_aff_free(ptr
);
10108 __isl_give isl_pw_multi_aff
*pw_multi_aff::copy() const & {
10109 return isl_pw_multi_aff_copy(ptr
);
10112 __isl_keep isl_pw_multi_aff
*pw_multi_aff::get() const {
10116 __isl_give isl_pw_multi_aff
*pw_multi_aff::release() {
10117 isl_pw_multi_aff
*tmp
= ptr
;
10122 bool pw_multi_aff::is_null() const {
10123 return ptr
== nullptr;
10125 __isl_keep isl_pw_multi_aff
*pw_multi_aff::keep() const {
10129 __isl_give isl_pw_multi_aff
*pw_multi_aff::take() {
10133 pw_multi_aff::operator bool() const {
10138 isl::ctx
pw_multi_aff::get_ctx() const {
10139 return isl::ctx(isl_pw_multi_aff_get_ctx(ptr
));
10141 std::string
pw_multi_aff::to_str() const {
10142 char *Tmp
= isl_pw_multi_aff_to_str(get());
10145 std::string
S(Tmp
);
10151 void pw_multi_aff::dump() const {
10152 isl_pw_multi_aff_dump(get());
10156 isl::pw_multi_aff
pw_multi_aff::add(isl::pw_multi_aff pma2
) const {
10157 auto res
= isl_pw_multi_aff_add(copy(), pma2
.release());
10158 return manage(res
);
10161 isl::pw_multi_aff
pw_multi_aff::align_params(isl::space model
) const {
10162 auto res
= isl_pw_multi_aff_align_params(copy(), model
.release());
10163 return manage(res
);
10166 isl::pw_multi_aff
pw_multi_aff::alloc(isl::set set
, isl::multi_aff maff
) {
10167 auto res
= isl_pw_multi_aff_alloc(set
.release(), maff
.release());
10168 return manage(res
);
10171 isl::pw_multi_aff
pw_multi_aff::coalesce() const {
10172 auto res
= isl_pw_multi_aff_coalesce(copy());
10173 return manage(res
);
10176 unsigned int pw_multi_aff::dim(isl::dim type
) const {
10177 auto res
= isl_pw_multi_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
10181 isl::set
pw_multi_aff::domain() const {
10182 auto res
= isl_pw_multi_aff_domain(copy());
10183 return manage(res
);
10186 isl::pw_multi_aff
pw_multi_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10187 auto res
= isl_pw_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10188 return manage(res
);
10191 isl::pw_multi_aff
pw_multi_aff::empty(isl::space space
) {
10192 auto res
= isl_pw_multi_aff_empty(space
.release());
10193 return manage(res
);
10196 int pw_multi_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
10197 auto res
= isl_pw_multi_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
10201 isl::pw_multi_aff
pw_multi_aff::fix_si(isl::dim type
, unsigned int pos
, int value
) const {
10202 auto res
= isl_pw_multi_aff_fix_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
10203 return manage(res
);
10206 isl::pw_multi_aff
pw_multi_aff::flat_range_product(isl::pw_multi_aff pma2
) const {
10207 auto res
= isl_pw_multi_aff_flat_range_product(copy(), pma2
.release());
10208 return manage(res
);
10211 isl::stat
pw_multi_aff::foreach_piece(const std::function
<isl::stat(isl::set
, isl::multi_aff
)> &fn
) const {
10213 auto fn_lambda
= [](isl_set
*arg_0
, isl_multi_aff
*arg_1
, void *arg_2
) -> isl_stat
{
10214 auto *func
= *static_cast<const std::function
<isl::stat(isl::set
, isl::multi_aff
)> **>(arg_2
);
10215 stat ret
= (*func
)(isl::manage(arg_0
), isl::manage(arg_1
));
10216 return isl_stat(ret
);
10218 auto res
= isl_pw_multi_aff_foreach_piece(get(), fn_lambda
, &fn_p
);
10219 return isl::stat(res
);
10222 isl::pw_multi_aff
pw_multi_aff::from_domain(isl::set set
) {
10223 auto res
= isl_pw_multi_aff_from_domain(set
.release());
10224 return manage(res
);
10227 isl::pw_multi_aff
pw_multi_aff::from_map(isl::map map
) {
10228 auto res
= isl_pw_multi_aff_from_map(map
.release());
10229 return manage(res
);
10232 isl::pw_multi_aff
pw_multi_aff::from_multi_pw_aff(isl::multi_pw_aff mpa
) {
10233 auto res
= isl_pw_multi_aff_from_multi_pw_aff(mpa
.release());
10234 return manage(res
);
10237 isl::pw_multi_aff
pw_multi_aff::from_set(isl::set set
) {
10238 auto res
= isl_pw_multi_aff_from_set(set
.release());
10239 return manage(res
);
10242 isl::id
pw_multi_aff::get_dim_id(isl::dim type
, unsigned int pos
) const {
10243 auto res
= isl_pw_multi_aff_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
10244 return manage(res
);
10247 std::string
pw_multi_aff::get_dim_name(isl::dim type
, unsigned int pos
) const {
10248 auto res
= isl_pw_multi_aff_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
10249 std::string
tmp(res
);
10253 isl::space
pw_multi_aff::get_domain_space() const {
10254 auto res
= isl_pw_multi_aff_get_domain_space(get());
10255 return manage(res
);
10258 isl::pw_aff
pw_multi_aff::get_pw_aff(int pos
) const {
10259 auto res
= isl_pw_multi_aff_get_pw_aff(get(), pos
);
10260 return manage(res
);
10263 isl::space
pw_multi_aff::get_space() const {
10264 auto res
= isl_pw_multi_aff_get_space(get());
10265 return manage(res
);
10268 isl::id
pw_multi_aff::get_tuple_id(isl::dim type
) const {
10269 auto res
= isl_pw_multi_aff_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
10270 return manage(res
);
10273 std::string
pw_multi_aff::get_tuple_name(isl::dim type
) const {
10274 auto res
= isl_pw_multi_aff_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
10275 std::string
tmp(res
);
10279 isl::pw_multi_aff
pw_multi_aff::gist(isl::set set
) const {
10280 auto res
= isl_pw_multi_aff_gist(copy(), set
.release());
10281 return manage(res
);
10284 isl::pw_multi_aff
pw_multi_aff::gist_params(isl::set set
) const {
10285 auto res
= isl_pw_multi_aff_gist_params(copy(), set
.release());
10286 return manage(res
);
10289 isl::boolean
pw_multi_aff::has_tuple_id(isl::dim type
) const {
10290 auto res
= isl_pw_multi_aff_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
10291 return manage(res
);
10294 isl::boolean
pw_multi_aff::has_tuple_name(isl::dim type
) const {
10295 auto res
= isl_pw_multi_aff_has_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
10296 return manage(res
);
10299 isl::pw_multi_aff
pw_multi_aff::identity(isl::space space
) {
10300 auto res
= isl_pw_multi_aff_identity(space
.release());
10301 return manage(res
);
10304 isl::pw_multi_aff
pw_multi_aff::intersect_domain(isl::set set
) const {
10305 auto res
= isl_pw_multi_aff_intersect_domain(copy(), set
.release());
10306 return manage(res
);
10309 isl::pw_multi_aff
pw_multi_aff::intersect_params(isl::set set
) const {
10310 auto res
= isl_pw_multi_aff_intersect_params(copy(), set
.release());
10311 return manage(res
);
10314 isl::boolean
pw_multi_aff::involves_nan() const {
10315 auto res
= isl_pw_multi_aff_involves_nan(get());
10316 return manage(res
);
10319 isl::boolean
pw_multi_aff::is_equal(const isl::pw_multi_aff
&pma2
) const {
10320 auto res
= isl_pw_multi_aff_is_equal(get(), pma2
.get());
10321 return manage(res
);
10324 isl::pw_multi_aff
pw_multi_aff::multi_val_on_domain(isl::set domain
, isl::multi_val mv
) {
10325 auto res
= isl_pw_multi_aff_multi_val_on_domain(domain
.release(), mv
.release());
10326 return manage(res
);
10329 isl::pw_multi_aff
pw_multi_aff::neg() const {
10330 auto res
= isl_pw_multi_aff_neg(copy());
10331 return manage(res
);
10334 isl::boolean
pw_multi_aff::plain_is_equal(const isl::pw_multi_aff
&pma2
) const {
10335 auto res
= isl_pw_multi_aff_plain_is_equal(get(), pma2
.get());
10336 return manage(res
);
10339 isl::pw_multi_aff
pw_multi_aff::product(isl::pw_multi_aff pma2
) const {
10340 auto res
= isl_pw_multi_aff_product(copy(), pma2
.release());
10341 return manage(res
);
10344 isl::pw_multi_aff
pw_multi_aff::project_domain_on_params() const {
10345 auto res
= isl_pw_multi_aff_project_domain_on_params(copy());
10346 return manage(res
);
10349 isl::pw_multi_aff
pw_multi_aff::project_out_map(isl::space space
, isl::dim type
, unsigned int first
, unsigned int n
) {
10350 auto res
= isl_pw_multi_aff_project_out_map(space
.release(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10351 return manage(res
);
10354 isl::pw_multi_aff
pw_multi_aff::pullback(isl::multi_aff ma
) const {
10355 auto res
= isl_pw_multi_aff_pullback_multi_aff(copy(), ma
.release());
10356 return manage(res
);
10359 isl::pw_multi_aff
pw_multi_aff::pullback(isl::pw_multi_aff pma2
) const {
10360 auto res
= isl_pw_multi_aff_pullback_pw_multi_aff(copy(), pma2
.release());
10361 return manage(res
);
10364 isl::pw_multi_aff
pw_multi_aff::range_map(isl::space space
) {
10365 auto res
= isl_pw_multi_aff_range_map(space
.release());
10366 return manage(res
);
10369 isl::pw_multi_aff
pw_multi_aff::range_product(isl::pw_multi_aff pma2
) const {
10370 auto res
= isl_pw_multi_aff_range_product(copy(), pma2
.release());
10371 return manage(res
);
10374 isl::pw_multi_aff
pw_multi_aff::reset_tuple_id(isl::dim type
) const {
10375 auto res
= isl_pw_multi_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
10376 return manage(res
);
10379 isl::pw_multi_aff
pw_multi_aff::reset_user() const {
10380 auto res
= isl_pw_multi_aff_reset_user(copy());
10381 return manage(res
);
10384 isl::pw_multi_aff
pw_multi_aff::scale_down_val(isl::val v
) const {
10385 auto res
= isl_pw_multi_aff_scale_down_val(copy(), v
.release());
10386 return manage(res
);
10389 isl::pw_multi_aff
pw_multi_aff::scale_multi_val(isl::multi_val mv
) const {
10390 auto res
= isl_pw_multi_aff_scale_multi_val(copy(), mv
.release());
10391 return manage(res
);
10394 isl::pw_multi_aff
pw_multi_aff::scale_val(isl::val v
) const {
10395 auto res
= isl_pw_multi_aff_scale_val(copy(), v
.release());
10396 return manage(res
);
10399 isl::pw_multi_aff
pw_multi_aff::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
10400 auto res
= isl_pw_multi_aff_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
10401 return manage(res
);
10404 isl::pw_multi_aff
pw_multi_aff::set_pw_aff(unsigned int pos
, isl::pw_aff pa
) const {
10405 auto res
= isl_pw_multi_aff_set_pw_aff(copy(), pos
, pa
.release());
10406 return manage(res
);
10409 isl::pw_multi_aff
pw_multi_aff::set_tuple_id(isl::dim type
, isl::id id
) const {
10410 auto res
= isl_pw_multi_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
10411 return manage(res
);
10414 isl::pw_multi_aff
pw_multi_aff::sub(isl::pw_multi_aff pma2
) const {
10415 auto res
= isl_pw_multi_aff_sub(copy(), pma2
.release());
10416 return manage(res
);
10419 isl::pw_multi_aff
pw_multi_aff::subtract_domain(isl::set set
) const {
10420 auto res
= isl_pw_multi_aff_subtract_domain(copy(), set
.release());
10421 return manage(res
);
10424 isl::pw_multi_aff
pw_multi_aff::union_add(isl::pw_multi_aff pma2
) const {
10425 auto res
= isl_pw_multi_aff_union_add(copy(), pma2
.release());
10426 return manage(res
);
10429 isl::pw_multi_aff
pw_multi_aff::union_lexmax(isl::pw_multi_aff pma2
) const {
10430 auto res
= isl_pw_multi_aff_union_lexmax(copy(), pma2
.release());
10431 return manage(res
);
10434 isl::pw_multi_aff
pw_multi_aff::union_lexmin(isl::pw_multi_aff pma2
) const {
10435 auto res
= isl_pw_multi_aff_union_lexmin(copy(), pma2
.release());
10436 return manage(res
);
10439 isl::pw_multi_aff
pw_multi_aff::zero(isl::space space
) {
10440 auto res
= isl_pw_multi_aff_zero(space
.release());
10441 return manage(res
);
10444 // implementations for isl::pw_qpolynomial
10445 isl::pw_qpolynomial
manage(__isl_take isl_pw_qpolynomial
*ptr
) {
10446 return pw_qpolynomial(ptr
);
10448 isl::pw_qpolynomial
manage_copy(__isl_keep isl_pw_qpolynomial
*ptr
) {
10449 return pw_qpolynomial(isl_pw_qpolynomial_copy(ptr
));
10451 isl::pw_qpolynomial
give(__isl_take isl_pw_qpolynomial
*ptr
) {
10452 return manage(ptr
);
10456 pw_qpolynomial::pw_qpolynomial()
10459 pw_qpolynomial::pw_qpolynomial(const isl::pw_qpolynomial
&obj
)
10460 : ptr(obj
.copy()) {}
10461 pw_qpolynomial::pw_qpolynomial(std::nullptr_t
)
10465 pw_qpolynomial::pw_qpolynomial(__isl_take isl_pw_qpolynomial
*ptr
)
10468 pw_qpolynomial::pw_qpolynomial(isl::ctx ctx
, const std::string
&str
) {
10469 auto res
= isl_pw_qpolynomial_read_from_str(ctx
.release(), str
.c_str());
10473 pw_qpolynomial
&pw_qpolynomial::operator=(isl::pw_qpolynomial obj
) {
10474 std::swap(this->ptr
, obj
.ptr
);
10478 pw_qpolynomial::~pw_qpolynomial() {
10480 isl_pw_qpolynomial_free(ptr
);
10483 __isl_give isl_pw_qpolynomial
*pw_qpolynomial::copy() const & {
10484 return isl_pw_qpolynomial_copy(ptr
);
10487 __isl_keep isl_pw_qpolynomial
*pw_qpolynomial::get() const {
10491 __isl_give isl_pw_qpolynomial
*pw_qpolynomial::release() {
10492 isl_pw_qpolynomial
*tmp
= ptr
;
10497 bool pw_qpolynomial::is_null() const {
10498 return ptr
== nullptr;
10500 __isl_keep isl_pw_qpolynomial
*pw_qpolynomial::keep() const {
10504 __isl_give isl_pw_qpolynomial
*pw_qpolynomial::take() {
10508 pw_qpolynomial::operator bool() const {
10513 isl::ctx
pw_qpolynomial::get_ctx() const {
10514 return isl::ctx(isl_pw_qpolynomial_get_ctx(ptr
));
10516 std::string
pw_qpolynomial::to_str() const {
10517 char *Tmp
= isl_pw_qpolynomial_to_str(get());
10520 std::string
S(Tmp
);
10526 void pw_qpolynomial::dump() const {
10527 isl_pw_qpolynomial_dump(get());
10531 isl::pw_qpolynomial
pw_qpolynomial::add(isl::pw_qpolynomial pwqp2
) const {
10532 auto res
= isl_pw_qpolynomial_add(copy(), pwqp2
.release());
10533 return manage(res
);
10536 isl::pw_qpolynomial
pw_qpolynomial::add_dims(isl::dim type
, unsigned int n
) const {
10537 auto res
= isl_pw_qpolynomial_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
10538 return manage(res
);
10541 isl::pw_qpolynomial
pw_qpolynomial::alloc(isl::set set
, isl::qpolynomial qp
) {
10542 auto res
= isl_pw_qpolynomial_alloc(set
.release(), qp
.release());
10543 return manage(res
);
10546 isl::pw_qpolynomial
pw_qpolynomial::coalesce() const {
10547 auto res
= isl_pw_qpolynomial_coalesce(copy());
10548 return manage(res
);
10551 unsigned int pw_qpolynomial::dim(isl::dim type
) const {
10552 auto res
= isl_pw_qpolynomial_dim(get(), static_cast<enum isl_dim_type
>(type
));
10556 isl::set
pw_qpolynomial::domain() const {
10557 auto res
= isl_pw_qpolynomial_domain(copy());
10558 return manage(res
);
10561 isl::pw_qpolynomial
pw_qpolynomial::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10562 auto res
= isl_pw_qpolynomial_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10563 return manage(res
);
10566 isl::val
pw_qpolynomial::eval(isl::point pnt
) const {
10567 auto res
= isl_pw_qpolynomial_eval(copy(), pnt
.release());
10568 return manage(res
);
10571 int pw_qpolynomial::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
10572 auto res
= isl_pw_qpolynomial_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
10576 isl::pw_qpolynomial
pw_qpolynomial::fix_val(isl::dim type
, unsigned int n
, isl::val v
) const {
10577 auto res
= isl_pw_qpolynomial_fix_val(copy(), static_cast<enum isl_dim_type
>(type
), n
, v
.release());
10578 return manage(res
);
10581 isl::stat
pw_qpolynomial::foreach_piece(const std::function
<isl::stat(isl::set
, isl::qpolynomial
)> &fn
) const {
10583 auto fn_lambda
= [](isl_set
*arg_0
, isl_qpolynomial
*arg_1
, void *arg_2
) -> isl_stat
{
10584 auto *func
= *static_cast<const std::function
<isl::stat(isl::set
, isl::qpolynomial
)> **>(arg_2
);
10585 stat ret
= (*func
)(isl::manage(arg_0
), isl::manage(arg_1
));
10586 return isl_stat(ret
);
10588 auto res
= isl_pw_qpolynomial_foreach_piece(get(), fn_lambda
, &fn_p
);
10589 return isl::stat(res
);
10592 isl::pw_qpolynomial
pw_qpolynomial::from_pw_aff(isl::pw_aff pwaff
) {
10593 auto res
= isl_pw_qpolynomial_from_pw_aff(pwaff
.release());
10594 return manage(res
);
10597 isl::pw_qpolynomial
pw_qpolynomial::from_qpolynomial(isl::qpolynomial qp
) {
10598 auto res
= isl_pw_qpolynomial_from_qpolynomial(qp
.release());
10599 return manage(res
);
10602 isl::pw_qpolynomial
pw_qpolynomial::from_range() const {
10603 auto res
= isl_pw_qpolynomial_from_range(copy());
10604 return manage(res
);
10607 isl::space
pw_qpolynomial::get_domain_space() const {
10608 auto res
= isl_pw_qpolynomial_get_domain_space(get());
10609 return manage(res
);
10612 isl::space
pw_qpolynomial::get_space() const {
10613 auto res
= isl_pw_qpolynomial_get_space(get());
10614 return manage(res
);
10617 isl::pw_qpolynomial
pw_qpolynomial::gist(isl::set context
) const {
10618 auto res
= isl_pw_qpolynomial_gist(copy(), context
.release());
10619 return manage(res
);
10622 isl::pw_qpolynomial
pw_qpolynomial::gist_params(isl::set context
) const {
10623 auto res
= isl_pw_qpolynomial_gist_params(copy(), context
.release());
10624 return manage(res
);
10627 isl::boolean
pw_qpolynomial::has_equal_space(const isl::pw_qpolynomial
&pwqp2
) const {
10628 auto res
= isl_pw_qpolynomial_has_equal_space(get(), pwqp2
.get());
10629 return manage(res
);
10632 isl::pw_qpolynomial
pw_qpolynomial::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10633 auto res
= isl_pw_qpolynomial_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10634 return manage(res
);
10637 isl::pw_qpolynomial
pw_qpolynomial::intersect_domain(isl::set set
) const {
10638 auto res
= isl_pw_qpolynomial_intersect_domain(copy(), set
.release());
10639 return manage(res
);
10642 isl::pw_qpolynomial
pw_qpolynomial::intersect_params(isl::set set
) const {
10643 auto res
= isl_pw_qpolynomial_intersect_params(copy(), set
.release());
10644 return manage(res
);
10647 isl::boolean
pw_qpolynomial::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10648 auto res
= isl_pw_qpolynomial_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10649 return manage(res
);
10652 isl::boolean
pw_qpolynomial::involves_nan() const {
10653 auto res
= isl_pw_qpolynomial_involves_nan(get());
10654 return manage(res
);
10657 isl::boolean
pw_qpolynomial::is_zero() const {
10658 auto res
= isl_pw_qpolynomial_is_zero(get());
10659 return manage(res
);
10662 isl::val
pw_qpolynomial::max() const {
10663 auto res
= isl_pw_qpolynomial_max(copy());
10664 return manage(res
);
10667 isl::val
pw_qpolynomial::min() const {
10668 auto res
= isl_pw_qpolynomial_min(copy());
10669 return manage(res
);
10672 isl::pw_qpolynomial
pw_qpolynomial::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
10673 auto res
= isl_pw_qpolynomial_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
10674 return manage(res
);
10677 isl::pw_qpolynomial
pw_qpolynomial::mul(isl::pw_qpolynomial pwqp2
) const {
10678 auto res
= isl_pw_qpolynomial_mul(copy(), pwqp2
.release());
10679 return manage(res
);
10682 isl::pw_qpolynomial
pw_qpolynomial::neg() const {
10683 auto res
= isl_pw_qpolynomial_neg(copy());
10684 return manage(res
);
10687 isl::boolean
pw_qpolynomial::plain_is_equal(const isl::pw_qpolynomial
&pwqp2
) const {
10688 auto res
= isl_pw_qpolynomial_plain_is_equal(get(), pwqp2
.get());
10689 return manage(res
);
10692 isl::pw_qpolynomial
pw_qpolynomial::pow(unsigned int exponent
) const {
10693 auto res
= isl_pw_qpolynomial_pow(copy(), exponent
);
10694 return manage(res
);
10697 isl::pw_qpolynomial
pw_qpolynomial::project_domain_on_params() const {
10698 auto res
= isl_pw_qpolynomial_project_domain_on_params(copy());
10699 return manage(res
);
10702 isl::pw_qpolynomial
pw_qpolynomial::reset_domain_space(isl::space dim
) const {
10703 auto res
= isl_pw_qpolynomial_reset_domain_space(copy(), dim
.release());
10704 return manage(res
);
10707 isl::pw_qpolynomial
pw_qpolynomial::reset_user() const {
10708 auto res
= isl_pw_qpolynomial_reset_user(copy());
10709 return manage(res
);
10712 isl::pw_qpolynomial
pw_qpolynomial::scale_down_val(isl::val v
) const {
10713 auto res
= isl_pw_qpolynomial_scale_down_val(copy(), v
.release());
10714 return manage(res
);
10717 isl::pw_qpolynomial
pw_qpolynomial::scale_val(isl::val v
) const {
10718 auto res
= isl_pw_qpolynomial_scale_val(copy(), v
.release());
10719 return manage(res
);
10722 isl::pw_qpolynomial
pw_qpolynomial::split_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10723 auto res
= isl_pw_qpolynomial_split_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10724 return manage(res
);
10727 isl::pw_qpolynomial
pw_qpolynomial::split_periods(int max_periods
) const {
10728 auto res
= isl_pw_qpolynomial_split_periods(copy(), max_periods
);
10729 return manage(res
);
10732 isl::pw_qpolynomial
pw_qpolynomial::sub(isl::pw_qpolynomial pwqp2
) const {
10733 auto res
= isl_pw_qpolynomial_sub(copy(), pwqp2
.release());
10734 return manage(res
);
10737 isl::pw_qpolynomial
pw_qpolynomial::subtract_domain(isl::set set
) const {
10738 auto res
= isl_pw_qpolynomial_subtract_domain(copy(), set
.release());
10739 return manage(res
);
10742 isl::pw_qpolynomial
pw_qpolynomial::to_polynomial(int sign
) const {
10743 auto res
= isl_pw_qpolynomial_to_polynomial(copy(), sign
);
10744 return manage(res
);
10747 isl::pw_qpolynomial
pw_qpolynomial::zero(isl::space dim
) {
10748 auto res
= isl_pw_qpolynomial_zero(dim
.release());
10749 return manage(res
);
10752 // implementations for isl::qpolynomial
10753 isl::qpolynomial
manage(__isl_take isl_qpolynomial
*ptr
) {
10754 return qpolynomial(ptr
);
10756 isl::qpolynomial
manage_copy(__isl_keep isl_qpolynomial
*ptr
) {
10757 return qpolynomial(isl_qpolynomial_copy(ptr
));
10759 isl::qpolynomial
give(__isl_take isl_qpolynomial
*ptr
) {
10760 return manage(ptr
);
10764 qpolynomial::qpolynomial()
10767 qpolynomial::qpolynomial(const isl::qpolynomial
&obj
)
10768 : ptr(obj
.copy()) {}
10769 qpolynomial::qpolynomial(std::nullptr_t
)
10773 qpolynomial::qpolynomial(__isl_take isl_qpolynomial
*ptr
)
10777 qpolynomial
&qpolynomial::operator=(isl::qpolynomial obj
) {
10778 std::swap(this->ptr
, obj
.ptr
);
10782 qpolynomial::~qpolynomial() {
10784 isl_qpolynomial_free(ptr
);
10787 __isl_give isl_qpolynomial
*qpolynomial::copy() const & {
10788 return isl_qpolynomial_copy(ptr
);
10791 __isl_keep isl_qpolynomial
*qpolynomial::get() const {
10795 __isl_give isl_qpolynomial
*qpolynomial::release() {
10796 isl_qpolynomial
*tmp
= ptr
;
10801 bool qpolynomial::is_null() const {
10802 return ptr
== nullptr;
10804 __isl_keep isl_qpolynomial
*qpolynomial::keep() const {
10808 __isl_give isl_qpolynomial
*qpolynomial::take() {
10812 qpolynomial::operator bool() const {
10817 isl::ctx
qpolynomial::get_ctx() const {
10818 return isl::ctx(isl_qpolynomial_get_ctx(ptr
));
10821 void qpolynomial::dump() const {
10822 isl_qpolynomial_dump(get());
10826 isl::qpolynomial
qpolynomial::add(isl::qpolynomial qp2
) const {
10827 auto res
= isl_qpolynomial_add(copy(), qp2
.release());
10828 return manage(res
);
10831 isl::qpolynomial
qpolynomial::add_dims(isl::dim type
, unsigned int n
) const {
10832 auto res
= isl_qpolynomial_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
10833 return manage(res
);
10836 isl::qpolynomial
qpolynomial::align_params(isl::space model
) const {
10837 auto res
= isl_qpolynomial_align_params(copy(), model
.release());
10838 return manage(res
);
10841 isl::stat
qpolynomial::as_polynomial_on_domain(const isl::basic_set
&bset
, const std::function
<isl::stat(isl::basic_set
, isl::qpolynomial
)> &fn
) const {
10843 auto fn_lambda
= [](isl_basic_set
*arg_0
, isl_qpolynomial
*arg_1
, void *arg_2
) -> isl_stat
{
10844 auto *func
= *static_cast<const std::function
<isl::stat(isl::basic_set
, isl::qpolynomial
)> **>(arg_2
);
10845 stat ret
= (*func
)(isl::manage(arg_0
), isl::manage(arg_1
));
10846 return isl_stat(ret
);
10848 auto res
= isl_qpolynomial_as_polynomial_on_domain(get(), bset
.get(), fn_lambda
, &fn_p
);
10849 return isl::stat(res
);
10852 unsigned int qpolynomial::dim(isl::dim type
) const {
10853 auto res
= isl_qpolynomial_dim(get(), static_cast<enum isl_dim_type
>(type
));
10857 isl::qpolynomial
qpolynomial::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10858 auto res
= isl_qpolynomial_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10859 return manage(res
);
10862 isl::val
qpolynomial::eval(isl::point pnt
) const {
10863 auto res
= isl_qpolynomial_eval(copy(), pnt
.release());
10864 return manage(res
);
10867 isl::stat
qpolynomial::foreach_term(const std::function
<isl::stat(isl::term
)> &fn
) const {
10869 auto fn_lambda
= [](isl_term
*arg_0
, void *arg_1
) -> isl_stat
{
10870 auto *func
= *static_cast<const std::function
<isl::stat(isl::term
)> **>(arg_1
);
10871 stat ret
= (*func
)(isl::manage(arg_0
));
10872 return isl_stat(ret
);
10874 auto res
= isl_qpolynomial_foreach_term(get(), fn_lambda
, &fn_p
);
10875 return isl::stat(res
);
10878 isl::qpolynomial
qpolynomial::from_aff(isl::aff aff
) {
10879 auto res
= isl_qpolynomial_from_aff(aff
.release());
10880 return manage(res
);
10883 isl::qpolynomial
qpolynomial::from_constraint(isl::constraint c
, isl::dim type
, unsigned int pos
) {
10884 auto res
= isl_qpolynomial_from_constraint(c
.release(), static_cast<enum isl_dim_type
>(type
), pos
);
10885 return manage(res
);
10888 isl::qpolynomial
qpolynomial::from_term(isl::term term
) {
10889 auto res
= isl_qpolynomial_from_term(term
.release());
10890 return manage(res
);
10893 isl::val
qpolynomial::get_constant_val() const {
10894 auto res
= isl_qpolynomial_get_constant_val(get());
10895 return manage(res
);
10898 isl::space
qpolynomial::get_domain_space() const {
10899 auto res
= isl_qpolynomial_get_domain_space(get());
10900 return manage(res
);
10903 isl::space
qpolynomial::get_space() const {
10904 auto res
= isl_qpolynomial_get_space(get());
10905 return manage(res
);
10908 isl::qpolynomial
qpolynomial::gist(isl::set context
) const {
10909 auto res
= isl_qpolynomial_gist(copy(), context
.release());
10910 return manage(res
);
10913 isl::qpolynomial
qpolynomial::gist_params(isl::set context
) const {
10914 auto res
= isl_qpolynomial_gist_params(copy(), context
.release());
10915 return manage(res
);
10918 isl::qpolynomial
qpolynomial::homogenize() const {
10919 auto res
= isl_qpolynomial_homogenize(copy());
10920 return manage(res
);
10923 isl::qpolynomial
qpolynomial::infty_on_domain(isl::space dim
) {
10924 auto res
= isl_qpolynomial_infty_on_domain(dim
.release());
10925 return manage(res
);
10928 isl::qpolynomial
qpolynomial::insert_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10929 auto res
= isl_qpolynomial_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10930 return manage(res
);
10933 isl::boolean
qpolynomial::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
10934 auto res
= isl_qpolynomial_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
10935 return manage(res
);
10938 isl::boolean
qpolynomial::is_infty() const {
10939 auto res
= isl_qpolynomial_is_infty(get());
10940 return manage(res
);
10943 isl::boolean
qpolynomial::is_nan() const {
10944 auto res
= isl_qpolynomial_is_nan(get());
10945 return manage(res
);
10948 isl::boolean
qpolynomial::is_neginfty() const {
10949 auto res
= isl_qpolynomial_is_neginfty(get());
10950 return manage(res
);
10953 isl::boolean
qpolynomial::is_zero() const {
10954 auto res
= isl_qpolynomial_is_zero(get());
10955 return manage(res
);
10958 isl::qpolynomial
qpolynomial::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
10959 auto res
= isl_qpolynomial_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
10960 return manage(res
);
10963 isl::qpolynomial
qpolynomial::mul(isl::qpolynomial qp2
) const {
10964 auto res
= isl_qpolynomial_mul(copy(), qp2
.release());
10965 return manage(res
);
10968 isl::qpolynomial
qpolynomial::nan_on_domain(isl::space dim
) {
10969 auto res
= isl_qpolynomial_nan_on_domain(dim
.release());
10970 return manage(res
);
10973 isl::qpolynomial
qpolynomial::neg() const {
10974 auto res
= isl_qpolynomial_neg(copy());
10975 return manage(res
);
10978 isl::qpolynomial
qpolynomial::neginfty_on_domain(isl::space dim
) {
10979 auto res
= isl_qpolynomial_neginfty_on_domain(dim
.release());
10980 return manage(res
);
10983 isl::qpolynomial
qpolynomial::one_on_domain(isl::space dim
) {
10984 auto res
= isl_qpolynomial_one_on_domain(dim
.release());
10985 return manage(res
);
10988 isl::boolean
qpolynomial::plain_is_equal(const isl::qpolynomial
&qp2
) const {
10989 auto res
= isl_qpolynomial_plain_is_equal(get(), qp2
.get());
10990 return manage(res
);
10993 isl::qpolynomial
qpolynomial::pow(unsigned int power
) const {
10994 auto res
= isl_qpolynomial_pow(copy(), power
);
10995 return manage(res
);
10998 isl::qpolynomial
qpolynomial::project_domain_on_params() const {
10999 auto res
= isl_qpolynomial_project_domain_on_params(copy());
11000 return manage(res
);
11003 isl::qpolynomial
qpolynomial::scale_down_val(isl::val v
) const {
11004 auto res
= isl_qpolynomial_scale_down_val(copy(), v
.release());
11005 return manage(res
);
11008 isl::qpolynomial
qpolynomial::scale_val(isl::val v
) const {
11009 auto res
= isl_qpolynomial_scale_val(copy(), v
.release());
11010 return manage(res
);
11013 int qpolynomial::sgn() const {
11014 auto res
= isl_qpolynomial_sgn(get());
11018 isl::qpolynomial
qpolynomial::sub(isl::qpolynomial qp2
) const {
11019 auto res
= isl_qpolynomial_sub(copy(), qp2
.release());
11020 return manage(res
);
11023 isl::qpolynomial
qpolynomial::val_on_domain(isl::space space
, isl::val val
) {
11024 auto res
= isl_qpolynomial_val_on_domain(space
.release(), val
.release());
11025 return manage(res
);
11028 isl::qpolynomial
qpolynomial::var_on_domain(isl::space dim
, isl::dim type
, unsigned int pos
) {
11029 auto res
= isl_qpolynomial_var_on_domain(dim
.release(), static_cast<enum isl_dim_type
>(type
), pos
);
11030 return manage(res
);
11033 isl::qpolynomial
qpolynomial::zero_on_domain(isl::space dim
) {
11034 auto res
= isl_qpolynomial_zero_on_domain(dim
.release());
11035 return manage(res
);
11038 // implementations for isl::schedule
11039 isl::schedule
manage(__isl_take isl_schedule
*ptr
) {
11040 return schedule(ptr
);
11042 isl::schedule
manage_copy(__isl_keep isl_schedule
*ptr
) {
11043 return schedule(isl_schedule_copy(ptr
));
11045 isl::schedule
give(__isl_take isl_schedule
*ptr
) {
11046 return manage(ptr
);
11050 schedule::schedule()
11053 schedule::schedule(const isl::schedule
&obj
)
11054 : ptr(obj
.copy()) {}
11055 schedule::schedule(std::nullptr_t
)
11059 schedule::schedule(__isl_take isl_schedule
*ptr
)
11062 schedule::schedule(isl::ctx ctx
, const std::string
&str
) {
11063 auto res
= isl_schedule_read_from_str(ctx
.release(), str
.c_str());
11067 schedule
&schedule::operator=(isl::schedule obj
) {
11068 std::swap(this->ptr
, obj
.ptr
);
11072 schedule::~schedule() {
11074 isl_schedule_free(ptr
);
11077 __isl_give isl_schedule
*schedule::copy() const & {
11078 return isl_schedule_copy(ptr
);
11081 __isl_keep isl_schedule
*schedule::get() const {
11085 __isl_give isl_schedule
*schedule::release() {
11086 isl_schedule
*tmp
= ptr
;
11091 bool schedule::is_null() const {
11092 return ptr
== nullptr;
11094 __isl_keep isl_schedule
*schedule::keep() const {
11098 __isl_give isl_schedule
*schedule::take() {
11102 schedule::operator bool() const {
11107 isl::ctx
schedule::get_ctx() const {
11108 return isl::ctx(isl_schedule_get_ctx(ptr
));
11110 std::string
schedule::to_str() const {
11111 char *Tmp
= isl_schedule_to_str(get());
11114 std::string
S(Tmp
);
11120 void schedule::dump() const {
11121 isl_schedule_dump(get());
11125 isl::schedule
schedule::align_params(isl::space space
) const {
11126 auto res
= isl_schedule_align_params(copy(), space
.release());
11127 return manage(res
);
11130 isl::schedule
schedule::empty(isl::space space
) {
11131 auto res
= isl_schedule_empty(space
.release());
11132 return manage(res
);
11135 isl::schedule
schedule::from_domain(isl::union_set domain
) {
11136 auto res
= isl_schedule_from_domain(domain
.release());
11137 return manage(res
);
11140 isl::union_set
schedule::get_domain() const {
11141 auto res
= isl_schedule_get_domain(get());
11142 return manage(res
);
11145 isl::union_map
schedule::get_map() const {
11146 auto res
= isl_schedule_get_map(get());
11147 return manage(res
);
11150 isl::schedule_node
schedule::get_root() const {
11151 auto res
= isl_schedule_get_root(get());
11152 return manage(res
);
11155 isl::schedule
schedule::gist_domain_params(isl::set context
) const {
11156 auto res
= isl_schedule_gist_domain_params(copy(), context
.release());
11157 return manage(res
);
11160 isl::schedule
schedule::insert_context(isl::set context
) const {
11161 auto res
= isl_schedule_insert_context(copy(), context
.release());
11162 return manage(res
);
11165 isl::schedule
schedule::insert_guard(isl::set guard
) const {
11166 auto res
= isl_schedule_insert_guard(copy(), guard
.release());
11167 return manage(res
);
11170 isl::schedule
schedule::insert_partial_schedule(isl::multi_union_pw_aff partial
) const {
11171 auto res
= isl_schedule_insert_partial_schedule(copy(), partial
.release());
11172 return manage(res
);
11175 isl::schedule
schedule::intersect_domain(isl::union_set domain
) const {
11176 auto res
= isl_schedule_intersect_domain(copy(), domain
.release());
11177 return manage(res
);
11180 isl::boolean
schedule::plain_is_equal(const isl::schedule
&schedule2
) const {
11181 auto res
= isl_schedule_plain_is_equal(get(), schedule2
.get());
11182 return manage(res
);
11185 isl::schedule
schedule::pullback(isl::union_pw_multi_aff upma
) const {
11186 auto res
= isl_schedule_pullback_union_pw_multi_aff(copy(), upma
.release());
11187 return manage(res
);
11190 isl::schedule
schedule::reset_user() const {
11191 auto res
= isl_schedule_reset_user(copy());
11192 return manage(res
);
11195 isl::schedule
schedule::sequence(isl::schedule schedule2
) const {
11196 auto res
= isl_schedule_sequence(copy(), schedule2
.release());
11197 return manage(res
);
11200 isl::schedule
schedule::set(isl::schedule schedule2
) const {
11201 auto res
= isl_schedule_set(copy(), schedule2
.release());
11202 return manage(res
);
11205 // implementations for isl::schedule_constraints
11206 isl::schedule_constraints
manage(__isl_take isl_schedule_constraints
*ptr
) {
11207 return schedule_constraints(ptr
);
11209 isl::schedule_constraints
manage_copy(__isl_keep isl_schedule_constraints
*ptr
) {
11210 return schedule_constraints(isl_schedule_constraints_copy(ptr
));
11212 isl::schedule_constraints
give(__isl_take isl_schedule_constraints
*ptr
) {
11213 return manage(ptr
);
11217 schedule_constraints::schedule_constraints()
11220 schedule_constraints::schedule_constraints(const isl::schedule_constraints
&obj
)
11221 : ptr(obj
.copy()) {}
11222 schedule_constraints::schedule_constraints(std::nullptr_t
)
11226 schedule_constraints::schedule_constraints(__isl_take isl_schedule_constraints
*ptr
)
11229 schedule_constraints::schedule_constraints(isl::ctx ctx
, const std::string
&str
) {
11230 auto res
= isl_schedule_constraints_read_from_str(ctx
.release(), str
.c_str());
11234 schedule_constraints
&schedule_constraints::operator=(isl::schedule_constraints obj
) {
11235 std::swap(this->ptr
, obj
.ptr
);
11239 schedule_constraints::~schedule_constraints() {
11241 isl_schedule_constraints_free(ptr
);
11244 __isl_give isl_schedule_constraints
*schedule_constraints::copy() const & {
11245 return isl_schedule_constraints_copy(ptr
);
11248 __isl_keep isl_schedule_constraints
*schedule_constraints::get() const {
11252 __isl_give isl_schedule_constraints
*schedule_constraints::release() {
11253 isl_schedule_constraints
*tmp
= ptr
;
11258 bool schedule_constraints::is_null() const {
11259 return ptr
== nullptr;
11261 __isl_keep isl_schedule_constraints
*schedule_constraints::keep() const {
11265 __isl_give isl_schedule_constraints
*schedule_constraints::take() {
11269 schedule_constraints::operator bool() const {
11274 isl::ctx
schedule_constraints::get_ctx() const {
11275 return isl::ctx(isl_schedule_constraints_get_ctx(ptr
));
11277 std::string
schedule_constraints::to_str() const {
11278 char *Tmp
= isl_schedule_constraints_to_str(get());
11281 std::string
S(Tmp
);
11287 void schedule_constraints::dump() const {
11288 isl_schedule_constraints_dump(get());
11292 isl::schedule_constraints
schedule_constraints::apply(isl::union_map umap
) const {
11293 auto res
= isl_schedule_constraints_apply(copy(), umap
.release());
11294 return manage(res
);
11297 isl::schedule
schedule_constraints::compute_schedule() const {
11298 auto res
= isl_schedule_constraints_compute_schedule(copy());
11299 return manage(res
);
11302 isl::union_map
schedule_constraints::get_coincidence() const {
11303 auto res
= isl_schedule_constraints_get_coincidence(get());
11304 return manage(res
);
11307 isl::union_map
schedule_constraints::get_conditional_validity() const {
11308 auto res
= isl_schedule_constraints_get_conditional_validity(get());
11309 return manage(res
);
11312 isl::union_map
schedule_constraints::get_conditional_validity_condition() const {
11313 auto res
= isl_schedule_constraints_get_conditional_validity_condition(get());
11314 return manage(res
);
11317 isl::set
schedule_constraints::get_context() const {
11318 auto res
= isl_schedule_constraints_get_context(get());
11319 return manage(res
);
11322 isl::union_set
schedule_constraints::get_domain() const {
11323 auto res
= isl_schedule_constraints_get_domain(get());
11324 return manage(res
);
11327 isl::union_map
schedule_constraints::get_proximity() const {
11328 auto res
= isl_schedule_constraints_get_proximity(get());
11329 return manage(res
);
11332 isl::union_map
schedule_constraints::get_validity() const {
11333 auto res
= isl_schedule_constraints_get_validity(get());
11334 return manage(res
);
11337 isl::schedule_constraints
schedule_constraints::on_domain(isl::union_set domain
) {
11338 auto res
= isl_schedule_constraints_on_domain(domain
.release());
11339 return manage(res
);
11342 isl::schedule_constraints
schedule_constraints::set_coincidence(isl::union_map coincidence
) const {
11343 auto res
= isl_schedule_constraints_set_coincidence(copy(), coincidence
.release());
11344 return manage(res
);
11347 isl::schedule_constraints
schedule_constraints::set_conditional_validity(isl::union_map condition
, isl::union_map validity
) const {
11348 auto res
= isl_schedule_constraints_set_conditional_validity(copy(), condition
.release(), validity
.release());
11349 return manage(res
);
11352 isl::schedule_constraints
schedule_constraints::set_context(isl::set context
) const {
11353 auto res
= isl_schedule_constraints_set_context(copy(), context
.release());
11354 return manage(res
);
11357 isl::schedule_constraints
schedule_constraints::set_proximity(isl::union_map proximity
) const {
11358 auto res
= isl_schedule_constraints_set_proximity(copy(), proximity
.release());
11359 return manage(res
);
11362 isl::schedule_constraints
schedule_constraints::set_validity(isl::union_map validity
) const {
11363 auto res
= isl_schedule_constraints_set_validity(copy(), validity
.release());
11364 return manage(res
);
11367 // implementations for isl::schedule_node
11368 isl::schedule_node
manage(__isl_take isl_schedule_node
*ptr
) {
11369 return schedule_node(ptr
);
11371 isl::schedule_node
manage_copy(__isl_keep isl_schedule_node
*ptr
) {
11372 return schedule_node(isl_schedule_node_copy(ptr
));
11374 isl::schedule_node
give(__isl_take isl_schedule_node
*ptr
) {
11375 return manage(ptr
);
11379 schedule_node::schedule_node()
11382 schedule_node::schedule_node(const isl::schedule_node
&obj
)
11383 : ptr(obj
.copy()) {}
11384 schedule_node::schedule_node(std::nullptr_t
)
11388 schedule_node::schedule_node(__isl_take isl_schedule_node
*ptr
)
11392 schedule_node
&schedule_node::operator=(isl::schedule_node obj
) {
11393 std::swap(this->ptr
, obj
.ptr
);
11397 schedule_node::~schedule_node() {
11399 isl_schedule_node_free(ptr
);
11402 __isl_give isl_schedule_node
*schedule_node::copy() const & {
11403 return isl_schedule_node_copy(ptr
);
11406 __isl_keep isl_schedule_node
*schedule_node::get() const {
11410 __isl_give isl_schedule_node
*schedule_node::release() {
11411 isl_schedule_node
*tmp
= ptr
;
11416 bool schedule_node::is_null() const {
11417 return ptr
== nullptr;
11419 __isl_keep isl_schedule_node
*schedule_node::keep() const {
11423 __isl_give isl_schedule_node
*schedule_node::take() {
11427 schedule_node::operator bool() const {
11432 isl::ctx
schedule_node::get_ctx() const {
11433 return isl::ctx(isl_schedule_node_get_ctx(ptr
));
11435 std::string
schedule_node::to_str() const {
11436 char *Tmp
= isl_schedule_node_to_str(get());
11439 std::string
S(Tmp
);
11445 void schedule_node::dump() const {
11446 isl_schedule_node_dump(get());
11450 isl::schedule_node
schedule_node::align_params(isl::space space
) const {
11451 auto res
= isl_schedule_node_align_params(copy(), space
.release());
11452 return manage(res
);
11455 isl::schedule_node
schedule_node::ancestor(int generation
) const {
11456 auto res
= isl_schedule_node_ancestor(copy(), generation
);
11457 return manage(res
);
11460 isl::boolean
schedule_node::band_member_get_coincident(int pos
) const {
11461 auto res
= isl_schedule_node_band_member_get_coincident(get(), pos
);
11462 return manage(res
);
11465 isl::schedule_node
schedule_node::band_member_set_coincident(int pos
, int coincident
) const {
11466 auto res
= isl_schedule_node_band_member_set_coincident(copy(), pos
, coincident
);
11467 return manage(res
);
11470 isl::schedule_node
schedule_node::band_set_ast_build_options(isl::union_set options
) const {
11471 auto res
= isl_schedule_node_band_set_ast_build_options(copy(), options
.release());
11472 return manage(res
);
11475 isl::schedule_node
schedule_node::child(int pos
) const {
11476 auto res
= isl_schedule_node_child(copy(), pos
);
11477 return manage(res
);
11480 isl::set
schedule_node::context_get_context() const {
11481 auto res
= isl_schedule_node_context_get_context(get());
11482 return manage(res
);
11485 isl::schedule_node
schedule_node::cut() const {
11486 auto res
= isl_schedule_node_cut(copy());
11487 return manage(res
);
11490 isl::union_set
schedule_node::domain_get_domain() const {
11491 auto res
= isl_schedule_node_domain_get_domain(get());
11492 return manage(res
);
11495 isl::union_pw_multi_aff
schedule_node::expansion_get_contraction() const {
11496 auto res
= isl_schedule_node_expansion_get_contraction(get());
11497 return manage(res
);
11500 isl::union_map
schedule_node::expansion_get_expansion() const {
11501 auto res
= isl_schedule_node_expansion_get_expansion(get());
11502 return manage(res
);
11505 isl::union_map
schedule_node::extension_get_extension() const {
11506 auto res
= isl_schedule_node_extension_get_extension(get());
11507 return manage(res
);
11510 isl::union_set
schedule_node::filter_get_filter() const {
11511 auto res
= isl_schedule_node_filter_get_filter(get());
11512 return manage(res
);
11515 isl::schedule_node
schedule_node::first_child() const {
11516 auto res
= isl_schedule_node_first_child(copy());
11517 return manage(res
);
11520 isl::stat
schedule_node::foreach_ancestor_top_down(const std::function
<isl::stat(isl::schedule_node
)> &fn
) const {
11522 auto fn_lambda
= [](isl_schedule_node
*arg_0
, void *arg_1
) -> isl_stat
{
11523 auto *func
= *static_cast<const std::function
<isl::stat(isl::schedule_node
)> **>(arg_1
);
11524 stat ret
= (*func
)(isl::manage(arg_0
));
11525 return isl_stat(ret
);
11527 auto res
= isl_schedule_node_foreach_ancestor_top_down(get(), fn_lambda
, &fn_p
);
11528 return isl::stat(res
);
11531 isl::schedule_node
schedule_node::from_domain(isl::union_set domain
) {
11532 auto res
= isl_schedule_node_from_domain(domain
.release());
11533 return manage(res
);
11536 isl::schedule_node
schedule_node::from_extension(isl::union_map extension
) {
11537 auto res
= isl_schedule_node_from_extension(extension
.release());
11538 return manage(res
);
11541 int schedule_node::get_ancestor_child_position(const isl::schedule_node
&ancestor
) const {
11542 auto res
= isl_schedule_node_get_ancestor_child_position(get(), ancestor
.get());
11546 isl::schedule_node
schedule_node::get_child(int pos
) const {
11547 auto res
= isl_schedule_node_get_child(get(), pos
);
11548 return manage(res
);
11551 int schedule_node::get_child_position() const {
11552 auto res
= isl_schedule_node_get_child_position(get());
11556 isl::union_set
schedule_node::get_domain() const {
11557 auto res
= isl_schedule_node_get_domain(get());
11558 return manage(res
);
11561 isl::multi_union_pw_aff
schedule_node::get_prefix_schedule_multi_union_pw_aff() const {
11562 auto res
= isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(get());
11563 return manage(res
);
11566 isl::union_map
schedule_node::get_prefix_schedule_relation() const {
11567 auto res
= isl_schedule_node_get_prefix_schedule_relation(get());
11568 return manage(res
);
11571 isl::union_map
schedule_node::get_prefix_schedule_union_map() const {
11572 auto res
= isl_schedule_node_get_prefix_schedule_union_map(get());
11573 return manage(res
);
11576 isl::union_pw_multi_aff
schedule_node::get_prefix_schedule_union_pw_multi_aff() const {
11577 auto res
= isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(get());
11578 return manage(res
);
11581 isl::schedule
schedule_node::get_schedule() const {
11582 auto res
= isl_schedule_node_get_schedule(get());
11583 return manage(res
);
11586 int schedule_node::get_schedule_depth() const {
11587 auto res
= isl_schedule_node_get_schedule_depth(get());
11591 isl::schedule_node
schedule_node::get_shared_ancestor(const isl::schedule_node
&node2
) const {
11592 auto res
= isl_schedule_node_get_shared_ancestor(get(), node2
.get());
11593 return manage(res
);
11596 isl::union_pw_multi_aff
schedule_node::get_subtree_contraction() const {
11597 auto res
= isl_schedule_node_get_subtree_contraction(get());
11598 return manage(res
);
11601 isl::union_map
schedule_node::get_subtree_expansion() const {
11602 auto res
= isl_schedule_node_get_subtree_expansion(get());
11603 return manage(res
);
11606 isl::union_map
schedule_node::get_subtree_schedule_union_map() const {
11607 auto res
= isl_schedule_node_get_subtree_schedule_union_map(get());
11608 return manage(res
);
11611 int schedule_node::get_tree_depth() const {
11612 auto res
= isl_schedule_node_get_tree_depth(get());
11616 isl::union_set
schedule_node::get_universe_domain() const {
11617 auto res
= isl_schedule_node_get_universe_domain(get());
11618 return manage(res
);
11621 isl::schedule_node
schedule_node::graft_after(isl::schedule_node graft
) const {
11622 auto res
= isl_schedule_node_graft_after(copy(), graft
.release());
11623 return manage(res
);
11626 isl::schedule_node
schedule_node::graft_before(isl::schedule_node graft
) const {
11627 auto res
= isl_schedule_node_graft_before(copy(), graft
.release());
11628 return manage(res
);
11631 isl::schedule_node
schedule_node::group(isl::id group_id
) const {
11632 auto res
= isl_schedule_node_group(copy(), group_id
.release());
11633 return manage(res
);
11636 isl::set
schedule_node::guard_get_guard() const {
11637 auto res
= isl_schedule_node_guard_get_guard(get());
11638 return manage(res
);
11641 isl::boolean
schedule_node::has_children() const {
11642 auto res
= isl_schedule_node_has_children(get());
11643 return manage(res
);
11646 isl::boolean
schedule_node::has_next_sibling() const {
11647 auto res
= isl_schedule_node_has_next_sibling(get());
11648 return manage(res
);
11651 isl::boolean
schedule_node::has_parent() const {
11652 auto res
= isl_schedule_node_has_parent(get());
11653 return manage(res
);
11656 isl::boolean
schedule_node::has_previous_sibling() const {
11657 auto res
= isl_schedule_node_has_previous_sibling(get());
11658 return manage(res
);
11661 isl::schedule_node
schedule_node::insert_context(isl::set context
) const {
11662 auto res
= isl_schedule_node_insert_context(copy(), context
.release());
11663 return manage(res
);
11666 isl::schedule_node
schedule_node::insert_filter(isl::union_set filter
) const {
11667 auto res
= isl_schedule_node_insert_filter(copy(), filter
.release());
11668 return manage(res
);
11671 isl::schedule_node
schedule_node::insert_guard(isl::set context
) const {
11672 auto res
= isl_schedule_node_insert_guard(copy(), context
.release());
11673 return manage(res
);
11676 isl::schedule_node
schedule_node::insert_mark(isl::id mark
) const {
11677 auto res
= isl_schedule_node_insert_mark(copy(), mark
.release());
11678 return manage(res
);
11681 isl::schedule_node
schedule_node::insert_partial_schedule(isl::multi_union_pw_aff schedule
) const {
11682 auto res
= isl_schedule_node_insert_partial_schedule(copy(), schedule
.release());
11683 return manage(res
);
11686 isl::schedule_node
schedule_node::insert_sequence(isl::union_set_list filters
) const {
11687 auto res
= isl_schedule_node_insert_sequence(copy(), filters
.release());
11688 return manage(res
);
11691 isl::schedule_node
schedule_node::insert_set(isl::union_set_list filters
) const {
11692 auto res
= isl_schedule_node_insert_set(copy(), filters
.release());
11693 return manage(res
);
11696 isl::boolean
schedule_node::is_equal(const isl::schedule_node
&node2
) const {
11697 auto res
= isl_schedule_node_is_equal(get(), node2
.get());
11698 return manage(res
);
11701 isl::boolean
schedule_node::is_subtree_anchored() const {
11702 auto res
= isl_schedule_node_is_subtree_anchored(get());
11703 return manage(res
);
11706 isl::id
schedule_node::mark_get_id() const {
11707 auto res
= isl_schedule_node_mark_get_id(get());
11708 return manage(res
);
11711 isl::schedule_node
schedule_node::next_sibling() const {
11712 auto res
= isl_schedule_node_next_sibling(copy());
11713 return manage(res
);
11716 isl::schedule_node
schedule_node::order_after(isl::union_set filter
) const {
11717 auto res
= isl_schedule_node_order_after(copy(), filter
.release());
11718 return manage(res
);
11721 isl::schedule_node
schedule_node::order_before(isl::union_set filter
) const {
11722 auto res
= isl_schedule_node_order_before(copy(), filter
.release());
11723 return manage(res
);
11726 isl::schedule_node
schedule_node::parent() const {
11727 auto res
= isl_schedule_node_parent(copy());
11728 return manage(res
);
11731 isl::schedule_node
schedule_node::previous_sibling() const {
11732 auto res
= isl_schedule_node_previous_sibling(copy());
11733 return manage(res
);
11736 isl::schedule_node
schedule_node::reset_user() const {
11737 auto res
= isl_schedule_node_reset_user(copy());
11738 return manage(res
);
11741 isl::schedule_node
schedule_node::root() const {
11742 auto res
= isl_schedule_node_root(copy());
11743 return manage(res
);
11746 isl::schedule_node
schedule_node::sequence_splice_child(int pos
) const {
11747 auto res
= isl_schedule_node_sequence_splice_child(copy(), pos
);
11748 return manage(res
);
11751 // implementations for isl::set
11752 isl::set
manage(__isl_take isl_set
*ptr
) {
11755 isl::set
manage_copy(__isl_keep isl_set
*ptr
) {
11756 return set(isl_set_copy(ptr
));
11758 isl::set
give(__isl_take isl_set
*ptr
) {
11759 return manage(ptr
);
11766 set::set(const isl::set
&obj
)
11767 : ptr(obj
.copy()) {}
11768 set::set(std::nullptr_t
)
11772 set::set(__isl_take isl_set
*ptr
)
11775 set::set(isl::ctx ctx
, const std::string
&str
) {
11776 auto res
= isl_set_read_from_str(ctx
.release(), str
.c_str());
11779 set::set(isl::basic_set bset
) {
11780 auto res
= isl_set_from_basic_set(bset
.release());
11783 set::set(isl::point pnt
) {
11784 auto res
= isl_set_from_point(pnt
.release());
11787 set::set(isl::union_set uset
) {
11788 auto res
= isl_set_from_union_set(uset
.release());
11792 set
&set::operator=(isl::set obj
) {
11793 std::swap(this->ptr
, obj
.ptr
);
11802 __isl_give isl_set
*set::copy() const & {
11803 return isl_set_copy(ptr
);
11806 __isl_keep isl_set
*set::get() const {
11810 __isl_give isl_set
*set::release() {
11811 isl_set
*tmp
= ptr
;
11816 bool set::is_null() const {
11817 return ptr
== nullptr;
11819 __isl_keep isl_set
*set::keep() const {
11823 __isl_give isl_set
*set::take() {
11827 set::operator bool() const {
11832 isl::ctx
set::get_ctx() const {
11833 return isl::ctx(isl_set_get_ctx(ptr
));
11835 std::string
set::to_str() const {
11836 char *Tmp
= isl_set_to_str(get());
11839 std::string
S(Tmp
);
11845 void set::dump() const {
11846 isl_set_dump(get());
11850 isl::set
set::add_constraint(isl::constraint constraint
) const {
11851 auto res
= isl_set_add_constraint(copy(), constraint
.release());
11852 return manage(res
);
11855 isl::set
set::add_dims(isl::dim type
, unsigned int n
) const {
11856 auto res
= isl_set_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
11857 return manage(res
);
11860 isl::basic_set
set::affine_hull() const {
11861 auto res
= isl_set_affine_hull(copy());
11862 return manage(res
);
11865 isl::set
set::align_params(isl::space model
) const {
11866 auto res
= isl_set_align_params(copy(), model
.release());
11867 return manage(res
);
11870 isl::set
set::apply(isl::map map
) const {
11871 auto res
= isl_set_apply(copy(), map
.release());
11872 return manage(res
);
11875 isl::basic_set
set::bounded_simple_hull() const {
11876 auto res
= isl_set_bounded_simple_hull(copy());
11877 return manage(res
);
11880 isl::set
set::box_from_points(isl::point pnt1
, isl::point pnt2
) {
11881 auto res
= isl_set_box_from_points(pnt1
.release(), pnt2
.release());
11882 return manage(res
);
11885 isl::set
set::coalesce() const {
11886 auto res
= isl_set_coalesce(copy());
11887 return manage(res
);
11890 isl::basic_set
set::coefficients() const {
11891 auto res
= isl_set_coefficients(copy());
11892 return manage(res
);
11895 isl::set
set::complement() const {
11896 auto res
= isl_set_complement(copy());
11897 return manage(res
);
11900 isl::basic_set
set::convex_hull() const {
11901 auto res
= isl_set_convex_hull(copy());
11902 return manage(res
);
11905 isl::val
set::count_val() const {
11906 auto res
= isl_set_count_val(get());
11907 return manage(res
);
11910 isl::set
set::detect_equalities() const {
11911 auto res
= isl_set_detect_equalities(copy());
11912 return manage(res
);
11915 unsigned int set::dim(isl::dim type
) const {
11916 auto res
= isl_set_dim(get(), static_cast<enum isl_dim_type
>(type
));
11920 isl::boolean
set::dim_has_any_lower_bound(isl::dim type
, unsigned int pos
) const {
11921 auto res
= isl_set_dim_has_any_lower_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
11922 return manage(res
);
11925 isl::boolean
set::dim_has_any_upper_bound(isl::dim type
, unsigned int pos
) const {
11926 auto res
= isl_set_dim_has_any_upper_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
11927 return manage(res
);
11930 isl::boolean
set::dim_has_lower_bound(isl::dim type
, unsigned int pos
) const {
11931 auto res
= isl_set_dim_has_lower_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
11932 return manage(res
);
11935 isl::boolean
set::dim_has_upper_bound(isl::dim type
, unsigned int pos
) const {
11936 auto res
= isl_set_dim_has_upper_bound(get(), static_cast<enum isl_dim_type
>(type
), pos
);
11937 return manage(res
);
11940 isl::boolean
set::dim_is_bounded(isl::dim type
, unsigned int pos
) const {
11941 auto res
= isl_set_dim_is_bounded(get(), static_cast<enum isl_dim_type
>(type
), pos
);
11942 return manage(res
);
11945 isl::pw_aff
set::dim_max(int pos
) const {
11946 auto res
= isl_set_dim_max(copy(), pos
);
11947 return manage(res
);
11950 isl::pw_aff
set::dim_min(int pos
) const {
11951 auto res
= isl_set_dim_min(copy(), pos
);
11952 return manage(res
);
11955 isl::set
set::drop_constraints_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
11956 auto res
= isl_set_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
11957 return manage(res
);
11960 isl::set
set::drop_constraints_not_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
11961 auto res
= isl_set_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
11962 return manage(res
);
11965 isl::set
set::eliminate(isl::dim type
, unsigned int first
, unsigned int n
) const {
11966 auto res
= isl_set_eliminate(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
11967 return manage(res
);
11970 isl::set
set::empty(isl::space space
) {
11971 auto res
= isl_set_empty(space
.release());
11972 return manage(res
);
11975 isl::set
set::equate(isl::dim type1
, int pos1
, isl::dim type2
, int pos2
) const {
11976 auto res
= isl_set_equate(copy(), static_cast<enum isl_dim_type
>(type1
), pos1
, static_cast<enum isl_dim_type
>(type2
), pos2
);
11977 return manage(res
);
11980 int set::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
11981 auto res
= isl_set_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
11985 int set::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
11986 auto res
= isl_set_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
11990 isl::set
set::fix_si(isl::dim type
, unsigned int pos
, int value
) const {
11991 auto res
= isl_set_fix_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
11992 return manage(res
);
11995 isl::set
set::fix_val(isl::dim type
, unsigned int pos
, isl::val v
) const {
11996 auto res
= isl_set_fix_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, v
.release());
11997 return manage(res
);
12000 isl::set
set::flat_product(isl::set set2
) const {
12001 auto res
= isl_set_flat_product(copy(), set2
.release());
12002 return manage(res
);
12005 isl::set
set::flatten() const {
12006 auto res
= isl_set_flatten(copy());
12007 return manage(res
);
12010 isl::map
set::flatten_map() const {
12011 auto res
= isl_set_flatten_map(copy());
12012 return manage(res
);
12015 int set::follows_at(const isl::set
&set2
, int pos
) const {
12016 auto res
= isl_set_follows_at(get(), set2
.get(), pos
);
12020 isl::stat
set::foreach_basic_set(const std::function
<isl::stat(isl::basic_set
)> &fn
) const {
12022 auto fn_lambda
= [](isl_basic_set
*arg_0
, void *arg_1
) -> isl_stat
{
12023 auto *func
= *static_cast<const std::function
<isl::stat(isl::basic_set
)> **>(arg_1
);
12024 stat ret
= (*func
)(isl::manage(arg_0
));
12025 return isl_stat(ret
);
12027 auto res
= isl_set_foreach_basic_set(get(), fn_lambda
, &fn_p
);
12028 return isl::stat(res
);
12031 isl::stat
set::foreach_point(const std::function
<isl::stat(isl::point
)> &fn
) const {
12033 auto fn_lambda
= [](isl_point
*arg_0
, void *arg_1
) -> isl_stat
{
12034 auto *func
= *static_cast<const std::function
<isl::stat(isl::point
)> **>(arg_1
);
12035 stat ret
= (*func
)(isl::manage(arg_0
));
12036 return isl_stat(ret
);
12038 auto res
= isl_set_foreach_point(get(), fn_lambda
, &fn_p
);
12039 return isl::stat(res
);
12042 isl::set
set::from_multi_pw_aff(isl::multi_pw_aff mpa
) {
12043 auto res
= isl_set_from_multi_pw_aff(mpa
.release());
12044 return manage(res
);
12047 isl::set
set::from_params() const {
12048 auto res
= isl_set_from_params(copy());
12049 return manage(res
);
12052 isl::set
set::from_pw_aff(isl::pw_aff pwaff
) {
12053 auto res
= isl_set_from_pw_aff(pwaff
.release());
12054 return manage(res
);
12057 isl::set
set::from_pw_multi_aff(isl::pw_multi_aff pma
) {
12058 auto res
= isl_set_from_pw_multi_aff(pma
.release());
12059 return manage(res
);
12062 isl::basic_set_list
set::get_basic_set_list() const {
12063 auto res
= isl_set_get_basic_set_list(get());
12064 return manage(res
);
12067 isl::id
set::get_dim_id(isl::dim type
, unsigned int pos
) const {
12068 auto res
= isl_set_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12069 return manage(res
);
12072 std::string
set::get_dim_name(isl::dim type
, unsigned int pos
) const {
12073 auto res
= isl_set_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12074 std::string
tmp(res
);
12078 isl::space
set::get_space() const {
12079 auto res
= isl_set_get_space(get());
12080 return manage(res
);
12083 isl::id
set::get_tuple_id() const {
12084 auto res
= isl_set_get_tuple_id(get());
12085 return manage(res
);
12088 std::string
set::get_tuple_name() const {
12089 auto res
= isl_set_get_tuple_name(get());
12090 std::string
tmp(res
);
12094 isl::set
set::gist(isl::set context
) const {
12095 auto res
= isl_set_gist(copy(), context
.release());
12096 return manage(res
);
12099 isl::set
set::gist_basic_set(isl::basic_set context
) const {
12100 auto res
= isl_set_gist_basic_set(copy(), context
.release());
12101 return manage(res
);
12104 isl::set
set::gist_params(isl::set context
) const {
12105 auto res
= isl_set_gist_params(copy(), context
.release());
12106 return manage(res
);
12109 isl::boolean
set::has_dim_id(isl::dim type
, unsigned int pos
) const {
12110 auto res
= isl_set_has_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12111 return manage(res
);
12114 isl::boolean
set::has_dim_name(isl::dim type
, unsigned int pos
) const {
12115 auto res
= isl_set_has_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12116 return manage(res
);
12119 isl::boolean
set::has_equal_space(const isl::set
&set2
) const {
12120 auto res
= isl_set_has_equal_space(get(), set2
.get());
12121 return manage(res
);
12124 isl::boolean
set::has_tuple_id() const {
12125 auto res
= isl_set_has_tuple_id(get());
12126 return manage(res
);
12129 isl::boolean
set::has_tuple_name() const {
12130 auto res
= isl_set_has_tuple_name(get());
12131 return manage(res
);
12134 isl::map
set::identity() const {
12135 auto res
= isl_set_identity(copy());
12136 return manage(res
);
12139 isl::pw_aff
set::indicator_function() const {
12140 auto res
= isl_set_indicator_function(copy());
12141 return manage(res
);
12144 isl::set
set::insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const {
12145 auto res
= isl_set_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), pos
, n
);
12146 return manage(res
);
12149 isl::set
set::intersect(isl::set set2
) const {
12150 auto res
= isl_set_intersect(copy(), set2
.release());
12151 return manage(res
);
12154 isl::set
set::intersect_params(isl::set params
) const {
12155 auto res
= isl_set_intersect_params(copy(), params
.release());
12156 return manage(res
);
12159 isl::boolean
set::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
12160 auto res
= isl_set_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
12161 return manage(res
);
12164 isl::boolean
set::is_bounded() const {
12165 auto res
= isl_set_is_bounded(get());
12166 return manage(res
);
12169 isl::boolean
set::is_box() const {
12170 auto res
= isl_set_is_box(get());
12171 return manage(res
);
12174 isl::boolean
set::is_disjoint(const isl::set
&set2
) const {
12175 auto res
= isl_set_is_disjoint(get(), set2
.get());
12176 return manage(res
);
12179 isl::boolean
set::is_empty() const {
12180 auto res
= isl_set_is_empty(get());
12181 return manage(res
);
12184 isl::boolean
set::is_equal(const isl::set
&set2
) const {
12185 auto res
= isl_set_is_equal(get(), set2
.get());
12186 return manage(res
);
12189 isl::boolean
set::is_params() const {
12190 auto res
= isl_set_is_params(get());
12191 return manage(res
);
12194 isl::boolean
set::is_singleton() const {
12195 auto res
= isl_set_is_singleton(get());
12196 return manage(res
);
12199 isl::boolean
set::is_strict_subset(const isl::set
&set2
) const {
12200 auto res
= isl_set_is_strict_subset(get(), set2
.get());
12201 return manage(res
);
12204 isl::boolean
set::is_subset(const isl::set
&set2
) const {
12205 auto res
= isl_set_is_subset(get(), set2
.get());
12206 return manage(res
);
12209 isl::boolean
set::is_wrapping() const {
12210 auto res
= isl_set_is_wrapping(get());
12211 return manage(res
);
12214 isl::map
set::lex_ge_set(isl::set set2
) const {
12215 auto res
= isl_set_lex_ge_set(copy(), set2
.release());
12216 return manage(res
);
12219 isl::map
set::lex_gt_set(isl::set set2
) const {
12220 auto res
= isl_set_lex_gt_set(copy(), set2
.release());
12221 return manage(res
);
12224 isl::map
set::lex_le_set(isl::set set2
) const {
12225 auto res
= isl_set_lex_le_set(copy(), set2
.release());
12226 return manage(res
);
12229 isl::map
set::lex_lt_set(isl::set set2
) const {
12230 auto res
= isl_set_lex_lt_set(copy(), set2
.release());
12231 return manage(res
);
12234 isl::set
set::lexmax() const {
12235 auto res
= isl_set_lexmax(copy());
12236 return manage(res
);
12239 isl::pw_multi_aff
set::lexmax_pw_multi_aff() const {
12240 auto res
= isl_set_lexmax_pw_multi_aff(copy());
12241 return manage(res
);
12244 isl::set
set::lexmin() const {
12245 auto res
= isl_set_lexmin(copy());
12246 return manage(res
);
12249 isl::pw_multi_aff
set::lexmin_pw_multi_aff() const {
12250 auto res
= isl_set_lexmin_pw_multi_aff(copy());
12251 return manage(res
);
12254 isl::set
set::lower_bound_si(isl::dim type
, unsigned int pos
, int value
) const {
12255 auto res
= isl_set_lower_bound_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
12256 return manage(res
);
12259 isl::set
set::lower_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const {
12260 auto res
= isl_set_lower_bound_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
.release());
12261 return manage(res
);
12264 isl::val
set::max_val(const isl::aff
&obj
) const {
12265 auto res
= isl_set_max_val(get(), obj
.get());
12266 return manage(res
);
12269 isl::val
set::min_val(const isl::aff
&obj
) const {
12270 auto res
= isl_set_min_val(get(), obj
.get());
12271 return manage(res
);
12274 isl::set
set::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
12275 auto res
= isl_set_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
12276 return manage(res
);
12279 isl::set
set::nat_universe(isl::space dim
) {
12280 auto res
= isl_set_nat_universe(dim
.release());
12281 return manage(res
);
12284 isl::set
set::neg() const {
12285 auto res
= isl_set_neg(copy());
12286 return manage(res
);
12289 isl::set
set::params() const {
12290 auto res
= isl_set_params(copy());
12291 return manage(res
);
12294 int set::plain_cmp(const isl::set
&set2
) const {
12295 auto res
= isl_set_plain_cmp(get(), set2
.get());
12299 isl::val
set::plain_get_val_if_fixed(isl::dim type
, unsigned int pos
) const {
12300 auto res
= isl_set_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12301 return manage(res
);
12304 isl::boolean
set::plain_is_disjoint(const isl::set
&set2
) const {
12305 auto res
= isl_set_plain_is_disjoint(get(), set2
.get());
12306 return manage(res
);
12309 isl::boolean
set::plain_is_empty() const {
12310 auto res
= isl_set_plain_is_empty(get());
12311 return manage(res
);
12314 isl::boolean
set::plain_is_equal(const isl::set
&set2
) const {
12315 auto res
= isl_set_plain_is_equal(get(), set2
.get());
12316 return manage(res
);
12319 isl::boolean
set::plain_is_universe() const {
12320 auto res
= isl_set_plain_is_universe(get());
12321 return manage(res
);
12324 isl::basic_set
set::plain_unshifted_simple_hull() const {
12325 auto res
= isl_set_plain_unshifted_simple_hull(copy());
12326 return manage(res
);
12329 isl::basic_set
set::polyhedral_hull() const {
12330 auto res
= isl_set_polyhedral_hull(copy());
12331 return manage(res
);
12334 isl::set
set::preimage_multi_aff(isl::multi_aff ma
) const {
12335 auto res
= isl_set_preimage_multi_aff(copy(), ma
.release());
12336 return manage(res
);
12339 isl::set
set::preimage_multi_pw_aff(isl::multi_pw_aff mpa
) const {
12340 auto res
= isl_set_preimage_multi_pw_aff(copy(), mpa
.release());
12341 return manage(res
);
12344 isl::set
set::preimage_pw_multi_aff(isl::pw_multi_aff pma
) const {
12345 auto res
= isl_set_preimage_pw_multi_aff(copy(), pma
.release());
12346 return manage(res
);
12349 isl::set
set::product(isl::set set2
) const {
12350 auto res
= isl_set_product(copy(), set2
.release());
12351 return manage(res
);
12354 isl::map
set::project_onto_map(isl::dim type
, unsigned int first
, unsigned int n
) const {
12355 auto res
= isl_set_project_onto_map(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
12356 return manage(res
);
12359 isl::set
set::project_out(isl::dim type
, unsigned int first
, unsigned int n
) const {
12360 auto res
= isl_set_project_out(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
12361 return manage(res
);
12364 isl::set
set::remove_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
12365 auto res
= isl_set_remove_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
12366 return manage(res
);
12369 isl::set
set::remove_divs() const {
12370 auto res
= isl_set_remove_divs(copy());
12371 return manage(res
);
12374 isl::set
set::remove_divs_involving_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
12375 auto res
= isl_set_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
12376 return manage(res
);
12379 isl::set
set::remove_redundancies() const {
12380 auto res
= isl_set_remove_redundancies(copy());
12381 return manage(res
);
12384 isl::set
set::remove_unknown_divs() const {
12385 auto res
= isl_set_remove_unknown_divs(copy());
12386 return manage(res
);
12389 isl::set
set::reset_space(isl::space dim
) const {
12390 auto res
= isl_set_reset_space(copy(), dim
.release());
12391 return manage(res
);
12394 isl::set
set::reset_tuple_id() const {
12395 auto res
= isl_set_reset_tuple_id(copy());
12396 return manage(res
);
12399 isl::set
set::reset_user() const {
12400 auto res
= isl_set_reset_user(copy());
12401 return manage(res
);
12404 isl::basic_set
set::sample() const {
12405 auto res
= isl_set_sample(copy());
12406 return manage(res
);
12409 isl::point
set::sample_point() const {
12410 auto res
= isl_set_sample_point(copy());
12411 return manage(res
);
12414 isl::set
set::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
12415 auto res
= isl_set_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
12416 return manage(res
);
12419 isl::set
set::set_tuple_id(isl::id id
) const {
12420 auto res
= isl_set_set_tuple_id(copy(), id
.release());
12421 return manage(res
);
12424 isl::set
set::set_tuple_name(const std::string
&s
) const {
12425 auto res
= isl_set_set_tuple_name(copy(), s
.c_str());
12426 return manage(res
);
12429 isl::basic_set
set::simple_hull() const {
12430 auto res
= isl_set_simple_hull(copy());
12431 return manage(res
);
12434 int set::size() const {
12435 auto res
= isl_set_size(get());
12439 isl::basic_set
set::solutions() const {
12440 auto res
= isl_set_solutions(copy());
12441 return manage(res
);
12444 isl::set
set::split_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
12445 auto res
= isl_set_split_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
12446 return manage(res
);
12449 isl::set
set::subtract(isl::set set2
) const {
12450 auto res
= isl_set_subtract(copy(), set2
.release());
12451 return manage(res
);
12454 isl::set
set::sum(isl::set set2
) const {
12455 auto res
= isl_set_sum(copy(), set2
.release());
12456 return manage(res
);
12459 isl::set
set::unite(isl::set set2
) const {
12460 auto res
= isl_set_union(copy(), set2
.release());
12461 return manage(res
);
12464 isl::set
set::universe(isl::space space
) {
12465 auto res
= isl_set_universe(space
.release());
12466 return manage(res
);
12469 isl::basic_set
set::unshifted_simple_hull() const {
12470 auto res
= isl_set_unshifted_simple_hull(copy());
12471 return manage(res
);
12474 isl::basic_set
set::unshifted_simple_hull_from_set_list(isl::set_list list
) const {
12475 auto res
= isl_set_unshifted_simple_hull_from_set_list(copy(), list
.release());
12476 return manage(res
);
12479 isl::map
set::unwrap() const {
12480 auto res
= isl_set_unwrap(copy());
12481 return manage(res
);
12484 isl::set
set::upper_bound_si(isl::dim type
, unsigned int pos
, int value
) const {
12485 auto res
= isl_set_upper_bound_si(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
);
12486 return manage(res
);
12489 isl::set
set::upper_bound_val(isl::dim type
, unsigned int pos
, isl::val value
) const {
12490 auto res
= isl_set_upper_bound_val(copy(), static_cast<enum isl_dim_type
>(type
), pos
, value
.release());
12491 return manage(res
);
12494 isl::map
set::wrapped_domain_map() const {
12495 auto res
= isl_set_wrapped_domain_map(copy());
12496 return manage(res
);
12499 // implementations for isl::set_list
12500 isl::set_list
manage(__isl_take isl_set_list
*ptr
) {
12501 return set_list(ptr
);
12503 isl::set_list
manage_copy(__isl_keep isl_set_list
*ptr
) {
12504 return set_list(isl_set_list_copy(ptr
));
12506 isl::set_list
give(__isl_take isl_set_list
*ptr
) {
12507 return manage(ptr
);
12511 set_list::set_list()
12514 set_list::set_list(const isl::set_list
&obj
)
12515 : ptr(obj
.copy()) {}
12516 set_list::set_list(std::nullptr_t
)
12520 set_list::set_list(__isl_take isl_set_list
*ptr
)
12524 set_list
&set_list::operator=(isl::set_list obj
) {
12525 std::swap(this->ptr
, obj
.ptr
);
12529 set_list::~set_list() {
12531 isl_set_list_free(ptr
);
12534 __isl_give isl_set_list
*set_list::copy() const & {
12535 return isl_set_list_copy(ptr
);
12538 __isl_keep isl_set_list
*set_list::get() const {
12542 __isl_give isl_set_list
*set_list::release() {
12543 isl_set_list
*tmp
= ptr
;
12548 bool set_list::is_null() const {
12549 return ptr
== nullptr;
12551 __isl_keep isl_set_list
*set_list::keep() const {
12555 __isl_give isl_set_list
*set_list::take() {
12559 set_list::operator bool() const {
12564 isl::ctx
set_list::get_ctx() const {
12565 return isl::ctx(isl_set_list_get_ctx(ptr
));
12568 void set_list::dump() const {
12569 isl_set_list_dump(get());
12574 // implementations for isl::space
12575 isl::space
manage(__isl_take isl_space
*ptr
) {
12578 isl::space
manage_copy(__isl_keep isl_space
*ptr
) {
12579 return space(isl_space_copy(ptr
));
12581 isl::space
give(__isl_take isl_space
*ptr
) {
12582 return manage(ptr
);
12589 space::space(const isl::space
&obj
)
12590 : ptr(obj
.copy()) {}
12591 space::space(std::nullptr_t
)
12595 space::space(__isl_take isl_space
*ptr
)
12598 space::space(isl::ctx ctx
, unsigned int nparam
, unsigned int n_in
, unsigned int n_out
) {
12599 auto res
= isl_space_alloc(ctx
.release(), nparam
, n_in
, n_out
);
12602 space::space(isl::ctx ctx
, unsigned int nparam
, unsigned int dim
) {
12603 auto res
= isl_space_set_alloc(ctx
.release(), nparam
, dim
);
12607 space
&space::operator=(isl::space obj
) {
12608 std::swap(this->ptr
, obj
.ptr
);
12614 isl_space_free(ptr
);
12617 __isl_give isl_space
*space::copy() const & {
12618 return isl_space_copy(ptr
);
12621 __isl_keep isl_space
*space::get() const {
12625 __isl_give isl_space
*space::release() {
12626 isl_space
*tmp
= ptr
;
12631 bool space::is_null() const {
12632 return ptr
== nullptr;
12634 __isl_keep isl_space
*space::keep() const {
12638 __isl_give isl_space
*space::take() {
12642 space::operator bool() const {
12647 isl::ctx
space::get_ctx() const {
12648 return isl::ctx(isl_space_get_ctx(ptr
));
12650 std::string
space::to_str() const {
12651 char *Tmp
= isl_space_to_str(get());
12654 std::string
S(Tmp
);
12660 void space::dump() const {
12661 isl_space_dump(get());
12665 isl::space
space::add_dims(isl::dim type
, unsigned int n
) const {
12666 auto res
= isl_space_add_dims(copy(), static_cast<enum isl_dim_type
>(type
), n
);
12667 return manage(res
);
12670 isl::space
space::align_params(isl::space dim2
) const {
12671 auto res
= isl_space_align_params(copy(), dim2
.release());
12672 return manage(res
);
12675 isl::boolean
space::can_curry() const {
12676 auto res
= isl_space_can_curry(get());
12677 return manage(res
);
12680 isl::boolean
space::can_range_curry() const {
12681 auto res
= isl_space_can_range_curry(get());
12682 return manage(res
);
12685 isl::boolean
space::can_uncurry() const {
12686 auto res
= isl_space_can_uncurry(get());
12687 return manage(res
);
12690 isl::boolean
space::can_zip() const {
12691 auto res
= isl_space_can_zip(get());
12692 return manage(res
);
12695 isl::space
space::curry() const {
12696 auto res
= isl_space_curry(copy());
12697 return manage(res
);
12700 unsigned int space::dim(isl::dim type
) const {
12701 auto res
= isl_space_dim(get(), static_cast<enum isl_dim_type
>(type
));
12705 isl::space
space::domain() const {
12706 auto res
= isl_space_domain(copy());
12707 return manage(res
);
12710 isl::space
space::domain_factor_domain() const {
12711 auto res
= isl_space_domain_factor_domain(copy());
12712 return manage(res
);
12715 isl::space
space::domain_factor_range() const {
12716 auto res
= isl_space_domain_factor_range(copy());
12717 return manage(res
);
12720 isl::boolean
space::domain_is_wrapping() const {
12721 auto res
= isl_space_domain_is_wrapping(get());
12722 return manage(res
);
12725 isl::space
space::domain_map() const {
12726 auto res
= isl_space_domain_map(copy());
12727 return manage(res
);
12730 isl::space
space::domain_product(isl::space right
) const {
12731 auto res
= isl_space_domain_product(copy(), right
.release());
12732 return manage(res
);
12735 isl::space
space::drop_dims(isl::dim type
, unsigned int first
, unsigned int num
) const {
12736 auto res
= isl_space_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, num
);
12737 return manage(res
);
12740 isl::space
space::factor_domain() const {
12741 auto res
= isl_space_factor_domain(copy());
12742 return manage(res
);
12745 isl::space
space::factor_range() const {
12746 auto res
= isl_space_factor_range(copy());
12747 return manage(res
);
12750 int space::find_dim_by_id(isl::dim type
, const isl::id
&id
) const {
12751 auto res
= isl_space_find_dim_by_id(get(), static_cast<enum isl_dim_type
>(type
), id
.get());
12755 int space::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
12756 auto res
= isl_space_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
12760 isl::space
space::from_domain() const {
12761 auto res
= isl_space_from_domain(copy());
12762 return manage(res
);
12765 isl::space
space::from_range() const {
12766 auto res
= isl_space_from_range(copy());
12767 return manage(res
);
12770 isl::id
space::get_dim_id(isl::dim type
, unsigned int pos
) const {
12771 auto res
= isl_space_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12772 return manage(res
);
12775 std::string
space::get_dim_name(isl::dim type
, unsigned int pos
) const {
12776 auto res
= isl_space_get_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12777 std::string
tmp(res
);
12781 isl::id
space::get_tuple_id(isl::dim type
) const {
12782 auto res
= isl_space_get_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
12783 return manage(res
);
12786 std::string
space::get_tuple_name(isl::dim type
) const {
12787 auto res
= isl_space_get_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
12788 std::string
tmp(res
);
12792 isl::boolean
space::has_dim_id(isl::dim type
, unsigned int pos
) const {
12793 auto res
= isl_space_has_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12794 return manage(res
);
12797 isl::boolean
space::has_dim_name(isl::dim type
, unsigned int pos
) const {
12798 auto res
= isl_space_has_dim_name(get(), static_cast<enum isl_dim_type
>(type
), pos
);
12799 return manage(res
);
12802 isl::boolean
space::has_equal_params(const isl::space
&space2
) const {
12803 auto res
= isl_space_has_equal_params(get(), space2
.get());
12804 return manage(res
);
12807 isl::boolean
space::has_equal_tuples(const isl::space
&space2
) const {
12808 auto res
= isl_space_has_equal_tuples(get(), space2
.get());
12809 return manage(res
);
12812 isl::boolean
space::has_tuple_id(isl::dim type
) const {
12813 auto res
= isl_space_has_tuple_id(get(), static_cast<enum isl_dim_type
>(type
));
12814 return manage(res
);
12817 isl::boolean
space::has_tuple_name(isl::dim type
) const {
12818 auto res
= isl_space_has_tuple_name(get(), static_cast<enum isl_dim_type
>(type
));
12819 return manage(res
);
12822 isl::space
space::insert_dims(isl::dim type
, unsigned int pos
, unsigned int n
) const {
12823 auto res
= isl_space_insert_dims(copy(), static_cast<enum isl_dim_type
>(type
), pos
, n
);
12824 return manage(res
);
12827 isl::boolean
space::is_domain(const isl::space
&space2
) const {
12828 auto res
= isl_space_is_domain(get(), space2
.get());
12829 return manage(res
);
12832 isl::boolean
space::is_equal(const isl::space
&space2
) const {
12833 auto res
= isl_space_is_equal(get(), space2
.get());
12834 return manage(res
);
12837 isl::boolean
space::is_map() const {
12838 auto res
= isl_space_is_map(get());
12839 return manage(res
);
12842 isl::boolean
space::is_params() const {
12843 auto res
= isl_space_is_params(get());
12844 return manage(res
);
12847 isl::boolean
space::is_product() const {
12848 auto res
= isl_space_is_product(get());
12849 return manage(res
);
12852 isl::boolean
space::is_range(const isl::space
&space2
) const {
12853 auto res
= isl_space_is_range(get(), space2
.get());
12854 return manage(res
);
12857 isl::boolean
space::is_set() const {
12858 auto res
= isl_space_is_set(get());
12859 return manage(res
);
12862 isl::boolean
space::is_wrapping() const {
12863 auto res
= isl_space_is_wrapping(get());
12864 return manage(res
);
12867 isl::space
space::join(isl::space right
) const {
12868 auto res
= isl_space_join(copy(), right
.release());
12869 return manage(res
);
12872 isl::space
space::map_from_domain_and_range(isl::space range
) const {
12873 auto res
= isl_space_map_from_domain_and_range(copy(), range
.release());
12874 return manage(res
);
12877 isl::space
space::map_from_set() const {
12878 auto res
= isl_space_map_from_set(copy());
12879 return manage(res
);
12882 isl::space
space::move_dims(isl::dim dst_type
, unsigned int dst_pos
, isl::dim src_type
, unsigned int src_pos
, unsigned int n
) const {
12883 auto res
= isl_space_move_dims(copy(), static_cast<enum isl_dim_type
>(dst_type
), dst_pos
, static_cast<enum isl_dim_type
>(src_type
), src_pos
, n
);
12884 return manage(res
);
12887 isl::space
space::params() const {
12888 auto res
= isl_space_params(copy());
12889 return manage(res
);
12892 isl::space
space::params_alloc(isl::ctx ctx
, unsigned int nparam
) {
12893 auto res
= isl_space_params_alloc(ctx
.release(), nparam
);
12894 return manage(res
);
12897 isl::space
space::product(isl::space right
) const {
12898 auto res
= isl_space_product(copy(), right
.release());
12899 return manage(res
);
12902 isl::space
space::range() const {
12903 auto res
= isl_space_range(copy());
12904 return manage(res
);
12907 isl::space
space::range_curry() const {
12908 auto res
= isl_space_range_curry(copy());
12909 return manage(res
);
12912 isl::space
space::range_factor_domain() const {
12913 auto res
= isl_space_range_factor_domain(copy());
12914 return manage(res
);
12917 isl::space
space::range_factor_range() const {
12918 auto res
= isl_space_range_factor_range(copy());
12919 return manage(res
);
12922 isl::boolean
space::range_is_wrapping() const {
12923 auto res
= isl_space_range_is_wrapping(get());
12924 return manage(res
);
12927 isl::space
space::range_map() const {
12928 auto res
= isl_space_range_map(copy());
12929 return manage(res
);
12932 isl::space
space::range_product(isl::space right
) const {
12933 auto res
= isl_space_range_product(copy(), right
.release());
12934 return manage(res
);
12937 isl::space
space::reset_tuple_id(isl::dim type
) const {
12938 auto res
= isl_space_reset_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
));
12939 return manage(res
);
12942 isl::space
space::reset_user() const {
12943 auto res
= isl_space_reset_user(copy());
12944 return manage(res
);
12947 isl::space
space::reverse() const {
12948 auto res
= isl_space_reverse(copy());
12949 return manage(res
);
12952 isl::space
space::set_dim_id(isl::dim type
, unsigned int pos
, isl::id id
) const {
12953 auto res
= isl_space_set_dim_id(copy(), static_cast<enum isl_dim_type
>(type
), pos
, id
.release());
12954 return manage(res
);
12957 isl::space
space::set_from_params() const {
12958 auto res
= isl_space_set_from_params(copy());
12959 return manage(res
);
12962 isl::space
space::set_tuple_id(isl::dim type
, isl::id id
) const {
12963 auto res
= isl_space_set_tuple_id(copy(), static_cast<enum isl_dim_type
>(type
), id
.release());
12964 return manage(res
);
12967 isl::space
space::set_tuple_name(isl::dim type
, const std::string
&s
) const {
12968 auto res
= isl_space_set_tuple_name(copy(), static_cast<enum isl_dim_type
>(type
), s
.c_str());
12969 return manage(res
);
12972 isl::boolean
space::tuple_is_equal(isl::dim type1
, const isl::space
&space2
, isl::dim type2
) const {
12973 auto res
= isl_space_tuple_is_equal(get(), static_cast<enum isl_dim_type
>(type1
), space2
.get(), static_cast<enum isl_dim_type
>(type2
));
12974 return manage(res
);
12977 isl::space
space::uncurry() const {
12978 auto res
= isl_space_uncurry(copy());
12979 return manage(res
);
12982 isl::space
space::unwrap() const {
12983 auto res
= isl_space_unwrap(copy());
12984 return manage(res
);
12987 isl::space
space::wrap() const {
12988 auto res
= isl_space_wrap(copy());
12989 return manage(res
);
12992 isl::space
space::zip() const {
12993 auto res
= isl_space_zip(copy());
12994 return manage(res
);
12997 // implementations for isl::term
12998 isl::term
manage(__isl_take isl_term
*ptr
) {
13001 isl::term
manage_copy(__isl_keep isl_term
*ptr
) {
13002 return term(isl_term_copy(ptr
));
13004 isl::term
give(__isl_take isl_term
*ptr
) {
13005 return manage(ptr
);
13012 term::term(const isl::term
&obj
)
13013 : ptr(obj
.copy()) {}
13014 term::term(std::nullptr_t
)
13018 term::term(__isl_take isl_term
*ptr
)
13022 term
&term::operator=(isl::term obj
) {
13023 std::swap(this->ptr
, obj
.ptr
);
13029 isl_term_free(ptr
);
13032 __isl_give isl_term
*term::copy() const & {
13033 return isl_term_copy(ptr
);
13036 __isl_keep isl_term
*term::get() const {
13040 __isl_give isl_term
*term::release() {
13041 isl_term
*tmp
= ptr
;
13046 bool term::is_null() const {
13047 return ptr
== nullptr;
13049 __isl_keep isl_term
*term::keep() const {
13053 __isl_give isl_term
*term::take() {
13057 term::operator bool() const {
13062 isl::ctx
term::get_ctx() const {
13063 return isl::ctx(isl_term_get_ctx(ptr
));
13067 unsigned int term::dim(isl::dim type
) const {
13068 auto res
= isl_term_dim(get(), static_cast<enum isl_dim_type
>(type
));
13072 isl::val
term::get_coefficient_val() const {
13073 auto res
= isl_term_get_coefficient_val(get());
13074 return manage(res
);
13077 isl::aff
term::get_div(unsigned int pos
) const {
13078 auto res
= isl_term_get_div(get(), pos
);
13079 return manage(res
);
13082 int term::get_exp(isl::dim type
, unsigned int pos
) const {
13083 auto res
= isl_term_get_exp(get(), static_cast<enum isl_dim_type
>(type
), pos
);
13087 // implementations for isl::union_access_info
13088 isl::union_access_info
manage(__isl_take isl_union_access_info
*ptr
) {
13089 return union_access_info(ptr
);
13091 isl::union_access_info
manage_copy(__isl_keep isl_union_access_info
*ptr
) {
13092 return union_access_info(isl_union_access_info_copy(ptr
));
13094 isl::union_access_info
give(__isl_take isl_union_access_info
*ptr
) {
13095 return manage(ptr
);
13099 union_access_info::union_access_info()
13102 union_access_info::union_access_info(const isl::union_access_info
&obj
)
13103 : ptr(obj
.copy()) {}
13104 union_access_info::union_access_info(std::nullptr_t
)
13108 union_access_info::union_access_info(__isl_take isl_union_access_info
*ptr
)
13111 union_access_info::union_access_info(isl::union_map sink
) {
13112 auto res
= isl_union_access_info_from_sink(sink
.release());
13116 union_access_info
&union_access_info::operator=(isl::union_access_info obj
) {
13117 std::swap(this->ptr
, obj
.ptr
);
13121 union_access_info::~union_access_info() {
13123 isl_union_access_info_free(ptr
);
13126 __isl_give isl_union_access_info
*union_access_info::copy() const & {
13127 return isl_union_access_info_copy(ptr
);
13130 __isl_keep isl_union_access_info
*union_access_info::get() const {
13134 __isl_give isl_union_access_info
*union_access_info::release() {
13135 isl_union_access_info
*tmp
= ptr
;
13140 bool union_access_info::is_null() const {
13141 return ptr
== nullptr;
13143 __isl_keep isl_union_access_info
*union_access_info::keep() const {
13147 __isl_give isl_union_access_info
*union_access_info::take() {
13151 union_access_info::operator bool() const {
13156 isl::ctx
union_access_info::get_ctx() const {
13157 return isl::ctx(isl_union_access_info_get_ctx(ptr
));
13159 std::string
union_access_info::to_str() const {
13160 char *Tmp
= isl_union_access_info_to_str(get());
13163 std::string
S(Tmp
);
13170 isl::union_flow
union_access_info::compute_flow() const {
13171 auto res
= isl_union_access_info_compute_flow(copy());
13172 return manage(res
);
13175 isl::union_access_info
union_access_info::set_kill(isl::union_map kill
) const {
13176 auto res
= isl_union_access_info_set_kill(copy(), kill
.release());
13177 return manage(res
);
13180 isl::union_access_info
union_access_info::set_may_source(isl::union_map may_source
) const {
13181 auto res
= isl_union_access_info_set_may_source(copy(), may_source
.release());
13182 return manage(res
);
13185 isl::union_access_info
union_access_info::set_must_source(isl::union_map must_source
) const {
13186 auto res
= isl_union_access_info_set_must_source(copy(), must_source
.release());
13187 return manage(res
);
13190 isl::union_access_info
union_access_info::set_schedule(isl::schedule schedule
) const {
13191 auto res
= isl_union_access_info_set_schedule(copy(), schedule
.release());
13192 return manage(res
);
13195 isl::union_access_info
union_access_info::set_schedule_map(isl::union_map schedule_map
) const {
13196 auto res
= isl_union_access_info_set_schedule_map(copy(), schedule_map
.release());
13197 return manage(res
);
13200 // implementations for isl::union_flow
13201 isl::union_flow
manage(__isl_take isl_union_flow
*ptr
) {
13202 return union_flow(ptr
);
13204 isl::union_flow
manage_copy(__isl_keep isl_union_flow
*ptr
) {
13205 return union_flow(isl_union_flow_copy(ptr
));
13207 isl::union_flow
give(__isl_take isl_union_flow
*ptr
) {
13208 return manage(ptr
);
13212 union_flow::union_flow()
13215 union_flow::union_flow(const isl::union_flow
&obj
)
13216 : ptr(obj
.copy()) {}
13217 union_flow::union_flow(std::nullptr_t
)
13221 union_flow::union_flow(__isl_take isl_union_flow
*ptr
)
13225 union_flow
&union_flow::operator=(isl::union_flow obj
) {
13226 std::swap(this->ptr
, obj
.ptr
);
13230 union_flow::~union_flow() {
13232 isl_union_flow_free(ptr
);
13235 __isl_give isl_union_flow
*union_flow::copy() const & {
13236 return isl_union_flow_copy(ptr
);
13239 __isl_keep isl_union_flow
*union_flow::get() const {
13243 __isl_give isl_union_flow
*union_flow::release() {
13244 isl_union_flow
*tmp
= ptr
;
13249 bool union_flow::is_null() const {
13250 return ptr
== nullptr;
13252 __isl_keep isl_union_flow
*union_flow::keep() const {
13256 __isl_give isl_union_flow
*union_flow::take() {
13260 union_flow::operator bool() const {
13265 isl::ctx
union_flow::get_ctx() const {
13266 return isl::ctx(isl_union_flow_get_ctx(ptr
));
13268 std::string
union_flow::to_str() const {
13269 char *Tmp
= isl_union_flow_to_str(get());
13272 std::string
S(Tmp
);
13279 isl::union_map
union_flow::get_full_may_dependence() const {
13280 auto res
= isl_union_flow_get_full_may_dependence(get());
13281 return manage(res
);
13284 isl::union_map
union_flow::get_full_must_dependence() const {
13285 auto res
= isl_union_flow_get_full_must_dependence(get());
13286 return manage(res
);
13289 isl::union_map
union_flow::get_may_dependence() const {
13290 auto res
= isl_union_flow_get_may_dependence(get());
13291 return manage(res
);
13294 isl::union_map
union_flow::get_may_no_source() const {
13295 auto res
= isl_union_flow_get_may_no_source(get());
13296 return manage(res
);
13299 isl::union_map
union_flow::get_must_dependence() const {
13300 auto res
= isl_union_flow_get_must_dependence(get());
13301 return manage(res
);
13304 isl::union_map
union_flow::get_must_no_source() const {
13305 auto res
= isl_union_flow_get_must_no_source(get());
13306 return manage(res
);
13309 // implementations for isl::union_map
13310 isl::union_map
manage(__isl_take isl_union_map
*ptr
) {
13311 return union_map(ptr
);
13313 isl::union_map
manage_copy(__isl_keep isl_union_map
*ptr
) {
13314 return union_map(isl_union_map_copy(ptr
));
13316 isl::union_map
give(__isl_take isl_union_map
*ptr
) {
13317 return manage(ptr
);
13321 union_map::union_map()
13324 union_map::union_map(const isl::union_map
&obj
)
13325 : ptr(obj
.copy()) {}
13326 union_map::union_map(std::nullptr_t
)
13330 union_map::union_map(__isl_take isl_union_map
*ptr
)
13333 union_map::union_map(isl::ctx ctx
, const std::string
&str
) {
13334 auto res
= isl_union_map_read_from_str(ctx
.release(), str
.c_str());
13337 union_map::union_map(isl::union_pw_aff upa
) {
13338 auto res
= isl_union_map_from_union_pw_aff(upa
.release());
13341 union_map::union_map(isl::basic_map bmap
) {
13342 auto res
= isl_union_map_from_basic_map(bmap
.release());
13345 union_map::union_map(isl::map map
) {
13346 auto res
= isl_union_map_from_map(map
.release());
13350 union_map
&union_map::operator=(isl::union_map obj
) {
13351 std::swap(this->ptr
, obj
.ptr
);
13355 union_map::~union_map() {
13357 isl_union_map_free(ptr
);
13360 __isl_give isl_union_map
*union_map::copy() const & {
13361 return isl_union_map_copy(ptr
);
13364 __isl_keep isl_union_map
*union_map::get() const {
13368 __isl_give isl_union_map
*union_map::release() {
13369 isl_union_map
*tmp
= ptr
;
13374 bool union_map::is_null() const {
13375 return ptr
== nullptr;
13377 __isl_keep isl_union_map
*union_map::keep() const {
13381 __isl_give isl_union_map
*union_map::take() {
13385 union_map::operator bool() const {
13390 isl::ctx
union_map::get_ctx() const {
13391 return isl::ctx(isl_union_map_get_ctx(ptr
));
13393 std::string
union_map::to_str() const {
13394 char *Tmp
= isl_union_map_to_str(get());
13397 std::string
S(Tmp
);
13403 void union_map::dump() const {
13404 isl_union_map_dump(get());
13408 isl::union_map
union_map::add_map(isl::map map
) const {
13409 auto res
= isl_union_map_add_map(copy(), map
.release());
13410 return manage(res
);
13413 isl::union_map
union_map::affine_hull() const {
13414 auto res
= isl_union_map_affine_hull(copy());
13415 return manage(res
);
13418 isl::union_map
union_map::align_params(isl::space model
) const {
13419 auto res
= isl_union_map_align_params(copy(), model
.release());
13420 return manage(res
);
13423 isl::union_map
union_map::apply_domain(isl::union_map umap2
) const {
13424 auto res
= isl_union_map_apply_domain(copy(), umap2
.release());
13425 return manage(res
);
13428 isl::union_map
union_map::apply_range(isl::union_map umap2
) const {
13429 auto res
= isl_union_map_apply_range(copy(), umap2
.release());
13430 return manage(res
);
13433 isl::union_map
union_map::coalesce() const {
13434 auto res
= isl_union_map_coalesce(copy());
13435 return manage(res
);
13438 isl::boolean
union_map::contains(const isl::space
&space
) const {
13439 auto res
= isl_union_map_contains(get(), space
.get());
13440 return manage(res
);
13443 isl::union_map
union_map::curry() const {
13444 auto res
= isl_union_map_curry(copy());
13445 return manage(res
);
13448 isl::union_set
union_map::deltas() const {
13449 auto res
= isl_union_map_deltas(copy());
13450 return manage(res
);
13453 isl::union_map
union_map::deltas_map() const {
13454 auto res
= isl_union_map_deltas_map(copy());
13455 return manage(res
);
13458 isl::union_map
union_map::detect_equalities() const {
13459 auto res
= isl_union_map_detect_equalities(copy());
13460 return manage(res
);
13463 unsigned int union_map::dim(isl::dim type
) const {
13464 auto res
= isl_union_map_dim(get(), static_cast<enum isl_dim_type
>(type
));
13468 isl::union_set
union_map::domain() const {
13469 auto res
= isl_union_map_domain(copy());
13470 return manage(res
);
13473 isl::union_map
union_map::domain_factor_domain() const {
13474 auto res
= isl_union_map_domain_factor_domain(copy());
13475 return manage(res
);
13478 isl::union_map
union_map::domain_factor_range() const {
13479 auto res
= isl_union_map_domain_factor_range(copy());
13480 return manage(res
);
13483 isl::union_map
union_map::domain_map() const {
13484 auto res
= isl_union_map_domain_map(copy());
13485 return manage(res
);
13488 isl::union_pw_multi_aff
union_map::domain_map_union_pw_multi_aff() const {
13489 auto res
= isl_union_map_domain_map_union_pw_multi_aff(copy());
13490 return manage(res
);
13493 isl::union_map
union_map::domain_product(isl::union_map umap2
) const {
13494 auto res
= isl_union_map_domain_product(copy(), umap2
.release());
13495 return manage(res
);
13498 isl::union_map
union_map::empty(isl::space space
) {
13499 auto res
= isl_union_map_empty(space
.release());
13500 return manage(res
);
13503 isl::union_map
union_map::eq_at(isl::multi_union_pw_aff mupa
) const {
13504 auto res
= isl_union_map_eq_at_multi_union_pw_aff(copy(), mupa
.release());
13505 return manage(res
);
13508 isl::map
union_map::extract_map(isl::space dim
) const {
13509 auto res
= isl_union_map_extract_map(get(), dim
.release());
13510 return manage(res
);
13513 isl::union_map
union_map::factor_domain() const {
13514 auto res
= isl_union_map_factor_domain(copy());
13515 return manage(res
);
13518 isl::union_map
union_map::factor_range() const {
13519 auto res
= isl_union_map_factor_range(copy());
13520 return manage(res
);
13523 int union_map::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
13524 auto res
= isl_union_map_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
13528 isl::union_map
union_map::fixed_power(isl::val exp
) const {
13529 auto res
= isl_union_map_fixed_power_val(copy(), exp
.release());
13530 return manage(res
);
13533 isl::union_map
union_map::flat_domain_product(isl::union_map umap2
) const {
13534 auto res
= isl_union_map_flat_domain_product(copy(), umap2
.release());
13535 return manage(res
);
13538 isl::union_map
union_map::flat_range_product(isl::union_map umap2
) const {
13539 auto res
= isl_union_map_flat_range_product(copy(), umap2
.release());
13540 return manage(res
);
13543 isl::stat
union_map::foreach_map(const std::function
<isl::stat(isl::map
)> &fn
) const {
13545 auto fn_lambda
= [](isl_map
*arg_0
, void *arg_1
) -> isl_stat
{
13546 auto *func
= *static_cast<const std::function
<isl::stat(isl::map
)> **>(arg_1
);
13547 stat ret
= (*func
)(isl::manage(arg_0
));
13548 return isl_stat(ret
);
13550 auto res
= isl_union_map_foreach_map(get(), fn_lambda
, &fn_p
);
13551 return isl::stat(res
);
13554 isl::union_map
union_map::from(isl::union_pw_multi_aff upma
) {
13555 auto res
= isl_union_map_from_union_pw_multi_aff(upma
.release());
13556 return manage(res
);
13559 isl::union_map
union_map::from(isl::multi_union_pw_aff mupa
) {
13560 auto res
= isl_union_map_from_multi_union_pw_aff(mupa
.release());
13561 return manage(res
);
13564 isl::union_map
union_map::from_domain(isl::union_set uset
) {
13565 auto res
= isl_union_map_from_domain(uset
.release());
13566 return manage(res
);
13569 isl::union_map
union_map::from_domain_and_range(isl::union_set domain
, isl::union_set range
) {
13570 auto res
= isl_union_map_from_domain_and_range(domain
.release(), range
.release());
13571 return manage(res
);
13574 isl::union_map
union_map::from_range(isl::union_set uset
) {
13575 auto res
= isl_union_map_from_range(uset
.release());
13576 return manage(res
);
13579 isl::id
union_map::get_dim_id(isl::dim type
, unsigned int pos
) const {
13580 auto res
= isl_union_map_get_dim_id(get(), static_cast<enum isl_dim_type
>(type
), pos
);
13581 return manage(res
);
13584 uint32_t union_map::get_hash() const {
13585 auto res
= isl_union_map_get_hash(get());
13589 isl::space
union_map::get_space() const {
13590 auto res
= isl_union_map_get_space(get());
13591 return manage(res
);
13594 isl::union_map
union_map::gist(isl::union_map context
) const {
13595 auto res
= isl_union_map_gist(copy(), context
.release());
13596 return manage(res
);
13599 isl::union_map
union_map::gist_domain(isl::union_set uset
) const {
13600 auto res
= isl_union_map_gist_domain(copy(), uset
.release());
13601 return manage(res
);
13604 isl::union_map
union_map::gist_params(isl::set set
) const {
13605 auto res
= isl_union_map_gist_params(copy(), set
.release());
13606 return manage(res
);
13609 isl::union_map
union_map::gist_range(isl::union_set uset
) const {
13610 auto res
= isl_union_map_gist_range(copy(), uset
.release());
13611 return manage(res
);
13614 isl::union_map
union_map::intersect(isl::union_map umap2
) const {
13615 auto res
= isl_union_map_intersect(copy(), umap2
.release());
13616 return manage(res
);
13619 isl::union_map
union_map::intersect_domain(isl::union_set uset
) const {
13620 auto res
= isl_union_map_intersect_domain(copy(), uset
.release());
13621 return manage(res
);
13624 isl::union_map
union_map::intersect_params(isl::set set
) const {
13625 auto res
= isl_union_map_intersect_params(copy(), set
.release());
13626 return manage(res
);
13629 isl::union_map
union_map::intersect_range(isl::union_set uset
) const {
13630 auto res
= isl_union_map_intersect_range(copy(), uset
.release());
13631 return manage(res
);
13634 isl::union_map
union_map::intersect_range_factor_range(isl::union_map factor
) const {
13635 auto res
= isl_union_map_intersect_range_factor_range(copy(), factor
.release());
13636 return manage(res
);
13639 isl::boolean
union_map::involves_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
13640 auto res
= isl_union_map_involves_dims(get(), static_cast<enum isl_dim_type
>(type
), first
, n
);
13641 return manage(res
);
13644 isl::boolean
union_map::is_bijective() const {
13645 auto res
= isl_union_map_is_bijective(get());
13646 return manage(res
);
13649 isl::boolean
union_map::is_disjoint(const isl::union_map
&umap2
) const {
13650 auto res
= isl_union_map_is_disjoint(get(), umap2
.get());
13651 return manage(res
);
13654 isl::boolean
union_map::is_empty() const {
13655 auto res
= isl_union_map_is_empty(get());
13656 return manage(res
);
13659 isl::boolean
union_map::is_equal(const isl::union_map
&umap2
) const {
13660 auto res
= isl_union_map_is_equal(get(), umap2
.get());
13661 return manage(res
);
13664 isl::boolean
union_map::is_identity() const {
13665 auto res
= isl_union_map_is_identity(get());
13666 return manage(res
);
13669 isl::boolean
union_map::is_injective() const {
13670 auto res
= isl_union_map_is_injective(get());
13671 return manage(res
);
13674 isl::boolean
union_map::is_single_valued() const {
13675 auto res
= isl_union_map_is_single_valued(get());
13676 return manage(res
);
13679 isl::boolean
union_map::is_strict_subset(const isl::union_map
&umap2
) const {
13680 auto res
= isl_union_map_is_strict_subset(get(), umap2
.get());
13681 return manage(res
);
13684 isl::boolean
union_map::is_subset(const isl::union_map
&umap2
) const {
13685 auto res
= isl_union_map_is_subset(get(), umap2
.get());
13686 return manage(res
);
13689 isl::union_map
union_map::lex_ge_union_map(isl::union_map umap2
) const {
13690 auto res
= isl_union_map_lex_ge_union_map(copy(), umap2
.release());
13691 return manage(res
);
13694 isl::union_map
union_map::lex_gt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa
) const {
13695 auto res
= isl_union_map_lex_gt_at_multi_union_pw_aff(copy(), mupa
.release());
13696 return manage(res
);
13699 isl::union_map
union_map::lex_gt_union_map(isl::union_map umap2
) const {
13700 auto res
= isl_union_map_lex_gt_union_map(copy(), umap2
.release());
13701 return manage(res
);
13704 isl::union_map
union_map::lex_le_union_map(isl::union_map umap2
) const {
13705 auto res
= isl_union_map_lex_le_union_map(copy(), umap2
.release());
13706 return manage(res
);
13709 isl::union_map
union_map::lex_lt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa
) const {
13710 auto res
= isl_union_map_lex_lt_at_multi_union_pw_aff(copy(), mupa
.release());
13711 return manage(res
);
13714 isl::union_map
union_map::lex_lt_union_map(isl::union_map umap2
) const {
13715 auto res
= isl_union_map_lex_lt_union_map(copy(), umap2
.release());
13716 return manage(res
);
13719 isl::union_map
union_map::lexmax() const {
13720 auto res
= isl_union_map_lexmax(copy());
13721 return manage(res
);
13724 isl::union_map
union_map::lexmin() const {
13725 auto res
= isl_union_map_lexmin(copy());
13726 return manage(res
);
13729 isl::set
union_map::params() const {
13730 auto res
= isl_union_map_params(copy());
13731 return manage(res
);
13734 isl::boolean
union_map::plain_is_injective() const {
13735 auto res
= isl_union_map_plain_is_injective(get());
13736 return manage(res
);
13739 isl::union_map
union_map::polyhedral_hull() const {
13740 auto res
= isl_union_map_polyhedral_hull(copy());
13741 return manage(res
);
13744 isl::union_map
union_map::preimage_domain_multi_aff(isl::multi_aff ma
) const {
13745 auto res
= isl_union_map_preimage_domain_multi_aff(copy(), ma
.release());
13746 return manage(res
);
13749 isl::union_map
union_map::preimage_domain_multi_pw_aff(isl::multi_pw_aff mpa
) const {
13750 auto res
= isl_union_map_preimage_domain_multi_pw_aff(copy(), mpa
.release());
13751 return manage(res
);
13754 isl::union_map
union_map::preimage_domain_pw_multi_aff(isl::pw_multi_aff pma
) const {
13755 auto res
= isl_union_map_preimage_domain_pw_multi_aff(copy(), pma
.release());
13756 return manage(res
);
13759 isl::union_map
union_map::preimage_domain_union_pw_multi_aff(isl::union_pw_multi_aff upma
) const {
13760 auto res
= isl_union_map_preimage_domain_union_pw_multi_aff(copy(), upma
.release());
13761 return manage(res
);
13764 isl::union_map
union_map::preimage_range_multi_aff(isl::multi_aff ma
) const {
13765 auto res
= isl_union_map_preimage_range_multi_aff(copy(), ma
.release());
13766 return manage(res
);
13769 isl::union_map
union_map::preimage_range_pw_multi_aff(isl::pw_multi_aff pma
) const {
13770 auto res
= isl_union_map_preimage_range_pw_multi_aff(copy(), pma
.release());
13771 return manage(res
);
13774 isl::union_map
union_map::preimage_range_union_pw_multi_aff(isl::union_pw_multi_aff upma
) const {
13775 auto res
= isl_union_map_preimage_range_union_pw_multi_aff(copy(), upma
.release());
13776 return manage(res
);
13779 isl::union_map
union_map::product(isl::union_map umap2
) const {
13780 auto res
= isl_union_map_product(copy(), umap2
.release());
13781 return manage(res
);
13784 isl::union_map
union_map::project_out(isl::dim type
, unsigned int first
, unsigned int n
) const {
13785 auto res
= isl_union_map_project_out(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
13786 return manage(res
);
13789 isl::union_set
union_map::range() const {
13790 auto res
= isl_union_map_range(copy());
13791 return manage(res
);
13794 isl::union_map
union_map::range_curry() const {
13795 auto res
= isl_union_map_range_curry(copy());
13796 return manage(res
);
13799 isl::union_map
union_map::range_factor_domain() const {
13800 auto res
= isl_union_map_range_factor_domain(copy());
13801 return manage(res
);
13804 isl::union_map
union_map::range_factor_range() const {
13805 auto res
= isl_union_map_range_factor_range(copy());
13806 return manage(res
);
13809 isl::union_map
union_map::range_map() const {
13810 auto res
= isl_union_map_range_map(copy());
13811 return manage(res
);
13814 isl::union_map
union_map::range_product(isl::union_map umap2
) const {
13815 auto res
= isl_union_map_range_product(copy(), umap2
.release());
13816 return manage(res
);
13819 isl::union_map
union_map::remove_divs() const {
13820 auto res
= isl_union_map_remove_divs(copy());
13821 return manage(res
);
13824 isl::union_map
union_map::remove_redundancies() const {
13825 auto res
= isl_union_map_remove_redundancies(copy());
13826 return manage(res
);
13829 isl::union_map
union_map::reset_user() const {
13830 auto res
= isl_union_map_reset_user(copy());
13831 return manage(res
);
13834 isl::union_map
union_map::reverse() const {
13835 auto res
= isl_union_map_reverse(copy());
13836 return manage(res
);
13839 isl::basic_map
union_map::sample() const {
13840 auto res
= isl_union_map_sample(copy());
13841 return manage(res
);
13844 isl::union_map
union_map::simple_hull() const {
13845 auto res
= isl_union_map_simple_hull(copy());
13846 return manage(res
);
13849 isl::union_map
union_map::subtract(isl::union_map umap2
) const {
13850 auto res
= isl_union_map_subtract(copy(), umap2
.release());
13851 return manage(res
);
13854 isl::union_map
union_map::subtract_domain(isl::union_set dom
) const {
13855 auto res
= isl_union_map_subtract_domain(copy(), dom
.release());
13856 return manage(res
);
13859 isl::union_map
union_map::subtract_range(isl::union_set dom
) const {
13860 auto res
= isl_union_map_subtract_range(copy(), dom
.release());
13861 return manage(res
);
13864 isl::union_map
union_map::uncurry() const {
13865 auto res
= isl_union_map_uncurry(copy());
13866 return manage(res
);
13869 isl::union_map
union_map::unite(isl::union_map umap2
) const {
13870 auto res
= isl_union_map_union(copy(), umap2
.release());
13871 return manage(res
);
13874 isl::union_map
union_map::universe() const {
13875 auto res
= isl_union_map_universe(copy());
13876 return manage(res
);
13879 isl::union_set
union_map::wrap() const {
13880 auto res
= isl_union_map_wrap(copy());
13881 return manage(res
);
13884 isl::union_map
union_map::zip() const {
13885 auto res
= isl_union_map_zip(copy());
13886 return manage(res
);
13889 // implementations for isl::union_map_list
13890 isl::union_map_list
manage(__isl_take isl_union_map_list
*ptr
) {
13891 return union_map_list(ptr
);
13893 isl::union_map_list
manage_copy(__isl_keep isl_union_map_list
*ptr
) {
13894 return union_map_list(isl_union_map_list_copy(ptr
));
13896 isl::union_map_list
give(__isl_take isl_union_map_list
*ptr
) {
13897 return manage(ptr
);
13901 union_map_list::union_map_list()
13904 union_map_list::union_map_list(const isl::union_map_list
&obj
)
13905 : ptr(obj
.copy()) {}
13906 union_map_list::union_map_list(std::nullptr_t
)
13910 union_map_list::union_map_list(__isl_take isl_union_map_list
*ptr
)
13914 union_map_list
&union_map_list::operator=(isl::union_map_list obj
) {
13915 std::swap(this->ptr
, obj
.ptr
);
13919 union_map_list::~union_map_list() {
13921 isl_union_map_list_free(ptr
);
13924 __isl_give isl_union_map_list
*union_map_list::copy() const & {
13925 return isl_union_map_list_copy(ptr
);
13928 __isl_keep isl_union_map_list
*union_map_list::get() const {
13932 __isl_give isl_union_map_list
*union_map_list::release() {
13933 isl_union_map_list
*tmp
= ptr
;
13938 bool union_map_list::is_null() const {
13939 return ptr
== nullptr;
13941 __isl_keep isl_union_map_list
*union_map_list::keep() const {
13945 __isl_give isl_union_map_list
*union_map_list::take() {
13949 union_map_list::operator bool() const {
13954 isl::ctx
union_map_list::get_ctx() const {
13955 return isl::ctx(isl_union_map_list_get_ctx(ptr
));
13958 void union_map_list::dump() const {
13959 isl_union_map_list_dump(get());
13964 // implementations for isl::union_pw_aff
13965 isl::union_pw_aff
manage(__isl_take isl_union_pw_aff
*ptr
) {
13966 return union_pw_aff(ptr
);
13968 isl::union_pw_aff
manage_copy(__isl_keep isl_union_pw_aff
*ptr
) {
13969 return union_pw_aff(isl_union_pw_aff_copy(ptr
));
13971 isl::union_pw_aff
give(__isl_take isl_union_pw_aff
*ptr
) {
13972 return manage(ptr
);
13976 union_pw_aff::union_pw_aff()
13979 union_pw_aff::union_pw_aff(const isl::union_pw_aff
&obj
)
13980 : ptr(obj
.copy()) {}
13981 union_pw_aff::union_pw_aff(std::nullptr_t
)
13985 union_pw_aff::union_pw_aff(__isl_take isl_union_pw_aff
*ptr
)
13988 union_pw_aff::union_pw_aff(isl::pw_aff pa
) {
13989 auto res
= isl_union_pw_aff_from_pw_aff(pa
.release());
13992 union_pw_aff::union_pw_aff(isl::union_set domain
, isl::val v
) {
13993 auto res
= isl_union_pw_aff_val_on_domain(domain
.release(), v
.release());
13996 union_pw_aff::union_pw_aff(isl::ctx ctx
, const std::string
&str
) {
13997 auto res
= isl_union_pw_aff_read_from_str(ctx
.release(), str
.c_str());
14001 union_pw_aff
&union_pw_aff::operator=(isl::union_pw_aff obj
) {
14002 std::swap(this->ptr
, obj
.ptr
);
14006 union_pw_aff::~union_pw_aff() {
14008 isl_union_pw_aff_free(ptr
);
14011 __isl_give isl_union_pw_aff
*union_pw_aff::copy() const & {
14012 return isl_union_pw_aff_copy(ptr
);
14015 __isl_keep isl_union_pw_aff
*union_pw_aff::get() const {
14019 __isl_give isl_union_pw_aff
*union_pw_aff::release() {
14020 isl_union_pw_aff
*tmp
= ptr
;
14025 bool union_pw_aff::is_null() const {
14026 return ptr
== nullptr;
14028 __isl_keep isl_union_pw_aff
*union_pw_aff::keep() const {
14032 __isl_give isl_union_pw_aff
*union_pw_aff::take() {
14036 union_pw_aff::operator bool() const {
14041 isl::ctx
union_pw_aff::get_ctx() const {
14042 return isl::ctx(isl_union_pw_aff_get_ctx(ptr
));
14044 std::string
union_pw_aff::to_str() const {
14045 char *Tmp
= isl_union_pw_aff_to_str(get());
14048 std::string
S(Tmp
);
14054 void union_pw_aff::dump() const {
14055 isl_union_pw_aff_dump(get());
14059 isl::union_pw_aff
union_pw_aff::add(isl::union_pw_aff upa2
) const {
14060 auto res
= isl_union_pw_aff_add(copy(), upa2
.release());
14061 return manage(res
);
14064 isl::union_pw_aff
union_pw_aff::add_pw_aff(isl::pw_aff pa
) const {
14065 auto res
= isl_union_pw_aff_add_pw_aff(copy(), pa
.release());
14066 return manage(res
);
14069 isl::union_pw_aff
union_pw_aff::aff_on_domain(isl::union_set domain
, isl::aff aff
) {
14070 auto res
= isl_union_pw_aff_aff_on_domain(domain
.release(), aff
.release());
14071 return manage(res
);
14074 isl::union_pw_aff
union_pw_aff::align_params(isl::space model
) const {
14075 auto res
= isl_union_pw_aff_align_params(copy(), model
.release());
14076 return manage(res
);
14079 isl::union_pw_aff
union_pw_aff::coalesce() const {
14080 auto res
= isl_union_pw_aff_coalesce(copy());
14081 return manage(res
);
14084 unsigned int union_pw_aff::dim(isl::dim type
) const {
14085 auto res
= isl_union_pw_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
14089 isl::union_set
union_pw_aff::domain() const {
14090 auto res
= isl_union_pw_aff_domain(copy());
14091 return manage(res
);
14094 isl::union_pw_aff
union_pw_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
14095 auto res
= isl_union_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
14096 return manage(res
);
14099 isl::union_pw_aff
union_pw_aff::empty(isl::space space
) {
14100 auto res
= isl_union_pw_aff_empty(space
.release());
14101 return manage(res
);
14104 isl::pw_aff
union_pw_aff::extract_pw_aff(isl::space space
) const {
14105 auto res
= isl_union_pw_aff_extract_pw_aff(get(), space
.release());
14106 return manage(res
);
14109 int union_pw_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
14110 auto res
= isl_union_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
14114 isl::union_pw_aff
union_pw_aff::floor() const {
14115 auto res
= isl_union_pw_aff_floor(copy());
14116 return manage(res
);
14119 isl::stat
union_pw_aff::foreach_pw_aff(const std::function
<isl::stat(isl::pw_aff
)> &fn
) const {
14121 auto fn_lambda
= [](isl_pw_aff
*arg_0
, void *arg_1
) -> isl_stat
{
14122 auto *func
= *static_cast<const std::function
<isl::stat(isl::pw_aff
)> **>(arg_1
);
14123 stat ret
= (*func
)(isl::manage(arg_0
));
14124 return isl_stat(ret
);
14126 auto res
= isl_union_pw_aff_foreach_pw_aff(get(), fn_lambda
, &fn_p
);
14127 return isl::stat(res
);
14130 isl::space
union_pw_aff::get_space() const {
14131 auto res
= isl_union_pw_aff_get_space(get());
14132 return manage(res
);
14135 isl::union_pw_aff
union_pw_aff::gist(isl::union_set context
) const {
14136 auto res
= isl_union_pw_aff_gist(copy(), context
.release());
14137 return manage(res
);
14140 isl::union_pw_aff
union_pw_aff::gist_params(isl::set context
) const {
14141 auto res
= isl_union_pw_aff_gist_params(copy(), context
.release());
14142 return manage(res
);
14145 isl::union_pw_aff
union_pw_aff::intersect_domain(isl::union_set uset
) const {
14146 auto res
= isl_union_pw_aff_intersect_domain(copy(), uset
.release());
14147 return manage(res
);
14150 isl::union_pw_aff
union_pw_aff::intersect_params(isl::set set
) const {
14151 auto res
= isl_union_pw_aff_intersect_params(copy(), set
.release());
14152 return manage(res
);
14155 isl::boolean
union_pw_aff::involves_nan() const {
14156 auto res
= isl_union_pw_aff_involves_nan(get());
14157 return manage(res
);
14160 isl::union_pw_aff
union_pw_aff::mod_val(isl::val f
) const {
14161 auto res
= isl_union_pw_aff_mod_val(copy(), f
.release());
14162 return manage(res
);
14165 isl::union_pw_aff
union_pw_aff::neg() const {
14166 auto res
= isl_union_pw_aff_neg(copy());
14167 return manage(res
);
14170 isl::boolean
union_pw_aff::plain_is_equal(const isl::union_pw_aff
&upa2
) const {
14171 auto res
= isl_union_pw_aff_plain_is_equal(get(), upa2
.get());
14172 return manage(res
);
14175 isl::union_pw_aff
union_pw_aff::pullback(isl::union_pw_multi_aff upma
) const {
14176 auto res
= isl_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma
.release());
14177 return manage(res
);
14180 isl::union_pw_aff
union_pw_aff::reset_user() const {
14181 auto res
= isl_union_pw_aff_reset_user(copy());
14182 return manage(res
);
14185 isl::union_pw_aff
union_pw_aff::scale_down_val(isl::val v
) const {
14186 auto res
= isl_union_pw_aff_scale_down_val(copy(), v
.release());
14187 return manage(res
);
14190 isl::union_pw_aff
union_pw_aff::scale_val(isl::val v
) const {
14191 auto res
= isl_union_pw_aff_scale_val(copy(), v
.release());
14192 return manage(res
);
14195 isl::union_pw_aff
union_pw_aff::sub(isl::union_pw_aff upa2
) const {
14196 auto res
= isl_union_pw_aff_sub(copy(), upa2
.release());
14197 return manage(res
);
14200 isl::union_pw_aff
union_pw_aff::subtract_domain(isl::union_set uset
) const {
14201 auto res
= isl_union_pw_aff_subtract_domain(copy(), uset
.release());
14202 return manage(res
);
14205 isl::union_pw_aff
union_pw_aff::union_add(isl::union_pw_aff upa2
) const {
14206 auto res
= isl_union_pw_aff_union_add(copy(), upa2
.release());
14207 return manage(res
);
14210 isl::union_set
union_pw_aff::zero_union_set() const {
14211 auto res
= isl_union_pw_aff_zero_union_set(copy());
14212 return manage(res
);
14215 // implementations for isl::union_pw_aff_list
14216 isl::union_pw_aff_list
manage(__isl_take isl_union_pw_aff_list
*ptr
) {
14217 return union_pw_aff_list(ptr
);
14219 isl::union_pw_aff_list
manage_copy(__isl_keep isl_union_pw_aff_list
*ptr
) {
14220 return union_pw_aff_list(isl_union_pw_aff_list_copy(ptr
));
14222 isl::union_pw_aff_list
give(__isl_take isl_union_pw_aff_list
*ptr
) {
14223 return manage(ptr
);
14227 union_pw_aff_list::union_pw_aff_list()
14230 union_pw_aff_list::union_pw_aff_list(const isl::union_pw_aff_list
&obj
)
14231 : ptr(obj
.copy()) {}
14232 union_pw_aff_list::union_pw_aff_list(std::nullptr_t
)
14236 union_pw_aff_list::union_pw_aff_list(__isl_take isl_union_pw_aff_list
*ptr
)
14240 union_pw_aff_list
&union_pw_aff_list::operator=(isl::union_pw_aff_list obj
) {
14241 std::swap(this->ptr
, obj
.ptr
);
14245 union_pw_aff_list::~union_pw_aff_list() {
14247 isl_union_pw_aff_list_free(ptr
);
14250 __isl_give isl_union_pw_aff_list
*union_pw_aff_list::copy() const & {
14251 return isl_union_pw_aff_list_copy(ptr
);
14254 __isl_keep isl_union_pw_aff_list
*union_pw_aff_list::get() const {
14258 __isl_give isl_union_pw_aff_list
*union_pw_aff_list::release() {
14259 isl_union_pw_aff_list
*tmp
= ptr
;
14264 bool union_pw_aff_list::is_null() const {
14265 return ptr
== nullptr;
14267 __isl_keep isl_union_pw_aff_list
*union_pw_aff_list::keep() const {
14271 __isl_give isl_union_pw_aff_list
*union_pw_aff_list::take() {
14275 union_pw_aff_list::operator bool() const {
14280 isl::ctx
union_pw_aff_list::get_ctx() const {
14281 return isl::ctx(isl_union_pw_aff_list_get_ctx(ptr
));
14284 void union_pw_aff_list::dump() const {
14285 isl_union_pw_aff_list_dump(get());
14290 // implementations for isl::union_pw_multi_aff
14291 isl::union_pw_multi_aff
manage(__isl_take isl_union_pw_multi_aff
*ptr
) {
14292 return union_pw_multi_aff(ptr
);
14294 isl::union_pw_multi_aff
manage_copy(__isl_keep isl_union_pw_multi_aff
*ptr
) {
14295 return union_pw_multi_aff(isl_union_pw_multi_aff_copy(ptr
));
14297 isl::union_pw_multi_aff
give(__isl_take isl_union_pw_multi_aff
*ptr
) {
14298 return manage(ptr
);
14302 union_pw_multi_aff::union_pw_multi_aff()
14305 union_pw_multi_aff::union_pw_multi_aff(const isl::union_pw_multi_aff
&obj
)
14306 : ptr(obj
.copy()) {}
14307 union_pw_multi_aff::union_pw_multi_aff(std::nullptr_t
)
14311 union_pw_multi_aff::union_pw_multi_aff(__isl_take isl_union_pw_multi_aff
*ptr
)
14314 union_pw_multi_aff::union_pw_multi_aff(isl::pw_multi_aff pma
) {
14315 auto res
= isl_union_pw_multi_aff_from_pw_multi_aff(pma
.release());
14318 union_pw_multi_aff::union_pw_multi_aff(isl::union_set uset
) {
14319 auto res
= isl_union_pw_multi_aff_from_domain(uset
.release());
14322 union_pw_multi_aff::union_pw_multi_aff(isl::union_map umap
) {
14323 auto res
= isl_union_pw_multi_aff_from_union_map(umap
.release());
14326 union_pw_multi_aff::union_pw_multi_aff(isl::ctx ctx
, const std::string
&str
) {
14327 auto res
= isl_union_pw_multi_aff_read_from_str(ctx
.release(), str
.c_str());
14330 union_pw_multi_aff::union_pw_multi_aff(isl::union_pw_aff upa
) {
14331 auto res
= isl_union_pw_multi_aff_from_union_pw_aff(upa
.release());
14335 union_pw_multi_aff
&union_pw_multi_aff::operator=(isl::union_pw_multi_aff obj
) {
14336 std::swap(this->ptr
, obj
.ptr
);
14340 union_pw_multi_aff::~union_pw_multi_aff() {
14342 isl_union_pw_multi_aff_free(ptr
);
14345 __isl_give isl_union_pw_multi_aff
*union_pw_multi_aff::copy() const & {
14346 return isl_union_pw_multi_aff_copy(ptr
);
14349 __isl_keep isl_union_pw_multi_aff
*union_pw_multi_aff::get() const {
14353 __isl_give isl_union_pw_multi_aff
*union_pw_multi_aff::release() {
14354 isl_union_pw_multi_aff
*tmp
= ptr
;
14359 bool union_pw_multi_aff::is_null() const {
14360 return ptr
== nullptr;
14362 __isl_keep isl_union_pw_multi_aff
*union_pw_multi_aff::keep() const {
14366 __isl_give isl_union_pw_multi_aff
*union_pw_multi_aff::take() {
14370 union_pw_multi_aff::operator bool() const {
14375 isl::ctx
union_pw_multi_aff::get_ctx() const {
14376 return isl::ctx(isl_union_pw_multi_aff_get_ctx(ptr
));
14378 std::string
union_pw_multi_aff::to_str() const {
14379 char *Tmp
= isl_union_pw_multi_aff_to_str(get());
14382 std::string
S(Tmp
);
14388 void union_pw_multi_aff::dump() const {
14389 isl_union_pw_multi_aff_dump(get());
14393 isl::union_pw_multi_aff
union_pw_multi_aff::add(isl::union_pw_multi_aff upma2
) const {
14394 auto res
= isl_union_pw_multi_aff_add(copy(), upma2
.release());
14395 return manage(res
);
14398 isl::union_pw_multi_aff
union_pw_multi_aff::add_pw_multi_aff(isl::pw_multi_aff pma
) const {
14399 auto res
= isl_union_pw_multi_aff_add_pw_multi_aff(copy(), pma
.release());
14400 return manage(res
);
14403 isl::union_pw_multi_aff
union_pw_multi_aff::align_params(isl::space model
) const {
14404 auto res
= isl_union_pw_multi_aff_align_params(copy(), model
.release());
14405 return manage(res
);
14408 isl::union_pw_multi_aff
union_pw_multi_aff::coalesce() const {
14409 auto res
= isl_union_pw_multi_aff_coalesce(copy());
14410 return manage(res
);
14413 unsigned int union_pw_multi_aff::dim(isl::dim type
) const {
14414 auto res
= isl_union_pw_multi_aff_dim(get(), static_cast<enum isl_dim_type
>(type
));
14418 isl::union_set
union_pw_multi_aff::domain() const {
14419 auto res
= isl_union_pw_multi_aff_domain(copy());
14420 return manage(res
);
14423 isl::union_pw_multi_aff
union_pw_multi_aff::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
14424 auto res
= isl_union_pw_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
14425 return manage(res
);
14428 isl::union_pw_multi_aff
union_pw_multi_aff::empty(isl::space space
) {
14429 auto res
= isl_union_pw_multi_aff_empty(space
.release());
14430 return manage(res
);
14433 isl::pw_multi_aff
union_pw_multi_aff::extract_pw_multi_aff(isl::space space
) const {
14434 auto res
= isl_union_pw_multi_aff_extract_pw_multi_aff(get(), space
.release());
14435 return manage(res
);
14438 int union_pw_multi_aff::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
14439 auto res
= isl_union_pw_multi_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
14443 isl::union_pw_multi_aff
union_pw_multi_aff::flat_range_product(isl::union_pw_multi_aff upma2
) const {
14444 auto res
= isl_union_pw_multi_aff_flat_range_product(copy(), upma2
.release());
14445 return manage(res
);
14448 isl::stat
union_pw_multi_aff::foreach_pw_multi_aff(const std::function
<isl::stat(isl::pw_multi_aff
)> &fn
) const {
14450 auto fn_lambda
= [](isl_pw_multi_aff
*arg_0
, void *arg_1
) -> isl_stat
{
14451 auto *func
= *static_cast<const std::function
<isl::stat(isl::pw_multi_aff
)> **>(arg_1
);
14452 stat ret
= (*func
)(isl::manage(arg_0
));
14453 return isl_stat(ret
);
14455 auto res
= isl_union_pw_multi_aff_foreach_pw_multi_aff(get(), fn_lambda
, &fn_p
);
14456 return isl::stat(res
);
14459 isl::union_pw_multi_aff
union_pw_multi_aff::from_aff(isl::aff aff
) {
14460 auto res
= isl_union_pw_multi_aff_from_aff(aff
.release());
14461 return manage(res
);
14464 isl::union_pw_multi_aff
union_pw_multi_aff::from_multi_union_pw_aff(isl::multi_union_pw_aff mupa
) {
14465 auto res
= isl_union_pw_multi_aff_from_multi_union_pw_aff(mupa
.release());
14466 return manage(res
);
14469 isl::union_pw_multi_aff
union_pw_multi_aff::from_union_set(isl::union_set uset
) {
14470 auto res
= isl_union_pw_multi_aff_from_union_set(uset
.release());
14471 return manage(res
);
14474 isl::space
union_pw_multi_aff::get_space() const {
14475 auto res
= isl_union_pw_multi_aff_get_space(get());
14476 return manage(res
);
14479 isl::union_pw_aff
union_pw_multi_aff::get_union_pw_aff(int pos
) const {
14480 auto res
= isl_union_pw_multi_aff_get_union_pw_aff(get(), pos
);
14481 return manage(res
);
14484 isl::union_pw_multi_aff
union_pw_multi_aff::gist(isl::union_set context
) const {
14485 auto res
= isl_union_pw_multi_aff_gist(copy(), context
.release());
14486 return manage(res
);
14489 isl::union_pw_multi_aff
union_pw_multi_aff::gist_params(isl::set context
) const {
14490 auto res
= isl_union_pw_multi_aff_gist_params(copy(), context
.release());
14491 return manage(res
);
14494 isl::union_pw_multi_aff
union_pw_multi_aff::intersect_domain(isl::union_set uset
) const {
14495 auto res
= isl_union_pw_multi_aff_intersect_domain(copy(), uset
.release());
14496 return manage(res
);
14499 isl::union_pw_multi_aff
union_pw_multi_aff::intersect_params(isl::set set
) const {
14500 auto res
= isl_union_pw_multi_aff_intersect_params(copy(), set
.release());
14501 return manage(res
);
14504 isl::boolean
union_pw_multi_aff::involves_nan() const {
14505 auto res
= isl_union_pw_multi_aff_involves_nan(get());
14506 return manage(res
);
14509 isl::union_pw_multi_aff
union_pw_multi_aff::multi_val_on_domain(isl::union_set domain
, isl::multi_val mv
) {
14510 auto res
= isl_union_pw_multi_aff_multi_val_on_domain(domain
.release(), mv
.release());
14511 return manage(res
);
14514 isl::union_pw_multi_aff
union_pw_multi_aff::neg() const {
14515 auto res
= isl_union_pw_multi_aff_neg(copy());
14516 return manage(res
);
14519 isl::boolean
union_pw_multi_aff::plain_is_equal(const isl::union_pw_multi_aff
&upma2
) const {
14520 auto res
= isl_union_pw_multi_aff_plain_is_equal(get(), upma2
.get());
14521 return manage(res
);
14524 isl::union_pw_multi_aff
union_pw_multi_aff::pullback(isl::union_pw_multi_aff upma2
) const {
14525 auto res
= isl_union_pw_multi_aff_pullback_union_pw_multi_aff(copy(), upma2
.release());
14526 return manage(res
);
14529 isl::union_pw_multi_aff
union_pw_multi_aff::reset_user() const {
14530 auto res
= isl_union_pw_multi_aff_reset_user(copy());
14531 return manage(res
);
14534 isl::union_pw_multi_aff
union_pw_multi_aff::scale_down_val(isl::val val
) const {
14535 auto res
= isl_union_pw_multi_aff_scale_down_val(copy(), val
.release());
14536 return manage(res
);
14539 isl::union_pw_multi_aff
union_pw_multi_aff::scale_multi_val(isl::multi_val mv
) const {
14540 auto res
= isl_union_pw_multi_aff_scale_multi_val(copy(), mv
.release());
14541 return manage(res
);
14544 isl::union_pw_multi_aff
union_pw_multi_aff::scale_val(isl::val val
) const {
14545 auto res
= isl_union_pw_multi_aff_scale_val(copy(), val
.release());
14546 return manage(res
);
14549 isl::union_pw_multi_aff
union_pw_multi_aff::sub(isl::union_pw_multi_aff upma2
) const {
14550 auto res
= isl_union_pw_multi_aff_sub(copy(), upma2
.release());
14551 return manage(res
);
14554 isl::union_pw_multi_aff
union_pw_multi_aff::subtract_domain(isl::union_set uset
) const {
14555 auto res
= isl_union_pw_multi_aff_subtract_domain(copy(), uset
.release());
14556 return manage(res
);
14559 isl::union_pw_multi_aff
union_pw_multi_aff::union_add(isl::union_pw_multi_aff upma2
) const {
14560 auto res
= isl_union_pw_multi_aff_union_add(copy(), upma2
.release());
14561 return manage(res
);
14564 // implementations for isl::union_pw_multi_aff_list
14565 isl::union_pw_multi_aff_list
manage(__isl_take isl_union_pw_multi_aff_list
*ptr
) {
14566 return union_pw_multi_aff_list(ptr
);
14568 isl::union_pw_multi_aff_list
manage_copy(__isl_keep isl_union_pw_multi_aff_list
*ptr
) {
14569 return union_pw_multi_aff_list(isl_union_pw_multi_aff_list_copy(ptr
));
14571 isl::union_pw_multi_aff_list
give(__isl_take isl_union_pw_multi_aff_list
*ptr
) {
14572 return manage(ptr
);
14576 union_pw_multi_aff_list::union_pw_multi_aff_list()
14579 union_pw_multi_aff_list::union_pw_multi_aff_list(const isl::union_pw_multi_aff_list
&obj
)
14580 : ptr(obj
.copy()) {}
14581 union_pw_multi_aff_list::union_pw_multi_aff_list(std::nullptr_t
)
14585 union_pw_multi_aff_list::union_pw_multi_aff_list(__isl_take isl_union_pw_multi_aff_list
*ptr
)
14589 union_pw_multi_aff_list
&union_pw_multi_aff_list::operator=(isl::union_pw_multi_aff_list obj
) {
14590 std::swap(this->ptr
, obj
.ptr
);
14594 union_pw_multi_aff_list::~union_pw_multi_aff_list() {
14596 isl_union_pw_multi_aff_list_free(ptr
);
14599 __isl_give isl_union_pw_multi_aff_list
*union_pw_multi_aff_list::copy() const & {
14600 return isl_union_pw_multi_aff_list_copy(ptr
);
14603 __isl_keep isl_union_pw_multi_aff_list
*union_pw_multi_aff_list::get() const {
14607 __isl_give isl_union_pw_multi_aff_list
*union_pw_multi_aff_list::release() {
14608 isl_union_pw_multi_aff_list
*tmp
= ptr
;
14613 bool union_pw_multi_aff_list::is_null() const {
14614 return ptr
== nullptr;
14616 __isl_keep isl_union_pw_multi_aff_list
*union_pw_multi_aff_list::keep() const {
14620 __isl_give isl_union_pw_multi_aff_list
*union_pw_multi_aff_list::take() {
14624 union_pw_multi_aff_list::operator bool() const {
14629 isl::ctx
union_pw_multi_aff_list::get_ctx() const {
14630 return isl::ctx(isl_union_pw_multi_aff_list_get_ctx(ptr
));
14633 void union_pw_multi_aff_list::dump() const {
14634 isl_union_pw_multi_aff_list_dump(get());
14639 // implementations for isl::union_pw_qpolynomial
14640 isl::union_pw_qpolynomial
manage(__isl_take isl_union_pw_qpolynomial
*ptr
) {
14641 return union_pw_qpolynomial(ptr
);
14643 isl::union_pw_qpolynomial
manage_copy(__isl_keep isl_union_pw_qpolynomial
*ptr
) {
14644 return union_pw_qpolynomial(isl_union_pw_qpolynomial_copy(ptr
));
14646 isl::union_pw_qpolynomial
give(__isl_take isl_union_pw_qpolynomial
*ptr
) {
14647 return manage(ptr
);
14651 union_pw_qpolynomial::union_pw_qpolynomial()
14654 union_pw_qpolynomial::union_pw_qpolynomial(const isl::union_pw_qpolynomial
&obj
)
14655 : ptr(obj
.copy()) {}
14656 union_pw_qpolynomial::union_pw_qpolynomial(std::nullptr_t
)
14660 union_pw_qpolynomial::union_pw_qpolynomial(__isl_take isl_union_pw_qpolynomial
*ptr
)
14663 union_pw_qpolynomial::union_pw_qpolynomial(isl::ctx ctx
, const std::string
&str
) {
14664 auto res
= isl_union_pw_qpolynomial_read_from_str(ctx
.release(), str
.c_str());
14668 union_pw_qpolynomial
&union_pw_qpolynomial::operator=(isl::union_pw_qpolynomial obj
) {
14669 std::swap(this->ptr
, obj
.ptr
);
14673 union_pw_qpolynomial::~union_pw_qpolynomial() {
14675 isl_union_pw_qpolynomial_free(ptr
);
14678 __isl_give isl_union_pw_qpolynomial
*union_pw_qpolynomial::copy() const & {
14679 return isl_union_pw_qpolynomial_copy(ptr
);
14682 __isl_keep isl_union_pw_qpolynomial
*union_pw_qpolynomial::get() const {
14686 __isl_give isl_union_pw_qpolynomial
*union_pw_qpolynomial::release() {
14687 isl_union_pw_qpolynomial
*tmp
= ptr
;
14692 bool union_pw_qpolynomial::is_null() const {
14693 return ptr
== nullptr;
14695 __isl_keep isl_union_pw_qpolynomial
*union_pw_qpolynomial::keep() const {
14699 __isl_give isl_union_pw_qpolynomial
*union_pw_qpolynomial::take() {
14703 union_pw_qpolynomial::operator bool() const {
14708 isl::ctx
union_pw_qpolynomial::get_ctx() const {
14709 return isl::ctx(isl_union_pw_qpolynomial_get_ctx(ptr
));
14711 std::string
union_pw_qpolynomial::to_str() const {
14712 char *Tmp
= isl_union_pw_qpolynomial_to_str(get());
14715 std::string
S(Tmp
);
14722 isl::union_pw_qpolynomial
union_pw_qpolynomial::add(isl::union_pw_qpolynomial upwqp2
) const {
14723 auto res
= isl_union_pw_qpolynomial_add(copy(), upwqp2
.release());
14724 return manage(res
);
14727 isl::union_pw_qpolynomial
union_pw_qpolynomial::add_pw_qpolynomial(isl::pw_qpolynomial pwqp
) const {
14728 auto res
= isl_union_pw_qpolynomial_add_pw_qpolynomial(copy(), pwqp
.release());
14729 return manage(res
);
14732 isl::union_pw_qpolynomial
union_pw_qpolynomial::align_params(isl::space model
) const {
14733 auto res
= isl_union_pw_qpolynomial_align_params(copy(), model
.release());
14734 return manage(res
);
14737 isl::union_pw_qpolynomial
union_pw_qpolynomial::coalesce() const {
14738 auto res
= isl_union_pw_qpolynomial_coalesce(copy());
14739 return manage(res
);
14742 unsigned int union_pw_qpolynomial::dim(isl::dim type
) const {
14743 auto res
= isl_union_pw_qpolynomial_dim(get(), static_cast<enum isl_dim_type
>(type
));
14747 isl::union_set
union_pw_qpolynomial::domain() const {
14748 auto res
= isl_union_pw_qpolynomial_domain(copy());
14749 return manage(res
);
14752 isl::union_pw_qpolynomial
union_pw_qpolynomial::drop_dims(isl::dim type
, unsigned int first
, unsigned int n
) const {
14753 auto res
= isl_union_pw_qpolynomial_drop_dims(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
14754 return manage(res
);
14757 isl::val
union_pw_qpolynomial::eval(isl::point pnt
) const {
14758 auto res
= isl_union_pw_qpolynomial_eval(copy(), pnt
.release());
14759 return manage(res
);
14762 isl::pw_qpolynomial
union_pw_qpolynomial::extract_pw_qpolynomial(isl::space dim
) const {
14763 auto res
= isl_union_pw_qpolynomial_extract_pw_qpolynomial(get(), dim
.release());
14764 return manage(res
);
14767 int union_pw_qpolynomial::find_dim_by_name(isl::dim type
, const std::string
&name
) const {
14768 auto res
= isl_union_pw_qpolynomial_find_dim_by_name(get(), static_cast<enum isl_dim_type
>(type
), name
.c_str());
14772 isl::stat
union_pw_qpolynomial::foreach_pw_qpolynomial(const std::function
<isl::stat(isl::pw_qpolynomial
)> &fn
) const {
14774 auto fn_lambda
= [](isl_pw_qpolynomial
*arg_0
, void *arg_1
) -> isl_stat
{
14775 auto *func
= *static_cast<const std::function
<isl::stat(isl::pw_qpolynomial
)> **>(arg_1
);
14776 stat ret
= (*func
)(isl::manage(arg_0
));
14777 return isl_stat(ret
);
14779 auto res
= isl_union_pw_qpolynomial_foreach_pw_qpolynomial(get(), fn_lambda
, &fn_p
);
14780 return isl::stat(res
);
14783 isl::union_pw_qpolynomial
union_pw_qpolynomial::from_pw_qpolynomial(isl::pw_qpolynomial pwqp
) {
14784 auto res
= isl_union_pw_qpolynomial_from_pw_qpolynomial(pwqp
.release());
14785 return manage(res
);
14788 isl::space
union_pw_qpolynomial::get_space() const {
14789 auto res
= isl_union_pw_qpolynomial_get_space(get());
14790 return manage(res
);
14793 isl::union_pw_qpolynomial
union_pw_qpolynomial::gist(isl::union_set context
) const {
14794 auto res
= isl_union_pw_qpolynomial_gist(copy(), context
.release());
14795 return manage(res
);
14798 isl::union_pw_qpolynomial
union_pw_qpolynomial::gist_params(isl::set context
) const {
14799 auto res
= isl_union_pw_qpolynomial_gist_params(copy(), context
.release());
14800 return manage(res
);
14803 isl::union_pw_qpolynomial
union_pw_qpolynomial::intersect_domain(isl::union_set uset
) const {
14804 auto res
= isl_union_pw_qpolynomial_intersect_domain(copy(), uset
.release());
14805 return manage(res
);
14808 isl::union_pw_qpolynomial
union_pw_qpolynomial::intersect_params(isl::set set
) const {
14809 auto res
= isl_union_pw_qpolynomial_intersect_params(copy(), set
.release());
14810 return manage(res
);
14813 isl::boolean
union_pw_qpolynomial::involves_nan() const {
14814 auto res
= isl_union_pw_qpolynomial_involves_nan(get());
14815 return manage(res
);
14818 isl::union_pw_qpolynomial
union_pw_qpolynomial::mul(isl::union_pw_qpolynomial upwqp2
) const {
14819 auto res
= isl_union_pw_qpolynomial_mul(copy(), upwqp2
.release());
14820 return manage(res
);
14823 isl::union_pw_qpolynomial
union_pw_qpolynomial::neg() const {
14824 auto res
= isl_union_pw_qpolynomial_neg(copy());
14825 return manage(res
);
14828 isl::boolean
union_pw_qpolynomial::plain_is_equal(const isl::union_pw_qpolynomial
&upwqp2
) const {
14829 auto res
= isl_union_pw_qpolynomial_plain_is_equal(get(), upwqp2
.get());
14830 return manage(res
);
14833 isl::union_pw_qpolynomial
union_pw_qpolynomial::reset_user() const {
14834 auto res
= isl_union_pw_qpolynomial_reset_user(copy());
14835 return manage(res
);
14838 isl::union_pw_qpolynomial
union_pw_qpolynomial::scale_down_val(isl::val v
) const {
14839 auto res
= isl_union_pw_qpolynomial_scale_down_val(copy(), v
.release());
14840 return manage(res
);
14843 isl::union_pw_qpolynomial
union_pw_qpolynomial::scale_val(isl::val v
) const {
14844 auto res
= isl_union_pw_qpolynomial_scale_val(copy(), v
.release());
14845 return manage(res
);
14848 isl::union_pw_qpolynomial
union_pw_qpolynomial::sub(isl::union_pw_qpolynomial upwqp2
) const {
14849 auto res
= isl_union_pw_qpolynomial_sub(copy(), upwqp2
.release());
14850 return manage(res
);
14853 isl::union_pw_qpolynomial
union_pw_qpolynomial::subtract_domain(isl::union_set uset
) const {
14854 auto res
= isl_union_pw_qpolynomial_subtract_domain(copy(), uset
.release());
14855 return manage(res
);
14858 isl::union_pw_qpolynomial
union_pw_qpolynomial::to_polynomial(int sign
) const {
14859 auto res
= isl_union_pw_qpolynomial_to_polynomial(copy(), sign
);
14860 return manage(res
);
14863 isl::union_pw_qpolynomial
union_pw_qpolynomial::zero(isl::space dim
) {
14864 auto res
= isl_union_pw_qpolynomial_zero(dim
.release());
14865 return manage(res
);
14868 // implementations for isl::union_set
14869 isl::union_set
manage(__isl_take isl_union_set
*ptr
) {
14870 return union_set(ptr
);
14872 isl::union_set
manage_copy(__isl_keep isl_union_set
*ptr
) {
14873 return union_set(isl_union_set_copy(ptr
));
14875 isl::union_set
give(__isl_take isl_union_set
*ptr
) {
14876 return manage(ptr
);
14880 union_set::union_set()
14883 union_set::union_set(const isl::union_set
&obj
)
14884 : ptr(obj
.copy()) {}
14885 union_set::union_set(std::nullptr_t
)
14889 union_set::union_set(__isl_take isl_union_set
*ptr
)
14892 union_set::union_set(isl::basic_set bset
) {
14893 auto res
= isl_union_set_from_basic_set(bset
.release());
14896 union_set::union_set(isl::set set
) {
14897 auto res
= isl_union_set_from_set(set
.release());
14900 union_set::union_set(isl::point pnt
) {
14901 auto res
= isl_union_set_from_point(pnt
.release());
14904 union_set::union_set(isl::ctx ctx
, const std::string
&str
) {
14905 auto res
= isl_union_set_read_from_str(ctx
.release(), str
.c_str());
14909 union_set
&union_set::operator=(isl::union_set obj
) {
14910 std::swap(this->ptr
, obj
.ptr
);
14914 union_set::~union_set() {
14916 isl_union_set_free(ptr
);
14919 __isl_give isl_union_set
*union_set::copy() const & {
14920 return isl_union_set_copy(ptr
);
14923 __isl_keep isl_union_set
*union_set::get() const {
14927 __isl_give isl_union_set
*union_set::release() {
14928 isl_union_set
*tmp
= ptr
;
14933 bool union_set::is_null() const {
14934 return ptr
== nullptr;
14936 __isl_keep isl_union_set
*union_set::keep() const {
14940 __isl_give isl_union_set
*union_set::take() {
14944 union_set::operator bool() const {
14949 isl::ctx
union_set::get_ctx() const {
14950 return isl::ctx(isl_union_set_get_ctx(ptr
));
14952 std::string
union_set::to_str() const {
14953 char *Tmp
= isl_union_set_to_str(get());
14956 std::string
S(Tmp
);
14962 void union_set::dump() const {
14963 isl_union_set_dump(get());
14967 isl::union_set
union_set::add_set(isl::set set
) const {
14968 auto res
= isl_union_set_add_set(copy(), set
.release());
14969 return manage(res
);
14972 isl::union_set
union_set::affine_hull() const {
14973 auto res
= isl_union_set_affine_hull(copy());
14974 return manage(res
);
14977 isl::union_set
union_set::align_params(isl::space model
) const {
14978 auto res
= isl_union_set_align_params(copy(), model
.release());
14979 return manage(res
);
14982 isl::union_set
union_set::apply(isl::union_map umap
) const {
14983 auto res
= isl_union_set_apply(copy(), umap
.release());
14984 return manage(res
);
14987 isl::union_set
union_set::coalesce() const {
14988 auto res
= isl_union_set_coalesce(copy());
14989 return manage(res
);
14992 isl::union_set
union_set::coefficients() const {
14993 auto res
= isl_union_set_coefficients(copy());
14994 return manage(res
);
14997 isl::schedule
union_set::compute_schedule(isl::union_map validity
, isl::union_map proximity
) const {
14998 auto res
= isl_union_set_compute_schedule(copy(), validity
.release(), proximity
.release());
14999 return manage(res
);
15002 isl::boolean
union_set::contains(const isl::space
&space
) const {
15003 auto res
= isl_union_set_contains(get(), space
.get());
15004 return manage(res
);
15007 isl::union_set
union_set::detect_equalities() const {
15008 auto res
= isl_union_set_detect_equalities(copy());
15009 return manage(res
);
15012 unsigned int union_set::dim(isl::dim type
) const {
15013 auto res
= isl_union_set_dim(get(), static_cast<enum isl_dim_type
>(type
));
15017 isl::union_set
union_set::empty(isl::space space
) {
15018 auto res
= isl_union_set_empty(space
.release());
15019 return manage(res
);
15022 isl::set
union_set::extract_set(isl::space dim
) const {
15023 auto res
= isl_union_set_extract_set(get(), dim
.release());
15024 return manage(res
);
15027 isl::stat
union_set::foreach_point(const std::function
<isl::stat(isl::point
)> &fn
) const {
15029 auto fn_lambda
= [](isl_point
*arg_0
, void *arg_1
) -> isl_stat
{
15030 auto *func
= *static_cast<const std::function
<isl::stat(isl::point
)> **>(arg_1
);
15031 stat ret
= (*func
)(isl::manage(arg_0
));
15032 return isl_stat(ret
);
15034 auto res
= isl_union_set_foreach_point(get(), fn_lambda
, &fn_p
);
15035 return isl::stat(res
);
15038 isl::stat
union_set::foreach_set(const std::function
<isl::stat(isl::set
)> &fn
) const {
15040 auto fn_lambda
= [](isl_set
*arg_0
, void *arg_1
) -> isl_stat
{
15041 auto *func
= *static_cast<const std::function
<isl::stat(isl::set
)> **>(arg_1
);
15042 stat ret
= (*func
)(isl::manage(arg_0
));
15043 return isl_stat(ret
);
15045 auto res
= isl_union_set_foreach_set(get(), fn_lambda
, &fn_p
);
15046 return isl::stat(res
);
15049 isl::basic_set_list
union_set::get_basic_set_list() const {
15050 auto res
= isl_union_set_get_basic_set_list(get());
15051 return manage(res
);
15054 uint32_t union_set::get_hash() const {
15055 auto res
= isl_union_set_get_hash(get());
15059 isl::space
union_set::get_space() const {
15060 auto res
= isl_union_set_get_space(get());
15061 return manage(res
);
15064 isl::union_set
union_set::gist(isl::union_set context
) const {
15065 auto res
= isl_union_set_gist(copy(), context
.release());
15066 return manage(res
);
15069 isl::union_set
union_set::gist_params(isl::set set
) const {
15070 auto res
= isl_union_set_gist_params(copy(), set
.release());
15071 return manage(res
);
15074 isl::union_map
union_set::identity() const {
15075 auto res
= isl_union_set_identity(copy());
15076 return manage(res
);
15079 isl::union_pw_multi_aff
union_set::identity_union_pw_multi_aff() const {
15080 auto res
= isl_union_set_identity_union_pw_multi_aff(copy());
15081 return manage(res
);
15084 isl::union_set
union_set::intersect(isl::union_set uset2
) const {
15085 auto res
= isl_union_set_intersect(copy(), uset2
.release());
15086 return manage(res
);
15089 isl::union_set
union_set::intersect_params(isl::set set
) const {
15090 auto res
= isl_union_set_intersect_params(copy(), set
.release());
15091 return manage(res
);
15094 isl::boolean
union_set::is_disjoint(const isl::union_set
&uset2
) const {
15095 auto res
= isl_union_set_is_disjoint(get(), uset2
.get());
15096 return manage(res
);
15099 isl::boolean
union_set::is_empty() const {
15100 auto res
= isl_union_set_is_empty(get());
15101 return manage(res
);
15104 isl::boolean
union_set::is_equal(const isl::union_set
&uset2
) const {
15105 auto res
= isl_union_set_is_equal(get(), uset2
.get());
15106 return manage(res
);
15109 isl::boolean
union_set::is_params() const {
15110 auto res
= isl_union_set_is_params(get());
15111 return manage(res
);
15114 isl::boolean
union_set::is_strict_subset(const isl::union_set
&uset2
) const {
15115 auto res
= isl_union_set_is_strict_subset(get(), uset2
.get());
15116 return manage(res
);
15119 isl::boolean
union_set::is_subset(const isl::union_set
&uset2
) const {
15120 auto res
= isl_union_set_is_subset(get(), uset2
.get());
15121 return manage(res
);
15124 isl::union_map
union_set::lex_ge_union_set(isl::union_set uset2
) const {
15125 auto res
= isl_union_set_lex_ge_union_set(copy(), uset2
.release());
15126 return manage(res
);
15129 isl::union_map
union_set::lex_gt_union_set(isl::union_set uset2
) const {
15130 auto res
= isl_union_set_lex_gt_union_set(copy(), uset2
.release());
15131 return manage(res
);
15134 isl::union_map
union_set::lex_le_union_set(isl::union_set uset2
) const {
15135 auto res
= isl_union_set_lex_le_union_set(copy(), uset2
.release());
15136 return manage(res
);
15139 isl::union_map
union_set::lex_lt_union_set(isl::union_set uset2
) const {
15140 auto res
= isl_union_set_lex_lt_union_set(copy(), uset2
.release());
15141 return manage(res
);
15144 isl::union_set
union_set::lexmax() const {
15145 auto res
= isl_union_set_lexmax(copy());
15146 return manage(res
);
15149 isl::union_set
union_set::lexmin() const {
15150 auto res
= isl_union_set_lexmin(copy());
15151 return manage(res
);
15154 isl::multi_val
union_set::min_multi_union_pw_aff(const isl::multi_union_pw_aff
&obj
) const {
15155 auto res
= isl_union_set_min_multi_union_pw_aff(get(), obj
.get());
15156 return manage(res
);
15159 isl::set
union_set::params() const {
15160 auto res
= isl_union_set_params(copy());
15161 return manage(res
);
15164 isl::union_set
union_set::polyhedral_hull() const {
15165 auto res
= isl_union_set_polyhedral_hull(copy());
15166 return manage(res
);
15169 isl::union_set
union_set::preimage(isl::multi_aff ma
) const {
15170 auto res
= isl_union_set_preimage_multi_aff(copy(), ma
.release());
15171 return manage(res
);
15174 isl::union_set
union_set::preimage(isl::pw_multi_aff pma
) const {
15175 auto res
= isl_union_set_preimage_pw_multi_aff(copy(), pma
.release());
15176 return manage(res
);
15179 isl::union_set
union_set::preimage(isl::union_pw_multi_aff upma
) const {
15180 auto res
= isl_union_set_preimage_union_pw_multi_aff(copy(), upma
.release());
15181 return manage(res
);
15184 isl::union_set
union_set::product(isl::union_set uset2
) const {
15185 auto res
= isl_union_set_product(copy(), uset2
.release());
15186 return manage(res
);
15189 isl::union_set
union_set::project_out(isl::dim type
, unsigned int first
, unsigned int n
) const {
15190 auto res
= isl_union_set_project_out(copy(), static_cast<enum isl_dim_type
>(type
), first
, n
);
15191 return manage(res
);
15194 isl::union_set
union_set::remove_divs() const {
15195 auto res
= isl_union_set_remove_divs(copy());
15196 return manage(res
);
15199 isl::union_set
union_set::remove_redundancies() const {
15200 auto res
= isl_union_set_remove_redundancies(copy());
15201 return manage(res
);
15204 isl::union_set
union_set::reset_user() const {
15205 auto res
= isl_union_set_reset_user(copy());
15206 return manage(res
);
15209 isl::basic_set
union_set::sample() const {
15210 auto res
= isl_union_set_sample(copy());
15211 return manage(res
);
15214 isl::point
union_set::sample_point() const {
15215 auto res
= isl_union_set_sample_point(copy());
15216 return manage(res
);
15219 isl::union_set
union_set::simple_hull() const {
15220 auto res
= isl_union_set_simple_hull(copy());
15221 return manage(res
);
15224 isl::union_set
union_set::solutions() const {
15225 auto res
= isl_union_set_solutions(copy());
15226 return manage(res
);
15229 isl::union_set
union_set::subtract(isl::union_set uset2
) const {
15230 auto res
= isl_union_set_subtract(copy(), uset2
.release());
15231 return manage(res
);
15234 isl::union_set
union_set::unite(isl::union_set uset2
) const {
15235 auto res
= isl_union_set_union(copy(), uset2
.release());
15236 return manage(res
);
15239 isl::union_set
union_set::universe() const {
15240 auto res
= isl_union_set_universe(copy());
15241 return manage(res
);
15244 isl::union_map
union_set::unwrap() const {
15245 auto res
= isl_union_set_unwrap(copy());
15246 return manage(res
);
15249 isl::union_map
union_set::wrapped_domain_map() const {
15250 auto res
= isl_union_set_wrapped_domain_map(copy());
15251 return manage(res
);
15254 // implementations for isl::union_set_list
15255 isl::union_set_list
manage(__isl_take isl_union_set_list
*ptr
) {
15256 return union_set_list(ptr
);
15258 isl::union_set_list
manage_copy(__isl_keep isl_union_set_list
*ptr
) {
15259 return union_set_list(isl_union_set_list_copy(ptr
));
15261 isl::union_set_list
give(__isl_take isl_union_set_list
*ptr
) {
15262 return manage(ptr
);
15266 union_set_list::union_set_list()
15269 union_set_list::union_set_list(const isl::union_set_list
&obj
)
15270 : ptr(obj
.copy()) {}
15271 union_set_list::union_set_list(std::nullptr_t
)
15275 union_set_list::union_set_list(__isl_take isl_union_set_list
*ptr
)
15279 union_set_list
&union_set_list::operator=(isl::union_set_list obj
) {
15280 std::swap(this->ptr
, obj
.ptr
);
15284 union_set_list::~union_set_list() {
15286 isl_union_set_list_free(ptr
);
15289 __isl_give isl_union_set_list
*union_set_list::copy() const & {
15290 return isl_union_set_list_copy(ptr
);
15293 __isl_keep isl_union_set_list
*union_set_list::get() const {
15297 __isl_give isl_union_set_list
*union_set_list::release() {
15298 isl_union_set_list
*tmp
= ptr
;
15303 bool union_set_list::is_null() const {
15304 return ptr
== nullptr;
15306 __isl_keep isl_union_set_list
*union_set_list::keep() const {
15310 __isl_give isl_union_set_list
*union_set_list::take() {
15314 union_set_list::operator bool() const {
15319 isl::ctx
union_set_list::get_ctx() const {
15320 return isl::ctx(isl_union_set_list_get_ctx(ptr
));
15323 void union_set_list::dump() const {
15324 isl_union_set_list_dump(get());
15329 // implementations for isl::val
15330 isl::val
manage(__isl_take isl_val
*ptr
) {
15333 isl::val
manage_copy(__isl_keep isl_val
*ptr
) {
15334 return val(isl_val_copy(ptr
));
15336 isl::val
give(__isl_take isl_val
*ptr
) {
15337 return manage(ptr
);
15344 val::val(const isl::val
&obj
)
15345 : ptr(obj
.copy()) {}
15346 val::val(std::nullptr_t
)
15350 val::val(__isl_take isl_val
*ptr
)
15353 val::val(isl::ctx ctx
, long i
) {
15354 auto res
= isl_val_int_from_si(ctx
.release(), i
);
15357 val::val(isl::ctx ctx
, const std::string
&str
) {
15358 auto res
= isl_val_read_from_str(ctx
.release(), str
.c_str());
15362 val
&val::operator=(isl::val obj
) {
15363 std::swap(this->ptr
, obj
.ptr
);
15372 __isl_give isl_val
*val::copy() const & {
15373 return isl_val_copy(ptr
);
15376 __isl_keep isl_val
*val::get() const {
15380 __isl_give isl_val
*val::release() {
15381 isl_val
*tmp
= ptr
;
15386 bool val::is_null() const {
15387 return ptr
== nullptr;
15389 __isl_keep isl_val
*val::keep() const {
15393 __isl_give isl_val
*val::take() {
15397 val::operator bool() const {
15402 isl::ctx
val::get_ctx() const {
15403 return isl::ctx(isl_val_get_ctx(ptr
));
15405 std::string
val::to_str() const {
15406 char *Tmp
= isl_val_to_str(get());
15409 std::string
S(Tmp
);
15415 void val::dump() const {
15416 isl_val_dump(get());
15420 isl::val
val::two_exp() const {
15421 auto res
= isl_val_2exp(copy());
15422 return manage(res
);
15425 isl::val
val::abs() const {
15426 auto res
= isl_val_abs(copy());
15427 return manage(res
);
15430 isl::boolean
val::abs_eq(const isl::val
&v2
) const {
15431 auto res
= isl_val_abs_eq(get(), v2
.get());
15432 return manage(res
);
15435 isl::val
val::add(isl::val v2
) const {
15436 auto res
= isl_val_add(copy(), v2
.release());
15437 return manage(res
);
15440 isl::val
val::add_ui(unsigned long v2
) const {
15441 auto res
= isl_val_add_ui(copy(), v2
);
15442 return manage(res
);
15445 isl::val
val::ceil() const {
15446 auto res
= isl_val_ceil(copy());
15447 return manage(res
);
15450 int val::cmp_si(long i
) const {
15451 auto res
= isl_val_cmp_si(get(), i
);
15455 isl::val
val::div(isl::val v2
) const {
15456 auto res
= isl_val_div(copy(), v2
.release());
15457 return manage(res
);
15460 isl::val
val::div_ui(unsigned long v2
) const {
15461 auto res
= isl_val_div_ui(copy(), v2
);
15462 return manage(res
);
15465 isl::boolean
val::eq(const isl::val
&v2
) const {
15466 auto res
= isl_val_eq(get(), v2
.get());
15467 return manage(res
);
15470 isl::val
val::floor() const {
15471 auto res
= isl_val_floor(copy());
15472 return manage(res
);
15475 isl::val
val::gcd(isl::val v2
) const {
15476 auto res
= isl_val_gcd(copy(), v2
.release());
15477 return manage(res
);
15480 isl::boolean
val::ge(const isl::val
&v2
) const {
15481 auto res
= isl_val_ge(get(), v2
.get());
15482 return manage(res
);
15485 uint32_t val::get_hash() const {
15486 auto res
= isl_val_get_hash(get());
15490 long val::get_num_si() const {
15491 auto res
= isl_val_get_num_si(get());
15495 isl::boolean
val::gt(const isl::val
&v2
) const {
15496 auto res
= isl_val_gt(get(), v2
.get());
15497 return manage(res
);
15500 isl::val
val::infty(isl::ctx ctx
) {
15501 auto res
= isl_val_infty(ctx
.release());
15502 return manage(res
);
15505 isl::val
val::int_from_ui(isl::ctx ctx
, unsigned long u
) {
15506 auto res
= isl_val_int_from_ui(ctx
.release(), u
);
15507 return manage(res
);
15510 isl::val
val::inv() const {
15511 auto res
= isl_val_inv(copy());
15512 return manage(res
);
15515 isl::boolean
val::is_divisible_by(const isl::val
&v2
) const {
15516 auto res
= isl_val_is_divisible_by(get(), v2
.get());
15517 return manage(res
);
15520 isl::boolean
val::is_infty() const {
15521 auto res
= isl_val_is_infty(get());
15522 return manage(res
);
15525 isl::boolean
val::is_int() const {
15526 auto res
= isl_val_is_int(get());
15527 return manage(res
);
15530 isl::boolean
val::is_nan() const {
15531 auto res
= isl_val_is_nan(get());
15532 return manage(res
);
15535 isl::boolean
val::is_neg() const {
15536 auto res
= isl_val_is_neg(get());
15537 return manage(res
);
15540 isl::boolean
val::is_neginfty() const {
15541 auto res
= isl_val_is_neginfty(get());
15542 return manage(res
);
15545 isl::boolean
val::is_negone() const {
15546 auto res
= isl_val_is_negone(get());
15547 return manage(res
);
15550 isl::boolean
val::is_nonneg() const {
15551 auto res
= isl_val_is_nonneg(get());
15552 return manage(res
);
15555 isl::boolean
val::is_nonpos() const {
15556 auto res
= isl_val_is_nonpos(get());
15557 return manage(res
);
15560 isl::boolean
val::is_one() const {
15561 auto res
= isl_val_is_one(get());
15562 return manage(res
);
15565 isl::boolean
val::is_pos() const {
15566 auto res
= isl_val_is_pos(get());
15567 return manage(res
);
15570 isl::boolean
val::is_rat() const {
15571 auto res
= isl_val_is_rat(get());
15572 return manage(res
);
15575 isl::boolean
val::is_zero() const {
15576 auto res
= isl_val_is_zero(get());
15577 return manage(res
);
15580 isl::boolean
val::le(const isl::val
&v2
) const {
15581 auto res
= isl_val_le(get(), v2
.get());
15582 return manage(res
);
15585 isl::boolean
val::lt(const isl::val
&v2
) const {
15586 auto res
= isl_val_lt(get(), v2
.get());
15587 return manage(res
);
15590 isl::val
val::max(isl::val v2
) const {
15591 auto res
= isl_val_max(copy(), v2
.release());
15592 return manage(res
);
15595 isl::val
val::min(isl::val v2
) const {
15596 auto res
= isl_val_min(copy(), v2
.release());
15597 return manage(res
);
15600 isl::val
val::mod(isl::val v2
) const {
15601 auto res
= isl_val_mod(copy(), v2
.release());
15602 return manage(res
);
15605 isl::val
val::mul(isl::val v2
) const {
15606 auto res
= isl_val_mul(copy(), v2
.release());
15607 return manage(res
);
15610 isl::val
val::mul_ui(unsigned long v2
) const {
15611 auto res
= isl_val_mul_ui(copy(), v2
);
15612 return manage(res
);
15615 isl::val
val::nan(isl::ctx ctx
) {
15616 auto res
= isl_val_nan(ctx
.release());
15617 return manage(res
);
15620 isl::boolean
val::ne(const isl::val
&v2
) const {
15621 auto res
= isl_val_ne(get(), v2
.get());
15622 return manage(res
);
15625 isl::val
val::neg() const {
15626 auto res
= isl_val_neg(copy());
15627 return manage(res
);
15630 isl::val
val::neginfty(isl::ctx ctx
) {
15631 auto res
= isl_val_neginfty(ctx
.release());
15632 return manage(res
);
15635 isl::val
val::negone(isl::ctx ctx
) {
15636 auto res
= isl_val_negone(ctx
.release());
15637 return manage(res
);
15640 isl::val
val::one(isl::ctx ctx
) {
15641 auto res
= isl_val_one(ctx
.release());
15642 return manage(res
);
15645 isl::val
val::set_si(long i
) const {
15646 auto res
= isl_val_set_si(copy(), i
);
15647 return manage(res
);
15650 int val::sgn() const {
15651 auto res
= isl_val_sgn(get());
15655 isl::val
val::sub(isl::val v2
) const {
15656 auto res
= isl_val_sub(copy(), v2
.release());
15657 return manage(res
);
15660 isl::val
val::sub_ui(unsigned long v2
) const {
15661 auto res
= isl_val_sub_ui(copy(), v2
);
15662 return manage(res
);
15665 isl::val
val::trunc() const {
15666 auto res
= isl_val_trunc(copy());
15667 return manage(res
);
15670 isl::val
val::zero(isl::ctx ctx
) {
15671 auto res
= isl_val_zero(ctx
.release());
15672 return manage(res
);
15675 // implementations for isl::val_list
15676 isl::val_list
manage(__isl_take isl_val_list
*ptr
) {
15677 return val_list(ptr
);
15679 isl::val_list
manage_copy(__isl_keep isl_val_list
*ptr
) {
15680 return val_list(isl_val_list_copy(ptr
));
15682 isl::val_list
give(__isl_take isl_val_list
*ptr
) {
15683 return manage(ptr
);
15687 val_list::val_list()
15690 val_list::val_list(const isl::val_list
&obj
)
15691 : ptr(obj
.copy()) {}
15692 val_list::val_list(std::nullptr_t
)
15696 val_list::val_list(__isl_take isl_val_list
*ptr
)
15700 val_list
&val_list::operator=(isl::val_list obj
) {
15701 std::swap(this->ptr
, obj
.ptr
);
15705 val_list::~val_list() {
15707 isl_val_list_free(ptr
);
15710 __isl_give isl_val_list
*val_list::copy() const & {
15711 return isl_val_list_copy(ptr
);
15714 __isl_keep isl_val_list
*val_list::get() const {
15718 __isl_give isl_val_list
*val_list::release() {
15719 isl_val_list
*tmp
= ptr
;
15724 bool val_list::is_null() const {
15725 return ptr
== nullptr;
15727 __isl_keep isl_val_list
*val_list::keep() const {
15731 __isl_give isl_val_list
*val_list::take() {
15735 val_list::operator bool() const {
15740 isl::ctx
val_list::get_ctx() const {
15741 return isl::ctx(isl_val_list_get_ctx(ptr
));
15744 void val_list::dump() const {
15745 isl_val_list_dump(get());
15750 // implementations for isl::vec
15751 isl::vec
manage(__isl_take isl_vec
*ptr
) {
15754 isl::vec
manage_copy(__isl_keep isl_vec
*ptr
) {
15755 return vec(isl_vec_copy(ptr
));
15757 isl::vec
give(__isl_take isl_vec
*ptr
) {
15758 return manage(ptr
);
15765 vec::vec(const isl::vec
&obj
)
15766 : ptr(obj
.copy()) {}
15767 vec::vec(std::nullptr_t
)
15771 vec::vec(__isl_take isl_vec
*ptr
)
15775 vec
&vec::operator=(isl::vec obj
) {
15776 std::swap(this->ptr
, obj
.ptr
);
15785 __isl_give isl_vec
*vec::copy() const & {
15786 return isl_vec_copy(ptr
);
15789 __isl_keep isl_vec
*vec::get() const {
15793 __isl_give isl_vec
*vec::release() {
15794 isl_vec
*tmp
= ptr
;
15799 bool vec::is_null() const {
15800 return ptr
== nullptr;
15802 __isl_keep isl_vec
*vec::keep() const {
15806 __isl_give isl_vec
*vec::take() {
15810 vec::operator bool() const {
15815 isl::ctx
vec::get_ctx() const {
15816 return isl::ctx(isl_vec_get_ctx(ptr
));
15819 void vec::dump() const {
15820 isl_vec_dump(get());
15824 isl::vec
vec::add(isl::vec vec2
) const {
15825 auto res
= isl_vec_add(copy(), vec2
.release());
15826 return manage(res
);
15829 isl::vec
vec::alloc(isl::ctx ctx
, unsigned int size
) {
15830 auto res
= isl_vec_alloc(ctx
.release(), size
);
15831 return manage(res
);
15834 isl::vec
vec::ceil() const {
15835 auto res
= isl_vec_ceil(copy());
15836 return manage(res
);
15839 isl::vec
vec::clr() const {
15840 auto res
= isl_vec_clr(copy());
15841 return manage(res
);
15844 int vec::cmp_element(const isl::vec
&vec2
, int pos
) const {
15845 auto res
= isl_vec_cmp_element(get(), vec2
.get(), pos
);
15849 isl::vec
vec::concat(isl::vec vec2
) const {
15850 auto res
= isl_vec_concat(copy(), vec2
.release());
15851 return manage(res
);
15854 isl::vec
vec::drop_els(unsigned int pos
, unsigned int n
) const {
15855 auto res
= isl_vec_drop_els(copy(), pos
, n
);
15856 return manage(res
);
15859 isl::vec
vec::extend(unsigned int size
) const {
15860 auto res
= isl_vec_extend(copy(), size
);
15861 return manage(res
);
15864 isl::val
vec::get_element_val(int pos
) const {
15865 auto res
= isl_vec_get_element_val(get(), pos
);
15866 return manage(res
);
15869 isl::vec
vec::insert_els(unsigned int pos
, unsigned int n
) const {
15870 auto res
= isl_vec_insert_els(copy(), pos
, n
);
15871 return manage(res
);
15874 isl::vec
vec::insert_zero_els(unsigned int pos
, unsigned int n
) const {
15875 auto res
= isl_vec_insert_zero_els(copy(), pos
, n
);
15876 return manage(res
);
15879 isl::boolean
vec::is_equal(const isl::vec
&vec2
) const {
15880 auto res
= isl_vec_is_equal(get(), vec2
.get());
15881 return manage(res
);
15884 isl::vec
vec::mat_product(isl::mat mat
) const {
15885 auto res
= isl_vec_mat_product(copy(), mat
.release());
15886 return manage(res
);
15889 isl::vec
vec::move_els(unsigned int dst_col
, unsigned int src_col
, unsigned int n
) const {
15890 auto res
= isl_vec_move_els(copy(), dst_col
, src_col
, n
);
15891 return manage(res
);
15894 isl::vec
vec::neg() const {
15895 auto res
= isl_vec_neg(copy());
15896 return manage(res
);
15899 isl::vec
vec::set_element_si(int pos
, int v
) const {
15900 auto res
= isl_vec_set_element_si(copy(), pos
, v
);
15901 return manage(res
);
15904 isl::vec
vec::set_element_val(int pos
, isl::val v
) const {
15905 auto res
= isl_vec_set_element_val(copy(), pos
, v
.release());
15906 return manage(res
);
15909 isl::vec
vec::set_si(int v
) const {
15910 auto res
= isl_vec_set_si(copy(), v
);
15911 return manage(res
);
15914 isl::vec
vec::set_val(isl::val v
) const {
15915 auto res
= isl_vec_set_val(copy(), v
.release());
15916 return manage(res
);
15919 int vec::size() const {
15920 auto res
= isl_vec_size(get());
15924 isl::vec
vec::sort() const {
15925 auto res
= isl_vec_sort(copy());
15926 return manage(res
);
15928 } // namespace noexceptions
15931 #endif /* ISL_CPP_NOEXCEPTIONS */