1 /// These are automatically generated checked C++ bindings for isl.
3 /// isl is a library for computing with integer sets and maps described by
4 /// Presburger formulas. On top of this, isl provides various tools for
5 /// polyhedral compilation, ranging from dependence analysis over scheduling
8 #ifndef ISL_CPP_CHECKED
9 #define ISL_CPP_CHECKED
18 #include <type_traits>
20 #if __cplusplus >= 201703L
28 #define ISLPP_STRINGIZE_(X) #X
29 #define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
31 #define ISLPP_ASSERT(test, message) \
35 fputs("Assertion \"" #test "\" failed at " __FILE__ \
36 ":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \
41 /* Class used to check that isl::checked::boolean,
42 * isl::checked::stat and isl::checked::size values are checked for errors.
47 ISLPP_ASSERT(checked
, "IMPLEMENTATION ERROR: Unchecked state");
53 mutable std::shared_ptr
<checker
> check
= std::make_shared
<checker
>();
56 friend boolean
manage(isl_bool val
);
57 boolean(isl_bool val
): val(val
) {}
59 static boolean
error() {
60 return boolean(isl_bool_error
);
63 : val(isl_bool_error
) {}
65 /* implicit */ boolean(bool val
)
66 : val(val
? isl_bool_true
: isl_bool_false
) {}
71 check
->checked
= true;
75 bool is_error() const { check
->checked
= true; return val
== isl_bool_error
; }
76 bool is_false() const { check
->checked
= true; return val
== isl_bool_false
; }
77 bool is_true() const { check
->checked
= true; return val
== isl_bool_true
; }
79 explicit operator bool() const {
80 ISLPP_ASSERT(check
->checked
, "IMPLEMENTATION ERROR: Unchecked error state");
81 ISLPP_ASSERT(!is_error(), "IMPLEMENTATION ERROR: Unhandled error state");
86 if (val
== isl_bool_true
)
88 else if (val
== isl_bool_false
)
93 boolean
operator!() const {
94 return boolean(*this).negate();
98 inline boolean
manage(isl_bool val
) {
105 /* implicit */ ctx(isl_ctx
*ctx
) : ptr(ctx
) {}
114 #if __cplusplus >= 201703L
115 static void free_user(void *user
) {
116 std::any
*p
= static_cast<std::any
*>(user
);
122 /* Class encapsulating an isl_stat value.
126 mutable std::shared_ptr
<checker
> check
= std::make_shared
<checker
>();
129 friend stat
manage(isl_stat val
);
130 stat(isl_stat val
) : val(val
) {}
133 return stat(isl_stat_ok
);
135 static stat
error() {
136 return stat(isl_stat_error
);
138 stat() : val(isl_stat_error
) {}
141 check
->checked
= true;
145 bool is_error() const {
146 check
->checked
= true;
147 return val
== isl_stat_error
;
150 check
->checked
= true;
151 return val
== isl_stat_ok
;
155 inline stat
manage(isl_stat val
)
160 /* Class encapsulating an isl_size value.
164 mutable std::shared_ptr
<checker
> check
= std::make_shared
<checker
>();
167 friend size
manage(isl_size val
);
168 size(isl_size val
) : val(val
) {}
170 size() : val(isl_size_error
) {}
174 val
= isl_size_error
;
175 check
->checked
= true;
179 bool is_error() const {
180 check
->checked
= true;
181 return val
== isl_size_error
;
184 explicit operator unsigned() const {
185 ISLPP_ASSERT(check
->checked
,
186 "IMPLEMENTATION ERROR: Unchecked error state");
187 ISLPP_ASSERT(!is_error(),
188 "IMPLEMENTATION ERROR: Unhandled error state");
193 inline size
manage(isl_size val
)
202 #include <isl/id_to_id.h>
203 #include <isl/space.h>
209 #include <isl/union_set.h>
210 #include <isl/union_map.h>
211 #include <isl/flow.h>
212 #include <isl/schedule.h>
213 #include <isl/schedule_node.h>
214 #include <isl/ast_build.h>
215 #include <isl/fixed_box.h>
221 // forward declarations
229 class ast_expr_op_access
;
230 class ast_expr_op_add
;
231 class ast_expr_op_address_of
;
232 class ast_expr_op_and
;
233 class ast_expr_op_and_then
;
234 class ast_expr_op_call
;
235 class ast_expr_op_cond
;
236 class ast_expr_op_div
;
237 class ast_expr_op_eq
;
238 class ast_expr_op_fdiv_q
;
239 class ast_expr_op_ge
;
240 class ast_expr_op_gt
;
241 class ast_expr_op_le
;
242 class ast_expr_op_lt
;
243 class ast_expr_op_max
;
244 class ast_expr_op_member
;
245 class ast_expr_op_min
;
246 class ast_expr_op_minus
;
247 class ast_expr_op_mul
;
248 class ast_expr_op_or
;
249 class ast_expr_op_or_else
;
250 class ast_expr_op_pdiv_q
;
251 class ast_expr_op_pdiv_r
;
252 class ast_expr_op_select
;
253 class ast_expr_op_sub
;
254 class ast_expr_op_zdiv_r
;
256 class ast_node_block
;
267 class id_to_ast_expr
;
274 class multi_union_pw_aff
;
280 class pw_multi_aff_list
;
282 class schedule_constraints
;
284 class schedule_node_band
;
285 class schedule_node_context
;
286 class schedule_node_domain
;
287 class schedule_node_expansion
;
288 class schedule_node_extension
;
289 class schedule_node_filter
;
290 class schedule_node_guard
;
291 class schedule_node_leaf
;
292 class schedule_node_mark
;
293 class schedule_node_sequence
;
294 class schedule_node_set
;
298 class union_access_info
;
302 class union_pw_aff_list
;
303 class union_pw_multi_aff
;
305 class union_set_list
;
309 // declarations for isl::aff
310 inline aff
manage(__isl_take isl_aff
*ptr
);
311 inline aff
manage_copy(__isl_keep isl_aff
*ptr
);
314 friend inline aff
manage(__isl_take isl_aff
*ptr
);
315 friend inline aff
manage_copy(__isl_keep isl_aff
*ptr
);
318 isl_aff
*ptr
= nullptr;
320 inline explicit aff(__isl_take isl_aff
*ptr
);
323 inline /* implicit */ aff();
324 inline /* implicit */ aff(const aff
&obj
);
325 inline explicit aff(isl::checked::ctx ctx
, const std::string
&str
);
326 inline aff
&operator=(aff obj
);
328 inline __isl_give isl_aff
*copy() const &;
329 inline __isl_give isl_aff
*copy() && = delete;
330 inline __isl_keep isl_aff
*get() const;
331 inline __isl_give isl_aff
*release();
332 inline bool is_null() const;
333 inline isl::checked::ctx
ctx() const;
335 inline isl::checked::aff
add(isl::checked::aff aff2
) const;
336 inline isl::checked::multi_aff
add(const isl::checked::multi_aff
&multi2
) const;
337 inline isl::checked::multi_pw_aff
add(const isl::checked::multi_pw_aff
&multi2
) const;
338 inline isl::checked::multi_union_pw_aff
add(const isl::checked::multi_union_pw_aff
&multi2
) const;
339 inline isl::checked::pw_aff
add(const isl::checked::pw_aff
&pwaff2
) const;
340 inline isl::checked::pw_multi_aff
add(const isl::checked::pw_multi_aff
&pma2
) const;
341 inline isl::checked::union_pw_aff
add(const isl::checked::union_pw_aff
&upa2
) const;
342 inline isl::checked::union_pw_multi_aff
add(const isl::checked::union_pw_multi_aff
&upma2
) const;
343 inline isl::checked::aff
add_constant(isl::checked::val v
) const;
344 inline isl::checked::aff
add_constant(long v
) const;
345 inline isl::checked::multi_aff
add_constant(const isl::checked::multi_val
&mv
) const;
346 inline isl::checked::union_pw_multi_aff
apply(const isl::checked::union_pw_multi_aff
&upma2
) const;
347 inline isl::checked::aff
as_aff() const;
348 inline isl::checked::map
as_map() const;
349 inline isl::checked::multi_aff
as_multi_aff() const;
350 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
351 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
352 inline isl::checked::set
as_set() const;
353 inline isl::checked::union_map
as_union_map() const;
354 inline isl::checked::aff
at(int pos
) const;
355 inline isl::checked::basic_set
bind(isl::checked::id id
) const;
356 inline isl::checked::basic_set
bind(const std::string
&id
) const;
357 inline isl::checked::basic_set
bind(const isl::checked::multi_id
&tuple
) const;
358 inline isl::checked::pw_aff
bind_domain(const isl::checked::multi_id
&tuple
) const;
359 inline isl::checked::pw_aff
bind_domain_wrapped_domain(const isl::checked::multi_id
&tuple
) const;
360 inline isl::checked::aff
ceil() const;
361 inline isl::checked::pw_aff
coalesce() const;
362 inline isl::checked::pw_aff
cond(const isl::checked::pw_aff
&pwaff_true
, const isl::checked::pw_aff
&pwaff_false
) const;
363 inline isl::checked::multi_val
constant_multi_val() const;
364 inline isl::checked::val
constant_val() const;
365 inline isl::checked::val
get_constant_val() const;
366 inline isl::checked::aff
div(isl::checked::aff aff2
) const;
367 inline isl::checked::pw_aff
div(const isl::checked::pw_aff
&pa2
) const;
368 inline isl::checked::set
domain() const;
369 inline isl::checked::aff
domain_reverse() const;
370 inline isl::checked::pw_aff
drop_unused_params() const;
371 inline isl::checked::set
eq_set(isl::checked::aff aff2
) const;
372 inline isl::checked::set
eq_set(const isl::checked::pw_aff
&pwaff2
) const;
373 inline isl::checked::val
eval(isl::checked::point pnt
) const;
374 inline isl::checked::pw_multi_aff
extract_pw_multi_aff(const isl::checked::space
&space
) const;
375 inline isl::checked::multi_aff
flat_range_product(const isl::checked::multi_aff
&multi2
) const;
376 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const;
377 inline isl::checked::multi_union_pw_aff
flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
378 inline isl::checked::pw_multi_aff
flat_range_product(const isl::checked::pw_multi_aff
&pma2
) const;
379 inline isl::checked::union_pw_multi_aff
flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
380 inline isl::checked::aff
floor() const;
381 inline stat
foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const;
382 inline isl::checked::set
ge_set(isl::checked::aff aff2
) const;
383 inline isl::checked::set
ge_set(const isl::checked::pw_aff
&pwaff2
) const;
384 inline isl::checked::aff
gist(isl::checked::set context
) const;
385 inline isl::checked::union_pw_aff
gist(const isl::checked::union_set
&context
) const;
386 inline isl::checked::aff
gist(const isl::checked::basic_set
&context
) const;
387 inline isl::checked::aff
gist(const isl::checked::point
&context
) const;
388 inline isl::checked::aff
gist_params(isl::checked::set context
) const;
389 inline isl::checked::set
gt_set(isl::checked::aff aff2
) const;
390 inline isl::checked::set
gt_set(const isl::checked::pw_aff
&pwaff2
) const;
391 inline boolean
has_range_tuple_id() const;
392 inline isl::checked::multi_aff
identity() const;
393 inline isl::checked::pw_aff
insert_domain(const isl::checked::space
&domain
) const;
394 inline isl::checked::pw_aff
intersect_domain(const isl::checked::set
&set
) const;
395 inline isl::checked::union_pw_aff
intersect_domain(const isl::checked::space
&space
) const;
396 inline isl::checked::union_pw_aff
intersect_domain(const isl::checked::union_set
&uset
) const;
397 inline isl::checked::union_pw_aff
intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const;
398 inline isl::checked::union_pw_aff
intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const;
399 inline isl::checked::pw_aff
intersect_params(const isl::checked::set
&set
) const;
400 inline boolean
involves_locals() const;
401 inline boolean
involves_nan() const;
402 inline boolean
involves_param(const isl::checked::id
&id
) const;
403 inline boolean
involves_param(const std::string
&id
) const;
404 inline boolean
involves_param(const isl::checked::id_list
&list
) const;
405 inline boolean
is_cst() const;
406 inline boolean
isa_aff() const;
407 inline boolean
isa_multi_aff() const;
408 inline boolean
isa_pw_multi_aff() const;
409 inline isl::checked::set
le_set(isl::checked::aff aff2
) const;
410 inline isl::checked::set
le_set(const isl::checked::pw_aff
&pwaff2
) const;
411 inline isl::checked::aff_list
list() const;
412 inline isl::checked::set
lt_set(isl::checked::aff aff2
) const;
413 inline isl::checked::set
lt_set(const isl::checked::pw_aff
&pwaff2
) const;
414 inline isl::checked::multi_pw_aff
max(const isl::checked::multi_pw_aff
&multi2
) const;
415 inline isl::checked::pw_aff
max(const isl::checked::pw_aff
&pwaff2
) const;
416 inline isl::checked::multi_val
max_multi_val() const;
417 inline isl::checked::val
max_val() const;
418 inline isl::checked::multi_pw_aff
min(const isl::checked::multi_pw_aff
&multi2
) const;
419 inline isl::checked::pw_aff
min(const isl::checked::pw_aff
&pwaff2
) const;
420 inline isl::checked::multi_val
min_multi_val() const;
421 inline isl::checked::val
min_val() const;
422 inline isl::checked::aff
mod(isl::checked::val mod
) const;
423 inline isl::checked::aff
mod(long mod
) const;
424 inline isl::checked::aff
mul(isl::checked::aff aff2
) const;
425 inline isl::checked::pw_aff
mul(const isl::checked::pw_aff
&pwaff2
) const;
426 inline class size
n_piece() const;
427 inline isl::checked::set
ne_set(isl::checked::aff aff2
) const;
428 inline isl::checked::set
ne_set(const isl::checked::pw_aff
&pwaff2
) const;
429 inline isl::checked::aff
neg() const;
430 inline isl::checked::set
params() const;
431 inline boolean
plain_is_empty() const;
432 inline boolean
plain_is_equal(const isl::checked::aff
&aff2
) const;
433 inline boolean
plain_is_equal(const isl::checked::multi_aff
&multi2
) const;
434 inline boolean
plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const;
435 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
436 inline boolean
plain_is_equal(const isl::checked::pw_aff
&pwaff2
) const;
437 inline boolean
plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const;
438 inline boolean
plain_is_equal(const isl::checked::union_pw_aff
&upa2
) const;
439 inline boolean
plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const;
440 inline isl::checked::pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::pw_multi_aff
&pma2
) const;
441 inline isl::checked::union_pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const;
442 inline isl::checked::multi_aff
product(const isl::checked::multi_aff
&multi2
) const;
443 inline isl::checked::multi_pw_aff
product(const isl::checked::multi_pw_aff
&multi2
) const;
444 inline isl::checked::pw_multi_aff
product(const isl::checked::pw_multi_aff
&pma2
) const;
445 inline isl::checked::aff
pullback(isl::checked::multi_aff ma
) const;
446 inline isl::checked::pw_aff
pullback(const isl::checked::multi_pw_aff
&mpa
) const;
447 inline isl::checked::pw_aff
pullback(const isl::checked::pw_multi_aff
&pma
) const;
448 inline isl::checked::union_pw_aff
pullback(const isl::checked::union_pw_multi_aff
&upma
) const;
449 inline isl::checked::aff
pullback(const isl::checked::aff
&ma
) const;
450 inline isl::checked::pw_multi_aff_list
pw_multi_aff_list() const;
451 inline isl::checked::pw_multi_aff
range_factor_domain() const;
452 inline isl::checked::pw_multi_aff
range_factor_range() const;
453 inline isl::checked::multi_aff
range_product(const isl::checked::multi_aff
&multi2
) const;
454 inline isl::checked::multi_pw_aff
range_product(const isl::checked::multi_pw_aff
&multi2
) const;
455 inline isl::checked::multi_union_pw_aff
range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
456 inline isl::checked::pw_multi_aff
range_product(const isl::checked::pw_multi_aff
&pma2
) const;
457 inline isl::checked::union_pw_multi_aff
range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
458 inline isl::checked::id
range_tuple_id() const;
459 inline isl::checked::multi_aff
reset_range_tuple_id() const;
460 inline isl::checked::aff
scale(isl::checked::val v
) const;
461 inline isl::checked::aff
scale(long v
) const;
462 inline isl::checked::multi_aff
scale(const isl::checked::multi_val
&mv
) const;
463 inline isl::checked::aff
scale_down(isl::checked::val v
) const;
464 inline isl::checked::aff
scale_down(long v
) const;
465 inline isl::checked::multi_aff
scale_down(const isl::checked::multi_val
&mv
) const;
466 inline isl::checked::multi_aff
set_at(int pos
, const isl::checked::aff
&el
) const;
467 inline isl::checked::multi_pw_aff
set_at(int pos
, const isl::checked::pw_aff
&el
) const;
468 inline isl::checked::multi_union_pw_aff
set_at(int pos
, const isl::checked::union_pw_aff
&el
) const;
469 inline isl::checked::multi_aff
set_range_tuple(const isl::checked::id
&id
) const;
470 inline isl::checked::multi_aff
set_range_tuple(const std::string
&id
) const;
471 inline class size
size() const;
472 inline isl::checked::space
space() const;
473 inline isl::checked::aff
sub(isl::checked::aff aff2
) const;
474 inline isl::checked::multi_aff
sub(const isl::checked::multi_aff
&multi2
) const;
475 inline isl::checked::multi_pw_aff
sub(const isl::checked::multi_pw_aff
&multi2
) const;
476 inline isl::checked::multi_union_pw_aff
sub(const isl::checked::multi_union_pw_aff
&multi2
) const;
477 inline isl::checked::pw_aff
sub(const isl::checked::pw_aff
&pwaff2
) const;
478 inline isl::checked::pw_multi_aff
sub(const isl::checked::pw_multi_aff
&pma2
) const;
479 inline isl::checked::union_pw_aff
sub(const isl::checked::union_pw_aff
&upa2
) const;
480 inline isl::checked::union_pw_multi_aff
sub(const isl::checked::union_pw_multi_aff
&upma2
) const;
481 inline isl::checked::pw_aff
subtract_domain(const isl::checked::set
&set
) const;
482 inline isl::checked::union_pw_aff
subtract_domain(const isl::checked::space
&space
) const;
483 inline isl::checked::union_pw_aff
subtract_domain(const isl::checked::union_set
&uset
) const;
484 inline isl::checked::pw_aff
tdiv_q(const isl::checked::pw_aff
&pa2
) const;
485 inline isl::checked::pw_aff
tdiv_r(const isl::checked::pw_aff
&pa2
) const;
486 inline isl::checked::aff_list
to_list() const;
487 inline isl::checked::multi_pw_aff
to_multi_pw_aff() const;
488 inline isl::checked::multi_union_pw_aff
to_multi_union_pw_aff() const;
489 inline isl::checked::pw_multi_aff
to_pw_multi_aff() const;
490 inline isl::checked::union_pw_aff
to_union_pw_aff() const;
491 inline isl::checked::union_pw_multi_aff
to_union_pw_multi_aff() const;
492 inline isl::checked::aff
unbind_params_insert_domain(isl::checked::multi_id domain
) const;
493 inline isl::checked::multi_pw_aff
union_add(const isl::checked::multi_pw_aff
&mpa2
) const;
494 inline isl::checked::multi_union_pw_aff
union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const;
495 inline isl::checked::pw_aff
union_add(const isl::checked::pw_aff
&pwaff2
) const;
496 inline isl::checked::pw_multi_aff
union_add(const isl::checked::pw_multi_aff
&pma2
) const;
497 inline isl::checked::union_pw_aff
union_add(const isl::checked::union_pw_aff
&upa2
) const;
498 inline isl::checked::union_pw_multi_aff
union_add(const isl::checked::union_pw_multi_aff
&upma2
) const;
499 static inline isl::checked::aff
zero_on_domain(isl::checked::space space
);
502 // declarations for isl::aff_list
503 inline aff_list
manage(__isl_take isl_aff_list
*ptr
);
504 inline aff_list
manage_copy(__isl_keep isl_aff_list
*ptr
);
507 friend inline aff_list
manage(__isl_take isl_aff_list
*ptr
);
508 friend inline aff_list
manage_copy(__isl_keep isl_aff_list
*ptr
);
511 isl_aff_list
*ptr
= nullptr;
513 inline explicit aff_list(__isl_take isl_aff_list
*ptr
);
516 inline /* implicit */ aff_list();
517 inline /* implicit */ aff_list(const aff_list
&obj
);
518 inline explicit aff_list(isl::checked::ctx ctx
, int n
);
519 inline explicit aff_list(isl::checked::aff el
);
520 inline explicit aff_list(isl::checked::ctx ctx
, const std::string
&str
);
521 inline aff_list
&operator=(aff_list obj
);
523 inline __isl_give isl_aff_list
*copy() const &;
524 inline __isl_give isl_aff_list
*copy() && = delete;
525 inline __isl_keep isl_aff_list
*get() const;
526 inline __isl_give isl_aff_list
*release();
527 inline bool is_null() const;
528 inline isl::checked::ctx
ctx() const;
530 inline isl::checked::aff_list
add(isl::checked::aff el
) const;
531 inline isl::checked::aff
at(int index
) const;
532 inline isl::checked::aff
get_at(int index
) const;
533 inline isl::checked::aff_list
clear() const;
534 inline isl::checked::aff_list
concat(isl::checked::aff_list list2
) const;
535 inline isl::checked::aff_list
drop(unsigned int first
, unsigned int n
) const;
536 inline stat
foreach(const std::function
<stat(isl::checked::aff
)> &fn
) const;
537 inline stat
foreach_scc(const std::function
<boolean(isl::checked::aff
, isl::checked::aff
)> &follows
, const std::function
<stat(isl::checked::aff_list
)> &fn
) const;
538 inline isl::checked::aff_list
insert(unsigned int pos
, isl::checked::aff el
) const;
539 inline isl::checked::aff_list
set_at(int index
, isl::checked::aff el
) const;
540 inline class size
size() const;
543 // declarations for isl::ast_build
544 inline ast_build
manage(__isl_take isl_ast_build
*ptr
);
545 inline ast_build
manage_copy(__isl_keep isl_ast_build
*ptr
);
548 friend inline ast_build
manage(__isl_take isl_ast_build
*ptr
);
549 friend inline ast_build
manage_copy(__isl_keep isl_ast_build
*ptr
);
552 isl_ast_build
*ptr
= nullptr;
554 inline explicit ast_build(__isl_take isl_ast_build
*ptr
);
557 inline /* implicit */ ast_build();
558 inline /* implicit */ ast_build(const ast_build
&obj
);
559 inline explicit ast_build(isl::checked::ctx ctx
);
560 inline ast_build
&operator=(ast_build obj
);
562 inline __isl_give isl_ast_build
*copy() const &;
563 inline __isl_give isl_ast_build
*copy() && = delete;
564 inline __isl_keep isl_ast_build
*get() const;
565 inline __isl_give isl_ast_build
*release();
566 inline bool is_null() const;
567 inline isl::checked::ctx
ctx() const;
570 inline ast_build
©_callbacks(const ast_build
&obj
);
571 struct at_each_domain_data
{
572 std::function
<isl::checked::ast_node(isl::checked::ast_node
, isl::checked::ast_build
)> func
;
574 std::shared_ptr
<at_each_domain_data
> at_each_domain_data
;
575 static inline isl_ast_node
*at_each_domain(isl_ast_node
*arg_0
, isl_ast_build
*arg_1
, void *arg_2
);
576 inline void set_at_each_domain_data(const std::function
<isl::checked::ast_node(isl::checked::ast_node
, isl::checked::ast_build
)> &fn
);
578 inline isl::checked::ast_build
set_at_each_domain(const std::function
<isl::checked::ast_node(isl::checked::ast_node
, isl::checked::ast_build
)> &fn
) const;
579 inline isl::checked::ast_expr
access_from(isl::checked::multi_pw_aff mpa
) const;
580 inline isl::checked::ast_expr
access_from(isl::checked::pw_multi_aff pma
) const;
581 inline isl::checked::ast_expr
call_from(isl::checked::multi_pw_aff mpa
) const;
582 inline isl::checked::ast_expr
call_from(isl::checked::pw_multi_aff pma
) const;
583 inline isl::checked::ast_expr
expr_from(isl::checked::pw_aff pa
) const;
584 inline isl::checked::ast_expr
expr_from(isl::checked::set set
) const;
585 static inline isl::checked::ast_build
from_context(isl::checked::set set
);
586 inline isl::checked::ast_node
node_from(isl::checked::schedule schedule
) const;
587 inline isl::checked::ast_node
node_from_schedule_map(isl::checked::union_map schedule
) const;
588 inline isl::checked::union_map
schedule() const;
589 inline isl::checked::union_map
get_schedule() const;
592 // declarations for isl::ast_expr
593 inline ast_expr
manage(__isl_take isl_ast_expr
*ptr
);
594 inline ast_expr
manage_copy(__isl_keep isl_ast_expr
*ptr
);
597 friend inline ast_expr
manage(__isl_take isl_ast_expr
*ptr
);
598 friend inline ast_expr
manage_copy(__isl_keep isl_ast_expr
*ptr
);
601 isl_ast_expr
*ptr
= nullptr;
603 inline explicit ast_expr(__isl_take isl_ast_expr
*ptr
);
606 inline /* implicit */ ast_expr();
607 inline /* implicit */ ast_expr(const ast_expr
&obj
);
608 inline ast_expr
&operator=(ast_expr obj
);
610 inline __isl_give isl_ast_expr
*copy() const &;
611 inline __isl_give isl_ast_expr
*copy() && = delete;
612 inline __isl_keep isl_ast_expr
*get() const;
613 inline __isl_give isl_ast_expr
*release();
614 inline bool is_null() const;
616 template <typename T
,
617 typename
= typename
std::enable_if
<std::is_same
<
618 const decltype(isl_ast_expr_get_type(NULL
)),
619 const T
>::value
>::type
>
620 inline boolean
isa_type(T subtype
) const;
622 template <class T
> inline boolean
isa() const;
623 template <class T
> inline T
as() const;
624 inline isl::checked::ctx
ctx() const;
626 inline std::string
to_C_str() const;
629 // declarations for isl::ast_expr_id
631 class ast_expr_id
: public ast_expr
{
633 friend boolean
ast_expr::isa() const;
634 friend ast_expr_id
ast_expr::as
<ast_expr_id
>() const;
635 static const auto type
= isl_ast_expr_id
;
638 inline explicit ast_expr_id(__isl_take isl_ast_expr
*ptr
);
641 inline /* implicit */ ast_expr_id();
642 inline /* implicit */ ast_expr_id(const ast_expr_id
&obj
);
643 inline ast_expr_id
&operator=(ast_expr_id obj
);
644 inline isl::checked::ctx
ctx() const;
646 inline isl::checked::id
id() const;
647 inline isl::checked::id
get_id() const;
650 // declarations for isl::ast_expr_int
652 class ast_expr_int
: public ast_expr
{
654 friend boolean
ast_expr::isa() const;
655 friend ast_expr_int
ast_expr::as
<ast_expr_int
>() const;
656 static const auto type
= isl_ast_expr_int
;
659 inline explicit ast_expr_int(__isl_take isl_ast_expr
*ptr
);
662 inline /* implicit */ ast_expr_int();
663 inline /* implicit */ ast_expr_int(const ast_expr_int
&obj
);
664 inline ast_expr_int
&operator=(ast_expr_int obj
);
665 inline isl::checked::ctx
ctx() const;
667 inline isl::checked::val
val() const;
668 inline isl::checked::val
get_val() const;
671 // declarations for isl::ast_expr_op
673 class ast_expr_op
: public ast_expr
{
675 friend boolean
ast_expr::isa() const;
676 friend ast_expr_op
ast_expr::as
<ast_expr_op
>() const;
677 static const auto type
= isl_ast_expr_op
;
680 inline explicit ast_expr_op(__isl_take isl_ast_expr
*ptr
);
683 inline /* implicit */ ast_expr_op();
684 inline /* implicit */ ast_expr_op(const ast_expr_op
&obj
);
685 inline ast_expr_op
&operator=(ast_expr_op obj
);
687 template <typename T
,
688 typename
= typename
std::enable_if
<std::is_same
<
689 const decltype(isl_ast_expr_op_get_type(NULL
)),
690 const T
>::value
>::type
>
691 inline boolean
isa_type(T subtype
) const;
693 template <class T
> inline boolean
isa() const;
694 template <class T
> inline T
as() const;
695 inline isl::checked::ctx
ctx() const;
697 inline isl::checked::ast_expr
arg(int pos
) const;
698 inline isl::checked::ast_expr
get_arg(int pos
) const;
699 inline class size
n_arg() const;
700 inline class size
get_n_arg() const;
703 // declarations for isl::ast_expr_op_access
705 class ast_expr_op_access
: public ast_expr_op
{
707 friend boolean
ast_expr_op::isa() const;
708 friend ast_expr_op_access
ast_expr_op::as
<ast_expr_op_access
>() const;
709 static const auto type
= isl_ast_expr_op_access
;
712 inline explicit ast_expr_op_access(__isl_take isl_ast_expr
*ptr
);
715 inline /* implicit */ ast_expr_op_access();
716 inline /* implicit */ ast_expr_op_access(const ast_expr_op_access
&obj
);
717 inline ast_expr_op_access
&operator=(ast_expr_op_access obj
);
718 inline isl::checked::ctx
ctx() const;
722 // declarations for isl::ast_expr_op_add
724 class ast_expr_op_add
: public ast_expr_op
{
726 friend boolean
ast_expr_op::isa() const;
727 friend ast_expr_op_add
ast_expr_op::as
<ast_expr_op_add
>() const;
728 static const auto type
= isl_ast_expr_op_add
;
731 inline explicit ast_expr_op_add(__isl_take isl_ast_expr
*ptr
);
734 inline /* implicit */ ast_expr_op_add();
735 inline /* implicit */ ast_expr_op_add(const ast_expr_op_add
&obj
);
736 inline ast_expr_op_add
&operator=(ast_expr_op_add obj
);
737 inline isl::checked::ctx
ctx() const;
741 // declarations for isl::ast_expr_op_address_of
743 class ast_expr_op_address_of
: public ast_expr_op
{
745 friend boolean
ast_expr_op::isa() const;
746 friend ast_expr_op_address_of
ast_expr_op::as
<ast_expr_op_address_of
>() const;
747 static const auto type
= isl_ast_expr_op_address_of
;
750 inline explicit ast_expr_op_address_of(__isl_take isl_ast_expr
*ptr
);
753 inline /* implicit */ ast_expr_op_address_of();
754 inline /* implicit */ ast_expr_op_address_of(const ast_expr_op_address_of
&obj
);
755 inline ast_expr_op_address_of
&operator=(ast_expr_op_address_of obj
);
756 inline isl::checked::ctx
ctx() const;
760 // declarations for isl::ast_expr_op_and
762 class ast_expr_op_and
: public ast_expr_op
{
764 friend boolean
ast_expr_op::isa() const;
765 friend ast_expr_op_and
ast_expr_op::as
<ast_expr_op_and
>() const;
766 static const auto type
= isl_ast_expr_op_and
;
769 inline explicit ast_expr_op_and(__isl_take isl_ast_expr
*ptr
);
772 inline /* implicit */ ast_expr_op_and();
773 inline /* implicit */ ast_expr_op_and(const ast_expr_op_and
&obj
);
774 inline ast_expr_op_and
&operator=(ast_expr_op_and obj
);
775 inline isl::checked::ctx
ctx() const;
779 // declarations for isl::ast_expr_op_and_then
781 class ast_expr_op_and_then
: public ast_expr_op
{
783 friend boolean
ast_expr_op::isa() const;
784 friend ast_expr_op_and_then
ast_expr_op::as
<ast_expr_op_and_then
>() const;
785 static const auto type
= isl_ast_expr_op_and_then
;
788 inline explicit ast_expr_op_and_then(__isl_take isl_ast_expr
*ptr
);
791 inline /* implicit */ ast_expr_op_and_then();
792 inline /* implicit */ ast_expr_op_and_then(const ast_expr_op_and_then
&obj
);
793 inline ast_expr_op_and_then
&operator=(ast_expr_op_and_then obj
);
794 inline isl::checked::ctx
ctx() const;
798 // declarations for isl::ast_expr_op_call
800 class ast_expr_op_call
: public ast_expr_op
{
802 friend boolean
ast_expr_op::isa() const;
803 friend ast_expr_op_call
ast_expr_op::as
<ast_expr_op_call
>() const;
804 static const auto type
= isl_ast_expr_op_call
;
807 inline explicit ast_expr_op_call(__isl_take isl_ast_expr
*ptr
);
810 inline /* implicit */ ast_expr_op_call();
811 inline /* implicit */ ast_expr_op_call(const ast_expr_op_call
&obj
);
812 inline ast_expr_op_call
&operator=(ast_expr_op_call obj
);
813 inline isl::checked::ctx
ctx() const;
817 // declarations for isl::ast_expr_op_cond
819 class ast_expr_op_cond
: public ast_expr_op
{
821 friend boolean
ast_expr_op::isa() const;
822 friend ast_expr_op_cond
ast_expr_op::as
<ast_expr_op_cond
>() const;
823 static const auto type
= isl_ast_expr_op_cond
;
826 inline explicit ast_expr_op_cond(__isl_take isl_ast_expr
*ptr
);
829 inline /* implicit */ ast_expr_op_cond();
830 inline /* implicit */ ast_expr_op_cond(const ast_expr_op_cond
&obj
);
831 inline ast_expr_op_cond
&operator=(ast_expr_op_cond obj
);
832 inline isl::checked::ctx
ctx() const;
836 // declarations for isl::ast_expr_op_div
838 class ast_expr_op_div
: public ast_expr_op
{
840 friend boolean
ast_expr_op::isa() const;
841 friend ast_expr_op_div
ast_expr_op::as
<ast_expr_op_div
>() const;
842 static const auto type
= isl_ast_expr_op_div
;
845 inline explicit ast_expr_op_div(__isl_take isl_ast_expr
*ptr
);
848 inline /* implicit */ ast_expr_op_div();
849 inline /* implicit */ ast_expr_op_div(const ast_expr_op_div
&obj
);
850 inline ast_expr_op_div
&operator=(ast_expr_op_div obj
);
851 inline isl::checked::ctx
ctx() const;
855 // declarations for isl::ast_expr_op_eq
857 class ast_expr_op_eq
: public ast_expr_op
{
859 friend boolean
ast_expr_op::isa() const;
860 friend ast_expr_op_eq
ast_expr_op::as
<ast_expr_op_eq
>() const;
861 static const auto type
= isl_ast_expr_op_eq
;
864 inline explicit ast_expr_op_eq(__isl_take isl_ast_expr
*ptr
);
867 inline /* implicit */ ast_expr_op_eq();
868 inline /* implicit */ ast_expr_op_eq(const ast_expr_op_eq
&obj
);
869 inline ast_expr_op_eq
&operator=(ast_expr_op_eq obj
);
870 inline isl::checked::ctx
ctx() const;
874 // declarations for isl::ast_expr_op_fdiv_q
876 class ast_expr_op_fdiv_q
: public ast_expr_op
{
878 friend boolean
ast_expr_op::isa() const;
879 friend ast_expr_op_fdiv_q
ast_expr_op::as
<ast_expr_op_fdiv_q
>() const;
880 static const auto type
= isl_ast_expr_op_fdiv_q
;
883 inline explicit ast_expr_op_fdiv_q(__isl_take isl_ast_expr
*ptr
);
886 inline /* implicit */ ast_expr_op_fdiv_q();
887 inline /* implicit */ ast_expr_op_fdiv_q(const ast_expr_op_fdiv_q
&obj
);
888 inline ast_expr_op_fdiv_q
&operator=(ast_expr_op_fdiv_q obj
);
889 inline isl::checked::ctx
ctx() const;
893 // declarations for isl::ast_expr_op_ge
895 class ast_expr_op_ge
: public ast_expr_op
{
897 friend boolean
ast_expr_op::isa() const;
898 friend ast_expr_op_ge
ast_expr_op::as
<ast_expr_op_ge
>() const;
899 static const auto type
= isl_ast_expr_op_ge
;
902 inline explicit ast_expr_op_ge(__isl_take isl_ast_expr
*ptr
);
905 inline /* implicit */ ast_expr_op_ge();
906 inline /* implicit */ ast_expr_op_ge(const ast_expr_op_ge
&obj
);
907 inline ast_expr_op_ge
&operator=(ast_expr_op_ge obj
);
908 inline isl::checked::ctx
ctx() const;
912 // declarations for isl::ast_expr_op_gt
914 class ast_expr_op_gt
: public ast_expr_op
{
916 friend boolean
ast_expr_op::isa() const;
917 friend ast_expr_op_gt
ast_expr_op::as
<ast_expr_op_gt
>() const;
918 static const auto type
= isl_ast_expr_op_gt
;
921 inline explicit ast_expr_op_gt(__isl_take isl_ast_expr
*ptr
);
924 inline /* implicit */ ast_expr_op_gt();
925 inline /* implicit */ ast_expr_op_gt(const ast_expr_op_gt
&obj
);
926 inline ast_expr_op_gt
&operator=(ast_expr_op_gt obj
);
927 inline isl::checked::ctx
ctx() const;
931 // declarations for isl::ast_expr_op_le
933 class ast_expr_op_le
: public ast_expr_op
{
935 friend boolean
ast_expr_op::isa() const;
936 friend ast_expr_op_le
ast_expr_op::as
<ast_expr_op_le
>() const;
937 static const auto type
= isl_ast_expr_op_le
;
940 inline explicit ast_expr_op_le(__isl_take isl_ast_expr
*ptr
);
943 inline /* implicit */ ast_expr_op_le();
944 inline /* implicit */ ast_expr_op_le(const ast_expr_op_le
&obj
);
945 inline ast_expr_op_le
&operator=(ast_expr_op_le obj
);
946 inline isl::checked::ctx
ctx() const;
950 // declarations for isl::ast_expr_op_lt
952 class ast_expr_op_lt
: public ast_expr_op
{
954 friend boolean
ast_expr_op::isa() const;
955 friend ast_expr_op_lt
ast_expr_op::as
<ast_expr_op_lt
>() const;
956 static const auto type
= isl_ast_expr_op_lt
;
959 inline explicit ast_expr_op_lt(__isl_take isl_ast_expr
*ptr
);
962 inline /* implicit */ ast_expr_op_lt();
963 inline /* implicit */ ast_expr_op_lt(const ast_expr_op_lt
&obj
);
964 inline ast_expr_op_lt
&operator=(ast_expr_op_lt obj
);
965 inline isl::checked::ctx
ctx() const;
969 // declarations for isl::ast_expr_op_max
971 class ast_expr_op_max
: public ast_expr_op
{
973 friend boolean
ast_expr_op::isa() const;
974 friend ast_expr_op_max
ast_expr_op::as
<ast_expr_op_max
>() const;
975 static const auto type
= isl_ast_expr_op_max
;
978 inline explicit ast_expr_op_max(__isl_take isl_ast_expr
*ptr
);
981 inline /* implicit */ ast_expr_op_max();
982 inline /* implicit */ ast_expr_op_max(const ast_expr_op_max
&obj
);
983 inline ast_expr_op_max
&operator=(ast_expr_op_max obj
);
984 inline isl::checked::ctx
ctx() const;
988 // declarations for isl::ast_expr_op_member
990 class ast_expr_op_member
: public ast_expr_op
{
992 friend boolean
ast_expr_op::isa() const;
993 friend ast_expr_op_member
ast_expr_op::as
<ast_expr_op_member
>() const;
994 static const auto type
= isl_ast_expr_op_member
;
997 inline explicit ast_expr_op_member(__isl_take isl_ast_expr
*ptr
);
1000 inline /* implicit */ ast_expr_op_member();
1001 inline /* implicit */ ast_expr_op_member(const ast_expr_op_member
&obj
);
1002 inline ast_expr_op_member
&operator=(ast_expr_op_member obj
);
1003 inline isl::checked::ctx
ctx() const;
1007 // declarations for isl::ast_expr_op_min
1009 class ast_expr_op_min
: public ast_expr_op
{
1011 friend boolean
ast_expr_op::isa() const;
1012 friend ast_expr_op_min
ast_expr_op::as
<ast_expr_op_min
>() const;
1013 static const auto type
= isl_ast_expr_op_min
;
1016 inline explicit ast_expr_op_min(__isl_take isl_ast_expr
*ptr
);
1019 inline /* implicit */ ast_expr_op_min();
1020 inline /* implicit */ ast_expr_op_min(const ast_expr_op_min
&obj
);
1021 inline ast_expr_op_min
&operator=(ast_expr_op_min obj
);
1022 inline isl::checked::ctx
ctx() const;
1026 // declarations for isl::ast_expr_op_minus
1028 class ast_expr_op_minus
: public ast_expr_op
{
1030 friend boolean
ast_expr_op::isa() const;
1031 friend ast_expr_op_minus
ast_expr_op::as
<ast_expr_op_minus
>() const;
1032 static const auto type
= isl_ast_expr_op_minus
;
1035 inline explicit ast_expr_op_minus(__isl_take isl_ast_expr
*ptr
);
1038 inline /* implicit */ ast_expr_op_minus();
1039 inline /* implicit */ ast_expr_op_minus(const ast_expr_op_minus
&obj
);
1040 inline ast_expr_op_minus
&operator=(ast_expr_op_minus obj
);
1041 inline isl::checked::ctx
ctx() const;
1045 // declarations for isl::ast_expr_op_mul
1047 class ast_expr_op_mul
: public ast_expr_op
{
1049 friend boolean
ast_expr_op::isa() const;
1050 friend ast_expr_op_mul
ast_expr_op::as
<ast_expr_op_mul
>() const;
1051 static const auto type
= isl_ast_expr_op_mul
;
1054 inline explicit ast_expr_op_mul(__isl_take isl_ast_expr
*ptr
);
1057 inline /* implicit */ ast_expr_op_mul();
1058 inline /* implicit */ ast_expr_op_mul(const ast_expr_op_mul
&obj
);
1059 inline ast_expr_op_mul
&operator=(ast_expr_op_mul obj
);
1060 inline isl::checked::ctx
ctx() const;
1064 // declarations for isl::ast_expr_op_or
1066 class ast_expr_op_or
: public ast_expr_op
{
1068 friend boolean
ast_expr_op::isa() const;
1069 friend ast_expr_op_or
ast_expr_op::as
<ast_expr_op_or
>() const;
1070 static const auto type
= isl_ast_expr_op_or
;
1073 inline explicit ast_expr_op_or(__isl_take isl_ast_expr
*ptr
);
1076 inline /* implicit */ ast_expr_op_or();
1077 inline /* implicit */ ast_expr_op_or(const ast_expr_op_or
&obj
);
1078 inline ast_expr_op_or
&operator=(ast_expr_op_or obj
);
1079 inline isl::checked::ctx
ctx() const;
1083 // declarations for isl::ast_expr_op_or_else
1085 class ast_expr_op_or_else
: public ast_expr_op
{
1087 friend boolean
ast_expr_op::isa() const;
1088 friend ast_expr_op_or_else
ast_expr_op::as
<ast_expr_op_or_else
>() const;
1089 static const auto type
= isl_ast_expr_op_or_else
;
1092 inline explicit ast_expr_op_or_else(__isl_take isl_ast_expr
*ptr
);
1095 inline /* implicit */ ast_expr_op_or_else();
1096 inline /* implicit */ ast_expr_op_or_else(const ast_expr_op_or_else
&obj
);
1097 inline ast_expr_op_or_else
&operator=(ast_expr_op_or_else obj
);
1098 inline isl::checked::ctx
ctx() const;
1102 // declarations for isl::ast_expr_op_pdiv_q
1104 class ast_expr_op_pdiv_q
: public ast_expr_op
{
1106 friend boolean
ast_expr_op::isa() const;
1107 friend ast_expr_op_pdiv_q
ast_expr_op::as
<ast_expr_op_pdiv_q
>() const;
1108 static const auto type
= isl_ast_expr_op_pdiv_q
;
1111 inline explicit ast_expr_op_pdiv_q(__isl_take isl_ast_expr
*ptr
);
1114 inline /* implicit */ ast_expr_op_pdiv_q();
1115 inline /* implicit */ ast_expr_op_pdiv_q(const ast_expr_op_pdiv_q
&obj
);
1116 inline ast_expr_op_pdiv_q
&operator=(ast_expr_op_pdiv_q obj
);
1117 inline isl::checked::ctx
ctx() const;
1121 // declarations for isl::ast_expr_op_pdiv_r
1123 class ast_expr_op_pdiv_r
: public ast_expr_op
{
1125 friend boolean
ast_expr_op::isa() const;
1126 friend ast_expr_op_pdiv_r
ast_expr_op::as
<ast_expr_op_pdiv_r
>() const;
1127 static const auto type
= isl_ast_expr_op_pdiv_r
;
1130 inline explicit ast_expr_op_pdiv_r(__isl_take isl_ast_expr
*ptr
);
1133 inline /* implicit */ ast_expr_op_pdiv_r();
1134 inline /* implicit */ ast_expr_op_pdiv_r(const ast_expr_op_pdiv_r
&obj
);
1135 inline ast_expr_op_pdiv_r
&operator=(ast_expr_op_pdiv_r obj
);
1136 inline isl::checked::ctx
ctx() const;
1140 // declarations for isl::ast_expr_op_select
1142 class ast_expr_op_select
: public ast_expr_op
{
1144 friend boolean
ast_expr_op::isa() const;
1145 friend ast_expr_op_select
ast_expr_op::as
<ast_expr_op_select
>() const;
1146 static const auto type
= isl_ast_expr_op_select
;
1149 inline explicit ast_expr_op_select(__isl_take isl_ast_expr
*ptr
);
1152 inline /* implicit */ ast_expr_op_select();
1153 inline /* implicit */ ast_expr_op_select(const ast_expr_op_select
&obj
);
1154 inline ast_expr_op_select
&operator=(ast_expr_op_select obj
);
1155 inline isl::checked::ctx
ctx() const;
1159 // declarations for isl::ast_expr_op_sub
1161 class ast_expr_op_sub
: public ast_expr_op
{
1163 friend boolean
ast_expr_op::isa() const;
1164 friend ast_expr_op_sub
ast_expr_op::as
<ast_expr_op_sub
>() const;
1165 static const auto type
= isl_ast_expr_op_sub
;
1168 inline explicit ast_expr_op_sub(__isl_take isl_ast_expr
*ptr
);
1171 inline /* implicit */ ast_expr_op_sub();
1172 inline /* implicit */ ast_expr_op_sub(const ast_expr_op_sub
&obj
);
1173 inline ast_expr_op_sub
&operator=(ast_expr_op_sub obj
);
1174 inline isl::checked::ctx
ctx() const;
1178 // declarations for isl::ast_expr_op_zdiv_r
1180 class ast_expr_op_zdiv_r
: public ast_expr_op
{
1182 friend boolean
ast_expr_op::isa() const;
1183 friend ast_expr_op_zdiv_r
ast_expr_op::as
<ast_expr_op_zdiv_r
>() const;
1184 static const auto type
= isl_ast_expr_op_zdiv_r
;
1187 inline explicit ast_expr_op_zdiv_r(__isl_take isl_ast_expr
*ptr
);
1190 inline /* implicit */ ast_expr_op_zdiv_r();
1191 inline /* implicit */ ast_expr_op_zdiv_r(const ast_expr_op_zdiv_r
&obj
);
1192 inline ast_expr_op_zdiv_r
&operator=(ast_expr_op_zdiv_r obj
);
1193 inline isl::checked::ctx
ctx() const;
1197 // declarations for isl::ast_node
1198 inline ast_node
manage(__isl_take isl_ast_node
*ptr
);
1199 inline ast_node
manage_copy(__isl_keep isl_ast_node
*ptr
);
1202 friend inline ast_node
manage(__isl_take isl_ast_node
*ptr
);
1203 friend inline ast_node
manage_copy(__isl_keep isl_ast_node
*ptr
);
1206 isl_ast_node
*ptr
= nullptr;
1208 inline explicit ast_node(__isl_take isl_ast_node
*ptr
);
1211 inline /* implicit */ ast_node();
1212 inline /* implicit */ ast_node(const ast_node
&obj
);
1213 inline ast_node
&operator=(ast_node obj
);
1215 inline __isl_give isl_ast_node
*copy() const &;
1216 inline __isl_give isl_ast_node
*copy() && = delete;
1217 inline __isl_keep isl_ast_node
*get() const;
1218 inline __isl_give isl_ast_node
*release();
1219 inline bool is_null() const;
1221 template <typename T
,
1222 typename
= typename
std::enable_if
<std::is_same
<
1223 const decltype(isl_ast_node_get_type(NULL
)),
1224 const T
>::value
>::type
>
1225 inline boolean
isa_type(T subtype
) const;
1227 template <class T
> inline boolean
isa() const;
1228 template <class T
> inline T
as() const;
1229 inline isl::checked::ctx
ctx() const;
1231 inline isl::checked::ast_node
map_descendant_bottom_up(const std::function
<isl::checked::ast_node(isl::checked::ast_node
)> &fn
) const;
1232 inline std::string
to_C_str() const;
1233 inline isl::checked::ast_node_list
to_list() const;
1236 // declarations for isl::ast_node_block
1238 class ast_node_block
: public ast_node
{
1240 friend boolean
ast_node::isa() const;
1241 friend ast_node_block
ast_node::as
<ast_node_block
>() const;
1242 static const auto type
= isl_ast_node_block
;
1245 inline explicit ast_node_block(__isl_take isl_ast_node
*ptr
);
1248 inline /* implicit */ ast_node_block();
1249 inline /* implicit */ ast_node_block(const ast_node_block
&obj
);
1250 inline explicit ast_node_block(isl::checked::ast_node_list list
);
1251 inline ast_node_block
&operator=(ast_node_block obj
);
1252 inline isl::checked::ctx
ctx() const;
1254 inline isl::checked::ast_node_list
children() const;
1255 inline isl::checked::ast_node_list
get_children() const;
1258 // declarations for isl::ast_node_for
1260 class ast_node_for
: public ast_node
{
1262 friend boolean
ast_node::isa() const;
1263 friend ast_node_for
ast_node::as
<ast_node_for
>() const;
1264 static const auto type
= isl_ast_node_for
;
1267 inline explicit ast_node_for(__isl_take isl_ast_node
*ptr
);
1270 inline /* implicit */ ast_node_for();
1271 inline /* implicit */ ast_node_for(const ast_node_for
&obj
);
1272 inline ast_node_for
&operator=(ast_node_for obj
);
1273 inline isl::checked::ctx
ctx() const;
1275 inline isl::checked::ast_node
body() const;
1276 inline isl::checked::ast_node
get_body() const;
1277 inline isl::checked::ast_expr
cond() const;
1278 inline isl::checked::ast_expr
get_cond() const;
1279 inline isl::checked::ast_expr
inc() const;
1280 inline isl::checked::ast_expr
get_inc() const;
1281 inline isl::checked::ast_expr
init() const;
1282 inline isl::checked::ast_expr
get_init() const;
1283 inline boolean
is_degenerate() const;
1284 inline isl::checked::ast_expr
iterator() const;
1285 inline isl::checked::ast_expr
get_iterator() const;
1288 // declarations for isl::ast_node_if
1290 class ast_node_if
: public ast_node
{
1292 friend boolean
ast_node::isa() const;
1293 friend ast_node_if
ast_node::as
<ast_node_if
>() const;
1294 static const auto type
= isl_ast_node_if
;
1297 inline explicit ast_node_if(__isl_take isl_ast_node
*ptr
);
1300 inline /* implicit */ ast_node_if();
1301 inline /* implicit */ ast_node_if(const ast_node_if
&obj
);
1302 inline ast_node_if
&operator=(ast_node_if obj
);
1303 inline isl::checked::ctx
ctx() const;
1305 inline isl::checked::ast_expr
cond() const;
1306 inline isl::checked::ast_expr
get_cond() const;
1307 inline isl::checked::ast_node
else_node() const;
1308 inline isl::checked::ast_node
get_else_node() const;
1309 inline boolean
has_else_node() const;
1310 inline isl::checked::ast_node
then_node() const;
1311 inline isl::checked::ast_node
get_then_node() const;
1314 // declarations for isl::ast_node_list
1315 inline ast_node_list
manage(__isl_take isl_ast_node_list
*ptr
);
1316 inline ast_node_list
manage_copy(__isl_keep isl_ast_node_list
*ptr
);
1318 class ast_node_list
{
1319 friend inline ast_node_list
manage(__isl_take isl_ast_node_list
*ptr
);
1320 friend inline ast_node_list
manage_copy(__isl_keep isl_ast_node_list
*ptr
);
1323 isl_ast_node_list
*ptr
= nullptr;
1325 inline explicit ast_node_list(__isl_take isl_ast_node_list
*ptr
);
1328 inline /* implicit */ ast_node_list();
1329 inline /* implicit */ ast_node_list(const ast_node_list
&obj
);
1330 inline explicit ast_node_list(isl::checked::ctx ctx
, int n
);
1331 inline explicit ast_node_list(isl::checked::ast_node el
);
1332 inline ast_node_list
&operator=(ast_node_list obj
);
1333 inline ~ast_node_list();
1334 inline __isl_give isl_ast_node_list
*copy() const &;
1335 inline __isl_give isl_ast_node_list
*copy() && = delete;
1336 inline __isl_keep isl_ast_node_list
*get() const;
1337 inline __isl_give isl_ast_node_list
*release();
1338 inline bool is_null() const;
1339 inline isl::checked::ctx
ctx() const;
1341 inline isl::checked::ast_node_list
add(isl::checked::ast_node el
) const;
1342 inline isl::checked::ast_node
at(int index
) const;
1343 inline isl::checked::ast_node
get_at(int index
) const;
1344 inline isl::checked::ast_node_list
clear() const;
1345 inline isl::checked::ast_node_list
concat(isl::checked::ast_node_list list2
) const;
1346 inline isl::checked::ast_node_list
drop(unsigned int first
, unsigned int n
) const;
1347 inline stat
foreach(const std::function
<stat(isl::checked::ast_node
)> &fn
) const;
1348 inline stat
foreach_scc(const std::function
<boolean(isl::checked::ast_node
, isl::checked::ast_node
)> &follows
, const std::function
<stat(isl::checked::ast_node_list
)> &fn
) const;
1349 inline isl::checked::ast_node_list
insert(unsigned int pos
, isl::checked::ast_node el
) const;
1350 inline isl::checked::ast_node_list
set_at(int index
, isl::checked::ast_node el
) const;
1351 inline class size
size() const;
1354 // declarations for isl::ast_node_mark
1356 class ast_node_mark
: public ast_node
{
1358 friend boolean
ast_node::isa() const;
1359 friend ast_node_mark
ast_node::as
<ast_node_mark
>() const;
1360 static const auto type
= isl_ast_node_mark
;
1363 inline explicit ast_node_mark(__isl_take isl_ast_node
*ptr
);
1366 inline /* implicit */ ast_node_mark();
1367 inline /* implicit */ ast_node_mark(const ast_node_mark
&obj
);
1368 inline ast_node_mark
&operator=(ast_node_mark obj
);
1369 inline isl::checked::ctx
ctx() const;
1371 inline isl::checked::id
id() const;
1372 inline isl::checked::id
get_id() const;
1373 inline isl::checked::ast_node
node() const;
1374 inline isl::checked::ast_node
get_node() const;
1377 // declarations for isl::ast_node_user
1379 class ast_node_user
: public ast_node
{
1381 friend boolean
ast_node::isa() const;
1382 friend ast_node_user
ast_node::as
<ast_node_user
>() const;
1383 static const auto type
= isl_ast_node_user
;
1386 inline explicit ast_node_user(__isl_take isl_ast_node
*ptr
);
1389 inline /* implicit */ ast_node_user();
1390 inline /* implicit */ ast_node_user(const ast_node_user
&obj
);
1391 inline explicit ast_node_user(isl::checked::ast_expr expr
);
1392 inline ast_node_user
&operator=(ast_node_user obj
);
1393 inline isl::checked::ctx
ctx() const;
1395 inline isl::checked::ast_expr
expr() const;
1396 inline isl::checked::ast_expr
get_expr() const;
1399 // declarations for isl::basic_map
1400 inline basic_map
manage(__isl_take isl_basic_map
*ptr
);
1401 inline basic_map
manage_copy(__isl_keep isl_basic_map
*ptr
);
1404 friend inline basic_map
manage(__isl_take isl_basic_map
*ptr
);
1405 friend inline basic_map
manage_copy(__isl_keep isl_basic_map
*ptr
);
1408 isl_basic_map
*ptr
= nullptr;
1410 inline explicit basic_map(__isl_take isl_basic_map
*ptr
);
1413 inline /* implicit */ basic_map();
1414 inline /* implicit */ basic_map(const basic_map
&obj
);
1415 inline explicit basic_map(isl::checked::ctx ctx
, const std::string
&str
);
1416 inline basic_map
&operator=(basic_map obj
);
1417 inline ~basic_map();
1418 inline __isl_give isl_basic_map
*copy() const &;
1419 inline __isl_give isl_basic_map
*copy() && = delete;
1420 inline __isl_keep isl_basic_map
*get() const;
1421 inline __isl_give isl_basic_map
*release();
1422 inline bool is_null() const;
1423 inline isl::checked::ctx
ctx() const;
1425 inline isl::checked::basic_map
affine_hull() const;
1426 inline isl::checked::basic_map
apply_domain(isl::checked::basic_map bmap2
) const;
1427 inline isl::checked::map
apply_domain(const isl::checked::map
&map2
) const;
1428 inline isl::checked::union_map
apply_domain(const isl::checked::union_map
&umap2
) const;
1429 inline isl::checked::basic_map
apply_range(isl::checked::basic_map bmap2
) const;
1430 inline isl::checked::map
apply_range(const isl::checked::map
&map2
) const;
1431 inline isl::checked::union_map
apply_range(const isl::checked::union_map
&umap2
) const;
1432 inline isl::checked::map
as_map() const;
1433 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
1434 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
1435 inline isl::checked::union_pw_multi_aff
as_union_pw_multi_aff() const;
1436 inline isl::checked::set
bind_domain(const isl::checked::multi_id
&tuple
) const;
1437 inline isl::checked::set
bind_range(const isl::checked::multi_id
&tuple
) const;
1438 inline isl::checked::map
coalesce() const;
1439 inline isl::checked::map
complement() const;
1440 inline isl::checked::union_map
compute_divs() const;
1441 inline isl::checked::map
curry() const;
1442 inline isl::checked::basic_set
deltas() const;
1443 inline isl::checked::basic_map
detect_equalities() const;
1444 inline isl::checked::set
domain() const;
1445 inline isl::checked::map
domain_factor_domain() const;
1446 inline isl::checked::map
domain_factor_range() const;
1447 inline isl::checked::union_map
domain_map() const;
1448 inline isl::checked::union_pw_multi_aff
domain_map_union_pw_multi_aff() const;
1449 inline isl::checked::map
domain_product(const isl::checked::map
&map2
) const;
1450 inline isl::checked::union_map
domain_product(const isl::checked::union_map
&umap2
) const;
1451 inline isl::checked::map
domain_reverse() const;
1452 inline class size
domain_tuple_dim() const;
1453 inline isl::checked::id
domain_tuple_id() const;
1454 inline isl::checked::map
drop_unused_params() const;
1455 inline isl::checked::map
eq_at(const isl::checked::multi_pw_aff
&mpa
) const;
1456 inline isl::checked::union_map
eq_at(const isl::checked::multi_union_pw_aff
&mupa
) const;
1457 inline boolean
every_map(const std::function
<boolean(isl::checked::map
)> &test
) const;
1458 inline isl::checked::map
extract_map(const isl::checked::space
&space
) const;
1459 inline isl::checked::map
factor_domain() const;
1460 inline isl::checked::map
factor_range() const;
1461 inline isl::checked::map
fixed_power(const isl::checked::val
&exp
) const;
1462 inline isl::checked::map
fixed_power(long exp
) const;
1463 inline isl::checked::basic_map
flatten() const;
1464 inline isl::checked::basic_map
flatten_domain() const;
1465 inline isl::checked::basic_map
flatten_range() const;
1466 inline stat
foreach_basic_map(const std::function
<stat(isl::checked::basic_map
)> &fn
) const;
1467 inline stat
foreach_map(const std::function
<stat(isl::checked::map
)> &fn
) const;
1468 inline isl::checked::basic_map
gist(isl::checked::basic_map context
) const;
1469 inline isl::checked::map
gist(const isl::checked::map
&context
) const;
1470 inline isl::checked::union_map
gist(const isl::checked::union_map
&context
) const;
1471 inline isl::checked::map
gist_domain(const isl::checked::set
&context
) const;
1472 inline isl::checked::union_map
gist_domain(const isl::checked::union_set
&uset
) const;
1473 inline isl::checked::map
gist_params(const isl::checked::set
&context
) const;
1474 inline isl::checked::union_map
gist_range(const isl::checked::union_set
&uset
) const;
1475 inline boolean
has_domain_tuple_id() const;
1476 inline boolean
has_range_tuple_id() const;
1477 inline isl::checked::basic_map
intersect(isl::checked::basic_map bmap2
) const;
1478 inline isl::checked::map
intersect(const isl::checked::map
&map2
) const;
1479 inline isl::checked::union_map
intersect(const isl::checked::union_map
&umap2
) const;
1480 inline isl::checked::basic_map
intersect_domain(isl::checked::basic_set bset
) const;
1481 inline isl::checked::map
intersect_domain(const isl::checked::set
&set
) const;
1482 inline isl::checked::union_map
intersect_domain(const isl::checked::space
&space
) const;
1483 inline isl::checked::union_map
intersect_domain(const isl::checked::union_set
&uset
) const;
1484 inline isl::checked::basic_map
intersect_domain(const isl::checked::point
&bset
) const;
1485 inline isl::checked::map
intersect_domain_factor_domain(const isl::checked::map
&factor
) const;
1486 inline isl::checked::union_map
intersect_domain_factor_domain(const isl::checked::union_map
&factor
) const;
1487 inline isl::checked::map
intersect_domain_factor_range(const isl::checked::map
&factor
) const;
1488 inline isl::checked::union_map
intersect_domain_factor_range(const isl::checked::union_map
&factor
) const;
1489 inline isl::checked::map
intersect_domain_wrapped_domain(const isl::checked::set
&domain
) const;
1490 inline isl::checked::union_map
intersect_domain_wrapped_domain(const isl::checked::union_set
&domain
) const;
1491 inline isl::checked::basic_map
intersect_params(isl::checked::basic_set bset
) const;
1492 inline isl::checked::map
intersect_params(const isl::checked::set
¶ms
) const;
1493 inline isl::checked::basic_map
intersect_params(const isl::checked::point
&bset
) const;
1494 inline isl::checked::basic_map
intersect_range(isl::checked::basic_set bset
) const;
1495 inline isl::checked::map
intersect_range(const isl::checked::set
&set
) const;
1496 inline isl::checked::union_map
intersect_range(const isl::checked::space
&space
) const;
1497 inline isl::checked::union_map
intersect_range(const isl::checked::union_set
&uset
) const;
1498 inline isl::checked::basic_map
intersect_range(const isl::checked::point
&bset
) const;
1499 inline isl::checked::map
intersect_range_factor_domain(const isl::checked::map
&factor
) const;
1500 inline isl::checked::union_map
intersect_range_factor_domain(const isl::checked::union_map
&factor
) const;
1501 inline isl::checked::map
intersect_range_factor_range(const isl::checked::map
&factor
) const;
1502 inline isl::checked::union_map
intersect_range_factor_range(const isl::checked::union_map
&factor
) const;
1503 inline isl::checked::map
intersect_range_wrapped_domain(const isl::checked::set
&domain
) const;
1504 inline isl::checked::union_map
intersect_range_wrapped_domain(const isl::checked::union_set
&domain
) const;
1505 inline boolean
is_bijective() const;
1506 inline boolean
is_disjoint(const isl::checked::map
&map2
) const;
1507 inline boolean
is_disjoint(const isl::checked::union_map
&umap2
) const;
1508 inline boolean
is_empty() const;
1509 inline boolean
is_equal(const isl::checked::basic_map
&bmap2
) const;
1510 inline boolean
is_equal(const isl::checked::map
&map2
) const;
1511 inline boolean
is_equal(const isl::checked::union_map
&umap2
) const;
1512 inline boolean
is_injective() const;
1513 inline boolean
is_single_valued() const;
1514 inline boolean
is_strict_subset(const isl::checked::map
&map2
) const;
1515 inline boolean
is_strict_subset(const isl::checked::union_map
&umap2
) const;
1516 inline boolean
is_subset(const isl::checked::basic_map
&bmap2
) const;
1517 inline boolean
is_subset(const isl::checked::map
&map2
) const;
1518 inline boolean
is_subset(const isl::checked::union_map
&umap2
) const;
1519 inline boolean
isa_map() const;
1520 inline isl::checked::map
lex_ge_at(const isl::checked::multi_pw_aff
&mpa
) const;
1521 inline isl::checked::map
lex_gt_at(const isl::checked::multi_pw_aff
&mpa
) const;
1522 inline isl::checked::map
lex_le_at(const isl::checked::multi_pw_aff
&mpa
) const;
1523 inline isl::checked::map
lex_lt_at(const isl::checked::multi_pw_aff
&mpa
) const;
1524 inline isl::checked::map
lexmax() const;
1525 inline isl::checked::pw_multi_aff
lexmax_pw_multi_aff() const;
1526 inline isl::checked::map
lexmin() const;
1527 inline isl::checked::pw_multi_aff
lexmin_pw_multi_aff() const;
1528 inline isl::checked::map
lower_bound(const isl::checked::multi_pw_aff
&lower
) const;
1529 inline isl::checked::map_list
map_list() const;
1530 inline isl::checked::multi_pw_aff
max_multi_pw_aff() const;
1531 inline isl::checked::multi_pw_aff
min_multi_pw_aff() const;
1532 inline class size
n_basic_map() const;
1533 inline isl::checked::set
params() const;
1534 inline isl::checked::basic_map
polyhedral_hull() const;
1535 inline isl::checked::map
preimage_domain(const isl::checked::multi_aff
&ma
) const;
1536 inline isl::checked::map
preimage_domain(const isl::checked::multi_pw_aff
&mpa
) const;
1537 inline isl::checked::map
preimage_domain(const isl::checked::pw_multi_aff
&pma
) const;
1538 inline isl::checked::union_map
preimage_domain(const isl::checked::union_pw_multi_aff
&upma
) const;
1539 inline isl::checked::map
preimage_range(const isl::checked::multi_aff
&ma
) const;
1540 inline isl::checked::map
preimage_range(const isl::checked::pw_multi_aff
&pma
) const;
1541 inline isl::checked::union_map
preimage_range(const isl::checked::union_pw_multi_aff
&upma
) const;
1542 inline isl::checked::map
product(const isl::checked::map
&map2
) const;
1543 inline isl::checked::union_map
product(const isl::checked::union_map
&umap2
) const;
1544 inline isl::checked::map
project_out_all_params() const;
1545 inline isl::checked::map
project_out_param(const isl::checked::id
&id
) const;
1546 inline isl::checked::map
project_out_param(const std::string
&id
) const;
1547 inline isl::checked::map
project_out_param(const isl::checked::id_list
&list
) const;
1548 inline isl::checked::set
range() const;
1549 inline isl::checked::map
range_factor_domain() const;
1550 inline isl::checked::map
range_factor_range() const;
1551 inline isl::checked::fixed_box
range_lattice_tile() const;
1552 inline isl::checked::union_map
range_map() const;
1553 inline isl::checked::map
range_product(const isl::checked::map
&map2
) const;
1554 inline isl::checked::union_map
range_product(const isl::checked::union_map
&umap2
) const;
1555 inline isl::checked::map
range_reverse() const;
1556 inline isl::checked::fixed_box
range_simple_fixed_box_hull() const;
1557 inline class size
range_tuple_dim() const;
1558 inline isl::checked::id
range_tuple_id() const;
1559 inline isl::checked::basic_map
reverse() const;
1560 inline isl::checked::basic_map
sample() const;
1561 inline isl::checked::map
set_domain_tuple(const isl::checked::id
&id
) const;
1562 inline isl::checked::map
set_domain_tuple(const std::string
&id
) const;
1563 inline isl::checked::map
set_range_tuple(const isl::checked::id
&id
) const;
1564 inline isl::checked::map
set_range_tuple(const std::string
&id
) const;
1565 inline isl::checked::space
space() const;
1566 inline isl::checked::map
subtract(const isl::checked::map
&map2
) const;
1567 inline isl::checked::union_map
subtract(const isl::checked::union_map
&umap2
) const;
1568 inline isl::checked::union_map
subtract_domain(const isl::checked::union_set
&dom
) const;
1569 inline isl::checked::union_map
subtract_range(const isl::checked::union_set
&dom
) const;
1570 inline isl::checked::map_list
to_list() const;
1571 inline isl::checked::union_map
to_union_map() const;
1572 inline isl::checked::map
uncurry() const;
1573 inline isl::checked::map
unite(isl::checked::basic_map bmap2
) const;
1574 inline isl::checked::map
unite(const isl::checked::map
&map2
) const;
1575 inline isl::checked::union_map
unite(const isl::checked::union_map
&umap2
) const;
1576 inline isl::checked::basic_map
unshifted_simple_hull() const;
1577 inline isl::checked::map
upper_bound(const isl::checked::multi_pw_aff
&upper
) const;
1578 inline isl::checked::set
wrap() const;
1579 inline isl::checked::map
zip() const;
1582 // declarations for isl::basic_set
1583 inline basic_set
manage(__isl_take isl_basic_set
*ptr
);
1584 inline basic_set
manage_copy(__isl_keep isl_basic_set
*ptr
);
1587 friend inline basic_set
manage(__isl_take isl_basic_set
*ptr
);
1588 friend inline basic_set
manage_copy(__isl_keep isl_basic_set
*ptr
);
1591 isl_basic_set
*ptr
= nullptr;
1593 inline explicit basic_set(__isl_take isl_basic_set
*ptr
);
1596 inline /* implicit */ basic_set();
1597 inline /* implicit */ basic_set(const basic_set
&obj
);
1598 inline /* implicit */ basic_set(isl::checked::point pnt
);
1599 inline explicit basic_set(isl::checked::ctx ctx
, const std::string
&str
);
1600 inline basic_set
&operator=(basic_set obj
);
1601 inline ~basic_set();
1602 inline __isl_give isl_basic_set
*copy() const &;
1603 inline __isl_give isl_basic_set
*copy() && = delete;
1604 inline __isl_keep isl_basic_set
*get() const;
1605 inline __isl_give isl_basic_set
*release();
1606 inline bool is_null() const;
1607 inline isl::checked::ctx
ctx() const;
1609 inline isl::checked::basic_set
affine_hull() const;
1610 inline isl::checked::basic_set
apply(isl::checked::basic_map bmap
) const;
1611 inline isl::checked::set
apply(const isl::checked::map
&map
) const;
1612 inline isl::checked::union_set
apply(const isl::checked::union_map
&umap
) const;
1613 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
1614 inline isl::checked::set
as_set() const;
1615 inline isl::checked::set
bind(const isl::checked::multi_id
&tuple
) const;
1616 inline isl::checked::set
coalesce() const;
1617 inline isl::checked::set
complement() const;
1618 inline isl::checked::union_set
compute_divs() const;
1619 inline isl::checked::basic_set
detect_equalities() const;
1620 inline isl::checked::val
dim_max_val(int pos
) const;
1621 inline isl::checked::val
dim_min_val(int pos
) const;
1622 inline isl::checked::set
drop_unused_params() const;
1623 inline boolean
every_set(const std::function
<boolean(isl::checked::set
)> &test
) const;
1624 inline isl::checked::set
extract_set(const isl::checked::space
&space
) const;
1625 inline isl::checked::basic_set
flatten() const;
1626 inline stat
foreach_basic_set(const std::function
<stat(isl::checked::basic_set
)> &fn
) const;
1627 inline stat
foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const;
1628 inline stat
foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const;
1629 inline isl::checked::basic_set
gist(isl::checked::basic_set context
) const;
1630 inline isl::checked::set
gist(const isl::checked::set
&context
) const;
1631 inline isl::checked::union_set
gist(const isl::checked::union_set
&context
) const;
1632 inline isl::checked::basic_set
gist(const isl::checked::point
&context
) const;
1633 inline isl::checked::set
gist_params(const isl::checked::set
&context
) const;
1634 inline isl::checked::map
identity() const;
1635 inline isl::checked::pw_aff
indicator_function() const;
1636 inline isl::checked::map
insert_domain(const isl::checked::space
&domain
) const;
1637 inline isl::checked::basic_set
intersect(isl::checked::basic_set bset2
) const;
1638 inline isl::checked::set
intersect(const isl::checked::set
&set2
) const;
1639 inline isl::checked::union_set
intersect(const isl::checked::union_set
&uset2
) const;
1640 inline isl::checked::basic_set
intersect(const isl::checked::point
&bset2
) const;
1641 inline isl::checked::basic_set
intersect_params(isl::checked::basic_set bset2
) const;
1642 inline isl::checked::set
intersect_params(const isl::checked::set
¶ms
) const;
1643 inline isl::checked::basic_set
intersect_params(const isl::checked::point
&bset2
) const;
1644 inline boolean
involves_locals() const;
1645 inline boolean
is_disjoint(const isl::checked::set
&set2
) const;
1646 inline boolean
is_disjoint(const isl::checked::union_set
&uset2
) const;
1647 inline boolean
is_empty() const;
1648 inline boolean
is_equal(const isl::checked::basic_set
&bset2
) const;
1649 inline boolean
is_equal(const isl::checked::set
&set2
) const;
1650 inline boolean
is_equal(const isl::checked::union_set
&uset2
) const;
1651 inline boolean
is_equal(const isl::checked::point
&bset2
) const;
1652 inline boolean
is_singleton() const;
1653 inline boolean
is_strict_subset(const isl::checked::set
&set2
) const;
1654 inline boolean
is_strict_subset(const isl::checked::union_set
&uset2
) const;
1655 inline boolean
is_subset(const isl::checked::basic_set
&bset2
) const;
1656 inline boolean
is_subset(const isl::checked::set
&set2
) const;
1657 inline boolean
is_subset(const isl::checked::union_set
&uset2
) const;
1658 inline boolean
is_subset(const isl::checked::point
&bset2
) const;
1659 inline boolean
is_wrapping() const;
1660 inline boolean
isa_set() const;
1661 inline isl::checked::fixed_box
lattice_tile() const;
1662 inline isl::checked::set
lexmax() const;
1663 inline isl::checked::pw_multi_aff
lexmax_pw_multi_aff() const;
1664 inline isl::checked::set
lexmin() const;
1665 inline isl::checked::pw_multi_aff
lexmin_pw_multi_aff() const;
1666 inline isl::checked::set
lower_bound(const isl::checked::multi_pw_aff
&lower
) const;
1667 inline isl::checked::set
lower_bound(const isl::checked::multi_val
&lower
) const;
1668 inline isl::checked::multi_pw_aff
max_multi_pw_aff() const;
1669 inline isl::checked::val
max_val(const isl::checked::aff
&obj
) const;
1670 inline isl::checked::multi_pw_aff
min_multi_pw_aff() const;
1671 inline isl::checked::val
min_val(const isl::checked::aff
&obj
) const;
1672 inline class size
n_basic_set() const;
1673 inline isl::checked::pw_aff
param_pw_aff_on_domain(const isl::checked::id
&id
) const;
1674 inline isl::checked::pw_aff
param_pw_aff_on_domain(const std::string
&id
) const;
1675 inline isl::checked::basic_set
params() const;
1676 inline isl::checked::multi_val
plain_multi_val_if_fixed() const;
1677 inline isl::checked::basic_set
polyhedral_hull() const;
1678 inline isl::checked::set
preimage(const isl::checked::multi_aff
&ma
) const;
1679 inline isl::checked::set
preimage(const isl::checked::multi_pw_aff
&mpa
) const;
1680 inline isl::checked::set
preimage(const isl::checked::pw_multi_aff
&pma
) const;
1681 inline isl::checked::union_set
preimage(const isl::checked::union_pw_multi_aff
&upma
) const;
1682 inline isl::checked::set
product(const isl::checked::set
&set2
) const;
1683 inline isl::checked::set
project_out_all_params() const;
1684 inline isl::checked::set
project_out_param(const isl::checked::id
&id
) const;
1685 inline isl::checked::set
project_out_param(const std::string
&id
) const;
1686 inline isl::checked::set
project_out_param(const isl::checked::id_list
&list
) const;
1687 inline isl::checked::pw_aff
pw_aff_on_domain(const isl::checked::val
&v
) const;
1688 inline isl::checked::pw_aff
pw_aff_on_domain(long v
) const;
1689 inline isl::checked::pw_multi_aff
pw_multi_aff_on_domain(const isl::checked::multi_val
&mv
) const;
1690 inline isl::checked::basic_set
sample() const;
1691 inline isl::checked::point
sample_point() const;
1692 inline isl::checked::set_list
set_list() const;
1693 inline isl::checked::fixed_box
simple_fixed_box_hull() const;
1694 inline isl::checked::space
space() const;
1695 inline isl::checked::val
stride(int pos
) const;
1696 inline isl::checked::set
subtract(const isl::checked::set
&set2
) const;
1697 inline isl::checked::union_set
subtract(const isl::checked::union_set
&uset2
) const;
1698 inline isl::checked::set_list
to_list() const;
1699 inline isl::checked::set
to_set() const;
1700 inline isl::checked::union_set
to_union_set() const;
1701 inline isl::checked::map
translation() const;
1702 inline class size
tuple_dim() const;
1703 inline isl::checked::set
unbind_params(const isl::checked::multi_id
&tuple
) const;
1704 inline isl::checked::map
unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const;
1705 inline isl::checked::set
unite(isl::checked::basic_set bset2
) const;
1706 inline isl::checked::set
unite(const isl::checked::set
&set2
) const;
1707 inline isl::checked::union_set
unite(const isl::checked::union_set
&uset2
) const;
1708 inline isl::checked::set
unite(const isl::checked::point
&bset2
) const;
1709 inline isl::checked::basic_set
unshifted_simple_hull() const;
1710 inline isl::checked::map
unwrap() const;
1711 inline isl::checked::set
upper_bound(const isl::checked::multi_pw_aff
&upper
) const;
1712 inline isl::checked::set
upper_bound(const isl::checked::multi_val
&upper
) const;
1713 inline isl::checked::set
wrapped_reverse() const;
1716 // declarations for isl::fixed_box
1717 inline fixed_box
manage(__isl_take isl_fixed_box
*ptr
);
1718 inline fixed_box
manage_copy(__isl_keep isl_fixed_box
*ptr
);
1721 friend inline fixed_box
manage(__isl_take isl_fixed_box
*ptr
);
1722 friend inline fixed_box
manage_copy(__isl_keep isl_fixed_box
*ptr
);
1725 isl_fixed_box
*ptr
= nullptr;
1727 inline explicit fixed_box(__isl_take isl_fixed_box
*ptr
);
1730 inline /* implicit */ fixed_box();
1731 inline /* implicit */ fixed_box(const fixed_box
&obj
);
1732 inline explicit fixed_box(isl::checked::ctx ctx
, const std::string
&str
);
1733 inline fixed_box
&operator=(fixed_box obj
);
1734 inline ~fixed_box();
1735 inline __isl_give isl_fixed_box
*copy() const &;
1736 inline __isl_give isl_fixed_box
*copy() && = delete;
1737 inline __isl_keep isl_fixed_box
*get() const;
1738 inline __isl_give isl_fixed_box
*release();
1739 inline bool is_null() const;
1740 inline isl::checked::ctx
ctx() const;
1742 inline boolean
is_valid() const;
1743 inline isl::checked::multi_aff
offset() const;
1744 inline isl::checked::multi_aff
get_offset() const;
1745 inline isl::checked::multi_val
size() const;
1746 inline isl::checked::multi_val
get_size() const;
1747 inline isl::checked::space
space() const;
1748 inline isl::checked::space
get_space() const;
1751 // declarations for isl::id
1752 inline id
manage(__isl_take isl_id
*ptr
);
1753 inline id
manage_copy(__isl_keep isl_id
*ptr
);
1756 friend inline id
manage(__isl_take isl_id
*ptr
);
1757 friend inline id
manage_copy(__isl_keep isl_id
*ptr
);
1760 isl_id
*ptr
= nullptr;
1762 inline explicit id(__isl_take isl_id
*ptr
);
1765 inline /* implicit */ id();
1766 inline /* implicit */ id(const id
&obj
);
1767 inline explicit id(isl::checked::ctx ctx
, const std::string
&str
);
1768 inline id
&operator=(id obj
);
1770 inline __isl_give isl_id
*copy() const &;
1771 inline __isl_give isl_id
*copy() && = delete;
1772 inline __isl_keep isl_id
*get() const;
1773 inline __isl_give isl_id
*release();
1774 inline bool is_null() const;
1775 inline isl::checked::ctx
ctx() const;
1777 inline std::string
name() const;
1778 inline std::string
get_name() const;
1779 inline isl::checked::id_list
to_list() const;
1781 #if __cplusplus >= 201703L
1782 inline explicit id(isl::checked::ctx ctx
, const std::string
&str
, const std::any
&any
);
1784 std::optional
<T
> try_user() const;
1790 // declarations for isl::id_list
1791 inline id_list
manage(__isl_take isl_id_list
*ptr
);
1792 inline id_list
manage_copy(__isl_keep isl_id_list
*ptr
);
1795 friend inline id_list
manage(__isl_take isl_id_list
*ptr
);
1796 friend inline id_list
manage_copy(__isl_keep isl_id_list
*ptr
);
1799 isl_id_list
*ptr
= nullptr;
1801 inline explicit id_list(__isl_take isl_id_list
*ptr
);
1804 inline /* implicit */ id_list();
1805 inline /* implicit */ id_list(const id_list
&obj
);
1806 inline explicit id_list(isl::checked::ctx ctx
, int n
);
1807 inline explicit id_list(isl::checked::id el
);
1808 inline explicit id_list(isl::checked::ctx ctx
, const std::string
&str
);
1809 inline id_list
&operator=(id_list obj
);
1811 inline __isl_give isl_id_list
*copy() const &;
1812 inline __isl_give isl_id_list
*copy() && = delete;
1813 inline __isl_keep isl_id_list
*get() const;
1814 inline __isl_give isl_id_list
*release();
1815 inline bool is_null() const;
1816 inline isl::checked::ctx
ctx() const;
1818 inline isl::checked::id_list
add(isl::checked::id el
) const;
1819 inline isl::checked::id_list
add(const std::string
&el
) const;
1820 inline isl::checked::id
at(int index
) const;
1821 inline isl::checked::id
get_at(int index
) const;
1822 inline isl::checked::id_list
clear() const;
1823 inline isl::checked::id_list
concat(isl::checked::id_list list2
) const;
1824 inline isl::checked::id_list
drop(unsigned int first
, unsigned int n
) const;
1825 inline stat
foreach(const std::function
<stat(isl::checked::id
)> &fn
) const;
1826 inline stat
foreach_scc(const std::function
<boolean(isl::checked::id
, isl::checked::id
)> &follows
, const std::function
<stat(isl::checked::id_list
)> &fn
) const;
1827 inline isl::checked::id_list
insert(unsigned int pos
, isl::checked::id el
) const;
1828 inline isl::checked::id_list
insert(unsigned int pos
, const std::string
&el
) const;
1829 inline isl::checked::id_list
set_at(int index
, isl::checked::id el
) const;
1830 inline isl::checked::id_list
set_at(int index
, const std::string
&el
) const;
1831 inline class size
size() const;
1834 // declarations for isl::id_to_ast_expr
1835 inline id_to_ast_expr
manage(__isl_take isl_id_to_ast_expr
*ptr
);
1836 inline id_to_ast_expr
manage_copy(__isl_keep isl_id_to_ast_expr
*ptr
);
1838 class id_to_ast_expr
{
1839 friend inline id_to_ast_expr
manage(__isl_take isl_id_to_ast_expr
*ptr
);
1840 friend inline id_to_ast_expr
manage_copy(__isl_keep isl_id_to_ast_expr
*ptr
);
1843 isl_id_to_ast_expr
*ptr
= nullptr;
1845 inline explicit id_to_ast_expr(__isl_take isl_id_to_ast_expr
*ptr
);
1848 inline /* implicit */ id_to_ast_expr();
1849 inline /* implicit */ id_to_ast_expr(const id_to_ast_expr
&obj
);
1850 inline explicit id_to_ast_expr(isl::checked::ctx ctx
, int min_size
);
1851 inline explicit id_to_ast_expr(isl::checked::ctx ctx
, const std::string
&str
);
1852 inline id_to_ast_expr
&operator=(id_to_ast_expr obj
);
1853 inline ~id_to_ast_expr();
1854 inline __isl_give isl_id_to_ast_expr
*copy() const &;
1855 inline __isl_give isl_id_to_ast_expr
*copy() && = delete;
1856 inline __isl_keep isl_id_to_ast_expr
*get() const;
1857 inline __isl_give isl_id_to_ast_expr
*release();
1858 inline bool is_null() const;
1859 inline isl::checked::ctx
ctx() const;
1861 inline boolean
is_equal(const isl::checked::id_to_ast_expr
&hmap2
) const;
1862 inline isl::checked::id_to_ast_expr
set(isl::checked::id key
, isl::checked::ast_expr val
) const;
1863 inline isl::checked::id_to_ast_expr
set(const std::string
&key
, const isl::checked::ast_expr
&val
) const;
1866 // declarations for isl::id_to_id
1867 inline id_to_id
manage(__isl_take isl_id_to_id
*ptr
);
1868 inline id_to_id
manage_copy(__isl_keep isl_id_to_id
*ptr
);
1871 friend inline id_to_id
manage(__isl_take isl_id_to_id
*ptr
);
1872 friend inline id_to_id
manage_copy(__isl_keep isl_id_to_id
*ptr
);
1875 isl_id_to_id
*ptr
= nullptr;
1877 inline explicit id_to_id(__isl_take isl_id_to_id
*ptr
);
1880 inline /* implicit */ id_to_id();
1881 inline /* implicit */ id_to_id(const id_to_id
&obj
);
1882 inline explicit id_to_id(isl::checked::ctx ctx
, int min_size
);
1883 inline explicit id_to_id(isl::checked::ctx ctx
, const std::string
&str
);
1884 inline id_to_id
&operator=(id_to_id obj
);
1886 inline __isl_give isl_id_to_id
*copy() const &;
1887 inline __isl_give isl_id_to_id
*copy() && = delete;
1888 inline __isl_keep isl_id_to_id
*get() const;
1889 inline __isl_give isl_id_to_id
*release();
1890 inline bool is_null() const;
1891 inline isl::checked::ctx
ctx() const;
1893 inline boolean
is_equal(const isl::checked::id_to_id
&hmap2
) const;
1894 inline isl::checked::id_to_id
set(isl::checked::id key
, isl::checked::id val
) const;
1895 inline isl::checked::id_to_id
set(const isl::checked::id
&key
, const std::string
&val
) const;
1896 inline isl::checked::id_to_id
set(const std::string
&key
, const isl::checked::id
&val
) const;
1897 inline isl::checked::id_to_id
set(const std::string
&key
, const std::string
&val
) const;
1900 // declarations for isl::map
1901 inline map
manage(__isl_take isl_map
*ptr
);
1902 inline map
manage_copy(__isl_keep isl_map
*ptr
);
1905 friend inline map
manage(__isl_take isl_map
*ptr
);
1906 friend inline map
manage_copy(__isl_keep isl_map
*ptr
);
1909 isl_map
*ptr
= nullptr;
1911 inline explicit map(__isl_take isl_map
*ptr
);
1914 inline /* implicit */ map();
1915 inline /* implicit */ map(const map
&obj
);
1916 inline /* implicit */ map(isl::checked::basic_map bmap
);
1917 inline explicit map(isl::checked::ctx ctx
, const std::string
&str
);
1918 inline map
&operator=(map obj
);
1920 inline __isl_give isl_map
*copy() const &;
1921 inline __isl_give isl_map
*copy() && = delete;
1922 inline __isl_keep isl_map
*get() const;
1923 inline __isl_give isl_map
*release();
1924 inline bool is_null() const;
1925 inline isl::checked::ctx
ctx() const;
1927 inline isl::checked::basic_map
affine_hull() const;
1928 inline isl::checked::map
apply_domain(isl::checked::map map2
) const;
1929 inline isl::checked::union_map
apply_domain(const isl::checked::union_map
&umap2
) const;
1930 inline isl::checked::map
apply_domain(const isl::checked::basic_map
&map2
) const;
1931 inline isl::checked::map
apply_range(isl::checked::map map2
) const;
1932 inline isl::checked::union_map
apply_range(const isl::checked::union_map
&umap2
) const;
1933 inline isl::checked::map
apply_range(const isl::checked::basic_map
&map2
) const;
1934 inline isl::checked::map
as_map() const;
1935 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
1936 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
1937 inline isl::checked::union_pw_multi_aff
as_union_pw_multi_aff() const;
1938 inline isl::checked::set
bind_domain(isl::checked::multi_id tuple
) const;
1939 inline isl::checked::set
bind_range(isl::checked::multi_id tuple
) const;
1940 inline isl::checked::map
coalesce() const;
1941 inline isl::checked::map
complement() const;
1942 inline isl::checked::union_map
compute_divs() const;
1943 inline isl::checked::map
curry() const;
1944 inline isl::checked::set
deltas() const;
1945 inline isl::checked::map
detect_equalities() const;
1946 inline isl::checked::set
domain() const;
1947 inline isl::checked::map
domain_factor_domain() const;
1948 inline isl::checked::map
domain_factor_range() const;
1949 inline isl::checked::union_map
domain_map() const;
1950 inline isl::checked::union_pw_multi_aff
domain_map_union_pw_multi_aff() const;
1951 inline isl::checked::map
domain_product(isl::checked::map map2
) const;
1952 inline isl::checked::union_map
domain_product(const isl::checked::union_map
&umap2
) const;
1953 inline isl::checked::map
domain_product(const isl::checked::basic_map
&map2
) const;
1954 inline isl::checked::map
domain_reverse() const;
1955 inline class size
domain_tuple_dim() const;
1956 inline isl::checked::id
domain_tuple_id() const;
1957 inline isl::checked::id
get_domain_tuple_id() const;
1958 inline isl::checked::map
drop_unused_params() const;
1959 static inline isl::checked::map
empty(isl::checked::space space
);
1960 inline isl::checked::map
eq_at(isl::checked::multi_pw_aff mpa
) const;
1961 inline isl::checked::union_map
eq_at(const isl::checked::multi_union_pw_aff
&mupa
) const;
1962 inline isl::checked::map
eq_at(const isl::checked::aff
&mpa
) const;
1963 inline isl::checked::map
eq_at(const isl::checked::multi_aff
&mpa
) const;
1964 inline isl::checked::map
eq_at(const isl::checked::pw_aff
&mpa
) const;
1965 inline isl::checked::map
eq_at(const isl::checked::pw_multi_aff
&mpa
) const;
1966 inline boolean
every_map(const std::function
<boolean(isl::checked::map
)> &test
) const;
1967 inline isl::checked::map
extract_map(const isl::checked::space
&space
) const;
1968 inline isl::checked::map
factor_domain() const;
1969 inline isl::checked::map
factor_range() const;
1970 inline isl::checked::map
fixed_power(isl::checked::val exp
) const;
1971 inline isl::checked::map
fixed_power(long exp
) const;
1972 inline isl::checked::map
flatten() const;
1973 inline isl::checked::map
flatten_domain() const;
1974 inline isl::checked::map
flatten_range() const;
1975 inline stat
foreach_basic_map(const std::function
<stat(isl::checked::basic_map
)> &fn
) const;
1976 inline stat
foreach_map(const std::function
<stat(isl::checked::map
)> &fn
) const;
1977 inline isl::checked::map
gist(isl::checked::map context
) const;
1978 inline isl::checked::union_map
gist(const isl::checked::union_map
&context
) const;
1979 inline isl::checked::map
gist(const isl::checked::basic_map
&context
) const;
1980 inline isl::checked::map
gist_domain(isl::checked::set context
) const;
1981 inline isl::checked::union_map
gist_domain(const isl::checked::union_set
&uset
) const;
1982 inline isl::checked::map
gist_domain(const isl::checked::basic_set
&context
) const;
1983 inline isl::checked::map
gist_domain(const isl::checked::point
&context
) const;
1984 inline isl::checked::map
gist_params(isl::checked::set context
) const;
1985 inline isl::checked::union_map
gist_range(const isl::checked::union_set
&uset
) const;
1986 inline boolean
has_domain_tuple_id() const;
1987 inline boolean
has_range_tuple_id() const;
1988 inline isl::checked::map
intersect(isl::checked::map map2
) const;
1989 inline isl::checked::union_map
intersect(const isl::checked::union_map
&umap2
) const;
1990 inline isl::checked::map
intersect(const isl::checked::basic_map
&map2
) const;
1991 inline isl::checked::map
intersect_domain(isl::checked::set set
) const;
1992 inline isl::checked::union_map
intersect_domain(const isl::checked::space
&space
) const;
1993 inline isl::checked::union_map
intersect_domain(const isl::checked::union_set
&uset
) const;
1994 inline isl::checked::map
intersect_domain(const isl::checked::basic_set
&set
) const;
1995 inline isl::checked::map
intersect_domain(const isl::checked::point
&set
) const;
1996 inline isl::checked::map
intersect_domain_factor_domain(isl::checked::map factor
) const;
1997 inline isl::checked::union_map
intersect_domain_factor_domain(const isl::checked::union_map
&factor
) const;
1998 inline isl::checked::map
intersect_domain_factor_domain(const isl::checked::basic_map
&factor
) const;
1999 inline isl::checked::map
intersect_domain_factor_range(isl::checked::map factor
) const;
2000 inline isl::checked::union_map
intersect_domain_factor_range(const isl::checked::union_map
&factor
) const;
2001 inline isl::checked::map
intersect_domain_factor_range(const isl::checked::basic_map
&factor
) const;
2002 inline isl::checked::map
intersect_domain_wrapped_domain(isl::checked::set domain
) const;
2003 inline isl::checked::union_map
intersect_domain_wrapped_domain(const isl::checked::union_set
&domain
) const;
2004 inline isl::checked::map
intersect_domain_wrapped_domain(const isl::checked::basic_set
&domain
) const;
2005 inline isl::checked::map
intersect_domain_wrapped_domain(const isl::checked::point
&domain
) const;
2006 inline isl::checked::map
intersect_params(isl::checked::set params
) const;
2007 inline isl::checked::map
intersect_range(isl::checked::set set
) const;
2008 inline isl::checked::union_map
intersect_range(const isl::checked::space
&space
) const;
2009 inline isl::checked::union_map
intersect_range(const isl::checked::union_set
&uset
) const;
2010 inline isl::checked::map
intersect_range(const isl::checked::basic_set
&set
) const;
2011 inline isl::checked::map
intersect_range(const isl::checked::point
&set
) const;
2012 inline isl::checked::map
intersect_range_factor_domain(isl::checked::map factor
) const;
2013 inline isl::checked::union_map
intersect_range_factor_domain(const isl::checked::union_map
&factor
) const;
2014 inline isl::checked::map
intersect_range_factor_domain(const isl::checked::basic_map
&factor
) const;
2015 inline isl::checked::map
intersect_range_factor_range(isl::checked::map factor
) const;
2016 inline isl::checked::union_map
intersect_range_factor_range(const isl::checked::union_map
&factor
) const;
2017 inline isl::checked::map
intersect_range_factor_range(const isl::checked::basic_map
&factor
) const;
2018 inline isl::checked::map
intersect_range_wrapped_domain(isl::checked::set domain
) const;
2019 inline isl::checked::union_map
intersect_range_wrapped_domain(const isl::checked::union_set
&domain
) const;
2020 inline isl::checked::map
intersect_range_wrapped_domain(const isl::checked::basic_set
&domain
) const;
2021 inline isl::checked::map
intersect_range_wrapped_domain(const isl::checked::point
&domain
) const;
2022 inline boolean
is_bijective() const;
2023 inline boolean
is_disjoint(const isl::checked::map
&map2
) const;
2024 inline boolean
is_disjoint(const isl::checked::union_map
&umap2
) const;
2025 inline boolean
is_disjoint(const isl::checked::basic_map
&map2
) const;
2026 inline boolean
is_empty() const;
2027 inline boolean
is_equal(const isl::checked::map
&map2
) const;
2028 inline boolean
is_equal(const isl::checked::union_map
&umap2
) const;
2029 inline boolean
is_equal(const isl::checked::basic_map
&map2
) const;
2030 inline boolean
is_injective() const;
2031 inline boolean
is_single_valued() const;
2032 inline boolean
is_strict_subset(const isl::checked::map
&map2
) const;
2033 inline boolean
is_strict_subset(const isl::checked::union_map
&umap2
) const;
2034 inline boolean
is_strict_subset(const isl::checked::basic_map
&map2
) const;
2035 inline boolean
is_subset(const isl::checked::map
&map2
) const;
2036 inline boolean
is_subset(const isl::checked::union_map
&umap2
) const;
2037 inline boolean
is_subset(const isl::checked::basic_map
&map2
) const;
2038 inline boolean
isa_map() const;
2039 inline isl::checked::map
lex_ge_at(isl::checked::multi_pw_aff mpa
) const;
2040 inline isl::checked::map
lex_gt_at(isl::checked::multi_pw_aff mpa
) const;
2041 inline isl::checked::map
lex_le_at(isl::checked::multi_pw_aff mpa
) const;
2042 inline isl::checked::map
lex_lt_at(isl::checked::multi_pw_aff mpa
) const;
2043 inline isl::checked::map
lexmax() const;
2044 inline isl::checked::pw_multi_aff
lexmax_pw_multi_aff() const;
2045 inline isl::checked::map
lexmin() const;
2046 inline isl::checked::pw_multi_aff
lexmin_pw_multi_aff() const;
2047 inline isl::checked::map
lower_bound(isl::checked::multi_pw_aff lower
) const;
2048 inline isl::checked::map_list
map_list() const;
2049 inline isl::checked::multi_pw_aff
max_multi_pw_aff() const;
2050 inline isl::checked::multi_pw_aff
min_multi_pw_aff() const;
2051 inline class size
n_basic_map() const;
2052 inline isl::checked::set
params() const;
2053 inline isl::checked::basic_map
polyhedral_hull() const;
2054 inline isl::checked::map
preimage_domain(isl::checked::multi_aff ma
) const;
2055 inline isl::checked::map
preimage_domain(isl::checked::multi_pw_aff mpa
) const;
2056 inline isl::checked::map
preimage_domain(isl::checked::pw_multi_aff pma
) const;
2057 inline isl::checked::union_map
preimage_domain(const isl::checked::union_pw_multi_aff
&upma
) const;
2058 inline isl::checked::map
preimage_range(isl::checked::multi_aff ma
) const;
2059 inline isl::checked::map
preimage_range(isl::checked::pw_multi_aff pma
) const;
2060 inline isl::checked::union_map
preimage_range(const isl::checked::union_pw_multi_aff
&upma
) const;
2061 inline isl::checked::map
product(isl::checked::map map2
) const;
2062 inline isl::checked::union_map
product(const isl::checked::union_map
&umap2
) const;
2063 inline isl::checked::map
product(const isl::checked::basic_map
&map2
) const;
2064 inline isl::checked::map
project_out_all_params() const;
2065 inline isl::checked::map
project_out_param(isl::checked::id id
) const;
2066 inline isl::checked::map
project_out_param(const std::string
&id
) const;
2067 inline isl::checked::map
project_out_param(isl::checked::id_list list
) const;
2068 inline isl::checked::set
range() const;
2069 inline isl::checked::map
range_factor_domain() const;
2070 inline isl::checked::map
range_factor_range() const;
2071 inline isl::checked::fixed_box
range_lattice_tile() const;
2072 inline isl::checked::fixed_box
get_range_lattice_tile() const;
2073 inline isl::checked::union_map
range_map() const;
2074 inline isl::checked::map
range_product(isl::checked::map map2
) const;
2075 inline isl::checked::union_map
range_product(const isl::checked::union_map
&umap2
) const;
2076 inline isl::checked::map
range_product(const isl::checked::basic_map
&map2
) const;
2077 inline isl::checked::map
range_reverse() const;
2078 inline isl::checked::fixed_box
range_simple_fixed_box_hull() const;
2079 inline isl::checked::fixed_box
get_range_simple_fixed_box_hull() const;
2080 inline class size
range_tuple_dim() const;
2081 inline isl::checked::id
range_tuple_id() const;
2082 inline isl::checked::id
get_range_tuple_id() const;
2083 inline isl::checked::map
reverse() const;
2084 inline isl::checked::basic_map
sample() const;
2085 inline isl::checked::map
set_domain_tuple(isl::checked::id id
) const;
2086 inline isl::checked::map
set_domain_tuple(const std::string
&id
) const;
2087 inline isl::checked::map
set_range_tuple(isl::checked::id id
) const;
2088 inline isl::checked::map
set_range_tuple(const std::string
&id
) const;
2089 inline isl::checked::space
space() const;
2090 inline isl::checked::space
get_space() const;
2091 inline isl::checked::map
subtract(isl::checked::map map2
) const;
2092 inline isl::checked::union_map
subtract(const isl::checked::union_map
&umap2
) const;
2093 inline isl::checked::map
subtract(const isl::checked::basic_map
&map2
) const;
2094 inline isl::checked::union_map
subtract_domain(const isl::checked::union_set
&dom
) const;
2095 inline isl::checked::union_map
subtract_range(const isl::checked::union_set
&dom
) const;
2096 inline isl::checked::map_list
to_list() const;
2097 inline isl::checked::union_map
to_union_map() const;
2098 inline isl::checked::map
uncurry() const;
2099 inline isl::checked::map
unite(isl::checked::map map2
) const;
2100 inline isl::checked::union_map
unite(const isl::checked::union_map
&umap2
) const;
2101 inline isl::checked::map
unite(const isl::checked::basic_map
&map2
) const;
2102 static inline isl::checked::map
universe(isl::checked::space space
);
2103 inline isl::checked::basic_map
unshifted_simple_hull() const;
2104 inline isl::checked::map
upper_bound(isl::checked::multi_pw_aff upper
) const;
2105 inline isl::checked::set
wrap() const;
2106 inline isl::checked::map
zip() const;
2109 // declarations for isl::map_list
2110 inline map_list
manage(__isl_take isl_map_list
*ptr
);
2111 inline map_list
manage_copy(__isl_keep isl_map_list
*ptr
);
2114 friend inline map_list
manage(__isl_take isl_map_list
*ptr
);
2115 friend inline map_list
manage_copy(__isl_keep isl_map_list
*ptr
);
2118 isl_map_list
*ptr
= nullptr;
2120 inline explicit map_list(__isl_take isl_map_list
*ptr
);
2123 inline /* implicit */ map_list();
2124 inline /* implicit */ map_list(const map_list
&obj
);
2125 inline explicit map_list(isl::checked::ctx ctx
, int n
);
2126 inline explicit map_list(isl::checked::map el
);
2127 inline explicit map_list(isl::checked::ctx ctx
, const std::string
&str
);
2128 inline map_list
&operator=(map_list obj
);
2130 inline __isl_give isl_map_list
*copy() const &;
2131 inline __isl_give isl_map_list
*copy() && = delete;
2132 inline __isl_keep isl_map_list
*get() const;
2133 inline __isl_give isl_map_list
*release();
2134 inline bool is_null() const;
2135 inline isl::checked::ctx
ctx() const;
2137 inline isl::checked::map_list
add(isl::checked::map el
) const;
2138 inline isl::checked::map
at(int index
) const;
2139 inline isl::checked::map
get_at(int index
) const;
2140 inline isl::checked::map_list
clear() const;
2141 inline isl::checked::map_list
concat(isl::checked::map_list list2
) const;
2142 inline isl::checked::map_list
drop(unsigned int first
, unsigned int n
) const;
2143 inline stat
foreach(const std::function
<stat(isl::checked::map
)> &fn
) const;
2144 inline stat
foreach_scc(const std::function
<boolean(isl::checked::map
, isl::checked::map
)> &follows
, const std::function
<stat(isl::checked::map_list
)> &fn
) const;
2145 inline isl::checked::map_list
insert(unsigned int pos
, isl::checked::map el
) const;
2146 inline isl::checked::map_list
set_at(int index
, isl::checked::map el
) const;
2147 inline class size
size() const;
2150 // declarations for isl::multi_aff
2151 inline multi_aff
manage(__isl_take isl_multi_aff
*ptr
);
2152 inline multi_aff
manage_copy(__isl_keep isl_multi_aff
*ptr
);
2155 friend inline multi_aff
manage(__isl_take isl_multi_aff
*ptr
);
2156 friend inline multi_aff
manage_copy(__isl_keep isl_multi_aff
*ptr
);
2159 isl_multi_aff
*ptr
= nullptr;
2161 inline explicit multi_aff(__isl_take isl_multi_aff
*ptr
);
2164 inline /* implicit */ multi_aff();
2165 inline /* implicit */ multi_aff(const multi_aff
&obj
);
2166 inline /* implicit */ multi_aff(isl::checked::aff aff
);
2167 inline explicit multi_aff(isl::checked::space space
, isl::checked::aff_list list
);
2168 inline explicit multi_aff(isl::checked::ctx ctx
, const std::string
&str
);
2169 inline multi_aff
&operator=(multi_aff obj
);
2170 inline ~multi_aff();
2171 inline __isl_give isl_multi_aff
*copy() const &;
2172 inline __isl_give isl_multi_aff
*copy() && = delete;
2173 inline __isl_keep isl_multi_aff
*get() const;
2174 inline __isl_give isl_multi_aff
*release();
2175 inline bool is_null() const;
2176 inline isl::checked::ctx
ctx() const;
2178 inline isl::checked::multi_aff
add(isl::checked::multi_aff multi2
) const;
2179 inline isl::checked::multi_pw_aff
add(const isl::checked::multi_pw_aff
&multi2
) const;
2180 inline isl::checked::multi_union_pw_aff
add(const isl::checked::multi_union_pw_aff
&multi2
) const;
2181 inline isl::checked::pw_multi_aff
add(const isl::checked::pw_multi_aff
&pma2
) const;
2182 inline isl::checked::union_pw_multi_aff
add(const isl::checked::union_pw_multi_aff
&upma2
) const;
2183 inline isl::checked::multi_aff
add(const isl::checked::aff
&multi2
) const;
2184 inline isl::checked::multi_aff
add_constant(isl::checked::multi_val mv
) const;
2185 inline isl::checked::multi_aff
add_constant(isl::checked::val v
) const;
2186 inline isl::checked::multi_aff
add_constant(long v
) const;
2187 inline isl::checked::union_pw_multi_aff
apply(const isl::checked::union_pw_multi_aff
&upma2
) const;
2188 inline isl::checked::map
as_map() const;
2189 inline isl::checked::multi_aff
as_multi_aff() const;
2190 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
2191 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
2192 inline isl::checked::set
as_set() const;
2193 inline isl::checked::union_map
as_union_map() const;
2194 inline isl::checked::aff
at(int pos
) const;
2195 inline isl::checked::aff
get_at(int pos
) const;
2196 inline isl::checked::basic_set
bind(isl::checked::multi_id tuple
) const;
2197 inline isl::checked::multi_aff
bind_domain(isl::checked::multi_id tuple
) const;
2198 inline isl::checked::multi_aff
bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const;
2199 inline isl::checked::pw_multi_aff
coalesce() const;
2200 inline isl::checked::multi_val
constant_multi_val() const;
2201 inline isl::checked::multi_val
get_constant_multi_val() const;
2202 inline isl::checked::set
domain() const;
2203 static inline isl::checked::multi_aff
domain_map(isl::checked::space space
);
2204 inline isl::checked::multi_aff
domain_reverse() const;
2205 inline isl::checked::pw_multi_aff
drop_unused_params() const;
2206 inline isl::checked::pw_multi_aff
extract_pw_multi_aff(const isl::checked::space
&space
) const;
2207 inline isl::checked::multi_aff
flat_range_product(isl::checked::multi_aff multi2
) const;
2208 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const;
2209 inline isl::checked::multi_union_pw_aff
flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
2210 inline isl::checked::pw_multi_aff
flat_range_product(const isl::checked::pw_multi_aff
&pma2
) const;
2211 inline isl::checked::union_pw_multi_aff
flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
2212 inline isl::checked::multi_aff
flat_range_product(const isl::checked::aff
&multi2
) const;
2213 inline isl::checked::multi_aff
floor() const;
2214 inline stat
foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const;
2215 inline isl::checked::multi_aff
gist(isl::checked::set context
) const;
2216 inline isl::checked::union_pw_multi_aff
gist(const isl::checked::union_set
&context
) const;
2217 inline isl::checked::multi_aff
gist(const isl::checked::basic_set
&context
) const;
2218 inline isl::checked::multi_aff
gist(const isl::checked::point
&context
) const;
2219 inline isl::checked::multi_aff
gist_params(isl::checked::set context
) const;
2220 inline boolean
has_range_tuple_id() const;
2221 inline isl::checked::multi_aff
identity() const;
2222 static inline isl::checked::multi_aff
identity_on_domain(isl::checked::space space
);
2223 inline isl::checked::multi_aff
insert_domain(isl::checked::space domain
) const;
2224 inline isl::checked::pw_multi_aff
intersect_domain(const isl::checked::set
&set
) const;
2225 inline isl::checked::union_pw_multi_aff
intersect_domain(const isl::checked::space
&space
) const;
2226 inline isl::checked::union_pw_multi_aff
intersect_domain(const isl::checked::union_set
&uset
) const;
2227 inline isl::checked::union_pw_multi_aff
intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const;
2228 inline isl::checked::union_pw_multi_aff
intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const;
2229 inline isl::checked::pw_multi_aff
intersect_params(const isl::checked::set
&set
) const;
2230 inline boolean
involves_locals() const;
2231 inline boolean
involves_nan() const;
2232 inline boolean
involves_param(const isl::checked::id
&id
) const;
2233 inline boolean
involves_param(const std::string
&id
) const;
2234 inline boolean
involves_param(const isl::checked::id_list
&list
) const;
2235 inline boolean
isa_multi_aff() const;
2236 inline boolean
isa_pw_multi_aff() const;
2237 inline isl::checked::aff_list
list() const;
2238 inline isl::checked::aff_list
get_list() const;
2239 inline isl::checked::multi_pw_aff
max(const isl::checked::multi_pw_aff
&multi2
) const;
2240 inline isl::checked::multi_val
max_multi_val() const;
2241 inline isl::checked::multi_pw_aff
min(const isl::checked::multi_pw_aff
&multi2
) const;
2242 inline isl::checked::multi_val
min_multi_val() const;
2243 static inline isl::checked::multi_aff
multi_val_on_domain(isl::checked::space space
, isl::checked::multi_val mv
);
2244 inline class size
n_piece() const;
2245 inline isl::checked::multi_aff
neg() const;
2246 inline boolean
plain_is_empty() const;
2247 inline boolean
plain_is_equal(const isl::checked::multi_aff
&multi2
) const;
2248 inline boolean
plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const;
2249 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
2250 inline boolean
plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const;
2251 inline boolean
plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const;
2252 inline boolean
plain_is_equal(const isl::checked::aff
&multi2
) const;
2253 inline isl::checked::pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::pw_multi_aff
&pma2
) const;
2254 inline isl::checked::union_pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const;
2255 inline isl::checked::multi_aff
product(isl::checked::multi_aff multi2
) const;
2256 inline isl::checked::multi_pw_aff
product(const isl::checked::multi_pw_aff
&multi2
) const;
2257 inline isl::checked::pw_multi_aff
product(const isl::checked::pw_multi_aff
&pma2
) const;
2258 inline isl::checked::multi_aff
product(const isl::checked::aff
&multi2
) const;
2259 inline isl::checked::multi_aff
pullback(isl::checked::multi_aff ma2
) const;
2260 inline isl::checked::multi_pw_aff
pullback(const isl::checked::multi_pw_aff
&mpa2
) const;
2261 inline isl::checked::pw_multi_aff
pullback(const isl::checked::pw_multi_aff
&pma2
) const;
2262 inline isl::checked::union_pw_multi_aff
pullback(const isl::checked::union_pw_multi_aff
&upma2
) const;
2263 inline isl::checked::multi_aff
pullback(const isl::checked::aff
&ma2
) const;
2264 inline isl::checked::pw_multi_aff_list
pw_multi_aff_list() const;
2265 inline isl::checked::pw_multi_aff
range_factor_domain() const;
2266 inline isl::checked::pw_multi_aff
range_factor_range() const;
2267 static inline isl::checked::multi_aff
range_map(isl::checked::space space
);
2268 inline isl::checked::multi_aff
range_product(isl::checked::multi_aff multi2
) const;
2269 inline isl::checked::multi_pw_aff
range_product(const isl::checked::multi_pw_aff
&multi2
) const;
2270 inline isl::checked::multi_union_pw_aff
range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
2271 inline isl::checked::pw_multi_aff
range_product(const isl::checked::pw_multi_aff
&pma2
) const;
2272 inline isl::checked::union_pw_multi_aff
range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
2273 inline isl::checked::multi_aff
range_product(const isl::checked::aff
&multi2
) const;
2274 inline isl::checked::id
range_tuple_id() const;
2275 inline isl::checked::id
get_range_tuple_id() const;
2276 inline isl::checked::multi_aff
reset_range_tuple_id() const;
2277 inline isl::checked::multi_aff
scale(isl::checked::multi_val mv
) const;
2278 inline isl::checked::multi_aff
scale(isl::checked::val v
) const;
2279 inline isl::checked::multi_aff
scale(long v
) const;
2280 inline isl::checked::multi_aff
scale_down(isl::checked::multi_val mv
) const;
2281 inline isl::checked::multi_aff
scale_down(isl::checked::val v
) const;
2282 inline isl::checked::multi_aff
scale_down(long v
) const;
2283 inline isl::checked::multi_aff
set_at(int pos
, isl::checked::aff el
) const;
2284 inline isl::checked::multi_pw_aff
set_at(int pos
, const isl::checked::pw_aff
&el
) const;
2285 inline isl::checked::multi_union_pw_aff
set_at(int pos
, const isl::checked::union_pw_aff
&el
) const;
2286 inline isl::checked::multi_aff
set_range_tuple(isl::checked::id id
) const;
2287 inline isl::checked::multi_aff
set_range_tuple(const std::string
&id
) const;
2288 inline class size
size() const;
2289 inline isl::checked::space
space() const;
2290 inline isl::checked::space
get_space() const;
2291 inline isl::checked::multi_aff
sub(isl::checked::multi_aff multi2
) const;
2292 inline isl::checked::multi_pw_aff
sub(const isl::checked::multi_pw_aff
&multi2
) const;
2293 inline isl::checked::multi_union_pw_aff
sub(const isl::checked::multi_union_pw_aff
&multi2
) const;
2294 inline isl::checked::pw_multi_aff
sub(const isl::checked::pw_multi_aff
&pma2
) const;
2295 inline isl::checked::union_pw_multi_aff
sub(const isl::checked::union_pw_multi_aff
&upma2
) const;
2296 inline isl::checked::multi_aff
sub(const isl::checked::aff
&multi2
) const;
2297 inline isl::checked::pw_multi_aff
subtract_domain(const isl::checked::set
&set
) const;
2298 inline isl::checked::union_pw_multi_aff
subtract_domain(const isl::checked::space
&space
) const;
2299 inline isl::checked::union_pw_multi_aff
subtract_domain(const isl::checked::union_set
&uset
) const;
2300 inline isl::checked::pw_multi_aff_list
to_list() const;
2301 inline isl::checked::multi_pw_aff
to_multi_pw_aff() const;
2302 inline isl::checked::multi_union_pw_aff
to_multi_union_pw_aff() const;
2303 inline isl::checked::pw_multi_aff
to_pw_multi_aff() const;
2304 inline isl::checked::union_pw_multi_aff
to_union_pw_multi_aff() const;
2305 inline isl::checked::multi_aff
unbind_params_insert_domain(isl::checked::multi_id domain
) const;
2306 inline isl::checked::multi_pw_aff
union_add(const isl::checked::multi_pw_aff
&mpa2
) const;
2307 inline isl::checked::multi_union_pw_aff
union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const;
2308 inline isl::checked::pw_multi_aff
union_add(const isl::checked::pw_multi_aff
&pma2
) const;
2309 inline isl::checked::union_pw_multi_aff
union_add(const isl::checked::union_pw_multi_aff
&upma2
) const;
2310 static inline isl::checked::multi_aff
zero(isl::checked::space space
);
2313 // declarations for isl::multi_id
2314 inline multi_id
manage(__isl_take isl_multi_id
*ptr
);
2315 inline multi_id
manage_copy(__isl_keep isl_multi_id
*ptr
);
2318 friend inline multi_id
manage(__isl_take isl_multi_id
*ptr
);
2319 friend inline multi_id
manage_copy(__isl_keep isl_multi_id
*ptr
);
2322 isl_multi_id
*ptr
= nullptr;
2324 inline explicit multi_id(__isl_take isl_multi_id
*ptr
);
2327 inline /* implicit */ multi_id();
2328 inline /* implicit */ multi_id(const multi_id
&obj
);
2329 inline explicit multi_id(isl::checked::space space
, isl::checked::id_list list
);
2330 inline explicit multi_id(isl::checked::ctx ctx
, const std::string
&str
);
2331 inline multi_id
&operator=(multi_id obj
);
2333 inline __isl_give isl_multi_id
*copy() const &;
2334 inline __isl_give isl_multi_id
*copy() && = delete;
2335 inline __isl_keep isl_multi_id
*get() const;
2336 inline __isl_give isl_multi_id
*release();
2337 inline bool is_null() const;
2338 inline isl::checked::ctx
ctx() const;
2340 inline isl::checked::id
at(int pos
) const;
2341 inline isl::checked::id
get_at(int pos
) const;
2342 inline isl::checked::multi_id
flat_range_product(isl::checked::multi_id multi2
) const;
2343 inline isl::checked::id_list
list() const;
2344 inline isl::checked::id_list
get_list() const;
2345 inline boolean
plain_is_equal(const isl::checked::multi_id
&multi2
) const;
2346 inline isl::checked::multi_id
range_product(isl::checked::multi_id multi2
) const;
2347 inline isl::checked::multi_id
set_at(int pos
, isl::checked::id el
) const;
2348 inline isl::checked::multi_id
set_at(int pos
, const std::string
&el
) const;
2349 inline class size
size() const;
2350 inline isl::checked::space
space() const;
2351 inline isl::checked::space
get_space() const;
2354 // declarations for isl::multi_pw_aff
2355 inline multi_pw_aff
manage(__isl_take isl_multi_pw_aff
*ptr
);
2356 inline multi_pw_aff
manage_copy(__isl_keep isl_multi_pw_aff
*ptr
);
2358 class multi_pw_aff
{
2359 friend inline multi_pw_aff
manage(__isl_take isl_multi_pw_aff
*ptr
);
2360 friend inline multi_pw_aff
manage_copy(__isl_keep isl_multi_pw_aff
*ptr
);
2363 isl_multi_pw_aff
*ptr
= nullptr;
2365 inline explicit multi_pw_aff(__isl_take isl_multi_pw_aff
*ptr
);
2368 inline /* implicit */ multi_pw_aff();
2369 inline /* implicit */ multi_pw_aff(const multi_pw_aff
&obj
);
2370 inline /* implicit */ multi_pw_aff(isl::checked::aff aff
);
2371 inline /* implicit */ multi_pw_aff(isl::checked::multi_aff ma
);
2372 inline /* implicit */ multi_pw_aff(isl::checked::pw_aff pa
);
2373 inline explicit multi_pw_aff(isl::checked::space space
, isl::checked::pw_aff_list list
);
2374 inline /* implicit */ multi_pw_aff(isl::checked::pw_multi_aff pma
);
2375 inline explicit multi_pw_aff(isl::checked::ctx ctx
, const std::string
&str
);
2376 inline multi_pw_aff
&operator=(multi_pw_aff obj
);
2377 inline ~multi_pw_aff();
2378 inline __isl_give isl_multi_pw_aff
*copy() const &;
2379 inline __isl_give isl_multi_pw_aff
*copy() && = delete;
2380 inline __isl_keep isl_multi_pw_aff
*get() const;
2381 inline __isl_give isl_multi_pw_aff
*release();
2382 inline bool is_null() const;
2383 inline isl::checked::ctx
ctx() const;
2385 inline isl::checked::multi_pw_aff
add(isl::checked::multi_pw_aff multi2
) const;
2386 inline isl::checked::multi_union_pw_aff
add(const isl::checked::multi_union_pw_aff
&multi2
) const;
2387 inline isl::checked::multi_pw_aff
add(const isl::checked::aff
&multi2
) const;
2388 inline isl::checked::multi_pw_aff
add(const isl::checked::multi_aff
&multi2
) const;
2389 inline isl::checked::multi_pw_aff
add(const isl::checked::pw_aff
&multi2
) const;
2390 inline isl::checked::multi_pw_aff
add(const isl::checked::pw_multi_aff
&multi2
) const;
2391 inline isl::checked::multi_pw_aff
add_constant(isl::checked::multi_val mv
) const;
2392 inline isl::checked::multi_pw_aff
add_constant(isl::checked::val v
) const;
2393 inline isl::checked::multi_pw_aff
add_constant(long v
) const;
2394 inline isl::checked::map
as_map() const;
2395 inline isl::checked::multi_aff
as_multi_aff() const;
2396 inline isl::checked::set
as_set() const;
2397 inline isl::checked::pw_aff
at(int pos
) const;
2398 inline isl::checked::pw_aff
get_at(int pos
) const;
2399 inline isl::checked::set
bind(isl::checked::multi_id tuple
) const;
2400 inline isl::checked::multi_pw_aff
bind_domain(isl::checked::multi_id tuple
) const;
2401 inline isl::checked::multi_pw_aff
bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const;
2402 inline isl::checked::multi_pw_aff
coalesce() const;
2403 inline isl::checked::set
domain() const;
2404 inline isl::checked::multi_pw_aff
domain_reverse() const;
2405 inline isl::checked::multi_pw_aff
flat_range_product(isl::checked::multi_pw_aff multi2
) const;
2406 inline isl::checked::multi_union_pw_aff
flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
2407 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::aff
&multi2
) const;
2408 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::multi_aff
&multi2
) const;
2409 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::pw_aff
&multi2
) const;
2410 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::pw_multi_aff
&multi2
) const;
2411 inline isl::checked::multi_pw_aff
gist(isl::checked::set set
) const;
2412 inline isl::checked::multi_union_pw_aff
gist(const isl::checked::union_set
&context
) const;
2413 inline isl::checked::multi_pw_aff
gist(const isl::checked::basic_set
&set
) const;
2414 inline isl::checked::multi_pw_aff
gist(const isl::checked::point
&set
) const;
2415 inline isl::checked::multi_pw_aff
gist_params(isl::checked::set set
) const;
2416 inline boolean
has_range_tuple_id() const;
2417 inline isl::checked::multi_pw_aff
identity() const;
2418 static inline isl::checked::multi_pw_aff
identity_on_domain(isl::checked::space space
);
2419 inline isl::checked::multi_pw_aff
insert_domain(isl::checked::space domain
) const;
2420 inline isl::checked::multi_pw_aff
intersect_domain(isl::checked::set domain
) const;
2421 inline isl::checked::multi_union_pw_aff
intersect_domain(const isl::checked::union_set
&uset
) const;
2422 inline isl::checked::multi_pw_aff
intersect_domain(const isl::checked::basic_set
&domain
) const;
2423 inline isl::checked::multi_pw_aff
intersect_domain(const isl::checked::point
&domain
) const;
2424 inline isl::checked::multi_pw_aff
intersect_params(isl::checked::set set
) const;
2425 inline boolean
involves_nan() const;
2426 inline boolean
involves_param(const isl::checked::id
&id
) const;
2427 inline boolean
involves_param(const std::string
&id
) const;
2428 inline boolean
involves_param(const isl::checked::id_list
&list
) const;
2429 inline boolean
isa_multi_aff() const;
2430 inline isl::checked::pw_aff_list
list() const;
2431 inline isl::checked::pw_aff_list
get_list() const;
2432 inline isl::checked::multi_pw_aff
max(isl::checked::multi_pw_aff multi2
) const;
2433 inline isl::checked::multi_val
max_multi_val() const;
2434 inline isl::checked::multi_pw_aff
min(isl::checked::multi_pw_aff multi2
) const;
2435 inline isl::checked::multi_val
min_multi_val() const;
2436 inline isl::checked::multi_pw_aff
neg() const;
2437 inline boolean
plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const;
2438 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
2439 inline boolean
plain_is_equal(const isl::checked::aff
&multi2
) const;
2440 inline boolean
plain_is_equal(const isl::checked::multi_aff
&multi2
) const;
2441 inline boolean
plain_is_equal(const isl::checked::pw_aff
&multi2
) const;
2442 inline boolean
plain_is_equal(const isl::checked::pw_multi_aff
&multi2
) const;
2443 inline isl::checked::multi_pw_aff
product(isl::checked::multi_pw_aff multi2
) const;
2444 inline isl::checked::multi_pw_aff
pullback(isl::checked::multi_aff ma
) const;
2445 inline isl::checked::multi_pw_aff
pullback(isl::checked::multi_pw_aff mpa2
) const;
2446 inline isl::checked::multi_pw_aff
pullback(isl::checked::pw_multi_aff pma
) const;
2447 inline isl::checked::multi_union_pw_aff
pullback(const isl::checked::union_pw_multi_aff
&upma
) const;
2448 inline isl::checked::multi_pw_aff
range_product(isl::checked::multi_pw_aff multi2
) const;
2449 inline isl::checked::multi_union_pw_aff
range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
2450 inline isl::checked::multi_pw_aff
range_product(const isl::checked::aff
&multi2
) const;
2451 inline isl::checked::multi_pw_aff
range_product(const isl::checked::multi_aff
&multi2
) const;
2452 inline isl::checked::multi_pw_aff
range_product(const isl::checked::pw_aff
&multi2
) const;
2453 inline isl::checked::multi_pw_aff
range_product(const isl::checked::pw_multi_aff
&multi2
) const;
2454 inline isl::checked::id
range_tuple_id() const;
2455 inline isl::checked::id
get_range_tuple_id() const;
2456 inline isl::checked::multi_pw_aff
reset_range_tuple_id() const;
2457 inline isl::checked::multi_pw_aff
scale(isl::checked::multi_val mv
) const;
2458 inline isl::checked::multi_pw_aff
scale(isl::checked::val v
) const;
2459 inline isl::checked::multi_pw_aff
scale(long v
) const;
2460 inline isl::checked::multi_pw_aff
scale_down(isl::checked::multi_val mv
) const;
2461 inline isl::checked::multi_pw_aff
scale_down(isl::checked::val v
) const;
2462 inline isl::checked::multi_pw_aff
scale_down(long v
) const;
2463 inline isl::checked::multi_pw_aff
set_at(int pos
, isl::checked::pw_aff el
) const;
2464 inline isl::checked::multi_union_pw_aff
set_at(int pos
, const isl::checked::union_pw_aff
&el
) const;
2465 inline isl::checked::multi_pw_aff
set_range_tuple(isl::checked::id id
) const;
2466 inline isl::checked::multi_pw_aff
set_range_tuple(const std::string
&id
) const;
2467 inline class size
size() const;
2468 inline isl::checked::space
space() const;
2469 inline isl::checked::space
get_space() const;
2470 inline isl::checked::multi_pw_aff
sub(isl::checked::multi_pw_aff multi2
) const;
2471 inline isl::checked::multi_union_pw_aff
sub(const isl::checked::multi_union_pw_aff
&multi2
) const;
2472 inline isl::checked::multi_pw_aff
sub(const isl::checked::aff
&multi2
) const;
2473 inline isl::checked::multi_pw_aff
sub(const isl::checked::multi_aff
&multi2
) const;
2474 inline isl::checked::multi_pw_aff
sub(const isl::checked::pw_aff
&multi2
) const;
2475 inline isl::checked::multi_pw_aff
sub(const isl::checked::pw_multi_aff
&multi2
) const;
2476 inline isl::checked::multi_pw_aff
unbind_params_insert_domain(isl::checked::multi_id domain
) const;
2477 inline isl::checked::multi_pw_aff
union_add(isl::checked::multi_pw_aff mpa2
) const;
2478 inline isl::checked::multi_union_pw_aff
union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const;
2479 inline isl::checked::multi_pw_aff
union_add(const isl::checked::aff
&mpa2
) const;
2480 inline isl::checked::multi_pw_aff
union_add(const isl::checked::multi_aff
&mpa2
) const;
2481 inline isl::checked::multi_pw_aff
union_add(const isl::checked::pw_aff
&mpa2
) const;
2482 inline isl::checked::multi_pw_aff
union_add(const isl::checked::pw_multi_aff
&mpa2
) const;
2483 static inline isl::checked::multi_pw_aff
zero(isl::checked::space space
);
2486 // declarations for isl::multi_union_pw_aff
2487 inline multi_union_pw_aff
manage(__isl_take isl_multi_union_pw_aff
*ptr
);
2488 inline multi_union_pw_aff
manage_copy(__isl_keep isl_multi_union_pw_aff
*ptr
);
2490 class multi_union_pw_aff
{
2491 friend inline multi_union_pw_aff
manage(__isl_take isl_multi_union_pw_aff
*ptr
);
2492 friend inline multi_union_pw_aff
manage_copy(__isl_keep isl_multi_union_pw_aff
*ptr
);
2495 isl_multi_union_pw_aff
*ptr
= nullptr;
2497 inline explicit multi_union_pw_aff(__isl_take isl_multi_union_pw_aff
*ptr
);
2500 inline /* implicit */ multi_union_pw_aff();
2501 inline /* implicit */ multi_union_pw_aff(const multi_union_pw_aff
&obj
);
2502 inline /* implicit */ multi_union_pw_aff(isl::checked::multi_pw_aff mpa
);
2503 inline /* implicit */ multi_union_pw_aff(isl::checked::union_pw_aff upa
);
2504 inline explicit multi_union_pw_aff(isl::checked::space space
, isl::checked::union_pw_aff_list list
);
2505 inline explicit multi_union_pw_aff(isl::checked::ctx ctx
, const std::string
&str
);
2506 inline multi_union_pw_aff
&operator=(multi_union_pw_aff obj
);
2507 inline ~multi_union_pw_aff();
2508 inline __isl_give isl_multi_union_pw_aff
*copy() const &;
2509 inline __isl_give isl_multi_union_pw_aff
*copy() && = delete;
2510 inline __isl_keep isl_multi_union_pw_aff
*get() const;
2511 inline __isl_give isl_multi_union_pw_aff
*release();
2512 inline bool is_null() const;
2513 inline isl::checked::ctx
ctx() const;
2515 inline isl::checked::multi_union_pw_aff
add(isl::checked::multi_union_pw_aff multi2
) const;
2516 inline isl::checked::union_pw_aff
at(int pos
) const;
2517 inline isl::checked::union_pw_aff
get_at(int pos
) const;
2518 inline isl::checked::union_set
bind(isl::checked::multi_id tuple
) const;
2519 inline isl::checked::multi_union_pw_aff
coalesce() const;
2520 inline isl::checked::union_set
domain() const;
2521 inline isl::checked::multi_union_pw_aff
flat_range_product(isl::checked::multi_union_pw_aff multi2
) const;
2522 inline isl::checked::multi_union_pw_aff
gist(isl::checked::union_set context
) const;
2523 inline isl::checked::multi_union_pw_aff
gist_params(isl::checked::set context
) const;
2524 inline boolean
has_range_tuple_id() const;
2525 inline isl::checked::multi_union_pw_aff
intersect_domain(isl::checked::union_set uset
) const;
2526 inline isl::checked::multi_union_pw_aff
intersect_params(isl::checked::set params
) const;
2527 inline boolean
involves_nan() const;
2528 inline isl::checked::union_pw_aff_list
list() const;
2529 inline isl::checked::union_pw_aff_list
get_list() const;
2530 inline isl::checked::multi_union_pw_aff
neg() const;
2531 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
2532 inline isl::checked::multi_union_pw_aff
pullback(isl::checked::union_pw_multi_aff upma
) const;
2533 inline isl::checked::multi_union_pw_aff
range_product(isl::checked::multi_union_pw_aff multi2
) const;
2534 inline isl::checked::id
range_tuple_id() const;
2535 inline isl::checked::id
get_range_tuple_id() const;
2536 inline isl::checked::multi_union_pw_aff
reset_range_tuple_id() const;
2537 inline isl::checked::multi_union_pw_aff
scale(isl::checked::multi_val mv
) const;
2538 inline isl::checked::multi_union_pw_aff
scale(isl::checked::val v
) const;
2539 inline isl::checked::multi_union_pw_aff
scale(long v
) const;
2540 inline isl::checked::multi_union_pw_aff
scale_down(isl::checked::multi_val mv
) const;
2541 inline isl::checked::multi_union_pw_aff
scale_down(isl::checked::val v
) const;
2542 inline isl::checked::multi_union_pw_aff
scale_down(long v
) const;
2543 inline isl::checked::multi_union_pw_aff
set_at(int pos
, isl::checked::union_pw_aff el
) const;
2544 inline isl::checked::multi_union_pw_aff
set_range_tuple(isl::checked::id id
) const;
2545 inline isl::checked::multi_union_pw_aff
set_range_tuple(const std::string
&id
) const;
2546 inline class size
size() const;
2547 inline isl::checked::space
space() const;
2548 inline isl::checked::space
get_space() const;
2549 inline isl::checked::multi_union_pw_aff
sub(isl::checked::multi_union_pw_aff multi2
) const;
2550 inline isl::checked::multi_union_pw_aff
union_add(isl::checked::multi_union_pw_aff mupa2
) const;
2551 static inline isl::checked::multi_union_pw_aff
zero(isl::checked::space space
);
2554 // declarations for isl::multi_val
2555 inline multi_val
manage(__isl_take isl_multi_val
*ptr
);
2556 inline multi_val
manage_copy(__isl_keep isl_multi_val
*ptr
);
2559 friend inline multi_val
manage(__isl_take isl_multi_val
*ptr
);
2560 friend inline multi_val
manage_copy(__isl_keep isl_multi_val
*ptr
);
2563 isl_multi_val
*ptr
= nullptr;
2565 inline explicit multi_val(__isl_take isl_multi_val
*ptr
);
2568 inline /* implicit */ multi_val();
2569 inline /* implicit */ multi_val(const multi_val
&obj
);
2570 inline explicit multi_val(isl::checked::space space
, isl::checked::val_list list
);
2571 inline explicit multi_val(isl::checked::ctx ctx
, const std::string
&str
);
2572 inline multi_val
&operator=(multi_val obj
);
2573 inline ~multi_val();
2574 inline __isl_give isl_multi_val
*copy() const &;
2575 inline __isl_give isl_multi_val
*copy() && = delete;
2576 inline __isl_keep isl_multi_val
*get() const;
2577 inline __isl_give isl_multi_val
*release();
2578 inline bool is_null() const;
2579 inline isl::checked::ctx
ctx() const;
2581 inline isl::checked::multi_val
add(isl::checked::multi_val multi2
) const;
2582 inline isl::checked::multi_val
add(isl::checked::val v
) const;
2583 inline isl::checked::multi_val
add(long v
) const;
2584 inline isl::checked::val
at(int pos
) const;
2585 inline isl::checked::val
get_at(int pos
) const;
2586 inline isl::checked::multi_val
flat_range_product(isl::checked::multi_val multi2
) const;
2587 inline boolean
has_range_tuple_id() const;
2588 inline boolean
involves_nan() const;
2589 inline isl::checked::val_list
list() const;
2590 inline isl::checked::val_list
get_list() const;
2591 inline isl::checked::multi_val
max(isl::checked::multi_val multi2
) const;
2592 inline isl::checked::multi_val
min(isl::checked::multi_val multi2
) const;
2593 inline isl::checked::multi_val
neg() const;
2594 inline boolean
plain_is_equal(const isl::checked::multi_val
&multi2
) const;
2595 inline isl::checked::multi_val
product(isl::checked::multi_val multi2
) const;
2596 inline isl::checked::multi_val
range_product(isl::checked::multi_val multi2
) const;
2597 inline isl::checked::id
range_tuple_id() const;
2598 inline isl::checked::id
get_range_tuple_id() const;
2599 inline isl::checked::multi_val
reset_range_tuple_id() const;
2600 inline isl::checked::multi_val
scale(isl::checked::multi_val mv
) const;
2601 inline isl::checked::multi_val
scale(isl::checked::val v
) const;
2602 inline isl::checked::multi_val
scale(long v
) const;
2603 inline isl::checked::multi_val
scale_down(isl::checked::multi_val mv
) const;
2604 inline isl::checked::multi_val
scale_down(isl::checked::val v
) const;
2605 inline isl::checked::multi_val
scale_down(long v
) const;
2606 inline isl::checked::multi_val
set_at(int pos
, isl::checked::val el
) const;
2607 inline isl::checked::multi_val
set_at(int pos
, long el
) const;
2608 inline isl::checked::multi_val
set_range_tuple(isl::checked::id id
) const;
2609 inline isl::checked::multi_val
set_range_tuple(const std::string
&id
) const;
2610 inline class size
size() const;
2611 inline isl::checked::space
space() const;
2612 inline isl::checked::space
get_space() const;
2613 inline isl::checked::multi_val
sub(isl::checked::multi_val multi2
) const;
2614 static inline isl::checked::multi_val
zero(isl::checked::space space
);
2617 // declarations for isl::point
2618 inline point
manage(__isl_take isl_point
*ptr
);
2619 inline point
manage_copy(__isl_keep isl_point
*ptr
);
2622 friend inline point
manage(__isl_take isl_point
*ptr
);
2623 friend inline point
manage_copy(__isl_keep isl_point
*ptr
);
2626 isl_point
*ptr
= nullptr;
2628 inline explicit point(__isl_take isl_point
*ptr
);
2631 inline /* implicit */ point();
2632 inline /* implicit */ point(const point
&obj
);
2633 inline point
&operator=(point obj
);
2635 inline __isl_give isl_point
*copy() const &;
2636 inline __isl_give isl_point
*copy() && = delete;
2637 inline __isl_keep isl_point
*get() const;
2638 inline __isl_give isl_point
*release();
2639 inline bool is_null() const;
2640 inline isl::checked::ctx
ctx() const;
2642 inline isl::checked::basic_set
affine_hull() const;
2643 inline isl::checked::basic_set
apply(const isl::checked::basic_map
&bmap
) const;
2644 inline isl::checked::set
apply(const isl::checked::map
&map
) const;
2645 inline isl::checked::union_set
apply(const isl::checked::union_map
&umap
) const;
2646 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
2647 inline isl::checked::set
as_set() const;
2648 inline isl::checked::set
bind(const isl::checked::multi_id
&tuple
) const;
2649 inline isl::checked::set
coalesce() const;
2650 inline isl::checked::set
complement() const;
2651 inline isl::checked::union_set
compute_divs() const;
2652 inline isl::checked::basic_set
detect_equalities() const;
2653 inline isl::checked::val
dim_max_val(int pos
) const;
2654 inline isl::checked::val
dim_min_val(int pos
) const;
2655 inline isl::checked::set
drop_unused_params() const;
2656 inline boolean
every_set(const std::function
<boolean(isl::checked::set
)> &test
) const;
2657 inline isl::checked::set
extract_set(const isl::checked::space
&space
) const;
2658 inline isl::checked::basic_set
flatten() const;
2659 inline stat
foreach_basic_set(const std::function
<stat(isl::checked::basic_set
)> &fn
) const;
2660 inline stat
foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const;
2661 inline stat
foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const;
2662 inline isl::checked::basic_set
gist(const isl::checked::basic_set
&context
) const;
2663 inline isl::checked::set
gist(const isl::checked::set
&context
) const;
2664 inline isl::checked::union_set
gist(const isl::checked::union_set
&context
) const;
2665 inline isl::checked::set
gist_params(const isl::checked::set
&context
) const;
2666 inline isl::checked::map
identity() const;
2667 inline isl::checked::pw_aff
indicator_function() const;
2668 inline isl::checked::map
insert_domain(const isl::checked::space
&domain
) const;
2669 inline isl::checked::basic_set
intersect(const isl::checked::basic_set
&bset2
) const;
2670 inline isl::checked::set
intersect(const isl::checked::set
&set2
) const;
2671 inline isl::checked::union_set
intersect(const isl::checked::union_set
&uset2
) const;
2672 inline isl::checked::basic_set
intersect_params(const isl::checked::basic_set
&bset2
) const;
2673 inline isl::checked::set
intersect_params(const isl::checked::set
¶ms
) const;
2674 inline boolean
involves_locals() const;
2675 inline boolean
is_disjoint(const isl::checked::set
&set2
) const;
2676 inline boolean
is_disjoint(const isl::checked::union_set
&uset2
) const;
2677 inline boolean
is_empty() const;
2678 inline boolean
is_equal(const isl::checked::basic_set
&bset2
) const;
2679 inline boolean
is_equal(const isl::checked::set
&set2
) const;
2680 inline boolean
is_equal(const isl::checked::union_set
&uset2
) const;
2681 inline boolean
is_singleton() const;
2682 inline boolean
is_strict_subset(const isl::checked::set
&set2
) const;
2683 inline boolean
is_strict_subset(const isl::checked::union_set
&uset2
) const;
2684 inline boolean
is_subset(const isl::checked::basic_set
&bset2
) const;
2685 inline boolean
is_subset(const isl::checked::set
&set2
) const;
2686 inline boolean
is_subset(const isl::checked::union_set
&uset2
) const;
2687 inline boolean
is_wrapping() const;
2688 inline boolean
isa_set() const;
2689 inline isl::checked::fixed_box
lattice_tile() const;
2690 inline isl::checked::set
lexmax() const;
2691 inline isl::checked::pw_multi_aff
lexmax_pw_multi_aff() const;
2692 inline isl::checked::set
lexmin() const;
2693 inline isl::checked::pw_multi_aff
lexmin_pw_multi_aff() const;
2694 inline isl::checked::set
lower_bound(const isl::checked::multi_pw_aff
&lower
) const;
2695 inline isl::checked::set
lower_bound(const isl::checked::multi_val
&lower
) const;
2696 inline isl::checked::multi_pw_aff
max_multi_pw_aff() const;
2697 inline isl::checked::val
max_val(const isl::checked::aff
&obj
) const;
2698 inline isl::checked::multi_pw_aff
min_multi_pw_aff() const;
2699 inline isl::checked::val
min_val(const isl::checked::aff
&obj
) const;
2700 inline isl::checked::multi_val
multi_val() const;
2701 inline isl::checked::multi_val
get_multi_val() const;
2702 inline class size
n_basic_set() const;
2703 inline isl::checked::pw_aff
param_pw_aff_on_domain(const isl::checked::id
&id
) const;
2704 inline isl::checked::pw_aff
param_pw_aff_on_domain(const std::string
&id
) const;
2705 inline isl::checked::basic_set
params() const;
2706 inline isl::checked::multi_val
plain_multi_val_if_fixed() const;
2707 inline isl::checked::basic_set
polyhedral_hull() const;
2708 inline isl::checked::set
preimage(const isl::checked::multi_aff
&ma
) const;
2709 inline isl::checked::set
preimage(const isl::checked::multi_pw_aff
&mpa
) const;
2710 inline isl::checked::set
preimage(const isl::checked::pw_multi_aff
&pma
) const;
2711 inline isl::checked::union_set
preimage(const isl::checked::union_pw_multi_aff
&upma
) const;
2712 inline isl::checked::set
product(const isl::checked::set
&set2
) const;
2713 inline isl::checked::set
project_out_all_params() const;
2714 inline isl::checked::set
project_out_param(const isl::checked::id
&id
) const;
2715 inline isl::checked::set
project_out_param(const std::string
&id
) const;
2716 inline isl::checked::set
project_out_param(const isl::checked::id_list
&list
) const;
2717 inline isl::checked::pw_aff
pw_aff_on_domain(const isl::checked::val
&v
) const;
2718 inline isl::checked::pw_aff
pw_aff_on_domain(long v
) const;
2719 inline isl::checked::pw_multi_aff
pw_multi_aff_on_domain(const isl::checked::multi_val
&mv
) const;
2720 inline isl::checked::basic_set
sample() const;
2721 inline isl::checked::point
sample_point() const;
2722 inline isl::checked::set_list
set_list() const;
2723 inline isl::checked::fixed_box
simple_fixed_box_hull() const;
2724 inline isl::checked::space
space() const;
2725 inline isl::checked::val
stride(int pos
) const;
2726 inline isl::checked::set
subtract(const isl::checked::set
&set2
) const;
2727 inline isl::checked::union_set
subtract(const isl::checked::union_set
&uset2
) const;
2728 inline isl::checked::set_list
to_list() const;
2729 inline isl::checked::set
to_set() const;
2730 inline isl::checked::union_set
to_union_set() const;
2731 inline isl::checked::map
translation() const;
2732 inline class size
tuple_dim() const;
2733 inline isl::checked::set
unbind_params(const isl::checked::multi_id
&tuple
) const;
2734 inline isl::checked::map
unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const;
2735 inline isl::checked::set
unite(const isl::checked::basic_set
&bset2
) const;
2736 inline isl::checked::set
unite(const isl::checked::set
&set2
) const;
2737 inline isl::checked::union_set
unite(const isl::checked::union_set
&uset2
) const;
2738 inline isl::checked::basic_set
unshifted_simple_hull() const;
2739 inline isl::checked::map
unwrap() const;
2740 inline isl::checked::set
upper_bound(const isl::checked::multi_pw_aff
&upper
) const;
2741 inline isl::checked::set
upper_bound(const isl::checked::multi_val
&upper
) const;
2742 inline isl::checked::set
wrapped_reverse() const;
2745 // declarations for isl::pw_aff
2746 inline pw_aff
manage(__isl_take isl_pw_aff
*ptr
);
2747 inline pw_aff
manage_copy(__isl_keep isl_pw_aff
*ptr
);
2750 friend inline pw_aff
manage(__isl_take isl_pw_aff
*ptr
);
2751 friend inline pw_aff
manage_copy(__isl_keep isl_pw_aff
*ptr
);
2754 isl_pw_aff
*ptr
= nullptr;
2756 inline explicit pw_aff(__isl_take isl_pw_aff
*ptr
);
2759 inline /* implicit */ pw_aff();
2760 inline /* implicit */ pw_aff(const pw_aff
&obj
);
2761 inline /* implicit */ pw_aff(isl::checked::aff aff
);
2762 inline explicit pw_aff(isl::checked::ctx ctx
, const std::string
&str
);
2763 inline pw_aff
&operator=(pw_aff obj
);
2765 inline __isl_give isl_pw_aff
*copy() const &;
2766 inline __isl_give isl_pw_aff
*copy() && = delete;
2767 inline __isl_keep isl_pw_aff
*get() const;
2768 inline __isl_give isl_pw_aff
*release();
2769 inline bool is_null() const;
2770 inline isl::checked::ctx
ctx() const;
2772 inline isl::checked::multi_pw_aff
add(const isl::checked::multi_pw_aff
&multi2
) const;
2773 inline isl::checked::multi_union_pw_aff
add(const isl::checked::multi_union_pw_aff
&multi2
) const;
2774 inline isl::checked::pw_aff
add(isl::checked::pw_aff pwaff2
) const;
2775 inline isl::checked::pw_multi_aff
add(const isl::checked::pw_multi_aff
&pma2
) const;
2776 inline isl::checked::union_pw_aff
add(const isl::checked::union_pw_aff
&upa2
) const;
2777 inline isl::checked::union_pw_multi_aff
add(const isl::checked::union_pw_multi_aff
&upma2
) const;
2778 inline isl::checked::pw_aff
add(const isl::checked::aff
&pwaff2
) const;
2779 inline isl::checked::pw_aff
add_constant(isl::checked::val v
) const;
2780 inline isl::checked::pw_aff
add_constant(long v
) const;
2781 inline isl::checked::pw_multi_aff
add_constant(const isl::checked::multi_val
&mv
) const;
2782 inline isl::checked::union_pw_multi_aff
apply(const isl::checked::union_pw_multi_aff
&upma2
) const;
2783 inline isl::checked::aff
as_aff() const;
2784 inline isl::checked::map
as_map() const;
2785 inline isl::checked::multi_aff
as_multi_aff() const;
2786 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
2787 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
2788 inline isl::checked::set
as_set() const;
2789 inline isl::checked::union_map
as_union_map() const;
2790 inline isl::checked::pw_aff
at(int pos
) const;
2791 inline isl::checked::set
bind(const isl::checked::multi_id
&tuple
) const;
2792 inline isl::checked::set
bind(isl::checked::id id
) const;
2793 inline isl::checked::set
bind(const std::string
&id
) const;
2794 inline isl::checked::pw_aff
bind_domain(isl::checked::multi_id tuple
) const;
2795 inline isl::checked::pw_aff
bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const;
2796 inline isl::checked::pw_aff
ceil() const;
2797 inline isl::checked::pw_aff
coalesce() const;
2798 inline isl::checked::pw_aff
cond(isl::checked::pw_aff pwaff_true
, isl::checked::pw_aff pwaff_false
) const;
2799 inline isl::checked::pw_aff
div(isl::checked::pw_aff pa2
) const;
2800 inline isl::checked::set
domain() const;
2801 inline isl::checked::pw_aff
domain_reverse() const;
2802 inline isl::checked::pw_aff
drop_unused_params() const;
2803 inline isl::checked::set
eq_set(isl::checked::pw_aff pwaff2
) const;
2804 inline isl::checked::val
eval(isl::checked::point pnt
) const;
2805 inline isl::checked::pw_multi_aff
extract_pw_multi_aff(const isl::checked::space
&space
) const;
2806 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const;
2807 inline isl::checked::multi_union_pw_aff
flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
2808 inline isl::checked::pw_multi_aff
flat_range_product(const isl::checked::pw_multi_aff
&pma2
) const;
2809 inline isl::checked::union_pw_multi_aff
flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
2810 inline isl::checked::pw_aff
floor() const;
2811 inline stat
foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const;
2812 inline isl::checked::set
ge_set(isl::checked::pw_aff pwaff2
) const;
2813 inline isl::checked::pw_aff
gist(isl::checked::set context
) const;
2814 inline isl::checked::union_pw_aff
gist(const isl::checked::union_set
&context
) const;
2815 inline isl::checked::pw_aff
gist(const isl::checked::basic_set
&context
) const;
2816 inline isl::checked::pw_aff
gist(const isl::checked::point
&context
) const;
2817 inline isl::checked::pw_aff
gist_params(isl::checked::set context
) const;
2818 inline isl::checked::set
gt_set(isl::checked::pw_aff pwaff2
) const;
2819 inline boolean
has_range_tuple_id() const;
2820 inline isl::checked::multi_pw_aff
identity() const;
2821 inline isl::checked::pw_aff
insert_domain(isl::checked::space domain
) const;
2822 inline isl::checked::pw_aff
intersect_domain(isl::checked::set set
) const;
2823 inline isl::checked::union_pw_aff
intersect_domain(const isl::checked::space
&space
) const;
2824 inline isl::checked::union_pw_aff
intersect_domain(const isl::checked::union_set
&uset
) const;
2825 inline isl::checked::pw_aff
intersect_domain(const isl::checked::basic_set
&set
) const;
2826 inline isl::checked::pw_aff
intersect_domain(const isl::checked::point
&set
) const;
2827 inline isl::checked::union_pw_aff
intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const;
2828 inline isl::checked::union_pw_aff
intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const;
2829 inline isl::checked::pw_aff
intersect_params(isl::checked::set set
) const;
2830 inline boolean
involves_locals() const;
2831 inline boolean
involves_nan() const;
2832 inline boolean
involves_param(const isl::checked::id
&id
) const;
2833 inline boolean
involves_param(const std::string
&id
) const;
2834 inline boolean
involves_param(const isl::checked::id_list
&list
) const;
2835 inline boolean
isa_aff() const;
2836 inline boolean
isa_multi_aff() const;
2837 inline boolean
isa_pw_multi_aff() const;
2838 inline isl::checked::set
le_set(isl::checked::pw_aff pwaff2
) const;
2839 inline isl::checked::pw_aff_list
list() const;
2840 inline isl::checked::set
lt_set(isl::checked::pw_aff pwaff2
) const;
2841 inline isl::checked::multi_pw_aff
max(const isl::checked::multi_pw_aff
&multi2
) const;
2842 inline isl::checked::pw_aff
max(isl::checked::pw_aff pwaff2
) const;
2843 inline isl::checked::pw_aff
max(const isl::checked::aff
&pwaff2
) const;
2844 inline isl::checked::multi_val
max_multi_val() const;
2845 inline isl::checked::val
max_val() const;
2846 inline isl::checked::multi_pw_aff
min(const isl::checked::multi_pw_aff
&multi2
) const;
2847 inline isl::checked::pw_aff
min(isl::checked::pw_aff pwaff2
) const;
2848 inline isl::checked::pw_aff
min(const isl::checked::aff
&pwaff2
) const;
2849 inline isl::checked::multi_val
min_multi_val() const;
2850 inline isl::checked::val
min_val() const;
2851 inline isl::checked::pw_aff
mod(isl::checked::val mod
) const;
2852 inline isl::checked::pw_aff
mod(long mod
) const;
2853 inline isl::checked::pw_aff
mul(isl::checked::pw_aff pwaff2
) const;
2854 inline class size
n_piece() const;
2855 inline isl::checked::set
ne_set(isl::checked::pw_aff pwaff2
) const;
2856 inline isl::checked::pw_aff
neg() const;
2857 static inline isl::checked::pw_aff
param_on_domain(isl::checked::set domain
, isl::checked::id id
);
2858 inline isl::checked::set
params() const;
2859 inline boolean
plain_is_empty() const;
2860 inline boolean
plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const;
2861 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
2862 inline boolean
plain_is_equal(const isl::checked::pw_aff
&pwaff2
) const;
2863 inline boolean
plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const;
2864 inline boolean
plain_is_equal(const isl::checked::union_pw_aff
&upa2
) const;
2865 inline boolean
plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const;
2866 inline boolean
plain_is_equal(const isl::checked::aff
&pwaff2
) const;
2867 inline isl::checked::pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::pw_multi_aff
&pma2
) const;
2868 inline isl::checked::union_pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const;
2869 inline isl::checked::multi_pw_aff
product(const isl::checked::multi_pw_aff
&multi2
) const;
2870 inline isl::checked::pw_multi_aff
product(const isl::checked::pw_multi_aff
&pma2
) const;
2871 inline isl::checked::pw_aff
pullback(isl::checked::multi_aff ma
) const;
2872 inline isl::checked::pw_aff
pullback(isl::checked::multi_pw_aff mpa
) const;
2873 inline isl::checked::pw_aff
pullback(isl::checked::pw_multi_aff pma
) const;
2874 inline isl::checked::union_pw_aff
pullback(const isl::checked::union_pw_multi_aff
&upma
) const;
2875 inline isl::checked::pw_multi_aff_list
pw_multi_aff_list() const;
2876 inline isl::checked::pw_multi_aff
range_factor_domain() const;
2877 inline isl::checked::pw_multi_aff
range_factor_range() const;
2878 inline isl::checked::multi_pw_aff
range_product(const isl::checked::multi_pw_aff
&multi2
) const;
2879 inline isl::checked::multi_union_pw_aff
range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
2880 inline isl::checked::pw_multi_aff
range_product(const isl::checked::pw_multi_aff
&pma2
) const;
2881 inline isl::checked::union_pw_multi_aff
range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
2882 inline isl::checked::id
range_tuple_id() const;
2883 inline isl::checked::multi_pw_aff
reset_range_tuple_id() const;
2884 inline isl::checked::pw_aff
scale(isl::checked::val v
) const;
2885 inline isl::checked::pw_aff
scale(long v
) const;
2886 inline isl::checked::pw_multi_aff
scale(const isl::checked::multi_val
&mv
) const;
2887 inline isl::checked::pw_aff
scale_down(isl::checked::val f
) const;
2888 inline isl::checked::pw_aff
scale_down(long f
) const;
2889 inline isl::checked::pw_multi_aff
scale_down(const isl::checked::multi_val
&mv
) const;
2890 inline isl::checked::multi_pw_aff
set_at(int pos
, const isl::checked::pw_aff
&el
) const;
2891 inline isl::checked::multi_union_pw_aff
set_at(int pos
, const isl::checked::union_pw_aff
&el
) const;
2892 inline isl::checked::pw_multi_aff
set_range_tuple(const isl::checked::id
&id
) const;
2893 inline isl::checked::pw_multi_aff
set_range_tuple(const std::string
&id
) const;
2894 inline class size
size() const;
2895 inline isl::checked::space
space() const;
2896 inline isl::checked::space
get_space() const;
2897 inline isl::checked::multi_pw_aff
sub(const isl::checked::multi_pw_aff
&multi2
) const;
2898 inline isl::checked::multi_union_pw_aff
sub(const isl::checked::multi_union_pw_aff
&multi2
) const;
2899 inline isl::checked::pw_aff
sub(isl::checked::pw_aff pwaff2
) const;
2900 inline isl::checked::pw_multi_aff
sub(const isl::checked::pw_multi_aff
&pma2
) const;
2901 inline isl::checked::union_pw_aff
sub(const isl::checked::union_pw_aff
&upa2
) const;
2902 inline isl::checked::union_pw_multi_aff
sub(const isl::checked::union_pw_multi_aff
&upma2
) const;
2903 inline isl::checked::pw_aff
sub(const isl::checked::aff
&pwaff2
) const;
2904 inline isl::checked::pw_aff
subtract_domain(isl::checked::set set
) const;
2905 inline isl::checked::union_pw_aff
subtract_domain(const isl::checked::space
&space
) const;
2906 inline isl::checked::union_pw_aff
subtract_domain(const isl::checked::union_set
&uset
) const;
2907 inline isl::checked::pw_aff
subtract_domain(const isl::checked::basic_set
&set
) const;
2908 inline isl::checked::pw_aff
subtract_domain(const isl::checked::point
&set
) const;
2909 inline isl::checked::pw_aff
tdiv_q(isl::checked::pw_aff pa2
) const;
2910 inline isl::checked::pw_aff
tdiv_r(isl::checked::pw_aff pa2
) const;
2911 inline isl::checked::pw_aff_list
to_list() const;
2912 inline isl::checked::multi_pw_aff
to_multi_pw_aff() const;
2913 inline isl::checked::union_pw_aff
to_union_pw_aff() const;
2914 inline isl::checked::union_pw_multi_aff
to_union_pw_multi_aff() const;
2915 inline isl::checked::multi_pw_aff
unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const;
2916 inline isl::checked::multi_pw_aff
union_add(const isl::checked::multi_pw_aff
&mpa2
) const;
2917 inline isl::checked::multi_union_pw_aff
union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const;
2918 inline isl::checked::pw_aff
union_add(isl::checked::pw_aff pwaff2
) const;
2919 inline isl::checked::pw_multi_aff
union_add(const isl::checked::pw_multi_aff
&pma2
) const;
2920 inline isl::checked::union_pw_aff
union_add(const isl::checked::union_pw_aff
&upa2
) const;
2921 inline isl::checked::union_pw_multi_aff
union_add(const isl::checked::union_pw_multi_aff
&upma2
) const;
2922 inline isl::checked::pw_aff
union_add(const isl::checked::aff
&pwaff2
) const;
2925 // declarations for isl::pw_aff_list
2926 inline pw_aff_list
manage(__isl_take isl_pw_aff_list
*ptr
);
2927 inline pw_aff_list
manage_copy(__isl_keep isl_pw_aff_list
*ptr
);
2930 friend inline pw_aff_list
manage(__isl_take isl_pw_aff_list
*ptr
);
2931 friend inline pw_aff_list
manage_copy(__isl_keep isl_pw_aff_list
*ptr
);
2934 isl_pw_aff_list
*ptr
= nullptr;
2936 inline explicit pw_aff_list(__isl_take isl_pw_aff_list
*ptr
);
2939 inline /* implicit */ pw_aff_list();
2940 inline /* implicit */ pw_aff_list(const pw_aff_list
&obj
);
2941 inline explicit pw_aff_list(isl::checked::ctx ctx
, int n
);
2942 inline explicit pw_aff_list(isl::checked::pw_aff el
);
2943 inline explicit pw_aff_list(isl::checked::ctx ctx
, const std::string
&str
);
2944 inline pw_aff_list
&operator=(pw_aff_list obj
);
2945 inline ~pw_aff_list();
2946 inline __isl_give isl_pw_aff_list
*copy() const &;
2947 inline __isl_give isl_pw_aff_list
*copy() && = delete;
2948 inline __isl_keep isl_pw_aff_list
*get() const;
2949 inline __isl_give isl_pw_aff_list
*release();
2950 inline bool is_null() const;
2951 inline isl::checked::ctx
ctx() const;
2953 inline isl::checked::pw_aff_list
add(isl::checked::pw_aff el
) const;
2954 inline isl::checked::pw_aff
at(int index
) const;
2955 inline isl::checked::pw_aff
get_at(int index
) const;
2956 inline isl::checked::pw_aff_list
clear() const;
2957 inline isl::checked::pw_aff_list
concat(isl::checked::pw_aff_list list2
) const;
2958 inline isl::checked::pw_aff_list
drop(unsigned int first
, unsigned int n
) const;
2959 inline stat
foreach(const std::function
<stat(isl::checked::pw_aff
)> &fn
) const;
2960 inline stat
foreach_scc(const std::function
<boolean(isl::checked::pw_aff
, isl::checked::pw_aff
)> &follows
, const std::function
<stat(isl::checked::pw_aff_list
)> &fn
) const;
2961 inline isl::checked::pw_aff_list
insert(unsigned int pos
, isl::checked::pw_aff el
) const;
2962 inline isl::checked::pw_aff_list
set_at(int index
, isl::checked::pw_aff el
) const;
2963 inline class size
size() const;
2966 // declarations for isl::pw_multi_aff
2967 inline pw_multi_aff
manage(__isl_take isl_pw_multi_aff
*ptr
);
2968 inline pw_multi_aff
manage_copy(__isl_keep isl_pw_multi_aff
*ptr
);
2970 class pw_multi_aff
{
2971 friend inline pw_multi_aff
manage(__isl_take isl_pw_multi_aff
*ptr
);
2972 friend inline pw_multi_aff
manage_copy(__isl_keep isl_pw_multi_aff
*ptr
);
2975 isl_pw_multi_aff
*ptr
= nullptr;
2977 inline explicit pw_multi_aff(__isl_take isl_pw_multi_aff
*ptr
);
2980 inline /* implicit */ pw_multi_aff();
2981 inline /* implicit */ pw_multi_aff(const pw_multi_aff
&obj
);
2982 inline /* implicit */ pw_multi_aff(isl::checked::multi_aff ma
);
2983 inline /* implicit */ pw_multi_aff(isl::checked::pw_aff pa
);
2984 inline explicit pw_multi_aff(isl::checked::ctx ctx
, const std::string
&str
);
2985 inline pw_multi_aff
&operator=(pw_multi_aff obj
);
2986 inline ~pw_multi_aff();
2987 inline __isl_give isl_pw_multi_aff
*copy() const &;
2988 inline __isl_give isl_pw_multi_aff
*copy() && = delete;
2989 inline __isl_keep isl_pw_multi_aff
*get() const;
2990 inline __isl_give isl_pw_multi_aff
*release();
2991 inline bool is_null() const;
2992 inline isl::checked::ctx
ctx() const;
2994 inline isl::checked::multi_pw_aff
add(const isl::checked::multi_pw_aff
&multi2
) const;
2995 inline isl::checked::multi_union_pw_aff
add(const isl::checked::multi_union_pw_aff
&multi2
) const;
2996 inline isl::checked::pw_multi_aff
add(isl::checked::pw_multi_aff pma2
) const;
2997 inline isl::checked::union_pw_multi_aff
add(const isl::checked::union_pw_multi_aff
&upma2
) const;
2998 inline isl::checked::pw_multi_aff
add(const isl::checked::multi_aff
&pma2
) const;
2999 inline isl::checked::pw_multi_aff
add(const isl::checked::pw_aff
&pma2
) const;
3000 inline isl::checked::pw_multi_aff
add_constant(isl::checked::multi_val mv
) const;
3001 inline isl::checked::pw_multi_aff
add_constant(isl::checked::val v
) const;
3002 inline isl::checked::pw_multi_aff
add_constant(long v
) const;
3003 inline isl::checked::union_pw_multi_aff
apply(const isl::checked::union_pw_multi_aff
&upma2
) const;
3004 inline isl::checked::map
as_map() const;
3005 inline isl::checked::multi_aff
as_multi_aff() const;
3006 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
3007 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
3008 inline isl::checked::set
as_set() const;
3009 inline isl::checked::union_map
as_union_map() const;
3010 inline isl::checked::pw_aff
at(int pos
) const;
3011 inline isl::checked::pw_aff
get_at(int pos
) const;
3012 inline isl::checked::set
bind(const isl::checked::multi_id
&tuple
) const;
3013 inline isl::checked::pw_multi_aff
bind_domain(isl::checked::multi_id tuple
) const;
3014 inline isl::checked::pw_multi_aff
bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const;
3015 inline isl::checked::pw_multi_aff
coalesce() const;
3016 inline isl::checked::set
domain() const;
3017 static inline isl::checked::pw_multi_aff
domain_map(isl::checked::space space
);
3018 inline isl::checked::pw_multi_aff
domain_reverse() const;
3019 inline isl::checked::pw_multi_aff
drop_unused_params() const;
3020 inline isl::checked::pw_multi_aff
extract_pw_multi_aff(const isl::checked::space
&space
) const;
3021 inline isl::checked::multi_pw_aff
flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const;
3022 inline isl::checked::multi_union_pw_aff
flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
3023 inline isl::checked::pw_multi_aff
flat_range_product(isl::checked::pw_multi_aff pma2
) const;
3024 inline isl::checked::union_pw_multi_aff
flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
3025 inline isl::checked::pw_multi_aff
flat_range_product(const isl::checked::multi_aff
&pma2
) const;
3026 inline isl::checked::pw_multi_aff
flat_range_product(const isl::checked::pw_aff
&pma2
) const;
3027 inline stat
foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const;
3028 inline isl::checked::pw_multi_aff
gist(isl::checked::set set
) const;
3029 inline isl::checked::union_pw_multi_aff
gist(const isl::checked::union_set
&context
) const;
3030 inline isl::checked::pw_multi_aff
gist(const isl::checked::basic_set
&set
) const;
3031 inline isl::checked::pw_multi_aff
gist(const isl::checked::point
&set
) const;
3032 inline isl::checked::pw_multi_aff
gist_params(isl::checked::set set
) const;
3033 inline boolean
has_range_tuple_id() const;
3034 inline isl::checked::multi_pw_aff
identity() const;
3035 static inline isl::checked::pw_multi_aff
identity_on_domain(isl::checked::space space
);
3036 inline isl::checked::pw_multi_aff
insert_domain(isl::checked::space domain
) const;
3037 inline isl::checked::pw_multi_aff
intersect_domain(isl::checked::set set
) const;
3038 inline isl::checked::union_pw_multi_aff
intersect_domain(const isl::checked::space
&space
) const;
3039 inline isl::checked::union_pw_multi_aff
intersect_domain(const isl::checked::union_set
&uset
) const;
3040 inline isl::checked::pw_multi_aff
intersect_domain(const isl::checked::basic_set
&set
) const;
3041 inline isl::checked::pw_multi_aff
intersect_domain(const isl::checked::point
&set
) const;
3042 inline isl::checked::union_pw_multi_aff
intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const;
3043 inline isl::checked::union_pw_multi_aff
intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const;
3044 inline isl::checked::pw_multi_aff
intersect_params(isl::checked::set set
) const;
3045 inline boolean
involves_locals() const;
3046 inline boolean
involves_nan() const;
3047 inline boolean
involves_param(const isl::checked::id
&id
) const;
3048 inline boolean
involves_param(const std::string
&id
) const;
3049 inline boolean
involves_param(const isl::checked::id_list
&list
) const;
3050 inline boolean
isa_multi_aff() const;
3051 inline boolean
isa_pw_multi_aff() const;
3052 inline isl::checked::pw_aff_list
list() const;
3053 inline isl::checked::multi_pw_aff
max(const isl::checked::multi_pw_aff
&multi2
) const;
3054 inline isl::checked::multi_val
max_multi_val() const;
3055 inline isl::checked::multi_pw_aff
min(const isl::checked::multi_pw_aff
&multi2
) const;
3056 inline isl::checked::multi_val
min_multi_val() const;
3057 static inline isl::checked::pw_multi_aff
multi_val_on_domain(isl::checked::set domain
, isl::checked::multi_val mv
);
3058 inline class size
n_piece() const;
3059 inline isl::checked::multi_pw_aff
neg() const;
3060 inline boolean
plain_is_empty() const;
3061 inline boolean
plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const;
3062 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
3063 inline boolean
plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const;
3064 inline boolean
plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const;
3065 inline boolean
plain_is_equal(const isl::checked::multi_aff
&pma2
) const;
3066 inline boolean
plain_is_equal(const isl::checked::pw_aff
&pma2
) const;
3067 inline isl::checked::pw_multi_aff
preimage_domain_wrapped_domain(isl::checked::pw_multi_aff pma2
) const;
3068 inline isl::checked::union_pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const;
3069 inline isl::checked::pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::multi_aff
&pma2
) const;
3070 inline isl::checked::pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::pw_aff
&pma2
) const;
3071 inline isl::checked::multi_pw_aff
product(const isl::checked::multi_pw_aff
&multi2
) const;
3072 inline isl::checked::pw_multi_aff
product(isl::checked::pw_multi_aff pma2
) const;
3073 inline isl::checked::pw_multi_aff
product(const isl::checked::multi_aff
&pma2
) const;
3074 inline isl::checked::pw_multi_aff
product(const isl::checked::pw_aff
&pma2
) const;
3075 inline isl::checked::multi_pw_aff
pullback(const isl::checked::multi_pw_aff
&mpa2
) const;
3076 inline isl::checked::pw_multi_aff
pullback(isl::checked::multi_aff ma
) const;
3077 inline isl::checked::pw_multi_aff
pullback(isl::checked::pw_multi_aff pma2
) const;
3078 inline isl::checked::union_pw_multi_aff
pullback(const isl::checked::union_pw_multi_aff
&upma2
) const;
3079 inline isl::checked::pw_multi_aff_list
pw_multi_aff_list() const;
3080 inline isl::checked::pw_multi_aff
range_factor_domain() const;
3081 inline isl::checked::pw_multi_aff
range_factor_range() const;
3082 static inline isl::checked::pw_multi_aff
range_map(isl::checked::space space
);
3083 inline isl::checked::multi_pw_aff
range_product(const isl::checked::multi_pw_aff
&multi2
) const;
3084 inline isl::checked::multi_union_pw_aff
range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
3085 inline isl::checked::pw_multi_aff
range_product(isl::checked::pw_multi_aff pma2
) const;
3086 inline isl::checked::union_pw_multi_aff
range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
3087 inline isl::checked::pw_multi_aff
range_product(const isl::checked::multi_aff
&pma2
) const;
3088 inline isl::checked::pw_multi_aff
range_product(const isl::checked::pw_aff
&pma2
) const;
3089 inline isl::checked::id
range_tuple_id() const;
3090 inline isl::checked::id
get_range_tuple_id() const;
3091 inline isl::checked::multi_pw_aff
reset_range_tuple_id() const;
3092 inline isl::checked::pw_multi_aff
scale(isl::checked::multi_val mv
) const;
3093 inline isl::checked::pw_multi_aff
scale(isl::checked::val v
) const;
3094 inline isl::checked::pw_multi_aff
scale(long v
) const;
3095 inline isl::checked::pw_multi_aff
scale_down(isl::checked::multi_val mv
) const;
3096 inline isl::checked::pw_multi_aff
scale_down(isl::checked::val v
) const;
3097 inline isl::checked::pw_multi_aff
scale_down(long v
) const;
3098 inline isl::checked::multi_pw_aff
set_at(int pos
, const isl::checked::pw_aff
&el
) const;
3099 inline isl::checked::multi_union_pw_aff
set_at(int pos
, const isl::checked::union_pw_aff
&el
) const;
3100 inline isl::checked::pw_multi_aff
set_range_tuple(isl::checked::id id
) const;
3101 inline isl::checked::pw_multi_aff
set_range_tuple(const std::string
&id
) const;
3102 inline class size
size() const;
3103 inline isl::checked::space
space() const;
3104 inline isl::checked::space
get_space() const;
3105 inline isl::checked::multi_pw_aff
sub(const isl::checked::multi_pw_aff
&multi2
) const;
3106 inline isl::checked::multi_union_pw_aff
sub(const isl::checked::multi_union_pw_aff
&multi2
) const;
3107 inline isl::checked::pw_multi_aff
sub(isl::checked::pw_multi_aff pma2
) const;
3108 inline isl::checked::union_pw_multi_aff
sub(const isl::checked::union_pw_multi_aff
&upma2
) const;
3109 inline isl::checked::pw_multi_aff
sub(const isl::checked::multi_aff
&pma2
) const;
3110 inline isl::checked::pw_multi_aff
sub(const isl::checked::pw_aff
&pma2
) const;
3111 inline isl::checked::pw_multi_aff
subtract_domain(isl::checked::set set
) const;
3112 inline isl::checked::union_pw_multi_aff
subtract_domain(const isl::checked::space
&space
) const;
3113 inline isl::checked::union_pw_multi_aff
subtract_domain(const isl::checked::union_set
&uset
) const;
3114 inline isl::checked::pw_multi_aff
subtract_domain(const isl::checked::basic_set
&set
) const;
3115 inline isl::checked::pw_multi_aff
subtract_domain(const isl::checked::point
&set
) const;
3116 inline isl::checked::pw_multi_aff_list
to_list() const;
3117 inline isl::checked::multi_pw_aff
to_multi_pw_aff() const;
3118 inline isl::checked::union_pw_multi_aff
to_union_pw_multi_aff() const;
3119 inline isl::checked::multi_pw_aff
unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const;
3120 inline isl::checked::multi_pw_aff
union_add(const isl::checked::multi_pw_aff
&mpa2
) const;
3121 inline isl::checked::multi_union_pw_aff
union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const;
3122 inline isl::checked::pw_multi_aff
union_add(isl::checked::pw_multi_aff pma2
) const;
3123 inline isl::checked::union_pw_multi_aff
union_add(const isl::checked::union_pw_multi_aff
&upma2
) const;
3124 inline isl::checked::pw_multi_aff
union_add(const isl::checked::multi_aff
&pma2
) const;
3125 inline isl::checked::pw_multi_aff
union_add(const isl::checked::pw_aff
&pma2
) const;
3126 static inline isl::checked::pw_multi_aff
zero(isl::checked::space space
);
3129 // declarations for isl::pw_multi_aff_list
3130 inline pw_multi_aff_list
manage(__isl_take isl_pw_multi_aff_list
*ptr
);
3131 inline pw_multi_aff_list
manage_copy(__isl_keep isl_pw_multi_aff_list
*ptr
);
3133 class pw_multi_aff_list
{
3134 friend inline pw_multi_aff_list
manage(__isl_take isl_pw_multi_aff_list
*ptr
);
3135 friend inline pw_multi_aff_list
manage_copy(__isl_keep isl_pw_multi_aff_list
*ptr
);
3138 isl_pw_multi_aff_list
*ptr
= nullptr;
3140 inline explicit pw_multi_aff_list(__isl_take isl_pw_multi_aff_list
*ptr
);
3143 inline /* implicit */ pw_multi_aff_list();
3144 inline /* implicit */ pw_multi_aff_list(const pw_multi_aff_list
&obj
);
3145 inline explicit pw_multi_aff_list(isl::checked::ctx ctx
, int n
);
3146 inline explicit pw_multi_aff_list(isl::checked::pw_multi_aff el
);
3147 inline explicit pw_multi_aff_list(isl::checked::ctx ctx
, const std::string
&str
);
3148 inline pw_multi_aff_list
&operator=(pw_multi_aff_list obj
);
3149 inline ~pw_multi_aff_list();
3150 inline __isl_give isl_pw_multi_aff_list
*copy() const &;
3151 inline __isl_give isl_pw_multi_aff_list
*copy() && = delete;
3152 inline __isl_keep isl_pw_multi_aff_list
*get() const;
3153 inline __isl_give isl_pw_multi_aff_list
*release();
3154 inline bool is_null() const;
3155 inline isl::checked::ctx
ctx() const;
3157 inline isl::checked::pw_multi_aff_list
add(isl::checked::pw_multi_aff el
) const;
3158 inline isl::checked::pw_multi_aff
at(int index
) const;
3159 inline isl::checked::pw_multi_aff
get_at(int index
) const;
3160 inline isl::checked::pw_multi_aff_list
clear() const;
3161 inline isl::checked::pw_multi_aff_list
concat(isl::checked::pw_multi_aff_list list2
) const;
3162 inline isl::checked::pw_multi_aff_list
drop(unsigned int first
, unsigned int n
) const;
3163 inline stat
foreach(const std::function
<stat(isl::checked::pw_multi_aff
)> &fn
) const;
3164 inline stat
foreach_scc(const std::function
<boolean(isl::checked::pw_multi_aff
, isl::checked::pw_multi_aff
)> &follows
, const std::function
<stat(isl::checked::pw_multi_aff_list
)> &fn
) const;
3165 inline isl::checked::pw_multi_aff_list
insert(unsigned int pos
, isl::checked::pw_multi_aff el
) const;
3166 inline isl::checked::pw_multi_aff_list
set_at(int index
, isl::checked::pw_multi_aff el
) const;
3167 inline class size
size() const;
3170 // declarations for isl::schedule
3171 inline schedule
manage(__isl_take isl_schedule
*ptr
);
3172 inline schedule
manage_copy(__isl_keep isl_schedule
*ptr
);
3175 friend inline schedule
manage(__isl_take isl_schedule
*ptr
);
3176 friend inline schedule
manage_copy(__isl_keep isl_schedule
*ptr
);
3179 isl_schedule
*ptr
= nullptr;
3181 inline explicit schedule(__isl_take isl_schedule
*ptr
);
3184 inline /* implicit */ schedule();
3185 inline /* implicit */ schedule(const schedule
&obj
);
3186 inline explicit schedule(isl::checked::ctx ctx
, const std::string
&str
);
3187 inline schedule
&operator=(schedule obj
);
3189 inline __isl_give isl_schedule
*copy() const &;
3190 inline __isl_give isl_schedule
*copy() && = delete;
3191 inline __isl_keep isl_schedule
*get() const;
3192 inline __isl_give isl_schedule
*release();
3193 inline bool is_null() const;
3194 inline isl::checked::ctx
ctx() const;
3196 inline isl::checked::union_set
domain() const;
3197 inline isl::checked::union_set
get_domain() const;
3198 static inline isl::checked::schedule
from_domain(isl::checked::union_set domain
);
3199 inline isl::checked::union_map
map() const;
3200 inline isl::checked::union_map
get_map() const;
3201 inline isl::checked::schedule
pullback(isl::checked::union_pw_multi_aff upma
) const;
3202 inline isl::checked::schedule_node
root() const;
3203 inline isl::checked::schedule_node
get_root() const;
3206 // declarations for isl::schedule_constraints
3207 inline schedule_constraints
manage(__isl_take isl_schedule_constraints
*ptr
);
3208 inline schedule_constraints
manage_copy(__isl_keep isl_schedule_constraints
*ptr
);
3210 class schedule_constraints
{
3211 friend inline schedule_constraints
manage(__isl_take isl_schedule_constraints
*ptr
);
3212 friend inline schedule_constraints
manage_copy(__isl_keep isl_schedule_constraints
*ptr
);
3215 isl_schedule_constraints
*ptr
= nullptr;
3217 inline explicit schedule_constraints(__isl_take isl_schedule_constraints
*ptr
);
3220 inline /* implicit */ schedule_constraints();
3221 inline /* implicit */ schedule_constraints(const schedule_constraints
&obj
);
3222 inline explicit schedule_constraints(isl::checked::ctx ctx
, const std::string
&str
);
3223 inline schedule_constraints
&operator=(schedule_constraints obj
);
3224 inline ~schedule_constraints();
3225 inline __isl_give isl_schedule_constraints
*copy() const &;
3226 inline __isl_give isl_schedule_constraints
*copy() && = delete;
3227 inline __isl_keep isl_schedule_constraints
*get() const;
3228 inline __isl_give isl_schedule_constraints
*release();
3229 inline bool is_null() const;
3230 inline isl::checked::ctx
ctx() const;
3232 inline isl::checked::union_map
coincidence() const;
3233 inline isl::checked::union_map
get_coincidence() const;
3234 inline isl::checked::schedule
compute_schedule() const;
3235 inline isl::checked::union_map
conditional_validity() const;
3236 inline isl::checked::union_map
get_conditional_validity() const;
3237 inline isl::checked::union_map
conditional_validity_condition() const;
3238 inline isl::checked::union_map
get_conditional_validity_condition() const;
3239 inline isl::checked::set
context() const;
3240 inline isl::checked::set
get_context() const;
3241 inline isl::checked::union_set
domain() const;
3242 inline isl::checked::union_set
get_domain() const;
3243 static inline isl::checked::schedule_constraints
on_domain(isl::checked::union_set domain
);
3244 inline isl::checked::union_map
proximity() const;
3245 inline isl::checked::union_map
get_proximity() const;
3246 inline isl::checked::schedule_constraints
set_coincidence(isl::checked::union_map coincidence
) const;
3247 inline isl::checked::schedule_constraints
set_conditional_validity(isl::checked::union_map condition
, isl::checked::union_map validity
) const;
3248 inline isl::checked::schedule_constraints
set_context(isl::checked::set context
) const;
3249 inline isl::checked::schedule_constraints
set_proximity(isl::checked::union_map proximity
) const;
3250 inline isl::checked::schedule_constraints
set_validity(isl::checked::union_map validity
) const;
3251 inline isl::checked::union_map
validity() const;
3252 inline isl::checked::union_map
get_validity() const;
3255 // declarations for isl::schedule_node
3256 inline schedule_node
manage(__isl_take isl_schedule_node
*ptr
);
3257 inline schedule_node
manage_copy(__isl_keep isl_schedule_node
*ptr
);
3259 class schedule_node
{
3260 friend inline schedule_node
manage(__isl_take isl_schedule_node
*ptr
);
3261 friend inline schedule_node
manage_copy(__isl_keep isl_schedule_node
*ptr
);
3264 isl_schedule_node
*ptr
= nullptr;
3266 inline explicit schedule_node(__isl_take isl_schedule_node
*ptr
);
3269 inline /* implicit */ schedule_node();
3270 inline /* implicit */ schedule_node(const schedule_node
&obj
);
3271 inline schedule_node
&operator=(schedule_node obj
);
3272 inline ~schedule_node();
3273 inline __isl_give isl_schedule_node
*copy() const &;
3274 inline __isl_give isl_schedule_node
*copy() && = delete;
3275 inline __isl_keep isl_schedule_node
*get() const;
3276 inline __isl_give isl_schedule_node
*release();
3277 inline bool is_null() const;
3279 template <typename T
,
3280 typename
= typename
std::enable_if
<std::is_same
<
3281 const decltype(isl_schedule_node_get_type(NULL
)),
3282 const T
>::value
>::type
>
3283 inline boolean
isa_type(T subtype
) const;
3285 template <class T
> inline boolean
isa() const;
3286 template <class T
> inline T
as() const;
3287 inline isl::checked::ctx
ctx() const;
3289 inline isl::checked::schedule_node
ancestor(int generation
) const;
3290 inline class size
ancestor_child_position(const isl::checked::schedule_node
&ancestor
) const;
3291 inline class size
get_ancestor_child_position(const isl::checked::schedule_node
&ancestor
) const;
3292 inline isl::checked::schedule_node
child(int pos
) const;
3293 inline class size
child_position() const;
3294 inline class size
get_child_position() const;
3295 inline boolean
every_descendant(const std::function
<boolean(isl::checked::schedule_node
)> &test
) const;
3296 inline isl::checked::schedule_node
first_child() const;
3297 inline stat
foreach_ancestor_top_down(const std::function
<stat(isl::checked::schedule_node
)> &fn
) const;
3298 inline stat
foreach_descendant_top_down(const std::function
<boolean(isl::checked::schedule_node
)> &fn
) const;
3299 static inline isl::checked::schedule_node
from_domain(isl::checked::union_set domain
);
3300 static inline isl::checked::schedule_node
from_extension(isl::checked::union_map extension
);
3301 inline isl::checked::schedule_node
graft_after(isl::checked::schedule_node graft
) const;
3302 inline isl::checked::schedule_node
graft_before(isl::checked::schedule_node graft
) const;
3303 inline boolean
has_children() const;
3304 inline boolean
has_next_sibling() const;
3305 inline boolean
has_parent() const;
3306 inline boolean
has_previous_sibling() const;
3307 inline isl::checked::schedule_node
insert_context(isl::checked::set context
) const;
3308 inline isl::checked::schedule_node
insert_filter(isl::checked::union_set filter
) const;
3309 inline isl::checked::schedule_node
insert_guard(isl::checked::set context
) const;
3310 inline isl::checked::schedule_node
insert_mark(isl::checked::id mark
) const;
3311 inline isl::checked::schedule_node
insert_mark(const std::string
&mark
) const;
3312 inline isl::checked::schedule_node
insert_partial_schedule(isl::checked::multi_union_pw_aff schedule
) const;
3313 inline isl::checked::schedule_node
insert_sequence(isl::checked::union_set_list filters
) const;
3314 inline isl::checked::schedule_node
insert_set(isl::checked::union_set_list filters
) const;
3315 inline boolean
is_equal(const isl::checked::schedule_node
&node2
) const;
3316 inline boolean
is_subtree_anchored() const;
3317 inline isl::checked::schedule_node
map_descendant_bottom_up(const std::function
<isl::checked::schedule_node(isl::checked::schedule_node
)> &fn
) const;
3318 inline class size
n_children() const;
3319 inline isl::checked::schedule_node
next_sibling() const;
3320 inline isl::checked::schedule_node
order_after(isl::checked::union_set filter
) const;
3321 inline isl::checked::schedule_node
order_before(isl::checked::union_set filter
) const;
3322 inline isl::checked::schedule_node
parent() const;
3323 inline isl::checked::multi_union_pw_aff
prefix_schedule_multi_union_pw_aff() const;
3324 inline isl::checked::multi_union_pw_aff
get_prefix_schedule_multi_union_pw_aff() const;
3325 inline isl::checked::union_map
prefix_schedule_union_map() const;
3326 inline isl::checked::union_map
get_prefix_schedule_union_map() const;
3327 inline isl::checked::union_pw_multi_aff
prefix_schedule_union_pw_multi_aff() const;
3328 inline isl::checked::union_pw_multi_aff
get_prefix_schedule_union_pw_multi_aff() const;
3329 inline isl::checked::schedule_node
previous_sibling() const;
3330 inline isl::checked::schedule_node
root() const;
3331 inline isl::checked::schedule
schedule() const;
3332 inline isl::checked::schedule
get_schedule() const;
3333 inline isl::checked::schedule_node
shared_ancestor(const isl::checked::schedule_node
&node2
) const;
3334 inline isl::checked::schedule_node
get_shared_ancestor(const isl::checked::schedule_node
&node2
) const;
3335 inline class size
tree_depth() const;
3336 inline class size
get_tree_depth() const;
3339 // declarations for isl::schedule_node_band
3341 class schedule_node_band
: public schedule_node
{
3343 friend boolean
schedule_node::isa() const;
3344 friend schedule_node_band
schedule_node::as
<schedule_node_band
>() const;
3345 static const auto type
= isl_schedule_node_band
;
3348 inline explicit schedule_node_band(__isl_take isl_schedule_node
*ptr
);
3351 inline /* implicit */ schedule_node_band();
3352 inline /* implicit */ schedule_node_band(const schedule_node_band
&obj
);
3353 inline schedule_node_band
&operator=(schedule_node_band obj
);
3354 inline isl::checked::ctx
ctx() const;
3356 inline isl::checked::union_set
ast_build_options() const;
3357 inline isl::checked::union_set
get_ast_build_options() const;
3358 inline isl::checked::set
ast_isolate_option() const;
3359 inline isl::checked::set
get_ast_isolate_option() const;
3360 inline boolean
member_get_coincident(int pos
) const;
3361 inline schedule_node_band
member_set_coincident(int pos
, int coincident
) const;
3362 inline schedule_node_band
mod(isl::checked::multi_val mv
) const;
3363 inline class size
n_member() const;
3364 inline isl::checked::multi_union_pw_aff
partial_schedule() const;
3365 inline isl::checked::multi_union_pw_aff
get_partial_schedule() const;
3366 inline boolean
permutable() const;
3367 inline boolean
get_permutable() const;
3368 inline schedule_node_band
scale(isl::checked::multi_val mv
) const;
3369 inline schedule_node_band
scale_down(isl::checked::multi_val mv
) const;
3370 inline schedule_node_band
set_ast_build_options(isl::checked::union_set options
) const;
3371 inline schedule_node_band
set_permutable(int permutable
) const;
3372 inline schedule_node_band
shift(isl::checked::multi_union_pw_aff shift
) const;
3373 inline schedule_node_band
split(int pos
) const;
3374 inline schedule_node_band
tile(isl::checked::multi_val sizes
) const;
3375 inline schedule_node_band
member_set_ast_loop_default(int pos
) const;
3376 inline schedule_node_band
member_set_ast_loop_atomic(int pos
) const;
3377 inline schedule_node_band
member_set_ast_loop_unroll(int pos
) const;
3378 inline schedule_node_band
member_set_ast_loop_separate(int pos
) const;
3381 // declarations for isl::schedule_node_context
3383 class schedule_node_context
: public schedule_node
{
3385 friend boolean
schedule_node::isa() const;
3386 friend schedule_node_context
schedule_node::as
<schedule_node_context
>() const;
3387 static const auto type
= isl_schedule_node_context
;
3390 inline explicit schedule_node_context(__isl_take isl_schedule_node
*ptr
);
3393 inline /* implicit */ schedule_node_context();
3394 inline /* implicit */ schedule_node_context(const schedule_node_context
&obj
);
3395 inline schedule_node_context
&operator=(schedule_node_context obj
);
3396 inline isl::checked::ctx
ctx() const;
3398 inline isl::checked::set
context() const;
3399 inline isl::checked::set
get_context() const;
3402 // declarations for isl::schedule_node_domain
3404 class schedule_node_domain
: public schedule_node
{
3406 friend boolean
schedule_node::isa() const;
3407 friend schedule_node_domain
schedule_node::as
<schedule_node_domain
>() const;
3408 static const auto type
= isl_schedule_node_domain
;
3411 inline explicit schedule_node_domain(__isl_take isl_schedule_node
*ptr
);
3414 inline /* implicit */ schedule_node_domain();
3415 inline /* implicit */ schedule_node_domain(const schedule_node_domain
&obj
);
3416 inline schedule_node_domain
&operator=(schedule_node_domain obj
);
3417 inline isl::checked::ctx
ctx() const;
3419 inline isl::checked::union_set
domain() const;
3420 inline isl::checked::union_set
get_domain() const;
3423 // declarations for isl::schedule_node_expansion
3425 class schedule_node_expansion
: public schedule_node
{
3427 friend boolean
schedule_node::isa() const;
3428 friend schedule_node_expansion
schedule_node::as
<schedule_node_expansion
>() const;
3429 static const auto type
= isl_schedule_node_expansion
;
3432 inline explicit schedule_node_expansion(__isl_take isl_schedule_node
*ptr
);
3435 inline /* implicit */ schedule_node_expansion();
3436 inline /* implicit */ schedule_node_expansion(const schedule_node_expansion
&obj
);
3437 inline schedule_node_expansion
&operator=(schedule_node_expansion obj
);
3438 inline isl::checked::ctx
ctx() const;
3440 inline isl::checked::union_pw_multi_aff
contraction() const;
3441 inline isl::checked::union_pw_multi_aff
get_contraction() const;
3442 inline isl::checked::union_map
expansion() const;
3443 inline isl::checked::union_map
get_expansion() const;
3446 // declarations for isl::schedule_node_extension
3448 class schedule_node_extension
: public schedule_node
{
3450 friend boolean
schedule_node::isa() const;
3451 friend schedule_node_extension
schedule_node::as
<schedule_node_extension
>() const;
3452 static const auto type
= isl_schedule_node_extension
;
3455 inline explicit schedule_node_extension(__isl_take isl_schedule_node
*ptr
);
3458 inline /* implicit */ schedule_node_extension();
3459 inline /* implicit */ schedule_node_extension(const schedule_node_extension
&obj
);
3460 inline schedule_node_extension
&operator=(schedule_node_extension obj
);
3461 inline isl::checked::ctx
ctx() const;
3463 inline isl::checked::union_map
extension() const;
3464 inline isl::checked::union_map
get_extension() const;
3467 // declarations for isl::schedule_node_filter
3469 class schedule_node_filter
: public schedule_node
{
3471 friend boolean
schedule_node::isa() const;
3472 friend schedule_node_filter
schedule_node::as
<schedule_node_filter
>() const;
3473 static const auto type
= isl_schedule_node_filter
;
3476 inline explicit schedule_node_filter(__isl_take isl_schedule_node
*ptr
);
3479 inline /* implicit */ schedule_node_filter();
3480 inline /* implicit */ schedule_node_filter(const schedule_node_filter
&obj
);
3481 inline schedule_node_filter
&operator=(schedule_node_filter obj
);
3482 inline isl::checked::ctx
ctx() const;
3484 inline isl::checked::union_set
filter() const;
3485 inline isl::checked::union_set
get_filter() const;
3488 // declarations for isl::schedule_node_guard
3490 class schedule_node_guard
: public schedule_node
{
3492 friend boolean
schedule_node::isa() const;
3493 friend schedule_node_guard
schedule_node::as
<schedule_node_guard
>() const;
3494 static const auto type
= isl_schedule_node_guard
;
3497 inline explicit schedule_node_guard(__isl_take isl_schedule_node
*ptr
);
3500 inline /* implicit */ schedule_node_guard();
3501 inline /* implicit */ schedule_node_guard(const schedule_node_guard
&obj
);
3502 inline schedule_node_guard
&operator=(schedule_node_guard obj
);
3503 inline isl::checked::ctx
ctx() const;
3505 inline isl::checked::set
guard() const;
3506 inline isl::checked::set
get_guard() const;
3509 // declarations for isl::schedule_node_leaf
3511 class schedule_node_leaf
: public schedule_node
{
3513 friend boolean
schedule_node::isa() const;
3514 friend schedule_node_leaf
schedule_node::as
<schedule_node_leaf
>() const;
3515 static const auto type
= isl_schedule_node_leaf
;
3518 inline explicit schedule_node_leaf(__isl_take isl_schedule_node
*ptr
);
3521 inline /* implicit */ schedule_node_leaf();
3522 inline /* implicit */ schedule_node_leaf(const schedule_node_leaf
&obj
);
3523 inline schedule_node_leaf
&operator=(schedule_node_leaf obj
);
3524 inline isl::checked::ctx
ctx() const;
3528 // declarations for isl::schedule_node_mark
3530 class schedule_node_mark
: public schedule_node
{
3532 friend boolean
schedule_node::isa() const;
3533 friend schedule_node_mark
schedule_node::as
<schedule_node_mark
>() const;
3534 static const auto type
= isl_schedule_node_mark
;
3537 inline explicit schedule_node_mark(__isl_take isl_schedule_node
*ptr
);
3540 inline /* implicit */ schedule_node_mark();
3541 inline /* implicit */ schedule_node_mark(const schedule_node_mark
&obj
);
3542 inline schedule_node_mark
&operator=(schedule_node_mark obj
);
3543 inline isl::checked::ctx
ctx() const;
3547 // declarations for isl::schedule_node_sequence
3549 class schedule_node_sequence
: public schedule_node
{
3551 friend boolean
schedule_node::isa() const;
3552 friend schedule_node_sequence
schedule_node::as
<schedule_node_sequence
>() const;
3553 static const auto type
= isl_schedule_node_sequence
;
3556 inline explicit schedule_node_sequence(__isl_take isl_schedule_node
*ptr
);
3559 inline /* implicit */ schedule_node_sequence();
3560 inline /* implicit */ schedule_node_sequence(const schedule_node_sequence
&obj
);
3561 inline schedule_node_sequence
&operator=(schedule_node_sequence obj
);
3562 inline isl::checked::ctx
ctx() const;
3566 // declarations for isl::schedule_node_set
3568 class schedule_node_set
: public schedule_node
{
3570 friend boolean
schedule_node::isa() const;
3571 friend schedule_node_set
schedule_node::as
<schedule_node_set
>() const;
3572 static const auto type
= isl_schedule_node_set
;
3575 inline explicit schedule_node_set(__isl_take isl_schedule_node
*ptr
);
3578 inline /* implicit */ schedule_node_set();
3579 inline /* implicit */ schedule_node_set(const schedule_node_set
&obj
);
3580 inline schedule_node_set
&operator=(schedule_node_set obj
);
3581 inline isl::checked::ctx
ctx() const;
3585 // declarations for isl::set
3586 inline set
manage(__isl_take isl_set
*ptr
);
3587 inline set
manage_copy(__isl_keep isl_set
*ptr
);
3590 friend inline set
manage(__isl_take isl_set
*ptr
);
3591 friend inline set
manage_copy(__isl_keep isl_set
*ptr
);
3594 isl_set
*ptr
= nullptr;
3596 inline explicit set(__isl_take isl_set
*ptr
);
3599 inline /* implicit */ set();
3600 inline /* implicit */ set(const set
&obj
);
3601 inline /* implicit */ set(isl::checked::basic_set bset
);
3602 inline /* implicit */ set(isl::checked::point pnt
);
3603 inline explicit set(isl::checked::ctx ctx
, const std::string
&str
);
3604 inline set
&operator=(set obj
);
3606 inline __isl_give isl_set
*copy() const &;
3607 inline __isl_give isl_set
*copy() && = delete;
3608 inline __isl_keep isl_set
*get() const;
3609 inline __isl_give isl_set
*release();
3610 inline bool is_null() const;
3611 inline isl::checked::ctx
ctx() const;
3613 inline isl::checked::basic_set
affine_hull() const;
3614 inline isl::checked::set
apply(isl::checked::map map
) const;
3615 inline isl::checked::union_set
apply(const isl::checked::union_map
&umap
) const;
3616 inline isl::checked::set
apply(const isl::checked::basic_map
&map
) const;
3617 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
3618 inline isl::checked::set
as_set() const;
3619 inline isl::checked::set
bind(isl::checked::multi_id tuple
) const;
3620 inline isl::checked::set
coalesce() const;
3621 inline isl::checked::set
complement() const;
3622 inline isl::checked::union_set
compute_divs() const;
3623 inline isl::checked::set
detect_equalities() const;
3624 inline isl::checked::val
dim_max_val(int pos
) const;
3625 inline isl::checked::val
dim_min_val(int pos
) const;
3626 inline isl::checked::set
drop_unused_params() const;
3627 static inline isl::checked::set
empty(isl::checked::space space
);
3628 inline boolean
every_set(const std::function
<boolean(isl::checked::set
)> &test
) const;
3629 inline isl::checked::set
extract_set(const isl::checked::space
&space
) const;
3630 inline isl::checked::set
flatten() const;
3631 inline stat
foreach_basic_set(const std::function
<stat(isl::checked::basic_set
)> &fn
) const;
3632 inline stat
foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const;
3633 inline stat
foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const;
3634 inline isl::checked::set
gist(isl::checked::set context
) const;
3635 inline isl::checked::union_set
gist(const isl::checked::union_set
&context
) const;
3636 inline isl::checked::set
gist(const isl::checked::basic_set
&context
) const;
3637 inline isl::checked::set
gist(const isl::checked::point
&context
) const;
3638 inline isl::checked::set
gist_params(isl::checked::set context
) const;
3639 inline isl::checked::map
identity() const;
3640 inline isl::checked::pw_aff
indicator_function() const;
3641 inline isl::checked::map
insert_domain(isl::checked::space domain
) const;
3642 inline isl::checked::set
intersect(isl::checked::set set2
) const;
3643 inline isl::checked::union_set
intersect(const isl::checked::union_set
&uset2
) const;
3644 inline isl::checked::set
intersect(const isl::checked::basic_set
&set2
) const;
3645 inline isl::checked::set
intersect(const isl::checked::point
&set2
) const;
3646 inline isl::checked::set
intersect_params(isl::checked::set params
) const;
3647 inline boolean
involves_locals() const;
3648 inline boolean
is_disjoint(const isl::checked::set
&set2
) const;
3649 inline boolean
is_disjoint(const isl::checked::union_set
&uset2
) const;
3650 inline boolean
is_disjoint(const isl::checked::basic_set
&set2
) const;
3651 inline boolean
is_disjoint(const isl::checked::point
&set2
) const;
3652 inline boolean
is_empty() const;
3653 inline boolean
is_equal(const isl::checked::set
&set2
) const;
3654 inline boolean
is_equal(const isl::checked::union_set
&uset2
) const;
3655 inline boolean
is_equal(const isl::checked::basic_set
&set2
) const;
3656 inline boolean
is_equal(const isl::checked::point
&set2
) const;
3657 inline boolean
is_singleton() const;
3658 inline boolean
is_strict_subset(const isl::checked::set
&set2
) const;
3659 inline boolean
is_strict_subset(const isl::checked::union_set
&uset2
) const;
3660 inline boolean
is_strict_subset(const isl::checked::basic_set
&set2
) const;
3661 inline boolean
is_strict_subset(const isl::checked::point
&set2
) const;
3662 inline boolean
is_subset(const isl::checked::set
&set2
) const;
3663 inline boolean
is_subset(const isl::checked::union_set
&uset2
) const;
3664 inline boolean
is_subset(const isl::checked::basic_set
&set2
) const;
3665 inline boolean
is_subset(const isl::checked::point
&set2
) const;
3666 inline boolean
is_wrapping() const;
3667 inline boolean
isa_set() const;
3668 inline isl::checked::fixed_box
lattice_tile() const;
3669 inline isl::checked::fixed_box
get_lattice_tile() const;
3670 inline isl::checked::set
lexmax() const;
3671 inline isl::checked::pw_multi_aff
lexmax_pw_multi_aff() const;
3672 inline isl::checked::set
lexmin() const;
3673 inline isl::checked::pw_multi_aff
lexmin_pw_multi_aff() const;
3674 inline isl::checked::set
lower_bound(isl::checked::multi_pw_aff lower
) const;
3675 inline isl::checked::set
lower_bound(isl::checked::multi_val lower
) const;
3676 inline isl::checked::multi_pw_aff
max_multi_pw_aff() const;
3677 inline isl::checked::val
max_val(const isl::checked::aff
&obj
) const;
3678 inline isl::checked::multi_pw_aff
min_multi_pw_aff() const;
3679 inline isl::checked::val
min_val(const isl::checked::aff
&obj
) const;
3680 inline class size
n_basic_set() const;
3681 inline isl::checked::pw_aff
param_pw_aff_on_domain(isl::checked::id id
) const;
3682 inline isl::checked::pw_aff
param_pw_aff_on_domain(const std::string
&id
) const;
3683 inline isl::checked::set
params() const;
3684 inline isl::checked::multi_val
plain_multi_val_if_fixed() const;
3685 inline isl::checked::multi_val
get_plain_multi_val_if_fixed() const;
3686 inline isl::checked::basic_set
polyhedral_hull() const;
3687 inline isl::checked::set
preimage(isl::checked::multi_aff ma
) const;
3688 inline isl::checked::set
preimage(isl::checked::multi_pw_aff mpa
) const;
3689 inline isl::checked::set
preimage(isl::checked::pw_multi_aff pma
) const;
3690 inline isl::checked::union_set
preimage(const isl::checked::union_pw_multi_aff
&upma
) const;
3691 inline isl::checked::set
product(isl::checked::set set2
) const;
3692 inline isl::checked::set
project_out_all_params() const;
3693 inline isl::checked::set
project_out_param(isl::checked::id id
) const;
3694 inline isl::checked::set
project_out_param(const std::string
&id
) const;
3695 inline isl::checked::set
project_out_param(isl::checked::id_list list
) const;
3696 inline isl::checked::pw_aff
pw_aff_on_domain(isl::checked::val v
) const;
3697 inline isl::checked::pw_aff
pw_aff_on_domain(long v
) const;
3698 inline isl::checked::pw_multi_aff
pw_multi_aff_on_domain(isl::checked::multi_val mv
) const;
3699 inline isl::checked::basic_set
sample() const;
3700 inline isl::checked::point
sample_point() const;
3701 inline isl::checked::set_list
set_list() const;
3702 inline isl::checked::fixed_box
simple_fixed_box_hull() const;
3703 inline isl::checked::fixed_box
get_simple_fixed_box_hull() const;
3704 inline isl::checked::space
space() const;
3705 inline isl::checked::space
get_space() const;
3706 inline isl::checked::val
stride(int pos
) const;
3707 inline isl::checked::val
get_stride(int pos
) const;
3708 inline isl::checked::set
subtract(isl::checked::set set2
) const;
3709 inline isl::checked::union_set
subtract(const isl::checked::union_set
&uset2
) const;
3710 inline isl::checked::set
subtract(const isl::checked::basic_set
&set2
) const;
3711 inline isl::checked::set
subtract(const isl::checked::point
&set2
) const;
3712 inline isl::checked::set_list
to_list() const;
3713 inline isl::checked::union_set
to_union_set() const;
3714 inline isl::checked::map
translation() const;
3715 inline class size
tuple_dim() const;
3716 inline isl::checked::set
unbind_params(isl::checked::multi_id tuple
) const;
3717 inline isl::checked::map
unbind_params_insert_domain(isl::checked::multi_id domain
) const;
3718 inline isl::checked::set
unite(isl::checked::set set2
) const;
3719 inline isl::checked::union_set
unite(const isl::checked::union_set
&uset2
) const;
3720 inline isl::checked::set
unite(const isl::checked::basic_set
&set2
) const;
3721 inline isl::checked::set
unite(const isl::checked::point
&set2
) const;
3722 static inline isl::checked::set
universe(isl::checked::space space
);
3723 inline isl::checked::basic_set
unshifted_simple_hull() const;
3724 inline isl::checked::map
unwrap() const;
3725 inline isl::checked::set
upper_bound(isl::checked::multi_pw_aff upper
) const;
3726 inline isl::checked::set
upper_bound(isl::checked::multi_val upper
) const;
3727 inline isl::checked::set
wrapped_reverse() const;
3730 // declarations for isl::set_list
3731 inline set_list
manage(__isl_take isl_set_list
*ptr
);
3732 inline set_list
manage_copy(__isl_keep isl_set_list
*ptr
);
3735 friend inline set_list
manage(__isl_take isl_set_list
*ptr
);
3736 friend inline set_list
manage_copy(__isl_keep isl_set_list
*ptr
);
3739 isl_set_list
*ptr
= nullptr;
3741 inline explicit set_list(__isl_take isl_set_list
*ptr
);
3744 inline /* implicit */ set_list();
3745 inline /* implicit */ set_list(const set_list
&obj
);
3746 inline explicit set_list(isl::checked::ctx ctx
, int n
);
3747 inline explicit set_list(isl::checked::set el
);
3748 inline explicit set_list(isl::checked::ctx ctx
, const std::string
&str
);
3749 inline set_list
&operator=(set_list obj
);
3751 inline __isl_give isl_set_list
*copy() const &;
3752 inline __isl_give isl_set_list
*copy() && = delete;
3753 inline __isl_keep isl_set_list
*get() const;
3754 inline __isl_give isl_set_list
*release();
3755 inline bool is_null() const;
3756 inline isl::checked::ctx
ctx() const;
3758 inline isl::checked::set_list
add(isl::checked::set el
) const;
3759 inline isl::checked::set
at(int index
) const;
3760 inline isl::checked::set
get_at(int index
) const;
3761 inline isl::checked::set_list
clear() const;
3762 inline isl::checked::set_list
concat(isl::checked::set_list list2
) const;
3763 inline isl::checked::set_list
drop(unsigned int first
, unsigned int n
) const;
3764 inline stat
foreach(const std::function
<stat(isl::checked::set
)> &fn
) const;
3765 inline stat
foreach_scc(const std::function
<boolean(isl::checked::set
, isl::checked::set
)> &follows
, const std::function
<stat(isl::checked::set_list
)> &fn
) const;
3766 inline isl::checked::set_list
insert(unsigned int pos
, isl::checked::set el
) const;
3767 inline isl::checked::set_list
set_at(int index
, isl::checked::set el
) const;
3768 inline class size
size() const;
3771 // declarations for isl::space
3772 inline space
manage(__isl_take isl_space
*ptr
);
3773 inline space
manage_copy(__isl_keep isl_space
*ptr
);
3776 friend inline space
manage(__isl_take isl_space
*ptr
);
3777 friend inline space
manage_copy(__isl_keep isl_space
*ptr
);
3780 isl_space
*ptr
= nullptr;
3782 inline explicit space(__isl_take isl_space
*ptr
);
3785 inline /* implicit */ space();
3786 inline /* implicit */ space(const space
&obj
);
3787 inline explicit space(isl::checked::ctx ctx
, const std::string
&str
);
3788 inline space
&operator=(space obj
);
3790 inline __isl_give isl_space
*copy() const &;
3791 inline __isl_give isl_space
*copy() && = delete;
3792 inline __isl_keep isl_space
*get() const;
3793 inline __isl_give isl_space
*release();
3794 inline bool is_null() const;
3795 inline isl::checked::ctx
ctx() const;
3797 inline isl::checked::space
add_named_tuple(isl::checked::id tuple_id
, unsigned int dim
) const;
3798 inline isl::checked::space
add_named_tuple(const std::string
&tuple_id
, unsigned int dim
) const;
3799 inline isl::checked::space
add_param(isl::checked::id id
) const;
3800 inline isl::checked::space
add_param(const std::string
&id
) const;
3801 inline isl::checked::space
add_unnamed_tuple(unsigned int dim
) const;
3802 inline isl::checked::space
curry() const;
3803 inline isl::checked::space
domain() const;
3804 inline isl::checked::multi_aff
domain_map_multi_aff() const;
3805 inline isl::checked::pw_multi_aff
domain_map_pw_multi_aff() const;
3806 inline isl::checked::space
domain_reverse() const;
3807 inline isl::checked::id
domain_tuple_id() const;
3808 inline isl::checked::id
get_domain_tuple_id() const;
3809 inline isl::checked::space
drop_all_params() const;
3810 inline isl::checked::space
flatten_domain() const;
3811 inline isl::checked::space
flatten_range() const;
3812 inline boolean
has_domain_tuple_id() const;
3813 inline boolean
has_range_tuple_id() const;
3814 inline isl::checked::multi_aff
identity_multi_aff_on_domain() const;
3815 inline isl::checked::multi_pw_aff
identity_multi_pw_aff_on_domain() const;
3816 inline isl::checked::pw_multi_aff
identity_pw_multi_aff_on_domain() const;
3817 inline boolean
is_equal(const isl::checked::space
&space2
) const;
3818 inline boolean
is_wrapping() const;
3819 inline isl::checked::space
map_from_set() const;
3820 inline isl::checked::multi_aff
multi_aff(isl::checked::aff_list list
) const;
3821 inline isl::checked::multi_aff
multi_aff_on_domain(isl::checked::multi_val mv
) const;
3822 inline isl::checked::multi_id
multi_id(isl::checked::id_list list
) const;
3823 inline isl::checked::multi_pw_aff
multi_pw_aff(isl::checked::pw_aff_list list
) const;
3824 inline isl::checked::multi_union_pw_aff
multi_union_pw_aff(isl::checked::union_pw_aff_list list
) const;
3825 inline isl::checked::multi_val
multi_val(isl::checked::val_list list
) const;
3826 inline isl::checked::aff
param_aff_on_domain(isl::checked::id id
) const;
3827 inline isl::checked::aff
param_aff_on_domain(const std::string
&id
) const;
3828 inline isl::checked::space
params() const;
3829 inline isl::checked::space
product(isl::checked::space right
) const;
3830 inline isl::checked::space
range() const;
3831 inline isl::checked::multi_aff
range_map_multi_aff() const;
3832 inline isl::checked::pw_multi_aff
range_map_pw_multi_aff() const;
3833 inline isl::checked::space
range_reverse() const;
3834 inline isl::checked::id
range_tuple_id() const;
3835 inline isl::checked::id
get_range_tuple_id() const;
3836 inline isl::checked::space
reverse() const;
3837 inline isl::checked::space
set_domain_tuple(isl::checked::id id
) const;
3838 inline isl::checked::space
set_domain_tuple(const std::string
&id
) const;
3839 inline isl::checked::space
set_range_tuple(isl::checked::id id
) const;
3840 inline isl::checked::space
set_range_tuple(const std::string
&id
) const;
3841 inline isl::checked::space
uncurry() const;
3842 static inline isl::checked::space
unit(isl::checked::ctx ctx
);
3843 inline isl::checked::map
universe_map() const;
3844 inline isl::checked::set
universe_set() const;
3845 inline isl::checked::space
unwrap() const;
3846 inline isl::checked::space
wrap() const;
3847 inline isl::checked::space
wrapped_reverse() const;
3848 inline isl::checked::aff
zero_aff_on_domain() const;
3849 inline isl::checked::multi_aff
zero_multi_aff() const;
3850 inline isl::checked::multi_pw_aff
zero_multi_pw_aff() const;
3851 inline isl::checked::multi_union_pw_aff
zero_multi_union_pw_aff() const;
3852 inline isl::checked::multi_val
zero_multi_val() const;
3855 // declarations for isl::union_access_info
3856 inline union_access_info
manage(__isl_take isl_union_access_info
*ptr
);
3857 inline union_access_info
manage_copy(__isl_keep isl_union_access_info
*ptr
);
3859 class union_access_info
{
3860 friend inline union_access_info
manage(__isl_take isl_union_access_info
*ptr
);
3861 friend inline union_access_info
manage_copy(__isl_keep isl_union_access_info
*ptr
);
3864 isl_union_access_info
*ptr
= nullptr;
3866 inline explicit union_access_info(__isl_take isl_union_access_info
*ptr
);
3869 inline /* implicit */ union_access_info();
3870 inline /* implicit */ union_access_info(const union_access_info
&obj
);
3871 inline explicit union_access_info(isl::checked::union_map sink
);
3872 inline union_access_info
&operator=(union_access_info obj
);
3873 inline ~union_access_info();
3874 inline __isl_give isl_union_access_info
*copy() const &;
3875 inline __isl_give isl_union_access_info
*copy() && = delete;
3876 inline __isl_keep isl_union_access_info
*get() const;
3877 inline __isl_give isl_union_access_info
*release();
3878 inline bool is_null() const;
3879 inline isl::checked::ctx
ctx() const;
3881 inline isl::checked::union_flow
compute_flow() const;
3882 inline isl::checked::union_access_info
set_kill(isl::checked::union_map kill
) const;
3883 inline isl::checked::union_access_info
set_may_source(isl::checked::union_map may_source
) const;
3884 inline isl::checked::union_access_info
set_must_source(isl::checked::union_map must_source
) const;
3885 inline isl::checked::union_access_info
set_schedule(isl::checked::schedule schedule
) const;
3886 inline isl::checked::union_access_info
set_schedule_map(isl::checked::union_map schedule_map
) const;
3889 // declarations for isl::union_flow
3890 inline union_flow
manage(__isl_take isl_union_flow
*ptr
);
3891 inline union_flow
manage_copy(__isl_keep isl_union_flow
*ptr
);
3894 friend inline union_flow
manage(__isl_take isl_union_flow
*ptr
);
3895 friend inline union_flow
manage_copy(__isl_keep isl_union_flow
*ptr
);
3898 isl_union_flow
*ptr
= nullptr;
3900 inline explicit union_flow(__isl_take isl_union_flow
*ptr
);
3903 inline /* implicit */ union_flow();
3904 inline /* implicit */ union_flow(const union_flow
&obj
);
3905 inline union_flow
&operator=(union_flow obj
);
3906 inline ~union_flow();
3907 inline __isl_give isl_union_flow
*copy() const &;
3908 inline __isl_give isl_union_flow
*copy() && = delete;
3909 inline __isl_keep isl_union_flow
*get() const;
3910 inline __isl_give isl_union_flow
*release();
3911 inline bool is_null() const;
3912 inline isl::checked::ctx
ctx() const;
3914 inline isl::checked::union_map
full_may_dependence() const;
3915 inline isl::checked::union_map
get_full_may_dependence() const;
3916 inline isl::checked::union_map
full_must_dependence() const;
3917 inline isl::checked::union_map
get_full_must_dependence() const;
3918 inline isl::checked::union_map
may_dependence() const;
3919 inline isl::checked::union_map
get_may_dependence() const;
3920 inline isl::checked::union_map
may_no_source() const;
3921 inline isl::checked::union_map
get_may_no_source() const;
3922 inline isl::checked::union_map
must_dependence() const;
3923 inline isl::checked::union_map
get_must_dependence() const;
3924 inline isl::checked::union_map
must_no_source() const;
3925 inline isl::checked::union_map
get_must_no_source() const;
3928 // declarations for isl::union_map
3929 inline union_map
manage(__isl_take isl_union_map
*ptr
);
3930 inline union_map
manage_copy(__isl_keep isl_union_map
*ptr
);
3933 friend inline union_map
manage(__isl_take isl_union_map
*ptr
);
3934 friend inline union_map
manage_copy(__isl_keep isl_union_map
*ptr
);
3937 isl_union_map
*ptr
= nullptr;
3939 inline explicit union_map(__isl_take isl_union_map
*ptr
);
3942 inline /* implicit */ union_map();
3943 inline /* implicit */ union_map(const union_map
&obj
);
3944 inline /* implicit */ union_map(isl::checked::basic_map bmap
);
3945 inline /* implicit */ union_map(isl::checked::map map
);
3946 inline explicit union_map(isl::checked::ctx ctx
, const std::string
&str
);
3947 inline union_map
&operator=(union_map obj
);
3948 inline ~union_map();
3949 inline __isl_give isl_union_map
*copy() const &;
3950 inline __isl_give isl_union_map
*copy() && = delete;
3951 inline __isl_keep isl_union_map
*get() const;
3952 inline __isl_give isl_union_map
*release();
3953 inline bool is_null() const;
3954 inline isl::checked::ctx
ctx() const;
3956 inline isl::checked::union_map
affine_hull() const;
3957 inline isl::checked::union_map
apply_domain(isl::checked::union_map umap2
) const;
3958 inline isl::checked::union_map
apply_range(isl::checked::union_map umap2
) const;
3959 inline isl::checked::map
as_map() const;
3960 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
3961 inline isl::checked::union_pw_multi_aff
as_union_pw_multi_aff() const;
3962 inline isl::checked::union_set
bind_range(isl::checked::multi_id tuple
) const;
3963 inline isl::checked::union_map
coalesce() const;
3964 inline isl::checked::union_map
compute_divs() const;
3965 inline isl::checked::union_map
curry() const;
3966 inline isl::checked::union_set
deltas() const;
3967 inline isl::checked::union_map
detect_equalities() const;
3968 inline isl::checked::union_set
domain() const;
3969 inline isl::checked::union_map
domain_factor_domain() const;
3970 inline isl::checked::union_map
domain_factor_range() const;
3971 inline isl::checked::union_map
domain_map() const;
3972 inline isl::checked::union_pw_multi_aff
domain_map_union_pw_multi_aff() const;
3973 inline isl::checked::union_map
domain_product(isl::checked::union_map umap2
) const;
3974 inline isl::checked::union_map
domain_reverse() const;
3975 inline isl::checked::union_map
drop_unused_params() const;
3976 static inline isl::checked::union_map
empty(isl::checked::ctx ctx
);
3977 inline isl::checked::union_map
eq_at(isl::checked::multi_union_pw_aff mupa
) const;
3978 inline boolean
every_map(const std::function
<boolean(isl::checked::map
)> &test
) const;
3979 inline isl::checked::map
extract_map(isl::checked::space space
) const;
3980 inline isl::checked::union_map
factor_domain() const;
3981 inline isl::checked::union_map
factor_range() const;
3982 inline isl::checked::union_map
fixed_power(isl::checked::val exp
) const;
3983 inline isl::checked::union_map
fixed_power(long exp
) const;
3984 inline stat
foreach_map(const std::function
<stat(isl::checked::map
)> &fn
) const;
3985 static inline isl::checked::union_map
from(isl::checked::multi_union_pw_aff mupa
);
3986 static inline isl::checked::union_map
from(isl::checked::union_pw_multi_aff upma
);
3987 static inline isl::checked::union_map
from_domain(isl::checked::union_set uset
);
3988 static inline isl::checked::union_map
from_domain_and_range(isl::checked::union_set domain
, isl::checked::union_set range
);
3989 static inline isl::checked::union_map
from_range(isl::checked::union_set uset
);
3990 inline isl::checked::union_map
gist(isl::checked::union_map context
) const;
3991 inline isl::checked::union_map
gist_domain(isl::checked::union_set uset
) const;
3992 inline isl::checked::union_map
gist_params(isl::checked::set set
) const;
3993 inline isl::checked::union_map
gist_range(isl::checked::union_set uset
) const;
3994 inline isl::checked::union_map
intersect(isl::checked::union_map umap2
) const;
3995 inline isl::checked::union_map
intersect_domain(isl::checked::space space
) const;
3996 inline isl::checked::union_map
intersect_domain(isl::checked::union_set uset
) const;
3997 inline isl::checked::union_map
intersect_domain_factor_domain(isl::checked::union_map factor
) const;
3998 inline isl::checked::union_map
intersect_domain_factor_range(isl::checked::union_map factor
) const;
3999 inline isl::checked::union_map
intersect_domain_wrapped_domain(isl::checked::union_set domain
) const;
4000 inline isl::checked::union_map
intersect_params(isl::checked::set set
) const;
4001 inline isl::checked::union_map
intersect_range(isl::checked::space space
) const;
4002 inline isl::checked::union_map
intersect_range(isl::checked::union_set uset
) const;
4003 inline isl::checked::union_map
intersect_range_factor_domain(isl::checked::union_map factor
) const;
4004 inline isl::checked::union_map
intersect_range_factor_range(isl::checked::union_map factor
) const;
4005 inline isl::checked::union_map
intersect_range_wrapped_domain(isl::checked::union_set domain
) const;
4006 inline boolean
is_bijective() const;
4007 inline boolean
is_disjoint(const isl::checked::union_map
&umap2
) const;
4008 inline boolean
is_empty() const;
4009 inline boolean
is_equal(const isl::checked::union_map
&umap2
) const;
4010 inline boolean
is_injective() const;
4011 inline boolean
is_single_valued() const;
4012 inline boolean
is_strict_subset(const isl::checked::union_map
&umap2
) const;
4013 inline boolean
is_subset(const isl::checked::union_map
&umap2
) const;
4014 inline boolean
isa_map() const;
4015 inline isl::checked::union_map
lexmax() const;
4016 inline isl::checked::union_map
lexmin() const;
4017 inline isl::checked::map_list
map_list() const;
4018 inline isl::checked::map_list
get_map_list() const;
4019 inline isl::checked::set
params() const;
4020 inline isl::checked::union_map
polyhedral_hull() const;
4021 inline isl::checked::union_map
preimage_domain(isl::checked::multi_aff ma
) const;
4022 inline isl::checked::union_map
preimage_domain(isl::checked::multi_pw_aff mpa
) const;
4023 inline isl::checked::union_map
preimage_domain(isl::checked::pw_multi_aff pma
) const;
4024 inline isl::checked::union_map
preimage_domain(isl::checked::union_pw_multi_aff upma
) const;
4025 inline isl::checked::union_map
preimage_range(isl::checked::multi_aff ma
) const;
4026 inline isl::checked::union_map
preimage_range(isl::checked::pw_multi_aff pma
) const;
4027 inline isl::checked::union_map
preimage_range(isl::checked::union_pw_multi_aff upma
) const;
4028 inline isl::checked::union_map
product(isl::checked::union_map umap2
) const;
4029 inline isl::checked::union_map
project_out_all_params() const;
4030 inline isl::checked::union_map
project_out_param(isl::checked::id id
) const;
4031 inline isl::checked::union_map
project_out_param(const std::string
&id
) const;
4032 inline isl::checked::union_map
project_out_param(isl::checked::id_list list
) const;
4033 inline isl::checked::union_set
range() const;
4034 inline isl::checked::union_map
range_factor_domain() const;
4035 inline isl::checked::union_map
range_factor_range() const;
4036 inline isl::checked::union_map
range_map() const;
4037 inline isl::checked::union_map
range_product(isl::checked::union_map umap2
) const;
4038 inline isl::checked::union_map
range_reverse() const;
4039 inline isl::checked::union_map
reverse() const;
4040 inline isl::checked::space
space() const;
4041 inline isl::checked::space
get_space() const;
4042 inline isl::checked::union_map
subtract(isl::checked::union_map umap2
) const;
4043 inline isl::checked::union_map
subtract_domain(isl::checked::union_set dom
) const;
4044 inline isl::checked::union_map
subtract_range(isl::checked::union_set dom
) const;
4045 inline isl::checked::union_map
uncurry() const;
4046 inline isl::checked::union_map
unite(isl::checked::union_map umap2
) const;
4047 inline isl::checked::union_map
universe() const;
4048 inline isl::checked::union_set
wrap() const;
4049 inline isl::checked::union_map
zip() const;
4052 // declarations for isl::union_pw_aff
4053 inline union_pw_aff
manage(__isl_take isl_union_pw_aff
*ptr
);
4054 inline union_pw_aff
manage_copy(__isl_keep isl_union_pw_aff
*ptr
);
4056 class union_pw_aff
{
4057 friend inline union_pw_aff
manage(__isl_take isl_union_pw_aff
*ptr
);
4058 friend inline union_pw_aff
manage_copy(__isl_keep isl_union_pw_aff
*ptr
);
4061 isl_union_pw_aff
*ptr
= nullptr;
4063 inline explicit union_pw_aff(__isl_take isl_union_pw_aff
*ptr
);
4066 inline /* implicit */ union_pw_aff();
4067 inline /* implicit */ union_pw_aff(const union_pw_aff
&obj
);
4068 inline /* implicit */ union_pw_aff(isl::checked::aff aff
);
4069 inline /* implicit */ union_pw_aff(isl::checked::pw_aff pa
);
4070 inline explicit union_pw_aff(isl::checked::ctx ctx
, const std::string
&str
);
4071 inline union_pw_aff
&operator=(union_pw_aff obj
);
4072 inline ~union_pw_aff();
4073 inline __isl_give isl_union_pw_aff
*copy() const &;
4074 inline __isl_give isl_union_pw_aff
*copy() && = delete;
4075 inline __isl_keep isl_union_pw_aff
*get() const;
4076 inline __isl_give isl_union_pw_aff
*release();
4077 inline bool is_null() const;
4078 inline isl::checked::ctx
ctx() const;
4080 inline isl::checked::multi_union_pw_aff
add(const isl::checked::multi_union_pw_aff
&multi2
) const;
4081 inline isl::checked::union_pw_aff
add(isl::checked::union_pw_aff upa2
) const;
4082 inline isl::checked::union_pw_multi_aff
add(const isl::checked::union_pw_multi_aff
&upma2
) const;
4083 inline isl::checked::union_pw_aff
add(const isl::checked::aff
&upa2
) const;
4084 inline isl::checked::union_pw_aff
add(const isl::checked::pw_aff
&upa2
) const;
4085 inline isl::checked::union_pw_multi_aff
apply(const isl::checked::union_pw_multi_aff
&upma2
) const;
4086 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
4087 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
4088 inline isl::checked::union_map
as_union_map() const;
4089 inline isl::checked::union_pw_aff
at(int pos
) const;
4090 inline isl::checked::union_set
bind(const isl::checked::multi_id
&tuple
) const;
4091 inline isl::checked::union_set
bind(isl::checked::id id
) const;
4092 inline isl::checked::union_set
bind(const std::string
&id
) const;
4093 inline isl::checked::union_pw_aff
coalesce() const;
4094 inline isl::checked::union_set
domain() const;
4095 inline isl::checked::union_pw_aff
drop_unused_params() const;
4096 inline isl::checked::pw_multi_aff
extract_pw_multi_aff(const isl::checked::space
&space
) const;
4097 inline isl::checked::multi_union_pw_aff
flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
4098 inline isl::checked::union_pw_multi_aff
flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
4099 inline isl::checked::union_pw_aff
gist(isl::checked::union_set context
) const;
4100 inline isl::checked::multi_union_pw_aff
gist_params(const isl::checked::set
&context
) const;
4101 inline boolean
has_range_tuple_id() const;
4102 inline isl::checked::union_pw_aff
intersect_domain(isl::checked::space space
) const;
4103 inline isl::checked::union_pw_aff
intersect_domain(isl::checked::union_set uset
) const;
4104 inline isl::checked::union_pw_aff
intersect_domain_wrapped_domain(isl::checked::union_set uset
) const;
4105 inline isl::checked::union_pw_aff
intersect_domain_wrapped_range(isl::checked::union_set uset
) const;
4106 inline isl::checked::union_pw_aff
intersect_params(isl::checked::set set
) const;
4107 inline boolean
involves_locals() const;
4108 inline boolean
involves_nan() const;
4109 inline boolean
isa_pw_multi_aff() const;
4110 inline isl::checked::union_pw_aff_list
list() const;
4111 inline isl::checked::multi_union_pw_aff
neg() const;
4112 inline boolean
plain_is_empty() const;
4113 inline boolean
plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const;
4114 inline boolean
plain_is_equal(const isl::checked::union_pw_aff
&upa2
) const;
4115 inline boolean
plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const;
4116 inline boolean
plain_is_equal(const isl::checked::aff
&upa2
) const;
4117 inline boolean
plain_is_equal(const isl::checked::pw_aff
&upa2
) const;
4118 inline isl::checked::union_pw_multi_aff
preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const;
4119 inline isl::checked::union_pw_aff
pullback(isl::checked::union_pw_multi_aff upma
) const;
4120 inline isl::checked::pw_multi_aff_list
pw_multi_aff_list() const;
4121 inline isl::checked::union_pw_multi_aff
range_factor_domain() const;
4122 inline isl::checked::union_pw_multi_aff
range_factor_range() const;
4123 inline isl::checked::multi_union_pw_aff
range_product(const isl::checked::multi_union_pw_aff
&multi2
) const;
4124 inline isl::checked::union_pw_multi_aff
range_product(const isl::checked::union_pw_multi_aff
&upma2
) const;
4125 inline isl::checked::id
range_tuple_id() const;
4126 inline isl::checked::multi_union_pw_aff
reset_range_tuple_id() const;
4127 inline isl::checked::multi_union_pw_aff
scale(const isl::checked::multi_val
&mv
) const;
4128 inline isl::checked::multi_union_pw_aff
scale(const isl::checked::val
&v
) const;
4129 inline isl::checked::multi_union_pw_aff
scale(long v
) const;
4130 inline isl::checked::multi_union_pw_aff
scale_down(const isl::checked::multi_val
&mv
) const;
4131 inline isl::checked::multi_union_pw_aff
scale_down(const isl::checked::val
&v
) const;
4132 inline isl::checked::multi_union_pw_aff
scale_down(long v
) const;
4133 inline isl::checked::multi_union_pw_aff
set_at(int pos
, const isl::checked::union_pw_aff
&el
) const;
4134 inline isl::checked::multi_union_pw_aff
set_range_tuple(const isl::checked::id
&id
) const;
4135 inline isl::checked::multi_union_pw_aff
set_range_tuple(const std::string
&id
) const;
4136 inline class size
size() const;
4137 inline isl::checked::space
space() const;
4138 inline isl::checked::space
get_space() const;
4139 inline isl::checked::multi_union_pw_aff
sub(const isl::checked::multi_union_pw_aff
&multi2
) const;
4140 inline isl::checked::union_pw_aff
sub(isl::checked::union_pw_aff upa2
) const;
4141 inline isl::checked::union_pw_multi_aff
sub(const isl::checked::union_pw_multi_aff
&upma2
) const;
4142 inline isl::checked::union_pw_aff
sub(const isl::checked::aff
&upa2
) const;
4143 inline isl::checked::union_pw_aff
sub(const isl::checked::pw_aff
&upa2
) const;
4144 inline isl::checked::union_pw_aff
subtract_domain(isl::checked::space space
) const;
4145 inline isl::checked::union_pw_aff
subtract_domain(isl::checked::union_set uset
) const;
4146 inline isl::checked::union_pw_aff_list
to_list() const;
4147 inline isl::checked::multi_union_pw_aff
union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const;
4148 inline isl::checked::union_pw_aff
union_add(isl::checked::union_pw_aff upa2
) const;
4149 inline isl::checked::union_pw_multi_aff
union_add(const isl::checked::union_pw_multi_aff
&upma2
) const;
4150 inline isl::checked::union_pw_aff
union_add(const isl::checked::aff
&upa2
) const;
4151 inline isl::checked::union_pw_aff
union_add(const isl::checked::pw_aff
&upa2
) const;
4154 // declarations for isl::union_pw_aff_list
4155 inline union_pw_aff_list
manage(__isl_take isl_union_pw_aff_list
*ptr
);
4156 inline union_pw_aff_list
manage_copy(__isl_keep isl_union_pw_aff_list
*ptr
);
4158 class union_pw_aff_list
{
4159 friend inline union_pw_aff_list
manage(__isl_take isl_union_pw_aff_list
*ptr
);
4160 friend inline union_pw_aff_list
manage_copy(__isl_keep isl_union_pw_aff_list
*ptr
);
4163 isl_union_pw_aff_list
*ptr
= nullptr;
4165 inline explicit union_pw_aff_list(__isl_take isl_union_pw_aff_list
*ptr
);
4168 inline /* implicit */ union_pw_aff_list();
4169 inline /* implicit */ union_pw_aff_list(const union_pw_aff_list
&obj
);
4170 inline explicit union_pw_aff_list(isl::checked::ctx ctx
, int n
);
4171 inline explicit union_pw_aff_list(isl::checked::union_pw_aff el
);
4172 inline explicit union_pw_aff_list(isl::checked::ctx ctx
, const std::string
&str
);
4173 inline union_pw_aff_list
&operator=(union_pw_aff_list obj
);
4174 inline ~union_pw_aff_list();
4175 inline __isl_give isl_union_pw_aff_list
*copy() const &;
4176 inline __isl_give isl_union_pw_aff_list
*copy() && = delete;
4177 inline __isl_keep isl_union_pw_aff_list
*get() const;
4178 inline __isl_give isl_union_pw_aff_list
*release();
4179 inline bool is_null() const;
4180 inline isl::checked::ctx
ctx() const;
4182 inline isl::checked::union_pw_aff_list
add(isl::checked::union_pw_aff el
) const;
4183 inline isl::checked::union_pw_aff
at(int index
) const;
4184 inline isl::checked::union_pw_aff
get_at(int index
) const;
4185 inline isl::checked::union_pw_aff_list
clear() const;
4186 inline isl::checked::union_pw_aff_list
concat(isl::checked::union_pw_aff_list list2
) const;
4187 inline isl::checked::union_pw_aff_list
drop(unsigned int first
, unsigned int n
) const;
4188 inline stat
foreach(const std::function
<stat(isl::checked::union_pw_aff
)> &fn
) const;
4189 inline stat
foreach_scc(const std::function
<boolean(isl::checked::union_pw_aff
, isl::checked::union_pw_aff
)> &follows
, const std::function
<stat(isl::checked::union_pw_aff_list
)> &fn
) const;
4190 inline isl::checked::union_pw_aff_list
insert(unsigned int pos
, isl::checked::union_pw_aff el
) const;
4191 inline isl::checked::union_pw_aff_list
set_at(int index
, isl::checked::union_pw_aff el
) const;
4192 inline class size
size() const;
4195 // declarations for isl::union_pw_multi_aff
4196 inline union_pw_multi_aff
manage(__isl_take isl_union_pw_multi_aff
*ptr
);
4197 inline union_pw_multi_aff
manage_copy(__isl_keep isl_union_pw_multi_aff
*ptr
);
4199 class union_pw_multi_aff
{
4200 friend inline union_pw_multi_aff
manage(__isl_take isl_union_pw_multi_aff
*ptr
);
4201 friend inline union_pw_multi_aff
manage_copy(__isl_keep isl_union_pw_multi_aff
*ptr
);
4204 isl_union_pw_multi_aff
*ptr
= nullptr;
4206 inline explicit union_pw_multi_aff(__isl_take isl_union_pw_multi_aff
*ptr
);
4209 inline /* implicit */ union_pw_multi_aff();
4210 inline /* implicit */ union_pw_multi_aff(const union_pw_multi_aff
&obj
);
4211 inline /* implicit */ union_pw_multi_aff(isl::checked::multi_aff ma
);
4212 inline /* implicit */ union_pw_multi_aff(isl::checked::pw_multi_aff pma
);
4213 inline /* implicit */ union_pw_multi_aff(isl::checked::union_pw_aff upa
);
4214 inline explicit union_pw_multi_aff(isl::checked::ctx ctx
, const std::string
&str
);
4215 inline union_pw_multi_aff
&operator=(union_pw_multi_aff obj
);
4216 inline ~union_pw_multi_aff();
4217 inline __isl_give isl_union_pw_multi_aff
*copy() const &;
4218 inline __isl_give isl_union_pw_multi_aff
*copy() && = delete;
4219 inline __isl_keep isl_union_pw_multi_aff
*get() const;
4220 inline __isl_give isl_union_pw_multi_aff
*release();
4221 inline bool is_null() const;
4222 inline isl::checked::ctx
ctx() const;
4224 inline isl::checked::union_pw_multi_aff
add(isl::checked::union_pw_multi_aff upma2
) const;
4225 inline isl::checked::union_pw_multi_aff
apply(isl::checked::union_pw_multi_aff upma2
) const;
4226 inline isl::checked::multi_union_pw_aff
as_multi_union_pw_aff() const;
4227 inline isl::checked::pw_multi_aff
as_pw_multi_aff() const;
4228 inline isl::checked::union_map
as_union_map() const;
4229 inline isl::checked::union_pw_multi_aff
coalesce() const;
4230 inline isl::checked::union_set
domain() const;
4231 inline isl::checked::union_pw_multi_aff
drop_unused_params() const;
4232 static inline isl::checked::union_pw_multi_aff
empty(isl::checked::ctx ctx
);
4233 inline isl::checked::pw_multi_aff
extract_pw_multi_aff(isl::checked::space space
) const;
4234 inline isl::checked::union_pw_multi_aff
flat_range_product(isl::checked::union_pw_multi_aff upma2
) const;
4235 inline isl::checked::union_pw_multi_aff
gist(isl::checked::union_set context
) const;
4236 inline isl::checked::union_pw_multi_aff
intersect_domain(isl::checked::space space
) const;
4237 inline isl::checked::union_pw_multi_aff
intersect_domain(isl::checked::union_set uset
) const;
4238 inline isl::checked::union_pw_multi_aff
intersect_domain_wrapped_domain(isl::checked::union_set uset
) const;
4239 inline isl::checked::union_pw_multi_aff
intersect_domain_wrapped_range(isl::checked::union_set uset
) const;
4240 inline isl::checked::union_pw_multi_aff
intersect_params(isl::checked::set set
) const;
4241 inline boolean
involves_locals() const;
4242 inline boolean
isa_pw_multi_aff() const;
4243 inline boolean
plain_is_empty() const;
4244 inline boolean
plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const;
4245 inline isl::checked::union_pw_multi_aff
preimage_domain_wrapped_domain(isl::checked::union_pw_multi_aff upma2
) const;
4246 inline isl::checked::union_pw_multi_aff
pullback(isl::checked::union_pw_multi_aff upma2
) const;
4247 inline isl::checked::pw_multi_aff_list
pw_multi_aff_list() const;
4248 inline isl::checked::pw_multi_aff_list
get_pw_multi_aff_list() const;
4249 inline isl::checked::union_pw_multi_aff
range_factor_domain() const;
4250 inline isl::checked::union_pw_multi_aff
range_factor_range() const;
4251 inline isl::checked::union_pw_multi_aff
range_product(isl::checked::union_pw_multi_aff upma2
) const;
4252 inline isl::checked::space
space() const;
4253 inline isl::checked::space
get_space() const;
4254 inline isl::checked::union_pw_multi_aff
sub(isl::checked::union_pw_multi_aff upma2
) const;
4255 inline isl::checked::union_pw_multi_aff
subtract_domain(isl::checked::space space
) const;
4256 inline isl::checked::union_pw_multi_aff
subtract_domain(isl::checked::union_set uset
) const;
4257 inline isl::checked::union_pw_multi_aff
union_add(isl::checked::union_pw_multi_aff upma2
) const;
4260 // declarations for isl::union_set
4261 inline union_set
manage(__isl_take isl_union_set
*ptr
);
4262 inline union_set
manage_copy(__isl_keep isl_union_set
*ptr
);
4265 friend inline union_set
manage(__isl_take isl_union_set
*ptr
);
4266 friend inline union_set
manage_copy(__isl_keep isl_union_set
*ptr
);
4269 isl_union_set
*ptr
= nullptr;
4271 inline explicit union_set(__isl_take isl_union_set
*ptr
);
4274 inline /* implicit */ union_set();
4275 inline /* implicit */ union_set(const union_set
&obj
);
4276 inline /* implicit */ union_set(isl::checked::basic_set bset
);
4277 inline /* implicit */ union_set(isl::checked::point pnt
);
4278 inline /* implicit */ union_set(isl::checked::set set
);
4279 inline explicit union_set(isl::checked::ctx ctx
, const std::string
&str
);
4280 inline union_set
&operator=(union_set obj
);
4281 inline ~union_set();
4282 inline __isl_give isl_union_set
*copy() const &;
4283 inline __isl_give isl_union_set
*copy() && = delete;
4284 inline __isl_keep isl_union_set
*get() const;
4285 inline __isl_give isl_union_set
*release();
4286 inline bool is_null() const;
4287 inline isl::checked::ctx
ctx() const;
4289 inline isl::checked::union_set
affine_hull() const;
4290 inline isl::checked::union_set
apply(isl::checked::union_map umap
) const;
4291 inline isl::checked::set
as_set() const;
4292 inline isl::checked::union_set
coalesce() const;
4293 inline isl::checked::union_set
compute_divs() const;
4294 inline isl::checked::union_set
detect_equalities() const;
4295 inline isl::checked::union_set
drop_unused_params() const;
4296 static inline isl::checked::union_set
empty(isl::checked::ctx ctx
);
4297 inline boolean
every_set(const std::function
<boolean(isl::checked::set
)> &test
) const;
4298 inline isl::checked::set
extract_set(isl::checked::space space
) const;
4299 inline stat
foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const;
4300 inline stat
foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const;
4301 inline isl::checked::union_set
gist(isl::checked::union_set context
) const;
4302 inline isl::checked::union_set
gist_params(isl::checked::set set
) const;
4303 inline isl::checked::union_map
identity() const;
4304 inline isl::checked::union_set
intersect(isl::checked::union_set uset2
) const;
4305 inline isl::checked::union_set
intersect_params(isl::checked::set set
) const;
4306 inline boolean
is_disjoint(const isl::checked::union_set
&uset2
) const;
4307 inline boolean
is_empty() const;
4308 inline boolean
is_equal(const isl::checked::union_set
&uset2
) const;
4309 inline boolean
is_strict_subset(const isl::checked::union_set
&uset2
) const;
4310 inline boolean
is_subset(const isl::checked::union_set
&uset2
) const;
4311 inline boolean
isa_set() const;
4312 inline isl::checked::union_set
lexmax() const;
4313 inline isl::checked::union_set
lexmin() const;
4314 inline isl::checked::set
params() const;
4315 inline isl::checked::union_set
polyhedral_hull() const;
4316 inline isl::checked::union_set
preimage(isl::checked::multi_aff ma
) const;
4317 inline isl::checked::union_set
preimage(isl::checked::pw_multi_aff pma
) const;
4318 inline isl::checked::union_set
preimage(isl::checked::union_pw_multi_aff upma
) const;
4319 inline isl::checked::union_set
project_out_all_params() const;
4320 inline isl::checked::point
sample_point() const;
4321 inline isl::checked::set_list
set_list() const;
4322 inline isl::checked::set_list
get_set_list() const;
4323 inline isl::checked::space
space() const;
4324 inline isl::checked::space
get_space() const;
4325 inline isl::checked::union_set
subtract(isl::checked::union_set uset2
) const;
4326 inline isl::checked::union_set_list
to_list() const;
4327 inline isl::checked::union_set
unite(isl::checked::union_set uset2
) const;
4328 inline isl::checked::union_set
universe() const;
4329 inline isl::checked::union_map
unwrap() const;
4332 // declarations for isl::union_set_list
4333 inline union_set_list
manage(__isl_take isl_union_set_list
*ptr
);
4334 inline union_set_list
manage_copy(__isl_keep isl_union_set_list
*ptr
);
4336 class union_set_list
{
4337 friend inline union_set_list
manage(__isl_take isl_union_set_list
*ptr
);
4338 friend inline union_set_list
manage_copy(__isl_keep isl_union_set_list
*ptr
);
4341 isl_union_set_list
*ptr
= nullptr;
4343 inline explicit union_set_list(__isl_take isl_union_set_list
*ptr
);
4346 inline /* implicit */ union_set_list();
4347 inline /* implicit */ union_set_list(const union_set_list
&obj
);
4348 inline explicit union_set_list(isl::checked::ctx ctx
, int n
);
4349 inline explicit union_set_list(isl::checked::union_set el
);
4350 inline explicit union_set_list(isl::checked::ctx ctx
, const std::string
&str
);
4351 inline union_set_list
&operator=(union_set_list obj
);
4352 inline ~union_set_list();
4353 inline __isl_give isl_union_set_list
*copy() const &;
4354 inline __isl_give isl_union_set_list
*copy() && = delete;
4355 inline __isl_keep isl_union_set_list
*get() const;
4356 inline __isl_give isl_union_set_list
*release();
4357 inline bool is_null() const;
4358 inline isl::checked::ctx
ctx() const;
4360 inline isl::checked::union_set_list
add(isl::checked::union_set el
) const;
4361 inline isl::checked::union_set
at(int index
) const;
4362 inline isl::checked::union_set
get_at(int index
) const;
4363 inline isl::checked::union_set_list
clear() const;
4364 inline isl::checked::union_set_list
concat(isl::checked::union_set_list list2
) const;
4365 inline isl::checked::union_set_list
drop(unsigned int first
, unsigned int n
) const;
4366 inline stat
foreach(const std::function
<stat(isl::checked::union_set
)> &fn
) const;
4367 inline stat
foreach_scc(const std::function
<boolean(isl::checked::union_set
, isl::checked::union_set
)> &follows
, const std::function
<stat(isl::checked::union_set_list
)> &fn
) const;
4368 inline isl::checked::union_set_list
insert(unsigned int pos
, isl::checked::union_set el
) const;
4369 inline isl::checked::union_set_list
set_at(int index
, isl::checked::union_set el
) const;
4370 inline class size
size() const;
4373 // declarations for isl::val
4374 inline val
manage(__isl_take isl_val
*ptr
);
4375 inline val
manage_copy(__isl_keep isl_val
*ptr
);
4378 friend inline val
manage(__isl_take isl_val
*ptr
);
4379 friend inline val
manage_copy(__isl_keep isl_val
*ptr
);
4382 isl_val
*ptr
= nullptr;
4384 inline explicit val(__isl_take isl_val
*ptr
);
4387 inline /* implicit */ val();
4388 inline /* implicit */ val(const val
&obj
);
4389 inline explicit val(isl::checked::ctx ctx
, long i
);
4390 inline explicit val(isl::checked::ctx ctx
, const std::string
&str
);
4391 inline val
&operator=(val obj
);
4393 inline __isl_give isl_val
*copy() const &;
4394 inline __isl_give isl_val
*copy() && = delete;
4395 inline __isl_keep isl_val
*get() const;
4396 inline __isl_give isl_val
*release();
4397 inline bool is_null() const;
4398 inline isl::checked::ctx
ctx() const;
4400 inline isl::checked::val
abs() const;
4401 inline boolean
abs_eq(const isl::checked::val
&v2
) const;
4402 inline boolean
abs_eq(long v2
) const;
4403 inline isl::checked::val
add(isl::checked::val v2
) const;
4404 inline isl::checked::val
add(long v2
) const;
4405 inline isl::checked::val
ceil() const;
4406 inline int cmp_si(long i
) const;
4407 inline long den_si() const;
4408 inline long get_den_si() const;
4409 inline isl::checked::val
div(isl::checked::val v2
) const;
4410 inline isl::checked::val
div(long v2
) const;
4411 inline boolean
eq(const isl::checked::val
&v2
) const;
4412 inline boolean
eq(long v2
) const;
4413 inline isl::checked::val
floor() const;
4414 inline isl::checked::val
gcd(isl::checked::val v2
) const;
4415 inline isl::checked::val
gcd(long v2
) const;
4416 inline boolean
ge(const isl::checked::val
&v2
) const;
4417 inline boolean
ge(long v2
) const;
4418 inline boolean
gt(const isl::checked::val
&v2
) const;
4419 inline boolean
gt(long v2
) const;
4420 static inline isl::checked::val
infty(isl::checked::ctx ctx
);
4421 inline isl::checked::val
inv() const;
4422 inline boolean
is_divisible_by(const isl::checked::val
&v2
) const;
4423 inline boolean
is_divisible_by(long v2
) const;
4424 inline boolean
is_infty() const;
4425 inline boolean
is_int() const;
4426 inline boolean
is_nan() const;
4427 inline boolean
is_neg() const;
4428 inline boolean
is_neginfty() const;
4429 inline boolean
is_negone() const;
4430 inline boolean
is_nonneg() const;
4431 inline boolean
is_nonpos() const;
4432 inline boolean
is_one() const;
4433 inline boolean
is_pos() const;
4434 inline boolean
is_rat() const;
4435 inline boolean
is_zero() const;
4436 inline boolean
le(const isl::checked::val
&v2
) const;
4437 inline boolean
le(long v2
) const;
4438 inline boolean
lt(const isl::checked::val
&v2
) const;
4439 inline boolean
lt(long v2
) const;
4440 inline isl::checked::val
max(isl::checked::val v2
) const;
4441 inline isl::checked::val
max(long v2
) const;
4442 inline isl::checked::val
min(isl::checked::val v2
) const;
4443 inline isl::checked::val
min(long v2
) const;
4444 inline isl::checked::val
mod(isl::checked::val v2
) const;
4445 inline isl::checked::val
mod(long v2
) const;
4446 inline isl::checked::val
mul(isl::checked::val v2
) const;
4447 inline isl::checked::val
mul(long v2
) const;
4448 static inline isl::checked::val
nan(isl::checked::ctx ctx
);
4449 inline boolean
ne(const isl::checked::val
&v2
) const;
4450 inline boolean
ne(long v2
) const;
4451 inline isl::checked::val
neg() const;
4452 static inline isl::checked::val
neginfty(isl::checked::ctx ctx
);
4453 static inline isl::checked::val
negone(isl::checked::ctx ctx
);
4454 inline long num_si() const;
4455 inline long get_num_si() const;
4456 static inline isl::checked::val
one(isl::checked::ctx ctx
);
4457 inline isl::checked::val
pow2() const;
4458 inline int sgn() const;
4459 inline isl::checked::val
sub(isl::checked::val v2
) const;
4460 inline isl::checked::val
sub(long v2
) const;
4461 inline isl::checked::val_list
to_list() const;
4462 inline isl::checked::val
trunc() const;
4463 static inline isl::checked::val
zero(isl::checked::ctx ctx
);
4466 // declarations for isl::val_list
4467 inline val_list
manage(__isl_take isl_val_list
*ptr
);
4468 inline val_list
manage_copy(__isl_keep isl_val_list
*ptr
);
4471 friend inline val_list
manage(__isl_take isl_val_list
*ptr
);
4472 friend inline val_list
manage_copy(__isl_keep isl_val_list
*ptr
);
4475 isl_val_list
*ptr
= nullptr;
4477 inline explicit val_list(__isl_take isl_val_list
*ptr
);
4480 inline /* implicit */ val_list();
4481 inline /* implicit */ val_list(const val_list
&obj
);
4482 inline explicit val_list(isl::checked::ctx ctx
, int n
);
4483 inline explicit val_list(isl::checked::val el
);
4484 inline explicit val_list(isl::checked::ctx ctx
, const std::string
&str
);
4485 inline val_list
&operator=(val_list obj
);
4487 inline __isl_give isl_val_list
*copy() const &;
4488 inline __isl_give isl_val_list
*copy() && = delete;
4489 inline __isl_keep isl_val_list
*get() const;
4490 inline __isl_give isl_val_list
*release();
4491 inline bool is_null() const;
4492 inline isl::checked::ctx
ctx() const;
4494 inline isl::checked::val_list
add(isl::checked::val el
) const;
4495 inline isl::checked::val_list
add(long el
) const;
4496 inline isl::checked::val
at(int index
) const;
4497 inline isl::checked::val
get_at(int index
) const;
4498 inline isl::checked::val_list
clear() const;
4499 inline isl::checked::val_list
concat(isl::checked::val_list list2
) const;
4500 inline isl::checked::val_list
drop(unsigned int first
, unsigned int n
) const;
4501 inline stat
foreach(const std::function
<stat(isl::checked::val
)> &fn
) const;
4502 inline stat
foreach_scc(const std::function
<boolean(isl::checked::val
, isl::checked::val
)> &follows
, const std::function
<stat(isl::checked::val_list
)> &fn
) const;
4503 inline isl::checked::val_list
insert(unsigned int pos
, isl::checked::val el
) const;
4504 inline isl::checked::val_list
insert(unsigned int pos
, long el
) const;
4505 inline isl::checked::val_list
set_at(int index
, isl::checked::val el
) const;
4506 inline isl::checked::val_list
set_at(int index
, long el
) const;
4507 inline class size
size() const;
4510 // implementations for isl::aff
4511 aff
manage(__isl_take isl_aff
*ptr
) {
4514 aff
manage_copy(__isl_keep isl_aff
*ptr
) {
4515 ptr
= isl_aff_copy(ptr
);
4519 aff::aff(__isl_take isl_aff
*ptr
)
4525 aff::aff(const aff
&obj
)
4531 aff::aff(isl::checked::ctx ctx
, const std::string
&str
)
4533 auto res
= isl_aff_read_from_str(ctx
.release(), str
.c_str());
4537 aff
&aff::operator=(aff obj
) {
4538 std::swap(this->ptr
, obj
.ptr
);
4547 __isl_give isl_aff
*aff::copy() const & {
4548 return isl_aff_copy(ptr
);
4551 __isl_keep isl_aff
*aff::get() const {
4555 __isl_give isl_aff
*aff::release() {
4561 bool aff::is_null() const {
4562 return ptr
== nullptr;
4565 isl::checked::ctx
aff::ctx() const {
4566 return isl::checked::ctx(isl_aff_get_ctx(ptr
));
4569 isl::checked::aff
aff::add(isl::checked::aff aff2
) const
4571 auto res
= isl_aff_add(copy(), aff2
.release());
4575 isl::checked::multi_aff
aff::add(const isl::checked::multi_aff
&multi2
) const
4577 return isl::checked::multi_aff(*this).add(multi2
);
4580 isl::checked::multi_pw_aff
aff::add(const isl::checked::multi_pw_aff
&multi2
) const
4582 return isl::checked::pw_aff(*this).add(multi2
);
4585 isl::checked::multi_union_pw_aff
aff::add(const isl::checked::multi_union_pw_aff
&multi2
) const
4587 return isl::checked::pw_aff(*this).add(multi2
);
4590 isl::checked::pw_aff
aff::add(const isl::checked::pw_aff
&pwaff2
) const
4592 return isl::checked::pw_aff(*this).add(pwaff2
);
4595 isl::checked::pw_multi_aff
aff::add(const isl::checked::pw_multi_aff
&pma2
) const
4597 return isl::checked::pw_aff(*this).add(pma2
);
4600 isl::checked::union_pw_aff
aff::add(const isl::checked::union_pw_aff
&upa2
) const
4602 return isl::checked::pw_aff(*this).add(upa2
);
4605 isl::checked::union_pw_multi_aff
aff::add(const isl::checked::union_pw_multi_aff
&upma2
) const
4607 return isl::checked::pw_aff(*this).add(upma2
);
4610 isl::checked::aff
aff::add_constant(isl::checked::val v
) const
4612 auto res
= isl_aff_add_constant_val(copy(), v
.release());
4616 isl::checked::aff
aff::add_constant(long v
) const
4618 return this->add_constant(isl::checked::val(ctx(), v
));
4621 isl::checked::multi_aff
aff::add_constant(const isl::checked::multi_val
&mv
) const
4623 return isl::checked::multi_aff(*this).add_constant(mv
);
4626 isl::checked::union_pw_multi_aff
aff::apply(const isl::checked::union_pw_multi_aff
&upma2
) const
4628 return isl::checked::pw_aff(*this).apply(upma2
);
4631 isl::checked::aff
aff::as_aff() const
4633 return isl::checked::pw_aff(*this).as_aff();
4636 isl::checked::map
aff::as_map() const
4638 return isl::checked::pw_aff(*this).as_map();
4641 isl::checked::multi_aff
aff::as_multi_aff() const
4643 return isl::checked::pw_aff(*this).as_multi_aff();
4646 isl::checked::multi_union_pw_aff
aff::as_multi_union_pw_aff() const
4648 return isl::checked::pw_aff(*this).as_multi_union_pw_aff();
4651 isl::checked::pw_multi_aff
aff::as_pw_multi_aff() const
4653 return isl::checked::pw_aff(*this).as_pw_multi_aff();
4656 isl::checked::set
aff::as_set() const
4658 return isl::checked::multi_aff(*this).as_set();
4661 isl::checked::union_map
aff::as_union_map() const
4663 return isl::checked::pw_aff(*this).as_union_map();
4666 isl::checked::aff
aff::at(int pos
) const
4668 return isl::checked::multi_aff(*this).at(pos
);
4671 isl::checked::basic_set
aff::bind(isl::checked::id id
) const
4673 auto res
= isl_aff_bind_id(copy(), id
.release());
4677 isl::checked::basic_set
aff::bind(const std::string
&id
) const
4679 return this->bind(isl::checked::id(ctx(), id
));
4682 isl::checked::basic_set
aff::bind(const isl::checked::multi_id
&tuple
) const
4684 return isl::checked::multi_aff(*this).bind(tuple
);
4687 isl::checked::pw_aff
aff::bind_domain(const isl::checked::multi_id
&tuple
) const
4689 return isl::checked::pw_aff(*this).bind_domain(tuple
);
4692 isl::checked::pw_aff
aff::bind_domain_wrapped_domain(const isl::checked::multi_id
&tuple
) const
4694 return isl::checked::pw_aff(*this).bind_domain_wrapped_domain(tuple
);
4697 isl::checked::aff
aff::ceil() const
4699 auto res
= isl_aff_ceil(copy());
4703 isl::checked::pw_aff
aff::coalesce() const
4705 return isl::checked::pw_aff(*this).coalesce();
4708 isl::checked::pw_aff
aff::cond(const isl::checked::pw_aff
&pwaff_true
, const isl::checked::pw_aff
&pwaff_false
) const
4710 return isl::checked::pw_aff(*this).cond(pwaff_true
, pwaff_false
);
4713 isl::checked::multi_val
aff::constant_multi_val() const
4715 return isl::checked::multi_aff(*this).constant_multi_val();
4718 isl::checked::val
aff::constant_val() const
4720 auto res
= isl_aff_get_constant_val(get());
4724 isl::checked::val
aff::get_constant_val() const
4726 return constant_val();
4729 isl::checked::aff
aff::div(isl::checked::aff aff2
) const
4731 auto res
= isl_aff_div(copy(), aff2
.release());
4735 isl::checked::pw_aff
aff::div(const isl::checked::pw_aff
&pa2
) const
4737 return isl::checked::pw_aff(*this).div(pa2
);
4740 isl::checked::set
aff::domain() const
4742 return isl::checked::pw_aff(*this).domain();
4745 isl::checked::aff
aff::domain_reverse() const
4747 auto res
= isl_aff_domain_reverse(copy());
4751 isl::checked::pw_aff
aff::drop_unused_params() const
4753 return isl::checked::pw_aff(*this).drop_unused_params();
4756 isl::checked::set
aff::eq_set(isl::checked::aff aff2
) const
4758 auto res
= isl_aff_eq_set(copy(), aff2
.release());
4762 isl::checked::set
aff::eq_set(const isl::checked::pw_aff
&pwaff2
) const
4764 return isl::checked::pw_aff(*this).eq_set(pwaff2
);
4767 isl::checked::val
aff::eval(isl::checked::point pnt
) const
4769 auto res
= isl_aff_eval(copy(), pnt
.release());
4773 isl::checked::pw_multi_aff
aff::extract_pw_multi_aff(const isl::checked::space
&space
) const
4775 return isl::checked::pw_aff(*this).extract_pw_multi_aff(space
);
4778 isl::checked::multi_aff
aff::flat_range_product(const isl::checked::multi_aff
&multi2
) const
4780 return isl::checked::multi_aff(*this).flat_range_product(multi2
);
4783 isl::checked::multi_pw_aff
aff::flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const
4785 return isl::checked::pw_aff(*this).flat_range_product(multi2
);
4788 isl::checked::multi_union_pw_aff
aff::flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
4790 return isl::checked::pw_aff(*this).flat_range_product(multi2
);
4793 isl::checked::pw_multi_aff
aff::flat_range_product(const isl::checked::pw_multi_aff
&pma2
) const
4795 return isl::checked::pw_aff(*this).flat_range_product(pma2
);
4798 isl::checked::union_pw_multi_aff
aff::flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
4800 return isl::checked::pw_aff(*this).flat_range_product(upma2
);
4803 isl::checked::aff
aff::floor() const
4805 auto res
= isl_aff_floor(copy());
4809 stat
aff::foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const
4811 return isl::checked::pw_aff(*this).foreach_piece(fn
);
4814 isl::checked::set
aff::ge_set(isl::checked::aff aff2
) const
4816 auto res
= isl_aff_ge_set(copy(), aff2
.release());
4820 isl::checked::set
aff::ge_set(const isl::checked::pw_aff
&pwaff2
) const
4822 return isl::checked::pw_aff(*this).ge_set(pwaff2
);
4825 isl::checked::aff
aff::gist(isl::checked::set context
) const
4827 auto res
= isl_aff_gist(copy(), context
.release());
4831 isl::checked::union_pw_aff
aff::gist(const isl::checked::union_set
&context
) const
4833 return isl::checked::pw_aff(*this).gist(context
);
4836 isl::checked::aff
aff::gist(const isl::checked::basic_set
&context
) const
4838 return this->gist(isl::checked::set(context
));
4841 isl::checked::aff
aff::gist(const isl::checked::point
&context
) const
4843 return this->gist(isl::checked::set(context
));
4846 isl::checked::aff
aff::gist_params(isl::checked::set context
) const
4848 auto res
= isl_aff_gist_params(copy(), context
.release());
4852 isl::checked::set
aff::gt_set(isl::checked::aff aff2
) const
4854 auto res
= isl_aff_gt_set(copy(), aff2
.release());
4858 isl::checked::set
aff::gt_set(const isl::checked::pw_aff
&pwaff2
) const
4860 return isl::checked::pw_aff(*this).gt_set(pwaff2
);
4863 boolean
aff::has_range_tuple_id() const
4865 return isl::checked::multi_aff(*this).has_range_tuple_id();
4868 isl::checked::multi_aff
aff::identity() const
4870 return isl::checked::multi_aff(*this).identity();
4873 isl::checked::pw_aff
aff::insert_domain(const isl::checked::space
&domain
) const
4875 return isl::checked::pw_aff(*this).insert_domain(domain
);
4878 isl::checked::pw_aff
aff::intersect_domain(const isl::checked::set
&set
) const
4880 return isl::checked::pw_aff(*this).intersect_domain(set
);
4883 isl::checked::union_pw_aff
aff::intersect_domain(const isl::checked::space
&space
) const
4885 return isl::checked::pw_aff(*this).intersect_domain(space
);
4888 isl::checked::union_pw_aff
aff::intersect_domain(const isl::checked::union_set
&uset
) const
4890 return isl::checked::pw_aff(*this).intersect_domain(uset
);
4893 isl::checked::union_pw_aff
aff::intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const
4895 return isl::checked::pw_aff(*this).intersect_domain_wrapped_domain(uset
);
4898 isl::checked::union_pw_aff
aff::intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const
4900 return isl::checked::pw_aff(*this).intersect_domain_wrapped_range(uset
);
4903 isl::checked::pw_aff
aff::intersect_params(const isl::checked::set
&set
) const
4905 return isl::checked::pw_aff(*this).intersect_params(set
);
4908 boolean
aff::involves_locals() const
4910 return isl::checked::multi_aff(*this).involves_locals();
4913 boolean
aff::involves_nan() const
4915 return isl::checked::multi_aff(*this).involves_nan();
4918 boolean
aff::involves_param(const isl::checked::id
&id
) const
4920 return isl::checked::pw_aff(*this).involves_param(id
);
4923 boolean
aff::involves_param(const std::string
&id
) const
4925 return this->involves_param(isl::checked::id(ctx(), id
));
4928 boolean
aff::involves_param(const isl::checked::id_list
&list
) const
4930 return isl::checked::pw_aff(*this).involves_param(list
);
4933 boolean
aff::is_cst() const
4935 auto res
= isl_aff_is_cst(get());
4939 boolean
aff::isa_aff() const
4941 return isl::checked::pw_aff(*this).isa_aff();
4944 boolean
aff::isa_multi_aff() const
4946 return isl::checked::pw_aff(*this).isa_multi_aff();
4949 boolean
aff::isa_pw_multi_aff() const
4951 return isl::checked::pw_aff(*this).isa_pw_multi_aff();
4954 isl::checked::set
aff::le_set(isl::checked::aff aff2
) const
4956 auto res
= isl_aff_le_set(copy(), aff2
.release());
4960 isl::checked::set
aff::le_set(const isl::checked::pw_aff
&pwaff2
) const
4962 return isl::checked::pw_aff(*this).le_set(pwaff2
);
4965 isl::checked::aff_list
aff::list() const
4967 return isl::checked::multi_aff(*this).list();
4970 isl::checked::set
aff::lt_set(isl::checked::aff aff2
) const
4972 auto res
= isl_aff_lt_set(copy(), aff2
.release());
4976 isl::checked::set
aff::lt_set(const isl::checked::pw_aff
&pwaff2
) const
4978 return isl::checked::pw_aff(*this).lt_set(pwaff2
);
4981 isl::checked::multi_pw_aff
aff::max(const isl::checked::multi_pw_aff
&multi2
) const
4983 return isl::checked::pw_aff(*this).max(multi2
);
4986 isl::checked::pw_aff
aff::max(const isl::checked::pw_aff
&pwaff2
) const
4988 return isl::checked::pw_aff(*this).max(pwaff2
);
4991 isl::checked::multi_val
aff::max_multi_val() const
4993 return isl::checked::pw_aff(*this).max_multi_val();
4996 isl::checked::val
aff::max_val() const
4998 return isl::checked::pw_aff(*this).max_val();
5001 isl::checked::multi_pw_aff
aff::min(const isl::checked::multi_pw_aff
&multi2
) const
5003 return isl::checked::pw_aff(*this).min(multi2
);
5006 isl::checked::pw_aff
aff::min(const isl::checked::pw_aff
&pwaff2
) const
5008 return isl::checked::pw_aff(*this).min(pwaff2
);
5011 isl::checked::multi_val
aff::min_multi_val() const
5013 return isl::checked::pw_aff(*this).min_multi_val();
5016 isl::checked::val
aff::min_val() const
5018 return isl::checked::pw_aff(*this).min_val();
5021 isl::checked::aff
aff::mod(isl::checked::val mod
) const
5023 auto res
= isl_aff_mod_val(copy(), mod
.release());
5027 isl::checked::aff
aff::mod(long mod
) const
5029 return this->mod(isl::checked::val(ctx(), mod
));
5032 isl::checked::aff
aff::mul(isl::checked::aff aff2
) const
5034 auto res
= isl_aff_mul(copy(), aff2
.release());
5038 isl::checked::pw_aff
aff::mul(const isl::checked::pw_aff
&pwaff2
) const
5040 return isl::checked::pw_aff(*this).mul(pwaff2
);
5043 class size
aff::n_piece() const
5045 return isl::checked::pw_aff(*this).n_piece();
5048 isl::checked::set
aff::ne_set(isl::checked::aff aff2
) const
5050 auto res
= isl_aff_ne_set(copy(), aff2
.release());
5054 isl::checked::set
aff::ne_set(const isl::checked::pw_aff
&pwaff2
) const
5056 return isl::checked::pw_aff(*this).ne_set(pwaff2
);
5059 isl::checked::aff
aff::neg() const
5061 auto res
= isl_aff_neg(copy());
5065 isl::checked::set
aff::params() const
5067 return isl::checked::pw_aff(*this).params();
5070 boolean
aff::plain_is_empty() const
5072 return isl::checked::pw_aff(*this).plain_is_empty();
5075 boolean
aff::plain_is_equal(const isl::checked::aff
&aff2
) const
5077 auto res
= isl_aff_plain_is_equal(get(), aff2
.get());
5081 boolean
aff::plain_is_equal(const isl::checked::multi_aff
&multi2
) const
5083 return isl::checked::multi_aff(*this).plain_is_equal(multi2
);
5086 boolean
aff::plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const
5088 return isl::checked::pw_aff(*this).plain_is_equal(multi2
);
5091 boolean
aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
5093 return isl::checked::pw_aff(*this).plain_is_equal(multi2
);
5096 boolean
aff::plain_is_equal(const isl::checked::pw_aff
&pwaff2
) const
5098 return isl::checked::pw_aff(*this).plain_is_equal(pwaff2
);
5101 boolean
aff::plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const
5103 return isl::checked::pw_aff(*this).plain_is_equal(pma2
);
5106 boolean
aff::plain_is_equal(const isl::checked::union_pw_aff
&upa2
) const
5108 return isl::checked::pw_aff(*this).plain_is_equal(upa2
);
5111 boolean
aff::plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const
5113 return isl::checked::pw_aff(*this).plain_is_equal(upma2
);
5116 isl::checked::pw_multi_aff
aff::preimage_domain_wrapped_domain(const isl::checked::pw_multi_aff
&pma2
) const
5118 return isl::checked::pw_aff(*this).preimage_domain_wrapped_domain(pma2
);
5121 isl::checked::union_pw_multi_aff
aff::preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const
5123 return isl::checked::pw_aff(*this).preimage_domain_wrapped_domain(upma2
);
5126 isl::checked::multi_aff
aff::product(const isl::checked::multi_aff
&multi2
) const
5128 return isl::checked::multi_aff(*this).product(multi2
);
5131 isl::checked::multi_pw_aff
aff::product(const isl::checked::multi_pw_aff
&multi2
) const
5133 return isl::checked::pw_aff(*this).product(multi2
);
5136 isl::checked::pw_multi_aff
aff::product(const isl::checked::pw_multi_aff
&pma2
) const
5138 return isl::checked::pw_aff(*this).product(pma2
);
5141 isl::checked::aff
aff::pullback(isl::checked::multi_aff ma
) const
5143 auto res
= isl_aff_pullback_multi_aff(copy(), ma
.release());
5147 isl::checked::pw_aff
aff::pullback(const isl::checked::multi_pw_aff
&mpa
) const
5149 return isl::checked::pw_aff(*this).pullback(mpa
);
5152 isl::checked::pw_aff
aff::pullback(const isl::checked::pw_multi_aff
&pma
) const
5154 return isl::checked::pw_aff(*this).pullback(pma
);
5157 isl::checked::union_pw_aff
aff::pullback(const isl::checked::union_pw_multi_aff
&upma
) const
5159 return isl::checked::pw_aff(*this).pullback(upma
);
5162 isl::checked::aff
aff::pullback(const isl::checked::aff
&ma
) const
5164 return this->pullback(isl::checked::multi_aff(ma
));
5167 isl::checked::pw_multi_aff_list
aff::pw_multi_aff_list() const
5169 return isl::checked::pw_aff(*this).pw_multi_aff_list();
5172 isl::checked::pw_multi_aff
aff::range_factor_domain() const
5174 return isl::checked::pw_aff(*this).range_factor_domain();
5177 isl::checked::pw_multi_aff
aff::range_factor_range() const
5179 return isl::checked::pw_aff(*this).range_factor_range();
5182 isl::checked::multi_aff
aff::range_product(const isl::checked::multi_aff
&multi2
) const
5184 return isl::checked::multi_aff(*this).range_product(multi2
);
5187 isl::checked::multi_pw_aff
aff::range_product(const isl::checked::multi_pw_aff
&multi2
) const
5189 return isl::checked::pw_aff(*this).range_product(multi2
);
5192 isl::checked::multi_union_pw_aff
aff::range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
5194 return isl::checked::pw_aff(*this).range_product(multi2
);
5197 isl::checked::pw_multi_aff
aff::range_product(const isl::checked::pw_multi_aff
&pma2
) const
5199 return isl::checked::pw_aff(*this).range_product(pma2
);
5202 isl::checked::union_pw_multi_aff
aff::range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
5204 return isl::checked::pw_aff(*this).range_product(upma2
);
5207 isl::checked::id
aff::range_tuple_id() const
5209 return isl::checked::multi_aff(*this).range_tuple_id();
5212 isl::checked::multi_aff
aff::reset_range_tuple_id() const
5214 return isl::checked::multi_aff(*this).reset_range_tuple_id();
5217 isl::checked::aff
aff::scale(isl::checked::val v
) const
5219 auto res
= isl_aff_scale_val(copy(), v
.release());
5223 isl::checked::aff
aff::scale(long v
) const
5225 return this->scale(isl::checked::val(ctx(), v
));
5228 isl::checked::multi_aff
aff::scale(const isl::checked::multi_val
&mv
) const
5230 return isl::checked::multi_aff(*this).scale(mv
);
5233 isl::checked::aff
aff::scale_down(isl::checked::val v
) const
5235 auto res
= isl_aff_scale_down_val(copy(), v
.release());
5239 isl::checked::aff
aff::scale_down(long v
) const
5241 return this->scale_down(isl::checked::val(ctx(), v
));
5244 isl::checked::multi_aff
aff::scale_down(const isl::checked::multi_val
&mv
) const
5246 return isl::checked::multi_aff(*this).scale_down(mv
);
5249 isl::checked::multi_aff
aff::set_at(int pos
, const isl::checked::aff
&el
) const
5251 return isl::checked::multi_aff(*this).set_at(pos
, el
);
5254 isl::checked::multi_pw_aff
aff::set_at(int pos
, const isl::checked::pw_aff
&el
) const
5256 return isl::checked::pw_aff(*this).set_at(pos
, el
);
5259 isl::checked::multi_union_pw_aff
aff::set_at(int pos
, const isl::checked::union_pw_aff
&el
) const
5261 return isl::checked::pw_aff(*this).set_at(pos
, el
);
5264 isl::checked::multi_aff
aff::set_range_tuple(const isl::checked::id
&id
) const
5266 return isl::checked::multi_aff(*this).set_range_tuple(id
);
5269 isl::checked::multi_aff
aff::set_range_tuple(const std::string
&id
) const
5271 return this->set_range_tuple(isl::checked::id(ctx(), id
));
5274 class size
aff::size() const
5276 return isl::checked::multi_aff(*this).size();
5279 isl::checked::space
aff::space() const
5281 return isl::checked::pw_aff(*this).space();
5284 isl::checked::aff
aff::sub(isl::checked::aff aff2
) const
5286 auto res
= isl_aff_sub(copy(), aff2
.release());
5290 isl::checked::multi_aff
aff::sub(const isl::checked::multi_aff
&multi2
) const
5292 return isl::checked::multi_aff(*this).sub(multi2
);
5295 isl::checked::multi_pw_aff
aff::sub(const isl::checked::multi_pw_aff
&multi2
) const
5297 return isl::checked::pw_aff(*this).sub(multi2
);
5300 isl::checked::multi_union_pw_aff
aff::sub(const isl::checked::multi_union_pw_aff
&multi2
) const
5302 return isl::checked::pw_aff(*this).sub(multi2
);
5305 isl::checked::pw_aff
aff::sub(const isl::checked::pw_aff
&pwaff2
) const
5307 return isl::checked::pw_aff(*this).sub(pwaff2
);
5310 isl::checked::pw_multi_aff
aff::sub(const isl::checked::pw_multi_aff
&pma2
) const
5312 return isl::checked::pw_aff(*this).sub(pma2
);
5315 isl::checked::union_pw_aff
aff::sub(const isl::checked::union_pw_aff
&upa2
) const
5317 return isl::checked::pw_aff(*this).sub(upa2
);
5320 isl::checked::union_pw_multi_aff
aff::sub(const isl::checked::union_pw_multi_aff
&upma2
) const
5322 return isl::checked::pw_aff(*this).sub(upma2
);
5325 isl::checked::pw_aff
aff::subtract_domain(const isl::checked::set
&set
) const
5327 return isl::checked::pw_aff(*this).subtract_domain(set
);
5330 isl::checked::union_pw_aff
aff::subtract_domain(const isl::checked::space
&space
) const
5332 return isl::checked::pw_aff(*this).subtract_domain(space
);
5335 isl::checked::union_pw_aff
aff::subtract_domain(const isl::checked::union_set
&uset
) const
5337 return isl::checked::pw_aff(*this).subtract_domain(uset
);
5340 isl::checked::pw_aff
aff::tdiv_q(const isl::checked::pw_aff
&pa2
) const
5342 return isl::checked::pw_aff(*this).tdiv_q(pa2
);
5345 isl::checked::pw_aff
aff::tdiv_r(const isl::checked::pw_aff
&pa2
) const
5347 return isl::checked::pw_aff(*this).tdiv_r(pa2
);
5350 isl::checked::aff_list
aff::to_list() const
5352 auto res
= isl_aff_to_list(copy());
5356 isl::checked::multi_pw_aff
aff::to_multi_pw_aff() const
5358 return isl::checked::multi_aff(*this).to_multi_pw_aff();
5361 isl::checked::multi_union_pw_aff
aff::to_multi_union_pw_aff() const
5363 return isl::checked::multi_aff(*this).to_multi_union_pw_aff();
5366 isl::checked::pw_multi_aff
aff::to_pw_multi_aff() const
5368 return isl::checked::multi_aff(*this).to_pw_multi_aff();
5371 isl::checked::union_pw_aff
aff::to_union_pw_aff() const
5373 return isl::checked::pw_aff(*this).to_union_pw_aff();
5376 isl::checked::union_pw_multi_aff
aff::to_union_pw_multi_aff() const
5378 return isl::checked::pw_aff(*this).to_union_pw_multi_aff();
5381 isl::checked::aff
aff::unbind_params_insert_domain(isl::checked::multi_id domain
) const
5383 auto res
= isl_aff_unbind_params_insert_domain(copy(), domain
.release());
5387 isl::checked::multi_pw_aff
aff::union_add(const isl::checked::multi_pw_aff
&mpa2
) const
5389 return isl::checked::pw_aff(*this).union_add(mpa2
);
5392 isl::checked::multi_union_pw_aff
aff::union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const
5394 return isl::checked::pw_aff(*this).union_add(mupa2
);
5397 isl::checked::pw_aff
aff::union_add(const isl::checked::pw_aff
&pwaff2
) const
5399 return isl::checked::pw_aff(*this).union_add(pwaff2
);
5402 isl::checked::pw_multi_aff
aff::union_add(const isl::checked::pw_multi_aff
&pma2
) const
5404 return isl::checked::pw_aff(*this).union_add(pma2
);
5407 isl::checked::union_pw_aff
aff::union_add(const isl::checked::union_pw_aff
&upa2
) const
5409 return isl::checked::pw_aff(*this).union_add(upa2
);
5412 isl::checked::union_pw_multi_aff
aff::union_add(const isl::checked::union_pw_multi_aff
&upma2
) const
5414 return isl::checked::pw_aff(*this).union_add(upma2
);
5417 isl::checked::aff
aff::zero_on_domain(isl::checked::space space
)
5419 auto res
= isl_aff_zero_on_domain_space(space
.release());
5423 inline std::ostream
&operator<<(std::ostream
&os
, const aff
&obj
)
5425 char *str
= isl_aff_to_str(obj
.get());
5427 os
.setstate(std::ios_base::badbit
);
5435 // implementations for isl::aff_list
5436 aff_list
manage(__isl_take isl_aff_list
*ptr
) {
5437 return aff_list(ptr
);
5439 aff_list
manage_copy(__isl_keep isl_aff_list
*ptr
) {
5440 ptr
= isl_aff_list_copy(ptr
);
5441 return aff_list(ptr
);
5444 aff_list::aff_list(__isl_take isl_aff_list
*ptr
)
5447 aff_list::aff_list()
5450 aff_list::aff_list(const aff_list
&obj
)
5456 aff_list::aff_list(isl::checked::ctx ctx
, int n
)
5458 auto res
= isl_aff_list_alloc(ctx
.release(), n
);
5462 aff_list::aff_list(isl::checked::aff el
)
5464 auto res
= isl_aff_list_from_aff(el
.release());
5468 aff_list::aff_list(isl::checked::ctx ctx
, const std::string
&str
)
5470 auto res
= isl_aff_list_read_from_str(ctx
.release(), str
.c_str());
5474 aff_list
&aff_list::operator=(aff_list obj
) {
5475 std::swap(this->ptr
, obj
.ptr
);
5479 aff_list::~aff_list() {
5481 isl_aff_list_free(ptr
);
5484 __isl_give isl_aff_list
*aff_list::copy() const & {
5485 return isl_aff_list_copy(ptr
);
5488 __isl_keep isl_aff_list
*aff_list::get() const {
5492 __isl_give isl_aff_list
*aff_list::release() {
5493 isl_aff_list
*tmp
= ptr
;
5498 bool aff_list::is_null() const {
5499 return ptr
== nullptr;
5502 isl::checked::ctx
aff_list::ctx() const {
5503 return isl::checked::ctx(isl_aff_list_get_ctx(ptr
));
5506 isl::checked::aff_list
aff_list::add(isl::checked::aff el
) const
5508 auto res
= isl_aff_list_add(copy(), el
.release());
5512 isl::checked::aff
aff_list::at(int index
) const
5514 auto res
= isl_aff_list_get_at(get(), index
);
5518 isl::checked::aff
aff_list::get_at(int index
) const
5523 isl::checked::aff_list
aff_list::clear() const
5525 auto res
= isl_aff_list_clear(copy());
5529 isl::checked::aff_list
aff_list::concat(isl::checked::aff_list list2
) const
5531 auto res
= isl_aff_list_concat(copy(), list2
.release());
5535 isl::checked::aff_list
aff_list::drop(unsigned int first
, unsigned int n
) const
5537 auto res
= isl_aff_list_drop(copy(), first
, n
);
5541 stat
aff_list::foreach(const std::function
<stat(isl::checked::aff
)> &fn
) const
5544 std::function
<stat(isl::checked::aff
)> func
;
5546 auto fn_lambda
= [](isl_aff
*arg_0
, void *arg_1
) -> isl_stat
{
5547 auto *data
= static_cast<struct fn_data
*>(arg_1
);
5548 auto ret
= (data
->func
)(manage(arg_0
));
5549 return ret
.release();
5551 auto res
= isl_aff_list_foreach(get(), fn_lambda
, &fn_data
);
5555 stat
aff_list::foreach_scc(const std::function
<boolean(isl::checked::aff
, isl::checked::aff
)> &follows
, const std::function
<stat(isl::checked::aff_list
)> &fn
) const
5557 struct follows_data
{
5558 std::function
<boolean(isl::checked::aff
, isl::checked::aff
)> func
;
5559 } follows_data
= { follows
};
5560 auto follows_lambda
= [](isl_aff
*arg_0
, isl_aff
*arg_1
, void *arg_2
) -> isl_bool
{
5561 auto *data
= static_cast<struct follows_data
*>(arg_2
);
5562 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
5563 return ret
.release();
5566 std::function
<stat(isl::checked::aff_list
)> func
;
5568 auto fn_lambda
= [](isl_aff_list
*arg_0
, void *arg_1
) -> isl_stat
{
5569 auto *data
= static_cast<struct fn_data
*>(arg_1
);
5570 auto ret
= (data
->func
)(manage(arg_0
));
5571 return ret
.release();
5573 auto res
= isl_aff_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
5577 isl::checked::aff_list
aff_list::insert(unsigned int pos
, isl::checked::aff el
) const
5579 auto res
= isl_aff_list_insert(copy(), pos
, el
.release());
5583 isl::checked::aff_list
aff_list::set_at(int index
, isl::checked::aff el
) const
5585 auto res
= isl_aff_list_set_at(copy(), index
, el
.release());
5589 class size
aff_list::size() const
5591 auto res
= isl_aff_list_size(get());
5595 inline std::ostream
&operator<<(std::ostream
&os
, const aff_list
&obj
)
5597 char *str
= isl_aff_list_to_str(obj
.get());
5599 os
.setstate(std::ios_base::badbit
);
5607 // implementations for isl::ast_build
5608 ast_build
manage(__isl_take isl_ast_build
*ptr
) {
5609 return ast_build(ptr
);
5611 ast_build
manage_copy(__isl_keep isl_ast_build
*ptr
) {
5612 ptr
= isl_ast_build_copy(ptr
);
5613 return ast_build(ptr
);
5616 ast_build::ast_build(__isl_take isl_ast_build
*ptr
)
5619 ast_build::ast_build()
5622 ast_build::ast_build(const ast_build
&obj
)
5626 copy_callbacks(obj
);
5629 ast_build::ast_build(isl::checked::ctx ctx
)
5631 auto res
= isl_ast_build_alloc(ctx
.release());
5635 ast_build
&ast_build::operator=(ast_build obj
) {
5636 std::swap(this->ptr
, obj
.ptr
);
5637 copy_callbacks(obj
);
5641 ast_build::~ast_build() {
5643 isl_ast_build_free(ptr
);
5646 __isl_give isl_ast_build
*ast_build::copy() const & {
5647 return isl_ast_build_copy(ptr
);
5650 __isl_keep isl_ast_build
*ast_build::get() const {
5654 __isl_give isl_ast_build
*ast_build::release() {
5655 if (at_each_domain_data
)
5656 isl_die(ctx().get(), isl_error_invalid
, "cannot release object with persistent callbacks", return nullptr);
5657 isl_ast_build
*tmp
= ptr
;
5662 bool ast_build::is_null() const {
5663 return ptr
== nullptr;
5666 isl::checked::ctx
ast_build::ctx() const {
5667 return isl::checked::ctx(isl_ast_build_get_ctx(ptr
));
5670 ast_build
&ast_build::copy_callbacks(const ast_build
&obj
)
5672 at_each_domain_data
= obj
.at_each_domain_data
;
5676 isl_ast_node
*ast_build::at_each_domain(isl_ast_node
*arg_0
, isl_ast_build
*arg_1
, void *arg_2
)
5678 auto *data
= static_cast<struct at_each_domain_data
*>(arg_2
);
5679 auto ret
= (data
->func
)(manage(arg_0
), manage_copy(arg_1
));
5680 return ret
.release();
5683 void ast_build::set_at_each_domain_data(const std::function
<isl::checked::ast_node(isl::checked::ast_node
, isl::checked::ast_build
)> &fn
)
5685 at_each_domain_data
= std::make_shared
<struct at_each_domain_data
>();
5686 at_each_domain_data
->func
= fn
;
5687 ptr
= isl_ast_build_set_at_each_domain(ptr
, &at_each_domain
, at_each_domain_data
.get());
5690 isl::checked::ast_build
ast_build::set_at_each_domain(const std::function
<isl::checked::ast_node(isl::checked::ast_node
, isl::checked::ast_build
)> &fn
) const
5693 copy
.set_at_each_domain_data(fn
);
5697 isl::checked::ast_expr
ast_build::access_from(isl::checked::multi_pw_aff mpa
) const
5699 auto res
= isl_ast_build_access_from_multi_pw_aff(get(), mpa
.release());
5703 isl::checked::ast_expr
ast_build::access_from(isl::checked::pw_multi_aff pma
) const
5705 auto res
= isl_ast_build_access_from_pw_multi_aff(get(), pma
.release());
5709 isl::checked::ast_expr
ast_build::call_from(isl::checked::multi_pw_aff mpa
) const
5711 auto res
= isl_ast_build_call_from_multi_pw_aff(get(), mpa
.release());
5715 isl::checked::ast_expr
ast_build::call_from(isl::checked::pw_multi_aff pma
) const
5717 auto res
= isl_ast_build_call_from_pw_multi_aff(get(), pma
.release());
5721 isl::checked::ast_expr
ast_build::expr_from(isl::checked::pw_aff pa
) const
5723 auto res
= isl_ast_build_expr_from_pw_aff(get(), pa
.release());
5727 isl::checked::ast_expr
ast_build::expr_from(isl::checked::set set
) const
5729 auto res
= isl_ast_build_expr_from_set(get(), set
.release());
5733 isl::checked::ast_build
ast_build::from_context(isl::checked::set set
)
5735 auto res
= isl_ast_build_from_context(set
.release());
5739 isl::checked::ast_node
ast_build::node_from(isl::checked::schedule schedule
) const
5741 auto res
= isl_ast_build_node_from_schedule(get(), schedule
.release());
5745 isl::checked::ast_node
ast_build::node_from_schedule_map(isl::checked::union_map schedule
) const
5747 auto res
= isl_ast_build_node_from_schedule_map(get(), schedule
.release());
5751 isl::checked::union_map
ast_build::schedule() const
5753 auto res
= isl_ast_build_get_schedule(get());
5757 isl::checked::union_map
ast_build::get_schedule() const
5762 // implementations for isl::ast_expr
5763 ast_expr
manage(__isl_take isl_ast_expr
*ptr
) {
5764 return ast_expr(ptr
);
5766 ast_expr
manage_copy(__isl_keep isl_ast_expr
*ptr
) {
5767 ptr
= isl_ast_expr_copy(ptr
);
5768 return ast_expr(ptr
);
5771 ast_expr::ast_expr(__isl_take isl_ast_expr
*ptr
)
5774 ast_expr::ast_expr()
5777 ast_expr::ast_expr(const ast_expr
&obj
)
5783 ast_expr
&ast_expr::operator=(ast_expr obj
) {
5784 std::swap(this->ptr
, obj
.ptr
);
5788 ast_expr::~ast_expr() {
5790 isl_ast_expr_free(ptr
);
5793 __isl_give isl_ast_expr
*ast_expr::copy() const & {
5794 return isl_ast_expr_copy(ptr
);
5797 __isl_keep isl_ast_expr
*ast_expr::get() const {
5801 __isl_give isl_ast_expr
*ast_expr::release() {
5802 isl_ast_expr
*tmp
= ptr
;
5807 bool ast_expr::is_null() const {
5808 return ptr
== nullptr;
5811 template <typename T
, typename
>
5812 boolean
ast_expr::isa_type(T subtype
) const
5816 return isl_ast_expr_get_type(get()) == subtype
;
5819 boolean
ast_expr::isa() const
5821 return isa_type
<decltype(T::type
)>(T::type
);
5824 T
ast_expr::as() const
5826 if (isa
<T
>().is_false())
5827 isl_die(ctx().get(), isl_error_invalid
, "not an object of the requested subtype", return T());
5831 isl::checked::ctx
ast_expr::ctx() const {
5832 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
5835 std::string
ast_expr::to_C_str() const
5837 auto res
= isl_ast_expr_to_C_str(get());
5838 std::string
tmp(res
);
5843 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr
&obj
)
5845 char *str
= isl_ast_expr_to_str(obj
.get());
5847 os
.setstate(std::ios_base::badbit
);
5855 // implementations for isl::ast_expr_id
5856 ast_expr_id::ast_expr_id(__isl_take isl_ast_expr
*ptr
)
5859 ast_expr_id::ast_expr_id()
5862 ast_expr_id::ast_expr_id(const ast_expr_id
&obj
)
5867 ast_expr_id
&ast_expr_id::operator=(ast_expr_id obj
) {
5868 std::swap(this->ptr
, obj
.ptr
);
5872 isl::checked::ctx
ast_expr_id::ctx() const {
5873 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
5876 isl::checked::id
ast_expr_id::id() const
5878 auto res
= isl_ast_expr_id_get_id(get());
5882 isl::checked::id
ast_expr_id::get_id() const
5887 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_id
&obj
)
5889 char *str
= isl_ast_expr_to_str(obj
.get());
5891 os
.setstate(std::ios_base::badbit
);
5899 // implementations for isl::ast_expr_int
5900 ast_expr_int::ast_expr_int(__isl_take isl_ast_expr
*ptr
)
5903 ast_expr_int::ast_expr_int()
5906 ast_expr_int::ast_expr_int(const ast_expr_int
&obj
)
5911 ast_expr_int
&ast_expr_int::operator=(ast_expr_int obj
) {
5912 std::swap(this->ptr
, obj
.ptr
);
5916 isl::checked::ctx
ast_expr_int::ctx() const {
5917 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
5920 isl::checked::val
ast_expr_int::val() const
5922 auto res
= isl_ast_expr_int_get_val(get());
5926 isl::checked::val
ast_expr_int::get_val() const
5931 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_int
&obj
)
5933 char *str
= isl_ast_expr_to_str(obj
.get());
5935 os
.setstate(std::ios_base::badbit
);
5943 // implementations for isl::ast_expr_op
5944 ast_expr_op::ast_expr_op(__isl_take isl_ast_expr
*ptr
)
5947 ast_expr_op::ast_expr_op()
5950 ast_expr_op::ast_expr_op(const ast_expr_op
&obj
)
5955 ast_expr_op
&ast_expr_op::operator=(ast_expr_op obj
) {
5956 std::swap(this->ptr
, obj
.ptr
);
5960 template <typename T
, typename
>
5961 boolean
ast_expr_op::isa_type(T subtype
) const
5965 return isl_ast_expr_op_get_type(get()) == subtype
;
5968 boolean
ast_expr_op::isa() const
5970 return isa_type
<decltype(T::type
)>(T::type
);
5973 T
ast_expr_op::as() const
5975 if (isa
<T
>().is_false())
5976 isl_die(ctx().get(), isl_error_invalid
, "not an object of the requested subtype", return T());
5980 isl::checked::ctx
ast_expr_op::ctx() const {
5981 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
5984 isl::checked::ast_expr
ast_expr_op::arg(int pos
) const
5986 auto res
= isl_ast_expr_op_get_arg(get(), pos
);
5990 isl::checked::ast_expr
ast_expr_op::get_arg(int pos
) const
5995 class size
ast_expr_op::n_arg() const
5997 auto res
= isl_ast_expr_op_get_n_arg(get());
6001 class size
ast_expr_op::get_n_arg() const
6006 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op
&obj
)
6008 char *str
= isl_ast_expr_to_str(obj
.get());
6010 os
.setstate(std::ios_base::badbit
);
6018 // implementations for isl::ast_expr_op_access
6019 ast_expr_op_access::ast_expr_op_access(__isl_take isl_ast_expr
*ptr
)
6020 : ast_expr_op(ptr
) {}
6022 ast_expr_op_access::ast_expr_op_access()
6025 ast_expr_op_access::ast_expr_op_access(const ast_expr_op_access
&obj
)
6030 ast_expr_op_access
&ast_expr_op_access::operator=(ast_expr_op_access obj
) {
6031 std::swap(this->ptr
, obj
.ptr
);
6035 isl::checked::ctx
ast_expr_op_access::ctx() const {
6036 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6039 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_access
&obj
)
6041 char *str
= isl_ast_expr_to_str(obj
.get());
6043 os
.setstate(std::ios_base::badbit
);
6051 // implementations for isl::ast_expr_op_add
6052 ast_expr_op_add::ast_expr_op_add(__isl_take isl_ast_expr
*ptr
)
6053 : ast_expr_op(ptr
) {}
6055 ast_expr_op_add::ast_expr_op_add()
6058 ast_expr_op_add::ast_expr_op_add(const ast_expr_op_add
&obj
)
6063 ast_expr_op_add
&ast_expr_op_add::operator=(ast_expr_op_add obj
) {
6064 std::swap(this->ptr
, obj
.ptr
);
6068 isl::checked::ctx
ast_expr_op_add::ctx() const {
6069 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6072 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_add
&obj
)
6074 char *str
= isl_ast_expr_to_str(obj
.get());
6076 os
.setstate(std::ios_base::badbit
);
6084 // implementations for isl::ast_expr_op_address_of
6085 ast_expr_op_address_of::ast_expr_op_address_of(__isl_take isl_ast_expr
*ptr
)
6086 : ast_expr_op(ptr
) {}
6088 ast_expr_op_address_of::ast_expr_op_address_of()
6091 ast_expr_op_address_of::ast_expr_op_address_of(const ast_expr_op_address_of
&obj
)
6096 ast_expr_op_address_of
&ast_expr_op_address_of::operator=(ast_expr_op_address_of obj
) {
6097 std::swap(this->ptr
, obj
.ptr
);
6101 isl::checked::ctx
ast_expr_op_address_of::ctx() const {
6102 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6105 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_address_of
&obj
)
6107 char *str
= isl_ast_expr_to_str(obj
.get());
6109 os
.setstate(std::ios_base::badbit
);
6117 // implementations for isl::ast_expr_op_and
6118 ast_expr_op_and::ast_expr_op_and(__isl_take isl_ast_expr
*ptr
)
6119 : ast_expr_op(ptr
) {}
6121 ast_expr_op_and::ast_expr_op_and()
6124 ast_expr_op_and::ast_expr_op_and(const ast_expr_op_and
&obj
)
6129 ast_expr_op_and
&ast_expr_op_and::operator=(ast_expr_op_and obj
) {
6130 std::swap(this->ptr
, obj
.ptr
);
6134 isl::checked::ctx
ast_expr_op_and::ctx() const {
6135 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6138 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_and
&obj
)
6140 char *str
= isl_ast_expr_to_str(obj
.get());
6142 os
.setstate(std::ios_base::badbit
);
6150 // implementations for isl::ast_expr_op_and_then
6151 ast_expr_op_and_then::ast_expr_op_and_then(__isl_take isl_ast_expr
*ptr
)
6152 : ast_expr_op(ptr
) {}
6154 ast_expr_op_and_then::ast_expr_op_and_then()
6157 ast_expr_op_and_then::ast_expr_op_and_then(const ast_expr_op_and_then
&obj
)
6162 ast_expr_op_and_then
&ast_expr_op_and_then::operator=(ast_expr_op_and_then obj
) {
6163 std::swap(this->ptr
, obj
.ptr
);
6167 isl::checked::ctx
ast_expr_op_and_then::ctx() const {
6168 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6171 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_and_then
&obj
)
6173 char *str
= isl_ast_expr_to_str(obj
.get());
6175 os
.setstate(std::ios_base::badbit
);
6183 // implementations for isl::ast_expr_op_call
6184 ast_expr_op_call::ast_expr_op_call(__isl_take isl_ast_expr
*ptr
)
6185 : ast_expr_op(ptr
) {}
6187 ast_expr_op_call::ast_expr_op_call()
6190 ast_expr_op_call::ast_expr_op_call(const ast_expr_op_call
&obj
)
6195 ast_expr_op_call
&ast_expr_op_call::operator=(ast_expr_op_call obj
) {
6196 std::swap(this->ptr
, obj
.ptr
);
6200 isl::checked::ctx
ast_expr_op_call::ctx() const {
6201 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6204 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_call
&obj
)
6206 char *str
= isl_ast_expr_to_str(obj
.get());
6208 os
.setstate(std::ios_base::badbit
);
6216 // implementations for isl::ast_expr_op_cond
6217 ast_expr_op_cond::ast_expr_op_cond(__isl_take isl_ast_expr
*ptr
)
6218 : ast_expr_op(ptr
) {}
6220 ast_expr_op_cond::ast_expr_op_cond()
6223 ast_expr_op_cond::ast_expr_op_cond(const ast_expr_op_cond
&obj
)
6228 ast_expr_op_cond
&ast_expr_op_cond::operator=(ast_expr_op_cond obj
) {
6229 std::swap(this->ptr
, obj
.ptr
);
6233 isl::checked::ctx
ast_expr_op_cond::ctx() const {
6234 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6237 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_cond
&obj
)
6239 char *str
= isl_ast_expr_to_str(obj
.get());
6241 os
.setstate(std::ios_base::badbit
);
6249 // implementations for isl::ast_expr_op_div
6250 ast_expr_op_div::ast_expr_op_div(__isl_take isl_ast_expr
*ptr
)
6251 : ast_expr_op(ptr
) {}
6253 ast_expr_op_div::ast_expr_op_div()
6256 ast_expr_op_div::ast_expr_op_div(const ast_expr_op_div
&obj
)
6261 ast_expr_op_div
&ast_expr_op_div::operator=(ast_expr_op_div obj
) {
6262 std::swap(this->ptr
, obj
.ptr
);
6266 isl::checked::ctx
ast_expr_op_div::ctx() const {
6267 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6270 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_div
&obj
)
6272 char *str
= isl_ast_expr_to_str(obj
.get());
6274 os
.setstate(std::ios_base::badbit
);
6282 // implementations for isl::ast_expr_op_eq
6283 ast_expr_op_eq::ast_expr_op_eq(__isl_take isl_ast_expr
*ptr
)
6284 : ast_expr_op(ptr
) {}
6286 ast_expr_op_eq::ast_expr_op_eq()
6289 ast_expr_op_eq::ast_expr_op_eq(const ast_expr_op_eq
&obj
)
6294 ast_expr_op_eq
&ast_expr_op_eq::operator=(ast_expr_op_eq obj
) {
6295 std::swap(this->ptr
, obj
.ptr
);
6299 isl::checked::ctx
ast_expr_op_eq::ctx() const {
6300 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6303 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_eq
&obj
)
6305 char *str
= isl_ast_expr_to_str(obj
.get());
6307 os
.setstate(std::ios_base::badbit
);
6315 // implementations for isl::ast_expr_op_fdiv_q
6316 ast_expr_op_fdiv_q::ast_expr_op_fdiv_q(__isl_take isl_ast_expr
*ptr
)
6317 : ast_expr_op(ptr
) {}
6319 ast_expr_op_fdiv_q::ast_expr_op_fdiv_q()
6322 ast_expr_op_fdiv_q::ast_expr_op_fdiv_q(const ast_expr_op_fdiv_q
&obj
)
6327 ast_expr_op_fdiv_q
&ast_expr_op_fdiv_q::operator=(ast_expr_op_fdiv_q obj
) {
6328 std::swap(this->ptr
, obj
.ptr
);
6332 isl::checked::ctx
ast_expr_op_fdiv_q::ctx() const {
6333 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6336 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_fdiv_q
&obj
)
6338 char *str
= isl_ast_expr_to_str(obj
.get());
6340 os
.setstate(std::ios_base::badbit
);
6348 // implementations for isl::ast_expr_op_ge
6349 ast_expr_op_ge::ast_expr_op_ge(__isl_take isl_ast_expr
*ptr
)
6350 : ast_expr_op(ptr
) {}
6352 ast_expr_op_ge::ast_expr_op_ge()
6355 ast_expr_op_ge::ast_expr_op_ge(const ast_expr_op_ge
&obj
)
6360 ast_expr_op_ge
&ast_expr_op_ge::operator=(ast_expr_op_ge obj
) {
6361 std::swap(this->ptr
, obj
.ptr
);
6365 isl::checked::ctx
ast_expr_op_ge::ctx() const {
6366 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6369 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_ge
&obj
)
6371 char *str
= isl_ast_expr_to_str(obj
.get());
6373 os
.setstate(std::ios_base::badbit
);
6381 // implementations for isl::ast_expr_op_gt
6382 ast_expr_op_gt::ast_expr_op_gt(__isl_take isl_ast_expr
*ptr
)
6383 : ast_expr_op(ptr
) {}
6385 ast_expr_op_gt::ast_expr_op_gt()
6388 ast_expr_op_gt::ast_expr_op_gt(const ast_expr_op_gt
&obj
)
6393 ast_expr_op_gt
&ast_expr_op_gt::operator=(ast_expr_op_gt obj
) {
6394 std::swap(this->ptr
, obj
.ptr
);
6398 isl::checked::ctx
ast_expr_op_gt::ctx() const {
6399 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6402 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_gt
&obj
)
6404 char *str
= isl_ast_expr_to_str(obj
.get());
6406 os
.setstate(std::ios_base::badbit
);
6414 // implementations for isl::ast_expr_op_le
6415 ast_expr_op_le::ast_expr_op_le(__isl_take isl_ast_expr
*ptr
)
6416 : ast_expr_op(ptr
) {}
6418 ast_expr_op_le::ast_expr_op_le()
6421 ast_expr_op_le::ast_expr_op_le(const ast_expr_op_le
&obj
)
6426 ast_expr_op_le
&ast_expr_op_le::operator=(ast_expr_op_le obj
) {
6427 std::swap(this->ptr
, obj
.ptr
);
6431 isl::checked::ctx
ast_expr_op_le::ctx() const {
6432 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6435 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_le
&obj
)
6437 char *str
= isl_ast_expr_to_str(obj
.get());
6439 os
.setstate(std::ios_base::badbit
);
6447 // implementations for isl::ast_expr_op_lt
6448 ast_expr_op_lt::ast_expr_op_lt(__isl_take isl_ast_expr
*ptr
)
6449 : ast_expr_op(ptr
) {}
6451 ast_expr_op_lt::ast_expr_op_lt()
6454 ast_expr_op_lt::ast_expr_op_lt(const ast_expr_op_lt
&obj
)
6459 ast_expr_op_lt
&ast_expr_op_lt::operator=(ast_expr_op_lt obj
) {
6460 std::swap(this->ptr
, obj
.ptr
);
6464 isl::checked::ctx
ast_expr_op_lt::ctx() const {
6465 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6468 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_lt
&obj
)
6470 char *str
= isl_ast_expr_to_str(obj
.get());
6472 os
.setstate(std::ios_base::badbit
);
6480 // implementations for isl::ast_expr_op_max
6481 ast_expr_op_max::ast_expr_op_max(__isl_take isl_ast_expr
*ptr
)
6482 : ast_expr_op(ptr
) {}
6484 ast_expr_op_max::ast_expr_op_max()
6487 ast_expr_op_max::ast_expr_op_max(const ast_expr_op_max
&obj
)
6492 ast_expr_op_max
&ast_expr_op_max::operator=(ast_expr_op_max obj
) {
6493 std::swap(this->ptr
, obj
.ptr
);
6497 isl::checked::ctx
ast_expr_op_max::ctx() const {
6498 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6501 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_max
&obj
)
6503 char *str
= isl_ast_expr_to_str(obj
.get());
6505 os
.setstate(std::ios_base::badbit
);
6513 // implementations for isl::ast_expr_op_member
6514 ast_expr_op_member::ast_expr_op_member(__isl_take isl_ast_expr
*ptr
)
6515 : ast_expr_op(ptr
) {}
6517 ast_expr_op_member::ast_expr_op_member()
6520 ast_expr_op_member::ast_expr_op_member(const ast_expr_op_member
&obj
)
6525 ast_expr_op_member
&ast_expr_op_member::operator=(ast_expr_op_member obj
) {
6526 std::swap(this->ptr
, obj
.ptr
);
6530 isl::checked::ctx
ast_expr_op_member::ctx() const {
6531 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6534 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_member
&obj
)
6536 char *str
= isl_ast_expr_to_str(obj
.get());
6538 os
.setstate(std::ios_base::badbit
);
6546 // implementations for isl::ast_expr_op_min
6547 ast_expr_op_min::ast_expr_op_min(__isl_take isl_ast_expr
*ptr
)
6548 : ast_expr_op(ptr
) {}
6550 ast_expr_op_min::ast_expr_op_min()
6553 ast_expr_op_min::ast_expr_op_min(const ast_expr_op_min
&obj
)
6558 ast_expr_op_min
&ast_expr_op_min::operator=(ast_expr_op_min obj
) {
6559 std::swap(this->ptr
, obj
.ptr
);
6563 isl::checked::ctx
ast_expr_op_min::ctx() const {
6564 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6567 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_min
&obj
)
6569 char *str
= isl_ast_expr_to_str(obj
.get());
6571 os
.setstate(std::ios_base::badbit
);
6579 // implementations for isl::ast_expr_op_minus
6580 ast_expr_op_minus::ast_expr_op_minus(__isl_take isl_ast_expr
*ptr
)
6581 : ast_expr_op(ptr
) {}
6583 ast_expr_op_minus::ast_expr_op_minus()
6586 ast_expr_op_minus::ast_expr_op_minus(const ast_expr_op_minus
&obj
)
6591 ast_expr_op_minus
&ast_expr_op_minus::operator=(ast_expr_op_minus obj
) {
6592 std::swap(this->ptr
, obj
.ptr
);
6596 isl::checked::ctx
ast_expr_op_minus::ctx() const {
6597 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6600 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_minus
&obj
)
6602 char *str
= isl_ast_expr_to_str(obj
.get());
6604 os
.setstate(std::ios_base::badbit
);
6612 // implementations for isl::ast_expr_op_mul
6613 ast_expr_op_mul::ast_expr_op_mul(__isl_take isl_ast_expr
*ptr
)
6614 : ast_expr_op(ptr
) {}
6616 ast_expr_op_mul::ast_expr_op_mul()
6619 ast_expr_op_mul::ast_expr_op_mul(const ast_expr_op_mul
&obj
)
6624 ast_expr_op_mul
&ast_expr_op_mul::operator=(ast_expr_op_mul obj
) {
6625 std::swap(this->ptr
, obj
.ptr
);
6629 isl::checked::ctx
ast_expr_op_mul::ctx() const {
6630 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6633 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_mul
&obj
)
6635 char *str
= isl_ast_expr_to_str(obj
.get());
6637 os
.setstate(std::ios_base::badbit
);
6645 // implementations for isl::ast_expr_op_or
6646 ast_expr_op_or::ast_expr_op_or(__isl_take isl_ast_expr
*ptr
)
6647 : ast_expr_op(ptr
) {}
6649 ast_expr_op_or::ast_expr_op_or()
6652 ast_expr_op_or::ast_expr_op_or(const ast_expr_op_or
&obj
)
6657 ast_expr_op_or
&ast_expr_op_or::operator=(ast_expr_op_or obj
) {
6658 std::swap(this->ptr
, obj
.ptr
);
6662 isl::checked::ctx
ast_expr_op_or::ctx() const {
6663 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6666 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_or
&obj
)
6668 char *str
= isl_ast_expr_to_str(obj
.get());
6670 os
.setstate(std::ios_base::badbit
);
6678 // implementations for isl::ast_expr_op_or_else
6679 ast_expr_op_or_else::ast_expr_op_or_else(__isl_take isl_ast_expr
*ptr
)
6680 : ast_expr_op(ptr
) {}
6682 ast_expr_op_or_else::ast_expr_op_or_else()
6685 ast_expr_op_or_else::ast_expr_op_or_else(const ast_expr_op_or_else
&obj
)
6690 ast_expr_op_or_else
&ast_expr_op_or_else::operator=(ast_expr_op_or_else obj
) {
6691 std::swap(this->ptr
, obj
.ptr
);
6695 isl::checked::ctx
ast_expr_op_or_else::ctx() const {
6696 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6699 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_or_else
&obj
)
6701 char *str
= isl_ast_expr_to_str(obj
.get());
6703 os
.setstate(std::ios_base::badbit
);
6711 // implementations for isl::ast_expr_op_pdiv_q
6712 ast_expr_op_pdiv_q::ast_expr_op_pdiv_q(__isl_take isl_ast_expr
*ptr
)
6713 : ast_expr_op(ptr
) {}
6715 ast_expr_op_pdiv_q::ast_expr_op_pdiv_q()
6718 ast_expr_op_pdiv_q::ast_expr_op_pdiv_q(const ast_expr_op_pdiv_q
&obj
)
6723 ast_expr_op_pdiv_q
&ast_expr_op_pdiv_q::operator=(ast_expr_op_pdiv_q obj
) {
6724 std::swap(this->ptr
, obj
.ptr
);
6728 isl::checked::ctx
ast_expr_op_pdiv_q::ctx() const {
6729 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6732 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_pdiv_q
&obj
)
6734 char *str
= isl_ast_expr_to_str(obj
.get());
6736 os
.setstate(std::ios_base::badbit
);
6744 // implementations for isl::ast_expr_op_pdiv_r
6745 ast_expr_op_pdiv_r::ast_expr_op_pdiv_r(__isl_take isl_ast_expr
*ptr
)
6746 : ast_expr_op(ptr
) {}
6748 ast_expr_op_pdiv_r::ast_expr_op_pdiv_r()
6751 ast_expr_op_pdiv_r::ast_expr_op_pdiv_r(const ast_expr_op_pdiv_r
&obj
)
6756 ast_expr_op_pdiv_r
&ast_expr_op_pdiv_r::operator=(ast_expr_op_pdiv_r obj
) {
6757 std::swap(this->ptr
, obj
.ptr
);
6761 isl::checked::ctx
ast_expr_op_pdiv_r::ctx() const {
6762 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6765 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_pdiv_r
&obj
)
6767 char *str
= isl_ast_expr_to_str(obj
.get());
6769 os
.setstate(std::ios_base::badbit
);
6777 // implementations for isl::ast_expr_op_select
6778 ast_expr_op_select::ast_expr_op_select(__isl_take isl_ast_expr
*ptr
)
6779 : ast_expr_op(ptr
) {}
6781 ast_expr_op_select::ast_expr_op_select()
6784 ast_expr_op_select::ast_expr_op_select(const ast_expr_op_select
&obj
)
6789 ast_expr_op_select
&ast_expr_op_select::operator=(ast_expr_op_select obj
) {
6790 std::swap(this->ptr
, obj
.ptr
);
6794 isl::checked::ctx
ast_expr_op_select::ctx() const {
6795 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6798 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_select
&obj
)
6800 char *str
= isl_ast_expr_to_str(obj
.get());
6802 os
.setstate(std::ios_base::badbit
);
6810 // implementations for isl::ast_expr_op_sub
6811 ast_expr_op_sub::ast_expr_op_sub(__isl_take isl_ast_expr
*ptr
)
6812 : ast_expr_op(ptr
) {}
6814 ast_expr_op_sub::ast_expr_op_sub()
6817 ast_expr_op_sub::ast_expr_op_sub(const ast_expr_op_sub
&obj
)
6822 ast_expr_op_sub
&ast_expr_op_sub::operator=(ast_expr_op_sub obj
) {
6823 std::swap(this->ptr
, obj
.ptr
);
6827 isl::checked::ctx
ast_expr_op_sub::ctx() const {
6828 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6831 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_sub
&obj
)
6833 char *str
= isl_ast_expr_to_str(obj
.get());
6835 os
.setstate(std::ios_base::badbit
);
6843 // implementations for isl::ast_expr_op_zdiv_r
6844 ast_expr_op_zdiv_r::ast_expr_op_zdiv_r(__isl_take isl_ast_expr
*ptr
)
6845 : ast_expr_op(ptr
) {}
6847 ast_expr_op_zdiv_r::ast_expr_op_zdiv_r()
6850 ast_expr_op_zdiv_r::ast_expr_op_zdiv_r(const ast_expr_op_zdiv_r
&obj
)
6855 ast_expr_op_zdiv_r
&ast_expr_op_zdiv_r::operator=(ast_expr_op_zdiv_r obj
) {
6856 std::swap(this->ptr
, obj
.ptr
);
6860 isl::checked::ctx
ast_expr_op_zdiv_r::ctx() const {
6861 return isl::checked::ctx(isl_ast_expr_get_ctx(ptr
));
6864 inline std::ostream
&operator<<(std::ostream
&os
, const ast_expr_op_zdiv_r
&obj
)
6866 char *str
= isl_ast_expr_to_str(obj
.get());
6868 os
.setstate(std::ios_base::badbit
);
6876 // implementations for isl::ast_node
6877 ast_node
manage(__isl_take isl_ast_node
*ptr
) {
6878 return ast_node(ptr
);
6880 ast_node
manage_copy(__isl_keep isl_ast_node
*ptr
) {
6881 ptr
= isl_ast_node_copy(ptr
);
6882 return ast_node(ptr
);
6885 ast_node::ast_node(__isl_take isl_ast_node
*ptr
)
6888 ast_node::ast_node()
6891 ast_node::ast_node(const ast_node
&obj
)
6897 ast_node
&ast_node::operator=(ast_node obj
) {
6898 std::swap(this->ptr
, obj
.ptr
);
6902 ast_node::~ast_node() {
6904 isl_ast_node_free(ptr
);
6907 __isl_give isl_ast_node
*ast_node::copy() const & {
6908 return isl_ast_node_copy(ptr
);
6911 __isl_keep isl_ast_node
*ast_node::get() const {
6915 __isl_give isl_ast_node
*ast_node::release() {
6916 isl_ast_node
*tmp
= ptr
;
6921 bool ast_node::is_null() const {
6922 return ptr
== nullptr;
6925 template <typename T
, typename
>
6926 boolean
ast_node::isa_type(T subtype
) const
6930 return isl_ast_node_get_type(get()) == subtype
;
6933 boolean
ast_node::isa() const
6935 return isa_type
<decltype(T::type
)>(T::type
);
6938 T
ast_node::as() const
6940 if (isa
<T
>().is_false())
6941 isl_die(ctx().get(), isl_error_invalid
, "not an object of the requested subtype", return T());
6945 isl::checked::ctx
ast_node::ctx() const {
6946 return isl::checked::ctx(isl_ast_node_get_ctx(ptr
));
6949 isl::checked::ast_node
ast_node::map_descendant_bottom_up(const std::function
<isl::checked::ast_node(isl::checked::ast_node
)> &fn
) const
6952 std::function
<isl::checked::ast_node(isl::checked::ast_node
)> func
;
6954 auto fn_lambda
= [](isl_ast_node
*arg_0
, void *arg_1
) -> isl_ast_node
* {
6955 auto *data
= static_cast<struct fn_data
*>(arg_1
);
6956 auto ret
= (data
->func
)(manage(arg_0
));
6957 return ret
.release();
6959 auto res
= isl_ast_node_map_descendant_bottom_up(copy(), fn_lambda
, &fn_data
);
6963 std::string
ast_node::to_C_str() const
6965 auto res
= isl_ast_node_to_C_str(get());
6966 std::string
tmp(res
);
6971 isl::checked::ast_node_list
ast_node::to_list() const
6973 auto res
= isl_ast_node_to_list(copy());
6977 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node
&obj
)
6979 char *str
= isl_ast_node_to_str(obj
.get());
6981 os
.setstate(std::ios_base::badbit
);
6989 // implementations for isl::ast_node_block
6990 ast_node_block::ast_node_block(__isl_take isl_ast_node
*ptr
)
6993 ast_node_block::ast_node_block()
6996 ast_node_block::ast_node_block(const ast_node_block
&obj
)
7001 ast_node_block::ast_node_block(isl::checked::ast_node_list list
)
7003 auto res
= isl_ast_node_block_from_children(list
.release());
7007 ast_node_block
&ast_node_block::operator=(ast_node_block obj
) {
7008 std::swap(this->ptr
, obj
.ptr
);
7012 isl::checked::ctx
ast_node_block::ctx() const {
7013 return isl::checked::ctx(isl_ast_node_get_ctx(ptr
));
7016 isl::checked::ast_node_list
ast_node_block::children() const
7018 auto res
= isl_ast_node_block_get_children(get());
7022 isl::checked::ast_node_list
ast_node_block::get_children() const
7027 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node_block
&obj
)
7029 char *str
= isl_ast_node_to_str(obj
.get());
7031 os
.setstate(std::ios_base::badbit
);
7039 // implementations for isl::ast_node_for
7040 ast_node_for::ast_node_for(__isl_take isl_ast_node
*ptr
)
7043 ast_node_for::ast_node_for()
7046 ast_node_for::ast_node_for(const ast_node_for
&obj
)
7051 ast_node_for
&ast_node_for::operator=(ast_node_for obj
) {
7052 std::swap(this->ptr
, obj
.ptr
);
7056 isl::checked::ctx
ast_node_for::ctx() const {
7057 return isl::checked::ctx(isl_ast_node_get_ctx(ptr
));
7060 isl::checked::ast_node
ast_node_for::body() const
7062 auto res
= isl_ast_node_for_get_body(get());
7066 isl::checked::ast_node
ast_node_for::get_body() const
7071 isl::checked::ast_expr
ast_node_for::cond() const
7073 auto res
= isl_ast_node_for_get_cond(get());
7077 isl::checked::ast_expr
ast_node_for::get_cond() const
7082 isl::checked::ast_expr
ast_node_for::inc() const
7084 auto res
= isl_ast_node_for_get_inc(get());
7088 isl::checked::ast_expr
ast_node_for::get_inc() const
7093 isl::checked::ast_expr
ast_node_for::init() const
7095 auto res
= isl_ast_node_for_get_init(get());
7099 isl::checked::ast_expr
ast_node_for::get_init() const
7104 boolean
ast_node_for::is_degenerate() const
7106 auto res
= isl_ast_node_for_is_degenerate(get());
7110 isl::checked::ast_expr
ast_node_for::iterator() const
7112 auto res
= isl_ast_node_for_get_iterator(get());
7116 isl::checked::ast_expr
ast_node_for::get_iterator() const
7121 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node_for
&obj
)
7123 char *str
= isl_ast_node_to_str(obj
.get());
7125 os
.setstate(std::ios_base::badbit
);
7133 // implementations for isl::ast_node_if
7134 ast_node_if::ast_node_if(__isl_take isl_ast_node
*ptr
)
7137 ast_node_if::ast_node_if()
7140 ast_node_if::ast_node_if(const ast_node_if
&obj
)
7145 ast_node_if
&ast_node_if::operator=(ast_node_if obj
) {
7146 std::swap(this->ptr
, obj
.ptr
);
7150 isl::checked::ctx
ast_node_if::ctx() const {
7151 return isl::checked::ctx(isl_ast_node_get_ctx(ptr
));
7154 isl::checked::ast_expr
ast_node_if::cond() const
7156 auto res
= isl_ast_node_if_get_cond(get());
7160 isl::checked::ast_expr
ast_node_if::get_cond() const
7165 isl::checked::ast_node
ast_node_if::else_node() const
7167 auto res
= isl_ast_node_if_get_else_node(get());
7171 isl::checked::ast_node
ast_node_if::get_else_node() const
7176 boolean
ast_node_if::has_else_node() const
7178 auto res
= isl_ast_node_if_has_else_node(get());
7182 isl::checked::ast_node
ast_node_if::then_node() const
7184 auto res
= isl_ast_node_if_get_then_node(get());
7188 isl::checked::ast_node
ast_node_if::get_then_node() const
7193 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node_if
&obj
)
7195 char *str
= isl_ast_node_to_str(obj
.get());
7197 os
.setstate(std::ios_base::badbit
);
7205 // implementations for isl::ast_node_list
7206 ast_node_list
manage(__isl_take isl_ast_node_list
*ptr
) {
7207 return ast_node_list(ptr
);
7209 ast_node_list
manage_copy(__isl_keep isl_ast_node_list
*ptr
) {
7210 ptr
= isl_ast_node_list_copy(ptr
);
7211 return ast_node_list(ptr
);
7214 ast_node_list::ast_node_list(__isl_take isl_ast_node_list
*ptr
)
7217 ast_node_list::ast_node_list()
7220 ast_node_list::ast_node_list(const ast_node_list
&obj
)
7226 ast_node_list::ast_node_list(isl::checked::ctx ctx
, int n
)
7228 auto res
= isl_ast_node_list_alloc(ctx
.release(), n
);
7232 ast_node_list::ast_node_list(isl::checked::ast_node el
)
7234 auto res
= isl_ast_node_list_from_ast_node(el
.release());
7238 ast_node_list
&ast_node_list::operator=(ast_node_list obj
) {
7239 std::swap(this->ptr
, obj
.ptr
);
7243 ast_node_list::~ast_node_list() {
7245 isl_ast_node_list_free(ptr
);
7248 __isl_give isl_ast_node_list
*ast_node_list::copy() const & {
7249 return isl_ast_node_list_copy(ptr
);
7252 __isl_keep isl_ast_node_list
*ast_node_list::get() const {
7256 __isl_give isl_ast_node_list
*ast_node_list::release() {
7257 isl_ast_node_list
*tmp
= ptr
;
7262 bool ast_node_list::is_null() const {
7263 return ptr
== nullptr;
7266 isl::checked::ctx
ast_node_list::ctx() const {
7267 return isl::checked::ctx(isl_ast_node_list_get_ctx(ptr
));
7270 isl::checked::ast_node_list
ast_node_list::add(isl::checked::ast_node el
) const
7272 auto res
= isl_ast_node_list_add(copy(), el
.release());
7276 isl::checked::ast_node
ast_node_list::at(int index
) const
7278 auto res
= isl_ast_node_list_get_at(get(), index
);
7282 isl::checked::ast_node
ast_node_list::get_at(int index
) const
7287 isl::checked::ast_node_list
ast_node_list::clear() const
7289 auto res
= isl_ast_node_list_clear(copy());
7293 isl::checked::ast_node_list
ast_node_list::concat(isl::checked::ast_node_list list2
) const
7295 auto res
= isl_ast_node_list_concat(copy(), list2
.release());
7299 isl::checked::ast_node_list
ast_node_list::drop(unsigned int first
, unsigned int n
) const
7301 auto res
= isl_ast_node_list_drop(copy(), first
, n
);
7305 stat
ast_node_list::foreach(const std::function
<stat(isl::checked::ast_node
)> &fn
) const
7308 std::function
<stat(isl::checked::ast_node
)> func
;
7310 auto fn_lambda
= [](isl_ast_node
*arg_0
, void *arg_1
) -> isl_stat
{
7311 auto *data
= static_cast<struct fn_data
*>(arg_1
);
7312 auto ret
= (data
->func
)(manage(arg_0
));
7313 return ret
.release();
7315 auto res
= isl_ast_node_list_foreach(get(), fn_lambda
, &fn_data
);
7319 stat
ast_node_list::foreach_scc(const std::function
<boolean(isl::checked::ast_node
, isl::checked::ast_node
)> &follows
, const std::function
<stat(isl::checked::ast_node_list
)> &fn
) const
7321 struct follows_data
{
7322 std::function
<boolean(isl::checked::ast_node
, isl::checked::ast_node
)> func
;
7323 } follows_data
= { follows
};
7324 auto follows_lambda
= [](isl_ast_node
*arg_0
, isl_ast_node
*arg_1
, void *arg_2
) -> isl_bool
{
7325 auto *data
= static_cast<struct follows_data
*>(arg_2
);
7326 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
7327 return ret
.release();
7330 std::function
<stat(isl::checked::ast_node_list
)> func
;
7332 auto fn_lambda
= [](isl_ast_node_list
*arg_0
, void *arg_1
) -> isl_stat
{
7333 auto *data
= static_cast<struct fn_data
*>(arg_1
);
7334 auto ret
= (data
->func
)(manage(arg_0
));
7335 return ret
.release();
7337 auto res
= isl_ast_node_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
7341 isl::checked::ast_node_list
ast_node_list::insert(unsigned int pos
, isl::checked::ast_node el
) const
7343 auto res
= isl_ast_node_list_insert(copy(), pos
, el
.release());
7347 isl::checked::ast_node_list
ast_node_list::set_at(int index
, isl::checked::ast_node el
) const
7349 auto res
= isl_ast_node_list_set_at(copy(), index
, el
.release());
7353 class size
ast_node_list::size() const
7355 auto res
= isl_ast_node_list_size(get());
7359 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node_list
&obj
)
7361 char *str
= isl_ast_node_list_to_str(obj
.get());
7363 os
.setstate(std::ios_base::badbit
);
7371 // implementations for isl::ast_node_mark
7372 ast_node_mark::ast_node_mark(__isl_take isl_ast_node
*ptr
)
7375 ast_node_mark::ast_node_mark()
7378 ast_node_mark::ast_node_mark(const ast_node_mark
&obj
)
7383 ast_node_mark
&ast_node_mark::operator=(ast_node_mark obj
) {
7384 std::swap(this->ptr
, obj
.ptr
);
7388 isl::checked::ctx
ast_node_mark::ctx() const {
7389 return isl::checked::ctx(isl_ast_node_get_ctx(ptr
));
7392 isl::checked::id
ast_node_mark::id() const
7394 auto res
= isl_ast_node_mark_get_id(get());
7398 isl::checked::id
ast_node_mark::get_id() const
7403 isl::checked::ast_node
ast_node_mark::node() const
7405 auto res
= isl_ast_node_mark_get_node(get());
7409 isl::checked::ast_node
ast_node_mark::get_node() const
7414 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node_mark
&obj
)
7416 char *str
= isl_ast_node_to_str(obj
.get());
7418 os
.setstate(std::ios_base::badbit
);
7426 // implementations for isl::ast_node_user
7427 ast_node_user::ast_node_user(__isl_take isl_ast_node
*ptr
)
7430 ast_node_user::ast_node_user()
7433 ast_node_user::ast_node_user(const ast_node_user
&obj
)
7438 ast_node_user::ast_node_user(isl::checked::ast_expr expr
)
7440 auto res
= isl_ast_node_user_from_expr(expr
.release());
7444 ast_node_user
&ast_node_user::operator=(ast_node_user obj
) {
7445 std::swap(this->ptr
, obj
.ptr
);
7449 isl::checked::ctx
ast_node_user::ctx() const {
7450 return isl::checked::ctx(isl_ast_node_get_ctx(ptr
));
7453 isl::checked::ast_expr
ast_node_user::expr() const
7455 auto res
= isl_ast_node_user_get_expr(get());
7459 isl::checked::ast_expr
ast_node_user::get_expr() const
7464 inline std::ostream
&operator<<(std::ostream
&os
, const ast_node_user
&obj
)
7466 char *str
= isl_ast_node_to_str(obj
.get());
7468 os
.setstate(std::ios_base::badbit
);
7476 // implementations for isl::basic_map
7477 basic_map
manage(__isl_take isl_basic_map
*ptr
) {
7478 return basic_map(ptr
);
7480 basic_map
manage_copy(__isl_keep isl_basic_map
*ptr
) {
7481 ptr
= isl_basic_map_copy(ptr
);
7482 return basic_map(ptr
);
7485 basic_map::basic_map(__isl_take isl_basic_map
*ptr
)
7488 basic_map::basic_map()
7491 basic_map::basic_map(const basic_map
&obj
)
7497 basic_map::basic_map(isl::checked::ctx ctx
, const std::string
&str
)
7499 auto res
= isl_basic_map_read_from_str(ctx
.release(), str
.c_str());
7503 basic_map
&basic_map::operator=(basic_map obj
) {
7504 std::swap(this->ptr
, obj
.ptr
);
7508 basic_map::~basic_map() {
7510 isl_basic_map_free(ptr
);
7513 __isl_give isl_basic_map
*basic_map::copy() const & {
7514 return isl_basic_map_copy(ptr
);
7517 __isl_keep isl_basic_map
*basic_map::get() const {
7521 __isl_give isl_basic_map
*basic_map::release() {
7522 isl_basic_map
*tmp
= ptr
;
7527 bool basic_map::is_null() const {
7528 return ptr
== nullptr;
7531 isl::checked::ctx
basic_map::ctx() const {
7532 return isl::checked::ctx(isl_basic_map_get_ctx(ptr
));
7535 isl::checked::basic_map
basic_map::affine_hull() const
7537 auto res
= isl_basic_map_affine_hull(copy());
7541 isl::checked::basic_map
basic_map::apply_domain(isl::checked::basic_map bmap2
) const
7543 auto res
= isl_basic_map_apply_domain(copy(), bmap2
.release());
7547 isl::checked::map
basic_map::apply_domain(const isl::checked::map
&map2
) const
7549 return isl::checked::map(*this).apply_domain(map2
);
7552 isl::checked::union_map
basic_map::apply_domain(const isl::checked::union_map
&umap2
) const
7554 return isl::checked::map(*this).apply_domain(umap2
);
7557 isl::checked::basic_map
basic_map::apply_range(isl::checked::basic_map bmap2
) const
7559 auto res
= isl_basic_map_apply_range(copy(), bmap2
.release());
7563 isl::checked::map
basic_map::apply_range(const isl::checked::map
&map2
) const
7565 return isl::checked::map(*this).apply_range(map2
);
7568 isl::checked::union_map
basic_map::apply_range(const isl::checked::union_map
&umap2
) const
7570 return isl::checked::map(*this).apply_range(umap2
);
7573 isl::checked::map
basic_map::as_map() const
7575 return isl::checked::map(*this).as_map();
7578 isl::checked::multi_union_pw_aff
basic_map::as_multi_union_pw_aff() const
7580 return isl::checked::map(*this).as_multi_union_pw_aff();
7583 isl::checked::pw_multi_aff
basic_map::as_pw_multi_aff() const
7585 return isl::checked::map(*this).as_pw_multi_aff();
7588 isl::checked::union_pw_multi_aff
basic_map::as_union_pw_multi_aff() const
7590 return isl::checked::map(*this).as_union_pw_multi_aff();
7593 isl::checked::set
basic_map::bind_domain(const isl::checked::multi_id
&tuple
) const
7595 return isl::checked::map(*this).bind_domain(tuple
);
7598 isl::checked::set
basic_map::bind_range(const isl::checked::multi_id
&tuple
) const
7600 return isl::checked::map(*this).bind_range(tuple
);
7603 isl::checked::map
basic_map::coalesce() const
7605 return isl::checked::map(*this).coalesce();
7608 isl::checked::map
basic_map::complement() const
7610 return isl::checked::map(*this).complement();
7613 isl::checked::union_map
basic_map::compute_divs() const
7615 return isl::checked::map(*this).compute_divs();
7618 isl::checked::map
basic_map::curry() const
7620 return isl::checked::map(*this).curry();
7623 isl::checked::basic_set
basic_map::deltas() const
7625 auto res
= isl_basic_map_deltas(copy());
7629 isl::checked::basic_map
basic_map::detect_equalities() const
7631 auto res
= isl_basic_map_detect_equalities(copy());
7635 isl::checked::set
basic_map::domain() const
7637 return isl::checked::map(*this).domain();
7640 isl::checked::map
basic_map::domain_factor_domain() const
7642 return isl::checked::map(*this).domain_factor_domain();
7645 isl::checked::map
basic_map::domain_factor_range() const
7647 return isl::checked::map(*this).domain_factor_range();
7650 isl::checked::union_map
basic_map::domain_map() const
7652 return isl::checked::map(*this).domain_map();
7655 isl::checked::union_pw_multi_aff
basic_map::domain_map_union_pw_multi_aff() const
7657 return isl::checked::map(*this).domain_map_union_pw_multi_aff();
7660 isl::checked::map
basic_map::domain_product(const isl::checked::map
&map2
) const
7662 return isl::checked::map(*this).domain_product(map2
);
7665 isl::checked::union_map
basic_map::domain_product(const isl::checked::union_map
&umap2
) const
7667 return isl::checked::map(*this).domain_product(umap2
);
7670 isl::checked::map
basic_map::domain_reverse() const
7672 return isl::checked::map(*this).domain_reverse();
7675 class size
basic_map::domain_tuple_dim() const
7677 return isl::checked::map(*this).domain_tuple_dim();
7680 isl::checked::id
basic_map::domain_tuple_id() const
7682 return isl::checked::map(*this).domain_tuple_id();
7685 isl::checked::map
basic_map::drop_unused_params() const
7687 return isl::checked::map(*this).drop_unused_params();
7690 isl::checked::map
basic_map::eq_at(const isl::checked::multi_pw_aff
&mpa
) const
7692 return isl::checked::map(*this).eq_at(mpa
);
7695 isl::checked::union_map
basic_map::eq_at(const isl::checked::multi_union_pw_aff
&mupa
) const
7697 return isl::checked::map(*this).eq_at(mupa
);
7700 boolean
basic_map::every_map(const std::function
<boolean(isl::checked::map
)> &test
) const
7702 return isl::checked::map(*this).every_map(test
);
7705 isl::checked::map
basic_map::extract_map(const isl::checked::space
&space
) const
7707 return isl::checked::map(*this).extract_map(space
);
7710 isl::checked::map
basic_map::factor_domain() const
7712 return isl::checked::map(*this).factor_domain();
7715 isl::checked::map
basic_map::factor_range() const
7717 return isl::checked::map(*this).factor_range();
7720 isl::checked::map
basic_map::fixed_power(const isl::checked::val
&exp
) const
7722 return isl::checked::map(*this).fixed_power(exp
);
7725 isl::checked::map
basic_map::fixed_power(long exp
) const
7727 return this->fixed_power(isl::checked::val(ctx(), exp
));
7730 isl::checked::basic_map
basic_map::flatten() const
7732 auto res
= isl_basic_map_flatten(copy());
7736 isl::checked::basic_map
basic_map::flatten_domain() const
7738 auto res
= isl_basic_map_flatten_domain(copy());
7742 isl::checked::basic_map
basic_map::flatten_range() const
7744 auto res
= isl_basic_map_flatten_range(copy());
7748 stat
basic_map::foreach_basic_map(const std::function
<stat(isl::checked::basic_map
)> &fn
) const
7750 return isl::checked::map(*this).foreach_basic_map(fn
);
7753 stat
basic_map::foreach_map(const std::function
<stat(isl::checked::map
)> &fn
) const
7755 return isl::checked::map(*this).foreach_map(fn
);
7758 isl::checked::basic_map
basic_map::gist(isl::checked::basic_map context
) const
7760 auto res
= isl_basic_map_gist(copy(), context
.release());
7764 isl::checked::map
basic_map::gist(const isl::checked::map
&context
) const
7766 return isl::checked::map(*this).gist(context
);
7769 isl::checked::union_map
basic_map::gist(const isl::checked::union_map
&context
) const
7771 return isl::checked::map(*this).gist(context
);
7774 isl::checked::map
basic_map::gist_domain(const isl::checked::set
&context
) const
7776 return isl::checked::map(*this).gist_domain(context
);
7779 isl::checked::union_map
basic_map::gist_domain(const isl::checked::union_set
&uset
) const
7781 return isl::checked::map(*this).gist_domain(uset
);
7784 isl::checked::map
basic_map::gist_params(const isl::checked::set
&context
) const
7786 return isl::checked::map(*this).gist_params(context
);
7789 isl::checked::union_map
basic_map::gist_range(const isl::checked::union_set
&uset
) const
7791 return isl::checked::map(*this).gist_range(uset
);
7794 boolean
basic_map::has_domain_tuple_id() const
7796 return isl::checked::map(*this).has_domain_tuple_id();
7799 boolean
basic_map::has_range_tuple_id() const
7801 return isl::checked::map(*this).has_range_tuple_id();
7804 isl::checked::basic_map
basic_map::intersect(isl::checked::basic_map bmap2
) const
7806 auto res
= isl_basic_map_intersect(copy(), bmap2
.release());
7810 isl::checked::map
basic_map::intersect(const isl::checked::map
&map2
) const
7812 return isl::checked::map(*this).intersect(map2
);
7815 isl::checked::union_map
basic_map::intersect(const isl::checked::union_map
&umap2
) const
7817 return isl::checked::map(*this).intersect(umap2
);
7820 isl::checked::basic_map
basic_map::intersect_domain(isl::checked::basic_set bset
) const
7822 auto res
= isl_basic_map_intersect_domain(copy(), bset
.release());
7826 isl::checked::map
basic_map::intersect_domain(const isl::checked::set
&set
) const
7828 return isl::checked::map(*this).intersect_domain(set
);
7831 isl::checked::union_map
basic_map::intersect_domain(const isl::checked::space
&space
) const
7833 return isl::checked::map(*this).intersect_domain(space
);
7836 isl::checked::union_map
basic_map::intersect_domain(const isl::checked::union_set
&uset
) const
7838 return isl::checked::map(*this).intersect_domain(uset
);
7841 isl::checked::basic_map
basic_map::intersect_domain(const isl::checked::point
&bset
) const
7843 return this->intersect_domain(isl::checked::basic_set(bset
));
7846 isl::checked::map
basic_map::intersect_domain_factor_domain(const isl::checked::map
&factor
) const
7848 return isl::checked::map(*this).intersect_domain_factor_domain(factor
);
7851 isl::checked::union_map
basic_map::intersect_domain_factor_domain(const isl::checked::union_map
&factor
) const
7853 return isl::checked::map(*this).intersect_domain_factor_domain(factor
);
7856 isl::checked::map
basic_map::intersect_domain_factor_range(const isl::checked::map
&factor
) const
7858 return isl::checked::map(*this).intersect_domain_factor_range(factor
);
7861 isl::checked::union_map
basic_map::intersect_domain_factor_range(const isl::checked::union_map
&factor
) const
7863 return isl::checked::map(*this).intersect_domain_factor_range(factor
);
7866 isl::checked::map
basic_map::intersect_domain_wrapped_domain(const isl::checked::set
&domain
) const
7868 return isl::checked::map(*this).intersect_domain_wrapped_domain(domain
);
7871 isl::checked::union_map
basic_map::intersect_domain_wrapped_domain(const isl::checked::union_set
&domain
) const
7873 return isl::checked::map(*this).intersect_domain_wrapped_domain(domain
);
7876 isl::checked::basic_map
basic_map::intersect_params(isl::checked::basic_set bset
) const
7878 auto res
= isl_basic_map_intersect_params(copy(), bset
.release());
7882 isl::checked::map
basic_map::intersect_params(const isl::checked::set
¶ms
) const
7884 return isl::checked::map(*this).intersect_params(params
);
7887 isl::checked::basic_map
basic_map::intersect_params(const isl::checked::point
&bset
) const
7889 return this->intersect_params(isl::checked::basic_set(bset
));
7892 isl::checked::basic_map
basic_map::intersect_range(isl::checked::basic_set bset
) const
7894 auto res
= isl_basic_map_intersect_range(copy(), bset
.release());
7898 isl::checked::map
basic_map::intersect_range(const isl::checked::set
&set
) const
7900 return isl::checked::map(*this).intersect_range(set
);
7903 isl::checked::union_map
basic_map::intersect_range(const isl::checked::space
&space
) const
7905 return isl::checked::map(*this).intersect_range(space
);
7908 isl::checked::union_map
basic_map::intersect_range(const isl::checked::union_set
&uset
) const
7910 return isl::checked::map(*this).intersect_range(uset
);
7913 isl::checked::basic_map
basic_map::intersect_range(const isl::checked::point
&bset
) const
7915 return this->intersect_range(isl::checked::basic_set(bset
));
7918 isl::checked::map
basic_map::intersect_range_factor_domain(const isl::checked::map
&factor
) const
7920 return isl::checked::map(*this).intersect_range_factor_domain(factor
);
7923 isl::checked::union_map
basic_map::intersect_range_factor_domain(const isl::checked::union_map
&factor
) const
7925 return isl::checked::map(*this).intersect_range_factor_domain(factor
);
7928 isl::checked::map
basic_map::intersect_range_factor_range(const isl::checked::map
&factor
) const
7930 return isl::checked::map(*this).intersect_range_factor_range(factor
);
7933 isl::checked::union_map
basic_map::intersect_range_factor_range(const isl::checked::union_map
&factor
) const
7935 return isl::checked::map(*this).intersect_range_factor_range(factor
);
7938 isl::checked::map
basic_map::intersect_range_wrapped_domain(const isl::checked::set
&domain
) const
7940 return isl::checked::map(*this).intersect_range_wrapped_domain(domain
);
7943 isl::checked::union_map
basic_map::intersect_range_wrapped_domain(const isl::checked::union_set
&domain
) const
7945 return isl::checked::map(*this).intersect_range_wrapped_domain(domain
);
7948 boolean
basic_map::is_bijective() const
7950 return isl::checked::map(*this).is_bijective();
7953 boolean
basic_map::is_disjoint(const isl::checked::map
&map2
) const
7955 return isl::checked::map(*this).is_disjoint(map2
);
7958 boolean
basic_map::is_disjoint(const isl::checked::union_map
&umap2
) const
7960 return isl::checked::map(*this).is_disjoint(umap2
);
7963 boolean
basic_map::is_empty() const
7965 auto res
= isl_basic_map_is_empty(get());
7969 boolean
basic_map::is_equal(const isl::checked::basic_map
&bmap2
) const
7971 auto res
= isl_basic_map_is_equal(get(), bmap2
.get());
7975 boolean
basic_map::is_equal(const isl::checked::map
&map2
) const
7977 return isl::checked::map(*this).is_equal(map2
);
7980 boolean
basic_map::is_equal(const isl::checked::union_map
&umap2
) const
7982 return isl::checked::map(*this).is_equal(umap2
);
7985 boolean
basic_map::is_injective() const
7987 return isl::checked::map(*this).is_injective();
7990 boolean
basic_map::is_single_valued() const
7992 return isl::checked::map(*this).is_single_valued();
7995 boolean
basic_map::is_strict_subset(const isl::checked::map
&map2
) const
7997 return isl::checked::map(*this).is_strict_subset(map2
);
8000 boolean
basic_map::is_strict_subset(const isl::checked::union_map
&umap2
) const
8002 return isl::checked::map(*this).is_strict_subset(umap2
);
8005 boolean
basic_map::is_subset(const isl::checked::basic_map
&bmap2
) const
8007 auto res
= isl_basic_map_is_subset(get(), bmap2
.get());
8011 boolean
basic_map::is_subset(const isl::checked::map
&map2
) const
8013 return isl::checked::map(*this).is_subset(map2
);
8016 boolean
basic_map::is_subset(const isl::checked::union_map
&umap2
) const
8018 return isl::checked::map(*this).is_subset(umap2
);
8021 boolean
basic_map::isa_map() const
8023 return isl::checked::map(*this).isa_map();
8026 isl::checked::map
basic_map::lex_ge_at(const isl::checked::multi_pw_aff
&mpa
) const
8028 return isl::checked::map(*this).lex_ge_at(mpa
);
8031 isl::checked::map
basic_map::lex_gt_at(const isl::checked::multi_pw_aff
&mpa
) const
8033 return isl::checked::map(*this).lex_gt_at(mpa
);
8036 isl::checked::map
basic_map::lex_le_at(const isl::checked::multi_pw_aff
&mpa
) const
8038 return isl::checked::map(*this).lex_le_at(mpa
);
8041 isl::checked::map
basic_map::lex_lt_at(const isl::checked::multi_pw_aff
&mpa
) const
8043 return isl::checked::map(*this).lex_lt_at(mpa
);
8046 isl::checked::map
basic_map::lexmax() const
8048 auto res
= isl_basic_map_lexmax(copy());
8052 isl::checked::pw_multi_aff
basic_map::lexmax_pw_multi_aff() const
8054 return isl::checked::map(*this).lexmax_pw_multi_aff();
8057 isl::checked::map
basic_map::lexmin() const
8059 auto res
= isl_basic_map_lexmin(copy());
8063 isl::checked::pw_multi_aff
basic_map::lexmin_pw_multi_aff() const
8065 return isl::checked::map(*this).lexmin_pw_multi_aff();
8068 isl::checked::map
basic_map::lower_bound(const isl::checked::multi_pw_aff
&lower
) const
8070 return isl::checked::map(*this).lower_bound(lower
);
8073 isl::checked::map_list
basic_map::map_list() const
8075 return isl::checked::map(*this).map_list();
8078 isl::checked::multi_pw_aff
basic_map::max_multi_pw_aff() const
8080 return isl::checked::map(*this).max_multi_pw_aff();
8083 isl::checked::multi_pw_aff
basic_map::min_multi_pw_aff() const
8085 return isl::checked::map(*this).min_multi_pw_aff();
8088 class size
basic_map::n_basic_map() const
8090 return isl::checked::map(*this).n_basic_map();
8093 isl::checked::set
basic_map::params() const
8095 return isl::checked::map(*this).params();
8098 isl::checked::basic_map
basic_map::polyhedral_hull() const
8100 return isl::checked::map(*this).polyhedral_hull();
8103 isl::checked::map
basic_map::preimage_domain(const isl::checked::multi_aff
&ma
) const
8105 return isl::checked::map(*this).preimage_domain(ma
);
8108 isl::checked::map
basic_map::preimage_domain(const isl::checked::multi_pw_aff
&mpa
) const
8110 return isl::checked::map(*this).preimage_domain(mpa
);
8113 isl::checked::map
basic_map::preimage_domain(const isl::checked::pw_multi_aff
&pma
) const
8115 return isl::checked::map(*this).preimage_domain(pma
);
8118 isl::checked::union_map
basic_map::preimage_domain(const isl::checked::union_pw_multi_aff
&upma
) const
8120 return isl::checked::map(*this).preimage_domain(upma
);
8123 isl::checked::map
basic_map::preimage_range(const isl::checked::multi_aff
&ma
) const
8125 return isl::checked::map(*this).preimage_range(ma
);
8128 isl::checked::map
basic_map::preimage_range(const isl::checked::pw_multi_aff
&pma
) const
8130 return isl::checked::map(*this).preimage_range(pma
);
8133 isl::checked::union_map
basic_map::preimage_range(const isl::checked::union_pw_multi_aff
&upma
) const
8135 return isl::checked::map(*this).preimage_range(upma
);
8138 isl::checked::map
basic_map::product(const isl::checked::map
&map2
) const
8140 return isl::checked::map(*this).product(map2
);
8143 isl::checked::union_map
basic_map::product(const isl::checked::union_map
&umap2
) const
8145 return isl::checked::map(*this).product(umap2
);
8148 isl::checked::map
basic_map::project_out_all_params() const
8150 return isl::checked::map(*this).project_out_all_params();
8153 isl::checked::map
basic_map::project_out_param(const isl::checked::id
&id
) const
8155 return isl::checked::map(*this).project_out_param(id
);
8158 isl::checked::map
basic_map::project_out_param(const std::string
&id
) const
8160 return this->project_out_param(isl::checked::id(ctx(), id
));
8163 isl::checked::map
basic_map::project_out_param(const isl::checked::id_list
&list
) const
8165 return isl::checked::map(*this).project_out_param(list
);
8168 isl::checked::set
basic_map::range() const
8170 return isl::checked::map(*this).range();
8173 isl::checked::map
basic_map::range_factor_domain() const
8175 return isl::checked::map(*this).range_factor_domain();
8178 isl::checked::map
basic_map::range_factor_range() const
8180 return isl::checked::map(*this).range_factor_range();
8183 isl::checked::fixed_box
basic_map::range_lattice_tile() const
8185 return isl::checked::map(*this).range_lattice_tile();
8188 isl::checked::union_map
basic_map::range_map() const
8190 return isl::checked::map(*this).range_map();
8193 isl::checked::map
basic_map::range_product(const isl::checked::map
&map2
) const
8195 return isl::checked::map(*this).range_product(map2
);
8198 isl::checked::union_map
basic_map::range_product(const isl::checked::union_map
&umap2
) const
8200 return isl::checked::map(*this).range_product(umap2
);
8203 isl::checked::map
basic_map::range_reverse() const
8205 return isl::checked::map(*this).range_reverse();
8208 isl::checked::fixed_box
basic_map::range_simple_fixed_box_hull() const
8210 return isl::checked::map(*this).range_simple_fixed_box_hull();
8213 class size
basic_map::range_tuple_dim() const
8215 return isl::checked::map(*this).range_tuple_dim();
8218 isl::checked::id
basic_map::range_tuple_id() const
8220 return isl::checked::map(*this).range_tuple_id();
8223 isl::checked::basic_map
basic_map::reverse() const
8225 auto res
= isl_basic_map_reverse(copy());
8229 isl::checked::basic_map
basic_map::sample() const
8231 auto res
= isl_basic_map_sample(copy());
8235 isl::checked::map
basic_map::set_domain_tuple(const isl::checked::id
&id
) const
8237 return isl::checked::map(*this).set_domain_tuple(id
);
8240 isl::checked::map
basic_map::set_domain_tuple(const std::string
&id
) const
8242 return this->set_domain_tuple(isl::checked::id(ctx(), id
));
8245 isl::checked::map
basic_map::set_range_tuple(const isl::checked::id
&id
) const
8247 return isl::checked::map(*this).set_range_tuple(id
);
8250 isl::checked::map
basic_map::set_range_tuple(const std::string
&id
) const
8252 return this->set_range_tuple(isl::checked::id(ctx(), id
));
8255 isl::checked::space
basic_map::space() const
8257 return isl::checked::map(*this).space();
8260 isl::checked::map
basic_map::subtract(const isl::checked::map
&map2
) const
8262 return isl::checked::map(*this).subtract(map2
);
8265 isl::checked::union_map
basic_map::subtract(const isl::checked::union_map
&umap2
) const
8267 return isl::checked::map(*this).subtract(umap2
);
8270 isl::checked::union_map
basic_map::subtract_domain(const isl::checked::union_set
&dom
) const
8272 return isl::checked::map(*this).subtract_domain(dom
);
8275 isl::checked::union_map
basic_map::subtract_range(const isl::checked::union_set
&dom
) const
8277 return isl::checked::map(*this).subtract_range(dom
);
8280 isl::checked::map_list
basic_map::to_list() const
8282 return isl::checked::map(*this).to_list();
8285 isl::checked::union_map
basic_map::to_union_map() const
8287 return isl::checked::map(*this).to_union_map();
8290 isl::checked::map
basic_map::uncurry() const
8292 return isl::checked::map(*this).uncurry();
8295 isl::checked::map
basic_map::unite(isl::checked::basic_map bmap2
) const
8297 auto res
= isl_basic_map_union(copy(), bmap2
.release());
8301 isl::checked::map
basic_map::unite(const isl::checked::map
&map2
) const
8303 return isl::checked::map(*this).unite(map2
);
8306 isl::checked::union_map
basic_map::unite(const isl::checked::union_map
&umap2
) const
8308 return isl::checked::map(*this).unite(umap2
);
8311 isl::checked::basic_map
basic_map::unshifted_simple_hull() const
8313 return isl::checked::map(*this).unshifted_simple_hull();
8316 isl::checked::map
basic_map::upper_bound(const isl::checked::multi_pw_aff
&upper
) const
8318 return isl::checked::map(*this).upper_bound(upper
);
8321 isl::checked::set
basic_map::wrap() const
8323 return isl::checked::map(*this).wrap();
8326 isl::checked::map
basic_map::zip() const
8328 return isl::checked::map(*this).zip();
8331 inline std::ostream
&operator<<(std::ostream
&os
, const basic_map
&obj
)
8333 char *str
= isl_basic_map_to_str(obj
.get());
8335 os
.setstate(std::ios_base::badbit
);
8343 // implementations for isl::basic_set
8344 basic_set
manage(__isl_take isl_basic_set
*ptr
) {
8345 return basic_set(ptr
);
8347 basic_set
manage_copy(__isl_keep isl_basic_set
*ptr
) {
8348 ptr
= isl_basic_set_copy(ptr
);
8349 return basic_set(ptr
);
8352 basic_set::basic_set(__isl_take isl_basic_set
*ptr
)
8355 basic_set::basic_set()
8358 basic_set::basic_set(const basic_set
&obj
)
8364 basic_set::basic_set(isl::checked::point pnt
)
8366 auto res
= isl_basic_set_from_point(pnt
.release());
8370 basic_set::basic_set(isl::checked::ctx ctx
, const std::string
&str
)
8372 auto res
= isl_basic_set_read_from_str(ctx
.release(), str
.c_str());
8376 basic_set
&basic_set::operator=(basic_set obj
) {
8377 std::swap(this->ptr
, obj
.ptr
);
8381 basic_set::~basic_set() {
8383 isl_basic_set_free(ptr
);
8386 __isl_give isl_basic_set
*basic_set::copy() const & {
8387 return isl_basic_set_copy(ptr
);
8390 __isl_keep isl_basic_set
*basic_set::get() const {
8394 __isl_give isl_basic_set
*basic_set::release() {
8395 isl_basic_set
*tmp
= ptr
;
8400 bool basic_set::is_null() const {
8401 return ptr
== nullptr;
8404 isl::checked::ctx
basic_set::ctx() const {
8405 return isl::checked::ctx(isl_basic_set_get_ctx(ptr
));
8408 isl::checked::basic_set
basic_set::affine_hull() const
8410 auto res
= isl_basic_set_affine_hull(copy());
8414 isl::checked::basic_set
basic_set::apply(isl::checked::basic_map bmap
) const
8416 auto res
= isl_basic_set_apply(copy(), bmap
.release());
8420 isl::checked::set
basic_set::apply(const isl::checked::map
&map
) const
8422 return isl::checked::set(*this).apply(map
);
8425 isl::checked::union_set
basic_set::apply(const isl::checked::union_map
&umap
) const
8427 return isl::checked::set(*this).apply(umap
);
8430 isl::checked::pw_multi_aff
basic_set::as_pw_multi_aff() const
8432 return isl::checked::set(*this).as_pw_multi_aff();
8435 isl::checked::set
basic_set::as_set() const
8437 return isl::checked::set(*this).as_set();
8440 isl::checked::set
basic_set::bind(const isl::checked::multi_id
&tuple
) const
8442 return isl::checked::set(*this).bind(tuple
);
8445 isl::checked::set
basic_set::coalesce() const
8447 return isl::checked::set(*this).coalesce();
8450 isl::checked::set
basic_set::complement() const
8452 return isl::checked::set(*this).complement();
8455 isl::checked::union_set
basic_set::compute_divs() const
8457 return isl::checked::set(*this).compute_divs();
8460 isl::checked::basic_set
basic_set::detect_equalities() const
8462 auto res
= isl_basic_set_detect_equalities(copy());
8466 isl::checked::val
basic_set::dim_max_val(int pos
) const
8468 auto res
= isl_basic_set_dim_max_val(copy(), pos
);
8472 isl::checked::val
basic_set::dim_min_val(int pos
) const
8474 return isl::checked::set(*this).dim_min_val(pos
);
8477 isl::checked::set
basic_set::drop_unused_params() const
8479 return isl::checked::set(*this).drop_unused_params();
8482 boolean
basic_set::every_set(const std::function
<boolean(isl::checked::set
)> &test
) const
8484 return isl::checked::set(*this).every_set(test
);
8487 isl::checked::set
basic_set::extract_set(const isl::checked::space
&space
) const
8489 return isl::checked::set(*this).extract_set(space
);
8492 isl::checked::basic_set
basic_set::flatten() const
8494 auto res
= isl_basic_set_flatten(copy());
8498 stat
basic_set::foreach_basic_set(const std::function
<stat(isl::checked::basic_set
)> &fn
) const
8500 return isl::checked::set(*this).foreach_basic_set(fn
);
8503 stat
basic_set::foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const
8505 return isl::checked::set(*this).foreach_point(fn
);
8508 stat
basic_set::foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const
8510 return isl::checked::set(*this).foreach_set(fn
);
8513 isl::checked::basic_set
basic_set::gist(isl::checked::basic_set context
) const
8515 auto res
= isl_basic_set_gist(copy(), context
.release());
8519 isl::checked::set
basic_set::gist(const isl::checked::set
&context
) const
8521 return isl::checked::set(*this).gist(context
);
8524 isl::checked::union_set
basic_set::gist(const isl::checked::union_set
&context
) const
8526 return isl::checked::set(*this).gist(context
);
8529 isl::checked::basic_set
basic_set::gist(const isl::checked::point
&context
) const
8531 return this->gist(isl::checked::basic_set(context
));
8534 isl::checked::set
basic_set::gist_params(const isl::checked::set
&context
) const
8536 return isl::checked::set(*this).gist_params(context
);
8539 isl::checked::map
basic_set::identity() const
8541 return isl::checked::set(*this).identity();
8544 isl::checked::pw_aff
basic_set::indicator_function() const
8546 return isl::checked::set(*this).indicator_function();
8549 isl::checked::map
basic_set::insert_domain(const isl::checked::space
&domain
) const
8551 return isl::checked::set(*this).insert_domain(domain
);
8554 isl::checked::basic_set
basic_set::intersect(isl::checked::basic_set bset2
) const
8556 auto res
= isl_basic_set_intersect(copy(), bset2
.release());
8560 isl::checked::set
basic_set::intersect(const isl::checked::set
&set2
) const
8562 return isl::checked::set(*this).intersect(set2
);
8565 isl::checked::union_set
basic_set::intersect(const isl::checked::union_set
&uset2
) const
8567 return isl::checked::set(*this).intersect(uset2
);
8570 isl::checked::basic_set
basic_set::intersect(const isl::checked::point
&bset2
) const
8572 return this->intersect(isl::checked::basic_set(bset2
));
8575 isl::checked::basic_set
basic_set::intersect_params(isl::checked::basic_set bset2
) const
8577 auto res
= isl_basic_set_intersect_params(copy(), bset2
.release());
8581 isl::checked::set
basic_set::intersect_params(const isl::checked::set
¶ms
) const
8583 return isl::checked::set(*this).intersect_params(params
);
8586 isl::checked::basic_set
basic_set::intersect_params(const isl::checked::point
&bset2
) const
8588 return this->intersect_params(isl::checked::basic_set(bset2
));
8591 boolean
basic_set::involves_locals() const
8593 return isl::checked::set(*this).involves_locals();
8596 boolean
basic_set::is_disjoint(const isl::checked::set
&set2
) const
8598 return isl::checked::set(*this).is_disjoint(set2
);
8601 boolean
basic_set::is_disjoint(const isl::checked::union_set
&uset2
) const
8603 return isl::checked::set(*this).is_disjoint(uset2
);
8606 boolean
basic_set::is_empty() const
8608 auto res
= isl_basic_set_is_empty(get());
8612 boolean
basic_set::is_equal(const isl::checked::basic_set
&bset2
) const
8614 auto res
= isl_basic_set_is_equal(get(), bset2
.get());
8618 boolean
basic_set::is_equal(const isl::checked::set
&set2
) const
8620 return isl::checked::set(*this).is_equal(set2
);
8623 boolean
basic_set::is_equal(const isl::checked::union_set
&uset2
) const
8625 return isl::checked::set(*this).is_equal(uset2
);
8628 boolean
basic_set::is_equal(const isl::checked::point
&bset2
) const
8630 return this->is_equal(isl::checked::basic_set(bset2
));
8633 boolean
basic_set::is_singleton() const
8635 return isl::checked::set(*this).is_singleton();
8638 boolean
basic_set::is_strict_subset(const isl::checked::set
&set2
) const
8640 return isl::checked::set(*this).is_strict_subset(set2
);
8643 boolean
basic_set::is_strict_subset(const isl::checked::union_set
&uset2
) const
8645 return isl::checked::set(*this).is_strict_subset(uset2
);
8648 boolean
basic_set::is_subset(const isl::checked::basic_set
&bset2
) const
8650 auto res
= isl_basic_set_is_subset(get(), bset2
.get());
8654 boolean
basic_set::is_subset(const isl::checked::set
&set2
) const
8656 return isl::checked::set(*this).is_subset(set2
);
8659 boolean
basic_set::is_subset(const isl::checked::union_set
&uset2
) const
8661 return isl::checked::set(*this).is_subset(uset2
);
8664 boolean
basic_set::is_subset(const isl::checked::point
&bset2
) const
8666 return this->is_subset(isl::checked::basic_set(bset2
));
8669 boolean
basic_set::is_wrapping() const
8671 auto res
= isl_basic_set_is_wrapping(get());
8675 boolean
basic_set::isa_set() const
8677 return isl::checked::set(*this).isa_set();
8680 isl::checked::fixed_box
basic_set::lattice_tile() const
8682 return isl::checked::set(*this).lattice_tile();
8685 isl::checked::set
basic_set::lexmax() const
8687 auto res
= isl_basic_set_lexmax(copy());
8691 isl::checked::pw_multi_aff
basic_set::lexmax_pw_multi_aff() const
8693 return isl::checked::set(*this).lexmax_pw_multi_aff();
8696 isl::checked::set
basic_set::lexmin() const
8698 auto res
= isl_basic_set_lexmin(copy());
8702 isl::checked::pw_multi_aff
basic_set::lexmin_pw_multi_aff() const
8704 return isl::checked::set(*this).lexmin_pw_multi_aff();
8707 isl::checked::set
basic_set::lower_bound(const isl::checked::multi_pw_aff
&lower
) const
8709 return isl::checked::set(*this).lower_bound(lower
);
8712 isl::checked::set
basic_set::lower_bound(const isl::checked::multi_val
&lower
) const
8714 return isl::checked::set(*this).lower_bound(lower
);
8717 isl::checked::multi_pw_aff
basic_set::max_multi_pw_aff() const
8719 return isl::checked::set(*this).max_multi_pw_aff();
8722 isl::checked::val
basic_set::max_val(const isl::checked::aff
&obj
) const
8724 return isl::checked::set(*this).max_val(obj
);
8727 isl::checked::multi_pw_aff
basic_set::min_multi_pw_aff() const
8729 return isl::checked::set(*this).min_multi_pw_aff();
8732 isl::checked::val
basic_set::min_val(const isl::checked::aff
&obj
) const
8734 return isl::checked::set(*this).min_val(obj
);
8737 class size
basic_set::n_basic_set() const
8739 return isl::checked::set(*this).n_basic_set();
8742 isl::checked::pw_aff
basic_set::param_pw_aff_on_domain(const isl::checked::id
&id
) const
8744 return isl::checked::set(*this).param_pw_aff_on_domain(id
);
8747 isl::checked::pw_aff
basic_set::param_pw_aff_on_domain(const std::string
&id
) const
8749 return this->param_pw_aff_on_domain(isl::checked::id(ctx(), id
));
8752 isl::checked::basic_set
basic_set::params() const
8754 auto res
= isl_basic_set_params(copy());
8758 isl::checked::multi_val
basic_set::plain_multi_val_if_fixed() const
8760 return isl::checked::set(*this).plain_multi_val_if_fixed();
8763 isl::checked::basic_set
basic_set::polyhedral_hull() const
8765 return isl::checked::set(*this).polyhedral_hull();
8768 isl::checked::set
basic_set::preimage(const isl::checked::multi_aff
&ma
) const
8770 return isl::checked::set(*this).preimage(ma
);
8773 isl::checked::set
basic_set::preimage(const isl::checked::multi_pw_aff
&mpa
) const
8775 return isl::checked::set(*this).preimage(mpa
);
8778 isl::checked::set
basic_set::preimage(const isl::checked::pw_multi_aff
&pma
) const
8780 return isl::checked::set(*this).preimage(pma
);
8783 isl::checked::union_set
basic_set::preimage(const isl::checked::union_pw_multi_aff
&upma
) const
8785 return isl::checked::set(*this).preimage(upma
);
8788 isl::checked::set
basic_set::product(const isl::checked::set
&set2
) const
8790 return isl::checked::set(*this).product(set2
);
8793 isl::checked::set
basic_set::project_out_all_params() const
8795 return isl::checked::set(*this).project_out_all_params();
8798 isl::checked::set
basic_set::project_out_param(const isl::checked::id
&id
) const
8800 return isl::checked::set(*this).project_out_param(id
);
8803 isl::checked::set
basic_set::project_out_param(const std::string
&id
) const
8805 return this->project_out_param(isl::checked::id(ctx(), id
));
8808 isl::checked::set
basic_set::project_out_param(const isl::checked::id_list
&list
) const
8810 return isl::checked::set(*this).project_out_param(list
);
8813 isl::checked::pw_aff
basic_set::pw_aff_on_domain(const isl::checked::val
&v
) const
8815 return isl::checked::set(*this).pw_aff_on_domain(v
);
8818 isl::checked::pw_aff
basic_set::pw_aff_on_domain(long v
) const
8820 return this->pw_aff_on_domain(isl::checked::val(ctx(), v
));
8823 isl::checked::pw_multi_aff
basic_set::pw_multi_aff_on_domain(const isl::checked::multi_val
&mv
) const
8825 return isl::checked::set(*this).pw_multi_aff_on_domain(mv
);
8828 isl::checked::basic_set
basic_set::sample() const
8830 auto res
= isl_basic_set_sample(copy());
8834 isl::checked::point
basic_set::sample_point() const
8836 auto res
= isl_basic_set_sample_point(copy());
8840 isl::checked::set_list
basic_set::set_list() const
8842 return isl::checked::set(*this).set_list();
8845 isl::checked::fixed_box
basic_set::simple_fixed_box_hull() const
8847 return isl::checked::set(*this).simple_fixed_box_hull();
8850 isl::checked::space
basic_set::space() const
8852 return isl::checked::set(*this).space();
8855 isl::checked::val
basic_set::stride(int pos
) const
8857 return isl::checked::set(*this).stride(pos
);
8860 isl::checked::set
basic_set::subtract(const isl::checked::set
&set2
) const
8862 return isl::checked::set(*this).subtract(set2
);
8865 isl::checked::union_set
basic_set::subtract(const isl::checked::union_set
&uset2
) const
8867 return isl::checked::set(*this).subtract(uset2
);
8870 isl::checked::set_list
basic_set::to_list() const
8872 return isl::checked::set(*this).to_list();
8875 isl::checked::set
basic_set::to_set() const
8877 auto res
= isl_basic_set_to_set(copy());
8881 isl::checked::union_set
basic_set::to_union_set() const
8883 return isl::checked::set(*this).to_union_set();
8886 isl::checked::map
basic_set::translation() const
8888 return isl::checked::set(*this).translation();
8891 class size
basic_set::tuple_dim() const
8893 return isl::checked::set(*this).tuple_dim();
8896 isl::checked::set
basic_set::unbind_params(const isl::checked::multi_id
&tuple
) const
8898 return isl::checked::set(*this).unbind_params(tuple
);
8901 isl::checked::map
basic_set::unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const
8903 return isl::checked::set(*this).unbind_params_insert_domain(domain
);
8906 isl::checked::set
basic_set::unite(isl::checked::basic_set bset2
) const
8908 auto res
= isl_basic_set_union(copy(), bset2
.release());
8912 isl::checked::set
basic_set::unite(const isl::checked::set
&set2
) const
8914 return isl::checked::set(*this).unite(set2
);
8917 isl::checked::union_set
basic_set::unite(const isl::checked::union_set
&uset2
) const
8919 return isl::checked::set(*this).unite(uset2
);
8922 isl::checked::set
basic_set::unite(const isl::checked::point
&bset2
) const
8924 return this->unite(isl::checked::basic_set(bset2
));
8927 isl::checked::basic_set
basic_set::unshifted_simple_hull() const
8929 return isl::checked::set(*this).unshifted_simple_hull();
8932 isl::checked::map
basic_set::unwrap() const
8934 return isl::checked::set(*this).unwrap();
8937 isl::checked::set
basic_set::upper_bound(const isl::checked::multi_pw_aff
&upper
) const
8939 return isl::checked::set(*this).upper_bound(upper
);
8942 isl::checked::set
basic_set::upper_bound(const isl::checked::multi_val
&upper
) const
8944 return isl::checked::set(*this).upper_bound(upper
);
8947 isl::checked::set
basic_set::wrapped_reverse() const
8949 return isl::checked::set(*this).wrapped_reverse();
8952 inline std::ostream
&operator<<(std::ostream
&os
, const basic_set
&obj
)
8954 char *str
= isl_basic_set_to_str(obj
.get());
8956 os
.setstate(std::ios_base::badbit
);
8964 // implementations for isl::fixed_box
8965 fixed_box
manage(__isl_take isl_fixed_box
*ptr
) {
8966 return fixed_box(ptr
);
8968 fixed_box
manage_copy(__isl_keep isl_fixed_box
*ptr
) {
8969 ptr
= isl_fixed_box_copy(ptr
);
8970 return fixed_box(ptr
);
8973 fixed_box::fixed_box(__isl_take isl_fixed_box
*ptr
)
8976 fixed_box::fixed_box()
8979 fixed_box::fixed_box(const fixed_box
&obj
)
8985 fixed_box::fixed_box(isl::checked::ctx ctx
, const std::string
&str
)
8987 auto res
= isl_fixed_box_read_from_str(ctx
.release(), str
.c_str());
8991 fixed_box
&fixed_box::operator=(fixed_box obj
) {
8992 std::swap(this->ptr
, obj
.ptr
);
8996 fixed_box::~fixed_box() {
8998 isl_fixed_box_free(ptr
);
9001 __isl_give isl_fixed_box
*fixed_box::copy() const & {
9002 return isl_fixed_box_copy(ptr
);
9005 __isl_keep isl_fixed_box
*fixed_box::get() const {
9009 __isl_give isl_fixed_box
*fixed_box::release() {
9010 isl_fixed_box
*tmp
= ptr
;
9015 bool fixed_box::is_null() const {
9016 return ptr
== nullptr;
9019 isl::checked::ctx
fixed_box::ctx() const {
9020 return isl::checked::ctx(isl_fixed_box_get_ctx(ptr
));
9023 boolean
fixed_box::is_valid() const
9025 auto res
= isl_fixed_box_is_valid(get());
9029 isl::checked::multi_aff
fixed_box::offset() const
9031 auto res
= isl_fixed_box_get_offset(get());
9035 isl::checked::multi_aff
fixed_box::get_offset() const
9040 isl::checked::multi_val
fixed_box::size() const
9042 auto res
= isl_fixed_box_get_size(get());
9046 isl::checked::multi_val
fixed_box::get_size() const
9051 isl::checked::space
fixed_box::space() const
9053 auto res
= isl_fixed_box_get_space(get());
9057 isl::checked::space
fixed_box::get_space() const
9062 inline std::ostream
&operator<<(std::ostream
&os
, const fixed_box
&obj
)
9064 char *str
= isl_fixed_box_to_str(obj
.get());
9066 os
.setstate(std::ios_base::badbit
);
9074 // implementations for isl::id
9075 id
manage(__isl_take isl_id
*ptr
) {
9078 id
manage_copy(__isl_keep isl_id
*ptr
) {
9079 ptr
= isl_id_copy(ptr
);
9083 id::id(__isl_take isl_id
*ptr
)
9089 id::id(const id
&obj
)
9095 id::id(isl::checked::ctx ctx
, const std::string
&str
)
9097 auto res
= isl_id_read_from_str(ctx
.release(), str
.c_str());
9101 id
&id::operator=(id obj
) {
9102 std::swap(this->ptr
, obj
.ptr
);
9111 __isl_give isl_id
*id::copy() const & {
9112 return isl_id_copy(ptr
);
9115 __isl_keep isl_id
*id::get() const {
9119 __isl_give isl_id
*id::release() {
9125 bool id::is_null() const {
9126 return ptr
== nullptr;
9129 isl::checked::ctx
id::ctx() const {
9130 return isl::checked::ctx(isl_id_get_ctx(ptr
));
9133 std::string
id::name() const
9135 auto res
= isl_id_get_name(get());
9136 std::string
tmp(res
);
9140 std::string
id::get_name() const
9145 isl::checked::id_list
id::to_list() const
9147 auto res
= isl_id_to_list(copy());
9151 #if __cplusplus >= 201703L
9152 id::id(isl::checked::ctx ctx
, const std::string
&str
, const std::any
&any
)
9154 std::any
*p
= new std::any(any
);
9155 auto res
= isl_id_alloc(ctx
.get(), str
.c_str(), p
);
9156 res
= isl_id_set_free_user(res
, &ctx::free_user
);
9164 std::optional
<T
> id::try_user() const
9166 std::any
*p
= (std::any
*) isl_id_get_user(ptr
);
9168 return std::nullopt
;
9169 if (isl_id_get_free_user(ptr
) != &ctx::free_user
)
9170 return std::nullopt
;
9171 T
*res
= std::any_cast
<T
>(p
);
9173 return std::nullopt
;
9180 std::any
*p
= (std::any
*) isl_id_get_user(ptr
);
9182 isl_die(ctx().get(), isl_error_invalid
, "no user pointer", return T());
9183 if (isl_id_get_free_user(ptr
) != &ctx::free_user
)
9184 isl_die(ctx().get(), isl_error_invalid
, "user pointer not attached by C++ interface", return T());
9185 T
*res
= std::any_cast
<T
>(p
);
9187 isl_die(ctx().get(), isl_error_invalid
, "user pointer not of given type", return T());
9192 inline std::ostream
&operator<<(std::ostream
&os
, const id
&obj
)
9194 char *str
= isl_id_to_str(obj
.get());
9196 os
.setstate(std::ios_base::badbit
);
9204 // implementations for isl::id_list
9205 id_list
manage(__isl_take isl_id_list
*ptr
) {
9206 return id_list(ptr
);
9208 id_list
manage_copy(__isl_keep isl_id_list
*ptr
) {
9209 ptr
= isl_id_list_copy(ptr
);
9210 return id_list(ptr
);
9213 id_list::id_list(__isl_take isl_id_list
*ptr
)
9219 id_list::id_list(const id_list
&obj
)
9225 id_list::id_list(isl::checked::ctx ctx
, int n
)
9227 auto res
= isl_id_list_alloc(ctx
.release(), n
);
9231 id_list::id_list(isl::checked::id el
)
9233 auto res
= isl_id_list_from_id(el
.release());
9237 id_list::id_list(isl::checked::ctx ctx
, const std::string
&str
)
9239 auto res
= isl_id_list_read_from_str(ctx
.release(), str
.c_str());
9243 id_list
&id_list::operator=(id_list obj
) {
9244 std::swap(this->ptr
, obj
.ptr
);
9248 id_list::~id_list() {
9250 isl_id_list_free(ptr
);
9253 __isl_give isl_id_list
*id_list::copy() const & {
9254 return isl_id_list_copy(ptr
);
9257 __isl_keep isl_id_list
*id_list::get() const {
9261 __isl_give isl_id_list
*id_list::release() {
9262 isl_id_list
*tmp
= ptr
;
9267 bool id_list::is_null() const {
9268 return ptr
== nullptr;
9271 isl::checked::ctx
id_list::ctx() const {
9272 return isl::checked::ctx(isl_id_list_get_ctx(ptr
));
9275 isl::checked::id_list
id_list::add(isl::checked::id el
) const
9277 auto res
= isl_id_list_add(copy(), el
.release());
9281 isl::checked::id_list
id_list::add(const std::string
&el
) const
9283 return this->add(isl::checked::id(ctx(), el
));
9286 isl::checked::id
id_list::at(int index
) const
9288 auto res
= isl_id_list_get_at(get(), index
);
9292 isl::checked::id
id_list::get_at(int index
) const
9297 isl::checked::id_list
id_list::clear() const
9299 auto res
= isl_id_list_clear(copy());
9303 isl::checked::id_list
id_list::concat(isl::checked::id_list list2
) const
9305 auto res
= isl_id_list_concat(copy(), list2
.release());
9309 isl::checked::id_list
id_list::drop(unsigned int first
, unsigned int n
) const
9311 auto res
= isl_id_list_drop(copy(), first
, n
);
9315 stat
id_list::foreach(const std::function
<stat(isl::checked::id
)> &fn
) const
9318 std::function
<stat(isl::checked::id
)> func
;
9320 auto fn_lambda
= [](isl_id
*arg_0
, void *arg_1
) -> isl_stat
{
9321 auto *data
= static_cast<struct fn_data
*>(arg_1
);
9322 auto ret
= (data
->func
)(manage(arg_0
));
9323 return ret
.release();
9325 auto res
= isl_id_list_foreach(get(), fn_lambda
, &fn_data
);
9329 stat
id_list::foreach_scc(const std::function
<boolean(isl::checked::id
, isl::checked::id
)> &follows
, const std::function
<stat(isl::checked::id_list
)> &fn
) const
9331 struct follows_data
{
9332 std::function
<boolean(isl::checked::id
, isl::checked::id
)> func
;
9333 } follows_data
= { follows
};
9334 auto follows_lambda
= [](isl_id
*arg_0
, isl_id
*arg_1
, void *arg_2
) -> isl_bool
{
9335 auto *data
= static_cast<struct follows_data
*>(arg_2
);
9336 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
9337 return ret
.release();
9340 std::function
<stat(isl::checked::id_list
)> func
;
9342 auto fn_lambda
= [](isl_id_list
*arg_0
, void *arg_1
) -> isl_stat
{
9343 auto *data
= static_cast<struct fn_data
*>(arg_1
);
9344 auto ret
= (data
->func
)(manage(arg_0
));
9345 return ret
.release();
9347 auto res
= isl_id_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
9351 isl::checked::id_list
id_list::insert(unsigned int pos
, isl::checked::id el
) const
9353 auto res
= isl_id_list_insert(copy(), pos
, el
.release());
9357 isl::checked::id_list
id_list::insert(unsigned int pos
, const std::string
&el
) const
9359 return this->insert(pos
, isl::checked::id(ctx(), el
));
9362 isl::checked::id_list
id_list::set_at(int index
, isl::checked::id el
) const
9364 auto res
= isl_id_list_set_at(copy(), index
, el
.release());
9368 isl::checked::id_list
id_list::set_at(int index
, const std::string
&el
) const
9370 return this->set_at(index
, isl::checked::id(ctx(), el
));
9373 class size
id_list::size() const
9375 auto res
= isl_id_list_size(get());
9379 inline std::ostream
&operator<<(std::ostream
&os
, const id_list
&obj
)
9381 char *str
= isl_id_list_to_str(obj
.get());
9383 os
.setstate(std::ios_base::badbit
);
9391 // implementations for isl::id_to_ast_expr
9392 id_to_ast_expr
manage(__isl_take isl_id_to_ast_expr
*ptr
) {
9393 return id_to_ast_expr(ptr
);
9395 id_to_ast_expr
manage_copy(__isl_keep isl_id_to_ast_expr
*ptr
) {
9396 ptr
= isl_id_to_ast_expr_copy(ptr
);
9397 return id_to_ast_expr(ptr
);
9400 id_to_ast_expr::id_to_ast_expr(__isl_take isl_id_to_ast_expr
*ptr
)
9403 id_to_ast_expr::id_to_ast_expr()
9406 id_to_ast_expr::id_to_ast_expr(const id_to_ast_expr
&obj
)
9412 id_to_ast_expr::id_to_ast_expr(isl::checked::ctx ctx
, int min_size
)
9414 auto res
= isl_id_to_ast_expr_alloc(ctx
.release(), min_size
);
9418 id_to_ast_expr::id_to_ast_expr(isl::checked::ctx ctx
, const std::string
&str
)
9420 auto res
= isl_id_to_ast_expr_read_from_str(ctx
.release(), str
.c_str());
9424 id_to_ast_expr
&id_to_ast_expr::operator=(id_to_ast_expr obj
) {
9425 std::swap(this->ptr
, obj
.ptr
);
9429 id_to_ast_expr::~id_to_ast_expr() {
9431 isl_id_to_ast_expr_free(ptr
);
9434 __isl_give isl_id_to_ast_expr
*id_to_ast_expr::copy() const & {
9435 return isl_id_to_ast_expr_copy(ptr
);
9438 __isl_keep isl_id_to_ast_expr
*id_to_ast_expr::get() const {
9442 __isl_give isl_id_to_ast_expr
*id_to_ast_expr::release() {
9443 isl_id_to_ast_expr
*tmp
= ptr
;
9448 bool id_to_ast_expr::is_null() const {
9449 return ptr
== nullptr;
9452 isl::checked::ctx
id_to_ast_expr::ctx() const {
9453 return isl::checked::ctx(isl_id_to_ast_expr_get_ctx(ptr
));
9456 boolean
id_to_ast_expr::is_equal(const isl::checked::id_to_ast_expr
&hmap2
) const
9458 auto res
= isl_id_to_ast_expr_is_equal(get(), hmap2
.get());
9462 isl::checked::id_to_ast_expr
id_to_ast_expr::set(isl::checked::id key
, isl::checked::ast_expr val
) const
9464 auto res
= isl_id_to_ast_expr_set(copy(), key
.release(), val
.release());
9468 isl::checked::id_to_ast_expr
id_to_ast_expr::set(const std::string
&key
, const isl::checked::ast_expr
&val
) const
9470 return this->set(isl::checked::id(ctx(), key
), val
);
9473 inline std::ostream
&operator<<(std::ostream
&os
, const id_to_ast_expr
&obj
)
9475 char *str
= isl_id_to_ast_expr_to_str(obj
.get());
9477 os
.setstate(std::ios_base::badbit
);
9485 // implementations for isl::id_to_id
9486 id_to_id
manage(__isl_take isl_id_to_id
*ptr
) {
9487 return id_to_id(ptr
);
9489 id_to_id
manage_copy(__isl_keep isl_id_to_id
*ptr
) {
9490 ptr
= isl_id_to_id_copy(ptr
);
9491 return id_to_id(ptr
);
9494 id_to_id::id_to_id(__isl_take isl_id_to_id
*ptr
)
9497 id_to_id::id_to_id()
9500 id_to_id::id_to_id(const id_to_id
&obj
)
9506 id_to_id::id_to_id(isl::checked::ctx ctx
, int min_size
)
9508 auto res
= isl_id_to_id_alloc(ctx
.release(), min_size
);
9512 id_to_id::id_to_id(isl::checked::ctx ctx
, const std::string
&str
)
9514 auto res
= isl_id_to_id_read_from_str(ctx
.release(), str
.c_str());
9518 id_to_id
&id_to_id::operator=(id_to_id obj
) {
9519 std::swap(this->ptr
, obj
.ptr
);
9523 id_to_id::~id_to_id() {
9525 isl_id_to_id_free(ptr
);
9528 __isl_give isl_id_to_id
*id_to_id::copy() const & {
9529 return isl_id_to_id_copy(ptr
);
9532 __isl_keep isl_id_to_id
*id_to_id::get() const {
9536 __isl_give isl_id_to_id
*id_to_id::release() {
9537 isl_id_to_id
*tmp
= ptr
;
9542 bool id_to_id::is_null() const {
9543 return ptr
== nullptr;
9546 isl::checked::ctx
id_to_id::ctx() const {
9547 return isl::checked::ctx(isl_id_to_id_get_ctx(ptr
));
9550 boolean
id_to_id::is_equal(const isl::checked::id_to_id
&hmap2
) const
9552 auto res
= isl_id_to_id_is_equal(get(), hmap2
.get());
9556 isl::checked::id_to_id
id_to_id::set(isl::checked::id key
, isl::checked::id val
) const
9558 auto res
= isl_id_to_id_set(copy(), key
.release(), val
.release());
9562 isl::checked::id_to_id
id_to_id::set(const isl::checked::id
&key
, const std::string
&val
) const
9564 return this->set(key
, isl::checked::id(ctx(), val
));
9567 isl::checked::id_to_id
id_to_id::set(const std::string
&key
, const isl::checked::id
&val
) const
9569 return this->set(isl::checked::id(ctx(), key
), val
);
9572 isl::checked::id_to_id
id_to_id::set(const std::string
&key
, const std::string
&val
) const
9574 return this->set(isl::checked::id(ctx(), key
), isl::checked::id(ctx(), val
));
9577 inline std::ostream
&operator<<(std::ostream
&os
, const id_to_id
&obj
)
9579 char *str
= isl_id_to_id_to_str(obj
.get());
9581 os
.setstate(std::ios_base::badbit
);
9589 // implementations for isl::map
9590 map
manage(__isl_take isl_map
*ptr
) {
9593 map
manage_copy(__isl_keep isl_map
*ptr
) {
9594 ptr
= isl_map_copy(ptr
);
9598 map::map(__isl_take isl_map
*ptr
)
9604 map::map(const map
&obj
)
9610 map::map(isl::checked::basic_map bmap
)
9612 auto res
= isl_map_from_basic_map(bmap
.release());
9616 map::map(isl::checked::ctx ctx
, const std::string
&str
)
9618 auto res
= isl_map_read_from_str(ctx
.release(), str
.c_str());
9622 map
&map::operator=(map obj
) {
9623 std::swap(this->ptr
, obj
.ptr
);
9632 __isl_give isl_map
*map::copy() const & {
9633 return isl_map_copy(ptr
);
9636 __isl_keep isl_map
*map::get() const {
9640 __isl_give isl_map
*map::release() {
9646 bool map::is_null() const {
9647 return ptr
== nullptr;
9650 isl::checked::ctx
map::ctx() const {
9651 return isl::checked::ctx(isl_map_get_ctx(ptr
));
9654 isl::checked::basic_map
map::affine_hull() const
9656 auto res
= isl_map_affine_hull(copy());
9660 isl::checked::map
map::apply_domain(isl::checked::map map2
) const
9662 auto res
= isl_map_apply_domain(copy(), map2
.release());
9666 isl::checked::union_map
map::apply_domain(const isl::checked::union_map
&umap2
) const
9668 return isl::checked::union_map(*this).apply_domain(umap2
);
9671 isl::checked::map
map::apply_domain(const isl::checked::basic_map
&map2
) const
9673 return this->apply_domain(isl::checked::map(map2
));
9676 isl::checked::map
map::apply_range(isl::checked::map map2
) const
9678 auto res
= isl_map_apply_range(copy(), map2
.release());
9682 isl::checked::union_map
map::apply_range(const isl::checked::union_map
&umap2
) const
9684 return isl::checked::union_map(*this).apply_range(umap2
);
9687 isl::checked::map
map::apply_range(const isl::checked::basic_map
&map2
) const
9689 return this->apply_range(isl::checked::map(map2
));
9692 isl::checked::map
map::as_map() const
9694 return isl::checked::union_map(*this).as_map();
9697 isl::checked::multi_union_pw_aff
map::as_multi_union_pw_aff() const
9699 return isl::checked::union_map(*this).as_multi_union_pw_aff();
9702 isl::checked::pw_multi_aff
map::as_pw_multi_aff() const
9704 auto res
= isl_map_as_pw_multi_aff(copy());
9708 isl::checked::union_pw_multi_aff
map::as_union_pw_multi_aff() const
9710 return isl::checked::union_map(*this).as_union_pw_multi_aff();
9713 isl::checked::set
map::bind_domain(isl::checked::multi_id tuple
) const
9715 auto res
= isl_map_bind_domain(copy(), tuple
.release());
9719 isl::checked::set
map::bind_range(isl::checked::multi_id tuple
) const
9721 auto res
= isl_map_bind_range(copy(), tuple
.release());
9725 isl::checked::map
map::coalesce() const
9727 auto res
= isl_map_coalesce(copy());
9731 isl::checked::map
map::complement() const
9733 auto res
= isl_map_complement(copy());
9737 isl::checked::union_map
map::compute_divs() const
9739 return isl::checked::union_map(*this).compute_divs();
9742 isl::checked::map
map::curry() const
9744 auto res
= isl_map_curry(copy());
9748 isl::checked::set
map::deltas() const
9750 auto res
= isl_map_deltas(copy());
9754 isl::checked::map
map::detect_equalities() const
9756 auto res
= isl_map_detect_equalities(copy());
9760 isl::checked::set
map::domain() const
9762 auto res
= isl_map_domain(copy());
9766 isl::checked::map
map::domain_factor_domain() const
9768 auto res
= isl_map_domain_factor_domain(copy());
9772 isl::checked::map
map::domain_factor_range() const
9774 auto res
= isl_map_domain_factor_range(copy());
9778 isl::checked::union_map
map::domain_map() const
9780 return isl::checked::union_map(*this).domain_map();
9783 isl::checked::union_pw_multi_aff
map::domain_map_union_pw_multi_aff() const
9785 return isl::checked::union_map(*this).domain_map_union_pw_multi_aff();
9788 isl::checked::map
map::domain_product(isl::checked::map map2
) const
9790 auto res
= isl_map_domain_product(copy(), map2
.release());
9794 isl::checked::union_map
map::domain_product(const isl::checked::union_map
&umap2
) const
9796 return isl::checked::union_map(*this).domain_product(umap2
);
9799 isl::checked::map
map::domain_product(const isl::checked::basic_map
&map2
) const
9801 return this->domain_product(isl::checked::map(map2
));
9804 isl::checked::map
map::domain_reverse() const
9806 auto res
= isl_map_domain_reverse(copy());
9810 class size
map::domain_tuple_dim() const
9812 auto res
= isl_map_domain_tuple_dim(get());
9816 isl::checked::id
map::domain_tuple_id() const
9818 auto res
= isl_map_get_domain_tuple_id(get());
9822 isl::checked::id
map::get_domain_tuple_id() const
9824 return domain_tuple_id();
9827 isl::checked::map
map::drop_unused_params() const
9829 auto res
= isl_map_drop_unused_params(copy());
9833 isl::checked::map
map::empty(isl::checked::space space
)
9835 auto res
= isl_map_empty(space
.release());
9839 isl::checked::map
map::eq_at(isl::checked::multi_pw_aff mpa
) const
9841 auto res
= isl_map_eq_at_multi_pw_aff(copy(), mpa
.release());
9845 isl::checked::union_map
map::eq_at(const isl::checked::multi_union_pw_aff
&mupa
) const
9847 return isl::checked::union_map(*this).eq_at(mupa
);
9850 isl::checked::map
map::eq_at(const isl::checked::aff
&mpa
) const
9852 return this->eq_at(isl::checked::multi_pw_aff(mpa
));
9855 isl::checked::map
map::eq_at(const isl::checked::multi_aff
&mpa
) const
9857 return this->eq_at(isl::checked::multi_pw_aff(mpa
));
9860 isl::checked::map
map::eq_at(const isl::checked::pw_aff
&mpa
) const
9862 return this->eq_at(isl::checked::multi_pw_aff(mpa
));
9865 isl::checked::map
map::eq_at(const isl::checked::pw_multi_aff
&mpa
) const
9867 return this->eq_at(isl::checked::multi_pw_aff(mpa
));
9870 boolean
map::every_map(const std::function
<boolean(isl::checked::map
)> &test
) const
9872 return isl::checked::union_map(*this).every_map(test
);
9875 isl::checked::map
map::extract_map(const isl::checked::space
&space
) const
9877 return isl::checked::union_map(*this).extract_map(space
);
9880 isl::checked::map
map::factor_domain() const
9882 auto res
= isl_map_factor_domain(copy());
9886 isl::checked::map
map::factor_range() const
9888 auto res
= isl_map_factor_range(copy());
9892 isl::checked::map
map::fixed_power(isl::checked::val exp
) const
9894 auto res
= isl_map_fixed_power_val(copy(), exp
.release());
9898 isl::checked::map
map::fixed_power(long exp
) const
9900 return this->fixed_power(isl::checked::val(ctx(), exp
));
9903 isl::checked::map
map::flatten() const
9905 auto res
= isl_map_flatten(copy());
9909 isl::checked::map
map::flatten_domain() const
9911 auto res
= isl_map_flatten_domain(copy());
9915 isl::checked::map
map::flatten_range() const
9917 auto res
= isl_map_flatten_range(copy());
9921 stat
map::foreach_basic_map(const std::function
<stat(isl::checked::basic_map
)> &fn
) const
9924 std::function
<stat(isl::checked::basic_map
)> func
;
9926 auto fn_lambda
= [](isl_basic_map
*arg_0
, void *arg_1
) -> isl_stat
{
9927 auto *data
= static_cast<struct fn_data
*>(arg_1
);
9928 auto ret
= (data
->func
)(manage(arg_0
));
9929 return ret
.release();
9931 auto res
= isl_map_foreach_basic_map(get(), fn_lambda
, &fn_data
);
9935 stat
map::foreach_map(const std::function
<stat(isl::checked::map
)> &fn
) const
9937 return isl::checked::union_map(*this).foreach_map(fn
);
9940 isl::checked::map
map::gist(isl::checked::map context
) const
9942 auto res
= isl_map_gist(copy(), context
.release());
9946 isl::checked::union_map
map::gist(const isl::checked::union_map
&context
) const
9948 return isl::checked::union_map(*this).gist(context
);
9951 isl::checked::map
map::gist(const isl::checked::basic_map
&context
) const
9953 return this->gist(isl::checked::map(context
));
9956 isl::checked::map
map::gist_domain(isl::checked::set context
) const
9958 auto res
= isl_map_gist_domain(copy(), context
.release());
9962 isl::checked::union_map
map::gist_domain(const isl::checked::union_set
&uset
) const
9964 return isl::checked::union_map(*this).gist_domain(uset
);
9967 isl::checked::map
map::gist_domain(const isl::checked::basic_set
&context
) const
9969 return this->gist_domain(isl::checked::set(context
));
9972 isl::checked::map
map::gist_domain(const isl::checked::point
&context
) const
9974 return this->gist_domain(isl::checked::set(context
));
9977 isl::checked::map
map::gist_params(isl::checked::set context
) const
9979 auto res
= isl_map_gist_params(copy(), context
.release());
9983 isl::checked::union_map
map::gist_range(const isl::checked::union_set
&uset
) const
9985 return isl::checked::union_map(*this).gist_range(uset
);
9988 boolean
map::has_domain_tuple_id() const
9990 auto res
= isl_map_has_domain_tuple_id(get());
9994 boolean
map::has_range_tuple_id() const
9996 auto res
= isl_map_has_range_tuple_id(get());
10000 isl::checked::map
map::intersect(isl::checked::map map2
) const
10002 auto res
= isl_map_intersect(copy(), map2
.release());
10003 return manage(res
);
10006 isl::checked::union_map
map::intersect(const isl::checked::union_map
&umap2
) const
10008 return isl::checked::union_map(*this).intersect(umap2
);
10011 isl::checked::map
map::intersect(const isl::checked::basic_map
&map2
) const
10013 return this->intersect(isl::checked::map(map2
));
10016 isl::checked::map
map::intersect_domain(isl::checked::set set
) const
10018 auto res
= isl_map_intersect_domain(copy(), set
.release());
10019 return manage(res
);
10022 isl::checked::union_map
map::intersect_domain(const isl::checked::space
&space
) const
10024 return isl::checked::union_map(*this).intersect_domain(space
);
10027 isl::checked::union_map
map::intersect_domain(const isl::checked::union_set
&uset
) const
10029 return isl::checked::union_map(*this).intersect_domain(uset
);
10032 isl::checked::map
map::intersect_domain(const isl::checked::basic_set
&set
) const
10034 return this->intersect_domain(isl::checked::set(set
));
10037 isl::checked::map
map::intersect_domain(const isl::checked::point
&set
) const
10039 return this->intersect_domain(isl::checked::set(set
));
10042 isl::checked::map
map::intersect_domain_factor_domain(isl::checked::map factor
) const
10044 auto res
= isl_map_intersect_domain_factor_domain(copy(), factor
.release());
10045 return manage(res
);
10048 isl::checked::union_map
map::intersect_domain_factor_domain(const isl::checked::union_map
&factor
) const
10050 return isl::checked::union_map(*this).intersect_domain_factor_domain(factor
);
10053 isl::checked::map
map::intersect_domain_factor_domain(const isl::checked::basic_map
&factor
) const
10055 return this->intersect_domain_factor_domain(isl::checked::map(factor
));
10058 isl::checked::map
map::intersect_domain_factor_range(isl::checked::map factor
) const
10060 auto res
= isl_map_intersect_domain_factor_range(copy(), factor
.release());
10061 return manage(res
);
10064 isl::checked::union_map
map::intersect_domain_factor_range(const isl::checked::union_map
&factor
) const
10066 return isl::checked::union_map(*this).intersect_domain_factor_range(factor
);
10069 isl::checked::map
map::intersect_domain_factor_range(const isl::checked::basic_map
&factor
) const
10071 return this->intersect_domain_factor_range(isl::checked::map(factor
));
10074 isl::checked::map
map::intersect_domain_wrapped_domain(isl::checked::set domain
) const
10076 auto res
= isl_map_intersect_domain_wrapped_domain(copy(), domain
.release());
10077 return manage(res
);
10080 isl::checked::union_map
map::intersect_domain_wrapped_domain(const isl::checked::union_set
&domain
) const
10082 return isl::checked::union_map(*this).intersect_domain_wrapped_domain(domain
);
10085 isl::checked::map
map::intersect_domain_wrapped_domain(const isl::checked::basic_set
&domain
) const
10087 return this->intersect_domain_wrapped_domain(isl::checked::set(domain
));
10090 isl::checked::map
map::intersect_domain_wrapped_domain(const isl::checked::point
&domain
) const
10092 return this->intersect_domain_wrapped_domain(isl::checked::set(domain
));
10095 isl::checked::map
map::intersect_params(isl::checked::set params
) const
10097 auto res
= isl_map_intersect_params(copy(), params
.release());
10098 return manage(res
);
10101 isl::checked::map
map::intersect_range(isl::checked::set set
) const
10103 auto res
= isl_map_intersect_range(copy(), set
.release());
10104 return manage(res
);
10107 isl::checked::union_map
map::intersect_range(const isl::checked::space
&space
) const
10109 return isl::checked::union_map(*this).intersect_range(space
);
10112 isl::checked::union_map
map::intersect_range(const isl::checked::union_set
&uset
) const
10114 return isl::checked::union_map(*this).intersect_range(uset
);
10117 isl::checked::map
map::intersect_range(const isl::checked::basic_set
&set
) const
10119 return this->intersect_range(isl::checked::set(set
));
10122 isl::checked::map
map::intersect_range(const isl::checked::point
&set
) const
10124 return this->intersect_range(isl::checked::set(set
));
10127 isl::checked::map
map::intersect_range_factor_domain(isl::checked::map factor
) const
10129 auto res
= isl_map_intersect_range_factor_domain(copy(), factor
.release());
10130 return manage(res
);
10133 isl::checked::union_map
map::intersect_range_factor_domain(const isl::checked::union_map
&factor
) const
10135 return isl::checked::union_map(*this).intersect_range_factor_domain(factor
);
10138 isl::checked::map
map::intersect_range_factor_domain(const isl::checked::basic_map
&factor
) const
10140 return this->intersect_range_factor_domain(isl::checked::map(factor
));
10143 isl::checked::map
map::intersect_range_factor_range(isl::checked::map factor
) const
10145 auto res
= isl_map_intersect_range_factor_range(copy(), factor
.release());
10146 return manage(res
);
10149 isl::checked::union_map
map::intersect_range_factor_range(const isl::checked::union_map
&factor
) const
10151 return isl::checked::union_map(*this).intersect_range_factor_range(factor
);
10154 isl::checked::map
map::intersect_range_factor_range(const isl::checked::basic_map
&factor
) const
10156 return this->intersect_range_factor_range(isl::checked::map(factor
));
10159 isl::checked::map
map::intersect_range_wrapped_domain(isl::checked::set domain
) const
10161 auto res
= isl_map_intersect_range_wrapped_domain(copy(), domain
.release());
10162 return manage(res
);
10165 isl::checked::union_map
map::intersect_range_wrapped_domain(const isl::checked::union_set
&domain
) const
10167 return isl::checked::union_map(*this).intersect_range_wrapped_domain(domain
);
10170 isl::checked::map
map::intersect_range_wrapped_domain(const isl::checked::basic_set
&domain
) const
10172 return this->intersect_range_wrapped_domain(isl::checked::set(domain
));
10175 isl::checked::map
map::intersect_range_wrapped_domain(const isl::checked::point
&domain
) const
10177 return this->intersect_range_wrapped_domain(isl::checked::set(domain
));
10180 boolean
map::is_bijective() const
10182 auto res
= isl_map_is_bijective(get());
10183 return manage(res
);
10186 boolean
map::is_disjoint(const isl::checked::map
&map2
) const
10188 auto res
= isl_map_is_disjoint(get(), map2
.get());
10189 return manage(res
);
10192 boolean
map::is_disjoint(const isl::checked::union_map
&umap2
) const
10194 return isl::checked::union_map(*this).is_disjoint(umap2
);
10197 boolean
map::is_disjoint(const isl::checked::basic_map
&map2
) const
10199 return this->is_disjoint(isl::checked::map(map2
));
10202 boolean
map::is_empty() const
10204 auto res
= isl_map_is_empty(get());
10205 return manage(res
);
10208 boolean
map::is_equal(const isl::checked::map
&map2
) const
10210 auto res
= isl_map_is_equal(get(), map2
.get());
10211 return manage(res
);
10214 boolean
map::is_equal(const isl::checked::union_map
&umap2
) const
10216 return isl::checked::union_map(*this).is_equal(umap2
);
10219 boolean
map::is_equal(const isl::checked::basic_map
&map2
) const
10221 return this->is_equal(isl::checked::map(map2
));
10224 boolean
map::is_injective() const
10226 auto res
= isl_map_is_injective(get());
10227 return manage(res
);
10230 boolean
map::is_single_valued() const
10232 auto res
= isl_map_is_single_valued(get());
10233 return manage(res
);
10236 boolean
map::is_strict_subset(const isl::checked::map
&map2
) const
10238 auto res
= isl_map_is_strict_subset(get(), map2
.get());
10239 return manage(res
);
10242 boolean
map::is_strict_subset(const isl::checked::union_map
&umap2
) const
10244 return isl::checked::union_map(*this).is_strict_subset(umap2
);
10247 boolean
map::is_strict_subset(const isl::checked::basic_map
&map2
) const
10249 return this->is_strict_subset(isl::checked::map(map2
));
10252 boolean
map::is_subset(const isl::checked::map
&map2
) const
10254 auto res
= isl_map_is_subset(get(), map2
.get());
10255 return manage(res
);
10258 boolean
map::is_subset(const isl::checked::union_map
&umap2
) const
10260 return isl::checked::union_map(*this).is_subset(umap2
);
10263 boolean
map::is_subset(const isl::checked::basic_map
&map2
) const
10265 return this->is_subset(isl::checked::map(map2
));
10268 boolean
map::isa_map() const
10270 return isl::checked::union_map(*this).isa_map();
10273 isl::checked::map
map::lex_ge_at(isl::checked::multi_pw_aff mpa
) const
10275 auto res
= isl_map_lex_ge_at_multi_pw_aff(copy(), mpa
.release());
10276 return manage(res
);
10279 isl::checked::map
map::lex_gt_at(isl::checked::multi_pw_aff mpa
) const
10281 auto res
= isl_map_lex_gt_at_multi_pw_aff(copy(), mpa
.release());
10282 return manage(res
);
10285 isl::checked::map
map::lex_le_at(isl::checked::multi_pw_aff mpa
) const
10287 auto res
= isl_map_lex_le_at_multi_pw_aff(copy(), mpa
.release());
10288 return manage(res
);
10291 isl::checked::map
map::lex_lt_at(isl::checked::multi_pw_aff mpa
) const
10293 auto res
= isl_map_lex_lt_at_multi_pw_aff(copy(), mpa
.release());
10294 return manage(res
);
10297 isl::checked::map
map::lexmax() const
10299 auto res
= isl_map_lexmax(copy());
10300 return manage(res
);
10303 isl::checked::pw_multi_aff
map::lexmax_pw_multi_aff() const
10305 auto res
= isl_map_lexmax_pw_multi_aff(copy());
10306 return manage(res
);
10309 isl::checked::map
map::lexmin() const
10311 auto res
= isl_map_lexmin(copy());
10312 return manage(res
);
10315 isl::checked::pw_multi_aff
map::lexmin_pw_multi_aff() const
10317 auto res
= isl_map_lexmin_pw_multi_aff(copy());
10318 return manage(res
);
10321 isl::checked::map
map::lower_bound(isl::checked::multi_pw_aff lower
) const
10323 auto res
= isl_map_lower_bound_multi_pw_aff(copy(), lower
.release());
10324 return manage(res
);
10327 isl::checked::map_list
map::map_list() const
10329 return isl::checked::union_map(*this).map_list();
10332 isl::checked::multi_pw_aff
map::max_multi_pw_aff() const
10334 auto res
= isl_map_max_multi_pw_aff(copy());
10335 return manage(res
);
10338 isl::checked::multi_pw_aff
map::min_multi_pw_aff() const
10340 auto res
= isl_map_min_multi_pw_aff(copy());
10341 return manage(res
);
10344 class size
map::n_basic_map() const
10346 auto res
= isl_map_n_basic_map(get());
10347 return manage(res
);
10350 isl::checked::set
map::params() const
10352 auto res
= isl_map_params(copy());
10353 return manage(res
);
10356 isl::checked::basic_map
map::polyhedral_hull() const
10358 auto res
= isl_map_polyhedral_hull(copy());
10359 return manage(res
);
10362 isl::checked::map
map::preimage_domain(isl::checked::multi_aff ma
) const
10364 auto res
= isl_map_preimage_domain_multi_aff(copy(), ma
.release());
10365 return manage(res
);
10368 isl::checked::map
map::preimage_domain(isl::checked::multi_pw_aff mpa
) const
10370 auto res
= isl_map_preimage_domain_multi_pw_aff(copy(), mpa
.release());
10371 return manage(res
);
10374 isl::checked::map
map::preimage_domain(isl::checked::pw_multi_aff pma
) const
10376 auto res
= isl_map_preimage_domain_pw_multi_aff(copy(), pma
.release());
10377 return manage(res
);
10380 isl::checked::union_map
map::preimage_domain(const isl::checked::union_pw_multi_aff
&upma
) const
10382 return isl::checked::union_map(*this).preimage_domain(upma
);
10385 isl::checked::map
map::preimage_range(isl::checked::multi_aff ma
) const
10387 auto res
= isl_map_preimage_range_multi_aff(copy(), ma
.release());
10388 return manage(res
);
10391 isl::checked::map
map::preimage_range(isl::checked::pw_multi_aff pma
) const
10393 auto res
= isl_map_preimage_range_pw_multi_aff(copy(), pma
.release());
10394 return manage(res
);
10397 isl::checked::union_map
map::preimage_range(const isl::checked::union_pw_multi_aff
&upma
) const
10399 return isl::checked::union_map(*this).preimage_range(upma
);
10402 isl::checked::map
map::product(isl::checked::map map2
) const
10404 auto res
= isl_map_product(copy(), map2
.release());
10405 return manage(res
);
10408 isl::checked::union_map
map::product(const isl::checked::union_map
&umap2
) const
10410 return isl::checked::union_map(*this).product(umap2
);
10413 isl::checked::map
map::product(const isl::checked::basic_map
&map2
) const
10415 return this->product(isl::checked::map(map2
));
10418 isl::checked::map
map::project_out_all_params() const
10420 auto res
= isl_map_project_out_all_params(copy());
10421 return manage(res
);
10424 isl::checked::map
map::project_out_param(isl::checked::id id
) const
10426 auto res
= isl_map_project_out_param_id(copy(), id
.release());
10427 return manage(res
);
10430 isl::checked::map
map::project_out_param(const std::string
&id
) const
10432 return this->project_out_param(isl::checked::id(ctx(), id
));
10435 isl::checked::map
map::project_out_param(isl::checked::id_list list
) const
10437 auto res
= isl_map_project_out_param_id_list(copy(), list
.release());
10438 return manage(res
);
10441 isl::checked::set
map::range() const
10443 auto res
= isl_map_range(copy());
10444 return manage(res
);
10447 isl::checked::map
map::range_factor_domain() const
10449 auto res
= isl_map_range_factor_domain(copy());
10450 return manage(res
);
10453 isl::checked::map
map::range_factor_range() const
10455 auto res
= isl_map_range_factor_range(copy());
10456 return manage(res
);
10459 isl::checked::fixed_box
map::range_lattice_tile() const
10461 auto res
= isl_map_get_range_lattice_tile(get());
10462 return manage(res
);
10465 isl::checked::fixed_box
map::get_range_lattice_tile() const
10467 return range_lattice_tile();
10470 isl::checked::union_map
map::range_map() const
10472 return isl::checked::union_map(*this).range_map();
10475 isl::checked::map
map::range_product(isl::checked::map map2
) const
10477 auto res
= isl_map_range_product(copy(), map2
.release());
10478 return manage(res
);
10481 isl::checked::union_map
map::range_product(const isl::checked::union_map
&umap2
) const
10483 return isl::checked::union_map(*this).range_product(umap2
);
10486 isl::checked::map
map::range_product(const isl::checked::basic_map
&map2
) const
10488 return this->range_product(isl::checked::map(map2
));
10491 isl::checked::map
map::range_reverse() const
10493 auto res
= isl_map_range_reverse(copy());
10494 return manage(res
);
10497 isl::checked::fixed_box
map::range_simple_fixed_box_hull() const
10499 auto res
= isl_map_get_range_simple_fixed_box_hull(get());
10500 return manage(res
);
10503 isl::checked::fixed_box
map::get_range_simple_fixed_box_hull() const
10505 return range_simple_fixed_box_hull();
10508 class size
map::range_tuple_dim() const
10510 auto res
= isl_map_range_tuple_dim(get());
10511 return manage(res
);
10514 isl::checked::id
map::range_tuple_id() const
10516 auto res
= isl_map_get_range_tuple_id(get());
10517 return manage(res
);
10520 isl::checked::id
map::get_range_tuple_id() const
10522 return range_tuple_id();
10525 isl::checked::map
map::reverse() const
10527 auto res
= isl_map_reverse(copy());
10528 return manage(res
);
10531 isl::checked::basic_map
map::sample() const
10533 auto res
= isl_map_sample(copy());
10534 return manage(res
);
10537 isl::checked::map
map::set_domain_tuple(isl::checked::id id
) const
10539 auto res
= isl_map_set_domain_tuple_id(copy(), id
.release());
10540 return manage(res
);
10543 isl::checked::map
map::set_domain_tuple(const std::string
&id
) const
10545 return this->set_domain_tuple(isl::checked::id(ctx(), id
));
10548 isl::checked::map
map::set_range_tuple(isl::checked::id id
) const
10550 auto res
= isl_map_set_range_tuple_id(copy(), id
.release());
10551 return manage(res
);
10554 isl::checked::map
map::set_range_tuple(const std::string
&id
) const
10556 return this->set_range_tuple(isl::checked::id(ctx(), id
));
10559 isl::checked::space
map::space() const
10561 auto res
= isl_map_get_space(get());
10562 return manage(res
);
10565 isl::checked::space
map::get_space() const
10570 isl::checked::map
map::subtract(isl::checked::map map2
) const
10572 auto res
= isl_map_subtract(copy(), map2
.release());
10573 return manage(res
);
10576 isl::checked::union_map
map::subtract(const isl::checked::union_map
&umap2
) const
10578 return isl::checked::union_map(*this).subtract(umap2
);
10581 isl::checked::map
map::subtract(const isl::checked::basic_map
&map2
) const
10583 return this->subtract(isl::checked::map(map2
));
10586 isl::checked::union_map
map::subtract_domain(const isl::checked::union_set
&dom
) const
10588 return isl::checked::union_map(*this).subtract_domain(dom
);
10591 isl::checked::union_map
map::subtract_range(const isl::checked::union_set
&dom
) const
10593 return isl::checked::union_map(*this).subtract_range(dom
);
10596 isl::checked::map_list
map::to_list() const
10598 auto res
= isl_map_to_list(copy());
10599 return manage(res
);
10602 isl::checked::union_map
map::to_union_map() const
10604 auto res
= isl_map_to_union_map(copy());
10605 return manage(res
);
10608 isl::checked::map
map::uncurry() const
10610 auto res
= isl_map_uncurry(copy());
10611 return manage(res
);
10614 isl::checked::map
map::unite(isl::checked::map map2
) const
10616 auto res
= isl_map_union(copy(), map2
.release());
10617 return manage(res
);
10620 isl::checked::union_map
map::unite(const isl::checked::union_map
&umap2
) const
10622 return isl::checked::union_map(*this).unite(umap2
);
10625 isl::checked::map
map::unite(const isl::checked::basic_map
&map2
) const
10627 return this->unite(isl::checked::map(map2
));
10630 isl::checked::map
map::universe(isl::checked::space space
)
10632 auto res
= isl_map_universe(space
.release());
10633 return manage(res
);
10636 isl::checked::basic_map
map::unshifted_simple_hull() const
10638 auto res
= isl_map_unshifted_simple_hull(copy());
10639 return manage(res
);
10642 isl::checked::map
map::upper_bound(isl::checked::multi_pw_aff upper
) const
10644 auto res
= isl_map_upper_bound_multi_pw_aff(copy(), upper
.release());
10645 return manage(res
);
10648 isl::checked::set
map::wrap() const
10650 auto res
= isl_map_wrap(copy());
10651 return manage(res
);
10654 isl::checked::map
map::zip() const
10656 auto res
= isl_map_zip(copy());
10657 return manage(res
);
10660 inline std::ostream
&operator<<(std::ostream
&os
, const map
&obj
)
10662 char *str
= isl_map_to_str(obj
.get());
10664 os
.setstate(std::ios_base::badbit
);
10672 // implementations for isl::map_list
10673 map_list
manage(__isl_take isl_map_list
*ptr
) {
10674 return map_list(ptr
);
10676 map_list
manage_copy(__isl_keep isl_map_list
*ptr
) {
10677 ptr
= isl_map_list_copy(ptr
);
10678 return map_list(ptr
);
10681 map_list::map_list(__isl_take isl_map_list
*ptr
)
10684 map_list::map_list()
10687 map_list::map_list(const map_list
&obj
)
10693 map_list::map_list(isl::checked::ctx ctx
, int n
)
10695 auto res
= isl_map_list_alloc(ctx
.release(), n
);
10699 map_list::map_list(isl::checked::map el
)
10701 auto res
= isl_map_list_from_map(el
.release());
10705 map_list::map_list(isl::checked::ctx ctx
, const std::string
&str
)
10707 auto res
= isl_map_list_read_from_str(ctx
.release(), str
.c_str());
10711 map_list
&map_list::operator=(map_list obj
) {
10712 std::swap(this->ptr
, obj
.ptr
);
10716 map_list::~map_list() {
10718 isl_map_list_free(ptr
);
10721 __isl_give isl_map_list
*map_list::copy() const & {
10722 return isl_map_list_copy(ptr
);
10725 __isl_keep isl_map_list
*map_list::get() const {
10729 __isl_give isl_map_list
*map_list::release() {
10730 isl_map_list
*tmp
= ptr
;
10735 bool map_list::is_null() const {
10736 return ptr
== nullptr;
10739 isl::checked::ctx
map_list::ctx() const {
10740 return isl::checked::ctx(isl_map_list_get_ctx(ptr
));
10743 isl::checked::map_list
map_list::add(isl::checked::map el
) const
10745 auto res
= isl_map_list_add(copy(), el
.release());
10746 return manage(res
);
10749 isl::checked::map
map_list::at(int index
) const
10751 auto res
= isl_map_list_get_at(get(), index
);
10752 return manage(res
);
10755 isl::checked::map
map_list::get_at(int index
) const
10760 isl::checked::map_list
map_list::clear() const
10762 auto res
= isl_map_list_clear(copy());
10763 return manage(res
);
10766 isl::checked::map_list
map_list::concat(isl::checked::map_list list2
) const
10768 auto res
= isl_map_list_concat(copy(), list2
.release());
10769 return manage(res
);
10772 isl::checked::map_list
map_list::drop(unsigned int first
, unsigned int n
) const
10774 auto res
= isl_map_list_drop(copy(), first
, n
);
10775 return manage(res
);
10778 stat
map_list::foreach(const std::function
<stat(isl::checked::map
)> &fn
) const
10781 std::function
<stat(isl::checked::map
)> func
;
10782 } fn_data
= { fn
};
10783 auto fn_lambda
= [](isl_map
*arg_0
, void *arg_1
) -> isl_stat
{
10784 auto *data
= static_cast<struct fn_data
*>(arg_1
);
10785 auto ret
= (data
->func
)(manage(arg_0
));
10786 return ret
.release();
10788 auto res
= isl_map_list_foreach(get(), fn_lambda
, &fn_data
);
10789 return manage(res
);
10792 stat
map_list::foreach_scc(const std::function
<boolean(isl::checked::map
, isl::checked::map
)> &follows
, const std::function
<stat(isl::checked::map_list
)> &fn
) const
10794 struct follows_data
{
10795 std::function
<boolean(isl::checked::map
, isl::checked::map
)> func
;
10796 } follows_data
= { follows
};
10797 auto follows_lambda
= [](isl_map
*arg_0
, isl_map
*arg_1
, void *arg_2
) -> isl_bool
{
10798 auto *data
= static_cast<struct follows_data
*>(arg_2
);
10799 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
10800 return ret
.release();
10803 std::function
<stat(isl::checked::map_list
)> func
;
10804 } fn_data
= { fn
};
10805 auto fn_lambda
= [](isl_map_list
*arg_0
, void *arg_1
) -> isl_stat
{
10806 auto *data
= static_cast<struct fn_data
*>(arg_1
);
10807 auto ret
= (data
->func
)(manage(arg_0
));
10808 return ret
.release();
10810 auto res
= isl_map_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
10811 return manage(res
);
10814 isl::checked::map_list
map_list::insert(unsigned int pos
, isl::checked::map el
) const
10816 auto res
= isl_map_list_insert(copy(), pos
, el
.release());
10817 return manage(res
);
10820 isl::checked::map_list
map_list::set_at(int index
, isl::checked::map el
) const
10822 auto res
= isl_map_list_set_at(copy(), index
, el
.release());
10823 return manage(res
);
10826 class size
map_list::size() const
10828 auto res
= isl_map_list_size(get());
10829 return manage(res
);
10832 inline std::ostream
&operator<<(std::ostream
&os
, const map_list
&obj
)
10834 char *str
= isl_map_list_to_str(obj
.get());
10836 os
.setstate(std::ios_base::badbit
);
10844 // implementations for isl::multi_aff
10845 multi_aff
manage(__isl_take isl_multi_aff
*ptr
) {
10846 return multi_aff(ptr
);
10848 multi_aff
manage_copy(__isl_keep isl_multi_aff
*ptr
) {
10849 ptr
= isl_multi_aff_copy(ptr
);
10850 return multi_aff(ptr
);
10853 multi_aff::multi_aff(__isl_take isl_multi_aff
*ptr
)
10856 multi_aff::multi_aff()
10859 multi_aff::multi_aff(const multi_aff
&obj
)
10865 multi_aff::multi_aff(isl::checked::aff aff
)
10867 auto res
= isl_multi_aff_from_aff(aff
.release());
10871 multi_aff::multi_aff(isl::checked::space space
, isl::checked::aff_list list
)
10873 auto res
= isl_multi_aff_from_aff_list(space
.release(), list
.release());
10877 multi_aff::multi_aff(isl::checked::ctx ctx
, const std::string
&str
)
10879 auto res
= isl_multi_aff_read_from_str(ctx
.release(), str
.c_str());
10883 multi_aff
&multi_aff::operator=(multi_aff obj
) {
10884 std::swap(this->ptr
, obj
.ptr
);
10888 multi_aff::~multi_aff() {
10890 isl_multi_aff_free(ptr
);
10893 __isl_give isl_multi_aff
*multi_aff::copy() const & {
10894 return isl_multi_aff_copy(ptr
);
10897 __isl_keep isl_multi_aff
*multi_aff::get() const {
10901 __isl_give isl_multi_aff
*multi_aff::release() {
10902 isl_multi_aff
*tmp
= ptr
;
10907 bool multi_aff::is_null() const {
10908 return ptr
== nullptr;
10911 isl::checked::ctx
multi_aff::ctx() const {
10912 return isl::checked::ctx(isl_multi_aff_get_ctx(ptr
));
10915 isl::checked::multi_aff
multi_aff::add(isl::checked::multi_aff multi2
) const
10917 auto res
= isl_multi_aff_add(copy(), multi2
.release());
10918 return manage(res
);
10921 isl::checked::multi_pw_aff
multi_aff::add(const isl::checked::multi_pw_aff
&multi2
) const
10923 return isl::checked::pw_multi_aff(*this).add(multi2
);
10926 isl::checked::multi_union_pw_aff
multi_aff::add(const isl::checked::multi_union_pw_aff
&multi2
) const
10928 return isl::checked::pw_multi_aff(*this).add(multi2
);
10931 isl::checked::pw_multi_aff
multi_aff::add(const isl::checked::pw_multi_aff
&pma2
) const
10933 return isl::checked::pw_multi_aff(*this).add(pma2
);
10936 isl::checked::union_pw_multi_aff
multi_aff::add(const isl::checked::union_pw_multi_aff
&upma2
) const
10938 return isl::checked::pw_multi_aff(*this).add(upma2
);
10941 isl::checked::multi_aff
multi_aff::add(const isl::checked::aff
&multi2
) const
10943 return this->add(isl::checked::multi_aff(multi2
));
10946 isl::checked::multi_aff
multi_aff::add_constant(isl::checked::multi_val mv
) const
10948 auto res
= isl_multi_aff_add_constant_multi_val(copy(), mv
.release());
10949 return manage(res
);
10952 isl::checked::multi_aff
multi_aff::add_constant(isl::checked::val v
) const
10954 auto res
= isl_multi_aff_add_constant_val(copy(), v
.release());
10955 return manage(res
);
10958 isl::checked::multi_aff
multi_aff::add_constant(long v
) const
10960 return this->add_constant(isl::checked::val(ctx(), v
));
10963 isl::checked::union_pw_multi_aff
multi_aff::apply(const isl::checked::union_pw_multi_aff
&upma2
) const
10965 return isl::checked::pw_multi_aff(*this).apply(upma2
);
10968 isl::checked::map
multi_aff::as_map() const
10970 auto res
= isl_multi_aff_as_map(copy());
10971 return manage(res
);
10974 isl::checked::multi_aff
multi_aff::as_multi_aff() const
10976 return isl::checked::pw_multi_aff(*this).as_multi_aff();
10979 isl::checked::multi_union_pw_aff
multi_aff::as_multi_union_pw_aff() const
10981 return isl::checked::pw_multi_aff(*this).as_multi_union_pw_aff();
10984 isl::checked::pw_multi_aff
multi_aff::as_pw_multi_aff() const
10986 return isl::checked::pw_multi_aff(*this).as_pw_multi_aff();
10989 isl::checked::set
multi_aff::as_set() const
10991 auto res
= isl_multi_aff_as_set(copy());
10992 return manage(res
);
10995 isl::checked::union_map
multi_aff::as_union_map() const
10997 return isl::checked::pw_multi_aff(*this).as_union_map();
11000 isl::checked::aff
multi_aff::at(int pos
) const
11002 auto res
= isl_multi_aff_get_at(get(), pos
);
11003 return manage(res
);
11006 isl::checked::aff
multi_aff::get_at(int pos
) const
11011 isl::checked::basic_set
multi_aff::bind(isl::checked::multi_id tuple
) const
11013 auto res
= isl_multi_aff_bind(copy(), tuple
.release());
11014 return manage(res
);
11017 isl::checked::multi_aff
multi_aff::bind_domain(isl::checked::multi_id tuple
) const
11019 auto res
= isl_multi_aff_bind_domain(copy(), tuple
.release());
11020 return manage(res
);
11023 isl::checked::multi_aff
multi_aff::bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const
11025 auto res
= isl_multi_aff_bind_domain_wrapped_domain(copy(), tuple
.release());
11026 return manage(res
);
11029 isl::checked::pw_multi_aff
multi_aff::coalesce() const
11031 return isl::checked::pw_multi_aff(*this).coalesce();
11034 isl::checked::multi_val
multi_aff::constant_multi_val() const
11036 auto res
= isl_multi_aff_get_constant_multi_val(get());
11037 return manage(res
);
11040 isl::checked::multi_val
multi_aff::get_constant_multi_val() const
11042 return constant_multi_val();
11045 isl::checked::set
multi_aff::domain() const
11047 return isl::checked::pw_multi_aff(*this).domain();
11050 isl::checked::multi_aff
multi_aff::domain_map(isl::checked::space space
)
11052 auto res
= isl_multi_aff_domain_map(space
.release());
11053 return manage(res
);
11056 isl::checked::multi_aff
multi_aff::domain_reverse() const
11058 auto res
= isl_multi_aff_domain_reverse(copy());
11059 return manage(res
);
11062 isl::checked::pw_multi_aff
multi_aff::drop_unused_params() const
11064 return isl::checked::pw_multi_aff(*this).drop_unused_params();
11067 isl::checked::pw_multi_aff
multi_aff::extract_pw_multi_aff(const isl::checked::space
&space
) const
11069 return isl::checked::pw_multi_aff(*this).extract_pw_multi_aff(space
);
11072 isl::checked::multi_aff
multi_aff::flat_range_product(isl::checked::multi_aff multi2
) const
11074 auto res
= isl_multi_aff_flat_range_product(copy(), multi2
.release());
11075 return manage(res
);
11078 isl::checked::multi_pw_aff
multi_aff::flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const
11080 return isl::checked::pw_multi_aff(*this).flat_range_product(multi2
);
11083 isl::checked::multi_union_pw_aff
multi_aff::flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
11085 return isl::checked::pw_multi_aff(*this).flat_range_product(multi2
);
11088 isl::checked::pw_multi_aff
multi_aff::flat_range_product(const isl::checked::pw_multi_aff
&pma2
) const
11090 return isl::checked::pw_multi_aff(*this).flat_range_product(pma2
);
11093 isl::checked::union_pw_multi_aff
multi_aff::flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
11095 return isl::checked::pw_multi_aff(*this).flat_range_product(upma2
);
11098 isl::checked::multi_aff
multi_aff::flat_range_product(const isl::checked::aff
&multi2
) const
11100 return this->flat_range_product(isl::checked::multi_aff(multi2
));
11103 isl::checked::multi_aff
multi_aff::floor() const
11105 auto res
= isl_multi_aff_floor(copy());
11106 return manage(res
);
11109 stat
multi_aff::foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const
11111 return isl::checked::pw_multi_aff(*this).foreach_piece(fn
);
11114 isl::checked::multi_aff
multi_aff::gist(isl::checked::set context
) const
11116 auto res
= isl_multi_aff_gist(copy(), context
.release());
11117 return manage(res
);
11120 isl::checked::union_pw_multi_aff
multi_aff::gist(const isl::checked::union_set
&context
) const
11122 return isl::checked::pw_multi_aff(*this).gist(context
);
11125 isl::checked::multi_aff
multi_aff::gist(const isl::checked::basic_set
&context
) const
11127 return this->gist(isl::checked::set(context
));
11130 isl::checked::multi_aff
multi_aff::gist(const isl::checked::point
&context
) const
11132 return this->gist(isl::checked::set(context
));
11135 isl::checked::multi_aff
multi_aff::gist_params(isl::checked::set context
) const
11137 auto res
= isl_multi_aff_gist_params(copy(), context
.release());
11138 return manage(res
);
11141 boolean
multi_aff::has_range_tuple_id() const
11143 auto res
= isl_multi_aff_has_range_tuple_id(get());
11144 return manage(res
);
11147 isl::checked::multi_aff
multi_aff::identity() const
11149 auto res
= isl_multi_aff_identity_multi_aff(copy());
11150 return manage(res
);
11153 isl::checked::multi_aff
multi_aff::identity_on_domain(isl::checked::space space
)
11155 auto res
= isl_multi_aff_identity_on_domain_space(space
.release());
11156 return manage(res
);
11159 isl::checked::multi_aff
multi_aff::insert_domain(isl::checked::space domain
) const
11161 auto res
= isl_multi_aff_insert_domain(copy(), domain
.release());
11162 return manage(res
);
11165 isl::checked::pw_multi_aff
multi_aff::intersect_domain(const isl::checked::set
&set
) const
11167 return isl::checked::pw_multi_aff(*this).intersect_domain(set
);
11170 isl::checked::union_pw_multi_aff
multi_aff::intersect_domain(const isl::checked::space
&space
) const
11172 return isl::checked::pw_multi_aff(*this).intersect_domain(space
);
11175 isl::checked::union_pw_multi_aff
multi_aff::intersect_domain(const isl::checked::union_set
&uset
) const
11177 return isl::checked::pw_multi_aff(*this).intersect_domain(uset
);
11180 isl::checked::union_pw_multi_aff
multi_aff::intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const
11182 return isl::checked::pw_multi_aff(*this).intersect_domain_wrapped_domain(uset
);
11185 isl::checked::union_pw_multi_aff
multi_aff::intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const
11187 return isl::checked::pw_multi_aff(*this).intersect_domain_wrapped_range(uset
);
11190 isl::checked::pw_multi_aff
multi_aff::intersect_params(const isl::checked::set
&set
) const
11192 return isl::checked::pw_multi_aff(*this).intersect_params(set
);
11195 boolean
multi_aff::involves_locals() const
11197 auto res
= isl_multi_aff_involves_locals(get());
11198 return manage(res
);
11201 boolean
multi_aff::involves_nan() const
11203 auto res
= isl_multi_aff_involves_nan(get());
11204 return manage(res
);
11207 boolean
multi_aff::involves_param(const isl::checked::id
&id
) const
11209 return isl::checked::pw_multi_aff(*this).involves_param(id
);
11212 boolean
multi_aff::involves_param(const std::string
&id
) const
11214 return this->involves_param(isl::checked::id(ctx(), id
));
11217 boolean
multi_aff::involves_param(const isl::checked::id_list
&list
) const
11219 return isl::checked::pw_multi_aff(*this).involves_param(list
);
11222 boolean
multi_aff::isa_multi_aff() const
11224 return isl::checked::pw_multi_aff(*this).isa_multi_aff();
11227 boolean
multi_aff::isa_pw_multi_aff() const
11229 return isl::checked::pw_multi_aff(*this).isa_pw_multi_aff();
11232 isl::checked::aff_list
multi_aff::list() const
11234 auto res
= isl_multi_aff_get_list(get());
11235 return manage(res
);
11238 isl::checked::aff_list
multi_aff::get_list() const
11243 isl::checked::multi_pw_aff
multi_aff::max(const isl::checked::multi_pw_aff
&multi2
) const
11245 return isl::checked::pw_multi_aff(*this).max(multi2
);
11248 isl::checked::multi_val
multi_aff::max_multi_val() const
11250 return isl::checked::pw_multi_aff(*this).max_multi_val();
11253 isl::checked::multi_pw_aff
multi_aff::min(const isl::checked::multi_pw_aff
&multi2
) const
11255 return isl::checked::pw_multi_aff(*this).min(multi2
);
11258 isl::checked::multi_val
multi_aff::min_multi_val() const
11260 return isl::checked::pw_multi_aff(*this).min_multi_val();
11263 isl::checked::multi_aff
multi_aff::multi_val_on_domain(isl::checked::space space
, isl::checked::multi_val mv
)
11265 auto res
= isl_multi_aff_multi_val_on_domain_space(space
.release(), mv
.release());
11266 return manage(res
);
11269 class size
multi_aff::n_piece() const
11271 return isl::checked::pw_multi_aff(*this).n_piece();
11274 isl::checked::multi_aff
multi_aff::neg() const
11276 auto res
= isl_multi_aff_neg(copy());
11277 return manage(res
);
11280 boolean
multi_aff::plain_is_empty() const
11282 return isl::checked::pw_multi_aff(*this).plain_is_empty();
11285 boolean
multi_aff::plain_is_equal(const isl::checked::multi_aff
&multi2
) const
11287 auto res
= isl_multi_aff_plain_is_equal(get(), multi2
.get());
11288 return manage(res
);
11291 boolean
multi_aff::plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const
11293 return isl::checked::pw_multi_aff(*this).plain_is_equal(multi2
);
11296 boolean
multi_aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
11298 return isl::checked::pw_multi_aff(*this).plain_is_equal(multi2
);
11301 boolean
multi_aff::plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const
11303 return isl::checked::pw_multi_aff(*this).plain_is_equal(pma2
);
11306 boolean
multi_aff::plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const
11308 return isl::checked::pw_multi_aff(*this).plain_is_equal(upma2
);
11311 boolean
multi_aff::plain_is_equal(const isl::checked::aff
&multi2
) const
11313 return this->plain_is_equal(isl::checked::multi_aff(multi2
));
11316 isl::checked::pw_multi_aff
multi_aff::preimage_domain_wrapped_domain(const isl::checked::pw_multi_aff
&pma2
) const
11318 return isl::checked::pw_multi_aff(*this).preimage_domain_wrapped_domain(pma2
);
11321 isl::checked::union_pw_multi_aff
multi_aff::preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const
11323 return isl::checked::pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2
);
11326 isl::checked::multi_aff
multi_aff::product(isl::checked::multi_aff multi2
) const
11328 auto res
= isl_multi_aff_product(copy(), multi2
.release());
11329 return manage(res
);
11332 isl::checked::multi_pw_aff
multi_aff::product(const isl::checked::multi_pw_aff
&multi2
) const
11334 return isl::checked::pw_multi_aff(*this).product(multi2
);
11337 isl::checked::pw_multi_aff
multi_aff::product(const isl::checked::pw_multi_aff
&pma2
) const
11339 return isl::checked::pw_multi_aff(*this).product(pma2
);
11342 isl::checked::multi_aff
multi_aff::product(const isl::checked::aff
&multi2
) const
11344 return this->product(isl::checked::multi_aff(multi2
));
11347 isl::checked::multi_aff
multi_aff::pullback(isl::checked::multi_aff ma2
) const
11349 auto res
= isl_multi_aff_pullback_multi_aff(copy(), ma2
.release());
11350 return manage(res
);
11353 isl::checked::multi_pw_aff
multi_aff::pullback(const isl::checked::multi_pw_aff
&mpa2
) const
11355 return isl::checked::pw_multi_aff(*this).pullback(mpa2
);
11358 isl::checked::pw_multi_aff
multi_aff::pullback(const isl::checked::pw_multi_aff
&pma2
) const
11360 return isl::checked::pw_multi_aff(*this).pullback(pma2
);
11363 isl::checked::union_pw_multi_aff
multi_aff::pullback(const isl::checked::union_pw_multi_aff
&upma2
) const
11365 return isl::checked::pw_multi_aff(*this).pullback(upma2
);
11368 isl::checked::multi_aff
multi_aff::pullback(const isl::checked::aff
&ma2
) const
11370 return this->pullback(isl::checked::multi_aff(ma2
));
11373 isl::checked::pw_multi_aff_list
multi_aff::pw_multi_aff_list() const
11375 return isl::checked::pw_multi_aff(*this).pw_multi_aff_list();
11378 isl::checked::pw_multi_aff
multi_aff::range_factor_domain() const
11380 return isl::checked::pw_multi_aff(*this).range_factor_domain();
11383 isl::checked::pw_multi_aff
multi_aff::range_factor_range() const
11385 return isl::checked::pw_multi_aff(*this).range_factor_range();
11388 isl::checked::multi_aff
multi_aff::range_map(isl::checked::space space
)
11390 auto res
= isl_multi_aff_range_map(space
.release());
11391 return manage(res
);
11394 isl::checked::multi_aff
multi_aff::range_product(isl::checked::multi_aff multi2
) const
11396 auto res
= isl_multi_aff_range_product(copy(), multi2
.release());
11397 return manage(res
);
11400 isl::checked::multi_pw_aff
multi_aff::range_product(const isl::checked::multi_pw_aff
&multi2
) const
11402 return isl::checked::pw_multi_aff(*this).range_product(multi2
);
11405 isl::checked::multi_union_pw_aff
multi_aff::range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
11407 return isl::checked::pw_multi_aff(*this).range_product(multi2
);
11410 isl::checked::pw_multi_aff
multi_aff::range_product(const isl::checked::pw_multi_aff
&pma2
) const
11412 return isl::checked::pw_multi_aff(*this).range_product(pma2
);
11415 isl::checked::union_pw_multi_aff
multi_aff::range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
11417 return isl::checked::pw_multi_aff(*this).range_product(upma2
);
11420 isl::checked::multi_aff
multi_aff::range_product(const isl::checked::aff
&multi2
) const
11422 return this->range_product(isl::checked::multi_aff(multi2
));
11425 isl::checked::id
multi_aff::range_tuple_id() const
11427 auto res
= isl_multi_aff_get_range_tuple_id(get());
11428 return manage(res
);
11431 isl::checked::id
multi_aff::get_range_tuple_id() const
11433 return range_tuple_id();
11436 isl::checked::multi_aff
multi_aff::reset_range_tuple_id() const
11438 auto res
= isl_multi_aff_reset_range_tuple_id(copy());
11439 return manage(res
);
11442 isl::checked::multi_aff
multi_aff::scale(isl::checked::multi_val mv
) const
11444 auto res
= isl_multi_aff_scale_multi_val(copy(), mv
.release());
11445 return manage(res
);
11448 isl::checked::multi_aff
multi_aff::scale(isl::checked::val v
) const
11450 auto res
= isl_multi_aff_scale_val(copy(), v
.release());
11451 return manage(res
);
11454 isl::checked::multi_aff
multi_aff::scale(long v
) const
11456 return this->scale(isl::checked::val(ctx(), v
));
11459 isl::checked::multi_aff
multi_aff::scale_down(isl::checked::multi_val mv
) const
11461 auto res
= isl_multi_aff_scale_down_multi_val(copy(), mv
.release());
11462 return manage(res
);
11465 isl::checked::multi_aff
multi_aff::scale_down(isl::checked::val v
) const
11467 auto res
= isl_multi_aff_scale_down_val(copy(), v
.release());
11468 return manage(res
);
11471 isl::checked::multi_aff
multi_aff::scale_down(long v
) const
11473 return this->scale_down(isl::checked::val(ctx(), v
));
11476 isl::checked::multi_aff
multi_aff::set_at(int pos
, isl::checked::aff el
) const
11478 auto res
= isl_multi_aff_set_at(copy(), pos
, el
.release());
11479 return manage(res
);
11482 isl::checked::multi_pw_aff
multi_aff::set_at(int pos
, const isl::checked::pw_aff
&el
) const
11484 return isl::checked::pw_multi_aff(*this).set_at(pos
, el
);
11487 isl::checked::multi_union_pw_aff
multi_aff::set_at(int pos
, const isl::checked::union_pw_aff
&el
) const
11489 return isl::checked::pw_multi_aff(*this).set_at(pos
, el
);
11492 isl::checked::multi_aff
multi_aff::set_range_tuple(isl::checked::id id
) const
11494 auto res
= isl_multi_aff_set_range_tuple_id(copy(), id
.release());
11495 return manage(res
);
11498 isl::checked::multi_aff
multi_aff::set_range_tuple(const std::string
&id
) const
11500 return this->set_range_tuple(isl::checked::id(ctx(), id
));
11503 class size
multi_aff::size() const
11505 auto res
= isl_multi_aff_size(get());
11506 return manage(res
);
11509 isl::checked::space
multi_aff::space() const
11511 auto res
= isl_multi_aff_get_space(get());
11512 return manage(res
);
11515 isl::checked::space
multi_aff::get_space() const
11520 isl::checked::multi_aff
multi_aff::sub(isl::checked::multi_aff multi2
) const
11522 auto res
= isl_multi_aff_sub(copy(), multi2
.release());
11523 return manage(res
);
11526 isl::checked::multi_pw_aff
multi_aff::sub(const isl::checked::multi_pw_aff
&multi2
) const
11528 return isl::checked::pw_multi_aff(*this).sub(multi2
);
11531 isl::checked::multi_union_pw_aff
multi_aff::sub(const isl::checked::multi_union_pw_aff
&multi2
) const
11533 return isl::checked::pw_multi_aff(*this).sub(multi2
);
11536 isl::checked::pw_multi_aff
multi_aff::sub(const isl::checked::pw_multi_aff
&pma2
) const
11538 return isl::checked::pw_multi_aff(*this).sub(pma2
);
11541 isl::checked::union_pw_multi_aff
multi_aff::sub(const isl::checked::union_pw_multi_aff
&upma2
) const
11543 return isl::checked::pw_multi_aff(*this).sub(upma2
);
11546 isl::checked::multi_aff
multi_aff::sub(const isl::checked::aff
&multi2
) const
11548 return this->sub(isl::checked::multi_aff(multi2
));
11551 isl::checked::pw_multi_aff
multi_aff::subtract_domain(const isl::checked::set
&set
) const
11553 return isl::checked::pw_multi_aff(*this).subtract_domain(set
);
11556 isl::checked::union_pw_multi_aff
multi_aff::subtract_domain(const isl::checked::space
&space
) const
11558 return isl::checked::pw_multi_aff(*this).subtract_domain(space
);
11561 isl::checked::union_pw_multi_aff
multi_aff::subtract_domain(const isl::checked::union_set
&uset
) const
11563 return isl::checked::pw_multi_aff(*this).subtract_domain(uset
);
11566 isl::checked::pw_multi_aff_list
multi_aff::to_list() const
11568 return isl::checked::pw_multi_aff(*this).to_list();
11571 isl::checked::multi_pw_aff
multi_aff::to_multi_pw_aff() const
11573 auto res
= isl_multi_aff_to_multi_pw_aff(copy());
11574 return manage(res
);
11577 isl::checked::multi_union_pw_aff
multi_aff::to_multi_union_pw_aff() const
11579 auto res
= isl_multi_aff_to_multi_union_pw_aff(copy());
11580 return manage(res
);
11583 isl::checked::pw_multi_aff
multi_aff::to_pw_multi_aff() const
11585 auto res
= isl_multi_aff_to_pw_multi_aff(copy());
11586 return manage(res
);
11589 isl::checked::union_pw_multi_aff
multi_aff::to_union_pw_multi_aff() const
11591 return isl::checked::pw_multi_aff(*this).to_union_pw_multi_aff();
11594 isl::checked::multi_aff
multi_aff::unbind_params_insert_domain(isl::checked::multi_id domain
) const
11596 auto res
= isl_multi_aff_unbind_params_insert_domain(copy(), domain
.release());
11597 return manage(res
);
11600 isl::checked::multi_pw_aff
multi_aff::union_add(const isl::checked::multi_pw_aff
&mpa2
) const
11602 return isl::checked::pw_multi_aff(*this).union_add(mpa2
);
11605 isl::checked::multi_union_pw_aff
multi_aff::union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const
11607 return isl::checked::pw_multi_aff(*this).union_add(mupa2
);
11610 isl::checked::pw_multi_aff
multi_aff::union_add(const isl::checked::pw_multi_aff
&pma2
) const
11612 return isl::checked::pw_multi_aff(*this).union_add(pma2
);
11615 isl::checked::union_pw_multi_aff
multi_aff::union_add(const isl::checked::union_pw_multi_aff
&upma2
) const
11617 return isl::checked::pw_multi_aff(*this).union_add(upma2
);
11620 isl::checked::multi_aff
multi_aff::zero(isl::checked::space space
)
11622 auto res
= isl_multi_aff_zero(space
.release());
11623 return manage(res
);
11626 inline std::ostream
&operator<<(std::ostream
&os
, const multi_aff
&obj
)
11628 char *str
= isl_multi_aff_to_str(obj
.get());
11630 os
.setstate(std::ios_base::badbit
);
11638 // implementations for isl::multi_id
11639 multi_id
manage(__isl_take isl_multi_id
*ptr
) {
11640 return multi_id(ptr
);
11642 multi_id
manage_copy(__isl_keep isl_multi_id
*ptr
) {
11643 ptr
= isl_multi_id_copy(ptr
);
11644 return multi_id(ptr
);
11647 multi_id::multi_id(__isl_take isl_multi_id
*ptr
)
11650 multi_id::multi_id()
11653 multi_id::multi_id(const multi_id
&obj
)
11659 multi_id::multi_id(isl::checked::space space
, isl::checked::id_list list
)
11661 auto res
= isl_multi_id_from_id_list(space
.release(), list
.release());
11665 multi_id::multi_id(isl::checked::ctx ctx
, const std::string
&str
)
11667 auto res
= isl_multi_id_read_from_str(ctx
.release(), str
.c_str());
11671 multi_id
&multi_id::operator=(multi_id obj
) {
11672 std::swap(this->ptr
, obj
.ptr
);
11676 multi_id::~multi_id() {
11678 isl_multi_id_free(ptr
);
11681 __isl_give isl_multi_id
*multi_id::copy() const & {
11682 return isl_multi_id_copy(ptr
);
11685 __isl_keep isl_multi_id
*multi_id::get() const {
11689 __isl_give isl_multi_id
*multi_id::release() {
11690 isl_multi_id
*tmp
= ptr
;
11695 bool multi_id::is_null() const {
11696 return ptr
== nullptr;
11699 isl::checked::ctx
multi_id::ctx() const {
11700 return isl::checked::ctx(isl_multi_id_get_ctx(ptr
));
11703 isl::checked::id
multi_id::at(int pos
) const
11705 auto res
= isl_multi_id_get_at(get(), pos
);
11706 return manage(res
);
11709 isl::checked::id
multi_id::get_at(int pos
) const
11714 isl::checked::multi_id
multi_id::flat_range_product(isl::checked::multi_id multi2
) const
11716 auto res
= isl_multi_id_flat_range_product(copy(), multi2
.release());
11717 return manage(res
);
11720 isl::checked::id_list
multi_id::list() const
11722 auto res
= isl_multi_id_get_list(get());
11723 return manage(res
);
11726 isl::checked::id_list
multi_id::get_list() const
11731 boolean
multi_id::plain_is_equal(const isl::checked::multi_id
&multi2
) const
11733 auto res
= isl_multi_id_plain_is_equal(get(), multi2
.get());
11734 return manage(res
);
11737 isl::checked::multi_id
multi_id::range_product(isl::checked::multi_id multi2
) const
11739 auto res
= isl_multi_id_range_product(copy(), multi2
.release());
11740 return manage(res
);
11743 isl::checked::multi_id
multi_id::set_at(int pos
, isl::checked::id el
) const
11745 auto res
= isl_multi_id_set_at(copy(), pos
, el
.release());
11746 return manage(res
);
11749 isl::checked::multi_id
multi_id::set_at(int pos
, const std::string
&el
) const
11751 return this->set_at(pos
, isl::checked::id(ctx(), el
));
11754 class size
multi_id::size() const
11756 auto res
= isl_multi_id_size(get());
11757 return manage(res
);
11760 isl::checked::space
multi_id::space() const
11762 auto res
= isl_multi_id_get_space(get());
11763 return manage(res
);
11766 isl::checked::space
multi_id::get_space() const
11771 inline std::ostream
&operator<<(std::ostream
&os
, const multi_id
&obj
)
11773 char *str
= isl_multi_id_to_str(obj
.get());
11775 os
.setstate(std::ios_base::badbit
);
11783 // implementations for isl::multi_pw_aff
11784 multi_pw_aff
manage(__isl_take isl_multi_pw_aff
*ptr
) {
11785 return multi_pw_aff(ptr
);
11787 multi_pw_aff
manage_copy(__isl_keep isl_multi_pw_aff
*ptr
) {
11788 ptr
= isl_multi_pw_aff_copy(ptr
);
11789 return multi_pw_aff(ptr
);
11792 multi_pw_aff::multi_pw_aff(__isl_take isl_multi_pw_aff
*ptr
)
11795 multi_pw_aff::multi_pw_aff()
11798 multi_pw_aff::multi_pw_aff(const multi_pw_aff
&obj
)
11804 multi_pw_aff::multi_pw_aff(isl::checked::aff aff
)
11806 auto res
= isl_multi_pw_aff_from_aff(aff
.release());
11810 multi_pw_aff::multi_pw_aff(isl::checked::multi_aff ma
)
11812 auto res
= isl_multi_pw_aff_from_multi_aff(ma
.release());
11816 multi_pw_aff::multi_pw_aff(isl::checked::pw_aff pa
)
11818 auto res
= isl_multi_pw_aff_from_pw_aff(pa
.release());
11822 multi_pw_aff::multi_pw_aff(isl::checked::space space
, isl::checked::pw_aff_list list
)
11824 auto res
= isl_multi_pw_aff_from_pw_aff_list(space
.release(), list
.release());
11828 multi_pw_aff::multi_pw_aff(isl::checked::pw_multi_aff pma
)
11830 auto res
= isl_multi_pw_aff_from_pw_multi_aff(pma
.release());
11834 multi_pw_aff::multi_pw_aff(isl::checked::ctx ctx
, const std::string
&str
)
11836 auto res
= isl_multi_pw_aff_read_from_str(ctx
.release(), str
.c_str());
11840 multi_pw_aff
&multi_pw_aff::operator=(multi_pw_aff obj
) {
11841 std::swap(this->ptr
, obj
.ptr
);
11845 multi_pw_aff::~multi_pw_aff() {
11847 isl_multi_pw_aff_free(ptr
);
11850 __isl_give isl_multi_pw_aff
*multi_pw_aff::copy() const & {
11851 return isl_multi_pw_aff_copy(ptr
);
11854 __isl_keep isl_multi_pw_aff
*multi_pw_aff::get() const {
11858 __isl_give isl_multi_pw_aff
*multi_pw_aff::release() {
11859 isl_multi_pw_aff
*tmp
= ptr
;
11864 bool multi_pw_aff::is_null() const {
11865 return ptr
== nullptr;
11868 isl::checked::ctx
multi_pw_aff::ctx() const {
11869 return isl::checked::ctx(isl_multi_pw_aff_get_ctx(ptr
));
11872 isl::checked::multi_pw_aff
multi_pw_aff::add(isl::checked::multi_pw_aff multi2
) const
11874 auto res
= isl_multi_pw_aff_add(copy(), multi2
.release());
11875 return manage(res
);
11878 isl::checked::multi_union_pw_aff
multi_pw_aff::add(const isl::checked::multi_union_pw_aff
&multi2
) const
11880 return isl::checked::multi_union_pw_aff(*this).add(multi2
);
11883 isl::checked::multi_pw_aff
multi_pw_aff::add(const isl::checked::aff
&multi2
) const
11885 return this->add(isl::checked::multi_pw_aff(multi2
));
11888 isl::checked::multi_pw_aff
multi_pw_aff::add(const isl::checked::multi_aff
&multi2
) const
11890 return this->add(isl::checked::multi_pw_aff(multi2
));
11893 isl::checked::multi_pw_aff
multi_pw_aff::add(const isl::checked::pw_aff
&multi2
) const
11895 return this->add(isl::checked::multi_pw_aff(multi2
));
11898 isl::checked::multi_pw_aff
multi_pw_aff::add(const isl::checked::pw_multi_aff
&multi2
) const
11900 return this->add(isl::checked::multi_pw_aff(multi2
));
11903 isl::checked::multi_pw_aff
multi_pw_aff::add_constant(isl::checked::multi_val mv
) const
11905 auto res
= isl_multi_pw_aff_add_constant_multi_val(copy(), mv
.release());
11906 return manage(res
);
11909 isl::checked::multi_pw_aff
multi_pw_aff::add_constant(isl::checked::val v
) const
11911 auto res
= isl_multi_pw_aff_add_constant_val(copy(), v
.release());
11912 return manage(res
);
11915 isl::checked::multi_pw_aff
multi_pw_aff::add_constant(long v
) const
11917 return this->add_constant(isl::checked::val(ctx(), v
));
11920 isl::checked::map
multi_pw_aff::as_map() const
11922 auto res
= isl_multi_pw_aff_as_map(copy());
11923 return manage(res
);
11926 isl::checked::multi_aff
multi_pw_aff::as_multi_aff() const
11928 auto res
= isl_multi_pw_aff_as_multi_aff(copy());
11929 return manage(res
);
11932 isl::checked::set
multi_pw_aff::as_set() const
11934 auto res
= isl_multi_pw_aff_as_set(copy());
11935 return manage(res
);
11938 isl::checked::pw_aff
multi_pw_aff::at(int pos
) const
11940 auto res
= isl_multi_pw_aff_get_at(get(), pos
);
11941 return manage(res
);
11944 isl::checked::pw_aff
multi_pw_aff::get_at(int pos
) const
11949 isl::checked::set
multi_pw_aff::bind(isl::checked::multi_id tuple
) const
11951 auto res
= isl_multi_pw_aff_bind(copy(), tuple
.release());
11952 return manage(res
);
11955 isl::checked::multi_pw_aff
multi_pw_aff::bind_domain(isl::checked::multi_id tuple
) const
11957 auto res
= isl_multi_pw_aff_bind_domain(copy(), tuple
.release());
11958 return manage(res
);
11961 isl::checked::multi_pw_aff
multi_pw_aff::bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const
11963 auto res
= isl_multi_pw_aff_bind_domain_wrapped_domain(copy(), tuple
.release());
11964 return manage(res
);
11967 isl::checked::multi_pw_aff
multi_pw_aff::coalesce() const
11969 auto res
= isl_multi_pw_aff_coalesce(copy());
11970 return manage(res
);
11973 isl::checked::set
multi_pw_aff::domain() const
11975 auto res
= isl_multi_pw_aff_domain(copy());
11976 return manage(res
);
11979 isl::checked::multi_pw_aff
multi_pw_aff::domain_reverse() const
11981 auto res
= isl_multi_pw_aff_domain_reverse(copy());
11982 return manage(res
);
11985 isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product(isl::checked::multi_pw_aff multi2
) const
11987 auto res
= isl_multi_pw_aff_flat_range_product(copy(), multi2
.release());
11988 return manage(res
);
11991 isl::checked::multi_union_pw_aff
multi_pw_aff::flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
11993 return isl::checked::multi_union_pw_aff(*this).flat_range_product(multi2
);
11996 isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product(const isl::checked::aff
&multi2
) const
11998 return this->flat_range_product(isl::checked::multi_pw_aff(multi2
));
12001 isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product(const isl::checked::multi_aff
&multi2
) const
12003 return this->flat_range_product(isl::checked::multi_pw_aff(multi2
));
12006 isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product(const isl::checked::pw_aff
&multi2
) const
12008 return this->flat_range_product(isl::checked::multi_pw_aff(multi2
));
12011 isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product(const isl::checked::pw_multi_aff
&multi2
) const
12013 return this->flat_range_product(isl::checked::multi_pw_aff(multi2
));
12016 isl::checked::multi_pw_aff
multi_pw_aff::gist(isl::checked::set set
) const
12018 auto res
= isl_multi_pw_aff_gist(copy(), set
.release());
12019 return manage(res
);
12022 isl::checked::multi_union_pw_aff
multi_pw_aff::gist(const isl::checked::union_set
&context
) const
12024 return isl::checked::multi_union_pw_aff(*this).gist(context
);
12027 isl::checked::multi_pw_aff
multi_pw_aff::gist(const isl::checked::basic_set
&set
) const
12029 return this->gist(isl::checked::set(set
));
12032 isl::checked::multi_pw_aff
multi_pw_aff::gist(const isl::checked::point
&set
) const
12034 return this->gist(isl::checked::set(set
));
12037 isl::checked::multi_pw_aff
multi_pw_aff::gist_params(isl::checked::set set
) const
12039 auto res
= isl_multi_pw_aff_gist_params(copy(), set
.release());
12040 return manage(res
);
12043 boolean
multi_pw_aff::has_range_tuple_id() const
12045 auto res
= isl_multi_pw_aff_has_range_tuple_id(get());
12046 return manage(res
);
12049 isl::checked::multi_pw_aff
multi_pw_aff::identity() const
12051 auto res
= isl_multi_pw_aff_identity_multi_pw_aff(copy());
12052 return manage(res
);
12055 isl::checked::multi_pw_aff
multi_pw_aff::identity_on_domain(isl::checked::space space
)
12057 auto res
= isl_multi_pw_aff_identity_on_domain_space(space
.release());
12058 return manage(res
);
12061 isl::checked::multi_pw_aff
multi_pw_aff::insert_domain(isl::checked::space domain
) const
12063 auto res
= isl_multi_pw_aff_insert_domain(copy(), domain
.release());
12064 return manage(res
);
12067 isl::checked::multi_pw_aff
multi_pw_aff::intersect_domain(isl::checked::set domain
) const
12069 auto res
= isl_multi_pw_aff_intersect_domain(copy(), domain
.release());
12070 return manage(res
);
12073 isl::checked::multi_union_pw_aff
multi_pw_aff::intersect_domain(const isl::checked::union_set
&uset
) const
12075 return isl::checked::multi_union_pw_aff(*this).intersect_domain(uset
);
12078 isl::checked::multi_pw_aff
multi_pw_aff::intersect_domain(const isl::checked::basic_set
&domain
) const
12080 return this->intersect_domain(isl::checked::set(domain
));
12083 isl::checked::multi_pw_aff
multi_pw_aff::intersect_domain(const isl::checked::point
&domain
) const
12085 return this->intersect_domain(isl::checked::set(domain
));
12088 isl::checked::multi_pw_aff
multi_pw_aff::intersect_params(isl::checked::set set
) const
12090 auto res
= isl_multi_pw_aff_intersect_params(copy(), set
.release());
12091 return manage(res
);
12094 boolean
multi_pw_aff::involves_nan() const
12096 auto res
= isl_multi_pw_aff_involves_nan(get());
12097 return manage(res
);
12100 boolean
multi_pw_aff::involves_param(const isl::checked::id
&id
) const
12102 auto res
= isl_multi_pw_aff_involves_param_id(get(), id
.get());
12103 return manage(res
);
12106 boolean
multi_pw_aff::involves_param(const std::string
&id
) const
12108 return this->involves_param(isl::checked::id(ctx(), id
));
12111 boolean
multi_pw_aff::involves_param(const isl::checked::id_list
&list
) const
12113 auto res
= isl_multi_pw_aff_involves_param_id_list(get(), list
.get());
12114 return manage(res
);
12117 boolean
multi_pw_aff::isa_multi_aff() const
12119 auto res
= isl_multi_pw_aff_isa_multi_aff(get());
12120 return manage(res
);
12123 isl::checked::pw_aff_list
multi_pw_aff::list() const
12125 auto res
= isl_multi_pw_aff_get_list(get());
12126 return manage(res
);
12129 isl::checked::pw_aff_list
multi_pw_aff::get_list() const
12134 isl::checked::multi_pw_aff
multi_pw_aff::max(isl::checked::multi_pw_aff multi2
) const
12136 auto res
= isl_multi_pw_aff_max(copy(), multi2
.release());
12137 return manage(res
);
12140 isl::checked::multi_val
multi_pw_aff::max_multi_val() const
12142 auto res
= isl_multi_pw_aff_max_multi_val(copy());
12143 return manage(res
);
12146 isl::checked::multi_pw_aff
multi_pw_aff::min(isl::checked::multi_pw_aff multi2
) const
12148 auto res
= isl_multi_pw_aff_min(copy(), multi2
.release());
12149 return manage(res
);
12152 isl::checked::multi_val
multi_pw_aff::min_multi_val() const
12154 auto res
= isl_multi_pw_aff_min_multi_val(copy());
12155 return manage(res
);
12158 isl::checked::multi_pw_aff
multi_pw_aff::neg() const
12160 auto res
= isl_multi_pw_aff_neg(copy());
12161 return manage(res
);
12164 boolean
multi_pw_aff::plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const
12166 auto res
= isl_multi_pw_aff_plain_is_equal(get(), multi2
.get());
12167 return manage(res
);
12170 boolean
multi_pw_aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
12172 return isl::checked::multi_union_pw_aff(*this).plain_is_equal(multi2
);
12175 boolean
multi_pw_aff::plain_is_equal(const isl::checked::aff
&multi2
) const
12177 return this->plain_is_equal(isl::checked::multi_pw_aff(multi2
));
12180 boolean
multi_pw_aff::plain_is_equal(const isl::checked::multi_aff
&multi2
) const
12182 return this->plain_is_equal(isl::checked::multi_pw_aff(multi2
));
12185 boolean
multi_pw_aff::plain_is_equal(const isl::checked::pw_aff
&multi2
) const
12187 return this->plain_is_equal(isl::checked::multi_pw_aff(multi2
));
12190 boolean
multi_pw_aff::plain_is_equal(const isl::checked::pw_multi_aff
&multi2
) const
12192 return this->plain_is_equal(isl::checked::multi_pw_aff(multi2
));
12195 isl::checked::multi_pw_aff
multi_pw_aff::product(isl::checked::multi_pw_aff multi2
) const
12197 auto res
= isl_multi_pw_aff_product(copy(), multi2
.release());
12198 return manage(res
);
12201 isl::checked::multi_pw_aff
multi_pw_aff::pullback(isl::checked::multi_aff ma
) const
12203 auto res
= isl_multi_pw_aff_pullback_multi_aff(copy(), ma
.release());
12204 return manage(res
);
12207 isl::checked::multi_pw_aff
multi_pw_aff::pullback(isl::checked::multi_pw_aff mpa2
) const
12209 auto res
= isl_multi_pw_aff_pullback_multi_pw_aff(copy(), mpa2
.release());
12210 return manage(res
);
12213 isl::checked::multi_pw_aff
multi_pw_aff::pullback(isl::checked::pw_multi_aff pma
) const
12215 auto res
= isl_multi_pw_aff_pullback_pw_multi_aff(copy(), pma
.release());
12216 return manage(res
);
12219 isl::checked::multi_union_pw_aff
multi_pw_aff::pullback(const isl::checked::union_pw_multi_aff
&upma
) const
12221 return isl::checked::multi_union_pw_aff(*this).pullback(upma
);
12224 isl::checked::multi_pw_aff
multi_pw_aff::range_product(isl::checked::multi_pw_aff multi2
) const
12226 auto res
= isl_multi_pw_aff_range_product(copy(), multi2
.release());
12227 return manage(res
);
12230 isl::checked::multi_union_pw_aff
multi_pw_aff::range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
12232 return isl::checked::multi_union_pw_aff(*this).range_product(multi2
);
12235 isl::checked::multi_pw_aff
multi_pw_aff::range_product(const isl::checked::aff
&multi2
) const
12237 return this->range_product(isl::checked::multi_pw_aff(multi2
));
12240 isl::checked::multi_pw_aff
multi_pw_aff::range_product(const isl::checked::multi_aff
&multi2
) const
12242 return this->range_product(isl::checked::multi_pw_aff(multi2
));
12245 isl::checked::multi_pw_aff
multi_pw_aff::range_product(const isl::checked::pw_aff
&multi2
) const
12247 return this->range_product(isl::checked::multi_pw_aff(multi2
));
12250 isl::checked::multi_pw_aff
multi_pw_aff::range_product(const isl::checked::pw_multi_aff
&multi2
) const
12252 return this->range_product(isl::checked::multi_pw_aff(multi2
));
12255 isl::checked::id
multi_pw_aff::range_tuple_id() const
12257 auto res
= isl_multi_pw_aff_get_range_tuple_id(get());
12258 return manage(res
);
12261 isl::checked::id
multi_pw_aff::get_range_tuple_id() const
12263 return range_tuple_id();
12266 isl::checked::multi_pw_aff
multi_pw_aff::reset_range_tuple_id() const
12268 auto res
= isl_multi_pw_aff_reset_range_tuple_id(copy());
12269 return manage(res
);
12272 isl::checked::multi_pw_aff
multi_pw_aff::scale(isl::checked::multi_val mv
) const
12274 auto res
= isl_multi_pw_aff_scale_multi_val(copy(), mv
.release());
12275 return manage(res
);
12278 isl::checked::multi_pw_aff
multi_pw_aff::scale(isl::checked::val v
) const
12280 auto res
= isl_multi_pw_aff_scale_val(copy(), v
.release());
12281 return manage(res
);
12284 isl::checked::multi_pw_aff
multi_pw_aff::scale(long v
) const
12286 return this->scale(isl::checked::val(ctx(), v
));
12289 isl::checked::multi_pw_aff
multi_pw_aff::scale_down(isl::checked::multi_val mv
) const
12291 auto res
= isl_multi_pw_aff_scale_down_multi_val(copy(), mv
.release());
12292 return manage(res
);
12295 isl::checked::multi_pw_aff
multi_pw_aff::scale_down(isl::checked::val v
) const
12297 auto res
= isl_multi_pw_aff_scale_down_val(copy(), v
.release());
12298 return manage(res
);
12301 isl::checked::multi_pw_aff
multi_pw_aff::scale_down(long v
) const
12303 return this->scale_down(isl::checked::val(ctx(), v
));
12306 isl::checked::multi_pw_aff
multi_pw_aff::set_at(int pos
, isl::checked::pw_aff el
) const
12308 auto res
= isl_multi_pw_aff_set_at(copy(), pos
, el
.release());
12309 return manage(res
);
12312 isl::checked::multi_union_pw_aff
multi_pw_aff::set_at(int pos
, const isl::checked::union_pw_aff
&el
) const
12314 return isl::checked::multi_union_pw_aff(*this).set_at(pos
, el
);
12317 isl::checked::multi_pw_aff
multi_pw_aff::set_range_tuple(isl::checked::id id
) const
12319 auto res
= isl_multi_pw_aff_set_range_tuple_id(copy(), id
.release());
12320 return manage(res
);
12323 isl::checked::multi_pw_aff
multi_pw_aff::set_range_tuple(const std::string
&id
) const
12325 return this->set_range_tuple(isl::checked::id(ctx(), id
));
12328 class size
multi_pw_aff::size() const
12330 auto res
= isl_multi_pw_aff_size(get());
12331 return manage(res
);
12334 isl::checked::space
multi_pw_aff::space() const
12336 auto res
= isl_multi_pw_aff_get_space(get());
12337 return manage(res
);
12340 isl::checked::space
multi_pw_aff::get_space() const
12345 isl::checked::multi_pw_aff
multi_pw_aff::sub(isl::checked::multi_pw_aff multi2
) const
12347 auto res
= isl_multi_pw_aff_sub(copy(), multi2
.release());
12348 return manage(res
);
12351 isl::checked::multi_union_pw_aff
multi_pw_aff::sub(const isl::checked::multi_union_pw_aff
&multi2
) const
12353 return isl::checked::multi_union_pw_aff(*this).sub(multi2
);
12356 isl::checked::multi_pw_aff
multi_pw_aff::sub(const isl::checked::aff
&multi2
) const
12358 return this->sub(isl::checked::multi_pw_aff(multi2
));
12361 isl::checked::multi_pw_aff
multi_pw_aff::sub(const isl::checked::multi_aff
&multi2
) const
12363 return this->sub(isl::checked::multi_pw_aff(multi2
));
12366 isl::checked::multi_pw_aff
multi_pw_aff::sub(const isl::checked::pw_aff
&multi2
) const
12368 return this->sub(isl::checked::multi_pw_aff(multi2
));
12371 isl::checked::multi_pw_aff
multi_pw_aff::sub(const isl::checked::pw_multi_aff
&multi2
) const
12373 return this->sub(isl::checked::multi_pw_aff(multi2
));
12376 isl::checked::multi_pw_aff
multi_pw_aff::unbind_params_insert_domain(isl::checked::multi_id domain
) const
12378 auto res
= isl_multi_pw_aff_unbind_params_insert_domain(copy(), domain
.release());
12379 return manage(res
);
12382 isl::checked::multi_pw_aff
multi_pw_aff::union_add(isl::checked::multi_pw_aff mpa2
) const
12384 auto res
= isl_multi_pw_aff_union_add(copy(), mpa2
.release());
12385 return manage(res
);
12388 isl::checked::multi_union_pw_aff
multi_pw_aff::union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const
12390 return isl::checked::multi_union_pw_aff(*this).union_add(mupa2
);
12393 isl::checked::multi_pw_aff
multi_pw_aff::union_add(const isl::checked::aff
&mpa2
) const
12395 return this->union_add(isl::checked::multi_pw_aff(mpa2
));
12398 isl::checked::multi_pw_aff
multi_pw_aff::union_add(const isl::checked::multi_aff
&mpa2
) const
12400 return this->union_add(isl::checked::multi_pw_aff(mpa2
));
12403 isl::checked::multi_pw_aff
multi_pw_aff::union_add(const isl::checked::pw_aff
&mpa2
) const
12405 return this->union_add(isl::checked::multi_pw_aff(mpa2
));
12408 isl::checked::multi_pw_aff
multi_pw_aff::union_add(const isl::checked::pw_multi_aff
&mpa2
) const
12410 return this->union_add(isl::checked::multi_pw_aff(mpa2
));
12413 isl::checked::multi_pw_aff
multi_pw_aff::zero(isl::checked::space space
)
12415 auto res
= isl_multi_pw_aff_zero(space
.release());
12416 return manage(res
);
12419 inline std::ostream
&operator<<(std::ostream
&os
, const multi_pw_aff
&obj
)
12421 char *str
= isl_multi_pw_aff_to_str(obj
.get());
12423 os
.setstate(std::ios_base::badbit
);
12431 // implementations for isl::multi_union_pw_aff
12432 multi_union_pw_aff
manage(__isl_take isl_multi_union_pw_aff
*ptr
) {
12433 return multi_union_pw_aff(ptr
);
12435 multi_union_pw_aff
manage_copy(__isl_keep isl_multi_union_pw_aff
*ptr
) {
12436 ptr
= isl_multi_union_pw_aff_copy(ptr
);
12437 return multi_union_pw_aff(ptr
);
12440 multi_union_pw_aff::multi_union_pw_aff(__isl_take isl_multi_union_pw_aff
*ptr
)
12443 multi_union_pw_aff::multi_union_pw_aff()
12446 multi_union_pw_aff::multi_union_pw_aff(const multi_union_pw_aff
&obj
)
12452 multi_union_pw_aff::multi_union_pw_aff(isl::checked::multi_pw_aff mpa
)
12454 auto res
= isl_multi_union_pw_aff_from_multi_pw_aff(mpa
.release());
12458 multi_union_pw_aff::multi_union_pw_aff(isl::checked::union_pw_aff upa
)
12460 auto res
= isl_multi_union_pw_aff_from_union_pw_aff(upa
.release());
12464 multi_union_pw_aff::multi_union_pw_aff(isl::checked::space space
, isl::checked::union_pw_aff_list list
)
12466 auto res
= isl_multi_union_pw_aff_from_union_pw_aff_list(space
.release(), list
.release());
12470 multi_union_pw_aff::multi_union_pw_aff(isl::checked::ctx ctx
, const std::string
&str
)
12472 auto res
= isl_multi_union_pw_aff_read_from_str(ctx
.release(), str
.c_str());
12476 multi_union_pw_aff
&multi_union_pw_aff::operator=(multi_union_pw_aff obj
) {
12477 std::swap(this->ptr
, obj
.ptr
);
12481 multi_union_pw_aff::~multi_union_pw_aff() {
12483 isl_multi_union_pw_aff_free(ptr
);
12486 __isl_give isl_multi_union_pw_aff
*multi_union_pw_aff::copy() const & {
12487 return isl_multi_union_pw_aff_copy(ptr
);
12490 __isl_keep isl_multi_union_pw_aff
*multi_union_pw_aff::get() const {
12494 __isl_give isl_multi_union_pw_aff
*multi_union_pw_aff::release() {
12495 isl_multi_union_pw_aff
*tmp
= ptr
;
12500 bool multi_union_pw_aff::is_null() const {
12501 return ptr
== nullptr;
12504 isl::checked::ctx
multi_union_pw_aff::ctx() const {
12505 return isl::checked::ctx(isl_multi_union_pw_aff_get_ctx(ptr
));
12508 isl::checked::multi_union_pw_aff
multi_union_pw_aff::add(isl::checked::multi_union_pw_aff multi2
) const
12510 auto res
= isl_multi_union_pw_aff_add(copy(), multi2
.release());
12511 return manage(res
);
12514 isl::checked::union_pw_aff
multi_union_pw_aff::at(int pos
) const
12516 auto res
= isl_multi_union_pw_aff_get_at(get(), pos
);
12517 return manage(res
);
12520 isl::checked::union_pw_aff
multi_union_pw_aff::get_at(int pos
) const
12525 isl::checked::union_set
multi_union_pw_aff::bind(isl::checked::multi_id tuple
) const
12527 auto res
= isl_multi_union_pw_aff_bind(copy(), tuple
.release());
12528 return manage(res
);
12531 isl::checked::multi_union_pw_aff
multi_union_pw_aff::coalesce() const
12533 auto res
= isl_multi_union_pw_aff_coalesce(copy());
12534 return manage(res
);
12537 isl::checked::union_set
multi_union_pw_aff::domain() const
12539 auto res
= isl_multi_union_pw_aff_domain(copy());
12540 return manage(res
);
12543 isl::checked::multi_union_pw_aff
multi_union_pw_aff::flat_range_product(isl::checked::multi_union_pw_aff multi2
) const
12545 auto res
= isl_multi_union_pw_aff_flat_range_product(copy(), multi2
.release());
12546 return manage(res
);
12549 isl::checked::multi_union_pw_aff
multi_union_pw_aff::gist(isl::checked::union_set context
) const
12551 auto res
= isl_multi_union_pw_aff_gist(copy(), context
.release());
12552 return manage(res
);
12555 isl::checked::multi_union_pw_aff
multi_union_pw_aff::gist_params(isl::checked::set context
) const
12557 auto res
= isl_multi_union_pw_aff_gist_params(copy(), context
.release());
12558 return manage(res
);
12561 boolean
multi_union_pw_aff::has_range_tuple_id() const
12563 auto res
= isl_multi_union_pw_aff_has_range_tuple_id(get());
12564 return manage(res
);
12567 isl::checked::multi_union_pw_aff
multi_union_pw_aff::intersect_domain(isl::checked::union_set uset
) const
12569 auto res
= isl_multi_union_pw_aff_intersect_domain(copy(), uset
.release());
12570 return manage(res
);
12573 isl::checked::multi_union_pw_aff
multi_union_pw_aff::intersect_params(isl::checked::set params
) const
12575 auto res
= isl_multi_union_pw_aff_intersect_params(copy(), params
.release());
12576 return manage(res
);
12579 boolean
multi_union_pw_aff::involves_nan() const
12581 auto res
= isl_multi_union_pw_aff_involves_nan(get());
12582 return manage(res
);
12585 isl::checked::union_pw_aff_list
multi_union_pw_aff::list() const
12587 auto res
= isl_multi_union_pw_aff_get_list(get());
12588 return manage(res
);
12591 isl::checked::union_pw_aff_list
multi_union_pw_aff::get_list() const
12596 isl::checked::multi_union_pw_aff
multi_union_pw_aff::neg() const
12598 auto res
= isl_multi_union_pw_aff_neg(copy());
12599 return manage(res
);
12602 boolean
multi_union_pw_aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
12604 auto res
= isl_multi_union_pw_aff_plain_is_equal(get(), multi2
.get());
12605 return manage(res
);
12608 isl::checked::multi_union_pw_aff
multi_union_pw_aff::pullback(isl::checked::union_pw_multi_aff upma
) const
12610 auto res
= isl_multi_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma
.release());
12611 return manage(res
);
12614 isl::checked::multi_union_pw_aff
multi_union_pw_aff::range_product(isl::checked::multi_union_pw_aff multi2
) const
12616 auto res
= isl_multi_union_pw_aff_range_product(copy(), multi2
.release());
12617 return manage(res
);
12620 isl::checked::id
multi_union_pw_aff::range_tuple_id() const
12622 auto res
= isl_multi_union_pw_aff_get_range_tuple_id(get());
12623 return manage(res
);
12626 isl::checked::id
multi_union_pw_aff::get_range_tuple_id() const
12628 return range_tuple_id();
12631 isl::checked::multi_union_pw_aff
multi_union_pw_aff::reset_range_tuple_id() const
12633 auto res
= isl_multi_union_pw_aff_reset_range_tuple_id(copy());
12634 return manage(res
);
12637 isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale(isl::checked::multi_val mv
) const
12639 auto res
= isl_multi_union_pw_aff_scale_multi_val(copy(), mv
.release());
12640 return manage(res
);
12643 isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale(isl::checked::val v
) const
12645 auto res
= isl_multi_union_pw_aff_scale_val(copy(), v
.release());
12646 return manage(res
);
12649 isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale(long v
) const
12651 return this->scale(isl::checked::val(ctx(), v
));
12654 isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale_down(isl::checked::multi_val mv
) const
12656 auto res
= isl_multi_union_pw_aff_scale_down_multi_val(copy(), mv
.release());
12657 return manage(res
);
12660 isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale_down(isl::checked::val v
) const
12662 auto res
= isl_multi_union_pw_aff_scale_down_val(copy(), v
.release());
12663 return manage(res
);
12666 isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale_down(long v
) const
12668 return this->scale_down(isl::checked::val(ctx(), v
));
12671 isl::checked::multi_union_pw_aff
multi_union_pw_aff::set_at(int pos
, isl::checked::union_pw_aff el
) const
12673 auto res
= isl_multi_union_pw_aff_set_at(copy(), pos
, el
.release());
12674 return manage(res
);
12677 isl::checked::multi_union_pw_aff
multi_union_pw_aff::set_range_tuple(isl::checked::id id
) const
12679 auto res
= isl_multi_union_pw_aff_set_range_tuple_id(copy(), id
.release());
12680 return manage(res
);
12683 isl::checked::multi_union_pw_aff
multi_union_pw_aff::set_range_tuple(const std::string
&id
) const
12685 return this->set_range_tuple(isl::checked::id(ctx(), id
));
12688 class size
multi_union_pw_aff::size() const
12690 auto res
= isl_multi_union_pw_aff_size(get());
12691 return manage(res
);
12694 isl::checked::space
multi_union_pw_aff::space() const
12696 auto res
= isl_multi_union_pw_aff_get_space(get());
12697 return manage(res
);
12700 isl::checked::space
multi_union_pw_aff::get_space() const
12705 isl::checked::multi_union_pw_aff
multi_union_pw_aff::sub(isl::checked::multi_union_pw_aff multi2
) const
12707 auto res
= isl_multi_union_pw_aff_sub(copy(), multi2
.release());
12708 return manage(res
);
12711 isl::checked::multi_union_pw_aff
multi_union_pw_aff::union_add(isl::checked::multi_union_pw_aff mupa2
) const
12713 auto res
= isl_multi_union_pw_aff_union_add(copy(), mupa2
.release());
12714 return manage(res
);
12717 isl::checked::multi_union_pw_aff
multi_union_pw_aff::zero(isl::checked::space space
)
12719 auto res
= isl_multi_union_pw_aff_zero(space
.release());
12720 return manage(res
);
12723 inline std::ostream
&operator<<(std::ostream
&os
, const multi_union_pw_aff
&obj
)
12725 char *str
= isl_multi_union_pw_aff_to_str(obj
.get());
12727 os
.setstate(std::ios_base::badbit
);
12735 // implementations for isl::multi_val
12736 multi_val
manage(__isl_take isl_multi_val
*ptr
) {
12737 return multi_val(ptr
);
12739 multi_val
manage_copy(__isl_keep isl_multi_val
*ptr
) {
12740 ptr
= isl_multi_val_copy(ptr
);
12741 return multi_val(ptr
);
12744 multi_val::multi_val(__isl_take isl_multi_val
*ptr
)
12747 multi_val::multi_val()
12750 multi_val::multi_val(const multi_val
&obj
)
12756 multi_val::multi_val(isl::checked::space space
, isl::checked::val_list list
)
12758 auto res
= isl_multi_val_from_val_list(space
.release(), list
.release());
12762 multi_val::multi_val(isl::checked::ctx ctx
, const std::string
&str
)
12764 auto res
= isl_multi_val_read_from_str(ctx
.release(), str
.c_str());
12768 multi_val
&multi_val::operator=(multi_val obj
) {
12769 std::swap(this->ptr
, obj
.ptr
);
12773 multi_val::~multi_val() {
12775 isl_multi_val_free(ptr
);
12778 __isl_give isl_multi_val
*multi_val::copy() const & {
12779 return isl_multi_val_copy(ptr
);
12782 __isl_keep isl_multi_val
*multi_val::get() const {
12786 __isl_give isl_multi_val
*multi_val::release() {
12787 isl_multi_val
*tmp
= ptr
;
12792 bool multi_val::is_null() const {
12793 return ptr
== nullptr;
12796 isl::checked::ctx
multi_val::ctx() const {
12797 return isl::checked::ctx(isl_multi_val_get_ctx(ptr
));
12800 isl::checked::multi_val
multi_val::add(isl::checked::multi_val multi2
) const
12802 auto res
= isl_multi_val_add(copy(), multi2
.release());
12803 return manage(res
);
12806 isl::checked::multi_val
multi_val::add(isl::checked::val v
) const
12808 auto res
= isl_multi_val_add_val(copy(), v
.release());
12809 return manage(res
);
12812 isl::checked::multi_val
multi_val::add(long v
) const
12814 return this->add(isl::checked::val(ctx(), v
));
12817 isl::checked::val
multi_val::at(int pos
) const
12819 auto res
= isl_multi_val_get_at(get(), pos
);
12820 return manage(res
);
12823 isl::checked::val
multi_val::get_at(int pos
) const
12828 isl::checked::multi_val
multi_val::flat_range_product(isl::checked::multi_val multi2
) const
12830 auto res
= isl_multi_val_flat_range_product(copy(), multi2
.release());
12831 return manage(res
);
12834 boolean
multi_val::has_range_tuple_id() const
12836 auto res
= isl_multi_val_has_range_tuple_id(get());
12837 return manage(res
);
12840 boolean
multi_val::involves_nan() const
12842 auto res
= isl_multi_val_involves_nan(get());
12843 return manage(res
);
12846 isl::checked::val_list
multi_val::list() const
12848 auto res
= isl_multi_val_get_list(get());
12849 return manage(res
);
12852 isl::checked::val_list
multi_val::get_list() const
12857 isl::checked::multi_val
multi_val::max(isl::checked::multi_val multi2
) const
12859 auto res
= isl_multi_val_max(copy(), multi2
.release());
12860 return manage(res
);
12863 isl::checked::multi_val
multi_val::min(isl::checked::multi_val multi2
) const
12865 auto res
= isl_multi_val_min(copy(), multi2
.release());
12866 return manage(res
);
12869 isl::checked::multi_val
multi_val::neg() const
12871 auto res
= isl_multi_val_neg(copy());
12872 return manage(res
);
12875 boolean
multi_val::plain_is_equal(const isl::checked::multi_val
&multi2
) const
12877 auto res
= isl_multi_val_plain_is_equal(get(), multi2
.get());
12878 return manage(res
);
12881 isl::checked::multi_val
multi_val::product(isl::checked::multi_val multi2
) const
12883 auto res
= isl_multi_val_product(copy(), multi2
.release());
12884 return manage(res
);
12887 isl::checked::multi_val
multi_val::range_product(isl::checked::multi_val multi2
) const
12889 auto res
= isl_multi_val_range_product(copy(), multi2
.release());
12890 return manage(res
);
12893 isl::checked::id
multi_val::range_tuple_id() const
12895 auto res
= isl_multi_val_get_range_tuple_id(get());
12896 return manage(res
);
12899 isl::checked::id
multi_val::get_range_tuple_id() const
12901 return range_tuple_id();
12904 isl::checked::multi_val
multi_val::reset_range_tuple_id() const
12906 auto res
= isl_multi_val_reset_range_tuple_id(copy());
12907 return manage(res
);
12910 isl::checked::multi_val
multi_val::scale(isl::checked::multi_val mv
) const
12912 auto res
= isl_multi_val_scale_multi_val(copy(), mv
.release());
12913 return manage(res
);
12916 isl::checked::multi_val
multi_val::scale(isl::checked::val v
) const
12918 auto res
= isl_multi_val_scale_val(copy(), v
.release());
12919 return manage(res
);
12922 isl::checked::multi_val
multi_val::scale(long v
) const
12924 return this->scale(isl::checked::val(ctx(), v
));
12927 isl::checked::multi_val
multi_val::scale_down(isl::checked::multi_val mv
) const
12929 auto res
= isl_multi_val_scale_down_multi_val(copy(), mv
.release());
12930 return manage(res
);
12933 isl::checked::multi_val
multi_val::scale_down(isl::checked::val v
) const
12935 auto res
= isl_multi_val_scale_down_val(copy(), v
.release());
12936 return manage(res
);
12939 isl::checked::multi_val
multi_val::scale_down(long v
) const
12941 return this->scale_down(isl::checked::val(ctx(), v
));
12944 isl::checked::multi_val
multi_val::set_at(int pos
, isl::checked::val el
) const
12946 auto res
= isl_multi_val_set_at(copy(), pos
, el
.release());
12947 return manage(res
);
12950 isl::checked::multi_val
multi_val::set_at(int pos
, long el
) const
12952 return this->set_at(pos
, isl::checked::val(ctx(), el
));
12955 isl::checked::multi_val
multi_val::set_range_tuple(isl::checked::id id
) const
12957 auto res
= isl_multi_val_set_range_tuple_id(copy(), id
.release());
12958 return manage(res
);
12961 isl::checked::multi_val
multi_val::set_range_tuple(const std::string
&id
) const
12963 return this->set_range_tuple(isl::checked::id(ctx(), id
));
12966 class size
multi_val::size() const
12968 auto res
= isl_multi_val_size(get());
12969 return manage(res
);
12972 isl::checked::space
multi_val::space() const
12974 auto res
= isl_multi_val_get_space(get());
12975 return manage(res
);
12978 isl::checked::space
multi_val::get_space() const
12983 isl::checked::multi_val
multi_val::sub(isl::checked::multi_val multi2
) const
12985 auto res
= isl_multi_val_sub(copy(), multi2
.release());
12986 return manage(res
);
12989 isl::checked::multi_val
multi_val::zero(isl::checked::space space
)
12991 auto res
= isl_multi_val_zero(space
.release());
12992 return manage(res
);
12995 inline std::ostream
&operator<<(std::ostream
&os
, const multi_val
&obj
)
12997 char *str
= isl_multi_val_to_str(obj
.get());
12999 os
.setstate(std::ios_base::badbit
);
13007 // implementations for isl::point
13008 point
manage(__isl_take isl_point
*ptr
) {
13011 point
manage_copy(__isl_keep isl_point
*ptr
) {
13012 ptr
= isl_point_copy(ptr
);
13016 point::point(__isl_take isl_point
*ptr
)
13022 point::point(const point
&obj
)
13028 point
&point::operator=(point obj
) {
13029 std::swap(this->ptr
, obj
.ptr
);
13035 isl_point_free(ptr
);
13038 __isl_give isl_point
*point::copy() const & {
13039 return isl_point_copy(ptr
);
13042 __isl_keep isl_point
*point::get() const {
13046 __isl_give isl_point
*point::release() {
13047 isl_point
*tmp
= ptr
;
13052 bool point::is_null() const {
13053 return ptr
== nullptr;
13056 isl::checked::ctx
point::ctx() const {
13057 return isl::checked::ctx(isl_point_get_ctx(ptr
));
13060 isl::checked::basic_set
point::affine_hull() const
13062 return isl::checked::basic_set(*this).affine_hull();
13065 isl::checked::basic_set
point::apply(const isl::checked::basic_map
&bmap
) const
13067 return isl::checked::basic_set(*this).apply(bmap
);
13070 isl::checked::set
point::apply(const isl::checked::map
&map
) const
13072 return isl::checked::basic_set(*this).apply(map
);
13075 isl::checked::union_set
point::apply(const isl::checked::union_map
&umap
) const
13077 return isl::checked::basic_set(*this).apply(umap
);
13080 isl::checked::pw_multi_aff
point::as_pw_multi_aff() const
13082 return isl::checked::basic_set(*this).as_pw_multi_aff();
13085 isl::checked::set
point::as_set() const
13087 return isl::checked::basic_set(*this).as_set();
13090 isl::checked::set
point::bind(const isl::checked::multi_id
&tuple
) const
13092 return isl::checked::basic_set(*this).bind(tuple
);
13095 isl::checked::set
point::coalesce() const
13097 return isl::checked::basic_set(*this).coalesce();
13100 isl::checked::set
point::complement() const
13102 return isl::checked::basic_set(*this).complement();
13105 isl::checked::union_set
point::compute_divs() const
13107 return isl::checked::basic_set(*this).compute_divs();
13110 isl::checked::basic_set
point::detect_equalities() const
13112 return isl::checked::basic_set(*this).detect_equalities();
13115 isl::checked::val
point::dim_max_val(int pos
) const
13117 return isl::checked::basic_set(*this).dim_max_val(pos
);
13120 isl::checked::val
point::dim_min_val(int pos
) const
13122 return isl::checked::basic_set(*this).dim_min_val(pos
);
13125 isl::checked::set
point::drop_unused_params() const
13127 return isl::checked::basic_set(*this).drop_unused_params();
13130 boolean
point::every_set(const std::function
<boolean(isl::checked::set
)> &test
) const
13132 return isl::checked::basic_set(*this).every_set(test
);
13135 isl::checked::set
point::extract_set(const isl::checked::space
&space
) const
13137 return isl::checked::basic_set(*this).extract_set(space
);
13140 isl::checked::basic_set
point::flatten() const
13142 return isl::checked::basic_set(*this).flatten();
13145 stat
point::foreach_basic_set(const std::function
<stat(isl::checked::basic_set
)> &fn
) const
13147 return isl::checked::basic_set(*this).foreach_basic_set(fn
);
13150 stat
point::foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const
13152 return isl::checked::basic_set(*this).foreach_point(fn
);
13155 stat
point::foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const
13157 return isl::checked::basic_set(*this).foreach_set(fn
);
13160 isl::checked::basic_set
point::gist(const isl::checked::basic_set
&context
) const
13162 return isl::checked::basic_set(*this).gist(context
);
13165 isl::checked::set
point::gist(const isl::checked::set
&context
) const
13167 return isl::checked::basic_set(*this).gist(context
);
13170 isl::checked::union_set
point::gist(const isl::checked::union_set
&context
) const
13172 return isl::checked::basic_set(*this).gist(context
);
13175 isl::checked::set
point::gist_params(const isl::checked::set
&context
) const
13177 return isl::checked::basic_set(*this).gist_params(context
);
13180 isl::checked::map
point::identity() const
13182 return isl::checked::basic_set(*this).identity();
13185 isl::checked::pw_aff
point::indicator_function() const
13187 return isl::checked::basic_set(*this).indicator_function();
13190 isl::checked::map
point::insert_domain(const isl::checked::space
&domain
) const
13192 return isl::checked::basic_set(*this).insert_domain(domain
);
13195 isl::checked::basic_set
point::intersect(const isl::checked::basic_set
&bset2
) const
13197 return isl::checked::basic_set(*this).intersect(bset2
);
13200 isl::checked::set
point::intersect(const isl::checked::set
&set2
) const
13202 return isl::checked::basic_set(*this).intersect(set2
);
13205 isl::checked::union_set
point::intersect(const isl::checked::union_set
&uset2
) const
13207 return isl::checked::basic_set(*this).intersect(uset2
);
13210 isl::checked::basic_set
point::intersect_params(const isl::checked::basic_set
&bset2
) const
13212 return isl::checked::basic_set(*this).intersect_params(bset2
);
13215 isl::checked::set
point::intersect_params(const isl::checked::set
¶ms
) const
13217 return isl::checked::basic_set(*this).intersect_params(params
);
13220 boolean
point::involves_locals() const
13222 return isl::checked::basic_set(*this).involves_locals();
13225 boolean
point::is_disjoint(const isl::checked::set
&set2
) const
13227 return isl::checked::basic_set(*this).is_disjoint(set2
);
13230 boolean
point::is_disjoint(const isl::checked::union_set
&uset2
) const
13232 return isl::checked::basic_set(*this).is_disjoint(uset2
);
13235 boolean
point::is_empty() const
13237 return isl::checked::basic_set(*this).is_empty();
13240 boolean
point::is_equal(const isl::checked::basic_set
&bset2
) const
13242 return isl::checked::basic_set(*this).is_equal(bset2
);
13245 boolean
point::is_equal(const isl::checked::set
&set2
) const
13247 return isl::checked::basic_set(*this).is_equal(set2
);
13250 boolean
point::is_equal(const isl::checked::union_set
&uset2
) const
13252 return isl::checked::basic_set(*this).is_equal(uset2
);
13255 boolean
point::is_singleton() const
13257 return isl::checked::basic_set(*this).is_singleton();
13260 boolean
point::is_strict_subset(const isl::checked::set
&set2
) const
13262 return isl::checked::basic_set(*this).is_strict_subset(set2
);
13265 boolean
point::is_strict_subset(const isl::checked::union_set
&uset2
) const
13267 return isl::checked::basic_set(*this).is_strict_subset(uset2
);
13270 boolean
point::is_subset(const isl::checked::basic_set
&bset2
) const
13272 return isl::checked::basic_set(*this).is_subset(bset2
);
13275 boolean
point::is_subset(const isl::checked::set
&set2
) const
13277 return isl::checked::basic_set(*this).is_subset(set2
);
13280 boolean
point::is_subset(const isl::checked::union_set
&uset2
) const
13282 return isl::checked::basic_set(*this).is_subset(uset2
);
13285 boolean
point::is_wrapping() const
13287 return isl::checked::basic_set(*this).is_wrapping();
13290 boolean
point::isa_set() const
13292 return isl::checked::basic_set(*this).isa_set();
13295 isl::checked::fixed_box
point::lattice_tile() const
13297 return isl::checked::basic_set(*this).lattice_tile();
13300 isl::checked::set
point::lexmax() const
13302 return isl::checked::basic_set(*this).lexmax();
13305 isl::checked::pw_multi_aff
point::lexmax_pw_multi_aff() const
13307 return isl::checked::basic_set(*this).lexmax_pw_multi_aff();
13310 isl::checked::set
point::lexmin() const
13312 return isl::checked::basic_set(*this).lexmin();
13315 isl::checked::pw_multi_aff
point::lexmin_pw_multi_aff() const
13317 return isl::checked::basic_set(*this).lexmin_pw_multi_aff();
13320 isl::checked::set
point::lower_bound(const isl::checked::multi_pw_aff
&lower
) const
13322 return isl::checked::basic_set(*this).lower_bound(lower
);
13325 isl::checked::set
point::lower_bound(const isl::checked::multi_val
&lower
) const
13327 return isl::checked::basic_set(*this).lower_bound(lower
);
13330 isl::checked::multi_pw_aff
point::max_multi_pw_aff() const
13332 return isl::checked::basic_set(*this).max_multi_pw_aff();
13335 isl::checked::val
point::max_val(const isl::checked::aff
&obj
) const
13337 return isl::checked::basic_set(*this).max_val(obj
);
13340 isl::checked::multi_pw_aff
point::min_multi_pw_aff() const
13342 return isl::checked::basic_set(*this).min_multi_pw_aff();
13345 isl::checked::val
point::min_val(const isl::checked::aff
&obj
) const
13347 return isl::checked::basic_set(*this).min_val(obj
);
13350 isl::checked::multi_val
point::multi_val() const
13352 auto res
= isl_point_get_multi_val(get());
13353 return manage(res
);
13356 isl::checked::multi_val
point::get_multi_val() const
13358 return multi_val();
13361 class size
point::n_basic_set() const
13363 return isl::checked::basic_set(*this).n_basic_set();
13366 isl::checked::pw_aff
point::param_pw_aff_on_domain(const isl::checked::id
&id
) const
13368 return isl::checked::basic_set(*this).param_pw_aff_on_domain(id
);
13371 isl::checked::pw_aff
point::param_pw_aff_on_domain(const std::string
&id
) const
13373 return this->param_pw_aff_on_domain(isl::checked::id(ctx(), id
));
13376 isl::checked::basic_set
point::params() const
13378 return isl::checked::basic_set(*this).params();
13381 isl::checked::multi_val
point::plain_multi_val_if_fixed() const
13383 return isl::checked::basic_set(*this).plain_multi_val_if_fixed();
13386 isl::checked::basic_set
point::polyhedral_hull() const
13388 return isl::checked::basic_set(*this).polyhedral_hull();
13391 isl::checked::set
point::preimage(const isl::checked::multi_aff
&ma
) const
13393 return isl::checked::basic_set(*this).preimage(ma
);
13396 isl::checked::set
point::preimage(const isl::checked::multi_pw_aff
&mpa
) const
13398 return isl::checked::basic_set(*this).preimage(mpa
);
13401 isl::checked::set
point::preimage(const isl::checked::pw_multi_aff
&pma
) const
13403 return isl::checked::basic_set(*this).preimage(pma
);
13406 isl::checked::union_set
point::preimage(const isl::checked::union_pw_multi_aff
&upma
) const
13408 return isl::checked::basic_set(*this).preimage(upma
);
13411 isl::checked::set
point::product(const isl::checked::set
&set2
) const
13413 return isl::checked::basic_set(*this).product(set2
);
13416 isl::checked::set
point::project_out_all_params() const
13418 return isl::checked::basic_set(*this).project_out_all_params();
13421 isl::checked::set
point::project_out_param(const isl::checked::id
&id
) const
13423 return isl::checked::basic_set(*this).project_out_param(id
);
13426 isl::checked::set
point::project_out_param(const std::string
&id
) const
13428 return this->project_out_param(isl::checked::id(ctx(), id
));
13431 isl::checked::set
point::project_out_param(const isl::checked::id_list
&list
) const
13433 return isl::checked::basic_set(*this).project_out_param(list
);
13436 isl::checked::pw_aff
point::pw_aff_on_domain(const isl::checked::val
&v
) const
13438 return isl::checked::basic_set(*this).pw_aff_on_domain(v
);
13441 isl::checked::pw_aff
point::pw_aff_on_domain(long v
) const
13443 return this->pw_aff_on_domain(isl::checked::val(ctx(), v
));
13446 isl::checked::pw_multi_aff
point::pw_multi_aff_on_domain(const isl::checked::multi_val
&mv
) const
13448 return isl::checked::basic_set(*this).pw_multi_aff_on_domain(mv
);
13451 isl::checked::basic_set
point::sample() const
13453 return isl::checked::basic_set(*this).sample();
13456 isl::checked::point
point::sample_point() const
13458 return isl::checked::basic_set(*this).sample_point();
13461 isl::checked::set_list
point::set_list() const
13463 return isl::checked::basic_set(*this).set_list();
13466 isl::checked::fixed_box
point::simple_fixed_box_hull() const
13468 return isl::checked::basic_set(*this).simple_fixed_box_hull();
13471 isl::checked::space
point::space() const
13473 return isl::checked::basic_set(*this).space();
13476 isl::checked::val
point::stride(int pos
) const
13478 return isl::checked::basic_set(*this).stride(pos
);
13481 isl::checked::set
point::subtract(const isl::checked::set
&set2
) const
13483 return isl::checked::basic_set(*this).subtract(set2
);
13486 isl::checked::union_set
point::subtract(const isl::checked::union_set
&uset2
) const
13488 return isl::checked::basic_set(*this).subtract(uset2
);
13491 isl::checked::set_list
point::to_list() const
13493 return isl::checked::basic_set(*this).to_list();
13496 isl::checked::set
point::to_set() const
13498 auto res
= isl_point_to_set(copy());
13499 return manage(res
);
13502 isl::checked::union_set
point::to_union_set() const
13504 return isl::checked::basic_set(*this).to_union_set();
13507 isl::checked::map
point::translation() const
13509 return isl::checked::basic_set(*this).translation();
13512 class size
point::tuple_dim() const
13514 return isl::checked::basic_set(*this).tuple_dim();
13517 isl::checked::set
point::unbind_params(const isl::checked::multi_id
&tuple
) const
13519 return isl::checked::basic_set(*this).unbind_params(tuple
);
13522 isl::checked::map
point::unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const
13524 return isl::checked::basic_set(*this).unbind_params_insert_domain(domain
);
13527 isl::checked::set
point::unite(const isl::checked::basic_set
&bset2
) const
13529 return isl::checked::basic_set(*this).unite(bset2
);
13532 isl::checked::set
point::unite(const isl::checked::set
&set2
) const
13534 return isl::checked::basic_set(*this).unite(set2
);
13537 isl::checked::union_set
point::unite(const isl::checked::union_set
&uset2
) const
13539 return isl::checked::basic_set(*this).unite(uset2
);
13542 isl::checked::basic_set
point::unshifted_simple_hull() const
13544 return isl::checked::basic_set(*this).unshifted_simple_hull();
13547 isl::checked::map
point::unwrap() const
13549 return isl::checked::basic_set(*this).unwrap();
13552 isl::checked::set
point::upper_bound(const isl::checked::multi_pw_aff
&upper
) const
13554 return isl::checked::basic_set(*this).upper_bound(upper
);
13557 isl::checked::set
point::upper_bound(const isl::checked::multi_val
&upper
) const
13559 return isl::checked::basic_set(*this).upper_bound(upper
);
13562 isl::checked::set
point::wrapped_reverse() const
13564 return isl::checked::basic_set(*this).wrapped_reverse();
13567 inline std::ostream
&operator<<(std::ostream
&os
, const point
&obj
)
13569 char *str
= isl_point_to_str(obj
.get());
13571 os
.setstate(std::ios_base::badbit
);
13579 // implementations for isl::pw_aff
13580 pw_aff
manage(__isl_take isl_pw_aff
*ptr
) {
13581 return pw_aff(ptr
);
13583 pw_aff
manage_copy(__isl_keep isl_pw_aff
*ptr
) {
13584 ptr
= isl_pw_aff_copy(ptr
);
13585 return pw_aff(ptr
);
13588 pw_aff::pw_aff(__isl_take isl_pw_aff
*ptr
)
13594 pw_aff::pw_aff(const pw_aff
&obj
)
13600 pw_aff::pw_aff(isl::checked::aff aff
)
13602 auto res
= isl_pw_aff_from_aff(aff
.release());
13606 pw_aff::pw_aff(isl::checked::ctx ctx
, const std::string
&str
)
13608 auto res
= isl_pw_aff_read_from_str(ctx
.release(), str
.c_str());
13612 pw_aff
&pw_aff::operator=(pw_aff obj
) {
13613 std::swap(this->ptr
, obj
.ptr
);
13617 pw_aff::~pw_aff() {
13619 isl_pw_aff_free(ptr
);
13622 __isl_give isl_pw_aff
*pw_aff::copy() const & {
13623 return isl_pw_aff_copy(ptr
);
13626 __isl_keep isl_pw_aff
*pw_aff::get() const {
13630 __isl_give isl_pw_aff
*pw_aff::release() {
13631 isl_pw_aff
*tmp
= ptr
;
13636 bool pw_aff::is_null() const {
13637 return ptr
== nullptr;
13640 isl::checked::ctx
pw_aff::ctx() const {
13641 return isl::checked::ctx(isl_pw_aff_get_ctx(ptr
));
13644 isl::checked::multi_pw_aff
pw_aff::add(const isl::checked::multi_pw_aff
&multi2
) const
13646 return isl::checked::pw_multi_aff(*this).add(multi2
);
13649 isl::checked::multi_union_pw_aff
pw_aff::add(const isl::checked::multi_union_pw_aff
&multi2
) const
13651 return isl::checked::union_pw_aff(*this).add(multi2
);
13654 isl::checked::pw_aff
pw_aff::add(isl::checked::pw_aff pwaff2
) const
13656 auto res
= isl_pw_aff_add(copy(), pwaff2
.release());
13657 return manage(res
);
13660 isl::checked::pw_multi_aff
pw_aff::add(const isl::checked::pw_multi_aff
&pma2
) const
13662 return isl::checked::pw_multi_aff(*this).add(pma2
);
13665 isl::checked::union_pw_aff
pw_aff::add(const isl::checked::union_pw_aff
&upa2
) const
13667 return isl::checked::union_pw_aff(*this).add(upa2
);
13670 isl::checked::union_pw_multi_aff
pw_aff::add(const isl::checked::union_pw_multi_aff
&upma2
) const
13672 return isl::checked::union_pw_aff(*this).add(upma2
);
13675 isl::checked::pw_aff
pw_aff::add(const isl::checked::aff
&pwaff2
) const
13677 return this->add(isl::checked::pw_aff(pwaff2
));
13680 isl::checked::pw_aff
pw_aff::add_constant(isl::checked::val v
) const
13682 auto res
= isl_pw_aff_add_constant_val(copy(), v
.release());
13683 return manage(res
);
13686 isl::checked::pw_aff
pw_aff::add_constant(long v
) const
13688 return this->add_constant(isl::checked::val(ctx(), v
));
13691 isl::checked::pw_multi_aff
pw_aff::add_constant(const isl::checked::multi_val
&mv
) const
13693 return isl::checked::pw_multi_aff(*this).add_constant(mv
);
13696 isl::checked::union_pw_multi_aff
pw_aff::apply(const isl::checked::union_pw_multi_aff
&upma2
) const
13698 return isl::checked::union_pw_aff(*this).apply(upma2
);
13701 isl::checked::aff
pw_aff::as_aff() const
13703 auto res
= isl_pw_aff_as_aff(copy());
13704 return manage(res
);
13707 isl::checked::map
pw_aff::as_map() const
13709 auto res
= isl_pw_aff_as_map(copy());
13710 return manage(res
);
13713 isl::checked::multi_aff
pw_aff::as_multi_aff() const
13715 return isl::checked::pw_multi_aff(*this).as_multi_aff();
13718 isl::checked::multi_union_pw_aff
pw_aff::as_multi_union_pw_aff() const
13720 return isl::checked::union_pw_aff(*this).as_multi_union_pw_aff();
13723 isl::checked::pw_multi_aff
pw_aff::as_pw_multi_aff() const
13725 return isl::checked::union_pw_aff(*this).as_pw_multi_aff();
13728 isl::checked::set
pw_aff::as_set() const
13730 return isl::checked::pw_multi_aff(*this).as_set();
13733 isl::checked::union_map
pw_aff::as_union_map() const
13735 return isl::checked::union_pw_aff(*this).as_union_map();
13738 isl::checked::pw_aff
pw_aff::at(int pos
) const
13740 return isl::checked::pw_multi_aff(*this).at(pos
);
13743 isl::checked::set
pw_aff::bind(const isl::checked::multi_id
&tuple
) const
13745 return isl::checked::multi_pw_aff(*this).bind(tuple
);
13748 isl::checked::set
pw_aff::bind(isl::checked::id id
) const
13750 auto res
= isl_pw_aff_bind_id(copy(), id
.release());
13751 return manage(res
);
13754 isl::checked::set
pw_aff::bind(const std::string
&id
) const
13756 return this->bind(isl::checked::id(ctx(), id
));
13759 isl::checked::pw_aff
pw_aff::bind_domain(isl::checked::multi_id tuple
) const
13761 auto res
= isl_pw_aff_bind_domain(copy(), tuple
.release());
13762 return manage(res
);
13765 isl::checked::pw_aff
pw_aff::bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const
13767 auto res
= isl_pw_aff_bind_domain_wrapped_domain(copy(), tuple
.release());
13768 return manage(res
);
13771 isl::checked::pw_aff
pw_aff::ceil() const
13773 auto res
= isl_pw_aff_ceil(copy());
13774 return manage(res
);
13777 isl::checked::pw_aff
pw_aff::coalesce() const
13779 auto res
= isl_pw_aff_coalesce(copy());
13780 return manage(res
);
13783 isl::checked::pw_aff
pw_aff::cond(isl::checked::pw_aff pwaff_true
, isl::checked::pw_aff pwaff_false
) const
13785 auto res
= isl_pw_aff_cond(copy(), pwaff_true
.release(), pwaff_false
.release());
13786 return manage(res
);
13789 isl::checked::pw_aff
pw_aff::div(isl::checked::pw_aff pa2
) const
13791 auto res
= isl_pw_aff_div(copy(), pa2
.release());
13792 return manage(res
);
13795 isl::checked::set
pw_aff::domain() const
13797 auto res
= isl_pw_aff_domain(copy());
13798 return manage(res
);
13801 isl::checked::pw_aff
pw_aff::domain_reverse() const
13803 auto res
= isl_pw_aff_domain_reverse(copy());
13804 return manage(res
);
13807 isl::checked::pw_aff
pw_aff::drop_unused_params() const
13809 auto res
= isl_pw_aff_drop_unused_params(copy());
13810 return manage(res
);
13813 isl::checked::set
pw_aff::eq_set(isl::checked::pw_aff pwaff2
) const
13815 auto res
= isl_pw_aff_eq_set(copy(), pwaff2
.release());
13816 return manage(res
);
13819 isl::checked::val
pw_aff::eval(isl::checked::point pnt
) const
13821 auto res
= isl_pw_aff_eval(copy(), pnt
.release());
13822 return manage(res
);
13825 isl::checked::pw_multi_aff
pw_aff::extract_pw_multi_aff(const isl::checked::space
&space
) const
13827 return isl::checked::union_pw_aff(*this).extract_pw_multi_aff(space
);
13830 isl::checked::multi_pw_aff
pw_aff::flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const
13832 return isl::checked::pw_multi_aff(*this).flat_range_product(multi2
);
13835 isl::checked::multi_union_pw_aff
pw_aff::flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
13837 return isl::checked::union_pw_aff(*this).flat_range_product(multi2
);
13840 isl::checked::pw_multi_aff
pw_aff::flat_range_product(const isl::checked::pw_multi_aff
&pma2
) const
13842 return isl::checked::pw_multi_aff(*this).flat_range_product(pma2
);
13845 isl::checked::union_pw_multi_aff
pw_aff::flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
13847 return isl::checked::union_pw_aff(*this).flat_range_product(upma2
);
13850 isl::checked::pw_aff
pw_aff::floor() const
13852 auto res
= isl_pw_aff_floor(copy());
13853 return manage(res
);
13856 stat
pw_aff::foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const
13858 return isl::checked::pw_multi_aff(*this).foreach_piece(fn
);
13861 isl::checked::set
pw_aff::ge_set(isl::checked::pw_aff pwaff2
) const
13863 auto res
= isl_pw_aff_ge_set(copy(), pwaff2
.release());
13864 return manage(res
);
13867 isl::checked::pw_aff
pw_aff::gist(isl::checked::set context
) const
13869 auto res
= isl_pw_aff_gist(copy(), context
.release());
13870 return manage(res
);
13873 isl::checked::union_pw_aff
pw_aff::gist(const isl::checked::union_set
&context
) const
13875 return isl::checked::union_pw_aff(*this).gist(context
);
13878 isl::checked::pw_aff
pw_aff::gist(const isl::checked::basic_set
&context
) const
13880 return this->gist(isl::checked::set(context
));
13883 isl::checked::pw_aff
pw_aff::gist(const isl::checked::point
&context
) const
13885 return this->gist(isl::checked::set(context
));
13888 isl::checked::pw_aff
pw_aff::gist_params(isl::checked::set context
) const
13890 auto res
= isl_pw_aff_gist_params(copy(), context
.release());
13891 return manage(res
);
13894 isl::checked::set
pw_aff::gt_set(isl::checked::pw_aff pwaff2
) const
13896 auto res
= isl_pw_aff_gt_set(copy(), pwaff2
.release());
13897 return manage(res
);
13900 boolean
pw_aff::has_range_tuple_id() const
13902 return isl::checked::pw_multi_aff(*this).has_range_tuple_id();
13905 isl::checked::multi_pw_aff
pw_aff::identity() const
13907 return isl::checked::pw_multi_aff(*this).identity();
13910 isl::checked::pw_aff
pw_aff::insert_domain(isl::checked::space domain
) const
13912 auto res
= isl_pw_aff_insert_domain(copy(), domain
.release());
13913 return manage(res
);
13916 isl::checked::pw_aff
pw_aff::intersect_domain(isl::checked::set set
) const
13918 auto res
= isl_pw_aff_intersect_domain(copy(), set
.release());
13919 return manage(res
);
13922 isl::checked::union_pw_aff
pw_aff::intersect_domain(const isl::checked::space
&space
) const
13924 return isl::checked::union_pw_aff(*this).intersect_domain(space
);
13927 isl::checked::union_pw_aff
pw_aff::intersect_domain(const isl::checked::union_set
&uset
) const
13929 return isl::checked::union_pw_aff(*this).intersect_domain(uset
);
13932 isl::checked::pw_aff
pw_aff::intersect_domain(const isl::checked::basic_set
&set
) const
13934 return this->intersect_domain(isl::checked::set(set
));
13937 isl::checked::pw_aff
pw_aff::intersect_domain(const isl::checked::point
&set
) const
13939 return this->intersect_domain(isl::checked::set(set
));
13942 isl::checked::union_pw_aff
pw_aff::intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const
13944 return isl::checked::union_pw_aff(*this).intersect_domain_wrapped_domain(uset
);
13947 isl::checked::union_pw_aff
pw_aff::intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const
13949 return isl::checked::union_pw_aff(*this).intersect_domain_wrapped_range(uset
);
13952 isl::checked::pw_aff
pw_aff::intersect_params(isl::checked::set set
) const
13954 auto res
= isl_pw_aff_intersect_params(copy(), set
.release());
13955 return manage(res
);
13958 boolean
pw_aff::involves_locals() const
13960 return isl::checked::pw_multi_aff(*this).involves_locals();
13963 boolean
pw_aff::involves_nan() const
13965 return isl::checked::multi_pw_aff(*this).involves_nan();
13968 boolean
pw_aff::involves_param(const isl::checked::id
&id
) const
13970 return isl::checked::pw_multi_aff(*this).involves_param(id
);
13973 boolean
pw_aff::involves_param(const std::string
&id
) const
13975 return this->involves_param(isl::checked::id(ctx(), id
));
13978 boolean
pw_aff::involves_param(const isl::checked::id_list
&list
) const
13980 return isl::checked::pw_multi_aff(*this).involves_param(list
);
13983 boolean
pw_aff::isa_aff() const
13985 auto res
= isl_pw_aff_isa_aff(get());
13986 return manage(res
);
13989 boolean
pw_aff::isa_multi_aff() const
13991 return isl::checked::pw_multi_aff(*this).isa_multi_aff();
13994 boolean
pw_aff::isa_pw_multi_aff() const
13996 return isl::checked::union_pw_aff(*this).isa_pw_multi_aff();
13999 isl::checked::set
pw_aff::le_set(isl::checked::pw_aff pwaff2
) const
14001 auto res
= isl_pw_aff_le_set(copy(), pwaff2
.release());
14002 return manage(res
);
14005 isl::checked::pw_aff_list
pw_aff::list() const
14007 return isl::checked::multi_pw_aff(*this).list();
14010 isl::checked::set
pw_aff::lt_set(isl::checked::pw_aff pwaff2
) const
14012 auto res
= isl_pw_aff_lt_set(copy(), pwaff2
.release());
14013 return manage(res
);
14016 isl::checked::multi_pw_aff
pw_aff::max(const isl::checked::multi_pw_aff
&multi2
) const
14018 return isl::checked::pw_multi_aff(*this).max(multi2
);
14021 isl::checked::pw_aff
pw_aff::max(isl::checked::pw_aff pwaff2
) const
14023 auto res
= isl_pw_aff_max(copy(), pwaff2
.release());
14024 return manage(res
);
14027 isl::checked::pw_aff
pw_aff::max(const isl::checked::aff
&pwaff2
) const
14029 return this->max(isl::checked::pw_aff(pwaff2
));
14032 isl::checked::multi_val
pw_aff::max_multi_val() const
14034 return isl::checked::pw_multi_aff(*this).max_multi_val();
14037 isl::checked::val
pw_aff::max_val() const
14039 auto res
= isl_pw_aff_max_val(copy());
14040 return manage(res
);
14043 isl::checked::multi_pw_aff
pw_aff::min(const isl::checked::multi_pw_aff
&multi2
) const
14045 return isl::checked::pw_multi_aff(*this).min(multi2
);
14048 isl::checked::pw_aff
pw_aff::min(isl::checked::pw_aff pwaff2
) const
14050 auto res
= isl_pw_aff_min(copy(), pwaff2
.release());
14051 return manage(res
);
14054 isl::checked::pw_aff
pw_aff::min(const isl::checked::aff
&pwaff2
) const
14056 return this->min(isl::checked::pw_aff(pwaff2
));
14059 isl::checked::multi_val
pw_aff::min_multi_val() const
14061 return isl::checked::pw_multi_aff(*this).min_multi_val();
14064 isl::checked::val
pw_aff::min_val() const
14066 auto res
= isl_pw_aff_min_val(copy());
14067 return manage(res
);
14070 isl::checked::pw_aff
pw_aff::mod(isl::checked::val mod
) const
14072 auto res
= isl_pw_aff_mod_val(copy(), mod
.release());
14073 return manage(res
);
14076 isl::checked::pw_aff
pw_aff::mod(long mod
) const
14078 return this->mod(isl::checked::val(ctx(), mod
));
14081 isl::checked::pw_aff
pw_aff::mul(isl::checked::pw_aff pwaff2
) const
14083 auto res
= isl_pw_aff_mul(copy(), pwaff2
.release());
14084 return manage(res
);
14087 class size
pw_aff::n_piece() const
14089 return isl::checked::pw_multi_aff(*this).n_piece();
14092 isl::checked::set
pw_aff::ne_set(isl::checked::pw_aff pwaff2
) const
14094 auto res
= isl_pw_aff_ne_set(copy(), pwaff2
.release());
14095 return manage(res
);
14098 isl::checked::pw_aff
pw_aff::neg() const
14100 auto res
= isl_pw_aff_neg(copy());
14101 return manage(res
);
14104 isl::checked::pw_aff
pw_aff::param_on_domain(isl::checked::set domain
, isl::checked::id id
)
14106 auto res
= isl_pw_aff_param_on_domain_id(domain
.release(), id
.release());
14107 return manage(res
);
14110 isl::checked::set
pw_aff::params() const
14112 auto res
= isl_pw_aff_params(copy());
14113 return manage(res
);
14116 boolean
pw_aff::plain_is_empty() const
14118 return isl::checked::union_pw_aff(*this).plain_is_empty();
14121 boolean
pw_aff::plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const
14123 return isl::checked::pw_multi_aff(*this).plain_is_equal(multi2
);
14126 boolean
pw_aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
14128 return isl::checked::union_pw_aff(*this).plain_is_equal(multi2
);
14131 boolean
pw_aff::plain_is_equal(const isl::checked::pw_aff
&pwaff2
) const
14133 auto res
= isl_pw_aff_plain_is_equal(get(), pwaff2
.get());
14134 return manage(res
);
14137 boolean
pw_aff::plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const
14139 return isl::checked::pw_multi_aff(*this).plain_is_equal(pma2
);
14142 boolean
pw_aff::plain_is_equal(const isl::checked::union_pw_aff
&upa2
) const
14144 return isl::checked::union_pw_aff(*this).plain_is_equal(upa2
);
14147 boolean
pw_aff::plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const
14149 return isl::checked::union_pw_aff(*this).plain_is_equal(upma2
);
14152 boolean
pw_aff::plain_is_equal(const isl::checked::aff
&pwaff2
) const
14154 return this->plain_is_equal(isl::checked::pw_aff(pwaff2
));
14157 isl::checked::pw_multi_aff
pw_aff::preimage_domain_wrapped_domain(const isl::checked::pw_multi_aff
&pma2
) const
14159 return isl::checked::pw_multi_aff(*this).preimage_domain_wrapped_domain(pma2
);
14162 isl::checked::union_pw_multi_aff
pw_aff::preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const
14164 return isl::checked::union_pw_aff(*this).preimage_domain_wrapped_domain(upma2
);
14167 isl::checked::multi_pw_aff
pw_aff::product(const isl::checked::multi_pw_aff
&multi2
) const
14169 return isl::checked::pw_multi_aff(*this).product(multi2
);
14172 isl::checked::pw_multi_aff
pw_aff::product(const isl::checked::pw_multi_aff
&pma2
) const
14174 return isl::checked::pw_multi_aff(*this).product(pma2
);
14177 isl::checked::pw_aff
pw_aff::pullback(isl::checked::multi_aff ma
) const
14179 auto res
= isl_pw_aff_pullback_multi_aff(copy(), ma
.release());
14180 return manage(res
);
14183 isl::checked::pw_aff
pw_aff::pullback(isl::checked::multi_pw_aff mpa
) const
14185 auto res
= isl_pw_aff_pullback_multi_pw_aff(copy(), mpa
.release());
14186 return manage(res
);
14189 isl::checked::pw_aff
pw_aff::pullback(isl::checked::pw_multi_aff pma
) const
14191 auto res
= isl_pw_aff_pullback_pw_multi_aff(copy(), pma
.release());
14192 return manage(res
);
14195 isl::checked::union_pw_aff
pw_aff::pullback(const isl::checked::union_pw_multi_aff
&upma
) const
14197 return isl::checked::union_pw_aff(*this).pullback(upma
);
14200 isl::checked::pw_multi_aff_list
pw_aff::pw_multi_aff_list() const
14202 return isl::checked::union_pw_aff(*this).pw_multi_aff_list();
14205 isl::checked::pw_multi_aff
pw_aff::range_factor_domain() const
14207 return isl::checked::pw_multi_aff(*this).range_factor_domain();
14210 isl::checked::pw_multi_aff
pw_aff::range_factor_range() const
14212 return isl::checked::pw_multi_aff(*this).range_factor_range();
14215 isl::checked::multi_pw_aff
pw_aff::range_product(const isl::checked::multi_pw_aff
&multi2
) const
14217 return isl::checked::pw_multi_aff(*this).range_product(multi2
);
14220 isl::checked::multi_union_pw_aff
pw_aff::range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
14222 return isl::checked::union_pw_aff(*this).range_product(multi2
);
14225 isl::checked::pw_multi_aff
pw_aff::range_product(const isl::checked::pw_multi_aff
&pma2
) const
14227 return isl::checked::pw_multi_aff(*this).range_product(pma2
);
14230 isl::checked::union_pw_multi_aff
pw_aff::range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
14232 return isl::checked::union_pw_aff(*this).range_product(upma2
);
14235 isl::checked::id
pw_aff::range_tuple_id() const
14237 return isl::checked::pw_multi_aff(*this).range_tuple_id();
14240 isl::checked::multi_pw_aff
pw_aff::reset_range_tuple_id() const
14242 return isl::checked::multi_pw_aff(*this).reset_range_tuple_id();
14245 isl::checked::pw_aff
pw_aff::scale(isl::checked::val v
) const
14247 auto res
= isl_pw_aff_scale_val(copy(), v
.release());
14248 return manage(res
);
14251 isl::checked::pw_aff
pw_aff::scale(long v
) const
14253 return this->scale(isl::checked::val(ctx(), v
));
14256 isl::checked::pw_multi_aff
pw_aff::scale(const isl::checked::multi_val
&mv
) const
14258 return isl::checked::pw_multi_aff(*this).scale(mv
);
14261 isl::checked::pw_aff
pw_aff::scale_down(isl::checked::val f
) const
14263 auto res
= isl_pw_aff_scale_down_val(copy(), f
.release());
14264 return manage(res
);
14267 isl::checked::pw_aff
pw_aff::scale_down(long f
) const
14269 return this->scale_down(isl::checked::val(ctx(), f
));
14272 isl::checked::pw_multi_aff
pw_aff::scale_down(const isl::checked::multi_val
&mv
) const
14274 return isl::checked::pw_multi_aff(*this).scale_down(mv
);
14277 isl::checked::multi_pw_aff
pw_aff::set_at(int pos
, const isl::checked::pw_aff
&el
) const
14279 return isl::checked::pw_multi_aff(*this).set_at(pos
, el
);
14282 isl::checked::multi_union_pw_aff
pw_aff::set_at(int pos
, const isl::checked::union_pw_aff
&el
) const
14284 return isl::checked::union_pw_aff(*this).set_at(pos
, el
);
14287 isl::checked::pw_multi_aff
pw_aff::set_range_tuple(const isl::checked::id
&id
) const
14289 return isl::checked::pw_multi_aff(*this).set_range_tuple(id
);
14292 isl::checked::pw_multi_aff
pw_aff::set_range_tuple(const std::string
&id
) const
14294 return this->set_range_tuple(isl::checked::id(ctx(), id
));
14297 class size
pw_aff::size() const
14299 return isl::checked::multi_pw_aff(*this).size();
14302 isl::checked::space
pw_aff::space() const
14304 auto res
= isl_pw_aff_get_space(get());
14305 return manage(res
);
14308 isl::checked::space
pw_aff::get_space() const
14313 isl::checked::multi_pw_aff
pw_aff::sub(const isl::checked::multi_pw_aff
&multi2
) const
14315 return isl::checked::pw_multi_aff(*this).sub(multi2
);
14318 isl::checked::multi_union_pw_aff
pw_aff::sub(const isl::checked::multi_union_pw_aff
&multi2
) const
14320 return isl::checked::union_pw_aff(*this).sub(multi2
);
14323 isl::checked::pw_aff
pw_aff::sub(isl::checked::pw_aff pwaff2
) const
14325 auto res
= isl_pw_aff_sub(copy(), pwaff2
.release());
14326 return manage(res
);
14329 isl::checked::pw_multi_aff
pw_aff::sub(const isl::checked::pw_multi_aff
&pma2
) const
14331 return isl::checked::pw_multi_aff(*this).sub(pma2
);
14334 isl::checked::union_pw_aff
pw_aff::sub(const isl::checked::union_pw_aff
&upa2
) const
14336 return isl::checked::union_pw_aff(*this).sub(upa2
);
14339 isl::checked::union_pw_multi_aff
pw_aff::sub(const isl::checked::union_pw_multi_aff
&upma2
) const
14341 return isl::checked::union_pw_aff(*this).sub(upma2
);
14344 isl::checked::pw_aff
pw_aff::sub(const isl::checked::aff
&pwaff2
) const
14346 return this->sub(isl::checked::pw_aff(pwaff2
));
14349 isl::checked::pw_aff
pw_aff::subtract_domain(isl::checked::set set
) const
14351 auto res
= isl_pw_aff_subtract_domain(copy(), set
.release());
14352 return manage(res
);
14355 isl::checked::union_pw_aff
pw_aff::subtract_domain(const isl::checked::space
&space
) const
14357 return isl::checked::union_pw_aff(*this).subtract_domain(space
);
14360 isl::checked::union_pw_aff
pw_aff::subtract_domain(const isl::checked::union_set
&uset
) const
14362 return isl::checked::union_pw_aff(*this).subtract_domain(uset
);
14365 isl::checked::pw_aff
pw_aff::subtract_domain(const isl::checked::basic_set
&set
) const
14367 return this->subtract_domain(isl::checked::set(set
));
14370 isl::checked::pw_aff
pw_aff::subtract_domain(const isl::checked::point
&set
) const
14372 return this->subtract_domain(isl::checked::set(set
));
14375 isl::checked::pw_aff
pw_aff::tdiv_q(isl::checked::pw_aff pa2
) const
14377 auto res
= isl_pw_aff_tdiv_q(copy(), pa2
.release());
14378 return manage(res
);
14381 isl::checked::pw_aff
pw_aff::tdiv_r(isl::checked::pw_aff pa2
) const
14383 auto res
= isl_pw_aff_tdiv_r(copy(), pa2
.release());
14384 return manage(res
);
14387 isl::checked::pw_aff_list
pw_aff::to_list() const
14389 auto res
= isl_pw_aff_to_list(copy());
14390 return manage(res
);
14393 isl::checked::multi_pw_aff
pw_aff::to_multi_pw_aff() const
14395 return isl::checked::pw_multi_aff(*this).to_multi_pw_aff();
14398 isl::checked::union_pw_aff
pw_aff::to_union_pw_aff() const
14400 auto res
= isl_pw_aff_to_union_pw_aff(copy());
14401 return manage(res
);
14404 isl::checked::union_pw_multi_aff
pw_aff::to_union_pw_multi_aff() const
14406 return isl::checked::pw_multi_aff(*this).to_union_pw_multi_aff();
14409 isl::checked::multi_pw_aff
pw_aff::unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const
14411 return isl::checked::pw_multi_aff(*this).unbind_params_insert_domain(domain
);
14414 isl::checked::multi_pw_aff
pw_aff::union_add(const isl::checked::multi_pw_aff
&mpa2
) const
14416 return isl::checked::pw_multi_aff(*this).union_add(mpa2
);
14419 isl::checked::multi_union_pw_aff
pw_aff::union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const
14421 return isl::checked::union_pw_aff(*this).union_add(mupa2
);
14424 isl::checked::pw_aff
pw_aff::union_add(isl::checked::pw_aff pwaff2
) const
14426 auto res
= isl_pw_aff_union_add(copy(), pwaff2
.release());
14427 return manage(res
);
14430 isl::checked::pw_multi_aff
pw_aff::union_add(const isl::checked::pw_multi_aff
&pma2
) const
14432 return isl::checked::pw_multi_aff(*this).union_add(pma2
);
14435 isl::checked::union_pw_aff
pw_aff::union_add(const isl::checked::union_pw_aff
&upa2
) const
14437 return isl::checked::union_pw_aff(*this).union_add(upa2
);
14440 isl::checked::union_pw_multi_aff
pw_aff::union_add(const isl::checked::union_pw_multi_aff
&upma2
) const
14442 return isl::checked::union_pw_aff(*this).union_add(upma2
);
14445 isl::checked::pw_aff
pw_aff::union_add(const isl::checked::aff
&pwaff2
) const
14447 return this->union_add(isl::checked::pw_aff(pwaff2
));
14450 inline std::ostream
&operator<<(std::ostream
&os
, const pw_aff
&obj
)
14452 char *str
= isl_pw_aff_to_str(obj
.get());
14454 os
.setstate(std::ios_base::badbit
);
14462 // implementations for isl::pw_aff_list
14463 pw_aff_list
manage(__isl_take isl_pw_aff_list
*ptr
) {
14464 return pw_aff_list(ptr
);
14466 pw_aff_list
manage_copy(__isl_keep isl_pw_aff_list
*ptr
) {
14467 ptr
= isl_pw_aff_list_copy(ptr
);
14468 return pw_aff_list(ptr
);
14471 pw_aff_list::pw_aff_list(__isl_take isl_pw_aff_list
*ptr
)
14474 pw_aff_list::pw_aff_list()
14477 pw_aff_list::pw_aff_list(const pw_aff_list
&obj
)
14483 pw_aff_list::pw_aff_list(isl::checked::ctx ctx
, int n
)
14485 auto res
= isl_pw_aff_list_alloc(ctx
.release(), n
);
14489 pw_aff_list::pw_aff_list(isl::checked::pw_aff el
)
14491 auto res
= isl_pw_aff_list_from_pw_aff(el
.release());
14495 pw_aff_list::pw_aff_list(isl::checked::ctx ctx
, const std::string
&str
)
14497 auto res
= isl_pw_aff_list_read_from_str(ctx
.release(), str
.c_str());
14501 pw_aff_list
&pw_aff_list::operator=(pw_aff_list obj
) {
14502 std::swap(this->ptr
, obj
.ptr
);
14506 pw_aff_list::~pw_aff_list() {
14508 isl_pw_aff_list_free(ptr
);
14511 __isl_give isl_pw_aff_list
*pw_aff_list::copy() const & {
14512 return isl_pw_aff_list_copy(ptr
);
14515 __isl_keep isl_pw_aff_list
*pw_aff_list::get() const {
14519 __isl_give isl_pw_aff_list
*pw_aff_list::release() {
14520 isl_pw_aff_list
*tmp
= ptr
;
14525 bool pw_aff_list::is_null() const {
14526 return ptr
== nullptr;
14529 isl::checked::ctx
pw_aff_list::ctx() const {
14530 return isl::checked::ctx(isl_pw_aff_list_get_ctx(ptr
));
14533 isl::checked::pw_aff_list
pw_aff_list::add(isl::checked::pw_aff el
) const
14535 auto res
= isl_pw_aff_list_add(copy(), el
.release());
14536 return manage(res
);
14539 isl::checked::pw_aff
pw_aff_list::at(int index
) const
14541 auto res
= isl_pw_aff_list_get_at(get(), index
);
14542 return manage(res
);
14545 isl::checked::pw_aff
pw_aff_list::get_at(int index
) const
14550 isl::checked::pw_aff_list
pw_aff_list::clear() const
14552 auto res
= isl_pw_aff_list_clear(copy());
14553 return manage(res
);
14556 isl::checked::pw_aff_list
pw_aff_list::concat(isl::checked::pw_aff_list list2
) const
14558 auto res
= isl_pw_aff_list_concat(copy(), list2
.release());
14559 return manage(res
);
14562 isl::checked::pw_aff_list
pw_aff_list::drop(unsigned int first
, unsigned int n
) const
14564 auto res
= isl_pw_aff_list_drop(copy(), first
, n
);
14565 return manage(res
);
14568 stat
pw_aff_list::foreach(const std::function
<stat(isl::checked::pw_aff
)> &fn
) const
14571 std::function
<stat(isl::checked::pw_aff
)> func
;
14572 } fn_data
= { fn
};
14573 auto fn_lambda
= [](isl_pw_aff
*arg_0
, void *arg_1
) -> isl_stat
{
14574 auto *data
= static_cast<struct fn_data
*>(arg_1
);
14575 auto ret
= (data
->func
)(manage(arg_0
));
14576 return ret
.release();
14578 auto res
= isl_pw_aff_list_foreach(get(), fn_lambda
, &fn_data
);
14579 return manage(res
);
14582 stat
pw_aff_list::foreach_scc(const std::function
<boolean(isl::checked::pw_aff
, isl::checked::pw_aff
)> &follows
, const std::function
<stat(isl::checked::pw_aff_list
)> &fn
) const
14584 struct follows_data
{
14585 std::function
<boolean(isl::checked::pw_aff
, isl::checked::pw_aff
)> func
;
14586 } follows_data
= { follows
};
14587 auto follows_lambda
= [](isl_pw_aff
*arg_0
, isl_pw_aff
*arg_1
, void *arg_2
) -> isl_bool
{
14588 auto *data
= static_cast<struct follows_data
*>(arg_2
);
14589 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
14590 return ret
.release();
14593 std::function
<stat(isl::checked::pw_aff_list
)> func
;
14594 } fn_data
= { fn
};
14595 auto fn_lambda
= [](isl_pw_aff_list
*arg_0
, void *arg_1
) -> isl_stat
{
14596 auto *data
= static_cast<struct fn_data
*>(arg_1
);
14597 auto ret
= (data
->func
)(manage(arg_0
));
14598 return ret
.release();
14600 auto res
= isl_pw_aff_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
14601 return manage(res
);
14604 isl::checked::pw_aff_list
pw_aff_list::insert(unsigned int pos
, isl::checked::pw_aff el
) const
14606 auto res
= isl_pw_aff_list_insert(copy(), pos
, el
.release());
14607 return manage(res
);
14610 isl::checked::pw_aff_list
pw_aff_list::set_at(int index
, isl::checked::pw_aff el
) const
14612 auto res
= isl_pw_aff_list_set_at(copy(), index
, el
.release());
14613 return manage(res
);
14616 class size
pw_aff_list::size() const
14618 auto res
= isl_pw_aff_list_size(get());
14619 return manage(res
);
14622 inline std::ostream
&operator<<(std::ostream
&os
, const pw_aff_list
&obj
)
14624 char *str
= isl_pw_aff_list_to_str(obj
.get());
14626 os
.setstate(std::ios_base::badbit
);
14634 // implementations for isl::pw_multi_aff
14635 pw_multi_aff
manage(__isl_take isl_pw_multi_aff
*ptr
) {
14636 return pw_multi_aff(ptr
);
14638 pw_multi_aff
manage_copy(__isl_keep isl_pw_multi_aff
*ptr
) {
14639 ptr
= isl_pw_multi_aff_copy(ptr
);
14640 return pw_multi_aff(ptr
);
14643 pw_multi_aff::pw_multi_aff(__isl_take isl_pw_multi_aff
*ptr
)
14646 pw_multi_aff::pw_multi_aff()
14649 pw_multi_aff::pw_multi_aff(const pw_multi_aff
&obj
)
14655 pw_multi_aff::pw_multi_aff(isl::checked::multi_aff ma
)
14657 auto res
= isl_pw_multi_aff_from_multi_aff(ma
.release());
14661 pw_multi_aff::pw_multi_aff(isl::checked::pw_aff pa
)
14663 auto res
= isl_pw_multi_aff_from_pw_aff(pa
.release());
14667 pw_multi_aff::pw_multi_aff(isl::checked::ctx ctx
, const std::string
&str
)
14669 auto res
= isl_pw_multi_aff_read_from_str(ctx
.release(), str
.c_str());
14673 pw_multi_aff
&pw_multi_aff::operator=(pw_multi_aff obj
) {
14674 std::swap(this->ptr
, obj
.ptr
);
14678 pw_multi_aff::~pw_multi_aff() {
14680 isl_pw_multi_aff_free(ptr
);
14683 __isl_give isl_pw_multi_aff
*pw_multi_aff::copy() const & {
14684 return isl_pw_multi_aff_copy(ptr
);
14687 __isl_keep isl_pw_multi_aff
*pw_multi_aff::get() const {
14691 __isl_give isl_pw_multi_aff
*pw_multi_aff::release() {
14692 isl_pw_multi_aff
*tmp
= ptr
;
14697 bool pw_multi_aff::is_null() const {
14698 return ptr
== nullptr;
14701 isl::checked::ctx
pw_multi_aff::ctx() const {
14702 return isl::checked::ctx(isl_pw_multi_aff_get_ctx(ptr
));
14705 isl::checked::multi_pw_aff
pw_multi_aff::add(const isl::checked::multi_pw_aff
&multi2
) const
14707 return isl::checked::multi_pw_aff(*this).add(multi2
);
14710 isl::checked::multi_union_pw_aff
pw_multi_aff::add(const isl::checked::multi_union_pw_aff
&multi2
) const
14712 return isl::checked::multi_pw_aff(*this).add(multi2
);
14715 isl::checked::pw_multi_aff
pw_multi_aff::add(isl::checked::pw_multi_aff pma2
) const
14717 auto res
= isl_pw_multi_aff_add(copy(), pma2
.release());
14718 return manage(res
);
14721 isl::checked::union_pw_multi_aff
pw_multi_aff::add(const isl::checked::union_pw_multi_aff
&upma2
) const
14723 return isl::checked::union_pw_multi_aff(*this).add(upma2
);
14726 isl::checked::pw_multi_aff
pw_multi_aff::add(const isl::checked::multi_aff
&pma2
) const
14728 return this->add(isl::checked::pw_multi_aff(pma2
));
14731 isl::checked::pw_multi_aff
pw_multi_aff::add(const isl::checked::pw_aff
&pma2
) const
14733 return this->add(isl::checked::pw_multi_aff(pma2
));
14736 isl::checked::pw_multi_aff
pw_multi_aff::add_constant(isl::checked::multi_val mv
) const
14738 auto res
= isl_pw_multi_aff_add_constant_multi_val(copy(), mv
.release());
14739 return manage(res
);
14742 isl::checked::pw_multi_aff
pw_multi_aff::add_constant(isl::checked::val v
) const
14744 auto res
= isl_pw_multi_aff_add_constant_val(copy(), v
.release());
14745 return manage(res
);
14748 isl::checked::pw_multi_aff
pw_multi_aff::add_constant(long v
) const
14750 return this->add_constant(isl::checked::val(ctx(), v
));
14753 isl::checked::union_pw_multi_aff
pw_multi_aff::apply(const isl::checked::union_pw_multi_aff
&upma2
) const
14755 return isl::checked::union_pw_multi_aff(*this).apply(upma2
);
14758 isl::checked::map
pw_multi_aff::as_map() const
14760 auto res
= isl_pw_multi_aff_as_map(copy());
14761 return manage(res
);
14764 isl::checked::multi_aff
pw_multi_aff::as_multi_aff() const
14766 auto res
= isl_pw_multi_aff_as_multi_aff(copy());
14767 return manage(res
);
14770 isl::checked::multi_union_pw_aff
pw_multi_aff::as_multi_union_pw_aff() const
14772 return isl::checked::union_pw_multi_aff(*this).as_multi_union_pw_aff();
14775 isl::checked::pw_multi_aff
pw_multi_aff::as_pw_multi_aff() const
14777 return isl::checked::union_pw_multi_aff(*this).as_pw_multi_aff();
14780 isl::checked::set
pw_multi_aff::as_set() const
14782 auto res
= isl_pw_multi_aff_as_set(copy());
14783 return manage(res
);
14786 isl::checked::union_map
pw_multi_aff::as_union_map() const
14788 return isl::checked::union_pw_multi_aff(*this).as_union_map();
14791 isl::checked::pw_aff
pw_multi_aff::at(int pos
) const
14793 auto res
= isl_pw_multi_aff_get_at(get(), pos
);
14794 return manage(res
);
14797 isl::checked::pw_aff
pw_multi_aff::get_at(int pos
) const
14802 isl::checked::set
pw_multi_aff::bind(const isl::checked::multi_id
&tuple
) const
14804 return isl::checked::multi_pw_aff(*this).bind(tuple
);
14807 isl::checked::pw_multi_aff
pw_multi_aff::bind_domain(isl::checked::multi_id tuple
) const
14809 auto res
= isl_pw_multi_aff_bind_domain(copy(), tuple
.release());
14810 return manage(res
);
14813 isl::checked::pw_multi_aff
pw_multi_aff::bind_domain_wrapped_domain(isl::checked::multi_id tuple
) const
14815 auto res
= isl_pw_multi_aff_bind_domain_wrapped_domain(copy(), tuple
.release());
14816 return manage(res
);
14819 isl::checked::pw_multi_aff
pw_multi_aff::coalesce() const
14821 auto res
= isl_pw_multi_aff_coalesce(copy());
14822 return manage(res
);
14825 isl::checked::set
pw_multi_aff::domain() const
14827 auto res
= isl_pw_multi_aff_domain(copy());
14828 return manage(res
);
14831 isl::checked::pw_multi_aff
pw_multi_aff::domain_map(isl::checked::space space
)
14833 auto res
= isl_pw_multi_aff_domain_map(space
.release());
14834 return manage(res
);
14837 isl::checked::pw_multi_aff
pw_multi_aff::domain_reverse() const
14839 auto res
= isl_pw_multi_aff_domain_reverse(copy());
14840 return manage(res
);
14843 isl::checked::pw_multi_aff
pw_multi_aff::drop_unused_params() const
14845 auto res
= isl_pw_multi_aff_drop_unused_params(copy());
14846 return manage(res
);
14849 isl::checked::pw_multi_aff
pw_multi_aff::extract_pw_multi_aff(const isl::checked::space
&space
) const
14851 return isl::checked::union_pw_multi_aff(*this).extract_pw_multi_aff(space
);
14854 isl::checked::multi_pw_aff
pw_multi_aff::flat_range_product(const isl::checked::multi_pw_aff
&multi2
) const
14856 return isl::checked::multi_pw_aff(*this).flat_range_product(multi2
);
14859 isl::checked::multi_union_pw_aff
pw_multi_aff::flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
14861 return isl::checked::multi_pw_aff(*this).flat_range_product(multi2
);
14864 isl::checked::pw_multi_aff
pw_multi_aff::flat_range_product(isl::checked::pw_multi_aff pma2
) const
14866 auto res
= isl_pw_multi_aff_flat_range_product(copy(), pma2
.release());
14867 return manage(res
);
14870 isl::checked::union_pw_multi_aff
pw_multi_aff::flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
14872 return isl::checked::union_pw_multi_aff(*this).flat_range_product(upma2
);
14875 isl::checked::pw_multi_aff
pw_multi_aff::flat_range_product(const isl::checked::multi_aff
&pma2
) const
14877 return this->flat_range_product(isl::checked::pw_multi_aff(pma2
));
14880 isl::checked::pw_multi_aff
pw_multi_aff::flat_range_product(const isl::checked::pw_aff
&pma2
) const
14882 return this->flat_range_product(isl::checked::pw_multi_aff(pma2
));
14885 stat
pw_multi_aff::foreach_piece(const std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> &fn
) const
14888 std::function
<stat(isl::checked::set
, isl::checked::multi_aff
)> func
;
14889 } fn_data
= { fn
};
14890 auto fn_lambda
= [](isl_set
*arg_0
, isl_multi_aff
*arg_1
, void *arg_2
) -> isl_stat
{
14891 auto *data
= static_cast<struct fn_data
*>(arg_2
);
14892 auto ret
= (data
->func
)(manage(arg_0
), manage(arg_1
));
14893 return ret
.release();
14895 auto res
= isl_pw_multi_aff_foreach_piece(get(), fn_lambda
, &fn_data
);
14896 return manage(res
);
14899 isl::checked::pw_multi_aff
pw_multi_aff::gist(isl::checked::set set
) const
14901 auto res
= isl_pw_multi_aff_gist(copy(), set
.release());
14902 return manage(res
);
14905 isl::checked::union_pw_multi_aff
pw_multi_aff::gist(const isl::checked::union_set
&context
) const
14907 return isl::checked::union_pw_multi_aff(*this).gist(context
);
14910 isl::checked::pw_multi_aff
pw_multi_aff::gist(const isl::checked::basic_set
&set
) const
14912 return this->gist(isl::checked::set(set
));
14915 isl::checked::pw_multi_aff
pw_multi_aff::gist(const isl::checked::point
&set
) const
14917 return this->gist(isl::checked::set(set
));
14920 isl::checked::pw_multi_aff
pw_multi_aff::gist_params(isl::checked::set set
) const
14922 auto res
= isl_pw_multi_aff_gist_params(copy(), set
.release());
14923 return manage(res
);
14926 boolean
pw_multi_aff::has_range_tuple_id() const
14928 auto res
= isl_pw_multi_aff_has_range_tuple_id(get());
14929 return manage(res
);
14932 isl::checked::multi_pw_aff
pw_multi_aff::identity() const
14934 return isl::checked::multi_pw_aff(*this).identity();
14937 isl::checked::pw_multi_aff
pw_multi_aff::identity_on_domain(isl::checked::space space
)
14939 auto res
= isl_pw_multi_aff_identity_on_domain_space(space
.release());
14940 return manage(res
);
14943 isl::checked::pw_multi_aff
pw_multi_aff::insert_domain(isl::checked::space domain
) const
14945 auto res
= isl_pw_multi_aff_insert_domain(copy(), domain
.release());
14946 return manage(res
);
14949 isl::checked::pw_multi_aff
pw_multi_aff::intersect_domain(isl::checked::set set
) const
14951 auto res
= isl_pw_multi_aff_intersect_domain(copy(), set
.release());
14952 return manage(res
);
14955 isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain(const isl::checked::space
&space
) const
14957 return isl::checked::union_pw_multi_aff(*this).intersect_domain(space
);
14960 isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain(const isl::checked::union_set
&uset
) const
14962 return isl::checked::union_pw_multi_aff(*this).intersect_domain(uset
);
14965 isl::checked::pw_multi_aff
pw_multi_aff::intersect_domain(const isl::checked::basic_set
&set
) const
14967 return this->intersect_domain(isl::checked::set(set
));
14970 isl::checked::pw_multi_aff
pw_multi_aff::intersect_domain(const isl::checked::point
&set
) const
14972 return this->intersect_domain(isl::checked::set(set
));
14975 isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain_wrapped_domain(const isl::checked::union_set
&uset
) const
14977 return isl::checked::union_pw_multi_aff(*this).intersect_domain_wrapped_domain(uset
);
14980 isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain_wrapped_range(const isl::checked::union_set
&uset
) const
14982 return isl::checked::union_pw_multi_aff(*this).intersect_domain_wrapped_range(uset
);
14985 isl::checked::pw_multi_aff
pw_multi_aff::intersect_params(isl::checked::set set
) const
14987 auto res
= isl_pw_multi_aff_intersect_params(copy(), set
.release());
14988 return manage(res
);
14991 boolean
pw_multi_aff::involves_locals() const
14993 auto res
= isl_pw_multi_aff_involves_locals(get());
14994 return manage(res
);
14997 boolean
pw_multi_aff::involves_nan() const
14999 return isl::checked::multi_pw_aff(*this).involves_nan();
15002 boolean
pw_multi_aff::involves_param(const isl::checked::id
&id
) const
15004 return isl::checked::multi_pw_aff(*this).involves_param(id
);
15007 boolean
pw_multi_aff::involves_param(const std::string
&id
) const
15009 return this->involves_param(isl::checked::id(ctx(), id
));
15012 boolean
pw_multi_aff::involves_param(const isl::checked::id_list
&list
) const
15014 return isl::checked::multi_pw_aff(*this).involves_param(list
);
15017 boolean
pw_multi_aff::isa_multi_aff() const
15019 auto res
= isl_pw_multi_aff_isa_multi_aff(get());
15020 return manage(res
);
15023 boolean
pw_multi_aff::isa_pw_multi_aff() const
15025 return isl::checked::union_pw_multi_aff(*this).isa_pw_multi_aff();
15028 isl::checked::pw_aff_list
pw_multi_aff::list() const
15030 return isl::checked::multi_pw_aff(*this).list();
15033 isl::checked::multi_pw_aff
pw_multi_aff::max(const isl::checked::multi_pw_aff
&multi2
) const
15035 return isl::checked::multi_pw_aff(*this).max(multi2
);
15038 isl::checked::multi_val
pw_multi_aff::max_multi_val() const
15040 auto res
= isl_pw_multi_aff_max_multi_val(copy());
15041 return manage(res
);
15044 isl::checked::multi_pw_aff
pw_multi_aff::min(const isl::checked::multi_pw_aff
&multi2
) const
15046 return isl::checked::multi_pw_aff(*this).min(multi2
);
15049 isl::checked::multi_val
pw_multi_aff::min_multi_val() const
15051 auto res
= isl_pw_multi_aff_min_multi_val(copy());
15052 return manage(res
);
15055 isl::checked::pw_multi_aff
pw_multi_aff::multi_val_on_domain(isl::checked::set domain
, isl::checked::multi_val mv
)
15057 auto res
= isl_pw_multi_aff_multi_val_on_domain(domain
.release(), mv
.release());
15058 return manage(res
);
15061 class size
pw_multi_aff::n_piece() const
15063 auto res
= isl_pw_multi_aff_n_piece(get());
15064 return manage(res
);
15067 isl::checked::multi_pw_aff
pw_multi_aff::neg() const
15069 return isl::checked::multi_pw_aff(*this).neg();
15072 boolean
pw_multi_aff::plain_is_empty() const
15074 return isl::checked::union_pw_multi_aff(*this).plain_is_empty();
15077 boolean
pw_multi_aff::plain_is_equal(const isl::checked::multi_pw_aff
&multi2
) const
15079 return isl::checked::multi_pw_aff(*this).plain_is_equal(multi2
);
15082 boolean
pw_multi_aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
15084 return isl::checked::multi_pw_aff(*this).plain_is_equal(multi2
);
15087 boolean
pw_multi_aff::plain_is_equal(const isl::checked::pw_multi_aff
&pma2
) const
15089 auto res
= isl_pw_multi_aff_plain_is_equal(get(), pma2
.get());
15090 return manage(res
);
15093 boolean
pw_multi_aff::plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const
15095 return isl::checked::union_pw_multi_aff(*this).plain_is_equal(upma2
);
15098 boolean
pw_multi_aff::plain_is_equal(const isl::checked::multi_aff
&pma2
) const
15100 return this->plain_is_equal(isl::checked::pw_multi_aff(pma2
));
15103 boolean
pw_multi_aff::plain_is_equal(const isl::checked::pw_aff
&pma2
) const
15105 return this->plain_is_equal(isl::checked::pw_multi_aff(pma2
));
15108 isl::checked::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain(isl::checked::pw_multi_aff pma2
) const
15110 auto res
= isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(copy(), pma2
.release());
15111 return manage(res
);
15114 isl::checked::union_pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const
15116 return isl::checked::union_pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2
);
15119 isl::checked::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain(const isl::checked::multi_aff
&pma2
) const
15121 return this->preimage_domain_wrapped_domain(isl::checked::pw_multi_aff(pma2
));
15124 isl::checked::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain(const isl::checked::pw_aff
&pma2
) const
15126 return this->preimage_domain_wrapped_domain(isl::checked::pw_multi_aff(pma2
));
15129 isl::checked::multi_pw_aff
pw_multi_aff::product(const isl::checked::multi_pw_aff
&multi2
) const
15131 return isl::checked::multi_pw_aff(*this).product(multi2
);
15134 isl::checked::pw_multi_aff
pw_multi_aff::product(isl::checked::pw_multi_aff pma2
) const
15136 auto res
= isl_pw_multi_aff_product(copy(), pma2
.release());
15137 return manage(res
);
15140 isl::checked::pw_multi_aff
pw_multi_aff::product(const isl::checked::multi_aff
&pma2
) const
15142 return this->product(isl::checked::pw_multi_aff(pma2
));
15145 isl::checked::pw_multi_aff
pw_multi_aff::product(const isl::checked::pw_aff
&pma2
) const
15147 return this->product(isl::checked::pw_multi_aff(pma2
));
15150 isl::checked::multi_pw_aff
pw_multi_aff::pullback(const isl::checked::multi_pw_aff
&mpa2
) const
15152 return isl::checked::multi_pw_aff(*this).pullback(mpa2
);
15155 isl::checked::pw_multi_aff
pw_multi_aff::pullback(isl::checked::multi_aff ma
) const
15157 auto res
= isl_pw_multi_aff_pullback_multi_aff(copy(), ma
.release());
15158 return manage(res
);
15161 isl::checked::pw_multi_aff
pw_multi_aff::pullback(isl::checked::pw_multi_aff pma2
) const
15163 auto res
= isl_pw_multi_aff_pullback_pw_multi_aff(copy(), pma2
.release());
15164 return manage(res
);
15167 isl::checked::union_pw_multi_aff
pw_multi_aff::pullback(const isl::checked::union_pw_multi_aff
&upma2
) const
15169 return isl::checked::union_pw_multi_aff(*this).pullback(upma2
);
15172 isl::checked::pw_multi_aff_list
pw_multi_aff::pw_multi_aff_list() const
15174 return isl::checked::union_pw_multi_aff(*this).pw_multi_aff_list();
15177 isl::checked::pw_multi_aff
pw_multi_aff::range_factor_domain() const
15179 auto res
= isl_pw_multi_aff_range_factor_domain(copy());
15180 return manage(res
);
15183 isl::checked::pw_multi_aff
pw_multi_aff::range_factor_range() const
15185 auto res
= isl_pw_multi_aff_range_factor_range(copy());
15186 return manage(res
);
15189 isl::checked::pw_multi_aff
pw_multi_aff::range_map(isl::checked::space space
)
15191 auto res
= isl_pw_multi_aff_range_map(space
.release());
15192 return manage(res
);
15195 isl::checked::multi_pw_aff
pw_multi_aff::range_product(const isl::checked::multi_pw_aff
&multi2
) const
15197 return isl::checked::multi_pw_aff(*this).range_product(multi2
);
15200 isl::checked::multi_union_pw_aff
pw_multi_aff::range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
15202 return isl::checked::multi_pw_aff(*this).range_product(multi2
);
15205 isl::checked::pw_multi_aff
pw_multi_aff::range_product(isl::checked::pw_multi_aff pma2
) const
15207 auto res
= isl_pw_multi_aff_range_product(copy(), pma2
.release());
15208 return manage(res
);
15211 isl::checked::union_pw_multi_aff
pw_multi_aff::range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
15213 return isl::checked::union_pw_multi_aff(*this).range_product(upma2
);
15216 isl::checked::pw_multi_aff
pw_multi_aff::range_product(const isl::checked::multi_aff
&pma2
) const
15218 return this->range_product(isl::checked::pw_multi_aff(pma2
));
15221 isl::checked::pw_multi_aff
pw_multi_aff::range_product(const isl::checked::pw_aff
&pma2
) const
15223 return this->range_product(isl::checked::pw_multi_aff(pma2
));
15226 isl::checked::id
pw_multi_aff::range_tuple_id() const
15228 auto res
= isl_pw_multi_aff_get_range_tuple_id(get());
15229 return manage(res
);
15232 isl::checked::id
pw_multi_aff::get_range_tuple_id() const
15234 return range_tuple_id();
15237 isl::checked::multi_pw_aff
pw_multi_aff::reset_range_tuple_id() const
15239 return isl::checked::multi_pw_aff(*this).reset_range_tuple_id();
15242 isl::checked::pw_multi_aff
pw_multi_aff::scale(isl::checked::multi_val mv
) const
15244 auto res
= isl_pw_multi_aff_scale_multi_val(copy(), mv
.release());
15245 return manage(res
);
15248 isl::checked::pw_multi_aff
pw_multi_aff::scale(isl::checked::val v
) const
15250 auto res
= isl_pw_multi_aff_scale_val(copy(), v
.release());
15251 return manage(res
);
15254 isl::checked::pw_multi_aff
pw_multi_aff::scale(long v
) const
15256 return this->scale(isl::checked::val(ctx(), v
));
15259 isl::checked::pw_multi_aff
pw_multi_aff::scale_down(isl::checked::multi_val mv
) const
15261 auto res
= isl_pw_multi_aff_scale_down_multi_val(copy(), mv
.release());
15262 return manage(res
);
15265 isl::checked::pw_multi_aff
pw_multi_aff::scale_down(isl::checked::val v
) const
15267 auto res
= isl_pw_multi_aff_scale_down_val(copy(), v
.release());
15268 return manage(res
);
15271 isl::checked::pw_multi_aff
pw_multi_aff::scale_down(long v
) const
15273 return this->scale_down(isl::checked::val(ctx(), v
));
15276 isl::checked::multi_pw_aff
pw_multi_aff::set_at(int pos
, const isl::checked::pw_aff
&el
) const
15278 return isl::checked::multi_pw_aff(*this).set_at(pos
, el
);
15281 isl::checked::multi_union_pw_aff
pw_multi_aff::set_at(int pos
, const isl::checked::union_pw_aff
&el
) const
15283 return isl::checked::multi_pw_aff(*this).set_at(pos
, el
);
15286 isl::checked::pw_multi_aff
pw_multi_aff::set_range_tuple(isl::checked::id id
) const
15288 auto res
= isl_pw_multi_aff_set_range_tuple_id(copy(), id
.release());
15289 return manage(res
);
15292 isl::checked::pw_multi_aff
pw_multi_aff::set_range_tuple(const std::string
&id
) const
15294 return this->set_range_tuple(isl::checked::id(ctx(), id
));
15297 class size
pw_multi_aff::size() const
15299 return isl::checked::multi_pw_aff(*this).size();
15302 isl::checked::space
pw_multi_aff::space() const
15304 auto res
= isl_pw_multi_aff_get_space(get());
15305 return manage(res
);
15308 isl::checked::space
pw_multi_aff::get_space() const
15313 isl::checked::multi_pw_aff
pw_multi_aff::sub(const isl::checked::multi_pw_aff
&multi2
) const
15315 return isl::checked::multi_pw_aff(*this).sub(multi2
);
15318 isl::checked::multi_union_pw_aff
pw_multi_aff::sub(const isl::checked::multi_union_pw_aff
&multi2
) const
15320 return isl::checked::multi_pw_aff(*this).sub(multi2
);
15323 isl::checked::pw_multi_aff
pw_multi_aff::sub(isl::checked::pw_multi_aff pma2
) const
15325 auto res
= isl_pw_multi_aff_sub(copy(), pma2
.release());
15326 return manage(res
);
15329 isl::checked::union_pw_multi_aff
pw_multi_aff::sub(const isl::checked::union_pw_multi_aff
&upma2
) const
15331 return isl::checked::union_pw_multi_aff(*this).sub(upma2
);
15334 isl::checked::pw_multi_aff
pw_multi_aff::sub(const isl::checked::multi_aff
&pma2
) const
15336 return this->sub(isl::checked::pw_multi_aff(pma2
));
15339 isl::checked::pw_multi_aff
pw_multi_aff::sub(const isl::checked::pw_aff
&pma2
) const
15341 return this->sub(isl::checked::pw_multi_aff(pma2
));
15344 isl::checked::pw_multi_aff
pw_multi_aff::subtract_domain(isl::checked::set set
) const
15346 auto res
= isl_pw_multi_aff_subtract_domain(copy(), set
.release());
15347 return manage(res
);
15350 isl::checked::union_pw_multi_aff
pw_multi_aff::subtract_domain(const isl::checked::space
&space
) const
15352 return isl::checked::union_pw_multi_aff(*this).subtract_domain(space
);
15355 isl::checked::union_pw_multi_aff
pw_multi_aff::subtract_domain(const isl::checked::union_set
&uset
) const
15357 return isl::checked::union_pw_multi_aff(*this).subtract_domain(uset
);
15360 isl::checked::pw_multi_aff
pw_multi_aff::subtract_domain(const isl::checked::basic_set
&set
) const
15362 return this->subtract_domain(isl::checked::set(set
));
15365 isl::checked::pw_multi_aff
pw_multi_aff::subtract_domain(const isl::checked::point
&set
) const
15367 return this->subtract_domain(isl::checked::set(set
));
15370 isl::checked::pw_multi_aff_list
pw_multi_aff::to_list() const
15372 auto res
= isl_pw_multi_aff_to_list(copy());
15373 return manage(res
);
15376 isl::checked::multi_pw_aff
pw_multi_aff::to_multi_pw_aff() const
15378 auto res
= isl_pw_multi_aff_to_multi_pw_aff(copy());
15379 return manage(res
);
15382 isl::checked::union_pw_multi_aff
pw_multi_aff::to_union_pw_multi_aff() const
15384 auto res
= isl_pw_multi_aff_to_union_pw_multi_aff(copy());
15385 return manage(res
);
15388 isl::checked::multi_pw_aff
pw_multi_aff::unbind_params_insert_domain(const isl::checked::multi_id
&domain
) const
15390 return isl::checked::multi_pw_aff(*this).unbind_params_insert_domain(domain
);
15393 isl::checked::multi_pw_aff
pw_multi_aff::union_add(const isl::checked::multi_pw_aff
&mpa2
) const
15395 return isl::checked::multi_pw_aff(*this).union_add(mpa2
);
15398 isl::checked::multi_union_pw_aff
pw_multi_aff::union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const
15400 return isl::checked::multi_pw_aff(*this).union_add(mupa2
);
15403 isl::checked::pw_multi_aff
pw_multi_aff::union_add(isl::checked::pw_multi_aff pma2
) const
15405 auto res
= isl_pw_multi_aff_union_add(copy(), pma2
.release());
15406 return manage(res
);
15409 isl::checked::union_pw_multi_aff
pw_multi_aff::union_add(const isl::checked::union_pw_multi_aff
&upma2
) const
15411 return isl::checked::union_pw_multi_aff(*this).union_add(upma2
);
15414 isl::checked::pw_multi_aff
pw_multi_aff::union_add(const isl::checked::multi_aff
&pma2
) const
15416 return this->union_add(isl::checked::pw_multi_aff(pma2
));
15419 isl::checked::pw_multi_aff
pw_multi_aff::union_add(const isl::checked::pw_aff
&pma2
) const
15421 return this->union_add(isl::checked::pw_multi_aff(pma2
));
15424 isl::checked::pw_multi_aff
pw_multi_aff::zero(isl::checked::space space
)
15426 auto res
= isl_pw_multi_aff_zero(space
.release());
15427 return manage(res
);
15430 inline std::ostream
&operator<<(std::ostream
&os
, const pw_multi_aff
&obj
)
15432 char *str
= isl_pw_multi_aff_to_str(obj
.get());
15434 os
.setstate(std::ios_base::badbit
);
15442 // implementations for isl::pw_multi_aff_list
15443 pw_multi_aff_list
manage(__isl_take isl_pw_multi_aff_list
*ptr
) {
15444 return pw_multi_aff_list(ptr
);
15446 pw_multi_aff_list
manage_copy(__isl_keep isl_pw_multi_aff_list
*ptr
) {
15447 ptr
= isl_pw_multi_aff_list_copy(ptr
);
15448 return pw_multi_aff_list(ptr
);
15451 pw_multi_aff_list::pw_multi_aff_list(__isl_take isl_pw_multi_aff_list
*ptr
)
15454 pw_multi_aff_list::pw_multi_aff_list()
15457 pw_multi_aff_list::pw_multi_aff_list(const pw_multi_aff_list
&obj
)
15463 pw_multi_aff_list::pw_multi_aff_list(isl::checked::ctx ctx
, int n
)
15465 auto res
= isl_pw_multi_aff_list_alloc(ctx
.release(), n
);
15469 pw_multi_aff_list::pw_multi_aff_list(isl::checked::pw_multi_aff el
)
15471 auto res
= isl_pw_multi_aff_list_from_pw_multi_aff(el
.release());
15475 pw_multi_aff_list::pw_multi_aff_list(isl::checked::ctx ctx
, const std::string
&str
)
15477 auto res
= isl_pw_multi_aff_list_read_from_str(ctx
.release(), str
.c_str());
15481 pw_multi_aff_list
&pw_multi_aff_list::operator=(pw_multi_aff_list obj
) {
15482 std::swap(this->ptr
, obj
.ptr
);
15486 pw_multi_aff_list::~pw_multi_aff_list() {
15488 isl_pw_multi_aff_list_free(ptr
);
15491 __isl_give isl_pw_multi_aff_list
*pw_multi_aff_list::copy() const & {
15492 return isl_pw_multi_aff_list_copy(ptr
);
15495 __isl_keep isl_pw_multi_aff_list
*pw_multi_aff_list::get() const {
15499 __isl_give isl_pw_multi_aff_list
*pw_multi_aff_list::release() {
15500 isl_pw_multi_aff_list
*tmp
= ptr
;
15505 bool pw_multi_aff_list::is_null() const {
15506 return ptr
== nullptr;
15509 isl::checked::ctx
pw_multi_aff_list::ctx() const {
15510 return isl::checked::ctx(isl_pw_multi_aff_list_get_ctx(ptr
));
15513 isl::checked::pw_multi_aff_list
pw_multi_aff_list::add(isl::checked::pw_multi_aff el
) const
15515 auto res
= isl_pw_multi_aff_list_add(copy(), el
.release());
15516 return manage(res
);
15519 isl::checked::pw_multi_aff
pw_multi_aff_list::at(int index
) const
15521 auto res
= isl_pw_multi_aff_list_get_at(get(), index
);
15522 return manage(res
);
15525 isl::checked::pw_multi_aff
pw_multi_aff_list::get_at(int index
) const
15530 isl::checked::pw_multi_aff_list
pw_multi_aff_list::clear() const
15532 auto res
= isl_pw_multi_aff_list_clear(copy());
15533 return manage(res
);
15536 isl::checked::pw_multi_aff_list
pw_multi_aff_list::concat(isl::checked::pw_multi_aff_list list2
) const
15538 auto res
= isl_pw_multi_aff_list_concat(copy(), list2
.release());
15539 return manage(res
);
15542 isl::checked::pw_multi_aff_list
pw_multi_aff_list::drop(unsigned int first
, unsigned int n
) const
15544 auto res
= isl_pw_multi_aff_list_drop(copy(), first
, n
);
15545 return manage(res
);
15548 stat
pw_multi_aff_list::foreach(const std::function
<stat(isl::checked::pw_multi_aff
)> &fn
) const
15551 std::function
<stat(isl::checked::pw_multi_aff
)> func
;
15552 } fn_data
= { fn
};
15553 auto fn_lambda
= [](isl_pw_multi_aff
*arg_0
, void *arg_1
) -> isl_stat
{
15554 auto *data
= static_cast<struct fn_data
*>(arg_1
);
15555 auto ret
= (data
->func
)(manage(arg_0
));
15556 return ret
.release();
15558 auto res
= isl_pw_multi_aff_list_foreach(get(), fn_lambda
, &fn_data
);
15559 return manage(res
);
15562 stat
pw_multi_aff_list::foreach_scc(const std::function
<boolean(isl::checked::pw_multi_aff
, isl::checked::pw_multi_aff
)> &follows
, const std::function
<stat(isl::checked::pw_multi_aff_list
)> &fn
) const
15564 struct follows_data
{
15565 std::function
<boolean(isl::checked::pw_multi_aff
, isl::checked::pw_multi_aff
)> func
;
15566 } follows_data
= { follows
};
15567 auto follows_lambda
= [](isl_pw_multi_aff
*arg_0
, isl_pw_multi_aff
*arg_1
, void *arg_2
) -> isl_bool
{
15568 auto *data
= static_cast<struct follows_data
*>(arg_2
);
15569 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
15570 return ret
.release();
15573 std::function
<stat(isl::checked::pw_multi_aff_list
)> func
;
15574 } fn_data
= { fn
};
15575 auto fn_lambda
= [](isl_pw_multi_aff_list
*arg_0
, void *arg_1
) -> isl_stat
{
15576 auto *data
= static_cast<struct fn_data
*>(arg_1
);
15577 auto ret
= (data
->func
)(manage(arg_0
));
15578 return ret
.release();
15580 auto res
= isl_pw_multi_aff_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
15581 return manage(res
);
15584 isl::checked::pw_multi_aff_list
pw_multi_aff_list::insert(unsigned int pos
, isl::checked::pw_multi_aff el
) const
15586 auto res
= isl_pw_multi_aff_list_insert(copy(), pos
, el
.release());
15587 return manage(res
);
15590 isl::checked::pw_multi_aff_list
pw_multi_aff_list::set_at(int index
, isl::checked::pw_multi_aff el
) const
15592 auto res
= isl_pw_multi_aff_list_set_at(copy(), index
, el
.release());
15593 return manage(res
);
15596 class size
pw_multi_aff_list::size() const
15598 auto res
= isl_pw_multi_aff_list_size(get());
15599 return manage(res
);
15602 inline std::ostream
&operator<<(std::ostream
&os
, const pw_multi_aff_list
&obj
)
15604 char *str
= isl_pw_multi_aff_list_to_str(obj
.get());
15606 os
.setstate(std::ios_base::badbit
);
15614 // implementations for isl::schedule
15615 schedule
manage(__isl_take isl_schedule
*ptr
) {
15616 return schedule(ptr
);
15618 schedule
manage_copy(__isl_keep isl_schedule
*ptr
) {
15619 ptr
= isl_schedule_copy(ptr
);
15620 return schedule(ptr
);
15623 schedule::schedule(__isl_take isl_schedule
*ptr
)
15626 schedule::schedule()
15629 schedule::schedule(const schedule
&obj
)
15635 schedule::schedule(isl::checked::ctx ctx
, const std::string
&str
)
15637 auto res
= isl_schedule_read_from_str(ctx
.release(), str
.c_str());
15641 schedule
&schedule::operator=(schedule obj
) {
15642 std::swap(this->ptr
, obj
.ptr
);
15646 schedule::~schedule() {
15648 isl_schedule_free(ptr
);
15651 __isl_give isl_schedule
*schedule::copy() const & {
15652 return isl_schedule_copy(ptr
);
15655 __isl_keep isl_schedule
*schedule::get() const {
15659 __isl_give isl_schedule
*schedule::release() {
15660 isl_schedule
*tmp
= ptr
;
15665 bool schedule::is_null() const {
15666 return ptr
== nullptr;
15669 isl::checked::ctx
schedule::ctx() const {
15670 return isl::checked::ctx(isl_schedule_get_ctx(ptr
));
15673 isl::checked::union_set
schedule::domain() const
15675 auto res
= isl_schedule_get_domain(get());
15676 return manage(res
);
15679 isl::checked::union_set
schedule::get_domain() const
15684 isl::checked::schedule
schedule::from_domain(isl::checked::union_set domain
)
15686 auto res
= isl_schedule_from_domain(domain
.release());
15687 return manage(res
);
15690 isl::checked::union_map
schedule::map() const
15692 auto res
= isl_schedule_get_map(get());
15693 return manage(res
);
15696 isl::checked::union_map
schedule::get_map() const
15701 isl::checked::schedule
schedule::pullback(isl::checked::union_pw_multi_aff upma
) const
15703 auto res
= isl_schedule_pullback_union_pw_multi_aff(copy(), upma
.release());
15704 return manage(res
);
15707 isl::checked::schedule_node
schedule::root() const
15709 auto res
= isl_schedule_get_root(get());
15710 return manage(res
);
15713 isl::checked::schedule_node
schedule::get_root() const
15718 inline std::ostream
&operator<<(std::ostream
&os
, const schedule
&obj
)
15720 char *str
= isl_schedule_to_str(obj
.get());
15722 os
.setstate(std::ios_base::badbit
);
15730 // implementations for isl::schedule_constraints
15731 schedule_constraints
manage(__isl_take isl_schedule_constraints
*ptr
) {
15732 return schedule_constraints(ptr
);
15734 schedule_constraints
manage_copy(__isl_keep isl_schedule_constraints
*ptr
) {
15735 ptr
= isl_schedule_constraints_copy(ptr
);
15736 return schedule_constraints(ptr
);
15739 schedule_constraints::schedule_constraints(__isl_take isl_schedule_constraints
*ptr
)
15742 schedule_constraints::schedule_constraints()
15745 schedule_constraints::schedule_constraints(const schedule_constraints
&obj
)
15751 schedule_constraints::schedule_constraints(isl::checked::ctx ctx
, const std::string
&str
)
15753 auto res
= isl_schedule_constraints_read_from_str(ctx
.release(), str
.c_str());
15757 schedule_constraints
&schedule_constraints::operator=(schedule_constraints obj
) {
15758 std::swap(this->ptr
, obj
.ptr
);
15762 schedule_constraints::~schedule_constraints() {
15764 isl_schedule_constraints_free(ptr
);
15767 __isl_give isl_schedule_constraints
*schedule_constraints::copy() const & {
15768 return isl_schedule_constraints_copy(ptr
);
15771 __isl_keep isl_schedule_constraints
*schedule_constraints::get() const {
15775 __isl_give isl_schedule_constraints
*schedule_constraints::release() {
15776 isl_schedule_constraints
*tmp
= ptr
;
15781 bool schedule_constraints::is_null() const {
15782 return ptr
== nullptr;
15785 isl::checked::ctx
schedule_constraints::ctx() const {
15786 return isl::checked::ctx(isl_schedule_constraints_get_ctx(ptr
));
15789 isl::checked::union_map
schedule_constraints::coincidence() const
15791 auto res
= isl_schedule_constraints_get_coincidence(get());
15792 return manage(res
);
15795 isl::checked::union_map
schedule_constraints::get_coincidence() const
15797 return coincidence();
15800 isl::checked::schedule
schedule_constraints::compute_schedule() const
15802 auto res
= isl_schedule_constraints_compute_schedule(copy());
15803 return manage(res
);
15806 isl::checked::union_map
schedule_constraints::conditional_validity() const
15808 auto res
= isl_schedule_constraints_get_conditional_validity(get());
15809 return manage(res
);
15812 isl::checked::union_map
schedule_constraints::get_conditional_validity() const
15814 return conditional_validity();
15817 isl::checked::union_map
schedule_constraints::conditional_validity_condition() const
15819 auto res
= isl_schedule_constraints_get_conditional_validity_condition(get());
15820 return manage(res
);
15823 isl::checked::union_map
schedule_constraints::get_conditional_validity_condition() const
15825 return conditional_validity_condition();
15828 isl::checked::set
schedule_constraints::context() const
15830 auto res
= isl_schedule_constraints_get_context(get());
15831 return manage(res
);
15834 isl::checked::set
schedule_constraints::get_context() const
15839 isl::checked::union_set
schedule_constraints::domain() const
15841 auto res
= isl_schedule_constraints_get_domain(get());
15842 return manage(res
);
15845 isl::checked::union_set
schedule_constraints::get_domain() const
15850 isl::checked::schedule_constraints
schedule_constraints::on_domain(isl::checked::union_set domain
)
15852 auto res
= isl_schedule_constraints_on_domain(domain
.release());
15853 return manage(res
);
15856 isl::checked::union_map
schedule_constraints::proximity() const
15858 auto res
= isl_schedule_constraints_get_proximity(get());
15859 return manage(res
);
15862 isl::checked::union_map
schedule_constraints::get_proximity() const
15864 return proximity();
15867 isl::checked::schedule_constraints
schedule_constraints::set_coincidence(isl::checked::union_map coincidence
) const
15869 auto res
= isl_schedule_constraints_set_coincidence(copy(), coincidence
.release());
15870 return manage(res
);
15873 isl::checked::schedule_constraints
schedule_constraints::set_conditional_validity(isl::checked::union_map condition
, isl::checked::union_map validity
) const
15875 auto res
= isl_schedule_constraints_set_conditional_validity(copy(), condition
.release(), validity
.release());
15876 return manage(res
);
15879 isl::checked::schedule_constraints
schedule_constraints::set_context(isl::checked::set context
) const
15881 auto res
= isl_schedule_constraints_set_context(copy(), context
.release());
15882 return manage(res
);
15885 isl::checked::schedule_constraints
schedule_constraints::set_proximity(isl::checked::union_map proximity
) const
15887 auto res
= isl_schedule_constraints_set_proximity(copy(), proximity
.release());
15888 return manage(res
);
15891 isl::checked::schedule_constraints
schedule_constraints::set_validity(isl::checked::union_map validity
) const
15893 auto res
= isl_schedule_constraints_set_validity(copy(), validity
.release());
15894 return manage(res
);
15897 isl::checked::union_map
schedule_constraints::validity() const
15899 auto res
= isl_schedule_constraints_get_validity(get());
15900 return manage(res
);
15903 isl::checked::union_map
schedule_constraints::get_validity() const
15908 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_constraints
&obj
)
15910 char *str
= isl_schedule_constraints_to_str(obj
.get());
15912 os
.setstate(std::ios_base::badbit
);
15920 // implementations for isl::schedule_node
15921 schedule_node
manage(__isl_take isl_schedule_node
*ptr
) {
15922 return schedule_node(ptr
);
15924 schedule_node
manage_copy(__isl_keep isl_schedule_node
*ptr
) {
15925 ptr
= isl_schedule_node_copy(ptr
);
15926 return schedule_node(ptr
);
15929 schedule_node::schedule_node(__isl_take isl_schedule_node
*ptr
)
15932 schedule_node::schedule_node()
15935 schedule_node::schedule_node(const schedule_node
&obj
)
15941 schedule_node
&schedule_node::operator=(schedule_node obj
) {
15942 std::swap(this->ptr
, obj
.ptr
);
15946 schedule_node::~schedule_node() {
15948 isl_schedule_node_free(ptr
);
15951 __isl_give isl_schedule_node
*schedule_node::copy() const & {
15952 return isl_schedule_node_copy(ptr
);
15955 __isl_keep isl_schedule_node
*schedule_node::get() const {
15959 __isl_give isl_schedule_node
*schedule_node::release() {
15960 isl_schedule_node
*tmp
= ptr
;
15965 bool schedule_node::is_null() const {
15966 return ptr
== nullptr;
15969 template <typename T
, typename
>
15970 boolean
schedule_node::isa_type(T subtype
) const
15974 return isl_schedule_node_get_type(get()) == subtype
;
15977 boolean
schedule_node::isa() const
15979 return isa_type
<decltype(T::type
)>(T::type
);
15982 T
schedule_node::as() const
15984 if (isa
<T
>().is_false())
15985 isl_die(ctx().get(), isl_error_invalid
, "not an object of the requested subtype", return T());
15989 isl::checked::ctx
schedule_node::ctx() const {
15990 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
15993 isl::checked::schedule_node
schedule_node::ancestor(int generation
) const
15995 auto res
= isl_schedule_node_ancestor(copy(), generation
);
15996 return manage(res
);
15999 class size
schedule_node::ancestor_child_position(const isl::checked::schedule_node
&ancestor
) const
16001 auto res
= isl_schedule_node_get_ancestor_child_position(get(), ancestor
.get());
16002 return manage(res
);
16005 class size
schedule_node::get_ancestor_child_position(const isl::checked::schedule_node
&ancestor
) const
16007 return ancestor_child_position(ancestor
);
16010 isl::checked::schedule_node
schedule_node::child(int pos
) const
16012 auto res
= isl_schedule_node_child(copy(), pos
);
16013 return manage(res
);
16016 class size
schedule_node::child_position() const
16018 auto res
= isl_schedule_node_get_child_position(get());
16019 return manage(res
);
16022 class size
schedule_node::get_child_position() const
16024 return child_position();
16027 boolean
schedule_node::every_descendant(const std::function
<boolean(isl::checked::schedule_node
)> &test
) const
16030 std::function
<boolean(isl::checked::schedule_node
)> func
;
16031 } test_data
= { test
};
16032 auto test_lambda
= [](isl_schedule_node
*arg_0
, void *arg_1
) -> isl_bool
{
16033 auto *data
= static_cast<struct test_data
*>(arg_1
);
16034 auto ret
= (data
->func
)(manage_copy(arg_0
));
16035 return ret
.release();
16037 auto res
= isl_schedule_node_every_descendant(get(), test_lambda
, &test_data
);
16038 return manage(res
);
16041 isl::checked::schedule_node
schedule_node::first_child() const
16043 auto res
= isl_schedule_node_first_child(copy());
16044 return manage(res
);
16047 stat
schedule_node::foreach_ancestor_top_down(const std::function
<stat(isl::checked::schedule_node
)> &fn
) const
16050 std::function
<stat(isl::checked::schedule_node
)> func
;
16051 } fn_data
= { fn
};
16052 auto fn_lambda
= [](isl_schedule_node
*arg_0
, void *arg_1
) -> isl_stat
{
16053 auto *data
= static_cast<struct fn_data
*>(arg_1
);
16054 auto ret
= (data
->func
)(manage_copy(arg_0
));
16055 return ret
.release();
16057 auto res
= isl_schedule_node_foreach_ancestor_top_down(get(), fn_lambda
, &fn_data
);
16058 return manage(res
);
16061 stat
schedule_node::foreach_descendant_top_down(const std::function
<boolean(isl::checked::schedule_node
)> &fn
) const
16064 std::function
<boolean(isl::checked::schedule_node
)> func
;
16065 } fn_data
= { fn
};
16066 auto fn_lambda
= [](isl_schedule_node
*arg_0
, void *arg_1
) -> isl_bool
{
16067 auto *data
= static_cast<struct fn_data
*>(arg_1
);
16068 auto ret
= (data
->func
)(manage_copy(arg_0
));
16069 return ret
.release();
16071 auto res
= isl_schedule_node_foreach_descendant_top_down(get(), fn_lambda
, &fn_data
);
16072 return manage(res
);
16075 isl::checked::schedule_node
schedule_node::from_domain(isl::checked::union_set domain
)
16077 auto res
= isl_schedule_node_from_domain(domain
.release());
16078 return manage(res
);
16081 isl::checked::schedule_node
schedule_node::from_extension(isl::checked::union_map extension
)
16083 auto res
= isl_schedule_node_from_extension(extension
.release());
16084 return manage(res
);
16087 isl::checked::schedule_node
schedule_node::graft_after(isl::checked::schedule_node graft
) const
16089 auto res
= isl_schedule_node_graft_after(copy(), graft
.release());
16090 return manage(res
);
16093 isl::checked::schedule_node
schedule_node::graft_before(isl::checked::schedule_node graft
) const
16095 auto res
= isl_schedule_node_graft_before(copy(), graft
.release());
16096 return manage(res
);
16099 boolean
schedule_node::has_children() const
16101 auto res
= isl_schedule_node_has_children(get());
16102 return manage(res
);
16105 boolean
schedule_node::has_next_sibling() const
16107 auto res
= isl_schedule_node_has_next_sibling(get());
16108 return manage(res
);
16111 boolean
schedule_node::has_parent() const
16113 auto res
= isl_schedule_node_has_parent(get());
16114 return manage(res
);
16117 boolean
schedule_node::has_previous_sibling() const
16119 auto res
= isl_schedule_node_has_previous_sibling(get());
16120 return manage(res
);
16123 isl::checked::schedule_node
schedule_node::insert_context(isl::checked::set context
) const
16125 auto res
= isl_schedule_node_insert_context(copy(), context
.release());
16126 return manage(res
);
16129 isl::checked::schedule_node
schedule_node::insert_filter(isl::checked::union_set filter
) const
16131 auto res
= isl_schedule_node_insert_filter(copy(), filter
.release());
16132 return manage(res
);
16135 isl::checked::schedule_node
schedule_node::insert_guard(isl::checked::set context
) const
16137 auto res
= isl_schedule_node_insert_guard(copy(), context
.release());
16138 return manage(res
);
16141 isl::checked::schedule_node
schedule_node::insert_mark(isl::checked::id mark
) const
16143 auto res
= isl_schedule_node_insert_mark(copy(), mark
.release());
16144 return manage(res
);
16147 isl::checked::schedule_node
schedule_node::insert_mark(const std::string
&mark
) const
16149 return this->insert_mark(isl::checked::id(ctx(), mark
));
16152 isl::checked::schedule_node
schedule_node::insert_partial_schedule(isl::checked::multi_union_pw_aff schedule
) const
16154 auto res
= isl_schedule_node_insert_partial_schedule(copy(), schedule
.release());
16155 return manage(res
);
16158 isl::checked::schedule_node
schedule_node::insert_sequence(isl::checked::union_set_list filters
) const
16160 auto res
= isl_schedule_node_insert_sequence(copy(), filters
.release());
16161 return manage(res
);
16164 isl::checked::schedule_node
schedule_node::insert_set(isl::checked::union_set_list filters
) const
16166 auto res
= isl_schedule_node_insert_set(copy(), filters
.release());
16167 return manage(res
);
16170 boolean
schedule_node::is_equal(const isl::checked::schedule_node
&node2
) const
16172 auto res
= isl_schedule_node_is_equal(get(), node2
.get());
16173 return manage(res
);
16176 boolean
schedule_node::is_subtree_anchored() const
16178 auto res
= isl_schedule_node_is_subtree_anchored(get());
16179 return manage(res
);
16182 isl::checked::schedule_node
schedule_node::map_descendant_bottom_up(const std::function
<isl::checked::schedule_node(isl::checked::schedule_node
)> &fn
) const
16185 std::function
<isl::checked::schedule_node(isl::checked::schedule_node
)> func
;
16186 } fn_data
= { fn
};
16187 auto fn_lambda
= [](isl_schedule_node
*arg_0
, void *arg_1
) -> isl_schedule_node
* {
16188 auto *data
= static_cast<struct fn_data
*>(arg_1
);
16189 auto ret
= (data
->func
)(manage(arg_0
));
16190 return ret
.release();
16192 auto res
= isl_schedule_node_map_descendant_bottom_up(copy(), fn_lambda
, &fn_data
);
16193 return manage(res
);
16196 class size
schedule_node::n_children() const
16198 auto res
= isl_schedule_node_n_children(get());
16199 return manage(res
);
16202 isl::checked::schedule_node
schedule_node::next_sibling() const
16204 auto res
= isl_schedule_node_next_sibling(copy());
16205 return manage(res
);
16208 isl::checked::schedule_node
schedule_node::order_after(isl::checked::union_set filter
) const
16210 auto res
= isl_schedule_node_order_after(copy(), filter
.release());
16211 return manage(res
);
16214 isl::checked::schedule_node
schedule_node::order_before(isl::checked::union_set filter
) const
16216 auto res
= isl_schedule_node_order_before(copy(), filter
.release());
16217 return manage(res
);
16220 isl::checked::schedule_node
schedule_node::parent() const
16222 auto res
= isl_schedule_node_parent(copy());
16223 return manage(res
);
16226 isl::checked::multi_union_pw_aff
schedule_node::prefix_schedule_multi_union_pw_aff() const
16228 auto res
= isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(get());
16229 return manage(res
);
16232 isl::checked::multi_union_pw_aff
schedule_node::get_prefix_schedule_multi_union_pw_aff() const
16234 return prefix_schedule_multi_union_pw_aff();
16237 isl::checked::union_map
schedule_node::prefix_schedule_union_map() const
16239 auto res
= isl_schedule_node_get_prefix_schedule_union_map(get());
16240 return manage(res
);
16243 isl::checked::union_map
schedule_node::get_prefix_schedule_union_map() const
16245 return prefix_schedule_union_map();
16248 isl::checked::union_pw_multi_aff
schedule_node::prefix_schedule_union_pw_multi_aff() const
16250 auto res
= isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(get());
16251 return manage(res
);
16254 isl::checked::union_pw_multi_aff
schedule_node::get_prefix_schedule_union_pw_multi_aff() const
16256 return prefix_schedule_union_pw_multi_aff();
16259 isl::checked::schedule_node
schedule_node::previous_sibling() const
16261 auto res
= isl_schedule_node_previous_sibling(copy());
16262 return manage(res
);
16265 isl::checked::schedule_node
schedule_node::root() const
16267 auto res
= isl_schedule_node_root(copy());
16268 return manage(res
);
16271 isl::checked::schedule
schedule_node::schedule() const
16273 auto res
= isl_schedule_node_get_schedule(get());
16274 return manage(res
);
16277 isl::checked::schedule
schedule_node::get_schedule() const
16282 isl::checked::schedule_node
schedule_node::shared_ancestor(const isl::checked::schedule_node
&node2
) const
16284 auto res
= isl_schedule_node_get_shared_ancestor(get(), node2
.get());
16285 return manage(res
);
16288 isl::checked::schedule_node
schedule_node::get_shared_ancestor(const isl::checked::schedule_node
&node2
) const
16290 return shared_ancestor(node2
);
16293 class size
schedule_node::tree_depth() const
16295 auto res
= isl_schedule_node_get_tree_depth(get());
16296 return manage(res
);
16299 class size
schedule_node::get_tree_depth() const
16301 return tree_depth();
16304 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node
&obj
)
16306 char *str
= isl_schedule_node_to_str(obj
.get());
16308 os
.setstate(std::ios_base::badbit
);
16316 // implementations for isl::schedule_node_band
16317 schedule_node_band::schedule_node_band(__isl_take isl_schedule_node
*ptr
)
16318 : schedule_node(ptr
) {}
16320 schedule_node_band::schedule_node_band()
16321 : schedule_node() {}
16323 schedule_node_band::schedule_node_band(const schedule_node_band
&obj
)
16324 : schedule_node(obj
)
16328 schedule_node_band
&schedule_node_band::operator=(schedule_node_band obj
) {
16329 std::swap(this->ptr
, obj
.ptr
);
16333 isl::checked::ctx
schedule_node_band::ctx() const {
16334 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16337 isl::checked::union_set
schedule_node_band::ast_build_options() const
16339 auto res
= isl_schedule_node_band_get_ast_build_options(get());
16340 return manage(res
);
16343 isl::checked::union_set
schedule_node_band::get_ast_build_options() const
16345 return ast_build_options();
16348 isl::checked::set
schedule_node_band::ast_isolate_option() const
16350 auto res
= isl_schedule_node_band_get_ast_isolate_option(get());
16351 return manage(res
);
16354 isl::checked::set
schedule_node_band::get_ast_isolate_option() const
16356 return ast_isolate_option();
16359 boolean
schedule_node_band::member_get_coincident(int pos
) const
16361 auto res
= isl_schedule_node_band_member_get_coincident(get(), pos
);
16362 return manage(res
);
16365 schedule_node_band
schedule_node_band::member_set_coincident(int pos
, int coincident
) const
16367 auto res
= isl_schedule_node_band_member_set_coincident(copy(), pos
, coincident
);
16368 return manage(res
).as
<schedule_node_band
>();
16371 schedule_node_band
schedule_node_band::mod(isl::checked::multi_val mv
) const
16373 auto res
= isl_schedule_node_band_mod(copy(), mv
.release());
16374 return manage(res
).as
<schedule_node_band
>();
16377 class size
schedule_node_band::n_member() const
16379 auto res
= isl_schedule_node_band_n_member(get());
16380 return manage(res
);
16383 isl::checked::multi_union_pw_aff
schedule_node_band::partial_schedule() const
16385 auto res
= isl_schedule_node_band_get_partial_schedule(get());
16386 return manage(res
);
16389 isl::checked::multi_union_pw_aff
schedule_node_band::get_partial_schedule() const
16391 return partial_schedule();
16394 boolean
schedule_node_band::permutable() const
16396 auto res
= isl_schedule_node_band_get_permutable(get());
16397 return manage(res
);
16400 boolean
schedule_node_band::get_permutable() const
16402 return permutable();
16405 schedule_node_band
schedule_node_band::scale(isl::checked::multi_val mv
) const
16407 auto res
= isl_schedule_node_band_scale(copy(), mv
.release());
16408 return manage(res
).as
<schedule_node_band
>();
16411 schedule_node_band
schedule_node_band::scale_down(isl::checked::multi_val mv
) const
16413 auto res
= isl_schedule_node_band_scale_down(copy(), mv
.release());
16414 return manage(res
).as
<schedule_node_band
>();
16417 schedule_node_band
schedule_node_band::set_ast_build_options(isl::checked::union_set options
) const
16419 auto res
= isl_schedule_node_band_set_ast_build_options(copy(), options
.release());
16420 return manage(res
).as
<schedule_node_band
>();
16423 schedule_node_band
schedule_node_band::set_permutable(int permutable
) const
16425 auto res
= isl_schedule_node_band_set_permutable(copy(), permutable
);
16426 return manage(res
).as
<schedule_node_band
>();
16429 schedule_node_band
schedule_node_band::shift(isl::checked::multi_union_pw_aff shift
) const
16431 auto res
= isl_schedule_node_band_shift(copy(), shift
.release());
16432 return manage(res
).as
<schedule_node_band
>();
16435 schedule_node_band
schedule_node_band::split(int pos
) const
16437 auto res
= isl_schedule_node_band_split(copy(), pos
);
16438 return manage(res
).as
<schedule_node_band
>();
16441 schedule_node_band
schedule_node_band::tile(isl::checked::multi_val sizes
) const
16443 auto res
= isl_schedule_node_band_tile(copy(), sizes
.release());
16444 return manage(res
).as
<schedule_node_band
>();
16447 schedule_node_band
schedule_node_band::member_set_ast_loop_default(int pos
) const
16449 auto res
= isl_schedule_node_band_member_set_ast_loop_type(copy(), pos
, isl_ast_loop_default
);
16450 return manage(res
).as
<schedule_node_band
>();
16453 schedule_node_band
schedule_node_band::member_set_ast_loop_atomic(int pos
) const
16455 auto res
= isl_schedule_node_band_member_set_ast_loop_type(copy(), pos
, isl_ast_loop_atomic
);
16456 return manage(res
).as
<schedule_node_band
>();
16459 schedule_node_band
schedule_node_band::member_set_ast_loop_unroll(int pos
) const
16461 auto res
= isl_schedule_node_band_member_set_ast_loop_type(copy(), pos
, isl_ast_loop_unroll
);
16462 return manage(res
).as
<schedule_node_band
>();
16465 schedule_node_band
schedule_node_band::member_set_ast_loop_separate(int pos
) const
16467 auto res
= isl_schedule_node_band_member_set_ast_loop_type(copy(), pos
, isl_ast_loop_separate
);
16468 return manage(res
).as
<schedule_node_band
>();
16471 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_band
&obj
)
16473 char *str
= isl_schedule_node_to_str(obj
.get());
16475 os
.setstate(std::ios_base::badbit
);
16483 // implementations for isl::schedule_node_context
16484 schedule_node_context::schedule_node_context(__isl_take isl_schedule_node
*ptr
)
16485 : schedule_node(ptr
) {}
16487 schedule_node_context::schedule_node_context()
16488 : schedule_node() {}
16490 schedule_node_context::schedule_node_context(const schedule_node_context
&obj
)
16491 : schedule_node(obj
)
16495 schedule_node_context
&schedule_node_context::operator=(schedule_node_context obj
) {
16496 std::swap(this->ptr
, obj
.ptr
);
16500 isl::checked::ctx
schedule_node_context::ctx() const {
16501 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16504 isl::checked::set
schedule_node_context::context() const
16506 auto res
= isl_schedule_node_context_get_context(get());
16507 return manage(res
);
16510 isl::checked::set
schedule_node_context::get_context() const
16515 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_context
&obj
)
16517 char *str
= isl_schedule_node_to_str(obj
.get());
16519 os
.setstate(std::ios_base::badbit
);
16527 // implementations for isl::schedule_node_domain
16528 schedule_node_domain::schedule_node_domain(__isl_take isl_schedule_node
*ptr
)
16529 : schedule_node(ptr
) {}
16531 schedule_node_domain::schedule_node_domain()
16532 : schedule_node() {}
16534 schedule_node_domain::schedule_node_domain(const schedule_node_domain
&obj
)
16535 : schedule_node(obj
)
16539 schedule_node_domain
&schedule_node_domain::operator=(schedule_node_domain obj
) {
16540 std::swap(this->ptr
, obj
.ptr
);
16544 isl::checked::ctx
schedule_node_domain::ctx() const {
16545 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16548 isl::checked::union_set
schedule_node_domain::domain() const
16550 auto res
= isl_schedule_node_domain_get_domain(get());
16551 return manage(res
);
16554 isl::checked::union_set
schedule_node_domain::get_domain() const
16559 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_domain
&obj
)
16561 char *str
= isl_schedule_node_to_str(obj
.get());
16563 os
.setstate(std::ios_base::badbit
);
16571 // implementations for isl::schedule_node_expansion
16572 schedule_node_expansion::schedule_node_expansion(__isl_take isl_schedule_node
*ptr
)
16573 : schedule_node(ptr
) {}
16575 schedule_node_expansion::schedule_node_expansion()
16576 : schedule_node() {}
16578 schedule_node_expansion::schedule_node_expansion(const schedule_node_expansion
&obj
)
16579 : schedule_node(obj
)
16583 schedule_node_expansion
&schedule_node_expansion::operator=(schedule_node_expansion obj
) {
16584 std::swap(this->ptr
, obj
.ptr
);
16588 isl::checked::ctx
schedule_node_expansion::ctx() const {
16589 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16592 isl::checked::union_pw_multi_aff
schedule_node_expansion::contraction() const
16594 auto res
= isl_schedule_node_expansion_get_contraction(get());
16595 return manage(res
);
16598 isl::checked::union_pw_multi_aff
schedule_node_expansion::get_contraction() const
16600 return contraction();
16603 isl::checked::union_map
schedule_node_expansion::expansion() const
16605 auto res
= isl_schedule_node_expansion_get_expansion(get());
16606 return manage(res
);
16609 isl::checked::union_map
schedule_node_expansion::get_expansion() const
16611 return expansion();
16614 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_expansion
&obj
)
16616 char *str
= isl_schedule_node_to_str(obj
.get());
16618 os
.setstate(std::ios_base::badbit
);
16626 // implementations for isl::schedule_node_extension
16627 schedule_node_extension::schedule_node_extension(__isl_take isl_schedule_node
*ptr
)
16628 : schedule_node(ptr
) {}
16630 schedule_node_extension::schedule_node_extension()
16631 : schedule_node() {}
16633 schedule_node_extension::schedule_node_extension(const schedule_node_extension
&obj
)
16634 : schedule_node(obj
)
16638 schedule_node_extension
&schedule_node_extension::operator=(schedule_node_extension obj
) {
16639 std::swap(this->ptr
, obj
.ptr
);
16643 isl::checked::ctx
schedule_node_extension::ctx() const {
16644 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16647 isl::checked::union_map
schedule_node_extension::extension() const
16649 auto res
= isl_schedule_node_extension_get_extension(get());
16650 return manage(res
);
16653 isl::checked::union_map
schedule_node_extension::get_extension() const
16655 return extension();
16658 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_extension
&obj
)
16660 char *str
= isl_schedule_node_to_str(obj
.get());
16662 os
.setstate(std::ios_base::badbit
);
16670 // implementations for isl::schedule_node_filter
16671 schedule_node_filter::schedule_node_filter(__isl_take isl_schedule_node
*ptr
)
16672 : schedule_node(ptr
) {}
16674 schedule_node_filter::schedule_node_filter()
16675 : schedule_node() {}
16677 schedule_node_filter::schedule_node_filter(const schedule_node_filter
&obj
)
16678 : schedule_node(obj
)
16682 schedule_node_filter
&schedule_node_filter::operator=(schedule_node_filter obj
) {
16683 std::swap(this->ptr
, obj
.ptr
);
16687 isl::checked::ctx
schedule_node_filter::ctx() const {
16688 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16691 isl::checked::union_set
schedule_node_filter::filter() const
16693 auto res
= isl_schedule_node_filter_get_filter(get());
16694 return manage(res
);
16697 isl::checked::union_set
schedule_node_filter::get_filter() const
16702 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_filter
&obj
)
16704 char *str
= isl_schedule_node_to_str(obj
.get());
16706 os
.setstate(std::ios_base::badbit
);
16714 // implementations for isl::schedule_node_guard
16715 schedule_node_guard::schedule_node_guard(__isl_take isl_schedule_node
*ptr
)
16716 : schedule_node(ptr
) {}
16718 schedule_node_guard::schedule_node_guard()
16719 : schedule_node() {}
16721 schedule_node_guard::schedule_node_guard(const schedule_node_guard
&obj
)
16722 : schedule_node(obj
)
16726 schedule_node_guard
&schedule_node_guard::operator=(schedule_node_guard obj
) {
16727 std::swap(this->ptr
, obj
.ptr
);
16731 isl::checked::ctx
schedule_node_guard::ctx() const {
16732 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16735 isl::checked::set
schedule_node_guard::guard() const
16737 auto res
= isl_schedule_node_guard_get_guard(get());
16738 return manage(res
);
16741 isl::checked::set
schedule_node_guard::get_guard() const
16746 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_guard
&obj
)
16748 char *str
= isl_schedule_node_to_str(obj
.get());
16750 os
.setstate(std::ios_base::badbit
);
16758 // implementations for isl::schedule_node_leaf
16759 schedule_node_leaf::schedule_node_leaf(__isl_take isl_schedule_node
*ptr
)
16760 : schedule_node(ptr
) {}
16762 schedule_node_leaf::schedule_node_leaf()
16763 : schedule_node() {}
16765 schedule_node_leaf::schedule_node_leaf(const schedule_node_leaf
&obj
)
16766 : schedule_node(obj
)
16770 schedule_node_leaf
&schedule_node_leaf::operator=(schedule_node_leaf obj
) {
16771 std::swap(this->ptr
, obj
.ptr
);
16775 isl::checked::ctx
schedule_node_leaf::ctx() const {
16776 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16779 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_leaf
&obj
)
16781 char *str
= isl_schedule_node_to_str(obj
.get());
16783 os
.setstate(std::ios_base::badbit
);
16791 // implementations for isl::schedule_node_mark
16792 schedule_node_mark::schedule_node_mark(__isl_take isl_schedule_node
*ptr
)
16793 : schedule_node(ptr
) {}
16795 schedule_node_mark::schedule_node_mark()
16796 : schedule_node() {}
16798 schedule_node_mark::schedule_node_mark(const schedule_node_mark
&obj
)
16799 : schedule_node(obj
)
16803 schedule_node_mark
&schedule_node_mark::operator=(schedule_node_mark obj
) {
16804 std::swap(this->ptr
, obj
.ptr
);
16808 isl::checked::ctx
schedule_node_mark::ctx() const {
16809 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16812 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_mark
&obj
)
16814 char *str
= isl_schedule_node_to_str(obj
.get());
16816 os
.setstate(std::ios_base::badbit
);
16824 // implementations for isl::schedule_node_sequence
16825 schedule_node_sequence::schedule_node_sequence(__isl_take isl_schedule_node
*ptr
)
16826 : schedule_node(ptr
) {}
16828 schedule_node_sequence::schedule_node_sequence()
16829 : schedule_node() {}
16831 schedule_node_sequence::schedule_node_sequence(const schedule_node_sequence
&obj
)
16832 : schedule_node(obj
)
16836 schedule_node_sequence
&schedule_node_sequence::operator=(schedule_node_sequence obj
) {
16837 std::swap(this->ptr
, obj
.ptr
);
16841 isl::checked::ctx
schedule_node_sequence::ctx() const {
16842 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16845 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_sequence
&obj
)
16847 char *str
= isl_schedule_node_to_str(obj
.get());
16849 os
.setstate(std::ios_base::badbit
);
16857 // implementations for isl::schedule_node_set
16858 schedule_node_set::schedule_node_set(__isl_take isl_schedule_node
*ptr
)
16859 : schedule_node(ptr
) {}
16861 schedule_node_set::schedule_node_set()
16862 : schedule_node() {}
16864 schedule_node_set::schedule_node_set(const schedule_node_set
&obj
)
16865 : schedule_node(obj
)
16869 schedule_node_set
&schedule_node_set::operator=(schedule_node_set obj
) {
16870 std::swap(this->ptr
, obj
.ptr
);
16874 isl::checked::ctx
schedule_node_set::ctx() const {
16875 return isl::checked::ctx(isl_schedule_node_get_ctx(ptr
));
16878 inline std::ostream
&operator<<(std::ostream
&os
, const schedule_node_set
&obj
)
16880 char *str
= isl_schedule_node_to_str(obj
.get());
16882 os
.setstate(std::ios_base::badbit
);
16890 // implementations for isl::set
16891 set
manage(__isl_take isl_set
*ptr
) {
16894 set
manage_copy(__isl_keep isl_set
*ptr
) {
16895 ptr
= isl_set_copy(ptr
);
16899 set::set(__isl_take isl_set
*ptr
)
16905 set::set(const set
&obj
)
16911 set::set(isl::checked::basic_set bset
)
16913 auto res
= isl_set_from_basic_set(bset
.release());
16917 set::set(isl::checked::point pnt
)
16919 auto res
= isl_set_from_point(pnt
.release());
16923 set::set(isl::checked::ctx ctx
, const std::string
&str
)
16925 auto res
= isl_set_read_from_str(ctx
.release(), str
.c_str());
16929 set
&set::operator=(set obj
) {
16930 std::swap(this->ptr
, obj
.ptr
);
16939 __isl_give isl_set
*set::copy() const & {
16940 return isl_set_copy(ptr
);
16943 __isl_keep isl_set
*set::get() const {
16947 __isl_give isl_set
*set::release() {
16948 isl_set
*tmp
= ptr
;
16953 bool set::is_null() const {
16954 return ptr
== nullptr;
16957 isl::checked::ctx
set::ctx() const {
16958 return isl::checked::ctx(isl_set_get_ctx(ptr
));
16961 isl::checked::basic_set
set::affine_hull() const
16963 auto res
= isl_set_affine_hull(copy());
16964 return manage(res
);
16967 isl::checked::set
set::apply(isl::checked::map map
) const
16969 auto res
= isl_set_apply(copy(), map
.release());
16970 return manage(res
);
16973 isl::checked::union_set
set::apply(const isl::checked::union_map
&umap
) const
16975 return isl::checked::union_set(*this).apply(umap
);
16978 isl::checked::set
set::apply(const isl::checked::basic_map
&map
) const
16980 return this->apply(isl::checked::map(map
));
16983 isl::checked::pw_multi_aff
set::as_pw_multi_aff() const
16985 auto res
= isl_set_as_pw_multi_aff(copy());
16986 return manage(res
);
16989 isl::checked::set
set::as_set() const
16991 return isl::checked::union_set(*this).as_set();
16994 isl::checked::set
set::bind(isl::checked::multi_id tuple
) const
16996 auto res
= isl_set_bind(copy(), tuple
.release());
16997 return manage(res
);
17000 isl::checked::set
set::coalesce() const
17002 auto res
= isl_set_coalesce(copy());
17003 return manage(res
);
17006 isl::checked::set
set::complement() const
17008 auto res
= isl_set_complement(copy());
17009 return manage(res
);
17012 isl::checked::union_set
set::compute_divs() const
17014 return isl::checked::union_set(*this).compute_divs();
17017 isl::checked::set
set::detect_equalities() const
17019 auto res
= isl_set_detect_equalities(copy());
17020 return manage(res
);
17023 isl::checked::val
set::dim_max_val(int pos
) const
17025 auto res
= isl_set_dim_max_val(copy(), pos
);
17026 return manage(res
);
17029 isl::checked::val
set::dim_min_val(int pos
) const
17031 auto res
= isl_set_dim_min_val(copy(), pos
);
17032 return manage(res
);
17035 isl::checked::set
set::drop_unused_params() const
17037 auto res
= isl_set_drop_unused_params(copy());
17038 return manage(res
);
17041 isl::checked::set
set::empty(isl::checked::space space
)
17043 auto res
= isl_set_empty(space
.release());
17044 return manage(res
);
17047 boolean
set::every_set(const std::function
<boolean(isl::checked::set
)> &test
) const
17049 return isl::checked::union_set(*this).every_set(test
);
17052 isl::checked::set
set::extract_set(const isl::checked::space
&space
) const
17054 return isl::checked::union_set(*this).extract_set(space
);
17057 isl::checked::set
set::flatten() const
17059 auto res
= isl_set_flatten(copy());
17060 return manage(res
);
17063 stat
set::foreach_basic_set(const std::function
<stat(isl::checked::basic_set
)> &fn
) const
17066 std::function
<stat(isl::checked::basic_set
)> func
;
17067 } fn_data
= { fn
};
17068 auto fn_lambda
= [](isl_basic_set
*arg_0
, void *arg_1
) -> isl_stat
{
17069 auto *data
= static_cast<struct fn_data
*>(arg_1
);
17070 auto ret
= (data
->func
)(manage(arg_0
));
17071 return ret
.release();
17073 auto res
= isl_set_foreach_basic_set(get(), fn_lambda
, &fn_data
);
17074 return manage(res
);
17077 stat
set::foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const
17080 std::function
<stat(isl::checked::point
)> func
;
17081 } fn_data
= { fn
};
17082 auto fn_lambda
= [](isl_point
*arg_0
, void *arg_1
) -> isl_stat
{
17083 auto *data
= static_cast<struct fn_data
*>(arg_1
);
17084 auto ret
= (data
->func
)(manage(arg_0
));
17085 return ret
.release();
17087 auto res
= isl_set_foreach_point(get(), fn_lambda
, &fn_data
);
17088 return manage(res
);
17091 stat
set::foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const
17093 return isl::checked::union_set(*this).foreach_set(fn
);
17096 isl::checked::set
set::gist(isl::checked::set context
) const
17098 auto res
= isl_set_gist(copy(), context
.release());
17099 return manage(res
);
17102 isl::checked::union_set
set::gist(const isl::checked::union_set
&context
) const
17104 return isl::checked::union_set(*this).gist(context
);
17107 isl::checked::set
set::gist(const isl::checked::basic_set
&context
) const
17109 return this->gist(isl::checked::set(context
));
17112 isl::checked::set
set::gist(const isl::checked::point
&context
) const
17114 return this->gist(isl::checked::set(context
));
17117 isl::checked::set
set::gist_params(isl::checked::set context
) const
17119 auto res
= isl_set_gist_params(copy(), context
.release());
17120 return manage(res
);
17123 isl::checked::map
set::identity() const
17125 auto res
= isl_set_identity(copy());
17126 return manage(res
);
17129 isl::checked::pw_aff
set::indicator_function() const
17131 auto res
= isl_set_indicator_function(copy());
17132 return manage(res
);
17135 isl::checked::map
set::insert_domain(isl::checked::space domain
) const
17137 auto res
= isl_set_insert_domain(copy(), domain
.release());
17138 return manage(res
);
17141 isl::checked::set
set::intersect(isl::checked::set set2
) const
17143 auto res
= isl_set_intersect(copy(), set2
.release());
17144 return manage(res
);
17147 isl::checked::union_set
set::intersect(const isl::checked::union_set
&uset2
) const
17149 return isl::checked::union_set(*this).intersect(uset2
);
17152 isl::checked::set
set::intersect(const isl::checked::basic_set
&set2
) const
17154 return this->intersect(isl::checked::set(set2
));
17157 isl::checked::set
set::intersect(const isl::checked::point
&set2
) const
17159 return this->intersect(isl::checked::set(set2
));
17162 isl::checked::set
set::intersect_params(isl::checked::set params
) const
17164 auto res
= isl_set_intersect_params(copy(), params
.release());
17165 return manage(res
);
17168 boolean
set::involves_locals() const
17170 auto res
= isl_set_involves_locals(get());
17171 return manage(res
);
17174 boolean
set::is_disjoint(const isl::checked::set
&set2
) const
17176 auto res
= isl_set_is_disjoint(get(), set2
.get());
17177 return manage(res
);
17180 boolean
set::is_disjoint(const isl::checked::union_set
&uset2
) const
17182 return isl::checked::union_set(*this).is_disjoint(uset2
);
17185 boolean
set::is_disjoint(const isl::checked::basic_set
&set2
) const
17187 return this->is_disjoint(isl::checked::set(set2
));
17190 boolean
set::is_disjoint(const isl::checked::point
&set2
) const
17192 return this->is_disjoint(isl::checked::set(set2
));
17195 boolean
set::is_empty() const
17197 auto res
= isl_set_is_empty(get());
17198 return manage(res
);
17201 boolean
set::is_equal(const isl::checked::set
&set2
) const
17203 auto res
= isl_set_is_equal(get(), set2
.get());
17204 return manage(res
);
17207 boolean
set::is_equal(const isl::checked::union_set
&uset2
) const
17209 return isl::checked::union_set(*this).is_equal(uset2
);
17212 boolean
set::is_equal(const isl::checked::basic_set
&set2
) const
17214 return this->is_equal(isl::checked::set(set2
));
17217 boolean
set::is_equal(const isl::checked::point
&set2
) const
17219 return this->is_equal(isl::checked::set(set2
));
17222 boolean
set::is_singleton() const
17224 auto res
= isl_set_is_singleton(get());
17225 return manage(res
);
17228 boolean
set::is_strict_subset(const isl::checked::set
&set2
) const
17230 auto res
= isl_set_is_strict_subset(get(), set2
.get());
17231 return manage(res
);
17234 boolean
set::is_strict_subset(const isl::checked::union_set
&uset2
) const
17236 return isl::checked::union_set(*this).is_strict_subset(uset2
);
17239 boolean
set::is_strict_subset(const isl::checked::basic_set
&set2
) const
17241 return this->is_strict_subset(isl::checked::set(set2
));
17244 boolean
set::is_strict_subset(const isl::checked::point
&set2
) const
17246 return this->is_strict_subset(isl::checked::set(set2
));
17249 boolean
set::is_subset(const isl::checked::set
&set2
) const
17251 auto res
= isl_set_is_subset(get(), set2
.get());
17252 return manage(res
);
17255 boolean
set::is_subset(const isl::checked::union_set
&uset2
) const
17257 return isl::checked::union_set(*this).is_subset(uset2
);
17260 boolean
set::is_subset(const isl::checked::basic_set
&set2
) const
17262 return this->is_subset(isl::checked::set(set2
));
17265 boolean
set::is_subset(const isl::checked::point
&set2
) const
17267 return this->is_subset(isl::checked::set(set2
));
17270 boolean
set::is_wrapping() const
17272 auto res
= isl_set_is_wrapping(get());
17273 return manage(res
);
17276 boolean
set::isa_set() const
17278 return isl::checked::union_set(*this).isa_set();
17281 isl::checked::fixed_box
set::lattice_tile() const
17283 auto res
= isl_set_get_lattice_tile(get());
17284 return manage(res
);
17287 isl::checked::fixed_box
set::get_lattice_tile() const
17289 return lattice_tile();
17292 isl::checked::set
set::lexmax() const
17294 auto res
= isl_set_lexmax(copy());
17295 return manage(res
);
17298 isl::checked::pw_multi_aff
set::lexmax_pw_multi_aff() const
17300 auto res
= isl_set_lexmax_pw_multi_aff(copy());
17301 return manage(res
);
17304 isl::checked::set
set::lexmin() const
17306 auto res
= isl_set_lexmin(copy());
17307 return manage(res
);
17310 isl::checked::pw_multi_aff
set::lexmin_pw_multi_aff() const
17312 auto res
= isl_set_lexmin_pw_multi_aff(copy());
17313 return manage(res
);
17316 isl::checked::set
set::lower_bound(isl::checked::multi_pw_aff lower
) const
17318 auto res
= isl_set_lower_bound_multi_pw_aff(copy(), lower
.release());
17319 return manage(res
);
17322 isl::checked::set
set::lower_bound(isl::checked::multi_val lower
) const
17324 auto res
= isl_set_lower_bound_multi_val(copy(), lower
.release());
17325 return manage(res
);
17328 isl::checked::multi_pw_aff
set::max_multi_pw_aff() const
17330 auto res
= isl_set_max_multi_pw_aff(copy());
17331 return manage(res
);
17334 isl::checked::val
set::max_val(const isl::checked::aff
&obj
) const
17336 auto res
= isl_set_max_val(get(), obj
.get());
17337 return manage(res
);
17340 isl::checked::multi_pw_aff
set::min_multi_pw_aff() const
17342 auto res
= isl_set_min_multi_pw_aff(copy());
17343 return manage(res
);
17346 isl::checked::val
set::min_val(const isl::checked::aff
&obj
) const
17348 auto res
= isl_set_min_val(get(), obj
.get());
17349 return manage(res
);
17352 class size
set::n_basic_set() const
17354 auto res
= isl_set_n_basic_set(get());
17355 return manage(res
);
17358 isl::checked::pw_aff
set::param_pw_aff_on_domain(isl::checked::id id
) const
17360 auto res
= isl_set_param_pw_aff_on_domain_id(copy(), id
.release());
17361 return manage(res
);
17364 isl::checked::pw_aff
set::param_pw_aff_on_domain(const std::string
&id
) const
17366 return this->param_pw_aff_on_domain(isl::checked::id(ctx(), id
));
17369 isl::checked::set
set::params() const
17371 auto res
= isl_set_params(copy());
17372 return manage(res
);
17375 isl::checked::multi_val
set::plain_multi_val_if_fixed() const
17377 auto res
= isl_set_get_plain_multi_val_if_fixed(get());
17378 return manage(res
);
17381 isl::checked::multi_val
set::get_plain_multi_val_if_fixed() const
17383 return plain_multi_val_if_fixed();
17386 isl::checked::basic_set
set::polyhedral_hull() const
17388 auto res
= isl_set_polyhedral_hull(copy());
17389 return manage(res
);
17392 isl::checked::set
set::preimage(isl::checked::multi_aff ma
) const
17394 auto res
= isl_set_preimage_multi_aff(copy(), ma
.release());
17395 return manage(res
);
17398 isl::checked::set
set::preimage(isl::checked::multi_pw_aff mpa
) const
17400 auto res
= isl_set_preimage_multi_pw_aff(copy(), mpa
.release());
17401 return manage(res
);
17404 isl::checked::set
set::preimage(isl::checked::pw_multi_aff pma
) const
17406 auto res
= isl_set_preimage_pw_multi_aff(copy(), pma
.release());
17407 return manage(res
);
17410 isl::checked::union_set
set::preimage(const isl::checked::union_pw_multi_aff
&upma
) const
17412 return isl::checked::union_set(*this).preimage(upma
);
17415 isl::checked::set
set::product(isl::checked::set set2
) const
17417 auto res
= isl_set_product(copy(), set2
.release());
17418 return manage(res
);
17421 isl::checked::set
set::project_out_all_params() const
17423 auto res
= isl_set_project_out_all_params(copy());
17424 return manage(res
);
17427 isl::checked::set
set::project_out_param(isl::checked::id id
) const
17429 auto res
= isl_set_project_out_param_id(copy(), id
.release());
17430 return manage(res
);
17433 isl::checked::set
set::project_out_param(const std::string
&id
) const
17435 return this->project_out_param(isl::checked::id(ctx(), id
));
17438 isl::checked::set
set::project_out_param(isl::checked::id_list list
) const
17440 auto res
= isl_set_project_out_param_id_list(copy(), list
.release());
17441 return manage(res
);
17444 isl::checked::pw_aff
set::pw_aff_on_domain(isl::checked::val v
) const
17446 auto res
= isl_set_pw_aff_on_domain_val(copy(), v
.release());
17447 return manage(res
);
17450 isl::checked::pw_aff
set::pw_aff_on_domain(long v
) const
17452 return this->pw_aff_on_domain(isl::checked::val(ctx(), v
));
17455 isl::checked::pw_multi_aff
set::pw_multi_aff_on_domain(isl::checked::multi_val mv
) const
17457 auto res
= isl_set_pw_multi_aff_on_domain_multi_val(copy(), mv
.release());
17458 return manage(res
);
17461 isl::checked::basic_set
set::sample() const
17463 auto res
= isl_set_sample(copy());
17464 return manage(res
);
17467 isl::checked::point
set::sample_point() const
17469 auto res
= isl_set_sample_point(copy());
17470 return manage(res
);
17473 isl::checked::set_list
set::set_list() const
17475 return isl::checked::union_set(*this).set_list();
17478 isl::checked::fixed_box
set::simple_fixed_box_hull() const
17480 auto res
= isl_set_get_simple_fixed_box_hull(get());
17481 return manage(res
);
17484 isl::checked::fixed_box
set::get_simple_fixed_box_hull() const
17486 return simple_fixed_box_hull();
17489 isl::checked::space
set::space() const
17491 auto res
= isl_set_get_space(get());
17492 return manage(res
);
17495 isl::checked::space
set::get_space() const
17500 isl::checked::val
set::stride(int pos
) const
17502 auto res
= isl_set_get_stride(get(), pos
);
17503 return manage(res
);
17506 isl::checked::val
set::get_stride(int pos
) const
17508 return stride(pos
);
17511 isl::checked::set
set::subtract(isl::checked::set set2
) const
17513 auto res
= isl_set_subtract(copy(), set2
.release());
17514 return manage(res
);
17517 isl::checked::union_set
set::subtract(const isl::checked::union_set
&uset2
) const
17519 return isl::checked::union_set(*this).subtract(uset2
);
17522 isl::checked::set
set::subtract(const isl::checked::basic_set
&set2
) const
17524 return this->subtract(isl::checked::set(set2
));
17527 isl::checked::set
set::subtract(const isl::checked::point
&set2
) const
17529 return this->subtract(isl::checked::set(set2
));
17532 isl::checked::set_list
set::to_list() const
17534 auto res
= isl_set_to_list(copy());
17535 return manage(res
);
17538 isl::checked::union_set
set::to_union_set() const
17540 auto res
= isl_set_to_union_set(copy());
17541 return manage(res
);
17544 isl::checked::map
set::translation() const
17546 auto res
= isl_set_translation(copy());
17547 return manage(res
);
17550 class size
set::tuple_dim() const
17552 auto res
= isl_set_tuple_dim(get());
17553 return manage(res
);
17556 isl::checked::set
set::unbind_params(isl::checked::multi_id tuple
) const
17558 auto res
= isl_set_unbind_params(copy(), tuple
.release());
17559 return manage(res
);
17562 isl::checked::map
set::unbind_params_insert_domain(isl::checked::multi_id domain
) const
17564 auto res
= isl_set_unbind_params_insert_domain(copy(), domain
.release());
17565 return manage(res
);
17568 isl::checked::set
set::unite(isl::checked::set set2
) const
17570 auto res
= isl_set_union(copy(), set2
.release());
17571 return manage(res
);
17574 isl::checked::union_set
set::unite(const isl::checked::union_set
&uset2
) const
17576 return isl::checked::union_set(*this).unite(uset2
);
17579 isl::checked::set
set::unite(const isl::checked::basic_set
&set2
) const
17581 return this->unite(isl::checked::set(set2
));
17584 isl::checked::set
set::unite(const isl::checked::point
&set2
) const
17586 return this->unite(isl::checked::set(set2
));
17589 isl::checked::set
set::universe(isl::checked::space space
)
17591 auto res
= isl_set_universe(space
.release());
17592 return manage(res
);
17595 isl::checked::basic_set
set::unshifted_simple_hull() const
17597 auto res
= isl_set_unshifted_simple_hull(copy());
17598 return manage(res
);
17601 isl::checked::map
set::unwrap() const
17603 auto res
= isl_set_unwrap(copy());
17604 return manage(res
);
17607 isl::checked::set
set::upper_bound(isl::checked::multi_pw_aff upper
) const
17609 auto res
= isl_set_upper_bound_multi_pw_aff(copy(), upper
.release());
17610 return manage(res
);
17613 isl::checked::set
set::upper_bound(isl::checked::multi_val upper
) const
17615 auto res
= isl_set_upper_bound_multi_val(copy(), upper
.release());
17616 return manage(res
);
17619 isl::checked::set
set::wrapped_reverse() const
17621 auto res
= isl_set_wrapped_reverse(copy());
17622 return manage(res
);
17625 inline std::ostream
&operator<<(std::ostream
&os
, const set
&obj
)
17627 char *str
= isl_set_to_str(obj
.get());
17629 os
.setstate(std::ios_base::badbit
);
17637 // implementations for isl::set_list
17638 set_list
manage(__isl_take isl_set_list
*ptr
) {
17639 return set_list(ptr
);
17641 set_list
manage_copy(__isl_keep isl_set_list
*ptr
) {
17642 ptr
= isl_set_list_copy(ptr
);
17643 return set_list(ptr
);
17646 set_list::set_list(__isl_take isl_set_list
*ptr
)
17649 set_list::set_list()
17652 set_list::set_list(const set_list
&obj
)
17658 set_list::set_list(isl::checked::ctx ctx
, int n
)
17660 auto res
= isl_set_list_alloc(ctx
.release(), n
);
17664 set_list::set_list(isl::checked::set el
)
17666 auto res
= isl_set_list_from_set(el
.release());
17670 set_list::set_list(isl::checked::ctx ctx
, const std::string
&str
)
17672 auto res
= isl_set_list_read_from_str(ctx
.release(), str
.c_str());
17676 set_list
&set_list::operator=(set_list obj
) {
17677 std::swap(this->ptr
, obj
.ptr
);
17681 set_list::~set_list() {
17683 isl_set_list_free(ptr
);
17686 __isl_give isl_set_list
*set_list::copy() const & {
17687 return isl_set_list_copy(ptr
);
17690 __isl_keep isl_set_list
*set_list::get() const {
17694 __isl_give isl_set_list
*set_list::release() {
17695 isl_set_list
*tmp
= ptr
;
17700 bool set_list::is_null() const {
17701 return ptr
== nullptr;
17704 isl::checked::ctx
set_list::ctx() const {
17705 return isl::checked::ctx(isl_set_list_get_ctx(ptr
));
17708 isl::checked::set_list
set_list::add(isl::checked::set el
) const
17710 auto res
= isl_set_list_add(copy(), el
.release());
17711 return manage(res
);
17714 isl::checked::set
set_list::at(int index
) const
17716 auto res
= isl_set_list_get_at(get(), index
);
17717 return manage(res
);
17720 isl::checked::set
set_list::get_at(int index
) const
17725 isl::checked::set_list
set_list::clear() const
17727 auto res
= isl_set_list_clear(copy());
17728 return manage(res
);
17731 isl::checked::set_list
set_list::concat(isl::checked::set_list list2
) const
17733 auto res
= isl_set_list_concat(copy(), list2
.release());
17734 return manage(res
);
17737 isl::checked::set_list
set_list::drop(unsigned int first
, unsigned int n
) const
17739 auto res
= isl_set_list_drop(copy(), first
, n
);
17740 return manage(res
);
17743 stat
set_list::foreach(const std::function
<stat(isl::checked::set
)> &fn
) const
17746 std::function
<stat(isl::checked::set
)> func
;
17747 } fn_data
= { fn
};
17748 auto fn_lambda
= [](isl_set
*arg_0
, void *arg_1
) -> isl_stat
{
17749 auto *data
= static_cast<struct fn_data
*>(arg_1
);
17750 auto ret
= (data
->func
)(manage(arg_0
));
17751 return ret
.release();
17753 auto res
= isl_set_list_foreach(get(), fn_lambda
, &fn_data
);
17754 return manage(res
);
17757 stat
set_list::foreach_scc(const std::function
<boolean(isl::checked::set
, isl::checked::set
)> &follows
, const std::function
<stat(isl::checked::set_list
)> &fn
) const
17759 struct follows_data
{
17760 std::function
<boolean(isl::checked::set
, isl::checked::set
)> func
;
17761 } follows_data
= { follows
};
17762 auto follows_lambda
= [](isl_set
*arg_0
, isl_set
*arg_1
, void *arg_2
) -> isl_bool
{
17763 auto *data
= static_cast<struct follows_data
*>(arg_2
);
17764 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
17765 return ret
.release();
17768 std::function
<stat(isl::checked::set_list
)> func
;
17769 } fn_data
= { fn
};
17770 auto fn_lambda
= [](isl_set_list
*arg_0
, void *arg_1
) -> isl_stat
{
17771 auto *data
= static_cast<struct fn_data
*>(arg_1
);
17772 auto ret
= (data
->func
)(manage(arg_0
));
17773 return ret
.release();
17775 auto res
= isl_set_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
17776 return manage(res
);
17779 isl::checked::set_list
set_list::insert(unsigned int pos
, isl::checked::set el
) const
17781 auto res
= isl_set_list_insert(copy(), pos
, el
.release());
17782 return manage(res
);
17785 isl::checked::set_list
set_list::set_at(int index
, isl::checked::set el
) const
17787 auto res
= isl_set_list_set_at(copy(), index
, el
.release());
17788 return manage(res
);
17791 class size
set_list::size() const
17793 auto res
= isl_set_list_size(get());
17794 return manage(res
);
17797 inline std::ostream
&operator<<(std::ostream
&os
, const set_list
&obj
)
17799 char *str
= isl_set_list_to_str(obj
.get());
17801 os
.setstate(std::ios_base::badbit
);
17809 // implementations for isl::space
17810 space
manage(__isl_take isl_space
*ptr
) {
17813 space
manage_copy(__isl_keep isl_space
*ptr
) {
17814 ptr
= isl_space_copy(ptr
);
17818 space::space(__isl_take isl_space
*ptr
)
17824 space::space(const space
&obj
)
17830 space::space(isl::checked::ctx ctx
, const std::string
&str
)
17832 auto res
= isl_space_read_from_str(ctx
.release(), str
.c_str());
17836 space
&space::operator=(space obj
) {
17837 std::swap(this->ptr
, obj
.ptr
);
17843 isl_space_free(ptr
);
17846 __isl_give isl_space
*space::copy() const & {
17847 return isl_space_copy(ptr
);
17850 __isl_keep isl_space
*space::get() const {
17854 __isl_give isl_space
*space::release() {
17855 isl_space
*tmp
= ptr
;
17860 bool space::is_null() const {
17861 return ptr
== nullptr;
17864 isl::checked::ctx
space::ctx() const {
17865 return isl::checked::ctx(isl_space_get_ctx(ptr
));
17868 isl::checked::space
space::add_named_tuple(isl::checked::id tuple_id
, unsigned int dim
) const
17870 auto res
= isl_space_add_named_tuple_id_ui(copy(), tuple_id
.release(), dim
);
17871 return manage(res
);
17874 isl::checked::space
space::add_named_tuple(const std::string
&tuple_id
, unsigned int dim
) const
17876 return this->add_named_tuple(isl::checked::id(ctx(), tuple_id
), dim
);
17879 isl::checked::space
space::add_param(isl::checked::id id
) const
17881 auto res
= isl_space_add_param_id(copy(), id
.release());
17882 return manage(res
);
17885 isl::checked::space
space::add_param(const std::string
&id
) const
17887 return this->add_param(isl::checked::id(ctx(), id
));
17890 isl::checked::space
space::add_unnamed_tuple(unsigned int dim
) const
17892 auto res
= isl_space_add_unnamed_tuple_ui(copy(), dim
);
17893 return manage(res
);
17896 isl::checked::space
space::curry() const
17898 auto res
= isl_space_curry(copy());
17899 return manage(res
);
17902 isl::checked::space
space::domain() const
17904 auto res
= isl_space_domain(copy());
17905 return manage(res
);
17908 isl::checked::multi_aff
space::domain_map_multi_aff() const
17910 auto res
= isl_space_domain_map_multi_aff(copy());
17911 return manage(res
);
17914 isl::checked::pw_multi_aff
space::domain_map_pw_multi_aff() const
17916 auto res
= isl_space_domain_map_pw_multi_aff(copy());
17917 return manage(res
);
17920 isl::checked::space
space::domain_reverse() const
17922 auto res
= isl_space_domain_reverse(copy());
17923 return manage(res
);
17926 isl::checked::id
space::domain_tuple_id() const
17928 auto res
= isl_space_get_domain_tuple_id(get());
17929 return manage(res
);
17932 isl::checked::id
space::get_domain_tuple_id() const
17934 return domain_tuple_id();
17937 isl::checked::space
space::drop_all_params() const
17939 auto res
= isl_space_drop_all_params(copy());
17940 return manage(res
);
17943 isl::checked::space
space::flatten_domain() const
17945 auto res
= isl_space_flatten_domain(copy());
17946 return manage(res
);
17949 isl::checked::space
space::flatten_range() const
17951 auto res
= isl_space_flatten_range(copy());
17952 return manage(res
);
17955 boolean
space::has_domain_tuple_id() const
17957 auto res
= isl_space_has_domain_tuple_id(get());
17958 return manage(res
);
17961 boolean
space::has_range_tuple_id() const
17963 auto res
= isl_space_has_range_tuple_id(get());
17964 return manage(res
);
17967 isl::checked::multi_aff
space::identity_multi_aff_on_domain() const
17969 auto res
= isl_space_identity_multi_aff_on_domain(copy());
17970 return manage(res
);
17973 isl::checked::multi_pw_aff
space::identity_multi_pw_aff_on_domain() const
17975 auto res
= isl_space_identity_multi_pw_aff_on_domain(copy());
17976 return manage(res
);
17979 isl::checked::pw_multi_aff
space::identity_pw_multi_aff_on_domain() const
17981 auto res
= isl_space_identity_pw_multi_aff_on_domain(copy());
17982 return manage(res
);
17985 boolean
space::is_equal(const isl::checked::space
&space2
) const
17987 auto res
= isl_space_is_equal(get(), space2
.get());
17988 return manage(res
);
17991 boolean
space::is_wrapping() const
17993 auto res
= isl_space_is_wrapping(get());
17994 return manage(res
);
17997 isl::checked::space
space::map_from_set() const
17999 auto res
= isl_space_map_from_set(copy());
18000 return manage(res
);
18003 isl::checked::multi_aff
space::multi_aff(isl::checked::aff_list list
) const
18005 auto res
= isl_space_multi_aff(copy(), list
.release());
18006 return manage(res
);
18009 isl::checked::multi_aff
space::multi_aff_on_domain(isl::checked::multi_val mv
) const
18011 auto res
= isl_space_multi_aff_on_domain_multi_val(copy(), mv
.release());
18012 return manage(res
);
18015 isl::checked::multi_id
space::multi_id(isl::checked::id_list list
) const
18017 auto res
= isl_space_multi_id(copy(), list
.release());
18018 return manage(res
);
18021 isl::checked::multi_pw_aff
space::multi_pw_aff(isl::checked::pw_aff_list list
) const
18023 auto res
= isl_space_multi_pw_aff(copy(), list
.release());
18024 return manage(res
);
18027 isl::checked::multi_union_pw_aff
space::multi_union_pw_aff(isl::checked::union_pw_aff_list list
) const
18029 auto res
= isl_space_multi_union_pw_aff(copy(), list
.release());
18030 return manage(res
);
18033 isl::checked::multi_val
space::multi_val(isl::checked::val_list list
) const
18035 auto res
= isl_space_multi_val(copy(), list
.release());
18036 return manage(res
);
18039 isl::checked::aff
space::param_aff_on_domain(isl::checked::id id
) const
18041 auto res
= isl_space_param_aff_on_domain_id(copy(), id
.release());
18042 return manage(res
);
18045 isl::checked::aff
space::param_aff_on_domain(const std::string
&id
) const
18047 return this->param_aff_on_domain(isl::checked::id(ctx(), id
));
18050 isl::checked::space
space::params() const
18052 auto res
= isl_space_params(copy());
18053 return manage(res
);
18056 isl::checked::space
space::product(isl::checked::space right
) const
18058 auto res
= isl_space_product(copy(), right
.release());
18059 return manage(res
);
18062 isl::checked::space
space::range() const
18064 auto res
= isl_space_range(copy());
18065 return manage(res
);
18068 isl::checked::multi_aff
space::range_map_multi_aff() const
18070 auto res
= isl_space_range_map_multi_aff(copy());
18071 return manage(res
);
18074 isl::checked::pw_multi_aff
space::range_map_pw_multi_aff() const
18076 auto res
= isl_space_range_map_pw_multi_aff(copy());
18077 return manage(res
);
18080 isl::checked::space
space::range_reverse() const
18082 auto res
= isl_space_range_reverse(copy());
18083 return manage(res
);
18086 isl::checked::id
space::range_tuple_id() const
18088 auto res
= isl_space_get_range_tuple_id(get());
18089 return manage(res
);
18092 isl::checked::id
space::get_range_tuple_id() const
18094 return range_tuple_id();
18097 isl::checked::space
space::reverse() const
18099 auto res
= isl_space_reverse(copy());
18100 return manage(res
);
18103 isl::checked::space
space::set_domain_tuple(isl::checked::id id
) const
18105 auto res
= isl_space_set_domain_tuple_id(copy(), id
.release());
18106 return manage(res
);
18109 isl::checked::space
space::set_domain_tuple(const std::string
&id
) const
18111 return this->set_domain_tuple(isl::checked::id(ctx(), id
));
18114 isl::checked::space
space::set_range_tuple(isl::checked::id id
) const
18116 auto res
= isl_space_set_range_tuple_id(copy(), id
.release());
18117 return manage(res
);
18120 isl::checked::space
space::set_range_tuple(const std::string
&id
) const
18122 return this->set_range_tuple(isl::checked::id(ctx(), id
));
18125 isl::checked::space
space::uncurry() const
18127 auto res
= isl_space_uncurry(copy());
18128 return manage(res
);
18131 isl::checked::space
space::unit(isl::checked::ctx ctx
)
18133 auto res
= isl_space_unit(ctx
.release());
18134 return manage(res
);
18137 isl::checked::map
space::universe_map() const
18139 auto res
= isl_space_universe_map(copy());
18140 return manage(res
);
18143 isl::checked::set
space::universe_set() const
18145 auto res
= isl_space_universe_set(copy());
18146 return manage(res
);
18149 isl::checked::space
space::unwrap() const
18151 auto res
= isl_space_unwrap(copy());
18152 return manage(res
);
18155 isl::checked::space
space::wrap() const
18157 auto res
= isl_space_wrap(copy());
18158 return manage(res
);
18161 isl::checked::space
space::wrapped_reverse() const
18163 auto res
= isl_space_wrapped_reverse(copy());
18164 return manage(res
);
18167 isl::checked::aff
space::zero_aff_on_domain() const
18169 auto res
= isl_space_zero_aff_on_domain(copy());
18170 return manage(res
);
18173 isl::checked::multi_aff
space::zero_multi_aff() const
18175 auto res
= isl_space_zero_multi_aff(copy());
18176 return manage(res
);
18179 isl::checked::multi_pw_aff
space::zero_multi_pw_aff() const
18181 auto res
= isl_space_zero_multi_pw_aff(copy());
18182 return manage(res
);
18185 isl::checked::multi_union_pw_aff
space::zero_multi_union_pw_aff() const
18187 auto res
= isl_space_zero_multi_union_pw_aff(copy());
18188 return manage(res
);
18191 isl::checked::multi_val
space::zero_multi_val() const
18193 auto res
= isl_space_zero_multi_val(copy());
18194 return manage(res
);
18197 inline std::ostream
&operator<<(std::ostream
&os
, const space
&obj
)
18199 char *str
= isl_space_to_str(obj
.get());
18201 os
.setstate(std::ios_base::badbit
);
18209 // implementations for isl::union_access_info
18210 union_access_info
manage(__isl_take isl_union_access_info
*ptr
) {
18211 return union_access_info(ptr
);
18213 union_access_info
manage_copy(__isl_keep isl_union_access_info
*ptr
) {
18214 ptr
= isl_union_access_info_copy(ptr
);
18215 return union_access_info(ptr
);
18218 union_access_info::union_access_info(__isl_take isl_union_access_info
*ptr
)
18221 union_access_info::union_access_info()
18224 union_access_info::union_access_info(const union_access_info
&obj
)
18230 union_access_info::union_access_info(isl::checked::union_map sink
)
18232 auto res
= isl_union_access_info_from_sink(sink
.release());
18236 union_access_info
&union_access_info::operator=(union_access_info obj
) {
18237 std::swap(this->ptr
, obj
.ptr
);
18241 union_access_info::~union_access_info() {
18243 isl_union_access_info_free(ptr
);
18246 __isl_give isl_union_access_info
*union_access_info::copy() const & {
18247 return isl_union_access_info_copy(ptr
);
18250 __isl_keep isl_union_access_info
*union_access_info::get() const {
18254 __isl_give isl_union_access_info
*union_access_info::release() {
18255 isl_union_access_info
*tmp
= ptr
;
18260 bool union_access_info::is_null() const {
18261 return ptr
== nullptr;
18264 isl::checked::ctx
union_access_info::ctx() const {
18265 return isl::checked::ctx(isl_union_access_info_get_ctx(ptr
));
18268 isl::checked::union_flow
union_access_info::compute_flow() const
18270 auto res
= isl_union_access_info_compute_flow(copy());
18271 return manage(res
);
18274 isl::checked::union_access_info
union_access_info::set_kill(isl::checked::union_map kill
) const
18276 auto res
= isl_union_access_info_set_kill(copy(), kill
.release());
18277 return manage(res
);
18280 isl::checked::union_access_info
union_access_info::set_may_source(isl::checked::union_map may_source
) const
18282 auto res
= isl_union_access_info_set_may_source(copy(), may_source
.release());
18283 return manage(res
);
18286 isl::checked::union_access_info
union_access_info::set_must_source(isl::checked::union_map must_source
) const
18288 auto res
= isl_union_access_info_set_must_source(copy(), must_source
.release());
18289 return manage(res
);
18292 isl::checked::union_access_info
union_access_info::set_schedule(isl::checked::schedule schedule
) const
18294 auto res
= isl_union_access_info_set_schedule(copy(), schedule
.release());
18295 return manage(res
);
18298 isl::checked::union_access_info
union_access_info::set_schedule_map(isl::checked::union_map schedule_map
) const
18300 auto res
= isl_union_access_info_set_schedule_map(copy(), schedule_map
.release());
18301 return manage(res
);
18304 inline std::ostream
&operator<<(std::ostream
&os
, const union_access_info
&obj
)
18306 char *str
= isl_union_access_info_to_str(obj
.get());
18308 os
.setstate(std::ios_base::badbit
);
18316 // implementations for isl::union_flow
18317 union_flow
manage(__isl_take isl_union_flow
*ptr
) {
18318 return union_flow(ptr
);
18320 union_flow
manage_copy(__isl_keep isl_union_flow
*ptr
) {
18321 ptr
= isl_union_flow_copy(ptr
);
18322 return union_flow(ptr
);
18325 union_flow::union_flow(__isl_take isl_union_flow
*ptr
)
18328 union_flow::union_flow()
18331 union_flow::union_flow(const union_flow
&obj
)
18337 union_flow
&union_flow::operator=(union_flow obj
) {
18338 std::swap(this->ptr
, obj
.ptr
);
18342 union_flow::~union_flow() {
18344 isl_union_flow_free(ptr
);
18347 __isl_give isl_union_flow
*union_flow::copy() const & {
18348 return isl_union_flow_copy(ptr
);
18351 __isl_keep isl_union_flow
*union_flow::get() const {
18355 __isl_give isl_union_flow
*union_flow::release() {
18356 isl_union_flow
*tmp
= ptr
;
18361 bool union_flow::is_null() const {
18362 return ptr
== nullptr;
18365 isl::checked::ctx
union_flow::ctx() const {
18366 return isl::checked::ctx(isl_union_flow_get_ctx(ptr
));
18369 isl::checked::union_map
union_flow::full_may_dependence() const
18371 auto res
= isl_union_flow_get_full_may_dependence(get());
18372 return manage(res
);
18375 isl::checked::union_map
union_flow::get_full_may_dependence() const
18377 return full_may_dependence();
18380 isl::checked::union_map
union_flow::full_must_dependence() const
18382 auto res
= isl_union_flow_get_full_must_dependence(get());
18383 return manage(res
);
18386 isl::checked::union_map
union_flow::get_full_must_dependence() const
18388 return full_must_dependence();
18391 isl::checked::union_map
union_flow::may_dependence() const
18393 auto res
= isl_union_flow_get_may_dependence(get());
18394 return manage(res
);
18397 isl::checked::union_map
union_flow::get_may_dependence() const
18399 return may_dependence();
18402 isl::checked::union_map
union_flow::may_no_source() const
18404 auto res
= isl_union_flow_get_may_no_source(get());
18405 return manage(res
);
18408 isl::checked::union_map
union_flow::get_may_no_source() const
18410 return may_no_source();
18413 isl::checked::union_map
union_flow::must_dependence() const
18415 auto res
= isl_union_flow_get_must_dependence(get());
18416 return manage(res
);
18419 isl::checked::union_map
union_flow::get_must_dependence() const
18421 return must_dependence();
18424 isl::checked::union_map
union_flow::must_no_source() const
18426 auto res
= isl_union_flow_get_must_no_source(get());
18427 return manage(res
);
18430 isl::checked::union_map
union_flow::get_must_no_source() const
18432 return must_no_source();
18435 inline std::ostream
&operator<<(std::ostream
&os
, const union_flow
&obj
)
18437 char *str
= isl_union_flow_to_str(obj
.get());
18439 os
.setstate(std::ios_base::badbit
);
18447 // implementations for isl::union_map
18448 union_map
manage(__isl_take isl_union_map
*ptr
) {
18449 return union_map(ptr
);
18451 union_map
manage_copy(__isl_keep isl_union_map
*ptr
) {
18452 ptr
= isl_union_map_copy(ptr
);
18453 return union_map(ptr
);
18456 union_map::union_map(__isl_take isl_union_map
*ptr
)
18459 union_map::union_map()
18462 union_map::union_map(const union_map
&obj
)
18468 union_map::union_map(isl::checked::basic_map bmap
)
18470 auto res
= isl_union_map_from_basic_map(bmap
.release());
18474 union_map::union_map(isl::checked::map map
)
18476 auto res
= isl_union_map_from_map(map
.release());
18480 union_map::union_map(isl::checked::ctx ctx
, const std::string
&str
)
18482 auto res
= isl_union_map_read_from_str(ctx
.release(), str
.c_str());
18486 union_map
&union_map::operator=(union_map obj
) {
18487 std::swap(this->ptr
, obj
.ptr
);
18491 union_map::~union_map() {
18493 isl_union_map_free(ptr
);
18496 __isl_give isl_union_map
*union_map::copy() const & {
18497 return isl_union_map_copy(ptr
);
18500 __isl_keep isl_union_map
*union_map::get() const {
18504 __isl_give isl_union_map
*union_map::release() {
18505 isl_union_map
*tmp
= ptr
;
18510 bool union_map::is_null() const {
18511 return ptr
== nullptr;
18514 isl::checked::ctx
union_map::ctx() const {
18515 return isl::checked::ctx(isl_union_map_get_ctx(ptr
));
18518 isl::checked::union_map
union_map::affine_hull() const
18520 auto res
= isl_union_map_affine_hull(copy());
18521 return manage(res
);
18524 isl::checked::union_map
union_map::apply_domain(isl::checked::union_map umap2
) const
18526 auto res
= isl_union_map_apply_domain(copy(), umap2
.release());
18527 return manage(res
);
18530 isl::checked::union_map
union_map::apply_range(isl::checked::union_map umap2
) const
18532 auto res
= isl_union_map_apply_range(copy(), umap2
.release());
18533 return manage(res
);
18536 isl::checked::map
union_map::as_map() const
18538 auto res
= isl_union_map_as_map(copy());
18539 return manage(res
);
18542 isl::checked::multi_union_pw_aff
union_map::as_multi_union_pw_aff() const
18544 auto res
= isl_union_map_as_multi_union_pw_aff(copy());
18545 return manage(res
);
18548 isl::checked::union_pw_multi_aff
union_map::as_union_pw_multi_aff() const
18550 auto res
= isl_union_map_as_union_pw_multi_aff(copy());
18551 return manage(res
);
18554 isl::checked::union_set
union_map::bind_range(isl::checked::multi_id tuple
) const
18556 auto res
= isl_union_map_bind_range(copy(), tuple
.release());
18557 return manage(res
);
18560 isl::checked::union_map
union_map::coalesce() const
18562 auto res
= isl_union_map_coalesce(copy());
18563 return manage(res
);
18566 isl::checked::union_map
union_map::compute_divs() const
18568 auto res
= isl_union_map_compute_divs(copy());
18569 return manage(res
);
18572 isl::checked::union_map
union_map::curry() const
18574 auto res
= isl_union_map_curry(copy());
18575 return manage(res
);
18578 isl::checked::union_set
union_map::deltas() const
18580 auto res
= isl_union_map_deltas(copy());
18581 return manage(res
);
18584 isl::checked::union_map
union_map::detect_equalities() const
18586 auto res
= isl_union_map_detect_equalities(copy());
18587 return manage(res
);
18590 isl::checked::union_set
union_map::domain() const
18592 auto res
= isl_union_map_domain(copy());
18593 return manage(res
);
18596 isl::checked::union_map
union_map::domain_factor_domain() const
18598 auto res
= isl_union_map_domain_factor_domain(copy());
18599 return manage(res
);
18602 isl::checked::union_map
union_map::domain_factor_range() const
18604 auto res
= isl_union_map_domain_factor_range(copy());
18605 return manage(res
);
18608 isl::checked::union_map
union_map::domain_map() const
18610 auto res
= isl_union_map_domain_map(copy());
18611 return manage(res
);
18614 isl::checked::union_pw_multi_aff
union_map::domain_map_union_pw_multi_aff() const
18616 auto res
= isl_union_map_domain_map_union_pw_multi_aff(copy());
18617 return manage(res
);
18620 isl::checked::union_map
union_map::domain_product(isl::checked::union_map umap2
) const
18622 auto res
= isl_union_map_domain_product(copy(), umap2
.release());
18623 return manage(res
);
18626 isl::checked::union_map
union_map::domain_reverse() const
18628 auto res
= isl_union_map_domain_reverse(copy());
18629 return manage(res
);
18632 isl::checked::union_map
union_map::drop_unused_params() const
18634 auto res
= isl_union_map_drop_unused_params(copy());
18635 return manage(res
);
18638 isl::checked::union_map
union_map::empty(isl::checked::ctx ctx
)
18640 auto res
= isl_union_map_empty_ctx(ctx
.release());
18641 return manage(res
);
18644 isl::checked::union_map
union_map::eq_at(isl::checked::multi_union_pw_aff mupa
) const
18646 auto res
= isl_union_map_eq_at_multi_union_pw_aff(copy(), mupa
.release());
18647 return manage(res
);
18650 boolean
union_map::every_map(const std::function
<boolean(isl::checked::map
)> &test
) const
18653 std::function
<boolean(isl::checked::map
)> func
;
18654 } test_data
= { test
};
18655 auto test_lambda
= [](isl_map
*arg_0
, void *arg_1
) -> isl_bool
{
18656 auto *data
= static_cast<struct test_data
*>(arg_1
);
18657 auto ret
= (data
->func
)(manage_copy(arg_0
));
18658 return ret
.release();
18660 auto res
= isl_union_map_every_map(get(), test_lambda
, &test_data
);
18661 return manage(res
);
18664 isl::checked::map
union_map::extract_map(isl::checked::space space
) const
18666 auto res
= isl_union_map_extract_map(get(), space
.release());
18667 return manage(res
);
18670 isl::checked::union_map
union_map::factor_domain() const
18672 auto res
= isl_union_map_factor_domain(copy());
18673 return manage(res
);
18676 isl::checked::union_map
union_map::factor_range() const
18678 auto res
= isl_union_map_factor_range(copy());
18679 return manage(res
);
18682 isl::checked::union_map
union_map::fixed_power(isl::checked::val exp
) const
18684 auto res
= isl_union_map_fixed_power_val(copy(), exp
.release());
18685 return manage(res
);
18688 isl::checked::union_map
union_map::fixed_power(long exp
) const
18690 return this->fixed_power(isl::checked::val(ctx(), exp
));
18693 stat
union_map::foreach_map(const std::function
<stat(isl::checked::map
)> &fn
) const
18696 std::function
<stat(isl::checked::map
)> func
;
18697 } fn_data
= { fn
};
18698 auto fn_lambda
= [](isl_map
*arg_0
, void *arg_1
) -> isl_stat
{
18699 auto *data
= static_cast<struct fn_data
*>(arg_1
);
18700 auto ret
= (data
->func
)(manage(arg_0
));
18701 return ret
.release();
18703 auto res
= isl_union_map_foreach_map(get(), fn_lambda
, &fn_data
);
18704 return manage(res
);
18707 isl::checked::union_map
union_map::from(isl::checked::multi_union_pw_aff mupa
)
18709 auto res
= isl_union_map_from_multi_union_pw_aff(mupa
.release());
18710 return manage(res
);
18713 isl::checked::union_map
union_map::from(isl::checked::union_pw_multi_aff upma
)
18715 auto res
= isl_union_map_from_union_pw_multi_aff(upma
.release());
18716 return manage(res
);
18719 isl::checked::union_map
union_map::from_domain(isl::checked::union_set uset
)
18721 auto res
= isl_union_map_from_domain(uset
.release());
18722 return manage(res
);
18725 isl::checked::union_map
union_map::from_domain_and_range(isl::checked::union_set domain
, isl::checked::union_set range
)
18727 auto res
= isl_union_map_from_domain_and_range(domain
.release(), range
.release());
18728 return manage(res
);
18731 isl::checked::union_map
union_map::from_range(isl::checked::union_set uset
)
18733 auto res
= isl_union_map_from_range(uset
.release());
18734 return manage(res
);
18737 isl::checked::union_map
union_map::gist(isl::checked::union_map context
) const
18739 auto res
= isl_union_map_gist(copy(), context
.release());
18740 return manage(res
);
18743 isl::checked::union_map
union_map::gist_domain(isl::checked::union_set uset
) const
18745 auto res
= isl_union_map_gist_domain(copy(), uset
.release());
18746 return manage(res
);
18749 isl::checked::union_map
union_map::gist_params(isl::checked::set set
) const
18751 auto res
= isl_union_map_gist_params(copy(), set
.release());
18752 return manage(res
);
18755 isl::checked::union_map
union_map::gist_range(isl::checked::union_set uset
) const
18757 auto res
= isl_union_map_gist_range(copy(), uset
.release());
18758 return manage(res
);
18761 isl::checked::union_map
union_map::intersect(isl::checked::union_map umap2
) const
18763 auto res
= isl_union_map_intersect(copy(), umap2
.release());
18764 return manage(res
);
18767 isl::checked::union_map
union_map::intersect_domain(isl::checked::space space
) const
18769 auto res
= isl_union_map_intersect_domain_space(copy(), space
.release());
18770 return manage(res
);
18773 isl::checked::union_map
union_map::intersect_domain(isl::checked::union_set uset
) const
18775 auto res
= isl_union_map_intersect_domain_union_set(copy(), uset
.release());
18776 return manage(res
);
18779 isl::checked::union_map
union_map::intersect_domain_factor_domain(isl::checked::union_map factor
) const
18781 auto res
= isl_union_map_intersect_domain_factor_domain(copy(), factor
.release());
18782 return manage(res
);
18785 isl::checked::union_map
union_map::intersect_domain_factor_range(isl::checked::union_map factor
) const
18787 auto res
= isl_union_map_intersect_domain_factor_range(copy(), factor
.release());
18788 return manage(res
);
18791 isl::checked::union_map
union_map::intersect_domain_wrapped_domain(isl::checked::union_set domain
) const
18793 auto res
= isl_union_map_intersect_domain_wrapped_domain_union_set(copy(), domain
.release());
18794 return manage(res
);
18797 isl::checked::union_map
union_map::intersect_params(isl::checked::set set
) const
18799 auto res
= isl_union_map_intersect_params(copy(), set
.release());
18800 return manage(res
);
18803 isl::checked::union_map
union_map::intersect_range(isl::checked::space space
) const
18805 auto res
= isl_union_map_intersect_range_space(copy(), space
.release());
18806 return manage(res
);
18809 isl::checked::union_map
union_map::intersect_range(isl::checked::union_set uset
) const
18811 auto res
= isl_union_map_intersect_range_union_set(copy(), uset
.release());
18812 return manage(res
);
18815 isl::checked::union_map
union_map::intersect_range_factor_domain(isl::checked::union_map factor
) const
18817 auto res
= isl_union_map_intersect_range_factor_domain(copy(), factor
.release());
18818 return manage(res
);
18821 isl::checked::union_map
union_map::intersect_range_factor_range(isl::checked::union_map factor
) const
18823 auto res
= isl_union_map_intersect_range_factor_range(copy(), factor
.release());
18824 return manage(res
);
18827 isl::checked::union_map
union_map::intersect_range_wrapped_domain(isl::checked::union_set domain
) const
18829 auto res
= isl_union_map_intersect_range_wrapped_domain_union_set(copy(), domain
.release());
18830 return manage(res
);
18833 boolean
union_map::is_bijective() const
18835 auto res
= isl_union_map_is_bijective(get());
18836 return manage(res
);
18839 boolean
union_map::is_disjoint(const isl::checked::union_map
&umap2
) const
18841 auto res
= isl_union_map_is_disjoint(get(), umap2
.get());
18842 return manage(res
);
18845 boolean
union_map::is_empty() const
18847 auto res
= isl_union_map_is_empty(get());
18848 return manage(res
);
18851 boolean
union_map::is_equal(const isl::checked::union_map
&umap2
) const
18853 auto res
= isl_union_map_is_equal(get(), umap2
.get());
18854 return manage(res
);
18857 boolean
union_map::is_injective() const
18859 auto res
= isl_union_map_is_injective(get());
18860 return manage(res
);
18863 boolean
union_map::is_single_valued() const
18865 auto res
= isl_union_map_is_single_valued(get());
18866 return manage(res
);
18869 boolean
union_map::is_strict_subset(const isl::checked::union_map
&umap2
) const
18871 auto res
= isl_union_map_is_strict_subset(get(), umap2
.get());
18872 return manage(res
);
18875 boolean
union_map::is_subset(const isl::checked::union_map
&umap2
) const
18877 auto res
= isl_union_map_is_subset(get(), umap2
.get());
18878 return manage(res
);
18881 boolean
union_map::isa_map() const
18883 auto res
= isl_union_map_isa_map(get());
18884 return manage(res
);
18887 isl::checked::union_map
union_map::lexmax() const
18889 auto res
= isl_union_map_lexmax(copy());
18890 return manage(res
);
18893 isl::checked::union_map
union_map::lexmin() const
18895 auto res
= isl_union_map_lexmin(copy());
18896 return manage(res
);
18899 isl::checked::map_list
union_map::map_list() const
18901 auto res
= isl_union_map_get_map_list(get());
18902 return manage(res
);
18905 isl::checked::map_list
union_map::get_map_list() const
18910 isl::checked::set
union_map::params() const
18912 auto res
= isl_union_map_params(copy());
18913 return manage(res
);
18916 isl::checked::union_map
union_map::polyhedral_hull() const
18918 auto res
= isl_union_map_polyhedral_hull(copy());
18919 return manage(res
);
18922 isl::checked::union_map
union_map::preimage_domain(isl::checked::multi_aff ma
) const
18924 auto res
= isl_union_map_preimage_domain_multi_aff(copy(), ma
.release());
18925 return manage(res
);
18928 isl::checked::union_map
union_map::preimage_domain(isl::checked::multi_pw_aff mpa
) const
18930 auto res
= isl_union_map_preimage_domain_multi_pw_aff(copy(), mpa
.release());
18931 return manage(res
);
18934 isl::checked::union_map
union_map::preimage_domain(isl::checked::pw_multi_aff pma
) const
18936 auto res
= isl_union_map_preimage_domain_pw_multi_aff(copy(), pma
.release());
18937 return manage(res
);
18940 isl::checked::union_map
union_map::preimage_domain(isl::checked::union_pw_multi_aff upma
) const
18942 auto res
= isl_union_map_preimage_domain_union_pw_multi_aff(copy(), upma
.release());
18943 return manage(res
);
18946 isl::checked::union_map
union_map::preimage_range(isl::checked::multi_aff ma
) const
18948 auto res
= isl_union_map_preimage_range_multi_aff(copy(), ma
.release());
18949 return manage(res
);
18952 isl::checked::union_map
union_map::preimage_range(isl::checked::pw_multi_aff pma
) const
18954 auto res
= isl_union_map_preimage_range_pw_multi_aff(copy(), pma
.release());
18955 return manage(res
);
18958 isl::checked::union_map
union_map::preimage_range(isl::checked::union_pw_multi_aff upma
) const
18960 auto res
= isl_union_map_preimage_range_union_pw_multi_aff(copy(), upma
.release());
18961 return manage(res
);
18964 isl::checked::union_map
union_map::product(isl::checked::union_map umap2
) const
18966 auto res
= isl_union_map_product(copy(), umap2
.release());
18967 return manage(res
);
18970 isl::checked::union_map
union_map::project_out_all_params() const
18972 auto res
= isl_union_map_project_out_all_params(copy());
18973 return manage(res
);
18976 isl::checked::union_map
union_map::project_out_param(isl::checked::id id
) const
18978 auto res
= isl_union_map_project_out_param_id(copy(), id
.release());
18979 return manage(res
);
18982 isl::checked::union_map
union_map::project_out_param(const std::string
&id
) const
18984 return this->project_out_param(isl::checked::id(ctx(), id
));
18987 isl::checked::union_map
union_map::project_out_param(isl::checked::id_list list
) const
18989 auto res
= isl_union_map_project_out_param_id_list(copy(), list
.release());
18990 return manage(res
);
18993 isl::checked::union_set
union_map::range() const
18995 auto res
= isl_union_map_range(copy());
18996 return manage(res
);
18999 isl::checked::union_map
union_map::range_factor_domain() const
19001 auto res
= isl_union_map_range_factor_domain(copy());
19002 return manage(res
);
19005 isl::checked::union_map
union_map::range_factor_range() const
19007 auto res
= isl_union_map_range_factor_range(copy());
19008 return manage(res
);
19011 isl::checked::union_map
union_map::range_map() const
19013 auto res
= isl_union_map_range_map(copy());
19014 return manage(res
);
19017 isl::checked::union_map
union_map::range_product(isl::checked::union_map umap2
) const
19019 auto res
= isl_union_map_range_product(copy(), umap2
.release());
19020 return manage(res
);
19023 isl::checked::union_map
union_map::range_reverse() const
19025 auto res
= isl_union_map_range_reverse(copy());
19026 return manage(res
);
19029 isl::checked::union_map
union_map::reverse() const
19031 auto res
= isl_union_map_reverse(copy());
19032 return manage(res
);
19035 isl::checked::space
union_map::space() const
19037 auto res
= isl_union_map_get_space(get());
19038 return manage(res
);
19041 isl::checked::space
union_map::get_space() const
19046 isl::checked::union_map
union_map::subtract(isl::checked::union_map umap2
) const
19048 auto res
= isl_union_map_subtract(copy(), umap2
.release());
19049 return manage(res
);
19052 isl::checked::union_map
union_map::subtract_domain(isl::checked::union_set dom
) const
19054 auto res
= isl_union_map_subtract_domain(copy(), dom
.release());
19055 return manage(res
);
19058 isl::checked::union_map
union_map::subtract_range(isl::checked::union_set dom
) const
19060 auto res
= isl_union_map_subtract_range(copy(), dom
.release());
19061 return manage(res
);
19064 isl::checked::union_map
union_map::uncurry() const
19066 auto res
= isl_union_map_uncurry(copy());
19067 return manage(res
);
19070 isl::checked::union_map
union_map::unite(isl::checked::union_map umap2
) const
19072 auto res
= isl_union_map_union(copy(), umap2
.release());
19073 return manage(res
);
19076 isl::checked::union_map
union_map::universe() const
19078 auto res
= isl_union_map_universe(copy());
19079 return manage(res
);
19082 isl::checked::union_set
union_map::wrap() const
19084 auto res
= isl_union_map_wrap(copy());
19085 return manage(res
);
19088 isl::checked::union_map
union_map::zip() const
19090 auto res
= isl_union_map_zip(copy());
19091 return manage(res
);
19094 inline std::ostream
&operator<<(std::ostream
&os
, const union_map
&obj
)
19096 char *str
= isl_union_map_to_str(obj
.get());
19098 os
.setstate(std::ios_base::badbit
);
19106 // implementations for isl::union_pw_aff
19107 union_pw_aff
manage(__isl_take isl_union_pw_aff
*ptr
) {
19108 return union_pw_aff(ptr
);
19110 union_pw_aff
manage_copy(__isl_keep isl_union_pw_aff
*ptr
) {
19111 ptr
= isl_union_pw_aff_copy(ptr
);
19112 return union_pw_aff(ptr
);
19115 union_pw_aff::union_pw_aff(__isl_take isl_union_pw_aff
*ptr
)
19118 union_pw_aff::union_pw_aff()
19121 union_pw_aff::union_pw_aff(const union_pw_aff
&obj
)
19127 union_pw_aff::union_pw_aff(isl::checked::aff aff
)
19129 auto res
= isl_union_pw_aff_from_aff(aff
.release());
19133 union_pw_aff::union_pw_aff(isl::checked::pw_aff pa
)
19135 auto res
= isl_union_pw_aff_from_pw_aff(pa
.release());
19139 union_pw_aff::union_pw_aff(isl::checked::ctx ctx
, const std::string
&str
)
19141 auto res
= isl_union_pw_aff_read_from_str(ctx
.release(), str
.c_str());
19145 union_pw_aff
&union_pw_aff::operator=(union_pw_aff obj
) {
19146 std::swap(this->ptr
, obj
.ptr
);
19150 union_pw_aff::~union_pw_aff() {
19152 isl_union_pw_aff_free(ptr
);
19155 __isl_give isl_union_pw_aff
*union_pw_aff::copy() const & {
19156 return isl_union_pw_aff_copy(ptr
);
19159 __isl_keep isl_union_pw_aff
*union_pw_aff::get() const {
19163 __isl_give isl_union_pw_aff
*union_pw_aff::release() {
19164 isl_union_pw_aff
*tmp
= ptr
;
19169 bool union_pw_aff::is_null() const {
19170 return ptr
== nullptr;
19173 isl::checked::ctx
union_pw_aff::ctx() const {
19174 return isl::checked::ctx(isl_union_pw_aff_get_ctx(ptr
));
19177 isl::checked::multi_union_pw_aff
union_pw_aff::add(const isl::checked::multi_union_pw_aff
&multi2
) const
19179 return isl::checked::multi_union_pw_aff(*this).add(multi2
);
19182 isl::checked::union_pw_aff
union_pw_aff::add(isl::checked::union_pw_aff upa2
) const
19184 auto res
= isl_union_pw_aff_add(copy(), upa2
.release());
19185 return manage(res
);
19188 isl::checked::union_pw_multi_aff
union_pw_aff::add(const isl::checked::union_pw_multi_aff
&upma2
) const
19190 return isl::checked::union_pw_multi_aff(*this).add(upma2
);
19193 isl::checked::union_pw_aff
union_pw_aff::add(const isl::checked::aff
&upa2
) const
19195 return this->add(isl::checked::union_pw_aff(upa2
));
19198 isl::checked::union_pw_aff
union_pw_aff::add(const isl::checked::pw_aff
&upa2
) const
19200 return this->add(isl::checked::union_pw_aff(upa2
));
19203 isl::checked::union_pw_multi_aff
union_pw_aff::apply(const isl::checked::union_pw_multi_aff
&upma2
) const
19205 return isl::checked::union_pw_multi_aff(*this).apply(upma2
);
19208 isl::checked::multi_union_pw_aff
union_pw_aff::as_multi_union_pw_aff() const
19210 return isl::checked::union_pw_multi_aff(*this).as_multi_union_pw_aff();
19213 isl::checked::pw_multi_aff
union_pw_aff::as_pw_multi_aff() const
19215 return isl::checked::union_pw_multi_aff(*this).as_pw_multi_aff();
19218 isl::checked::union_map
union_pw_aff::as_union_map() const
19220 return isl::checked::union_pw_multi_aff(*this).as_union_map();
19223 isl::checked::union_pw_aff
union_pw_aff::at(int pos
) const
19225 return isl::checked::multi_union_pw_aff(*this).at(pos
);
19228 isl::checked::union_set
union_pw_aff::bind(const isl::checked::multi_id
&tuple
) const
19230 return isl::checked::multi_union_pw_aff(*this).bind(tuple
);
19233 isl::checked::union_set
union_pw_aff::bind(isl::checked::id id
) const
19235 auto res
= isl_union_pw_aff_bind_id(copy(), id
.release());
19236 return manage(res
);
19239 isl::checked::union_set
union_pw_aff::bind(const std::string
&id
) const
19241 return this->bind(isl::checked::id(ctx(), id
));
19244 isl::checked::union_pw_aff
union_pw_aff::coalesce() const
19246 auto res
= isl_union_pw_aff_coalesce(copy());
19247 return manage(res
);
19250 isl::checked::union_set
union_pw_aff::domain() const
19252 auto res
= isl_union_pw_aff_domain(copy());
19253 return manage(res
);
19256 isl::checked::union_pw_aff
union_pw_aff::drop_unused_params() const
19258 auto res
= isl_union_pw_aff_drop_unused_params(copy());
19259 return manage(res
);
19262 isl::checked::pw_multi_aff
union_pw_aff::extract_pw_multi_aff(const isl::checked::space
&space
) const
19264 return isl::checked::union_pw_multi_aff(*this).extract_pw_multi_aff(space
);
19267 isl::checked::multi_union_pw_aff
union_pw_aff::flat_range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
19269 return isl::checked::multi_union_pw_aff(*this).flat_range_product(multi2
);
19272 isl::checked::union_pw_multi_aff
union_pw_aff::flat_range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
19274 return isl::checked::union_pw_multi_aff(*this).flat_range_product(upma2
);
19277 isl::checked::union_pw_aff
union_pw_aff::gist(isl::checked::union_set context
) const
19279 auto res
= isl_union_pw_aff_gist(copy(), context
.release());
19280 return manage(res
);
19283 isl::checked::multi_union_pw_aff
union_pw_aff::gist_params(const isl::checked::set
&context
) const
19285 return isl::checked::multi_union_pw_aff(*this).gist_params(context
);
19288 boolean
union_pw_aff::has_range_tuple_id() const
19290 return isl::checked::multi_union_pw_aff(*this).has_range_tuple_id();
19293 isl::checked::union_pw_aff
union_pw_aff::intersect_domain(isl::checked::space space
) const
19295 auto res
= isl_union_pw_aff_intersect_domain_space(copy(), space
.release());
19296 return manage(res
);
19299 isl::checked::union_pw_aff
union_pw_aff::intersect_domain(isl::checked::union_set uset
) const
19301 auto res
= isl_union_pw_aff_intersect_domain_union_set(copy(), uset
.release());
19302 return manage(res
);
19305 isl::checked::union_pw_aff
union_pw_aff::intersect_domain_wrapped_domain(isl::checked::union_set uset
) const
19307 auto res
= isl_union_pw_aff_intersect_domain_wrapped_domain(copy(), uset
.release());
19308 return manage(res
);
19311 isl::checked::union_pw_aff
union_pw_aff::intersect_domain_wrapped_range(isl::checked::union_set uset
) const
19313 auto res
= isl_union_pw_aff_intersect_domain_wrapped_range(copy(), uset
.release());
19314 return manage(res
);
19317 isl::checked::union_pw_aff
union_pw_aff::intersect_params(isl::checked::set set
) const
19319 auto res
= isl_union_pw_aff_intersect_params(copy(), set
.release());
19320 return manage(res
);
19323 boolean
union_pw_aff::involves_locals() const
19325 return isl::checked::union_pw_multi_aff(*this).involves_locals();
19328 boolean
union_pw_aff::involves_nan() const
19330 return isl::checked::multi_union_pw_aff(*this).involves_nan();
19333 boolean
union_pw_aff::isa_pw_multi_aff() const
19335 return isl::checked::union_pw_multi_aff(*this).isa_pw_multi_aff();
19338 isl::checked::union_pw_aff_list
union_pw_aff::list() const
19340 return isl::checked::multi_union_pw_aff(*this).list();
19343 isl::checked::multi_union_pw_aff
union_pw_aff::neg() const
19345 return isl::checked::multi_union_pw_aff(*this).neg();
19348 boolean
union_pw_aff::plain_is_empty() const
19350 return isl::checked::union_pw_multi_aff(*this).plain_is_empty();
19353 boolean
union_pw_aff::plain_is_equal(const isl::checked::multi_union_pw_aff
&multi2
) const
19355 return isl::checked::multi_union_pw_aff(*this).plain_is_equal(multi2
);
19358 boolean
union_pw_aff::plain_is_equal(const isl::checked::union_pw_aff
&upa2
) const
19360 auto res
= isl_union_pw_aff_plain_is_equal(get(), upa2
.get());
19361 return manage(res
);
19364 boolean
union_pw_aff::plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const
19366 return isl::checked::union_pw_multi_aff(*this).plain_is_equal(upma2
);
19369 boolean
union_pw_aff::plain_is_equal(const isl::checked::aff
&upa2
) const
19371 return this->plain_is_equal(isl::checked::union_pw_aff(upa2
));
19374 boolean
union_pw_aff::plain_is_equal(const isl::checked::pw_aff
&upa2
) const
19376 return this->plain_is_equal(isl::checked::union_pw_aff(upa2
));
19379 isl::checked::union_pw_multi_aff
union_pw_aff::preimage_domain_wrapped_domain(const isl::checked::union_pw_multi_aff
&upma2
) const
19381 return isl::checked::union_pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2
);
19384 isl::checked::union_pw_aff
union_pw_aff::pullback(isl::checked::union_pw_multi_aff upma
) const
19386 auto res
= isl_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma
.release());
19387 return manage(res
);
19390 isl::checked::pw_multi_aff_list
union_pw_aff::pw_multi_aff_list() const
19392 return isl::checked::union_pw_multi_aff(*this).pw_multi_aff_list();
19395 isl::checked::union_pw_multi_aff
union_pw_aff::range_factor_domain() const
19397 return isl::checked::union_pw_multi_aff(*this).range_factor_domain();
19400 isl::checked::union_pw_multi_aff
union_pw_aff::range_factor_range() const
19402 return isl::checked::union_pw_multi_aff(*this).range_factor_range();
19405 isl::checked::multi_union_pw_aff
union_pw_aff::range_product(const isl::checked::multi_union_pw_aff
&multi2
) const
19407 return isl::checked::multi_union_pw_aff(*this).range_product(multi2
);
19410 isl::checked::union_pw_multi_aff
union_pw_aff::range_product(const isl::checked::union_pw_multi_aff
&upma2
) const
19412 return isl::checked::union_pw_multi_aff(*this).range_product(upma2
);
19415 isl::checked::id
union_pw_aff::range_tuple_id() const
19417 return isl::checked::multi_union_pw_aff(*this).range_tuple_id();
19420 isl::checked::multi_union_pw_aff
union_pw_aff::reset_range_tuple_id() const
19422 return isl::checked::multi_union_pw_aff(*this).reset_range_tuple_id();
19425 isl::checked::multi_union_pw_aff
union_pw_aff::scale(const isl::checked::multi_val
&mv
) const
19427 return isl::checked::multi_union_pw_aff(*this).scale(mv
);
19430 isl::checked::multi_union_pw_aff
union_pw_aff::scale(const isl::checked::val
&v
) const
19432 return isl::checked::multi_union_pw_aff(*this).scale(v
);
19435 isl::checked::multi_union_pw_aff
union_pw_aff::scale(long v
) const
19437 return this->scale(isl::checked::val(ctx(), v
));
19440 isl::checked::multi_union_pw_aff
union_pw_aff::scale_down(const isl::checked::multi_val
&mv
) const
19442 return isl::checked::multi_union_pw_aff(*this).scale_down(mv
);
19445 isl::checked::multi_union_pw_aff
union_pw_aff::scale_down(const isl::checked::val
&v
) const
19447 return isl::checked::multi_union_pw_aff(*this).scale_down(v
);
19450 isl::checked::multi_union_pw_aff
union_pw_aff::scale_down(long v
) const
19452 return this->scale_down(isl::checked::val(ctx(), v
));
19455 isl::checked::multi_union_pw_aff
union_pw_aff::set_at(int pos
, const isl::checked::union_pw_aff
&el
) const
19457 return isl::checked::multi_union_pw_aff(*this).set_at(pos
, el
);
19460 isl::checked::multi_union_pw_aff
union_pw_aff::set_range_tuple(const isl::checked::id
&id
) const
19462 return isl::checked::multi_union_pw_aff(*this).set_range_tuple(id
);
19465 isl::checked::multi_union_pw_aff
union_pw_aff::set_range_tuple(const std::string
&id
) const
19467 return this->set_range_tuple(isl::checked::id(ctx(), id
));
19470 class size
union_pw_aff::size() const
19472 return isl::checked::multi_union_pw_aff(*this).size();
19475 isl::checked::space
union_pw_aff::space() const
19477 auto res
= isl_union_pw_aff_get_space(get());
19478 return manage(res
);
19481 isl::checked::space
union_pw_aff::get_space() const
19486 isl::checked::multi_union_pw_aff
union_pw_aff::sub(const isl::checked::multi_union_pw_aff
&multi2
) const
19488 return isl::checked::multi_union_pw_aff(*this).sub(multi2
);
19491 isl::checked::union_pw_aff
union_pw_aff::sub(isl::checked::union_pw_aff upa2
) const
19493 auto res
= isl_union_pw_aff_sub(copy(), upa2
.release());
19494 return manage(res
);
19497 isl::checked::union_pw_multi_aff
union_pw_aff::sub(const isl::checked::union_pw_multi_aff
&upma2
) const
19499 return isl::checked::union_pw_multi_aff(*this).sub(upma2
);
19502 isl::checked::union_pw_aff
union_pw_aff::sub(const isl::checked::aff
&upa2
) const
19504 return this->sub(isl::checked::union_pw_aff(upa2
));
19507 isl::checked::union_pw_aff
union_pw_aff::sub(const isl::checked::pw_aff
&upa2
) const
19509 return this->sub(isl::checked::union_pw_aff(upa2
));
19512 isl::checked::union_pw_aff
union_pw_aff::subtract_domain(isl::checked::space space
) const
19514 auto res
= isl_union_pw_aff_subtract_domain_space(copy(), space
.release());
19515 return manage(res
);
19518 isl::checked::union_pw_aff
union_pw_aff::subtract_domain(isl::checked::union_set uset
) const
19520 auto res
= isl_union_pw_aff_subtract_domain_union_set(copy(), uset
.release());
19521 return manage(res
);
19524 isl::checked::union_pw_aff_list
union_pw_aff::to_list() const
19526 auto res
= isl_union_pw_aff_to_list(copy());
19527 return manage(res
);
19530 isl::checked::multi_union_pw_aff
union_pw_aff::union_add(const isl::checked::multi_union_pw_aff
&mupa2
) const
19532 return isl::checked::multi_union_pw_aff(*this).union_add(mupa2
);
19535 isl::checked::union_pw_aff
union_pw_aff::union_add(isl::checked::union_pw_aff upa2
) const
19537 auto res
= isl_union_pw_aff_union_add(copy(), upa2
.release());
19538 return manage(res
);
19541 isl::checked::union_pw_multi_aff
union_pw_aff::union_add(const isl::checked::union_pw_multi_aff
&upma2
) const
19543 return isl::checked::union_pw_multi_aff(*this).union_add(upma2
);
19546 isl::checked::union_pw_aff
union_pw_aff::union_add(const isl::checked::aff
&upa2
) const
19548 return this->union_add(isl::checked::union_pw_aff(upa2
));
19551 isl::checked::union_pw_aff
union_pw_aff::union_add(const isl::checked::pw_aff
&upa2
) const
19553 return this->union_add(isl::checked::union_pw_aff(upa2
));
19556 inline std::ostream
&operator<<(std::ostream
&os
, const union_pw_aff
&obj
)
19558 char *str
= isl_union_pw_aff_to_str(obj
.get());
19560 os
.setstate(std::ios_base::badbit
);
19568 // implementations for isl::union_pw_aff_list
19569 union_pw_aff_list
manage(__isl_take isl_union_pw_aff_list
*ptr
) {
19570 return union_pw_aff_list(ptr
);
19572 union_pw_aff_list
manage_copy(__isl_keep isl_union_pw_aff_list
*ptr
) {
19573 ptr
= isl_union_pw_aff_list_copy(ptr
);
19574 return union_pw_aff_list(ptr
);
19577 union_pw_aff_list::union_pw_aff_list(__isl_take isl_union_pw_aff_list
*ptr
)
19580 union_pw_aff_list::union_pw_aff_list()
19583 union_pw_aff_list::union_pw_aff_list(const union_pw_aff_list
&obj
)
19589 union_pw_aff_list::union_pw_aff_list(isl::checked::ctx ctx
, int n
)
19591 auto res
= isl_union_pw_aff_list_alloc(ctx
.release(), n
);
19595 union_pw_aff_list::union_pw_aff_list(isl::checked::union_pw_aff el
)
19597 auto res
= isl_union_pw_aff_list_from_union_pw_aff(el
.release());
19601 union_pw_aff_list::union_pw_aff_list(isl::checked::ctx ctx
, const std::string
&str
)
19603 auto res
= isl_union_pw_aff_list_read_from_str(ctx
.release(), str
.c_str());
19607 union_pw_aff_list
&union_pw_aff_list::operator=(union_pw_aff_list obj
) {
19608 std::swap(this->ptr
, obj
.ptr
);
19612 union_pw_aff_list::~union_pw_aff_list() {
19614 isl_union_pw_aff_list_free(ptr
);
19617 __isl_give isl_union_pw_aff_list
*union_pw_aff_list::copy() const & {
19618 return isl_union_pw_aff_list_copy(ptr
);
19621 __isl_keep isl_union_pw_aff_list
*union_pw_aff_list::get() const {
19625 __isl_give isl_union_pw_aff_list
*union_pw_aff_list::release() {
19626 isl_union_pw_aff_list
*tmp
= ptr
;
19631 bool union_pw_aff_list::is_null() const {
19632 return ptr
== nullptr;
19635 isl::checked::ctx
union_pw_aff_list::ctx() const {
19636 return isl::checked::ctx(isl_union_pw_aff_list_get_ctx(ptr
));
19639 isl::checked::union_pw_aff_list
union_pw_aff_list::add(isl::checked::union_pw_aff el
) const
19641 auto res
= isl_union_pw_aff_list_add(copy(), el
.release());
19642 return manage(res
);
19645 isl::checked::union_pw_aff
union_pw_aff_list::at(int index
) const
19647 auto res
= isl_union_pw_aff_list_get_at(get(), index
);
19648 return manage(res
);
19651 isl::checked::union_pw_aff
union_pw_aff_list::get_at(int index
) const
19656 isl::checked::union_pw_aff_list
union_pw_aff_list::clear() const
19658 auto res
= isl_union_pw_aff_list_clear(copy());
19659 return manage(res
);
19662 isl::checked::union_pw_aff_list
union_pw_aff_list::concat(isl::checked::union_pw_aff_list list2
) const
19664 auto res
= isl_union_pw_aff_list_concat(copy(), list2
.release());
19665 return manage(res
);
19668 isl::checked::union_pw_aff_list
union_pw_aff_list::drop(unsigned int first
, unsigned int n
) const
19670 auto res
= isl_union_pw_aff_list_drop(copy(), first
, n
);
19671 return manage(res
);
19674 stat
union_pw_aff_list::foreach(const std::function
<stat(isl::checked::union_pw_aff
)> &fn
) const
19677 std::function
<stat(isl::checked::union_pw_aff
)> func
;
19678 } fn_data
= { fn
};
19679 auto fn_lambda
= [](isl_union_pw_aff
*arg_0
, void *arg_1
) -> isl_stat
{
19680 auto *data
= static_cast<struct fn_data
*>(arg_1
);
19681 auto ret
= (data
->func
)(manage(arg_0
));
19682 return ret
.release();
19684 auto res
= isl_union_pw_aff_list_foreach(get(), fn_lambda
, &fn_data
);
19685 return manage(res
);
19688 stat
union_pw_aff_list::foreach_scc(const std::function
<boolean(isl::checked::union_pw_aff
, isl::checked::union_pw_aff
)> &follows
, const std::function
<stat(isl::checked::union_pw_aff_list
)> &fn
) const
19690 struct follows_data
{
19691 std::function
<boolean(isl::checked::union_pw_aff
, isl::checked::union_pw_aff
)> func
;
19692 } follows_data
= { follows
};
19693 auto follows_lambda
= [](isl_union_pw_aff
*arg_0
, isl_union_pw_aff
*arg_1
, void *arg_2
) -> isl_bool
{
19694 auto *data
= static_cast<struct follows_data
*>(arg_2
);
19695 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
19696 return ret
.release();
19699 std::function
<stat(isl::checked::union_pw_aff_list
)> func
;
19700 } fn_data
= { fn
};
19701 auto fn_lambda
= [](isl_union_pw_aff_list
*arg_0
, void *arg_1
) -> isl_stat
{
19702 auto *data
= static_cast<struct fn_data
*>(arg_1
);
19703 auto ret
= (data
->func
)(manage(arg_0
));
19704 return ret
.release();
19706 auto res
= isl_union_pw_aff_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
19707 return manage(res
);
19710 isl::checked::union_pw_aff_list
union_pw_aff_list::insert(unsigned int pos
, isl::checked::union_pw_aff el
) const
19712 auto res
= isl_union_pw_aff_list_insert(copy(), pos
, el
.release());
19713 return manage(res
);
19716 isl::checked::union_pw_aff_list
union_pw_aff_list::set_at(int index
, isl::checked::union_pw_aff el
) const
19718 auto res
= isl_union_pw_aff_list_set_at(copy(), index
, el
.release());
19719 return manage(res
);
19722 class size
union_pw_aff_list::size() const
19724 auto res
= isl_union_pw_aff_list_size(get());
19725 return manage(res
);
19728 inline std::ostream
&operator<<(std::ostream
&os
, const union_pw_aff_list
&obj
)
19730 char *str
= isl_union_pw_aff_list_to_str(obj
.get());
19732 os
.setstate(std::ios_base::badbit
);
19740 // implementations for isl::union_pw_multi_aff
19741 union_pw_multi_aff
manage(__isl_take isl_union_pw_multi_aff
*ptr
) {
19742 return union_pw_multi_aff(ptr
);
19744 union_pw_multi_aff
manage_copy(__isl_keep isl_union_pw_multi_aff
*ptr
) {
19745 ptr
= isl_union_pw_multi_aff_copy(ptr
);
19746 return union_pw_multi_aff(ptr
);
19749 union_pw_multi_aff::union_pw_multi_aff(__isl_take isl_union_pw_multi_aff
*ptr
)
19752 union_pw_multi_aff::union_pw_multi_aff()
19755 union_pw_multi_aff::union_pw_multi_aff(const union_pw_multi_aff
&obj
)
19761 union_pw_multi_aff::union_pw_multi_aff(isl::checked::multi_aff ma
)
19763 auto res
= isl_union_pw_multi_aff_from_multi_aff(ma
.release());
19767 union_pw_multi_aff::union_pw_multi_aff(isl::checked::pw_multi_aff pma
)
19769 auto res
= isl_union_pw_multi_aff_from_pw_multi_aff(pma
.release());
19773 union_pw_multi_aff::union_pw_multi_aff(isl::checked::union_pw_aff upa
)
19775 auto res
= isl_union_pw_multi_aff_from_union_pw_aff(upa
.release());
19779 union_pw_multi_aff::union_pw_multi_aff(isl::checked::ctx ctx
, const std::string
&str
)
19781 auto res
= isl_union_pw_multi_aff_read_from_str(ctx
.release(), str
.c_str());
19785 union_pw_multi_aff
&union_pw_multi_aff::operator=(union_pw_multi_aff obj
) {
19786 std::swap(this->ptr
, obj
.ptr
);
19790 union_pw_multi_aff::~union_pw_multi_aff() {
19792 isl_union_pw_multi_aff_free(ptr
);
19795 __isl_give isl_union_pw_multi_aff
*union_pw_multi_aff::copy() const & {
19796 return isl_union_pw_multi_aff_copy(ptr
);
19799 __isl_keep isl_union_pw_multi_aff
*union_pw_multi_aff::get() const {
19803 __isl_give isl_union_pw_multi_aff
*union_pw_multi_aff::release() {
19804 isl_union_pw_multi_aff
*tmp
= ptr
;
19809 bool union_pw_multi_aff::is_null() const {
19810 return ptr
== nullptr;
19813 isl::checked::ctx
union_pw_multi_aff::ctx() const {
19814 return isl::checked::ctx(isl_union_pw_multi_aff_get_ctx(ptr
));
19817 isl::checked::union_pw_multi_aff
union_pw_multi_aff::add(isl::checked::union_pw_multi_aff upma2
) const
19819 auto res
= isl_union_pw_multi_aff_add(copy(), upma2
.release());
19820 return manage(res
);
19823 isl::checked::union_pw_multi_aff
union_pw_multi_aff::apply(isl::checked::union_pw_multi_aff upma2
) const
19825 auto res
= isl_union_pw_multi_aff_apply_union_pw_multi_aff(copy(), upma2
.release());
19826 return manage(res
);
19829 isl::checked::multi_union_pw_aff
union_pw_multi_aff::as_multi_union_pw_aff() const
19831 auto res
= isl_union_pw_multi_aff_as_multi_union_pw_aff(copy());
19832 return manage(res
);
19835 isl::checked::pw_multi_aff
union_pw_multi_aff::as_pw_multi_aff() const
19837 auto res
= isl_union_pw_multi_aff_as_pw_multi_aff(copy());
19838 return manage(res
);
19841 isl::checked::union_map
union_pw_multi_aff::as_union_map() const
19843 auto res
= isl_union_pw_multi_aff_as_union_map(copy());
19844 return manage(res
);
19847 isl::checked::union_pw_multi_aff
union_pw_multi_aff::coalesce() const
19849 auto res
= isl_union_pw_multi_aff_coalesce(copy());
19850 return manage(res
);
19853 isl::checked::union_set
union_pw_multi_aff::domain() const
19855 auto res
= isl_union_pw_multi_aff_domain(copy());
19856 return manage(res
);
19859 isl::checked::union_pw_multi_aff
union_pw_multi_aff::drop_unused_params() const
19861 auto res
= isl_union_pw_multi_aff_drop_unused_params(copy());
19862 return manage(res
);
19865 isl::checked::union_pw_multi_aff
union_pw_multi_aff::empty(isl::checked::ctx ctx
)
19867 auto res
= isl_union_pw_multi_aff_empty_ctx(ctx
.release());
19868 return manage(res
);
19871 isl::checked::pw_multi_aff
union_pw_multi_aff::extract_pw_multi_aff(isl::checked::space space
) const
19873 auto res
= isl_union_pw_multi_aff_extract_pw_multi_aff(get(), space
.release());
19874 return manage(res
);
19877 isl::checked::union_pw_multi_aff
union_pw_multi_aff::flat_range_product(isl::checked::union_pw_multi_aff upma2
) const
19879 auto res
= isl_union_pw_multi_aff_flat_range_product(copy(), upma2
.release());
19880 return manage(res
);
19883 isl::checked::union_pw_multi_aff
union_pw_multi_aff::gist(isl::checked::union_set context
) const
19885 auto res
= isl_union_pw_multi_aff_gist(copy(), context
.release());
19886 return manage(res
);
19889 isl::checked::union_pw_multi_aff
union_pw_multi_aff::intersect_domain(isl::checked::space space
) const
19891 auto res
= isl_union_pw_multi_aff_intersect_domain_space(copy(), space
.release());
19892 return manage(res
);
19895 isl::checked::union_pw_multi_aff
union_pw_multi_aff::intersect_domain(isl::checked::union_set uset
) const
19897 auto res
= isl_union_pw_multi_aff_intersect_domain_union_set(copy(), uset
.release());
19898 return manage(res
);
19901 isl::checked::union_pw_multi_aff
union_pw_multi_aff::intersect_domain_wrapped_domain(isl::checked::union_set uset
) const
19903 auto res
= isl_union_pw_multi_aff_intersect_domain_wrapped_domain(copy(), uset
.release());
19904 return manage(res
);
19907 isl::checked::union_pw_multi_aff
union_pw_multi_aff::intersect_domain_wrapped_range(isl::checked::union_set uset
) const
19909 auto res
= isl_union_pw_multi_aff_intersect_domain_wrapped_range(copy(), uset
.release());
19910 return manage(res
);
19913 isl::checked::union_pw_multi_aff
union_pw_multi_aff::intersect_params(isl::checked::set set
) const
19915 auto res
= isl_union_pw_multi_aff_intersect_params(copy(), set
.release());
19916 return manage(res
);
19919 boolean
union_pw_multi_aff::involves_locals() const
19921 auto res
= isl_union_pw_multi_aff_involves_locals(get());
19922 return manage(res
);
19925 boolean
union_pw_multi_aff::isa_pw_multi_aff() const
19927 auto res
= isl_union_pw_multi_aff_isa_pw_multi_aff(get());
19928 return manage(res
);
19931 boolean
union_pw_multi_aff::plain_is_empty() const
19933 auto res
= isl_union_pw_multi_aff_plain_is_empty(get());
19934 return manage(res
);
19937 boolean
union_pw_multi_aff::plain_is_equal(const isl::checked::union_pw_multi_aff
&upma2
) const
19939 auto res
= isl_union_pw_multi_aff_plain_is_equal(get(), upma2
.get());
19940 return manage(res
);
19943 isl::checked::union_pw_multi_aff
union_pw_multi_aff::preimage_domain_wrapped_domain(isl::checked::union_pw_multi_aff upma2
) const
19945 auto res
= isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(copy(), upma2
.release());
19946 return manage(res
);
19949 isl::checked::union_pw_multi_aff
union_pw_multi_aff::pullback(isl::checked::union_pw_multi_aff upma2
) const
19951 auto res
= isl_union_pw_multi_aff_pullback_union_pw_multi_aff(copy(), upma2
.release());
19952 return manage(res
);
19955 isl::checked::pw_multi_aff_list
union_pw_multi_aff::pw_multi_aff_list() const
19957 auto res
= isl_union_pw_multi_aff_get_pw_multi_aff_list(get());
19958 return manage(res
);
19961 isl::checked::pw_multi_aff_list
union_pw_multi_aff::get_pw_multi_aff_list() const
19963 return pw_multi_aff_list();
19966 isl::checked::union_pw_multi_aff
union_pw_multi_aff::range_factor_domain() const
19968 auto res
= isl_union_pw_multi_aff_range_factor_domain(copy());
19969 return manage(res
);
19972 isl::checked::union_pw_multi_aff
union_pw_multi_aff::range_factor_range() const
19974 auto res
= isl_union_pw_multi_aff_range_factor_range(copy());
19975 return manage(res
);
19978 isl::checked::union_pw_multi_aff
union_pw_multi_aff::range_product(isl::checked::union_pw_multi_aff upma2
) const
19980 auto res
= isl_union_pw_multi_aff_range_product(copy(), upma2
.release());
19981 return manage(res
);
19984 isl::checked::space
union_pw_multi_aff::space() const
19986 auto res
= isl_union_pw_multi_aff_get_space(get());
19987 return manage(res
);
19990 isl::checked::space
union_pw_multi_aff::get_space() const
19995 isl::checked::union_pw_multi_aff
union_pw_multi_aff::sub(isl::checked::union_pw_multi_aff upma2
) const
19997 auto res
= isl_union_pw_multi_aff_sub(copy(), upma2
.release());
19998 return manage(res
);
20001 isl::checked::union_pw_multi_aff
union_pw_multi_aff::subtract_domain(isl::checked::space space
) const
20003 auto res
= isl_union_pw_multi_aff_subtract_domain_space(copy(), space
.release());
20004 return manage(res
);
20007 isl::checked::union_pw_multi_aff
union_pw_multi_aff::subtract_domain(isl::checked::union_set uset
) const
20009 auto res
= isl_union_pw_multi_aff_subtract_domain_union_set(copy(), uset
.release());
20010 return manage(res
);
20013 isl::checked::union_pw_multi_aff
union_pw_multi_aff::union_add(isl::checked::union_pw_multi_aff upma2
) const
20015 auto res
= isl_union_pw_multi_aff_union_add(copy(), upma2
.release());
20016 return manage(res
);
20019 inline std::ostream
&operator<<(std::ostream
&os
, const union_pw_multi_aff
&obj
)
20021 char *str
= isl_union_pw_multi_aff_to_str(obj
.get());
20023 os
.setstate(std::ios_base::badbit
);
20031 // implementations for isl::union_set
20032 union_set
manage(__isl_take isl_union_set
*ptr
) {
20033 return union_set(ptr
);
20035 union_set
manage_copy(__isl_keep isl_union_set
*ptr
) {
20036 ptr
= isl_union_set_copy(ptr
);
20037 return union_set(ptr
);
20040 union_set::union_set(__isl_take isl_union_set
*ptr
)
20043 union_set::union_set()
20046 union_set::union_set(const union_set
&obj
)
20052 union_set::union_set(isl::checked::basic_set bset
)
20054 auto res
= isl_union_set_from_basic_set(bset
.release());
20058 union_set::union_set(isl::checked::point pnt
)
20060 auto res
= isl_union_set_from_point(pnt
.release());
20064 union_set::union_set(isl::checked::set set
)
20066 auto res
= isl_union_set_from_set(set
.release());
20070 union_set::union_set(isl::checked::ctx ctx
, const std::string
&str
)
20072 auto res
= isl_union_set_read_from_str(ctx
.release(), str
.c_str());
20076 union_set
&union_set::operator=(union_set obj
) {
20077 std::swap(this->ptr
, obj
.ptr
);
20081 union_set::~union_set() {
20083 isl_union_set_free(ptr
);
20086 __isl_give isl_union_set
*union_set::copy() const & {
20087 return isl_union_set_copy(ptr
);
20090 __isl_keep isl_union_set
*union_set::get() const {
20094 __isl_give isl_union_set
*union_set::release() {
20095 isl_union_set
*tmp
= ptr
;
20100 bool union_set::is_null() const {
20101 return ptr
== nullptr;
20104 isl::checked::ctx
union_set::ctx() const {
20105 return isl::checked::ctx(isl_union_set_get_ctx(ptr
));
20108 isl::checked::union_set
union_set::affine_hull() const
20110 auto res
= isl_union_set_affine_hull(copy());
20111 return manage(res
);
20114 isl::checked::union_set
union_set::apply(isl::checked::union_map umap
) const
20116 auto res
= isl_union_set_apply(copy(), umap
.release());
20117 return manage(res
);
20120 isl::checked::set
union_set::as_set() const
20122 auto res
= isl_union_set_as_set(copy());
20123 return manage(res
);
20126 isl::checked::union_set
union_set::coalesce() const
20128 auto res
= isl_union_set_coalesce(copy());
20129 return manage(res
);
20132 isl::checked::union_set
union_set::compute_divs() const
20134 auto res
= isl_union_set_compute_divs(copy());
20135 return manage(res
);
20138 isl::checked::union_set
union_set::detect_equalities() const
20140 auto res
= isl_union_set_detect_equalities(copy());
20141 return manage(res
);
20144 isl::checked::union_set
union_set::drop_unused_params() const
20146 auto res
= isl_union_set_drop_unused_params(copy());
20147 return manage(res
);
20150 isl::checked::union_set
union_set::empty(isl::checked::ctx ctx
)
20152 auto res
= isl_union_set_empty_ctx(ctx
.release());
20153 return manage(res
);
20156 boolean
union_set::every_set(const std::function
<boolean(isl::checked::set
)> &test
) const
20159 std::function
<boolean(isl::checked::set
)> func
;
20160 } test_data
= { test
};
20161 auto test_lambda
= [](isl_set
*arg_0
, void *arg_1
) -> isl_bool
{
20162 auto *data
= static_cast<struct test_data
*>(arg_1
);
20163 auto ret
= (data
->func
)(manage_copy(arg_0
));
20164 return ret
.release();
20166 auto res
= isl_union_set_every_set(get(), test_lambda
, &test_data
);
20167 return manage(res
);
20170 isl::checked::set
union_set::extract_set(isl::checked::space space
) const
20172 auto res
= isl_union_set_extract_set(get(), space
.release());
20173 return manage(res
);
20176 stat
union_set::foreach_point(const std::function
<stat(isl::checked::point
)> &fn
) const
20179 std::function
<stat(isl::checked::point
)> func
;
20180 } fn_data
= { fn
};
20181 auto fn_lambda
= [](isl_point
*arg_0
, void *arg_1
) -> isl_stat
{
20182 auto *data
= static_cast<struct fn_data
*>(arg_1
);
20183 auto ret
= (data
->func
)(manage(arg_0
));
20184 return ret
.release();
20186 auto res
= isl_union_set_foreach_point(get(), fn_lambda
, &fn_data
);
20187 return manage(res
);
20190 stat
union_set::foreach_set(const std::function
<stat(isl::checked::set
)> &fn
) const
20193 std::function
<stat(isl::checked::set
)> func
;
20194 } fn_data
= { fn
};
20195 auto fn_lambda
= [](isl_set
*arg_0
, void *arg_1
) -> isl_stat
{
20196 auto *data
= static_cast<struct fn_data
*>(arg_1
);
20197 auto ret
= (data
->func
)(manage(arg_0
));
20198 return ret
.release();
20200 auto res
= isl_union_set_foreach_set(get(), fn_lambda
, &fn_data
);
20201 return manage(res
);
20204 isl::checked::union_set
union_set::gist(isl::checked::union_set context
) const
20206 auto res
= isl_union_set_gist(copy(), context
.release());
20207 return manage(res
);
20210 isl::checked::union_set
union_set::gist_params(isl::checked::set set
) const
20212 auto res
= isl_union_set_gist_params(copy(), set
.release());
20213 return manage(res
);
20216 isl::checked::union_map
union_set::identity() const
20218 auto res
= isl_union_set_identity(copy());
20219 return manage(res
);
20222 isl::checked::union_set
union_set::intersect(isl::checked::union_set uset2
) const
20224 auto res
= isl_union_set_intersect(copy(), uset2
.release());
20225 return manage(res
);
20228 isl::checked::union_set
union_set::intersect_params(isl::checked::set set
) const
20230 auto res
= isl_union_set_intersect_params(copy(), set
.release());
20231 return manage(res
);
20234 boolean
union_set::is_disjoint(const isl::checked::union_set
&uset2
) const
20236 auto res
= isl_union_set_is_disjoint(get(), uset2
.get());
20237 return manage(res
);
20240 boolean
union_set::is_empty() const
20242 auto res
= isl_union_set_is_empty(get());
20243 return manage(res
);
20246 boolean
union_set::is_equal(const isl::checked::union_set
&uset2
) const
20248 auto res
= isl_union_set_is_equal(get(), uset2
.get());
20249 return manage(res
);
20252 boolean
union_set::is_strict_subset(const isl::checked::union_set
&uset2
) const
20254 auto res
= isl_union_set_is_strict_subset(get(), uset2
.get());
20255 return manage(res
);
20258 boolean
union_set::is_subset(const isl::checked::union_set
&uset2
) const
20260 auto res
= isl_union_set_is_subset(get(), uset2
.get());
20261 return manage(res
);
20264 boolean
union_set::isa_set() const
20266 auto res
= isl_union_set_isa_set(get());
20267 return manage(res
);
20270 isl::checked::union_set
union_set::lexmax() const
20272 auto res
= isl_union_set_lexmax(copy());
20273 return manage(res
);
20276 isl::checked::union_set
union_set::lexmin() const
20278 auto res
= isl_union_set_lexmin(copy());
20279 return manage(res
);
20282 isl::checked::set
union_set::params() const
20284 auto res
= isl_union_set_params(copy());
20285 return manage(res
);
20288 isl::checked::union_set
union_set::polyhedral_hull() const
20290 auto res
= isl_union_set_polyhedral_hull(copy());
20291 return manage(res
);
20294 isl::checked::union_set
union_set::preimage(isl::checked::multi_aff ma
) const
20296 auto res
= isl_union_set_preimage_multi_aff(copy(), ma
.release());
20297 return manage(res
);
20300 isl::checked::union_set
union_set::preimage(isl::checked::pw_multi_aff pma
) const
20302 auto res
= isl_union_set_preimage_pw_multi_aff(copy(), pma
.release());
20303 return manage(res
);
20306 isl::checked::union_set
union_set::preimage(isl::checked::union_pw_multi_aff upma
) const
20308 auto res
= isl_union_set_preimage_union_pw_multi_aff(copy(), upma
.release());
20309 return manage(res
);
20312 isl::checked::union_set
union_set::project_out_all_params() const
20314 auto res
= isl_union_set_project_out_all_params(copy());
20315 return manage(res
);
20318 isl::checked::point
union_set::sample_point() const
20320 auto res
= isl_union_set_sample_point(copy());
20321 return manage(res
);
20324 isl::checked::set_list
union_set::set_list() const
20326 auto res
= isl_union_set_get_set_list(get());
20327 return manage(res
);
20330 isl::checked::set_list
union_set::get_set_list() const
20335 isl::checked::space
union_set::space() const
20337 auto res
= isl_union_set_get_space(get());
20338 return manage(res
);
20341 isl::checked::space
union_set::get_space() const
20346 isl::checked::union_set
union_set::subtract(isl::checked::union_set uset2
) const
20348 auto res
= isl_union_set_subtract(copy(), uset2
.release());
20349 return manage(res
);
20352 isl::checked::union_set_list
union_set::to_list() const
20354 auto res
= isl_union_set_to_list(copy());
20355 return manage(res
);
20358 isl::checked::union_set
union_set::unite(isl::checked::union_set uset2
) const
20360 auto res
= isl_union_set_union(copy(), uset2
.release());
20361 return manage(res
);
20364 isl::checked::union_set
union_set::universe() const
20366 auto res
= isl_union_set_universe(copy());
20367 return manage(res
);
20370 isl::checked::union_map
union_set::unwrap() const
20372 auto res
= isl_union_set_unwrap(copy());
20373 return manage(res
);
20376 inline std::ostream
&operator<<(std::ostream
&os
, const union_set
&obj
)
20378 char *str
= isl_union_set_to_str(obj
.get());
20380 os
.setstate(std::ios_base::badbit
);
20388 // implementations for isl::union_set_list
20389 union_set_list
manage(__isl_take isl_union_set_list
*ptr
) {
20390 return union_set_list(ptr
);
20392 union_set_list
manage_copy(__isl_keep isl_union_set_list
*ptr
) {
20393 ptr
= isl_union_set_list_copy(ptr
);
20394 return union_set_list(ptr
);
20397 union_set_list::union_set_list(__isl_take isl_union_set_list
*ptr
)
20400 union_set_list::union_set_list()
20403 union_set_list::union_set_list(const union_set_list
&obj
)
20409 union_set_list::union_set_list(isl::checked::ctx ctx
, int n
)
20411 auto res
= isl_union_set_list_alloc(ctx
.release(), n
);
20415 union_set_list::union_set_list(isl::checked::union_set el
)
20417 auto res
= isl_union_set_list_from_union_set(el
.release());
20421 union_set_list::union_set_list(isl::checked::ctx ctx
, const std::string
&str
)
20423 auto res
= isl_union_set_list_read_from_str(ctx
.release(), str
.c_str());
20427 union_set_list
&union_set_list::operator=(union_set_list obj
) {
20428 std::swap(this->ptr
, obj
.ptr
);
20432 union_set_list::~union_set_list() {
20434 isl_union_set_list_free(ptr
);
20437 __isl_give isl_union_set_list
*union_set_list::copy() const & {
20438 return isl_union_set_list_copy(ptr
);
20441 __isl_keep isl_union_set_list
*union_set_list::get() const {
20445 __isl_give isl_union_set_list
*union_set_list::release() {
20446 isl_union_set_list
*tmp
= ptr
;
20451 bool union_set_list::is_null() const {
20452 return ptr
== nullptr;
20455 isl::checked::ctx
union_set_list::ctx() const {
20456 return isl::checked::ctx(isl_union_set_list_get_ctx(ptr
));
20459 isl::checked::union_set_list
union_set_list::add(isl::checked::union_set el
) const
20461 auto res
= isl_union_set_list_add(copy(), el
.release());
20462 return manage(res
);
20465 isl::checked::union_set
union_set_list::at(int index
) const
20467 auto res
= isl_union_set_list_get_at(get(), index
);
20468 return manage(res
);
20471 isl::checked::union_set
union_set_list::get_at(int index
) const
20476 isl::checked::union_set_list
union_set_list::clear() const
20478 auto res
= isl_union_set_list_clear(copy());
20479 return manage(res
);
20482 isl::checked::union_set_list
union_set_list::concat(isl::checked::union_set_list list2
) const
20484 auto res
= isl_union_set_list_concat(copy(), list2
.release());
20485 return manage(res
);
20488 isl::checked::union_set_list
union_set_list::drop(unsigned int first
, unsigned int n
) const
20490 auto res
= isl_union_set_list_drop(copy(), first
, n
);
20491 return manage(res
);
20494 stat
union_set_list::foreach(const std::function
<stat(isl::checked::union_set
)> &fn
) const
20497 std::function
<stat(isl::checked::union_set
)> func
;
20498 } fn_data
= { fn
};
20499 auto fn_lambda
= [](isl_union_set
*arg_0
, void *arg_1
) -> isl_stat
{
20500 auto *data
= static_cast<struct fn_data
*>(arg_1
);
20501 auto ret
= (data
->func
)(manage(arg_0
));
20502 return ret
.release();
20504 auto res
= isl_union_set_list_foreach(get(), fn_lambda
, &fn_data
);
20505 return manage(res
);
20508 stat
union_set_list::foreach_scc(const std::function
<boolean(isl::checked::union_set
, isl::checked::union_set
)> &follows
, const std::function
<stat(isl::checked::union_set_list
)> &fn
) const
20510 struct follows_data
{
20511 std::function
<boolean(isl::checked::union_set
, isl::checked::union_set
)> func
;
20512 } follows_data
= { follows
};
20513 auto follows_lambda
= [](isl_union_set
*arg_0
, isl_union_set
*arg_1
, void *arg_2
) -> isl_bool
{
20514 auto *data
= static_cast<struct follows_data
*>(arg_2
);
20515 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
20516 return ret
.release();
20519 std::function
<stat(isl::checked::union_set_list
)> func
;
20520 } fn_data
= { fn
};
20521 auto fn_lambda
= [](isl_union_set_list
*arg_0
, void *arg_1
) -> isl_stat
{
20522 auto *data
= static_cast<struct fn_data
*>(arg_1
);
20523 auto ret
= (data
->func
)(manage(arg_0
));
20524 return ret
.release();
20526 auto res
= isl_union_set_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
20527 return manage(res
);
20530 isl::checked::union_set_list
union_set_list::insert(unsigned int pos
, isl::checked::union_set el
) const
20532 auto res
= isl_union_set_list_insert(copy(), pos
, el
.release());
20533 return manage(res
);
20536 isl::checked::union_set_list
union_set_list::set_at(int index
, isl::checked::union_set el
) const
20538 auto res
= isl_union_set_list_set_at(copy(), index
, el
.release());
20539 return manage(res
);
20542 class size
union_set_list::size() const
20544 auto res
= isl_union_set_list_size(get());
20545 return manage(res
);
20548 inline std::ostream
&operator<<(std::ostream
&os
, const union_set_list
&obj
)
20550 char *str
= isl_union_set_list_to_str(obj
.get());
20552 os
.setstate(std::ios_base::badbit
);
20560 // implementations for isl::val
20561 val
manage(__isl_take isl_val
*ptr
) {
20564 val
manage_copy(__isl_keep isl_val
*ptr
) {
20565 ptr
= isl_val_copy(ptr
);
20569 val::val(__isl_take isl_val
*ptr
)
20575 val::val(const val
&obj
)
20581 val::val(isl::checked::ctx ctx
, long i
)
20583 auto res
= isl_val_int_from_si(ctx
.release(), i
);
20587 val::val(isl::checked::ctx ctx
, const std::string
&str
)
20589 auto res
= isl_val_read_from_str(ctx
.release(), str
.c_str());
20593 val
&val::operator=(val obj
) {
20594 std::swap(this->ptr
, obj
.ptr
);
20603 __isl_give isl_val
*val::copy() const & {
20604 return isl_val_copy(ptr
);
20607 __isl_keep isl_val
*val::get() const {
20611 __isl_give isl_val
*val::release() {
20612 isl_val
*tmp
= ptr
;
20617 bool val::is_null() const {
20618 return ptr
== nullptr;
20621 isl::checked::ctx
val::ctx() const {
20622 return isl::checked::ctx(isl_val_get_ctx(ptr
));
20625 isl::checked::val
val::abs() const
20627 auto res
= isl_val_abs(copy());
20628 return manage(res
);
20631 boolean
val::abs_eq(const isl::checked::val
&v2
) const
20633 auto res
= isl_val_abs_eq(get(), v2
.get());
20634 return manage(res
);
20637 boolean
val::abs_eq(long v2
) const
20639 return this->abs_eq(isl::checked::val(ctx(), v2
));
20642 isl::checked::val
val::add(isl::checked::val v2
) const
20644 auto res
= isl_val_add(copy(), v2
.release());
20645 return manage(res
);
20648 isl::checked::val
val::add(long v2
) const
20650 return this->add(isl::checked::val(ctx(), v2
));
20653 isl::checked::val
val::ceil() const
20655 auto res
= isl_val_ceil(copy());
20656 return manage(res
);
20659 int val::cmp_si(long i
) const
20661 auto res
= isl_val_cmp_si(get(), i
);
20665 long val::den_si() const
20667 auto res
= isl_val_get_den_si(get());
20671 long val::get_den_si() const
20676 isl::checked::val
val::div(isl::checked::val v2
) const
20678 auto res
= isl_val_div(copy(), v2
.release());
20679 return manage(res
);
20682 isl::checked::val
val::div(long v2
) const
20684 return this->div(isl::checked::val(ctx(), v2
));
20687 boolean
val::eq(const isl::checked::val
&v2
) const
20689 auto res
= isl_val_eq(get(), v2
.get());
20690 return manage(res
);
20693 boolean
val::eq(long v2
) const
20695 return this->eq(isl::checked::val(ctx(), v2
));
20698 isl::checked::val
val::floor() const
20700 auto res
= isl_val_floor(copy());
20701 return manage(res
);
20704 isl::checked::val
val::gcd(isl::checked::val v2
) const
20706 auto res
= isl_val_gcd(copy(), v2
.release());
20707 return manage(res
);
20710 isl::checked::val
val::gcd(long v2
) const
20712 return this->gcd(isl::checked::val(ctx(), v2
));
20715 boolean
val::ge(const isl::checked::val
&v2
) const
20717 auto res
= isl_val_ge(get(), v2
.get());
20718 return manage(res
);
20721 boolean
val::ge(long v2
) const
20723 return this->ge(isl::checked::val(ctx(), v2
));
20726 boolean
val::gt(const isl::checked::val
&v2
) const
20728 auto res
= isl_val_gt(get(), v2
.get());
20729 return manage(res
);
20732 boolean
val::gt(long v2
) const
20734 return this->gt(isl::checked::val(ctx(), v2
));
20737 isl::checked::val
val::infty(isl::checked::ctx ctx
)
20739 auto res
= isl_val_infty(ctx
.release());
20740 return manage(res
);
20743 isl::checked::val
val::inv() const
20745 auto res
= isl_val_inv(copy());
20746 return manage(res
);
20749 boolean
val::is_divisible_by(const isl::checked::val
&v2
) const
20751 auto res
= isl_val_is_divisible_by(get(), v2
.get());
20752 return manage(res
);
20755 boolean
val::is_divisible_by(long v2
) const
20757 return this->is_divisible_by(isl::checked::val(ctx(), v2
));
20760 boolean
val::is_infty() const
20762 auto res
= isl_val_is_infty(get());
20763 return manage(res
);
20766 boolean
val::is_int() const
20768 auto res
= isl_val_is_int(get());
20769 return manage(res
);
20772 boolean
val::is_nan() const
20774 auto res
= isl_val_is_nan(get());
20775 return manage(res
);
20778 boolean
val::is_neg() const
20780 auto res
= isl_val_is_neg(get());
20781 return manage(res
);
20784 boolean
val::is_neginfty() const
20786 auto res
= isl_val_is_neginfty(get());
20787 return manage(res
);
20790 boolean
val::is_negone() const
20792 auto res
= isl_val_is_negone(get());
20793 return manage(res
);
20796 boolean
val::is_nonneg() const
20798 auto res
= isl_val_is_nonneg(get());
20799 return manage(res
);
20802 boolean
val::is_nonpos() const
20804 auto res
= isl_val_is_nonpos(get());
20805 return manage(res
);
20808 boolean
val::is_one() const
20810 auto res
= isl_val_is_one(get());
20811 return manage(res
);
20814 boolean
val::is_pos() const
20816 auto res
= isl_val_is_pos(get());
20817 return manage(res
);
20820 boolean
val::is_rat() const
20822 auto res
= isl_val_is_rat(get());
20823 return manage(res
);
20826 boolean
val::is_zero() const
20828 auto res
= isl_val_is_zero(get());
20829 return manage(res
);
20832 boolean
val::le(const isl::checked::val
&v2
) const
20834 auto res
= isl_val_le(get(), v2
.get());
20835 return manage(res
);
20838 boolean
val::le(long v2
) const
20840 return this->le(isl::checked::val(ctx(), v2
));
20843 boolean
val::lt(const isl::checked::val
&v2
) const
20845 auto res
= isl_val_lt(get(), v2
.get());
20846 return manage(res
);
20849 boolean
val::lt(long v2
) const
20851 return this->lt(isl::checked::val(ctx(), v2
));
20854 isl::checked::val
val::max(isl::checked::val v2
) const
20856 auto res
= isl_val_max(copy(), v2
.release());
20857 return manage(res
);
20860 isl::checked::val
val::max(long v2
) const
20862 return this->max(isl::checked::val(ctx(), v2
));
20865 isl::checked::val
val::min(isl::checked::val v2
) const
20867 auto res
= isl_val_min(copy(), v2
.release());
20868 return manage(res
);
20871 isl::checked::val
val::min(long v2
) const
20873 return this->min(isl::checked::val(ctx(), v2
));
20876 isl::checked::val
val::mod(isl::checked::val v2
) const
20878 auto res
= isl_val_mod(copy(), v2
.release());
20879 return manage(res
);
20882 isl::checked::val
val::mod(long v2
) const
20884 return this->mod(isl::checked::val(ctx(), v2
));
20887 isl::checked::val
val::mul(isl::checked::val v2
) const
20889 auto res
= isl_val_mul(copy(), v2
.release());
20890 return manage(res
);
20893 isl::checked::val
val::mul(long v2
) const
20895 return this->mul(isl::checked::val(ctx(), v2
));
20898 isl::checked::val
val::nan(isl::checked::ctx ctx
)
20900 auto res
= isl_val_nan(ctx
.release());
20901 return manage(res
);
20904 boolean
val::ne(const isl::checked::val
&v2
) const
20906 auto res
= isl_val_ne(get(), v2
.get());
20907 return manage(res
);
20910 boolean
val::ne(long v2
) const
20912 return this->ne(isl::checked::val(ctx(), v2
));
20915 isl::checked::val
val::neg() const
20917 auto res
= isl_val_neg(copy());
20918 return manage(res
);
20921 isl::checked::val
val::neginfty(isl::checked::ctx ctx
)
20923 auto res
= isl_val_neginfty(ctx
.release());
20924 return manage(res
);
20927 isl::checked::val
val::negone(isl::checked::ctx ctx
)
20929 auto res
= isl_val_negone(ctx
.release());
20930 return manage(res
);
20933 long val::num_si() const
20935 auto res
= isl_val_get_num_si(get());
20939 long val::get_num_si() const
20944 isl::checked::val
val::one(isl::checked::ctx ctx
)
20946 auto res
= isl_val_one(ctx
.release());
20947 return manage(res
);
20950 isl::checked::val
val::pow2() const
20952 auto res
= isl_val_pow2(copy());
20953 return manage(res
);
20956 int val::sgn() const
20958 auto res
= isl_val_sgn(get());
20962 isl::checked::val
val::sub(isl::checked::val v2
) const
20964 auto res
= isl_val_sub(copy(), v2
.release());
20965 return manage(res
);
20968 isl::checked::val
val::sub(long v2
) const
20970 return this->sub(isl::checked::val(ctx(), v2
));
20973 isl::checked::val_list
val::to_list() const
20975 auto res
= isl_val_to_list(copy());
20976 return manage(res
);
20979 isl::checked::val
val::trunc() const
20981 auto res
= isl_val_trunc(copy());
20982 return manage(res
);
20985 isl::checked::val
val::zero(isl::checked::ctx ctx
)
20987 auto res
= isl_val_zero(ctx
.release());
20988 return manage(res
);
20991 inline std::ostream
&operator<<(std::ostream
&os
, const val
&obj
)
20993 char *str
= isl_val_to_str(obj
.get());
20995 os
.setstate(std::ios_base::badbit
);
21003 // implementations for isl::val_list
21004 val_list
manage(__isl_take isl_val_list
*ptr
) {
21005 return val_list(ptr
);
21007 val_list
manage_copy(__isl_keep isl_val_list
*ptr
) {
21008 ptr
= isl_val_list_copy(ptr
);
21009 return val_list(ptr
);
21012 val_list::val_list(__isl_take isl_val_list
*ptr
)
21015 val_list::val_list()
21018 val_list::val_list(const val_list
&obj
)
21024 val_list::val_list(isl::checked::ctx ctx
, int n
)
21026 auto res
= isl_val_list_alloc(ctx
.release(), n
);
21030 val_list::val_list(isl::checked::val el
)
21032 auto res
= isl_val_list_from_val(el
.release());
21036 val_list::val_list(isl::checked::ctx ctx
, const std::string
&str
)
21038 auto res
= isl_val_list_read_from_str(ctx
.release(), str
.c_str());
21042 val_list
&val_list::operator=(val_list obj
) {
21043 std::swap(this->ptr
, obj
.ptr
);
21047 val_list::~val_list() {
21049 isl_val_list_free(ptr
);
21052 __isl_give isl_val_list
*val_list::copy() const & {
21053 return isl_val_list_copy(ptr
);
21056 __isl_keep isl_val_list
*val_list::get() const {
21060 __isl_give isl_val_list
*val_list::release() {
21061 isl_val_list
*tmp
= ptr
;
21066 bool val_list::is_null() const {
21067 return ptr
== nullptr;
21070 isl::checked::ctx
val_list::ctx() const {
21071 return isl::checked::ctx(isl_val_list_get_ctx(ptr
));
21074 isl::checked::val_list
val_list::add(isl::checked::val el
) const
21076 auto res
= isl_val_list_add(copy(), el
.release());
21077 return manage(res
);
21080 isl::checked::val_list
val_list::add(long el
) const
21082 return this->add(isl::checked::val(ctx(), el
));
21085 isl::checked::val
val_list::at(int index
) const
21087 auto res
= isl_val_list_get_at(get(), index
);
21088 return manage(res
);
21091 isl::checked::val
val_list::get_at(int index
) const
21096 isl::checked::val_list
val_list::clear() const
21098 auto res
= isl_val_list_clear(copy());
21099 return manage(res
);
21102 isl::checked::val_list
val_list::concat(isl::checked::val_list list2
) const
21104 auto res
= isl_val_list_concat(copy(), list2
.release());
21105 return manage(res
);
21108 isl::checked::val_list
val_list::drop(unsigned int first
, unsigned int n
) const
21110 auto res
= isl_val_list_drop(copy(), first
, n
);
21111 return manage(res
);
21114 stat
val_list::foreach(const std::function
<stat(isl::checked::val
)> &fn
) const
21117 std::function
<stat(isl::checked::val
)> func
;
21118 } fn_data
= { fn
};
21119 auto fn_lambda
= [](isl_val
*arg_0
, void *arg_1
) -> isl_stat
{
21120 auto *data
= static_cast<struct fn_data
*>(arg_1
);
21121 auto ret
= (data
->func
)(manage(arg_0
));
21122 return ret
.release();
21124 auto res
= isl_val_list_foreach(get(), fn_lambda
, &fn_data
);
21125 return manage(res
);
21128 stat
val_list::foreach_scc(const std::function
<boolean(isl::checked::val
, isl::checked::val
)> &follows
, const std::function
<stat(isl::checked::val_list
)> &fn
) const
21130 struct follows_data
{
21131 std::function
<boolean(isl::checked::val
, isl::checked::val
)> func
;
21132 } follows_data
= { follows
};
21133 auto follows_lambda
= [](isl_val
*arg_0
, isl_val
*arg_1
, void *arg_2
) -> isl_bool
{
21134 auto *data
= static_cast<struct follows_data
*>(arg_2
);
21135 auto ret
= (data
->func
)(manage_copy(arg_0
), manage_copy(arg_1
));
21136 return ret
.release();
21139 std::function
<stat(isl::checked::val_list
)> func
;
21140 } fn_data
= { fn
};
21141 auto fn_lambda
= [](isl_val_list
*arg_0
, void *arg_1
) -> isl_stat
{
21142 auto *data
= static_cast<struct fn_data
*>(arg_1
);
21143 auto ret
= (data
->func
)(manage(arg_0
));
21144 return ret
.release();
21146 auto res
= isl_val_list_foreach_scc(get(), follows_lambda
, &follows_data
, fn_lambda
, &fn_data
);
21147 return manage(res
);
21150 isl::checked::val_list
val_list::insert(unsigned int pos
, isl::checked::val el
) const
21152 auto res
= isl_val_list_insert(copy(), pos
, el
.release());
21153 return manage(res
);
21156 isl::checked::val_list
val_list::insert(unsigned int pos
, long el
) const
21158 return this->insert(pos
, isl::checked::val(ctx(), el
));
21161 isl::checked::val_list
val_list::set_at(int index
, isl::checked::val el
) const
21163 auto res
= isl_val_list_set_at(copy(), index
, el
.release());
21164 return manage(res
);
21167 isl::checked::val_list
val_list::set_at(int index
, long el
) const
21169 return this->set_at(index
, isl::checked::val(ctx(), el
));
21172 class size
val_list::size() const
21174 auto res
= isl_val_list_size(get());
21175 return manage(res
);
21178 inline std::ostream
&operator<<(std::ostream
&os
, const val_list
&obj
)
21180 char *str
= isl_val_list_to_str(obj
.get());
21182 os
.setstate(std::ios_base::badbit
);
21189 } // namespace checked
21192 #endif /* ISL_CPP_CHECKED */