Polly
23.0.0git
llvm-project
polly
lib
External
isl
include
isl
cpp-checked.h
Go to the documentation of this file.
1
/// These are automatically generated checked C++ bindings for isl.
2
///
3
/// isl is a library for computing with integer sets and maps described by
4
/// Presburger formulas. On top of this, isl provides various tools for
5
/// polyhedral compilation, ranging from dependence analysis over scheduling
6
/// to AST generation.
7
8
#ifndef ISL_CPP_CHECKED
9
#define ISL_CPP_CHECKED
10
11
#include <stdio.h>
12
#include <stdlib.h>
13
14
#include <functional>
15
#include <memory>
16
#include <ostream>
17
#include <string>
18
#include <type_traits>
19
20
#if __cplusplus >= 201703L
21
#include <any>
22
#include <optional>
23
#endif
24
25
namespace
isl
{
26
namespace
checked
{
27
28
#define ISLPP_STRINGIZE_(X) #X
29
#define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
30
31
#define ISLPP_ASSERT(test, message) \
32
do { \
33
if (test) \
34
break; \
35
fputs("Assertion \"" #test "\" failed at " __FILE__ \
36
":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \
37
stderr); \
38
abort(); \
39
} while (0)
40
41
/* Class used to check that isl::checked::boolean,
42
* isl::checked::stat and isl::checked::size values are checked for errors.
43
*/
44
struct
checker
{
45
bool
checked
=
false
;
46
~checker
() {
47
ISLPP_ASSERT
(
checked
,
"IMPLEMENTATION ERROR: Unchecked state"
);
48
}
49
};
50
51
class
boolean
{
52
private
:
53
mutable
std::shared_ptr<checker>
check
= std::make_shared<checker>();
54
isl_bool
val
;
55
56
friend
boolean
manage
(
isl_bool
val
);
57
boolean
(
isl_bool
val
):
val
(
val
) {}
58
public
:
59
static
boolean
error
() {
60
return
boolean
(
isl_bool_error
);
61
}
62
boolean
()
63
:
val
(
isl_bool_error
) {}
64
65
/* implicit */
boolean
(
bool
val
)
66
:
val
(
val
?
isl_bool_true
:
isl_bool_false
) {}
67
68
isl_bool
release
() {
69
auto
tmp =
val
;
70
val
=
isl_bool_error
;
71
check
->checked =
true
;
72
return
tmp;
73
}
74
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
; }
78
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"
);
82
return
is_true
();
83
}
84
85
boolean
negate
() {
86
if
(
val
==
isl_bool_true
)
87
val
=
isl_bool_false
;
88
else
if
(
val
==
isl_bool_false
)
89
val
=
isl_bool_true
;
90
return
*
this
;
91
}
92
93
boolean
operator!
()
const
{
94
return
boolean
(*this).
negate
();
95
}
96
};
97
98
inline
boolean
manage
(
isl_bool
val
) {
99
return
boolean
(
val
);
100
}
101
102
class
ctx
{
103
isl_ctx
*
ptr
;
104
public
:
105
/* implicit */
ctx
(
isl_ctx
*
ctx
) :
ptr
(
ctx
) {}
106
isl_ctx
*
release
() {
107
auto
tmp =
ptr
;
108
ptr
=
nullptr
;
109
return
tmp;
110
}
111
isl_ctx
*
get
() {
112
return
ptr
;
113
}
114
#if __cplusplus >= 201703L
115
static
void
free_user
(
void
*
user
) {
116
std::any *
p
=
static_cast<
std::any *
>
(
user
);
117
delete
p
;
118
}
119
#endif
120
};
121
122
/* Class encapsulating an isl_stat value.
123
*/
124
class
stat
{
125
private
:
126
mutable
std::shared_ptr<checker>
check
= std::make_shared<checker>();
127
isl_stat
val
;
128
129
friend
stat
manage
(
isl_stat
val
);
130
stat
(
isl_stat
val
) :
val
(
val
) {}
131
public
:
132
static
stat
ok
() {
133
return
stat
(
isl_stat_ok
);
134
}
135
static
stat
error
() {
136
return
stat
(
isl_stat_error
);
137
}
138
stat
() :
val
(
isl_stat_error
) {}
139
140
isl_stat
release
() {
141
check
->checked =
true
;
142
return
val
;
143
}
144
145
bool
is_error
()
const
{
146
check
->checked =
true
;
147
return
val
==
isl_stat_error
;
148
}
149
bool
is_ok
()
const
{
150
check
->checked =
true
;
151
return
val
==
isl_stat_ok
;
152
}
153
};
154
155
inline
stat
manage
(
isl_stat
val
)
156
{
157
return
stat
(
val
);
158
}
159
160
/* Class encapsulating an isl_size value.
161
*/
162
class
size
{
163
private
:
164
mutable
std::shared_ptr<checker>
check
= std::make_shared<checker>();
165
isl_size
val
;
166
167
friend
size
manage
(
isl_size
val
);
168
size
(
isl_size
val
) :
val
(
val
) {}
169
public
:
170
size
() :
val
(
isl_size_error
) {}
171
172
isl_size
release
() {
173
auto
tmp =
val
;
174
val
=
isl_size_error
;
175
check
->checked =
true
;
176
return
tmp;
177
}
178
179
bool
is_error
()
const
{
180
check
->checked =
true
;
181
return
val
==
isl_size_error
;
182
}
183
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"
);
189
return
val
;
190
}
191
};
192
193
inline
size
manage
(
isl_size
val
)
194
{
195
return
size
(
val
);
196
}
197
198
}
199
}
// namespace isl
200
201
#include <
isl/id.h
>
202
#include <
isl/id_to_id.h
>
203
#include <
isl/space.h
>
204
#include <
isl/val.h
>
205
#include <
isl/aff.h
>
206
#include <
isl/set.h
>
207
#include <
isl/map.h
>
208
#include <
isl/ilp.h
>
209
#include <
isl/union_set.h
>
210
#include <
isl/union_map.h
>
211
#include <
isl/flow.h
>
212
#include <
isl/schedule.h
>
213
#include <
isl/schedule_node.h
>
214
#include <
isl/ast_build.h
>
215
#include <
isl/fixed_box.h
>
216
217
namespace
isl
{
218
219
namespace
checked {
220
221
// forward declarations
222
class
aff
;
223
class
aff_list;
224
class
ast_build;
225
class
ast_expr;
226
class
ast_expr_id;
227
class
ast_expr_int;
228
class
ast_expr_op;
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;
255
class
ast_node;
256
class
ast_node_block;
257
class
ast_node_for;
258
class
ast_node_if;
259
class
ast_node_list;
260
class
ast_node_mark;
261
class
ast_node_user;
262
class
basic_map;
263
class
basic_set;
264
class
fixed_box;
265
class
id
;
266
class
id_list;
267
class
id_to_ast_expr;
268
class
id_to_id;
269
class
map
;
270
class
map_list;
271
class
multi_aff;
272
class
multi_id;
273
class
multi_pw_aff;
274
class
multi_union_pw_aff;
275
class
multi_val;
276
class
point
;
277
class
pw_aff;
278
class
pw_aff_list;
279
class
pw_multi_aff;
280
class
pw_multi_aff_list;
281
class
schedule
;
282
class
schedule_constraints;
283
class
schedule_node;
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;
295
class
set
;
296
class
set_list;
297
class
space;
298
class
union_access_info;
299
class
union_flow;
300
class
union_map;
301
class
union_pw_aff;
302
class
union_pw_aff_list;
303
class
union_pw_multi_aff;
304
class
union_set;
305
class
union_set_list;
306
class
val
;
307
class
val_list;
308
309
// declarations for isl::aff
310
inline
aff
manage
(
__isl_take
isl_aff
*ptr);
311
inline
aff
manage_copy
(
__isl_keep
isl_aff
*ptr);
312
313
class
aff
{
314
friend
inline
aff
manage
(
__isl_take
isl_aff
*
ptr
);
315
friend
inline
aff
manage_copy
(
__isl_keep
isl_aff
*
ptr
);
316
317
protected
:
318
isl_aff
*
ptr
=
nullptr
;
319
320
inline
explicit
aff
(
__isl_take
isl_aff
*
ptr
);
321
322
public
:
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
);
327
inline
~aff
();
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;
334
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
);
500
};
501
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
);
505
506
class
aff_list
{
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
);
509
510
protected
:
511
isl_aff_list *
ptr
=
nullptr
;
512
513
inline
explicit
aff_list
(
__isl_take
isl_aff_list *
ptr
);
514
515
public
:
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
);
522
inline
~aff_list
();
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;
529
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;
541
};
542
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
);
546
547
class
ast_build
{
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
);
550
551
protected
:
552
isl_ast_build
*
ptr
=
nullptr
;
553
554
inline
explicit
ast_build
(
__isl_take
isl_ast_build
*
ptr
);
555
556
public
:
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
);
561
inline
~ast_build
();
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;
568
569
private:
570
inline
ast_build
&
copy_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
;
573
};
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
);
577
public
:
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
;
590
};
591
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
);
595
596
class
ast_expr
{
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
);
599
600
protected
:
601
isl_ast_expr
*
ptr
=
nullptr
;
602
603
inline
explicit
ast_expr
(
__isl_take
isl_ast_expr
*
ptr
);
604
605
public
:
606
inline
/* implicit */
ast_expr
();
607
inline
/* implicit */
ast_expr
(
const
ast_expr
&
obj
);
608
inline
ast_expr
&
operator=
(
ast_expr
obj
);
609
inline
~ast_expr
();
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;
615
private:
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;
621
public:
622
template <class T> inline
boolean
isa
() const;
623
template <class T> inline T
as
() const;
624
inline
isl
::
checked
::
ctx
ctx
() const;
625
626
inline std::
string
to_C_str
() const;
627
};
628
629
// declarations for isl::ast_expr_id
630
631
class
ast_expr_id
: public
ast_expr
{
632
template
<
class
T>
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
;
636
637
protected
:
638
inline
explicit
ast_expr_id
(
__isl_take
isl_ast_expr
*
ptr
);
639
640
public
:
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
;
645
646
inline
isl::checked::id
id
()
const
;
647
inline
isl::checked::id
get_id
()
const
;
648
};
649
650
// declarations for isl::ast_expr_int
651
652
class
ast_expr_int
:
public
ast_expr
{
653
template
<
class
T>
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
;
657
658
protected
:
659
inline
explicit
ast_expr_int
(
__isl_take
isl_ast_expr
*
ptr
);
660
661
public
:
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
;
666
667
inline
isl::checked::val
val
()
const
;
668
inline
isl::checked::val
get_val
()
const
;
669
};
670
671
// declarations for isl::ast_expr_op
672
673
class
ast_expr_op
:
public
ast_expr
{
674
template
<
class
T>
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
;
678
679
protected
:
680
inline
explicit
ast_expr_op
(
__isl_take
isl_ast_expr
*
ptr
);
681
682
public
:
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
);
686
private
:
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
;
692
public
:
693
template
<
class
T>
inline
boolean
isa
()
const
;
694
template
<
class
T>
inline
T
as
()
const
;
695
inline
isl::checked::ctx
ctx
()
const
;
696
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
;
701
};
702
703
// declarations for isl::ast_expr_op_access
704
705
class
ast_expr_op_access
:
public
ast_expr_op
{
706
template
<
class
T>
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
;
710
711
protected
:
712
inline
explicit
ast_expr_op_access
(
__isl_take
isl_ast_expr
*
ptr
);
713
714
public
:
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
;
719
720
};
721
722
// declarations for isl::ast_expr_op_add
723
724
class
ast_expr_op_add
:
public
ast_expr_op
{
725
template
<
class
T>
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
;
729
730
protected
:
731
inline
explicit
ast_expr_op_add
(
__isl_take
isl_ast_expr
*
ptr
);
732
733
public
:
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
;
738
739
};
740
741
// declarations for isl::ast_expr_op_address_of
742
743
class
ast_expr_op_address_of
:
public
ast_expr_op
{
744
template
<
class
T>
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
;
748
749
protected
:
750
inline
explicit
ast_expr_op_address_of
(
__isl_take
isl_ast_expr
*
ptr
);
751
752
public
:
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
;
757
758
};
759
760
// declarations for isl::ast_expr_op_and
761
762
class
ast_expr_op_and
:
public
ast_expr_op
{
763
template
<
class
T>
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
;
767
768
protected
:
769
inline
explicit
ast_expr_op_and
(
__isl_take
isl_ast_expr
*
ptr
);
770
771
public
:
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
;
776
777
};
778
779
// declarations for isl::ast_expr_op_and_then
780
781
class
ast_expr_op_and_then
:
public
ast_expr_op
{
782
template
<
class
T>
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
;
786
787
protected
:
788
inline
explicit
ast_expr_op_and_then
(
__isl_take
isl_ast_expr
*
ptr
);
789
790
public
:
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
;
795
796
};
797
798
// declarations for isl::ast_expr_op_call
799
800
class
ast_expr_op_call
:
public
ast_expr_op
{
801
template
<
class
T>
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
;
805
806
protected
:
807
inline
explicit
ast_expr_op_call
(
__isl_take
isl_ast_expr
*
ptr
);
808
809
public
:
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
;
814
815
};
816
817
// declarations for isl::ast_expr_op_cond
818
819
class
ast_expr_op_cond
:
public
ast_expr_op
{
820
template
<
class
T>
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
;
824
825
protected
:
826
inline
explicit
ast_expr_op_cond
(
__isl_take
isl_ast_expr
*
ptr
);
827
828
public
:
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
;
833
834
};
835
836
// declarations for isl::ast_expr_op_div
837
838
class
ast_expr_op_div
:
public
ast_expr_op
{
839
template
<
class
T>
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
;
843
844
protected
:
845
inline
explicit
ast_expr_op_div
(
__isl_take
isl_ast_expr
*
ptr
);
846
847
public
:
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
;
852
853
};
854
855
// declarations for isl::ast_expr_op_eq
856
857
class
ast_expr_op_eq
:
public
ast_expr_op
{
858
template
<
class
T>
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
;
862
863
protected
:
864
inline
explicit
ast_expr_op_eq
(
__isl_take
isl_ast_expr
*
ptr
);
865
866
public
:
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
;
871
872
};
873
874
// declarations for isl::ast_expr_op_fdiv_q
875
876
class
ast_expr_op_fdiv_q
:
public
ast_expr_op
{
877
template
<
class
T>
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
;
881
882
protected
:
883
inline
explicit
ast_expr_op_fdiv_q
(
__isl_take
isl_ast_expr
*
ptr
);
884
885
public
:
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
;
890
891
};
892
893
// declarations for isl::ast_expr_op_ge
894
895
class
ast_expr_op_ge
:
public
ast_expr_op
{
896
template
<
class
T>
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
;
900
901
protected
:
902
inline
explicit
ast_expr_op_ge
(
__isl_take
isl_ast_expr
*
ptr
);
903
904
public
:
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
;
909
910
};
911
912
// declarations for isl::ast_expr_op_gt
913
914
class
ast_expr_op_gt
:
public
ast_expr_op
{
915
template
<
class
T>
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
;
919
920
protected
:
921
inline
explicit
ast_expr_op_gt
(
__isl_take
isl_ast_expr
*
ptr
);
922
923
public
:
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
;
928
929
};
930
931
// declarations for isl::ast_expr_op_le
932
933
class
ast_expr_op_le
:
public
ast_expr_op
{
934
template
<
class
T>
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
;
938
939
protected
:
940
inline
explicit
ast_expr_op_le
(
__isl_take
isl_ast_expr
*
ptr
);
941
942
public
:
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
;
947
948
};
949
950
// declarations for isl::ast_expr_op_lt
951
952
class
ast_expr_op_lt
:
public
ast_expr_op
{
953
template
<
class
T>
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
;
957
958
protected
:
959
inline
explicit
ast_expr_op_lt
(
__isl_take
isl_ast_expr
*
ptr
);
960
961
public
:
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
;
966
967
};
968
969
// declarations for isl::ast_expr_op_max
970
971
class
ast_expr_op_max
:
public
ast_expr_op
{
972
template
<
class
T>
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
;
976
977
protected
:
978
inline
explicit
ast_expr_op_max
(
__isl_take
isl_ast_expr
*
ptr
);
979
980
public
:
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
;
985
986
};
987
988
// declarations for isl::ast_expr_op_member
989
990
class
ast_expr_op_member
:
public
ast_expr_op
{
991
template
<
class
T>
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
;
995
996
protected
:
997
inline
explicit
ast_expr_op_member
(
__isl_take
isl_ast_expr
*
ptr
);
998
999
public
:
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
;
1004
1005
};
1006
1007
// declarations for isl::ast_expr_op_min
1008
1009
class
ast_expr_op_min
:
public
ast_expr_op
{
1010
template
<
class
T>
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
;
1014
1015
protected
:
1016
inline
explicit
ast_expr_op_min
(
__isl_take
isl_ast_expr
*
ptr
);
1017
1018
public
:
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
;
1023
1024
};
1025
1026
// declarations for isl::ast_expr_op_minus
1027
1028
class
ast_expr_op_minus
:
public
ast_expr_op
{
1029
template
<
class
T>
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
;
1033
1034
protected
:
1035
inline
explicit
ast_expr_op_minus
(
__isl_take
isl_ast_expr
*
ptr
);
1036
1037
public
:
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
;
1042
1043
};
1044
1045
// declarations for isl::ast_expr_op_mul
1046
1047
class
ast_expr_op_mul
:
public
ast_expr_op
{
1048
template
<
class
T>
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
;
1052
1053
protected
:
1054
inline
explicit
ast_expr_op_mul
(
__isl_take
isl_ast_expr
*
ptr
);
1055
1056
public
:
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
;
1061
1062
};
1063
1064
// declarations for isl::ast_expr_op_or
1065
1066
class
ast_expr_op_or
:
public
ast_expr_op
{
1067
template
<
class
T>
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
;
1071
1072
protected
:
1073
inline
explicit
ast_expr_op_or
(
__isl_take
isl_ast_expr
*
ptr
);
1074
1075
public
:
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
;
1080
1081
};
1082
1083
// declarations for isl::ast_expr_op_or_else
1084
1085
class
ast_expr_op_or_else
:
public
ast_expr_op
{
1086
template
<
class
T>
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
;
1090
1091
protected
:
1092
inline
explicit
ast_expr_op_or_else
(
__isl_take
isl_ast_expr
*
ptr
);
1093
1094
public
:
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
;
1099
1100
};
1101
1102
// declarations for isl::ast_expr_op_pdiv_q
1103
1104
class
ast_expr_op_pdiv_q
:
public
ast_expr_op
{
1105
template
<
class
T>
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
;
1109
1110
protected
:
1111
inline
explicit
ast_expr_op_pdiv_q
(
__isl_take
isl_ast_expr
*
ptr
);
1112
1113
public
:
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
;
1118
1119
};
1120
1121
// declarations for isl::ast_expr_op_pdiv_r
1122
1123
class
ast_expr_op_pdiv_r
:
public
ast_expr_op
{
1124
template
<
class
T>
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
;
1128
1129
protected
:
1130
inline
explicit
ast_expr_op_pdiv_r
(
__isl_take
isl_ast_expr
*
ptr
);
1131
1132
public
:
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
;
1137
1138
};
1139
1140
// declarations for isl::ast_expr_op_select
1141
1142
class
ast_expr_op_select
:
public
ast_expr_op
{
1143
template
<
class
T>
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
;
1147
1148
protected
:
1149
inline
explicit
ast_expr_op_select
(
__isl_take
isl_ast_expr
*
ptr
);
1150
1151
public
:
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
;
1156
1157
};
1158
1159
// declarations for isl::ast_expr_op_sub
1160
1161
class
ast_expr_op_sub
:
public
ast_expr_op
{
1162
template
<
class
T>
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
;
1166
1167
protected
:
1168
inline
explicit
ast_expr_op_sub
(
__isl_take
isl_ast_expr
*
ptr
);
1169
1170
public
:
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
;
1175
1176
};
1177
1178
// declarations for isl::ast_expr_op_zdiv_r
1179
1180
class
ast_expr_op_zdiv_r
:
public
ast_expr_op
{
1181
template
<
class
T>
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
;
1185
1186
protected
:
1187
inline
explicit
ast_expr_op_zdiv_r
(
__isl_take
isl_ast_expr
*
ptr
);
1188
1189
public
:
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
;
1194
1195
};
1196
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);
1200
1201
class
ast_node
{
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
);
1204
1205
protected
:
1206
isl_ast_node
*
ptr
=
nullptr
;
1207
1208
inline
explicit
ast_node
(
__isl_take
isl_ast_node
*
ptr
);
1209
1210
public
:
1211
inline
/* implicit */
ast_node
();
1212
inline
/* implicit */
ast_node
(
const
ast_node
&
obj
);
1213
inline
ast_node
&
operator=
(
ast_node
obj
);
1214
inline
~ast_node
();
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;
1220
private:
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;
1226
public:
1227
template <class T> inline
boolean
isa
() const;
1228
template <class T> inline T
as
() const;
1229
inline
isl
::
checked
::
ctx
ctx
() const;
1230
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;
1234
};
1235
1236
// declarations for isl::ast_node_block
1237
1238
class
ast_node_block
: public
ast_node
{
1239
template
<
class
T>
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
;
1243
1244
protected
:
1245
inline
explicit
ast_node_block
(
__isl_take
isl_ast_node
*
ptr
);
1246
1247
public
:
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
;
1253
1254
inline
isl::checked::ast_node_list
children
()
const
;
1255
inline
isl::checked::ast_node_list
get_children
()
const
;
1256
};
1257
1258
// declarations for isl::ast_node_for
1259
1260
class
ast_node_for
:
public
ast_node
{
1261
template
<
class
T>
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
;
1265
1266
protected
:
1267
inline
explicit
ast_node_for
(
__isl_take
isl_ast_node
*
ptr
);
1268
1269
public
:
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
;
1274
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
;
1286
};
1287
1288
// declarations for isl::ast_node_if
1289
1290
class
ast_node_if
:
public
ast_node
{
1291
template
<
class
T>
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
;
1295
1296
protected
:
1297
inline
explicit
ast_node_if
(
__isl_take
isl_ast_node
*
ptr
);
1298
1299
public
:
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
;
1304
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
;
1312
};
1313
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);
1317
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
);
1321
1322
protected
:
1323
isl_ast_node_list *
ptr
=
nullptr
;
1324
1325
inline
explicit
ast_node_list
(
__isl_take
isl_ast_node_list *
ptr
);
1326
1327
public
:
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;
1340
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;
1352
};
1353
1354
// declarations for isl::ast_node_mark
1355
1356
class
ast_node_mark
: public
ast_node
{
1357
template
<
class
T>
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
;
1361
1362
protected
:
1363
inline
explicit
ast_node_mark
(
__isl_take
isl_ast_node
*
ptr
);
1364
1365
public
:
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
;
1370
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
;
1375
};
1376
1377
// declarations for isl::ast_node_user
1378
1379
class
ast_node_user
:
public
ast_node
{
1380
template
<
class
T>
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
;
1384
1385
protected
:
1386
inline
explicit
ast_node_user
(
__isl_take
isl_ast_node
*
ptr
);
1387
1388
public
:
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
;
1394
1395
inline
isl::checked::ast_expr
expr
()
const
;
1396
inline
isl::checked::ast_expr
get_expr
()
const
;
1397
};
1398
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);
1402
1403
class
basic_map
{
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
);
1406
1407
protected
:
1408
isl_basic_map
*
ptr
=
nullptr
;
1409
1410
inline
explicit
basic_map
(
__isl_take
isl_basic_map
*
ptr
);
1411
1412
public
:
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;
1424
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
&
params
) 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;
1580
};
1581
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
);
1585
1586
class
basic_set
{
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
);
1589
1590
protected
:
1591
isl_basic_set
*
ptr
=
nullptr
;
1592
1593
inline
explicit
basic_set
(
__isl_take
isl_basic_set
*
ptr
);
1594
1595
public
:
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;
1608
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
&
params
) 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;
1714
};
1715
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
);
1719
1720
class
fixed_box
{
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
);
1723
1724
protected
:
1725
isl_fixed_box
*
ptr
=
nullptr
;
1726
1727
inline
explicit
fixed_box
(
__isl_take
isl_fixed_box
*
ptr
);
1728
1729
public
:
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;
1741
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
boolean
plain_is_equal
(const
isl
::
checked
::
fixed_box
&box2) const;
1746
inline
isl
::
checked
::
multi_val
size
() const;
1747
inline
isl
::
checked
::
multi_val
get_size
() const;
1748
inline
isl
::
checked
::
space
space
() const;
1749
inline
isl
::
checked
::
space
get_space
() const;
1750
};
1751
1752
// declarations for isl::id
1753
inline
id
manage
(
__isl_take
isl_id
*
ptr
);
1754
inline
id
manage_copy
(
__isl_keep
isl_id
*
ptr
);
1755
1756
class
id
{
1757
friend
inline
id
manage
(
__isl_take
isl_id
*
ptr
);
1758
friend
inline
id
manage_copy
(
__isl_keep
isl_id
*
ptr
);
1759
1760
protected
:
1761
isl_id
*
ptr
=
nullptr
;
1762
1763
inline
explicit
id
(
__isl_take
isl_id
*
ptr
);
1764
1765
public
:
1766
inline
/* implicit */
id
();
1767
inline
/* implicit */
id
(
const
id
&
obj
);
1768
inline
explicit
id
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
1769
inline
id
&
operator=
(
id
obj
);
1770
inline
~id
();
1771
inline
__isl_give
isl_id
*
copy
() const &;
1772
inline
__isl_give
isl_id
*
copy
() && = delete;
1773
inline
__isl_keep
isl_id
*
get
() const;
1774
inline
__isl_give
isl_id
*
release
();
1775
inline
bool
is_null
() const;
1776
inline
isl
::
checked
::
ctx
ctx
() const;
1777
1778
inline std::
string
name
() const;
1779
inline std::
string
get_name
() const;
1780
inline
isl
::
checked
::
id_list
to_list
() const;
1781
1782
#if __cplusplus >= 201703L
1783
inline
explicit
id
(
isl::checked::ctx
ctx
,
const
std::string &
str
,
const
std::any &
any
);
1784
template
<
class
T>
1785
std::optional<T> try_user()
const
;
1786
template
<
class
T>
1787
T
user
()
const
;
1788
#endif
1789
};
1790
1791
// declarations for isl::id_list
1792
inline
id_list
manage
(
__isl_take
isl_id_list *ptr);
1793
inline
id_list
manage_copy
(
__isl_keep
isl_id_list *ptr);
1794
1795
class
id_list
{
1796
friend
inline
id_list
manage
(
__isl_take
isl_id_list *
ptr
);
1797
friend
inline
id_list
manage_copy
(
__isl_keep
isl_id_list *
ptr
);
1798
1799
protected
:
1800
isl_id_list *
ptr
=
nullptr
;
1801
1802
inline
explicit
id_list
(
__isl_take
isl_id_list *
ptr
);
1803
1804
public
:
1805
inline
/* implicit */
id_list
();
1806
inline
/* implicit */
id_list
(
const
id_list
&
obj
);
1807
inline
explicit
id_list
(
isl::checked::ctx
ctx
,
int
n
);
1808
inline
explicit
id_list
(
isl::checked::id
el);
1809
inline
explicit
id_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
1810
inline
id_list
&
operator=
(
id_list
obj
);
1811
inline
~id_list
();
1812
inline
__isl_give
isl_id_list *
copy
() const &;
1813
inline
__isl_give
isl_id_list *
copy
() && = delete;
1814
inline
__isl_keep
isl_id_list *
get
() const;
1815
inline
__isl_give
isl_id_list *
release
();
1816
inline
bool
is_null
() const;
1817
inline
isl
::
checked
::
ctx
ctx
() const;
1818
1819
inline
isl
::
checked
::
id_list
add
(
isl
::
checked
::
id
el) const;
1820
inline
isl
::
checked
::
id_list
add
(const std::
string
&el) const;
1821
inline
isl
::
checked
::
id
at
(
int
index) const;
1822
inline
isl
::
checked
::
id
get_at
(
int
index) const;
1823
inline
isl
::
checked
::
id_list
clear
() const;
1824
inline
isl
::
checked
::
id_list
concat
(
isl
::
checked
::
id_list
list2) const;
1825
inline
isl
::
checked
::
id_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
1826
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
id
)> &
fn
) const;
1827
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;
1828
inline
isl
::
checked
::
id_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
id
el) const;
1829
inline
isl
::
checked
::
id_list
insert
(
unsigned
int
pos
, const std::
string
&el) const;
1830
inline
isl
::
checked
::
id_list
set_at
(
int
index,
isl
::
checked
::
id
el) const;
1831
inline
isl
::
checked
::
id_list
set_at
(
int
index, const std::
string
&el) const;
1832
inline class
size
size
() const;
1833
};
1834
1835
// declarations for isl::id_to_ast_expr
1836
inline
id_to_ast_expr
manage
(
__isl_take
isl_id_to_ast_expr *
ptr
);
1837
inline
id_to_ast_expr
manage_copy
(
__isl_keep
isl_id_to_ast_expr *
ptr
);
1838
1839
class
id_to_ast_expr
{
1840
friend
inline
id_to_ast_expr
manage
(
__isl_take
isl_id_to_ast_expr *
ptr
);
1841
friend
inline
id_to_ast_expr
manage_copy
(
__isl_keep
isl_id_to_ast_expr *
ptr
);
1842
1843
protected
:
1844
isl_id_to_ast_expr *
ptr
=
nullptr
;
1845
1846
inline
explicit
id_to_ast_expr
(
__isl_take
isl_id_to_ast_expr *
ptr
);
1847
1848
public
:
1849
inline
/* implicit */
id_to_ast_expr
();
1850
inline
/* implicit */
id_to_ast_expr
(
const
id_to_ast_expr
&
obj
);
1851
inline
explicit
id_to_ast_expr
(
isl::checked::ctx
ctx
,
int
min_size
);
1852
inline
explicit
id_to_ast_expr
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
1853
inline
id_to_ast_expr
&
operator=
(
id_to_ast_expr
obj
);
1854
inline
~id_to_ast_expr
();
1855
inline
__isl_give
isl_id_to_ast_expr *
copy
() const &;
1856
inline
__isl_give
isl_id_to_ast_expr *
copy
() && = delete;
1857
inline
__isl_keep
isl_id_to_ast_expr *
get
() const;
1858
inline
__isl_give
isl_id_to_ast_expr *
release
();
1859
inline
bool
is_null
() const;
1860
inline
isl
::
checked
::
ctx
ctx
() const;
1861
1862
inline
boolean
is_equal
(const
isl
::
checked
::
id_to_ast_expr
&hmap2) const;
1863
inline
isl
::
checked
::
id_to_ast_expr
set
(
isl
::
checked
::
id
key
,
isl
::
checked
::
ast_expr
val
) const;
1864
inline
isl
::
checked
::
id_to_ast_expr
set
(const std::
string
&
key
, const
isl
::
checked
::
ast_expr
&
val
) const;
1865
};
1866
1867
// declarations for isl::id_to_id
1868
inline
id_to_id
manage
(
__isl_take
isl_id_to_id *
ptr
);
1869
inline
id_to_id
manage_copy
(
__isl_keep
isl_id_to_id *
ptr
);
1870
1871
class
id_to_id
{
1872
friend
inline
id_to_id
manage
(
__isl_take
isl_id_to_id *
ptr
);
1873
friend
inline
id_to_id
manage_copy
(
__isl_keep
isl_id_to_id *
ptr
);
1874
1875
protected
:
1876
isl_id_to_id *
ptr
=
nullptr
;
1877
1878
inline
explicit
id_to_id
(
__isl_take
isl_id_to_id *
ptr
);
1879
1880
public
:
1881
inline
/* implicit */
id_to_id
();
1882
inline
/* implicit */
id_to_id
(
const
id_to_id
&
obj
);
1883
inline
explicit
id_to_id
(
isl::checked::ctx
ctx
,
int
min_size
);
1884
inline
explicit
id_to_id
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
1885
inline
id_to_id
&
operator=
(
id_to_id
obj
);
1886
inline
~id_to_id
();
1887
inline
__isl_give
isl_id_to_id *
copy
() const &;
1888
inline
__isl_give
isl_id_to_id *
copy
() && = delete;
1889
inline
__isl_keep
isl_id_to_id *
get
() const;
1890
inline
__isl_give
isl_id_to_id *
release
();
1891
inline
bool
is_null
() const;
1892
inline
isl
::
checked
::
ctx
ctx
() const;
1893
1894
inline
boolean
is_equal
(const
isl
::
checked
::
id_to_id
&hmap2) const;
1895
inline
isl
::
checked
::
id_to_id
set
(
isl
::
checked
::
id
key
,
isl
::
checked
::
id
val
) const;
1896
inline
isl
::
checked
::
id_to_id
set
(const
isl
::
checked
::
id
&
key
, const std::
string
&
val
) const;
1897
inline
isl
::
checked
::
id_to_id
set
(const std::
string
&
key
, const
isl
::
checked
::
id
&
val
) const;
1898
inline
isl
::
checked
::
id_to_id
set
(const std::
string
&
key
, const std::
string
&
val
) const;
1899
};
1900
1901
// declarations for isl::map
1902
inline
map
manage
(
__isl_take
isl_map
*
ptr
);
1903
inline
map
manage_copy
(
__isl_keep
isl_map
*
ptr
);
1904
1905
class
map
{
1906
friend
inline
map
manage
(
__isl_take
isl_map
*
ptr
);
1907
friend
inline
map
manage_copy
(
__isl_keep
isl_map
*
ptr
);
1908
1909
protected
:
1910
isl_map
*
ptr
=
nullptr
;
1911
1912
inline
explicit
map
(
__isl_take
isl_map
*
ptr
);
1913
1914
public
:
1915
inline
/* implicit */
map
();
1916
inline
/* implicit */
map
(
const
map
&
obj
);
1917
inline
/* implicit */
map
(
isl::checked::basic_map
bmap);
1918
inline
explicit
map
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
1919
inline
map
&
operator=
(
map
obj
);
1920
inline
~map
();
1921
inline
__isl_give
isl_map
*
copy
() const &;
1922
inline
__isl_give
isl_map
*
copy
() && = delete;
1923
inline
__isl_keep
isl_map
*
get
() const;
1924
inline
__isl_give
isl_map
*
release
();
1925
inline
bool
is_null
() const;
1926
inline
isl
::
checked
::
ctx
ctx
() const;
1927
1928
inline
isl
::
checked
::
basic_map
affine_hull
() const;
1929
inline
isl
::
checked
::
map
apply_domain
(
isl
::
checked
::
map
map2
) const;
1930
inline
isl
::
checked
::
union_map
apply_domain
(const
isl
::
checked
::
union_map
&umap2) const;
1931
inline
isl
::
checked
::
map
apply_domain
(const
isl
::
checked
::
basic_map
&
map2
) const;
1932
inline
isl
::
checked
::
map
apply_range
(
isl
::
checked
::
map
map2
) const;
1933
inline
isl
::
checked
::
union_map
apply_range
(const
isl
::
checked
::
union_map
&umap2) const;
1934
inline
isl
::
checked
::
map
apply_range
(const
isl
::
checked
::
basic_map
&
map2
) const;
1935
inline
isl
::
checked
::
map
as_map
() const;
1936
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
1937
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
1938
inline
isl
::
checked
::
union_pw_multi_aff
as_union_pw_multi_aff
() const;
1939
inline
isl
::
checked
::
set
bind_domain
(
isl
::
checked
::
multi_id
tuple
) const;
1940
inline
isl
::
checked
::
set
bind_range
(
isl
::
checked
::
multi_id
tuple
) const;
1941
inline
isl
::
checked
::
map
coalesce
() const;
1942
inline
isl
::
checked
::
map
complement
() const;
1943
inline
isl
::
checked
::
union_map
compute_divs
() const;
1944
inline
isl
::
checked
::
map
curry
() const;
1945
inline
isl
::
checked
::
set
deltas
() const;
1946
inline
isl
::
checked
::
map
detect_equalities
() const;
1947
inline
isl
::
checked
::
set
domain
() const;
1948
inline
isl
::
checked
::
map
domain_factor_domain
() const;
1949
inline
isl
::
checked
::
map
domain_factor_range
() const;
1950
inline
isl
::
checked
::
union_map
domain_map
() const;
1951
inline
isl
::
checked
::
union_pw_multi_aff
domain_map_union_pw_multi_aff
() const;
1952
inline
isl
::
checked
::
map
domain_product
(
isl
::
checked
::
map
map2
) const;
1953
inline
isl
::
checked
::
union_map
domain_product
(const
isl
::
checked
::
union_map
&umap2) const;
1954
inline
isl
::
checked
::
map
domain_product
(const
isl
::
checked
::
basic_map
&
map2
) const;
1955
inline
isl
::
checked
::
map
domain_reverse
() const;
1956
inline class
size
domain_tuple_dim
() const;
1957
inline
isl
::
checked
::
id
domain_tuple_id
() const;
1958
inline
isl
::
checked
::
id
get_domain_tuple_id
() const;
1959
inline
isl
::
checked
::
map
drop_unused_params
() const;
1960
static inline
isl
::
checked
::
map
empty
(
isl
::
checked
::
space
space
);
1961
inline
isl
::
checked
::
map
eq_at
(
isl
::
checked
::
multi_pw_aff
mpa) const;
1962
inline
isl
::
checked
::
union_map
eq_at
(const
isl
::
checked
::
multi_union_pw_aff
&
mupa
) const;
1963
inline
isl
::
checked
::
map
eq_at
(const
isl
::
checked
::
aff
&mpa) const;
1964
inline
isl
::
checked
::
map
eq_at
(const
isl
::
checked
::
multi_aff
&mpa) const;
1965
inline
isl
::
checked
::
map
eq_at
(const
isl
::
checked
::
pw_aff
&mpa) const;
1966
inline
isl
::
checked
::
map
eq_at
(const
isl
::
checked
::
pw_multi_aff
&mpa) const;
1967
inline
boolean
every_map
(const std::function<
boolean
(
isl
::
checked
::
map
)> &
test
) const;
1968
inline
isl
::
checked
::
map
extract_map
(const
isl
::
checked
::
space
&
space
) const;
1969
inline
isl
::
checked
::
map
factor_domain
() const;
1970
inline
isl
::
checked
::
map
factor_range
() const;
1971
inline
isl
::
checked
::
map
fixed_power
(
isl
::
checked
::
val
exp) const;
1972
inline
isl
::
checked
::
map
fixed_power
(
long
exp) const;
1973
inline
isl
::
checked
::
map
flatten
() const;
1974
inline
isl
::
checked
::
map
flatten_domain
() const;
1975
inline
isl
::
checked
::
map
flatten_range
() const;
1976
inline
stat
foreach_basic_map
(const std::function<
stat
(
isl
::
checked
::
basic_map
)> &
fn
) const;
1977
inline
stat
foreach_map
(const std::function<
stat
(
isl
::
checked
::
map
)> &
fn
) const;
1978
inline
isl
::
checked
::
map
gist
(
isl
::
checked
::
map
context
) const;
1979
inline
isl
::
checked
::
union_map
gist
(const
isl
::
checked
::
union_map
&
context
) const;
1980
inline
isl
::
checked
::
map
gist
(const
isl
::
checked
::
basic_map
&
context
) const;
1981
inline
isl
::
checked
::
map
gist_domain
(
isl
::
checked
::
set
context
) const;
1982
inline
isl
::
checked
::
union_map
gist_domain
(const
isl
::
checked
::
union_set
&uset) const;
1983
inline
isl
::
checked
::
map
gist_domain
(const
isl
::
checked
::
basic_set
&
context
) const;
1984
inline
isl
::
checked
::
map
gist_domain
(const
isl
::
checked
::
point
&
context
) const;
1985
inline
isl
::
checked
::
map
gist_params
(
isl
::
checked
::
set
context
) const;
1986
inline
isl
::
checked
::
union_map
gist_range
(const
isl
::
checked
::
union_set
&uset) const;
1987
inline
boolean
has_domain_tuple_id
() const;
1988
inline
boolean
has_range_tuple_id
() const;
1989
inline
isl
::
checked
::
map
intersect
(
isl
::
checked
::
map
map2
) const;
1990
inline
isl
::
checked
::
union_map
intersect
(const
isl
::
checked
::
union_map
&umap2) const;
1991
inline
isl
::
checked
::
map
intersect
(const
isl
::
checked
::
basic_map
&
map2
) const;
1992
inline
isl
::
checked
::
map
intersect_domain
(
isl
::
checked
::
set
set
) const;
1993
inline
isl
::
checked
::
union_map
intersect_domain
(const
isl
::
checked
::
space
&
space
) const;
1994
inline
isl
::
checked
::
union_map
intersect_domain
(const
isl
::
checked
::
union_set
&uset) const;
1995
inline
isl
::
checked
::
map
intersect_domain
(const
isl
::
checked
::
basic_set
&
set
) const;
1996
inline
isl
::
checked
::
map
intersect_domain
(const
isl
::
checked
::
point
&
set
) const;
1997
inline
isl
::
checked
::
map
intersect_domain_factor_domain
(
isl
::
checked
::
map
factor) const;
1998
inline
isl
::
checked
::
union_map
intersect_domain_factor_domain
(const
isl
::
checked
::
union_map
&factor) const;
1999
inline
isl
::
checked
::
map
intersect_domain_factor_domain
(const
isl
::
checked
::
basic_map
&factor) const;
2000
inline
isl
::
checked
::
map
intersect_domain_factor_range
(
isl
::
checked
::
map
factor) const;
2001
inline
isl
::
checked
::
union_map
intersect_domain_factor_range
(const
isl
::
checked
::
union_map
&factor) const;
2002
inline
isl
::
checked
::
map
intersect_domain_factor_range
(const
isl
::
checked
::
basic_map
&factor) const;
2003
inline
isl
::
checked
::
map
intersect_domain_wrapped_domain
(
isl
::
checked
::
set
domain
) const;
2004
inline
isl
::
checked
::
union_map
intersect_domain_wrapped_domain
(const
isl
::
checked
::
union_set
&
domain
) const;
2005
inline
isl
::
checked
::
map
intersect_domain_wrapped_domain
(const
isl
::
checked
::
basic_set
&
domain
) const;
2006
inline
isl
::
checked
::
map
intersect_domain_wrapped_domain
(const
isl
::
checked
::
point
&
domain
) const;
2007
inline
isl
::
checked
::
map
intersect_params
(
isl
::
checked
::
set
params
) const;
2008
inline
isl
::
checked
::
map
intersect_range
(
isl
::
checked
::
set
set
) const;
2009
inline
isl
::
checked
::
union_map
intersect_range
(const
isl
::
checked
::
space
&
space
) const;
2010
inline
isl
::
checked
::
union_map
intersect_range
(const
isl
::
checked
::
union_set
&uset) const;
2011
inline
isl
::
checked
::
map
intersect_range
(const
isl
::
checked
::
basic_set
&
set
) const;
2012
inline
isl
::
checked
::
map
intersect_range
(const
isl
::
checked
::
point
&
set
) const;
2013
inline
isl
::
checked
::
map
intersect_range_factor_domain
(
isl
::
checked
::
map
factor) const;
2014
inline
isl
::
checked
::
union_map
intersect_range_factor_domain
(const
isl
::
checked
::
union_map
&factor) const;
2015
inline
isl
::
checked
::
map
intersect_range_factor_domain
(const
isl
::
checked
::
basic_map
&factor) const;
2016
inline
isl
::
checked
::
map
intersect_range_factor_range
(
isl
::
checked
::
map
factor) const;
2017
inline
isl
::
checked
::
union_map
intersect_range_factor_range
(const
isl
::
checked
::
union_map
&factor) const;
2018
inline
isl
::
checked
::
map
intersect_range_factor_range
(const
isl
::
checked
::
basic_map
&factor) const;
2019
inline
isl
::
checked
::
map
intersect_range_wrapped_domain
(
isl
::
checked
::
set
domain
) const;
2020
inline
isl
::
checked
::
union_map
intersect_range_wrapped_domain
(const
isl
::
checked
::
union_set
&
domain
) const;
2021
inline
isl
::
checked
::
map
intersect_range_wrapped_domain
(const
isl
::
checked
::
basic_set
&
domain
) const;
2022
inline
isl
::
checked
::
map
intersect_range_wrapped_domain
(const
isl
::
checked
::
point
&
domain
) const;
2023
inline
boolean
is_bijective
() const;
2024
inline
boolean
is_disjoint
(const
isl
::
checked
::
map
&
map2
) const;
2025
inline
boolean
is_disjoint
(const
isl
::
checked
::
union_map
&umap2) const;
2026
inline
boolean
is_disjoint
(const
isl
::
checked
::
basic_map
&
map2
) const;
2027
inline
boolean
is_empty
() const;
2028
inline
boolean
is_equal
(const
isl
::
checked
::
map
&
map2
) const;
2029
inline
boolean
is_equal
(const
isl
::
checked
::
union_map
&umap2) const;
2030
inline
boolean
is_equal
(const
isl
::
checked
::
basic_map
&
map2
) const;
2031
inline
boolean
is_injective
() const;
2032
inline
boolean
is_single_valued
() const;
2033
inline
boolean
is_strict_subset
(const
isl
::
checked
::
map
&
map2
) const;
2034
inline
boolean
is_strict_subset
(const
isl
::
checked
::
union_map
&umap2) const;
2035
inline
boolean
is_strict_subset
(const
isl
::
checked
::
basic_map
&
map2
) const;
2036
inline
boolean
is_subset
(const
isl
::
checked
::
map
&
map2
) const;
2037
inline
boolean
is_subset
(const
isl
::
checked
::
union_map
&umap2) const;
2038
inline
boolean
is_subset
(const
isl
::
checked
::
basic_map
&
map2
) const;
2039
inline
boolean
isa_map
() const;
2040
inline
isl
::
checked
::
map
lex_ge_at
(
isl
::
checked
::
multi_pw_aff
mpa) const;
2041
inline
isl
::
checked
::
map
lex_gt_at
(
isl
::
checked
::
multi_pw_aff
mpa) const;
2042
inline
isl
::
checked
::
map
lex_le_at
(
isl
::
checked
::
multi_pw_aff
mpa) const;
2043
inline
isl
::
checked
::
map
lex_lt_at
(
isl
::
checked
::
multi_pw_aff
mpa) const;
2044
inline
isl
::
checked
::
map
lexmax
() const;
2045
inline
isl
::
checked
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
2046
inline
isl
::
checked
::
map
lexmin
() const;
2047
inline
isl
::
checked
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
2048
inline
isl
::
checked
::
map
lower_bound
(
isl
::
checked
::
multi_pw_aff
lower) const;
2049
inline
isl
::
checked
::
map_list
map_list
() const;
2050
inline
isl
::
checked
::
multi_pw_aff
max_multi_pw_aff
() const;
2051
inline
isl
::
checked
::
multi_pw_aff
min_multi_pw_aff
() const;
2052
inline class
size
n_basic_map
() const;
2053
inline
isl
::
checked
::
set
params
() const;
2054
inline
isl
::
checked
::
basic_map
polyhedral_hull
() const;
2055
inline
isl
::
checked
::
map
preimage_domain
(
isl
::
checked
::
multi_aff
ma
) const;
2056
inline
isl
::
checked
::
map
preimage_domain
(
isl
::
checked
::
multi_pw_aff
mpa) const;
2057
inline
isl
::
checked
::
map
preimage_domain
(
isl
::
checked
::
pw_multi_aff
pma
) const;
2058
inline
isl
::
checked
::
union_map
preimage_domain
(const
isl
::
checked
::
union_pw_multi_aff
&upma) const;
2059
inline
isl
::
checked
::
map
preimage_range
(
isl
::
checked
::
multi_aff
ma
) const;
2060
inline
isl
::
checked
::
map
preimage_range
(
isl
::
checked
::
pw_multi_aff
pma
) const;
2061
inline
isl
::
checked
::
union_map
preimage_range
(const
isl
::
checked
::
union_pw_multi_aff
&upma) const;
2062
inline
isl
::
checked
::
map
product
(
isl
::
checked
::
map
map2
) const;
2063
inline
isl
::
checked
::
union_map
product
(const
isl
::
checked
::
union_map
&umap2) const;
2064
inline
isl
::
checked
::
map
product
(const
isl
::
checked
::
basic_map
&
map2
) const;
2065
inline
isl
::
checked
::
map
project_out_all_params
() const;
2066
inline
isl
::
checked
::
map
project_out_param
(
isl
::
checked
::
id
id
) const;
2067
inline
isl
::
checked
::
map
project_out_param
(const std::
string
&
id
) const;
2068
inline
isl
::
checked
::
map
project_out_param
(
isl
::
checked
::
id_list
list) const;
2069
inline
isl
::
checked
::
set
range
() const;
2070
inline
isl
::
checked
::
map
range_factor_domain
() const;
2071
inline
isl
::
checked
::
map
range_factor_range
() const;
2072
inline
isl
::
checked
::
fixed_box
range_lattice_tile
() const;
2073
inline
isl
::
checked
::
fixed_box
get_range_lattice_tile
() const;
2074
inline
isl
::
checked
::
union_map
range_map
() const;
2075
inline
isl
::
checked
::
map
range_product
(
isl
::
checked
::
map
map2
) const;
2076
inline
isl
::
checked
::
union_map
range_product
(const
isl
::
checked
::
union_map
&umap2) const;
2077
inline
isl
::
checked
::
map
range_product
(const
isl
::
checked
::
basic_map
&
map2
) const;
2078
inline
isl
::
checked
::
map
range_reverse
() const;
2079
inline
isl
::
checked
::
fixed_box
range_simple_fixed_box_hull
() const;
2080
inline
isl
::
checked
::
fixed_box
get_range_simple_fixed_box_hull
() const;
2081
inline class
size
range_tuple_dim
() const;
2082
inline
isl
::
checked
::
id
range_tuple_id
() const;
2083
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
2084
inline
isl
::
checked
::
map
reverse
() const;
2085
inline
isl
::
checked
::
basic_map
sample
() const;
2086
inline
isl
::
checked
::
map
set_domain_tuple
(
isl
::
checked
::
id
id
) const;
2087
inline
isl
::
checked
::
map
set_domain_tuple
(const std::
string
&
id
) const;
2088
inline
isl
::
checked
::
map
set_range_tuple
(
isl
::
checked
::
id
id
) const;
2089
inline
isl
::
checked
::
map
set_range_tuple
(const std::
string
&
id
) const;
2090
inline
isl
::
checked
::
space
space
() const;
2091
inline
isl
::
checked
::
space
get_space
() const;
2092
inline
isl
::
checked
::
map
subtract
(
isl
::
checked
::
map
map2
) const;
2093
inline
isl
::
checked
::
union_map
subtract
(const
isl
::
checked
::
union_map
&umap2) const;
2094
inline
isl
::
checked
::
map
subtract
(const
isl
::
checked
::
basic_map
&
map2
) const;
2095
inline
isl
::
checked
::
union_map
subtract_domain
(const
isl
::
checked
::
union_set
&dom) const;
2096
inline
isl
::
checked
::
union_map
subtract_range
(const
isl
::
checked
::
union_set
&dom) const;
2097
inline
isl
::
checked
::
map_list
to_list
() const;
2098
inline
isl
::
checked
::
union_map
to_union_map
() const;
2099
inline
isl
::
checked
::
map
uncurry
() const;
2100
inline
isl
::
checked
::
map
unite
(
isl
::
checked
::
map
map2
) const;
2101
inline
isl
::
checked
::
union_map
unite
(const
isl
::
checked
::
union_map
&umap2) const;
2102
inline
isl
::
checked
::
map
unite
(const
isl
::
checked
::
basic_map
&
map2
) const;
2103
static inline
isl
::
checked
::
map
universe
(
isl
::
checked
::
space
space
);
2104
inline
isl
::
checked
::
basic_map
unshifted_simple_hull
() const;
2105
inline
isl
::
checked
::
map
upper_bound
(
isl
::
checked
::
multi_pw_aff
upper) const;
2106
inline
isl
::
checked
::
set
wrap
() const;
2107
inline
isl
::
checked
::
map
zip
() const;
2108
};
2109
2110
// declarations for isl::map_list
2111
inline
map_list
manage
(
__isl_take
isl_map_list *
ptr
);
2112
inline
map_list
manage_copy
(
__isl_keep
isl_map_list *
ptr
);
2113
2114
class
map_list
{
2115
friend
inline
map_list
manage
(
__isl_take
isl_map_list *
ptr
);
2116
friend
inline
map_list
manage_copy
(
__isl_keep
isl_map_list *
ptr
);
2117
2118
protected
:
2119
isl_map_list *
ptr
=
nullptr
;
2120
2121
inline
explicit
map_list
(
__isl_take
isl_map_list *
ptr
);
2122
2123
public
:
2124
inline
/* implicit */
map_list
();
2125
inline
/* implicit */
map_list
(
const
map_list
&
obj
);
2126
inline
explicit
map_list
(
isl::checked::ctx
ctx
,
int
n
);
2127
inline
explicit
map_list
(
isl::checked::map
el);
2128
inline
explicit
map_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2129
inline
map_list
&
operator=
(
map_list
obj
);
2130
inline
~map_list
();
2131
inline
__isl_give
isl_map_list *
copy
() const &;
2132
inline
__isl_give
isl_map_list *
copy
() && = delete;
2133
inline
__isl_keep
isl_map_list *
get
() const;
2134
inline
__isl_give
isl_map_list *
release
();
2135
inline
bool
is_null
() const;
2136
inline
isl
::
checked
::
ctx
ctx
() const;
2137
2138
inline
isl
::
checked
::
map_list
add
(
isl
::
checked
::
map
el) const;
2139
inline
isl
::
checked
::
map
at
(
int
index) const;
2140
inline
isl
::
checked
::
map
get_at
(
int
index) const;
2141
inline
isl
::
checked
::
map_list
clear
() const;
2142
inline
isl
::
checked
::
map_list
concat
(
isl
::
checked
::
map_list
list2) const;
2143
inline
isl
::
checked
::
map_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
2144
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
map
)> &
fn
) const;
2145
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;
2146
inline
isl
::
checked
::
map_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
map
el) const;
2147
inline
isl
::
checked
::
map_list
set_at
(
int
index,
isl
::
checked
::
map
el) const;
2148
inline class
size
size
() const;
2149
};
2150
2151
// declarations for isl::multi_aff
2152
inline
multi_aff
manage
(
__isl_take
isl_multi_aff
*
ptr
);
2153
inline
multi_aff
manage_copy
(
__isl_keep
isl_multi_aff
*
ptr
);
2154
2155
class
multi_aff
{
2156
friend
inline
multi_aff
manage
(
__isl_take
isl_multi_aff
*
ptr
);
2157
friend
inline
multi_aff
manage_copy
(
__isl_keep
isl_multi_aff
*
ptr
);
2158
2159
protected
:
2160
isl_multi_aff
*
ptr
=
nullptr
;
2161
2162
inline
explicit
multi_aff
(
__isl_take
isl_multi_aff
*
ptr
);
2163
2164
public
:
2165
inline
/* implicit */
multi_aff
();
2166
inline
/* implicit */
multi_aff
(
const
multi_aff
&
obj
);
2167
inline
/* implicit */
multi_aff
(
isl::checked::aff
aff
);
2168
inline
explicit
multi_aff
(
isl::checked::space
space
,
isl::checked::aff_list
list
);
2169
inline
explicit
multi_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2170
inline
multi_aff
&
operator=
(
multi_aff
obj
);
2171
inline
~multi_aff
();
2172
inline
__isl_give
isl_multi_aff
*
copy
() const &;
2173
inline
__isl_give
isl_multi_aff
*
copy
() && = delete;
2174
inline
__isl_keep
isl_multi_aff
*
get
() const;
2175
inline
__isl_give
isl_multi_aff
*
release
();
2176
inline
bool
is_null
() const;
2177
inline
isl
::
checked
::
ctx
ctx
() const;
2178
2179
inline
isl
::
checked
::
multi_aff
add
(
isl
::
checked
::
multi_aff
multi2) const;
2180
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2181
inline
isl
::
checked
::
multi_union_pw_aff
add
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2182
inline
isl
::
checked
::
pw_multi_aff
add
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2183
inline
isl
::
checked
::
union_pw_multi_aff
add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2184
inline
isl
::
checked
::
multi_aff
add
(const
isl
::
checked
::
aff
&multi2) const;
2185
inline
isl
::
checked
::
multi_aff
add_constant
(
isl
::
checked
::
multi_val
mv) const;
2186
inline
isl
::
checked
::
multi_aff
add_constant
(
isl
::
checked
::
val
v) const;
2187
inline
isl
::
checked
::
multi_aff
add_constant
(
long
v) const;
2188
inline
isl
::
checked
::
union_pw_multi_aff
apply
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2189
inline
isl
::
checked
::
map
as_map
() const;
2190
inline
isl
::
checked
::
multi_aff
as_multi_aff
() const;
2191
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
2192
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
2193
inline
isl
::
checked
::
set
as_set
() const;
2194
inline
isl
::
checked
::
union_map
as_union_map
() const;
2195
inline
isl
::
checked
::
aff
at
(
int
pos
) const;
2196
inline
isl
::
checked
::
aff
get_at
(
int
pos
) const;
2197
inline
isl
::
checked
::
basic_set
bind
(
isl
::
checked
::
multi_id
tuple
) const;
2198
inline
isl
::
checked
::
multi_aff
bind_domain
(
isl
::
checked
::
multi_id
tuple
) const;
2199
inline
isl
::
checked
::
multi_aff
bind_domain_wrapped_domain
(
isl
::
checked
::
multi_id
tuple
) const;
2200
inline
isl
::
checked
::
pw_multi_aff
coalesce
() const;
2201
inline
isl
::
checked
::
multi_val
constant_multi_val
() const;
2202
inline
isl
::
checked
::
multi_val
get_constant_multi_val
() const;
2203
inline
isl
::
checked
::
set
domain
() const;
2204
static inline
isl
::
checked
::
multi_aff
domain_map
(
isl
::
checked
::
space
space
);
2205
inline
isl
::
checked
::
multi_aff
domain_reverse
() const;
2206
inline
isl
::
checked
::
pw_multi_aff
drop_unused_params
() const;
2207
inline
isl
::
checked
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
checked
::
space
&
space
) const;
2208
inline
isl
::
checked
::
multi_aff
flat_range_product
(
isl
::
checked
::
multi_aff
multi2) const;
2209
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2210
inline
isl
::
checked
::
multi_union_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2211
inline
isl
::
checked
::
pw_multi_aff
flat_range_product
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2212
inline
isl
::
checked
::
union_pw_multi_aff
flat_range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2213
inline
isl
::
checked
::
multi_aff
flat_range_product
(const
isl
::
checked
::
aff
&multi2) const;
2214
inline
isl
::
checked
::
multi_aff
floor
() const;
2215
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
checked
::
set
,
isl
::
checked
::
multi_aff
)> &
fn
) const;
2216
inline
isl
::
checked
::
multi_aff
gist
(
isl
::
checked
::
set
context
) const;
2217
inline
isl
::
checked
::
union_pw_multi_aff
gist
(const
isl
::
checked
::
union_set
&
context
) const;
2218
inline
isl
::
checked
::
multi_aff
gist
(const
isl
::
checked
::
basic_set
&
context
) const;
2219
inline
isl
::
checked
::
multi_aff
gist
(const
isl
::
checked
::
point
&
context
) const;
2220
inline
isl
::
checked
::
multi_aff
gist_params
(
isl
::
checked
::
set
context
) const;
2221
inline
boolean
has_range_tuple_id
() const;
2222
inline
isl
::
checked
::
multi_aff
identity
() const;
2223
static inline
isl
::
checked
::
multi_aff
identity_on_domain
(
isl
::
checked
::
space
space
);
2224
inline
isl
::
checked
::
multi_aff
insert_domain
(
isl
::
checked
::
space
domain
) const;
2225
inline
isl
::
checked
::
pw_multi_aff
intersect_domain
(const
isl
::
checked
::
set
&
set
) const;
2226
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain
(const
isl
::
checked
::
space
&
space
) const;
2227
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain
(const
isl
::
checked
::
union_set
&uset) const;
2228
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain_wrapped_domain
(const
isl
::
checked
::
union_set
&uset) const;
2229
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain_wrapped_range
(const
isl
::
checked
::
union_set
&uset) const;
2230
inline
isl
::
checked
::
pw_multi_aff
intersect_params
(const
isl
::
checked
::
set
&
set
) const;
2231
inline
boolean
involves_locals
() const;
2232
inline
boolean
involves_nan
() const;
2233
inline
boolean
involves_param
(const
isl
::
checked
::
id
&
id
) const;
2234
inline
boolean
involves_param
(const std::
string
&
id
) const;
2235
inline
boolean
involves_param
(const
isl
::
checked
::
id_list
&
list
) const;
2236
inline
boolean
isa_multi_aff
() const;
2237
inline
boolean
isa_pw_multi_aff
() const;
2238
inline
isl
::
checked
::
aff_list
list
() const;
2239
inline
isl
::
checked
::
aff_list
get_list
() const;
2240
inline
isl
::
checked
::
multi_pw_aff
max
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2241
inline
isl
::
checked
::
multi_val
max_multi_val
() const;
2242
inline
isl
::
checked
::
multi_pw_aff
min
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2243
inline
isl
::
checked
::
multi_val
min_multi_val
() const;
2244
static inline
isl
::
checked
::
multi_aff
multi_val_on_domain
(
isl
::
checked
::
space
space
,
isl
::
checked
::
multi_val
mv);
2245
inline class
size
n_piece
() const;
2246
inline
isl
::
checked
::
multi_aff
neg
() const;
2247
inline
boolean
plain_is_empty
() const;
2248
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_aff
&multi2) const;
2249
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2250
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2251
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2252
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2253
inline
boolean
plain_is_equal
(const
isl
::
checked
::
aff
&multi2) const;
2254
inline
isl
::
checked
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2255
inline
isl
::
checked
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2256
inline
isl
::
checked
::
multi_aff
product
(
isl
::
checked
::
multi_aff
multi2) const;
2257
inline
isl
::
checked
::
multi_pw_aff
product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2258
inline
isl
::
checked
::
pw_multi_aff
product
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2259
inline
isl
::
checked
::
multi_aff
product
(const
isl
::
checked
::
aff
&multi2) const;
2260
inline
isl
::
checked
::
multi_aff
pullback
(
isl
::
checked
::
multi_aff
ma2) const;
2261
inline
isl
::
checked
::
multi_pw_aff
pullback
(const
isl
::
checked
::
multi_pw_aff
&mpa2) const;
2262
inline
isl
::
checked
::
pw_multi_aff
pullback
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2263
inline
isl
::
checked
::
union_pw_multi_aff
pullback
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2264
inline
isl
::
checked
::
multi_aff
pullback
(const
isl
::
checked
::
aff
&ma2) const;
2265
inline
isl
::
checked
::
pw_multi_aff_list
pw_multi_aff_list
() const;
2266
inline
isl
::
checked
::
pw_multi_aff
range_factor_domain
() const;
2267
inline
isl
::
checked
::
pw_multi_aff
range_factor_range
() const;
2268
static inline
isl
::
checked
::
multi_aff
range_map
(
isl
::
checked
::
space
space
);
2269
inline
isl
::
checked
::
multi_aff
range_product
(
isl
::
checked
::
multi_aff
multi2) const;
2270
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2271
inline
isl
::
checked
::
multi_union_pw_aff
range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2272
inline
isl
::
checked
::
pw_multi_aff
range_product
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2273
inline
isl
::
checked
::
union_pw_multi_aff
range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2274
inline
isl
::
checked
::
multi_aff
range_product
(const
isl
::
checked
::
aff
&multi2) const;
2275
inline
isl
::
checked
::
id
range_tuple_id
() const;
2276
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
2277
inline
isl
::
checked
::
multi_aff
reset_range_tuple_id
() const;
2278
inline
isl
::
checked
::
multi_aff
scale
(
isl
::
checked
::
multi_val
mv) const;
2279
inline
isl
::
checked
::
multi_aff
scale
(
isl
::
checked
::
val
v) const;
2280
inline
isl
::
checked
::
multi_aff
scale
(
long
v) const;
2281
inline
isl
::
checked
::
multi_aff
scale_down
(
isl
::
checked
::
multi_val
mv) const;
2282
inline
isl
::
checked
::
multi_aff
scale_down
(
isl
::
checked
::
val
v) const;
2283
inline
isl
::
checked
::
multi_aff
scale_down
(
long
v) const;
2284
inline
isl
::
checked
::
multi_aff
set_at
(
int
pos
,
isl
::
checked
::
aff
el) const;
2285
inline
isl
::
checked
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
pw_aff
&el) const;
2286
inline
isl
::
checked
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
union_pw_aff
&el) const;
2287
inline
isl
::
checked
::
multi_aff
set_range_tuple
(
isl
::
checked
::
id
id
) const;
2288
inline
isl
::
checked
::
multi_aff
set_range_tuple
(const std::
string
&
id
) const;
2289
inline class
size
size
() const;
2290
inline
isl
::
checked
::
space
space
() const;
2291
inline
isl
::
checked
::
space
get_space
() const;
2292
inline
isl
::
checked
::
multi_aff
sub
(
isl
::
checked
::
multi_aff
multi2) const;
2293
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2294
inline
isl
::
checked
::
multi_union_pw_aff
sub
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2295
inline
isl
::
checked
::
pw_multi_aff
sub
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2296
inline
isl
::
checked
::
union_pw_multi_aff
sub
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2297
inline
isl
::
checked
::
multi_aff
sub
(const
isl
::
checked
::
aff
&multi2) const;
2298
inline
isl
::
checked
::
pw_multi_aff
subtract_domain
(const
isl
::
checked
::
set
&
set
) const;
2299
inline
isl
::
checked
::
union_pw_multi_aff
subtract_domain
(const
isl
::
checked
::
space
&
space
) const;
2300
inline
isl
::
checked
::
union_pw_multi_aff
subtract_domain
(const
isl
::
checked
::
union_set
&uset) const;
2301
inline
isl
::
checked
::
pw_multi_aff_list
to_list
() const;
2302
inline
isl
::
checked
::
multi_pw_aff
to_multi_pw_aff
() const;
2303
inline
isl
::
checked
::
multi_union_pw_aff
to_multi_union_pw_aff
() const;
2304
inline
isl
::
checked
::
pw_multi_aff
to_pw_multi_aff
() const;
2305
inline
isl
::
checked
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
2306
inline
isl
::
checked
::
multi_aff
unbind_params_insert_domain
(
isl
::
checked
::
multi_id
domain
) const;
2307
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
multi_pw_aff
&mpa2) const;
2308
inline
isl
::
checked
::
multi_union_pw_aff
union_add
(const
isl
::
checked
::
multi_union_pw_aff
&mupa2) const;
2309
inline
isl
::
checked
::
pw_multi_aff
union_add
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2310
inline
isl
::
checked
::
union_pw_multi_aff
union_add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2311
static inline
isl
::
checked
::
multi_aff
zero
(
isl
::
checked
::
space
space
);
2312
};
2313
2314
// declarations for isl::multi_id
2315
inline
multi_id
manage
(
__isl_take
isl_multi_id
*
ptr
);
2316
inline
multi_id
manage_copy
(
__isl_keep
isl_multi_id
*
ptr
);
2317
2318
class
multi_id
{
2319
friend
inline
multi_id
manage
(
__isl_take
isl_multi_id
*
ptr
);
2320
friend
inline
multi_id
manage_copy
(
__isl_keep
isl_multi_id
*
ptr
);
2321
2322
protected
:
2323
isl_multi_id
*
ptr
=
nullptr
;
2324
2325
inline
explicit
multi_id
(
__isl_take
isl_multi_id
*
ptr
);
2326
2327
public
:
2328
inline
/* implicit */
multi_id
();
2329
inline
/* implicit */
multi_id
(
const
multi_id
&
obj
);
2330
inline
explicit
multi_id
(
isl::checked::space
space
,
isl::checked::id_list
list
);
2331
inline
explicit
multi_id
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2332
inline
multi_id
&
operator=
(
multi_id
obj
);
2333
inline
~multi_id
();
2334
inline
__isl_give
isl_multi_id
*
copy
() const &;
2335
inline
__isl_give
isl_multi_id
*
copy
() && = delete;
2336
inline
__isl_keep
isl_multi_id
*
get
() const;
2337
inline
__isl_give
isl_multi_id
*
release
();
2338
inline
bool
is_null
() const;
2339
inline
isl
::
checked
::
ctx
ctx
() const;
2340
2341
inline
isl
::
checked
::
id
at
(
int
pos
) const;
2342
inline
isl
::
checked
::
id
get_at
(
int
pos
) const;
2343
inline
isl
::
checked
::
multi_id
flat_range_product
(
isl
::
checked
::
multi_id
multi2) const;
2344
inline
isl
::
checked
::
id_list
list
() const;
2345
inline
isl
::
checked
::
id_list
get_list
() const;
2346
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_id
&multi2) const;
2347
inline
isl
::
checked
::
multi_id
range_product
(
isl
::
checked
::
multi_id
multi2) const;
2348
inline
isl
::
checked
::
multi_id
set_at
(
int
pos
,
isl
::
checked
::
id
el) const;
2349
inline
isl
::
checked
::
multi_id
set_at
(
int
pos
, const std::
string
&el) const;
2350
inline class
size
size
() const;
2351
inline
isl
::
checked
::
space
space
() const;
2352
inline
isl
::
checked
::
space
get_space
() const;
2353
};
2354
2355
// declarations for isl::multi_pw_aff
2356
inline
multi_pw_aff
manage
(
__isl_take
isl_multi_pw_aff
*
ptr
);
2357
inline
multi_pw_aff
manage_copy
(
__isl_keep
isl_multi_pw_aff
*
ptr
);
2358
2359
class
multi_pw_aff
{
2360
friend
inline
multi_pw_aff
manage
(
__isl_take
isl_multi_pw_aff
*
ptr
);
2361
friend
inline
multi_pw_aff
manage_copy
(
__isl_keep
isl_multi_pw_aff
*
ptr
);
2362
2363
protected
:
2364
isl_multi_pw_aff
*
ptr
=
nullptr
;
2365
2366
inline
explicit
multi_pw_aff
(
__isl_take
isl_multi_pw_aff
*
ptr
);
2367
2368
public
:
2369
inline
/* implicit */
multi_pw_aff
();
2370
inline
/* implicit */
multi_pw_aff
(
const
multi_pw_aff
&
obj
);
2371
inline
/* implicit */
multi_pw_aff
(
isl::checked::aff
aff
);
2372
inline
/* implicit */
multi_pw_aff
(
isl::checked::multi_aff
ma
);
2373
inline
/* implicit */
multi_pw_aff
(
isl::checked::pw_aff
pa
);
2374
inline
explicit
multi_pw_aff
(
isl::checked::space
space
,
isl::checked::pw_aff_list
list
);
2375
inline
/* implicit */
multi_pw_aff
(
isl::checked::pw_multi_aff
pma
);
2376
inline
explicit
multi_pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2377
inline
multi_pw_aff
&
operator=
(
multi_pw_aff
obj
);
2378
inline
~multi_pw_aff
();
2379
inline
__isl_give
isl_multi_pw_aff
*
copy
() const &;
2380
inline
__isl_give
isl_multi_pw_aff
*
copy
() && = delete;
2381
inline
__isl_keep
isl_multi_pw_aff
*
get
() const;
2382
inline
__isl_give
isl_multi_pw_aff
*
release
();
2383
inline
bool
is_null
() const;
2384
inline
isl
::
checked
::
ctx
ctx
() const;
2385
2386
inline
isl
::
checked
::
multi_pw_aff
add
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2387
inline
isl
::
checked
::
multi_union_pw_aff
add
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2388
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
aff
&multi2) const;
2389
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
multi_aff
&multi2) const;
2390
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
pw_aff
&multi2) const;
2391
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
pw_multi_aff
&multi2) const;
2392
inline
isl
::
checked
::
multi_pw_aff
add_constant
(
isl
::
checked
::
multi_val
mv) const;
2393
inline
isl
::
checked
::
multi_pw_aff
add_constant
(
isl
::
checked
::
val
v) const;
2394
inline
isl
::
checked
::
multi_pw_aff
add_constant
(
long
v) const;
2395
inline
isl
::
checked
::
map
as_map
() const;
2396
inline
isl
::
checked
::
multi_aff
as_multi_aff
() const;
2397
inline
isl
::
checked
::
set
as_set
() const;
2398
inline
isl
::
checked
::
pw_aff
at
(
int
pos
) const;
2399
inline
isl
::
checked
::
pw_aff
get_at
(
int
pos
) const;
2400
inline
isl
::
checked
::
set
bind
(
isl
::
checked
::
multi_id
tuple
) const;
2401
inline
isl
::
checked
::
multi_pw_aff
bind_domain
(
isl
::
checked
::
multi_id
tuple
) const;
2402
inline
isl
::
checked
::
multi_pw_aff
bind_domain_wrapped_domain
(
isl
::
checked
::
multi_id
tuple
) const;
2403
inline
isl
::
checked
::
multi_pw_aff
coalesce
() const;
2404
inline
isl
::
checked
::
set
domain
() const;
2405
inline
isl
::
checked
::
multi_pw_aff
domain_reverse
() const;
2406
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2407
inline
isl
::
checked
::
multi_union_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2408
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
aff
&multi2) const;
2409
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_aff
&multi2) const;
2410
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
pw_aff
&multi2) const;
2411
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
pw_multi_aff
&multi2) const;
2412
inline
isl
::
checked
::
multi_pw_aff
gist
(
isl
::
checked
::
set
set
) const;
2413
inline
isl
::
checked
::
multi_union_pw_aff
gist
(const
isl
::
checked
::
union_set
&
context
) const;
2414
inline
isl
::
checked
::
multi_pw_aff
gist
(const
isl
::
checked
::
basic_set
&
set
) const;
2415
inline
isl
::
checked
::
multi_pw_aff
gist
(const
isl
::
checked
::
point
&
set
) const;
2416
inline
isl
::
checked
::
multi_pw_aff
gist_params
(
isl
::
checked
::
set
set
) const;
2417
inline
boolean
has_range_tuple_id
() const;
2418
inline
isl
::
checked
::
multi_pw_aff
identity
() const;
2419
static inline
isl
::
checked
::
multi_pw_aff
identity_on_domain
(
isl
::
checked
::
space
space
);
2420
inline
isl
::
checked
::
multi_pw_aff
insert_domain
(
isl
::
checked
::
space
domain
) const;
2421
inline
isl
::
checked
::
multi_pw_aff
intersect_domain
(
isl
::
checked
::
set
domain
) const;
2422
inline
isl
::
checked
::
multi_union_pw_aff
intersect_domain
(const
isl
::
checked
::
union_set
&uset) const;
2423
inline
isl
::
checked
::
multi_pw_aff
intersect_domain
(const
isl
::
checked
::
basic_set
&
domain
) const;
2424
inline
isl
::
checked
::
multi_pw_aff
intersect_domain
(const
isl
::
checked
::
point
&
domain
) const;
2425
inline
isl
::
checked
::
multi_pw_aff
intersect_params
(
isl
::
checked
::
set
set
) const;
2426
inline
boolean
involves_nan
() const;
2427
inline
boolean
involves_param
(const
isl
::
checked
::
id
&
id
) const;
2428
inline
boolean
involves_param
(const std::
string
&
id
) const;
2429
inline
boolean
involves_param
(const
isl
::
checked
::
id_list
&
list
) const;
2430
inline
boolean
isa_multi_aff
() const;
2431
inline
isl
::
checked
::
pw_aff_list
list
() const;
2432
inline
isl
::
checked
::
pw_aff_list
get_list
() const;
2433
inline
isl
::
checked
::
multi_pw_aff
max
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2434
inline
isl
::
checked
::
multi_val
max_multi_val
() const;
2435
inline
isl
::
checked
::
multi_pw_aff
min
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2436
inline
isl
::
checked
::
multi_val
min_multi_val
() const;
2437
inline
isl
::
checked
::
multi_pw_aff
neg
() const;
2438
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2439
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2440
inline
boolean
plain_is_equal
(const
isl
::
checked
::
aff
&multi2) const;
2441
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_aff
&multi2) const;
2442
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_aff
&multi2) const;
2443
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_multi_aff
&multi2) const;
2444
inline
isl
::
checked
::
multi_pw_aff
product
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2445
inline
isl
::
checked
::
multi_pw_aff
pullback
(
isl
::
checked
::
multi_aff
ma
) const;
2446
inline
isl
::
checked
::
multi_pw_aff
pullback
(
isl
::
checked
::
multi_pw_aff
mpa2) const;
2447
inline
isl
::
checked
::
multi_pw_aff
pullback
(
isl
::
checked
::
pw_multi_aff
pma
) const;
2448
inline
isl
::
checked
::
multi_union_pw_aff
pullback
(const
isl
::
checked
::
union_pw_multi_aff
&upma) const;
2449
inline
isl
::
checked
::
multi_pw_aff
range_product
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2450
inline
isl
::
checked
::
multi_union_pw_aff
range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2451
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
aff
&multi2) const;
2452
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
multi_aff
&multi2) const;
2453
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
pw_aff
&multi2) const;
2454
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
pw_multi_aff
&multi2) const;
2455
inline
isl
::
checked
::
id
range_tuple_id
() const;
2456
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
2457
inline
isl
::
checked
::
multi_pw_aff
reset_range_tuple_id
() const;
2458
inline
isl
::
checked
::
multi_pw_aff
scale
(
isl
::
checked
::
multi_val
mv) const;
2459
inline
isl
::
checked
::
multi_pw_aff
scale
(
isl
::
checked
::
val
v) const;
2460
inline
isl
::
checked
::
multi_pw_aff
scale
(
long
v) const;
2461
inline
isl
::
checked
::
multi_pw_aff
scale_down
(
isl
::
checked
::
multi_val
mv) const;
2462
inline
isl
::
checked
::
multi_pw_aff
scale_down
(
isl
::
checked
::
val
v) const;
2463
inline
isl
::
checked
::
multi_pw_aff
scale_down
(
long
v) const;
2464
inline
isl
::
checked
::
multi_pw_aff
set_at
(
int
pos
,
isl
::
checked
::
pw_aff
el) const;
2465
inline
isl
::
checked
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
union_pw_aff
&el) const;
2466
inline
isl
::
checked
::
multi_pw_aff
set_range_tuple
(
isl
::
checked
::
id
id
) const;
2467
inline
isl
::
checked
::
multi_pw_aff
set_range_tuple
(const std::
string
&
id
) const;
2468
inline class
size
size
() const;
2469
inline
isl
::
checked
::
space
space
() const;
2470
inline
isl
::
checked
::
space
get_space
() const;
2471
inline
isl
::
checked
::
multi_pw_aff
sub
(
isl
::
checked
::
multi_pw_aff
multi2) const;
2472
inline
isl
::
checked
::
multi_union_pw_aff
sub
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2473
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
aff
&multi2) const;
2474
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
multi_aff
&multi2) const;
2475
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
pw_aff
&multi2) const;
2476
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
pw_multi_aff
&multi2) const;
2477
inline
isl
::
checked
::
multi_pw_aff
unbind_params_insert_domain
(
isl
::
checked
::
multi_id
domain
) const;
2478
inline
isl
::
checked
::
multi_pw_aff
union_add
(
isl
::
checked
::
multi_pw_aff
mpa2) const;
2479
inline
isl
::
checked
::
multi_union_pw_aff
union_add
(const
isl
::
checked
::
multi_union_pw_aff
&mupa2) const;
2480
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
aff
&mpa2) const;
2481
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
multi_aff
&mpa2) const;
2482
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
pw_aff
&mpa2) const;
2483
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
pw_multi_aff
&mpa2) const;
2484
static inline
isl
::
checked
::
multi_pw_aff
zero
(
isl
::
checked
::
space
space
);
2485
};
2486
2487
// declarations for isl::multi_union_pw_aff
2488
inline
multi_union_pw_aff
manage
(
__isl_take
isl_multi_union_pw_aff
*
ptr
);
2489
inline
multi_union_pw_aff
manage_copy
(
__isl_keep
isl_multi_union_pw_aff
*
ptr
);
2490
2491
class
multi_union_pw_aff
{
2492
friend
inline
multi_union_pw_aff
manage
(
__isl_take
isl_multi_union_pw_aff
*
ptr
);
2493
friend
inline
multi_union_pw_aff
manage_copy
(
__isl_keep
isl_multi_union_pw_aff
*
ptr
);
2494
2495
protected
:
2496
isl_multi_union_pw_aff
*
ptr
=
nullptr
;
2497
2498
inline
explicit
multi_union_pw_aff
(
__isl_take
isl_multi_union_pw_aff
*
ptr
);
2499
2500
public
:
2501
inline
/* implicit */
multi_union_pw_aff
();
2502
inline
/* implicit */
multi_union_pw_aff
(
const
multi_union_pw_aff
&
obj
);
2503
inline
/* implicit */
multi_union_pw_aff
(
isl::checked::multi_pw_aff
mpa);
2504
inline
/* implicit */
multi_union_pw_aff
(
isl::checked::union_pw_aff
upa);
2505
inline
explicit
multi_union_pw_aff
(
isl::checked::space
space
,
isl::checked::union_pw_aff_list
list
);
2506
inline
explicit
multi_union_pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2507
inline
multi_union_pw_aff
&
operator=
(
multi_union_pw_aff
obj
);
2508
inline
~multi_union_pw_aff
();
2509
inline
__isl_give
isl_multi_union_pw_aff
*
copy
() const &;
2510
inline
__isl_give
isl_multi_union_pw_aff
*
copy
() && = delete;
2511
inline
__isl_keep
isl_multi_union_pw_aff
*
get
() const;
2512
inline
__isl_give
isl_multi_union_pw_aff
*
release
();
2513
inline
bool
is_null
() const;
2514
inline
isl
::
checked
::
ctx
ctx
() const;
2515
2516
inline
isl
::
checked
::
multi_union_pw_aff
add
(
isl
::
checked
::
multi_union_pw_aff
multi2) const;
2517
inline
isl
::
checked
::
union_pw_aff
at
(
int
pos
) const;
2518
inline
isl
::
checked
::
union_pw_aff
get_at
(
int
pos
) const;
2519
inline
isl
::
checked
::
union_set
bind
(
isl
::
checked
::
multi_id
tuple
) const;
2520
inline
isl
::
checked
::
multi_union_pw_aff
coalesce
() const;
2521
inline
isl
::
checked
::
union_set
domain
() const;
2522
inline
isl
::
checked
::
multi_union_pw_aff
flat_range_product
(
isl
::
checked
::
multi_union_pw_aff
multi2) const;
2523
inline
isl
::
checked
::
multi_union_pw_aff
gist
(
isl
::
checked
::
union_set
context
) const;
2524
inline
isl
::
checked
::
multi_union_pw_aff
gist_params
(
isl
::
checked
::
set
context
) const;
2525
inline
boolean
has_range_tuple_id
() const;
2526
inline
isl
::
checked
::
multi_union_pw_aff
intersect_domain
(
isl
::
checked
::
union_set
uset) const;
2527
inline
isl
::
checked
::
multi_union_pw_aff
intersect_params
(
isl
::
checked
::
set
params
) const;
2528
inline
boolean
involves_nan
() const;
2529
inline
isl
::
checked
::
union_pw_aff_list
list
() const;
2530
inline
isl
::
checked
::
union_pw_aff_list
get_list
() const;
2531
inline
isl
::
checked
::
multi_union_pw_aff
neg
() const;
2532
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2533
inline
isl
::
checked
::
multi_union_pw_aff
pullback
(
isl
::
checked
::
union_pw_multi_aff
upma) const;
2534
inline
isl
::
checked
::
multi_union_pw_aff
range_product
(
isl
::
checked
::
multi_union_pw_aff
multi2) const;
2535
inline
isl
::
checked
::
id
range_tuple_id
() const;
2536
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
2537
inline
isl
::
checked
::
multi_union_pw_aff
reset_range_tuple_id
() const;
2538
inline
isl
::
checked
::
multi_union_pw_aff
scale
(
isl
::
checked
::
multi_val
mv) const;
2539
inline
isl
::
checked
::
multi_union_pw_aff
scale
(
isl
::
checked
::
val
v) const;
2540
inline
isl
::
checked
::
multi_union_pw_aff
scale
(
long
v) const;
2541
inline
isl
::
checked
::
multi_union_pw_aff
scale_down
(
isl
::
checked
::
multi_val
mv) const;
2542
inline
isl
::
checked
::
multi_union_pw_aff
scale_down
(
isl
::
checked
::
val
v) const;
2543
inline
isl
::
checked
::
multi_union_pw_aff
scale_down
(
long
v) const;
2544
inline
isl
::
checked
::
multi_union_pw_aff
set_at
(
int
pos
,
isl
::
checked
::
union_pw_aff
el) const;
2545
inline
isl
::
checked
::
multi_union_pw_aff
set_range_tuple
(
isl
::
checked
::
id
id
) const;
2546
inline
isl
::
checked
::
multi_union_pw_aff
set_range_tuple
(const std::
string
&
id
) const;
2547
inline class
size
size
() const;
2548
inline
isl
::
checked
::
space
space
() const;
2549
inline
isl
::
checked
::
space
get_space
() const;
2550
inline
isl
::
checked
::
multi_union_pw_aff
sub
(
isl
::
checked
::
multi_union_pw_aff
multi2) const;
2551
inline
isl
::
checked
::
multi_union_pw_aff
union_add
(
isl
::
checked
::
multi_union_pw_aff
mupa2) const;
2552
static inline
isl
::
checked
::
multi_union_pw_aff
zero
(
isl
::
checked
::
space
space
);
2553
};
2554
2555
// declarations for isl::multi_val
2556
inline
multi_val
manage
(
__isl_take
isl_multi_val
*
ptr
);
2557
inline
multi_val
manage_copy
(
__isl_keep
isl_multi_val
*
ptr
);
2558
2559
class
multi_val
{
2560
friend
inline
multi_val
manage
(
__isl_take
isl_multi_val
*
ptr
);
2561
friend
inline
multi_val
manage_copy
(
__isl_keep
isl_multi_val
*
ptr
);
2562
2563
protected
:
2564
isl_multi_val
*
ptr
=
nullptr
;
2565
2566
inline
explicit
multi_val
(
__isl_take
isl_multi_val
*
ptr
);
2567
2568
public
:
2569
inline
/* implicit */
multi_val
();
2570
inline
/* implicit */
multi_val
(
const
multi_val
&
obj
);
2571
inline
explicit
multi_val
(
isl::checked::space
space
,
isl::checked::val_list
list
);
2572
inline
explicit
multi_val
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2573
inline
multi_val
&
operator=
(
multi_val
obj
);
2574
inline
~multi_val
();
2575
inline
__isl_give
isl_multi_val
*
copy
() const &;
2576
inline
__isl_give
isl_multi_val
*
copy
() && = delete;
2577
inline
__isl_keep
isl_multi_val
*
get
() const;
2578
inline
__isl_give
isl_multi_val
*
release
();
2579
inline
bool
is_null
() const;
2580
inline
isl
::
checked
::
ctx
ctx
() const;
2581
2582
inline
isl
::
checked
::
multi_val
add
(
isl
::
checked
::
multi_val
multi2) const;
2583
inline
isl
::
checked
::
multi_val
add
(
isl
::
checked
::
val
v) const;
2584
inline
isl
::
checked
::
multi_val
add
(
long
v) const;
2585
inline
isl
::
checked
::
val
at
(
int
pos
) const;
2586
inline
isl
::
checked
::
val
get_at
(
int
pos
) const;
2587
inline
isl
::
checked
::
multi_val
flat_range_product
(
isl
::
checked
::
multi_val
multi2) const;
2588
inline
boolean
has_range_tuple_id
() const;
2589
inline
boolean
involves_nan
() const;
2590
inline
boolean
is_equal
(const
isl
::
checked
::
multi_val
&mv2) const;
2591
inline
isl
::
checked
::
val_list
list
() const;
2592
inline
isl
::
checked
::
val_list
get_list
() const;
2593
inline
isl
::
checked
::
multi_val
max
(
isl
::
checked
::
multi_val
multi2) const;
2594
inline
isl
::
checked
::
multi_val
min
(
isl
::
checked
::
multi_val
multi2) const;
2595
inline
isl
::
checked
::
multi_val
neg
() const;
2596
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_val
&multi2) const;
2597
inline
isl
::
checked
::
multi_val
product
(
isl
::
checked
::
multi_val
multi2) const;
2598
inline
isl
::
checked
::
multi_val
range_product
(
isl
::
checked
::
multi_val
multi2) const;
2599
inline
isl
::
checked
::
id
range_tuple_id
() const;
2600
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
2601
inline
isl
::
checked
::
multi_val
reset_range_tuple_id
() const;
2602
inline
isl
::
checked
::
multi_val
scale
(
isl
::
checked
::
multi_val
mv) const;
2603
inline
isl
::
checked
::
multi_val
scale
(
isl
::
checked
::
val
v) const;
2604
inline
isl
::
checked
::
multi_val
scale
(
long
v) const;
2605
inline
isl
::
checked
::
multi_val
scale_down
(
isl
::
checked
::
multi_val
mv) const;
2606
inline
isl
::
checked
::
multi_val
scale_down
(
isl
::
checked
::
val
v) const;
2607
inline
isl
::
checked
::
multi_val
scale_down
(
long
v) const;
2608
inline
isl
::
checked
::
multi_val
set_at
(
int
pos
,
isl
::
checked
::
val
el) const;
2609
inline
isl
::
checked
::
multi_val
set_at
(
int
pos
,
long
el) const;
2610
inline
isl
::
checked
::
multi_val
set_range_tuple
(
isl
::
checked
::
id
id
) const;
2611
inline
isl
::
checked
::
multi_val
set_range_tuple
(const std::
string
&
id
) const;
2612
inline class
size
size
() const;
2613
inline
isl
::
checked
::
space
space
() const;
2614
inline
isl
::
checked
::
space
get_space
() const;
2615
inline
isl
::
checked
::
multi_val
sub
(
isl
::
checked
::
multi_val
multi2) const;
2616
static inline
isl
::
checked
::
multi_val
zero
(
isl
::
checked
::
space
space
);
2617
};
2618
2619
// declarations for isl::point
2620
inline
point
manage
(
__isl_take
isl_point
*
ptr
);
2621
inline
point
manage_copy
(
__isl_keep
isl_point
*
ptr
);
2622
2623
class
point
{
2624
friend
inline
point
manage
(
__isl_take
isl_point
*
ptr
);
2625
friend
inline
point
manage_copy
(
__isl_keep
isl_point
*
ptr
);
2626
2627
protected
:
2628
isl_point
*
ptr
=
nullptr
;
2629
2630
inline
explicit
point
(
__isl_take
isl_point
*
ptr
);
2631
2632
public
:
2633
inline
/* implicit */
point
();
2634
inline
/* implicit */
point
(
const
point
&
obj
);
2635
inline
point
&
operator=
(
point
obj
);
2636
inline
~point
();
2637
inline
__isl_give
isl_point
*
copy
() const &;
2638
inline
__isl_give
isl_point
*
copy
() && = delete;
2639
inline
__isl_keep
isl_point
*
get
() const;
2640
inline
__isl_give
isl_point
*
release
();
2641
inline
bool
is_null
() const;
2642
inline
isl
::
checked
::
ctx
ctx
() const;
2643
2644
inline
isl
::
checked
::
basic_set
affine_hull
() const;
2645
inline
isl
::
checked
::
basic_set
apply
(const
isl
::
checked
::
basic_map
&bmap) const;
2646
inline
isl
::
checked
::
set
apply
(const
isl
::
checked
::
map
&
map
) const;
2647
inline
isl
::
checked
::
union_set
apply
(const
isl
::
checked
::
union_map
&umap) const;
2648
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
2649
inline
isl
::
checked
::
set
as_set
() const;
2650
inline
isl
::
checked
::
set
bind
(const
isl
::
checked
::
multi_id
&
tuple
) const;
2651
inline
isl
::
checked
::
set
coalesce
() const;
2652
inline
isl
::
checked
::
set
complement
() const;
2653
inline
isl
::
checked
::
union_set
compute_divs
() const;
2654
inline
isl
::
checked
::
basic_set
detect_equalities
() const;
2655
inline
isl
::
checked
::
val
dim_max_val
(
int
pos
) const;
2656
inline
isl
::
checked
::
val
dim_min_val
(
int
pos
) const;
2657
inline
isl
::
checked
::
set
drop_unused_params
() const;
2658
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
checked
::
set
)> &
test
) const;
2659
inline
isl
::
checked
::
set
extract_set
(const
isl
::
checked
::
space
&
space
) const;
2660
inline
isl
::
checked
::
basic_set
flatten
() const;
2661
inline
stat
foreach_basic_set
(const std::function<
stat
(
isl
::
checked
::
basic_set
)> &
fn
) const;
2662
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
checked
::
point
)> &
fn
) const;
2663
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
checked
::
set
)> &
fn
) const;
2664
inline
isl
::
checked
::
basic_set
gist
(const
isl
::
checked
::
basic_set
&
context
) const;
2665
inline
isl
::
checked
::
set
gist
(const
isl
::
checked
::
set
&
context
) const;
2666
inline
isl
::
checked
::
union_set
gist
(const
isl
::
checked
::
union_set
&
context
) const;
2667
inline
isl
::
checked
::
set
gist_params
(const
isl
::
checked
::
set
&
context
) const;
2668
inline
isl
::
checked
::
map
identity
() const;
2669
inline
isl
::
checked
::
pw_aff
indicator_function
() const;
2670
inline
isl
::
checked
::
map
insert_domain
(const
isl
::
checked
::
space
&
domain
) const;
2671
inline
isl
::
checked
::
basic_set
intersect
(const
isl
::
checked
::
basic_set
&bset2) const;
2672
inline
isl
::
checked
::
set
intersect
(const
isl
::
checked
::
set
&
set2
) const;
2673
inline
isl
::
checked
::
union_set
intersect
(const
isl
::
checked
::
union_set
&uset2) const;
2674
inline
isl
::
checked
::
basic_set
intersect_params
(const
isl
::
checked
::
basic_set
&bset2) const;
2675
inline
isl
::
checked
::
set
intersect_params
(const
isl
::
checked
::
set
&
params
) const;
2676
inline
boolean
involves_locals
() const;
2677
inline
boolean
is_disjoint
(const
isl
::
checked
::
set
&
set2
) const;
2678
inline
boolean
is_disjoint
(const
isl
::
checked
::
union_set
&uset2) const;
2679
inline
boolean
is_empty
() const;
2680
inline
boolean
is_equal
(const
isl
::
checked
::
basic_set
&bset2) const;
2681
inline
boolean
is_equal
(const
isl
::
checked
::
set
&
set2
) const;
2682
inline
boolean
is_equal
(const
isl
::
checked
::
union_set
&uset2) const;
2683
inline
boolean
is_singleton
() const;
2684
inline
boolean
is_strict_subset
(const
isl
::
checked
::
set
&
set2
) const;
2685
inline
boolean
is_strict_subset
(const
isl
::
checked
::
union_set
&uset2) const;
2686
inline
boolean
is_subset
(const
isl
::
checked
::
basic_set
&bset2) const;
2687
inline
boolean
is_subset
(const
isl
::
checked
::
set
&
set2
) const;
2688
inline
boolean
is_subset
(const
isl
::
checked
::
union_set
&uset2) const;
2689
inline
boolean
is_wrapping
() const;
2690
inline
boolean
isa_set
() const;
2691
inline
isl
::
checked
::
fixed_box
lattice_tile
() const;
2692
inline
isl
::
checked
::
set
lexmax
() const;
2693
inline
isl
::
checked
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
2694
inline
isl
::
checked
::
set
lexmin
() const;
2695
inline
isl
::
checked
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
2696
inline
isl
::
checked
::
set
lower_bound
(const
isl
::
checked
::
multi_pw_aff
&lower) const;
2697
inline
isl
::
checked
::
set
lower_bound
(const
isl
::
checked
::
multi_val
&lower) const;
2698
inline
isl
::
checked
::
multi_pw_aff
max_multi_pw_aff
() const;
2699
inline
isl
::
checked
::
val
max_val
(const
isl
::
checked
::
aff
&
obj
) const;
2700
inline
isl
::
checked
::
multi_pw_aff
min_multi_pw_aff
() const;
2701
inline
isl
::
checked
::
val
min_val
(const
isl
::
checked
::
aff
&
obj
) const;
2702
inline
isl
::
checked
::
multi_val
multi_val
() const;
2703
inline
isl
::
checked
::
multi_val
get_multi_val
() const;
2704
inline class
size
n_basic_set
() const;
2705
inline
isl
::
checked
::
pw_aff
param_pw_aff_on_domain
(const
isl
::
checked
::
id
&
id
) const;
2706
inline
isl
::
checked
::
pw_aff
param_pw_aff_on_domain
(const std::
string
&
id
) const;
2707
inline
isl
::
checked
::
basic_set
params
() const;
2708
inline
isl
::
checked
::
multi_val
plain_multi_val_if_fixed
() const;
2709
inline
isl
::
checked
::
basic_set
polyhedral_hull
() const;
2710
inline
isl
::
checked
::
set
preimage
(const
isl
::
checked
::
multi_aff
&
ma
) const;
2711
inline
isl
::
checked
::
set
preimage
(const
isl
::
checked
::
multi_pw_aff
&mpa) const;
2712
inline
isl
::
checked
::
set
preimage
(const
isl
::
checked
::
pw_multi_aff
&
pma
) const;
2713
inline
isl
::
checked
::
union_set
preimage
(const
isl
::
checked
::
union_pw_multi_aff
&upma) const;
2714
inline
isl
::
checked
::
set
product
(const
isl
::
checked
::
set
&
set2
) const;
2715
inline
isl
::
checked
::
set
project_out_all_params
() const;
2716
inline
isl
::
checked
::
set
project_out_param
(const
isl
::
checked
::
id
&
id
) const;
2717
inline
isl
::
checked
::
set
project_out_param
(const std::
string
&
id
) const;
2718
inline
isl
::
checked
::
set
project_out_param
(const
isl
::
checked
::
id_list
&list) const;
2719
inline
isl
::
checked
::
pw_aff
pw_aff_on_domain
(const
isl
::
checked
::
val
&v) const;
2720
inline
isl
::
checked
::
pw_aff
pw_aff_on_domain
(
long
v) const;
2721
inline
isl
::
checked
::
pw_multi_aff
pw_multi_aff_on_domain
(const
isl
::
checked
::
multi_val
&mv) const;
2722
inline
isl
::
checked
::
basic_set
sample
() const;
2723
inline
isl
::
checked
::
point
sample_point
() const;
2724
inline
isl
::
checked
::
set_list
set_list
() const;
2725
inline
isl
::
checked
::
fixed_box
simple_fixed_box_hull
() const;
2726
inline
isl
::
checked
::
space
space
() const;
2727
inline
isl
::
checked
::
val
stride
(
int
pos
) const;
2728
inline
isl
::
checked
::
set
subtract
(const
isl
::
checked
::
set
&
set2
) const;
2729
inline
isl
::
checked
::
union_set
subtract
(const
isl
::
checked
::
union_set
&uset2) const;
2730
inline
isl
::
checked
::
set_list
to_list
() const;
2731
inline
isl
::
checked
::
set
to_set
() const;
2732
inline
isl
::
checked
::
union_set
to_union_set
() const;
2733
inline
isl
::
checked
::
map
translation
() const;
2734
inline class
size
tuple_dim
() const;
2735
inline
isl
::
checked
::
set
unbind_params
(const
isl
::
checked
::
multi_id
&
tuple
) const;
2736
inline
isl
::
checked
::
map
unbind_params_insert_domain
(const
isl
::
checked
::
multi_id
&
domain
) const;
2737
inline
isl
::
checked
::
set
unite
(const
isl
::
checked
::
basic_set
&bset2) const;
2738
inline
isl
::
checked
::
set
unite
(const
isl
::
checked
::
set
&
set2
) const;
2739
inline
isl
::
checked
::
union_set
unite
(const
isl
::
checked
::
union_set
&uset2) const;
2740
inline
isl
::
checked
::
basic_set
unshifted_simple_hull
() const;
2741
inline
isl
::
checked
::
map
unwrap
() const;
2742
inline
isl
::
checked
::
set
upper_bound
(const
isl
::
checked
::
multi_pw_aff
&upper) const;
2743
inline
isl
::
checked
::
set
upper_bound
(const
isl
::
checked
::
multi_val
&upper) const;
2744
inline
isl
::
checked
::
set
wrapped_reverse
() const;
2745
};
2746
2747
// declarations for isl::pw_aff
2748
inline
pw_aff
manage
(
__isl_take
isl_pw_aff
*
ptr
);
2749
inline
pw_aff
manage_copy
(
__isl_keep
isl_pw_aff
*
ptr
);
2750
2751
class
pw_aff
{
2752
friend
inline
pw_aff
manage
(
__isl_take
isl_pw_aff
*
ptr
);
2753
friend
inline
pw_aff
manage_copy
(
__isl_keep
isl_pw_aff
*
ptr
);
2754
2755
protected
:
2756
isl_pw_aff
*
ptr
=
nullptr
;
2757
2758
inline
explicit
pw_aff
(
__isl_take
isl_pw_aff
*
ptr
);
2759
2760
public
:
2761
inline
/* implicit */
pw_aff
();
2762
inline
/* implicit */
pw_aff
(
const
pw_aff
&
obj
);
2763
inline
/* implicit */
pw_aff
(
isl::checked::aff
aff
);
2764
inline
explicit
pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2765
inline
pw_aff
&
operator=
(
pw_aff
obj
);
2766
inline
~pw_aff
();
2767
inline
__isl_give
isl_pw_aff
*
copy
() const &;
2768
inline
__isl_give
isl_pw_aff
*
copy
() && = delete;
2769
inline
__isl_keep
isl_pw_aff
*
get
() const;
2770
inline
__isl_give
isl_pw_aff
*
release
();
2771
inline
bool
is_null
() const;
2772
inline
isl
::
checked
::
ctx
ctx
() const;
2773
2774
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2775
inline
isl
::
checked
::
multi_union_pw_aff
add
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2776
inline
isl
::
checked
::
pw_aff
add
(
isl
::
checked
::
pw_aff
pwaff2) const;
2777
inline
isl
::
checked
::
pw_multi_aff
add
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2778
inline
isl
::
checked
::
union_pw_aff
add
(const
isl
::
checked
::
union_pw_aff
&upa2) const;
2779
inline
isl
::
checked
::
union_pw_multi_aff
add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2780
inline
isl
::
checked
::
pw_aff
add
(const
isl
::
checked
::
aff
&pwaff2) const;
2781
inline
isl
::
checked
::
pw_aff
add_constant
(
isl
::
checked
::
val
v) const;
2782
inline
isl
::
checked
::
pw_aff
add_constant
(
long
v) const;
2783
inline
isl
::
checked
::
pw_multi_aff
add_constant
(const
isl
::
checked
::
multi_val
&mv) const;
2784
inline
isl
::
checked
::
union_pw_multi_aff
apply
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2785
inline
isl
::
checked
::
aff
as_aff
() const;
2786
inline
isl
::
checked
::
map
as_map
() const;
2787
inline
isl
::
checked
::
multi_aff
as_multi_aff
() const;
2788
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
2789
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
2790
inline
isl
::
checked
::
set
as_set
() const;
2791
inline
isl
::
checked
::
union_map
as_union_map
() const;
2792
inline
isl
::
checked
::
pw_aff
at
(
int
pos
) const;
2793
inline
isl
::
checked
::
set
bind
(const
isl
::
checked
::
multi_id
&
tuple
) const;
2794
inline
isl
::
checked
::
set
bind
(
isl
::
checked
::
id
id
) const;
2795
inline
isl
::
checked
::
set
bind
(const std::
string
&
id
) const;
2796
inline
isl
::
checked
::
pw_aff
bind_domain
(
isl
::
checked
::
multi_id
tuple
) const;
2797
inline
isl
::
checked
::
pw_aff
bind_domain_wrapped_domain
(
isl
::
checked
::
multi_id
tuple
) const;
2798
inline
isl
::
checked
::
pw_aff
ceil
() const;
2799
inline
isl
::
checked
::
pw_aff
coalesce
() const;
2800
inline
isl
::
checked
::
pw_aff
cond
(
isl
::
checked
::
pw_aff
pwaff_true,
isl
::
checked
::
pw_aff
pwaff_false) const;
2801
inline
isl
::
checked
::
pw_aff
div
(
isl
::
checked
::
pw_aff
pa2) const;
2802
inline
isl
::
checked
::
set
domain
() const;
2803
inline
isl
::
checked
::
pw_aff
domain_reverse
() const;
2804
inline
isl
::
checked
::
pw_aff
drop_unused_params
() const;
2805
inline
isl
::
checked
::
set
eq_set
(
isl
::
checked
::
pw_aff
pwaff2) const;
2806
inline
isl
::
checked
::
val
eval
(
isl
::
checked
::
point
pnt) const;
2807
inline
isl
::
checked
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
checked
::
space
&
space
) const;
2808
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2809
inline
isl
::
checked
::
multi_union_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2810
inline
isl
::
checked
::
pw_multi_aff
flat_range_product
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2811
inline
isl
::
checked
::
union_pw_multi_aff
flat_range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2812
inline
isl
::
checked
::
pw_aff
floor
() const;
2813
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
checked
::
set
,
isl
::
checked
::
multi_aff
)> &
fn
) const;
2814
inline
isl
::
checked
::
set
ge_set
(
isl
::
checked
::
pw_aff
pwaff2) const;
2815
inline
isl
::
checked
::
pw_aff
gist
(
isl
::
checked
::
set
context
) const;
2816
inline
isl
::
checked
::
union_pw_aff
gist
(const
isl
::
checked
::
union_set
&
context
) const;
2817
inline
isl
::
checked
::
pw_aff
gist
(const
isl
::
checked
::
basic_set
&
context
) const;
2818
inline
isl
::
checked
::
pw_aff
gist
(const
isl
::
checked
::
point
&
context
) const;
2819
inline
isl
::
checked
::
pw_aff
gist_params
(
isl
::
checked
::
set
context
) const;
2820
inline
isl
::
checked
::
set
gt_set
(
isl
::
checked
::
pw_aff
pwaff2) const;
2821
inline
boolean
has_range_tuple_id
() const;
2822
inline
isl
::
checked
::
multi_pw_aff
identity
() const;
2823
inline
isl
::
checked
::
pw_aff
insert_domain
(
isl
::
checked
::
space
domain
) const;
2824
inline
isl
::
checked
::
pw_aff
intersect_domain
(
isl
::
checked
::
set
set
) const;
2825
inline
isl
::
checked
::
union_pw_aff
intersect_domain
(const
isl
::
checked
::
space
&
space
) const;
2826
inline
isl
::
checked
::
union_pw_aff
intersect_domain
(const
isl
::
checked
::
union_set
&uset) const;
2827
inline
isl
::
checked
::
pw_aff
intersect_domain
(const
isl
::
checked
::
basic_set
&
set
) const;
2828
inline
isl
::
checked
::
pw_aff
intersect_domain
(const
isl
::
checked
::
point
&
set
) const;
2829
inline
isl
::
checked
::
union_pw_aff
intersect_domain_wrapped_domain
(const
isl
::
checked
::
union_set
&uset) const;
2830
inline
isl
::
checked
::
union_pw_aff
intersect_domain_wrapped_range
(const
isl
::
checked
::
union_set
&uset) const;
2831
inline
isl
::
checked
::
pw_aff
intersect_params
(
isl
::
checked
::
set
set
) const;
2832
inline
boolean
involves_locals
() const;
2833
inline
boolean
involves_nan
() const;
2834
inline
boolean
involves_param
(const
isl
::
checked
::
id
&
id
) const;
2835
inline
boolean
involves_param
(const std::
string
&
id
) const;
2836
inline
boolean
involves_param
(const
isl
::
checked
::
id_list
&
list
) const;
2837
inline
boolean
isa_aff
() const;
2838
inline
boolean
isa_multi_aff
() const;
2839
inline
boolean
isa_pw_multi_aff
() const;
2840
inline
isl
::
checked
::
set
le_set
(
isl
::
checked
::
pw_aff
pwaff2) const;
2841
inline
isl
::
checked
::
pw_aff_list
list
() const;
2842
inline
isl
::
checked
::
set
lt_set
(
isl
::
checked
::
pw_aff
pwaff2) const;
2843
inline
isl
::
checked
::
multi_pw_aff
max
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2844
inline
isl
::
checked
::
pw_aff
max
(
isl
::
checked
::
pw_aff
pwaff2) const;
2845
inline
isl
::
checked
::
pw_aff
max
(const
isl
::
checked
::
aff
&pwaff2) const;
2846
inline
isl
::
checked
::
multi_val
max_multi_val
() const;
2847
inline
isl
::
checked
::
val
max_val
() const;
2848
inline
isl
::
checked
::
multi_pw_aff
min
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2849
inline
isl
::
checked
::
pw_aff
min
(
isl
::
checked
::
pw_aff
pwaff2) const;
2850
inline
isl
::
checked
::
pw_aff
min
(const
isl
::
checked
::
aff
&pwaff2) const;
2851
inline
isl
::
checked
::
multi_val
min_multi_val
() const;
2852
inline
isl
::
checked
::
val
min_val
() const;
2853
inline
isl
::
checked
::
pw_aff
mod
(
isl
::
checked
::
val
mod
) const;
2854
inline
isl
::
checked
::
pw_aff
mod
(
long
mod
) const;
2855
inline
isl
::
checked
::
pw_aff
mul
(
isl
::
checked
::
pw_aff
pwaff2) const;
2856
inline class
size
n_piece
() const;
2857
inline
isl
::
checked
::
set
ne_set
(
isl
::
checked
::
pw_aff
pwaff2) const;
2858
inline
isl
::
checked
::
pw_aff
neg
() const;
2859
static inline
isl
::
checked
::
pw_aff
param_on_domain
(
isl
::
checked
::
set
domain
,
isl
::
checked
::
id
id
);
2860
inline
isl
::
checked
::
set
params
() const;
2861
inline
boolean
plain_is_empty
() const;
2862
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2863
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2864
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_aff
&pwaff2) const;
2865
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2866
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_aff
&upa2) const;
2867
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2868
inline
boolean
plain_is_equal
(const
isl
::
checked
::
aff
&pwaff2) const;
2869
inline
isl
::
checked
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2870
inline
isl
::
checked
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2871
inline
isl
::
checked
::
multi_pw_aff
product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2872
inline
isl
::
checked
::
pw_multi_aff
product
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2873
inline
isl
::
checked
::
pw_aff
pullback
(
isl
::
checked
::
multi_aff
ma
) const;
2874
inline
isl
::
checked
::
pw_aff
pullback
(
isl
::
checked
::
multi_pw_aff
mpa) const;
2875
inline
isl
::
checked
::
pw_aff
pullback
(
isl
::
checked
::
pw_multi_aff
pma
) const;
2876
inline
isl
::
checked
::
union_pw_aff
pullback
(const
isl
::
checked
::
union_pw_multi_aff
&upma) const;
2877
inline
isl
::
checked
::
pw_multi_aff_list
pw_multi_aff_list
() const;
2878
inline
isl
::
checked
::
pw_multi_aff
range_factor_domain
() const;
2879
inline
isl
::
checked
::
pw_multi_aff
range_factor_range
() const;
2880
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2881
inline
isl
::
checked
::
multi_union_pw_aff
range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2882
inline
isl
::
checked
::
pw_multi_aff
range_product
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2883
inline
isl
::
checked
::
union_pw_multi_aff
range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2884
inline
isl
::
checked
::
id
range_tuple_id
() const;
2885
inline
isl
::
checked
::
multi_pw_aff
reset_range_tuple_id
() const;
2886
inline
isl
::
checked
::
pw_aff
scale
(
isl
::
checked
::
val
v) const;
2887
inline
isl
::
checked
::
pw_aff
scale
(
long
v) const;
2888
inline
isl
::
checked
::
pw_multi_aff
scale
(const
isl
::
checked
::
multi_val
&mv) const;
2889
inline
isl
::
checked
::
pw_aff
scale_down
(
isl
::
checked
::
val
f
) const;
2890
inline
isl
::
checked
::
pw_aff
scale_down
(
long
f
) const;
2891
inline
isl
::
checked
::
pw_multi_aff
scale_down
(const
isl
::
checked
::
multi_val
&mv) const;
2892
inline
isl
::
checked
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
pw_aff
&el) const;
2893
inline
isl
::
checked
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
union_pw_aff
&el) const;
2894
inline
isl
::
checked
::
pw_multi_aff
set_range_tuple
(const
isl
::
checked
::
id
&
id
) const;
2895
inline
isl
::
checked
::
pw_multi_aff
set_range_tuple
(const std::
string
&
id
) const;
2896
inline class
size
size
() const;
2897
inline
isl
::
checked
::
space
space
() const;
2898
inline
isl
::
checked
::
space
get_space
() const;
2899
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2900
inline
isl
::
checked
::
multi_union_pw_aff
sub
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2901
inline
isl
::
checked
::
pw_aff
sub
(
isl
::
checked
::
pw_aff
pwaff2) const;
2902
inline
isl
::
checked
::
pw_multi_aff
sub
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2903
inline
isl
::
checked
::
union_pw_aff
sub
(const
isl
::
checked
::
union_pw_aff
&upa2) const;
2904
inline
isl
::
checked
::
union_pw_multi_aff
sub
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2905
inline
isl
::
checked
::
pw_aff
sub
(const
isl
::
checked
::
aff
&pwaff2) const;
2906
inline
isl
::
checked
::
pw_aff
subtract_domain
(
isl
::
checked
::
set
set
) const;
2907
inline
isl
::
checked
::
union_pw_aff
subtract_domain
(const
isl
::
checked
::
space
&
space
) const;
2908
inline
isl
::
checked
::
union_pw_aff
subtract_domain
(const
isl
::
checked
::
union_set
&uset) const;
2909
inline
isl
::
checked
::
pw_aff
subtract_domain
(const
isl
::
checked
::
basic_set
&
set
) const;
2910
inline
isl
::
checked
::
pw_aff
subtract_domain
(const
isl
::
checked
::
point
&
set
) const;
2911
inline
isl
::
checked
::
pw_aff
tdiv_q
(
isl
::
checked
::
pw_aff
pa2) const;
2912
inline
isl
::
checked
::
pw_aff
tdiv_r
(
isl
::
checked
::
pw_aff
pa2) const;
2913
inline
isl
::
checked
::
pw_aff_list
to_list
() const;
2914
inline
isl
::
checked
::
multi_pw_aff
to_multi_pw_aff
() const;
2915
inline
isl
::
checked
::
union_pw_aff
to_union_pw_aff
() const;
2916
inline
isl
::
checked
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
2917
inline
isl
::
checked
::
multi_pw_aff
unbind_params_insert_domain
(const
isl
::
checked
::
multi_id
&
domain
) const;
2918
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
multi_pw_aff
&mpa2) const;
2919
inline
isl
::
checked
::
multi_union_pw_aff
union_add
(const
isl
::
checked
::
multi_union_pw_aff
&mupa2) const;
2920
inline
isl
::
checked
::
pw_aff
union_add
(
isl
::
checked
::
pw_aff
pwaff2) const;
2921
inline
isl
::
checked
::
pw_multi_aff
union_add
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
2922
inline
isl
::
checked
::
union_pw_aff
union_add
(const
isl
::
checked
::
union_pw_aff
&upa2) const;
2923
inline
isl
::
checked
::
union_pw_multi_aff
union_add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
2924
inline
isl
::
checked
::
pw_aff
union_add
(const
isl
::
checked
::
aff
&pwaff2) const;
2925
};
2926
2927
// declarations for isl::pw_aff_list
2928
inline
pw_aff_list
manage
(
__isl_take
isl_pw_aff_list *
ptr
);
2929
inline
pw_aff_list
manage_copy
(
__isl_keep
isl_pw_aff_list *
ptr
);
2930
2931
class
pw_aff_list
{
2932
friend
inline
pw_aff_list
manage
(
__isl_take
isl_pw_aff_list *
ptr
);
2933
friend
inline
pw_aff_list
manage_copy
(
__isl_keep
isl_pw_aff_list *
ptr
);
2934
2935
protected
:
2936
isl_pw_aff_list *
ptr
=
nullptr
;
2937
2938
inline
explicit
pw_aff_list
(
__isl_take
isl_pw_aff_list *
ptr
);
2939
2940
public
:
2941
inline
/* implicit */
pw_aff_list
();
2942
inline
/* implicit */
pw_aff_list
(
const
pw_aff_list
&
obj
);
2943
inline
explicit
pw_aff_list
(
isl::checked::ctx
ctx
,
int
n
);
2944
inline
explicit
pw_aff_list
(
isl::checked::pw_aff
el);
2945
inline
explicit
pw_aff_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2946
inline
pw_aff_list
&
operator=
(
pw_aff_list
obj
);
2947
inline
~pw_aff_list
();
2948
inline
__isl_give
isl_pw_aff_list *
copy
() const &;
2949
inline
__isl_give
isl_pw_aff_list *
copy
() && = delete;
2950
inline
__isl_keep
isl_pw_aff_list *
get
() const;
2951
inline
__isl_give
isl_pw_aff_list *
release
();
2952
inline
bool
is_null
() const;
2953
inline
isl
::
checked
::
ctx
ctx
() const;
2954
2955
inline
isl
::
checked
::
pw_aff_list
add
(
isl
::
checked
::
pw_aff
el) const;
2956
inline
isl
::
checked
::
pw_aff
at
(
int
index) const;
2957
inline
isl
::
checked
::
pw_aff
get_at
(
int
index) const;
2958
inline
isl
::
checked
::
pw_aff_list
clear
() const;
2959
inline
isl
::
checked
::
pw_aff_list
concat
(
isl
::
checked
::
pw_aff_list
list2) const;
2960
inline
isl
::
checked
::
pw_aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
2961
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
pw_aff
)> &
fn
) const;
2962
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;
2963
inline
isl
::
checked
::
pw_aff_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
pw_aff
el) const;
2964
inline
isl
::
checked
::
pw_aff_list
set_at
(
int
index,
isl
::
checked
::
pw_aff
el) const;
2965
inline class
size
size
() const;
2966
};
2967
2968
// declarations for isl::pw_multi_aff
2969
inline
pw_multi_aff
manage
(
__isl_take
isl_pw_multi_aff
*
ptr
);
2970
inline
pw_multi_aff
manage_copy
(
__isl_keep
isl_pw_multi_aff
*
ptr
);
2971
2972
class
pw_multi_aff
{
2973
friend
inline
pw_multi_aff
manage
(
__isl_take
isl_pw_multi_aff
*
ptr
);
2974
friend
inline
pw_multi_aff
manage_copy
(
__isl_keep
isl_pw_multi_aff
*
ptr
);
2975
2976
protected
:
2977
isl_pw_multi_aff
*
ptr
=
nullptr
;
2978
2979
inline
explicit
pw_multi_aff
(
__isl_take
isl_pw_multi_aff
*
ptr
);
2980
2981
public
:
2982
inline
/* implicit */
pw_multi_aff
();
2983
inline
/* implicit */
pw_multi_aff
(
const
pw_multi_aff
&
obj
);
2984
inline
/* implicit */
pw_multi_aff
(
isl::checked::multi_aff
ma
);
2985
inline
/* implicit */
pw_multi_aff
(
isl::checked::pw_aff
pa
);
2986
inline
explicit
pw_multi_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
2987
inline
pw_multi_aff
&
operator=
(
pw_multi_aff
obj
);
2988
inline
~pw_multi_aff
();
2989
inline
__isl_give
isl_pw_multi_aff
*
copy
() const &;
2990
inline
__isl_give
isl_pw_multi_aff
*
copy
() && = delete;
2991
inline
__isl_keep
isl_pw_multi_aff
*
get
() const;
2992
inline
__isl_give
isl_pw_multi_aff
*
release
();
2993
inline
bool
is_null
() const;
2994
inline
isl
::
checked
::
ctx
ctx
() const;
2995
2996
inline
isl
::
checked
::
multi_pw_aff
add
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
2997
inline
isl
::
checked
::
multi_union_pw_aff
add
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
2998
inline
isl
::
checked
::
pw_multi_aff
add
(
isl
::
checked
::
pw_multi_aff
pma2) const;
2999
inline
isl
::
checked
::
union_pw_multi_aff
add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3000
inline
isl
::
checked
::
pw_multi_aff
add
(const
isl
::
checked
::
multi_aff
&pma2) const;
3001
inline
isl
::
checked
::
pw_multi_aff
add
(const
isl
::
checked
::
pw_aff
&pma2) const;
3002
inline
isl
::
checked
::
pw_multi_aff
add_constant
(
isl
::
checked
::
multi_val
mv) const;
3003
inline
isl
::
checked
::
pw_multi_aff
add_constant
(
isl
::
checked
::
val
v) const;
3004
inline
isl
::
checked
::
pw_multi_aff
add_constant
(
long
v) const;
3005
inline
isl
::
checked
::
union_pw_multi_aff
apply
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3006
inline
isl
::
checked
::
map
as_map
() const;
3007
inline
isl
::
checked
::
multi_aff
as_multi_aff
() const;
3008
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
3009
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
3010
inline
isl
::
checked
::
set
as_set
() const;
3011
inline
isl
::
checked
::
union_map
as_union_map
() const;
3012
inline
isl
::
checked
::
pw_aff
at
(
int
pos
) const;
3013
inline
isl
::
checked
::
pw_aff
get_at
(
int
pos
) const;
3014
inline
isl
::
checked
::
set
bind
(const
isl
::
checked
::
multi_id
&
tuple
) const;
3015
inline
isl
::
checked
::
pw_multi_aff
bind_domain
(
isl
::
checked
::
multi_id
tuple
) const;
3016
inline
isl
::
checked
::
pw_multi_aff
bind_domain_wrapped_domain
(
isl
::
checked
::
multi_id
tuple
) const;
3017
inline
isl
::
checked
::
pw_multi_aff
coalesce
() const;
3018
inline
isl
::
checked
::
set
domain
() const;
3019
static inline
isl
::
checked
::
pw_multi_aff
domain_map
(
isl
::
checked
::
space
space
);
3020
inline
isl
::
checked
::
pw_multi_aff
domain_reverse
() const;
3021
inline
isl
::
checked
::
pw_multi_aff
drop_unused_params
() const;
3022
inline
isl
::
checked
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
checked
::
space
&
space
) const;
3023
inline
isl
::
checked
::
multi_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3024
inline
isl
::
checked
::
multi_union_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
3025
inline
isl
::
checked
::
pw_multi_aff
flat_range_product
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3026
inline
isl
::
checked
::
union_pw_multi_aff
flat_range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3027
inline
isl
::
checked
::
pw_multi_aff
flat_range_product
(const
isl
::
checked
::
multi_aff
&pma2) const;
3028
inline
isl
::
checked
::
pw_multi_aff
flat_range_product
(const
isl
::
checked
::
pw_aff
&pma2) const;
3029
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
checked
::
set
,
isl
::
checked
::
multi_aff
)> &
fn
) const;
3030
inline
isl
::
checked
::
pw_multi_aff
gist
(
isl
::
checked
::
set
set
) const;
3031
inline
isl
::
checked
::
union_pw_multi_aff
gist
(const
isl
::
checked
::
union_set
&
context
) const;
3032
inline
isl
::
checked
::
pw_multi_aff
gist
(const
isl
::
checked
::
basic_set
&
set
) const;
3033
inline
isl
::
checked
::
pw_multi_aff
gist
(const
isl
::
checked
::
point
&
set
) const;
3034
inline
isl
::
checked
::
pw_multi_aff
gist_params
(
isl
::
checked
::
set
set
) const;
3035
inline
boolean
has_range_tuple_id
() const;
3036
inline
isl
::
checked
::
multi_pw_aff
identity
() const;
3037
static inline
isl
::
checked
::
pw_multi_aff
identity_on_domain
(
isl
::
checked
::
space
space
);
3038
inline
isl
::
checked
::
pw_multi_aff
insert_domain
(
isl
::
checked
::
space
domain
) const;
3039
inline
isl
::
checked
::
pw_multi_aff
intersect_domain
(
isl
::
checked
::
set
set
) const;
3040
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain
(const
isl
::
checked
::
space
&
space
) const;
3041
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain
(const
isl
::
checked
::
union_set
&uset) const;
3042
inline
isl
::
checked
::
pw_multi_aff
intersect_domain
(const
isl
::
checked
::
basic_set
&
set
) const;
3043
inline
isl
::
checked
::
pw_multi_aff
intersect_domain
(const
isl
::
checked
::
point
&
set
) const;
3044
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain_wrapped_domain
(const
isl
::
checked
::
union_set
&uset) const;
3045
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain_wrapped_range
(const
isl
::
checked
::
union_set
&uset) const;
3046
inline
isl
::
checked
::
pw_multi_aff
intersect_params
(
isl
::
checked
::
set
set
) const;
3047
inline
boolean
involves_locals
() const;
3048
inline
boolean
involves_nan
() const;
3049
inline
boolean
involves_param
(const
isl
::
checked
::
id
&
id
) const;
3050
inline
boolean
involves_param
(const std::
string
&
id
) const;
3051
inline
boolean
involves_param
(const
isl
::
checked
::
id_list
&
list
) const;
3052
inline
boolean
isa_multi_aff
() const;
3053
inline
boolean
isa_pw_multi_aff
() const;
3054
inline
isl
::
checked
::
pw_aff_list
list
() const;
3055
inline
isl
::
checked
::
multi_pw_aff
max
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3056
inline
isl
::
checked
::
multi_val
max_multi_val
() const;
3057
inline
isl
::
checked
::
multi_pw_aff
min
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3058
inline
isl
::
checked
::
multi_val
min_multi_val
() const;
3059
static inline
isl
::
checked
::
pw_multi_aff
multi_val_on_domain
(
isl
::
checked
::
set
domain
,
isl
::
checked
::
multi_val
mv);
3060
inline class
size
n_piece
() const;
3061
inline
isl
::
checked
::
multi_pw_aff
neg
() const;
3062
inline
boolean
plain_is_empty
() const;
3063
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3064
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
3065
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_multi_aff
&pma2) const;
3066
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3067
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_aff
&pma2) const;
3068
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_aff
&pma2) const;
3069
inline
isl
::
checked
::
pw_multi_aff
preimage_domain_wrapped_domain
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3070
inline
isl
::
checked
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3071
inline
isl
::
checked
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
multi_aff
&pma2) const;
3072
inline
isl
::
checked
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
pw_aff
&pma2) const;
3073
inline
isl
::
checked
::
multi_pw_aff
product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3074
inline
isl
::
checked
::
pw_multi_aff
product
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3075
inline
isl
::
checked
::
pw_multi_aff
product
(const
isl
::
checked
::
multi_aff
&pma2) const;
3076
inline
isl
::
checked
::
pw_multi_aff
product
(const
isl
::
checked
::
pw_aff
&pma2) const;
3077
inline
isl
::
checked
::
multi_pw_aff
pullback
(const
isl
::
checked
::
multi_pw_aff
&mpa2) const;
3078
inline
isl
::
checked
::
pw_multi_aff
pullback
(
isl
::
checked
::
multi_aff
ma
) const;
3079
inline
isl
::
checked
::
pw_multi_aff
pullback
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3080
inline
isl
::
checked
::
union_pw_multi_aff
pullback
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3081
inline
isl
::
checked
::
pw_multi_aff_list
pw_multi_aff_list
() const;
3082
inline
isl
::
checked
::
pw_multi_aff
range_factor_domain
() const;
3083
inline
isl
::
checked
::
pw_multi_aff
range_factor_range
() const;
3084
static inline
isl
::
checked
::
pw_multi_aff
range_map
(
isl
::
checked
::
space
space
);
3085
inline
isl
::
checked
::
multi_pw_aff
range_product
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3086
inline
isl
::
checked
::
multi_union_pw_aff
range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
3087
inline
isl
::
checked
::
pw_multi_aff
range_product
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3088
inline
isl
::
checked
::
union_pw_multi_aff
range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3089
inline
isl
::
checked
::
pw_multi_aff
range_product
(const
isl
::
checked
::
multi_aff
&pma2) const;
3090
inline
isl
::
checked
::
pw_multi_aff
range_product
(const
isl
::
checked
::
pw_aff
&pma2) const;
3091
inline
isl
::
checked
::
id
range_tuple_id
() const;
3092
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
3093
inline
isl
::
checked
::
multi_pw_aff
reset_range_tuple_id
() const;
3094
inline
isl
::
checked
::
pw_multi_aff
scale
(
isl
::
checked
::
multi_val
mv) const;
3095
inline
isl
::
checked
::
pw_multi_aff
scale
(
isl
::
checked
::
val
v) const;
3096
inline
isl
::
checked
::
pw_multi_aff
scale
(
long
v) const;
3097
inline
isl
::
checked
::
pw_multi_aff
scale_down
(
isl
::
checked
::
multi_val
mv) const;
3098
inline
isl
::
checked
::
pw_multi_aff
scale_down
(
isl
::
checked
::
val
v) const;
3099
inline
isl
::
checked
::
pw_multi_aff
scale_down
(
long
v) const;
3100
inline
isl
::
checked
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
pw_aff
&el) const;
3101
inline
isl
::
checked
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
union_pw_aff
&el) const;
3102
inline
isl
::
checked
::
pw_multi_aff
set_range_tuple
(
isl
::
checked
::
id
id
) const;
3103
inline
isl
::
checked
::
pw_multi_aff
set_range_tuple
(const std::
string
&
id
) const;
3104
inline class
size
size
() const;
3105
inline
isl
::
checked
::
space
space
() const;
3106
inline
isl
::
checked
::
space
get_space
() const;
3107
inline
isl
::
checked
::
multi_pw_aff
sub
(const
isl
::
checked
::
multi_pw_aff
&multi2) const;
3108
inline
isl
::
checked
::
multi_union_pw_aff
sub
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
3109
inline
isl
::
checked
::
pw_multi_aff
sub
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3110
inline
isl
::
checked
::
union_pw_multi_aff
sub
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3111
inline
isl
::
checked
::
pw_multi_aff
sub
(const
isl
::
checked
::
multi_aff
&pma2) const;
3112
inline
isl
::
checked
::
pw_multi_aff
sub
(const
isl
::
checked
::
pw_aff
&pma2) const;
3113
inline
isl
::
checked
::
pw_multi_aff
subtract_domain
(
isl
::
checked
::
set
set
) const;
3114
inline
isl
::
checked
::
union_pw_multi_aff
subtract_domain
(const
isl
::
checked
::
space
&
space
) const;
3115
inline
isl
::
checked
::
union_pw_multi_aff
subtract_domain
(const
isl
::
checked
::
union_set
&uset) const;
3116
inline
isl
::
checked
::
pw_multi_aff
subtract_domain
(const
isl
::
checked
::
basic_set
&
set
) const;
3117
inline
isl
::
checked
::
pw_multi_aff
subtract_domain
(const
isl
::
checked
::
point
&
set
) const;
3118
inline
isl
::
checked
::
pw_multi_aff_list
to_list
() const;
3119
inline
isl
::
checked
::
multi_pw_aff
to_multi_pw_aff
() const;
3120
inline
isl
::
checked
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
3121
inline
isl
::
checked
::
multi_pw_aff
unbind_params_insert_domain
(const
isl
::
checked
::
multi_id
&
domain
) const;
3122
inline
isl
::
checked
::
multi_pw_aff
union_add
(const
isl
::
checked
::
multi_pw_aff
&mpa2) const;
3123
inline
isl
::
checked
::
multi_union_pw_aff
union_add
(const
isl
::
checked
::
multi_union_pw_aff
&mupa2) const;
3124
inline
isl
::
checked
::
pw_multi_aff
union_add
(
isl
::
checked
::
pw_multi_aff
pma2) const;
3125
inline
isl
::
checked
::
union_pw_multi_aff
union_add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
3126
inline
isl
::
checked
::
pw_multi_aff
union_add
(const
isl
::
checked
::
multi_aff
&pma2) const;
3127
inline
isl
::
checked
::
pw_multi_aff
union_add
(const
isl
::
checked
::
pw_aff
&pma2) const;
3128
static inline
isl
::
checked
::
pw_multi_aff
zero
(
isl
::
checked
::
space
space
);
3129
};
3130
3131
// declarations for isl::pw_multi_aff_list
3132
inline
pw_multi_aff_list
manage
(
__isl_take
isl_pw_multi_aff_list *
ptr
);
3133
inline
pw_multi_aff_list
manage_copy
(
__isl_keep
isl_pw_multi_aff_list *
ptr
);
3134
3135
class
pw_multi_aff_list
{
3136
friend
inline
pw_multi_aff_list
manage
(
__isl_take
isl_pw_multi_aff_list *
ptr
);
3137
friend
inline
pw_multi_aff_list
manage_copy
(
__isl_keep
isl_pw_multi_aff_list *
ptr
);
3138
3139
protected
:
3140
isl_pw_multi_aff_list *
ptr
=
nullptr
;
3141
3142
inline
explicit
pw_multi_aff_list
(
__isl_take
isl_pw_multi_aff_list *
ptr
);
3143
3144
public
:
3145
inline
/* implicit */
pw_multi_aff_list
();
3146
inline
/* implicit */
pw_multi_aff_list
(
const
pw_multi_aff_list
&
obj
);
3147
inline
explicit
pw_multi_aff_list
(
isl::checked::ctx
ctx
,
int
n
);
3148
inline
explicit
pw_multi_aff_list
(
isl::checked::pw_multi_aff
el);
3149
inline
explicit
pw_multi_aff_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3150
inline
pw_multi_aff_list
&
operator=
(
pw_multi_aff_list
obj
);
3151
inline
~pw_multi_aff_list
();
3152
inline
__isl_give
isl_pw_multi_aff_list *
copy
() const &;
3153
inline
__isl_give
isl_pw_multi_aff_list *
copy
() && = delete;
3154
inline
__isl_keep
isl_pw_multi_aff_list *
get
() const;
3155
inline
__isl_give
isl_pw_multi_aff_list *
release
();
3156
inline
bool
is_null
() const;
3157
inline
isl
::
checked
::
ctx
ctx
() const;
3158
3159
inline
isl
::
checked
::
pw_multi_aff_list
add
(
isl
::
checked
::
pw_multi_aff
el) const;
3160
inline
isl
::
checked
::
pw_multi_aff
at
(
int
index) const;
3161
inline
isl
::
checked
::
pw_multi_aff
get_at
(
int
index) const;
3162
inline
isl
::
checked
::
pw_multi_aff_list
clear
() const;
3163
inline
isl
::
checked
::
pw_multi_aff_list
concat
(
isl
::
checked
::
pw_multi_aff_list
list2) const;
3164
inline
isl
::
checked
::
pw_multi_aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
3165
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
pw_multi_aff
)> &
fn
) const;
3166
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;
3167
inline
isl
::
checked
::
pw_multi_aff_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
pw_multi_aff
el) const;
3168
inline
isl
::
checked
::
pw_multi_aff_list
set_at
(
int
index,
isl
::
checked
::
pw_multi_aff
el) const;
3169
inline class
size
size
() const;
3170
};
3171
3172
// declarations for isl::schedule
3173
inline
schedule
manage
(
__isl_take
isl_schedule
*
ptr
);
3174
inline
schedule
manage_copy
(
__isl_keep
isl_schedule
*
ptr
);
3175
3176
class
schedule
{
3177
friend
inline
schedule
manage
(
__isl_take
isl_schedule
*
ptr
);
3178
friend
inline
schedule
manage_copy
(
__isl_keep
isl_schedule
*
ptr
);
3179
3180
protected
:
3181
isl_schedule
*
ptr
=
nullptr
;
3182
3183
inline
explicit
schedule
(
__isl_take
isl_schedule
*
ptr
);
3184
3185
public
:
3186
inline
/* implicit */
schedule
();
3187
inline
/* implicit */
schedule
(
const
schedule
&
obj
);
3188
inline
explicit
schedule
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3189
inline
schedule
&
operator=
(
schedule
obj
);
3190
inline
~schedule
();
3191
inline
__isl_give
isl_schedule
*
copy
() const &;
3192
inline
__isl_give
isl_schedule
*
copy
() && = delete;
3193
inline
__isl_keep
isl_schedule
*
get
() const;
3194
inline
__isl_give
isl_schedule
*
release
();
3195
inline
bool
is_null
() const;
3196
inline
isl
::
checked
::
ctx
ctx
() const;
3197
3198
inline
isl
::
checked
::
union_set
domain
() const;
3199
inline
isl
::
checked
::
union_set
get_domain
() const;
3200
static inline
isl
::
checked
::
schedule
from_domain
(
isl
::
checked
::
union_set
domain
);
3201
inline
isl
::
checked
::
union_map
map
() const;
3202
inline
isl
::
checked
::
union_map
get_map
() const;
3203
inline
isl
::
checked
::
schedule
pullback
(
isl
::
checked
::
union_pw_multi_aff
upma) const;
3204
inline
isl
::
checked
::
schedule_node
root
() const;
3205
inline
isl
::
checked
::
schedule_node
get_root
() const;
3206
};
3207
3208
// declarations for isl::schedule_constraints
3209
inline
schedule_constraints
manage
(
__isl_take
isl_schedule_constraints
*
ptr
);
3210
inline
schedule_constraints
manage_copy
(
__isl_keep
isl_schedule_constraints
*
ptr
);
3211
3212
class
schedule_constraints
{
3213
friend
inline
schedule_constraints
manage
(
__isl_take
isl_schedule_constraints
*
ptr
);
3214
friend
inline
schedule_constraints
manage_copy
(
__isl_keep
isl_schedule_constraints
*
ptr
);
3215
3216
protected
:
3217
isl_schedule_constraints
*
ptr
=
nullptr
;
3218
3219
inline
explicit
schedule_constraints
(
__isl_take
isl_schedule_constraints
*
ptr
);
3220
3221
public
:
3222
inline
/* implicit */
schedule_constraints
();
3223
inline
/* implicit */
schedule_constraints
(
const
schedule_constraints
&
obj
);
3224
inline
explicit
schedule_constraints
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3225
inline
schedule_constraints
&
operator=
(
schedule_constraints
obj
);
3226
inline
~schedule_constraints
();
3227
inline
__isl_give
isl_schedule_constraints
*
copy
() const &;
3228
inline
__isl_give
isl_schedule_constraints
*
copy
() && = delete;
3229
inline
__isl_keep
isl_schedule_constraints
*
get
() const;
3230
inline
__isl_give
isl_schedule_constraints
*
release
();
3231
inline
bool
is_null
() const;
3232
inline
isl
::
checked
::
ctx
ctx
() const;
3233
3234
inline
isl
::
checked
::
union_map
coincidence
() const;
3235
inline
isl
::
checked
::
union_map
get_coincidence
() const;
3236
inline
isl
::
checked
::
schedule
compute_schedule
() const;
3237
inline
isl
::
checked
::
union_map
conditional_validity
() const;
3238
inline
isl
::
checked
::
union_map
get_conditional_validity
() const;
3239
inline
isl
::
checked
::
union_map
conditional_validity_condition
() const;
3240
inline
isl
::
checked
::
union_map
get_conditional_validity_condition
() const;
3241
inline
isl
::
checked
::
set
context
() const;
3242
inline
isl
::
checked
::
set
get_context
() const;
3243
inline
isl
::
checked
::
union_set
domain
() const;
3244
inline
isl
::
checked
::
union_set
get_domain
() const;
3245
static inline
isl
::
checked
::
schedule_constraints
on_domain
(
isl
::
checked
::
union_set
domain
);
3246
inline
isl
::
checked
::
union_map
proximity
() const;
3247
inline
isl
::
checked
::
union_map
get_proximity
() const;
3248
inline
isl
::
checked
::
schedule_constraints
set_coincidence
(
isl
::
checked
::
union_map
coincidence
) const;
3249
inline
isl
::
checked
::
schedule_constraints
set_conditional_validity
(
isl
::
checked
::
union_map
condition
,
isl
::
checked
::
union_map
validity
) const;
3250
inline
isl
::
checked
::
schedule_constraints
set_context
(
isl
::
checked
::
set
context
) const;
3251
inline
isl
::
checked
::
schedule_constraints
set_proximity
(
isl
::
checked
::
union_map
proximity
) const;
3252
inline
isl
::
checked
::
schedule_constraints
set_validity
(
isl
::
checked
::
union_map
validity
) const;
3253
inline
isl
::
checked
::
union_map
validity
() const;
3254
inline
isl
::
checked
::
union_map
get_validity
() const;
3255
};
3256
3257
// declarations for isl::schedule_node
3258
inline
schedule_node
manage
(
__isl_take
isl_schedule_node
*
ptr
);
3259
inline
schedule_node
manage_copy
(
__isl_keep
isl_schedule_node
*
ptr
);
3260
3261
class
schedule_node
{
3262
friend
inline
schedule_node
manage
(
__isl_take
isl_schedule_node
*
ptr
);
3263
friend
inline
schedule_node
manage_copy
(
__isl_keep
isl_schedule_node
*
ptr
);
3264
3265
protected
:
3266
isl_schedule_node
*
ptr
=
nullptr
;
3267
3268
inline
explicit
schedule_node
(
__isl_take
isl_schedule_node
*
ptr
);
3269
3270
public
:
3271
inline
/* implicit */
schedule_node
();
3272
inline
/* implicit */
schedule_node
(
const
schedule_node
&
obj
);
3273
inline
schedule_node
&
operator=
(
schedule_node
obj
);
3274
inline
~schedule_node
();
3275
inline
__isl_give
isl_schedule_node
*
copy
() const &;
3276
inline
__isl_give
isl_schedule_node
*
copy
() && = delete;
3277
inline
__isl_keep
isl_schedule_node
*
get
() const;
3278
inline
__isl_give
isl_schedule_node
*
release
();
3279
inline
bool
is_null
() const;
3280
private:
3281
template <typename T,
3282
typename = typename std::enable_if<std::is_same<
3283
const decltype(
isl_schedule_node_get_type
(NULL)),
3284
const T>::value>::
type
>
3285
inline
boolean
isa_type
(T subtype) const;
3286
public:
3287
template <class T> inline
boolean
isa
() const;
3288
template <class T> inline T
as
() const;
3289
inline
isl
::
checked
::
ctx
ctx
() const;
3290
3291
inline
isl
::
checked
::
schedule_node
ancestor
(
int
generation) const;
3292
inline class
size
ancestor_child_position
(const
isl
::
checked
::
schedule_node
&
ancestor
) const;
3293
inline class
size
get_ancestor_child_position
(const
isl
::
checked
::
schedule_node
&
ancestor
) const;
3294
inline
isl
::
checked
::
schedule_node
child
(
int
pos
) const;
3295
inline class
size
child_position
() const;
3296
inline class
size
get_child_position
() const;
3297
inline
boolean
every_descendant
(const std::function<
boolean
(
isl
::
checked
::
schedule_node
)> &
test
) const;
3298
inline
isl
::
checked
::
schedule_node
first_child
() const;
3299
inline
stat
foreach_ancestor_top_down
(const std::function<
stat
(
isl
::
checked
::
schedule_node
)> &
fn
) const;
3300
inline
stat
foreach_descendant_top_down
(const std::function<
boolean
(
isl
::
checked
::
schedule_node
)> &
fn
) const;
3301
static inline
isl
::
checked
::
schedule_node
from_domain
(
isl
::
checked
::
union_set
domain
);
3302
static inline
isl
::
checked
::
schedule_node
from_extension
(
isl
::
checked
::
union_map
extension);
3303
inline
isl
::
checked
::
schedule_node
graft_after
(
isl
::
checked
::
schedule_node
graft) const;
3304
inline
isl
::
checked
::
schedule_node
graft_before
(
isl
::
checked
::
schedule_node
graft) const;
3305
inline
boolean
has_children
() const;
3306
inline
boolean
has_next_sibling
() const;
3307
inline
boolean
has_parent
() const;
3308
inline
boolean
has_previous_sibling
() const;
3309
inline
isl
::
checked
::
schedule_node
insert_context
(
isl
::
checked
::
set
context
) const;
3310
inline
isl
::
checked
::
schedule_node
insert_filter
(
isl
::
checked
::
union_set
filter) const;
3311
inline
isl
::
checked
::
schedule_node
insert_guard
(
isl
::
checked
::
set
context
) const;
3312
inline
isl
::
checked
::
schedule_node
insert_mark
(
isl
::
checked
::
id
mark) const;
3313
inline
isl
::
checked
::
schedule_node
insert_mark
(const std::
string
&mark) const;
3314
inline
isl
::
checked
::
schedule_node
insert_partial_schedule
(
isl
::
checked
::
multi_union_pw_aff
schedule
) const;
3315
inline
isl
::
checked
::
schedule_node
insert_sequence
(
isl
::
checked
::
union_set_list
filters) const;
3316
inline
isl
::
checked
::
schedule_node
insert_set
(
isl
::
checked
::
union_set_list
filters) const;
3317
inline
boolean
is_equal
(const
isl
::
checked
::
schedule_node
&node2) const;
3318
inline
boolean
is_subtree_anchored
() const;
3319
inline
isl
::
checked
::
schedule_node
map_descendant_bottom_up
(const std::function<
isl
::
checked
::
schedule_node
(
isl
::
checked
::
schedule_node
)> &
fn
) const;
3320
inline class
size
n_children
() const;
3321
inline
isl
::
checked
::
schedule_node
next_sibling
() const;
3322
inline
isl
::
checked
::
schedule_node
order_after
(
isl
::
checked
::
union_set
filter) const;
3323
inline
isl
::
checked
::
schedule_node
order_before
(
isl
::
checked
::
union_set
filter) const;
3324
inline
isl
::
checked
::
schedule_node
parent
() const;
3325
inline
isl
::
checked
::
multi_union_pw_aff
prefix_schedule_multi_union_pw_aff
() const;
3326
inline
isl
::
checked
::
multi_union_pw_aff
get_prefix_schedule_multi_union_pw_aff
() const;
3327
inline
isl
::
checked
::
union_map
prefix_schedule_union_map
() const;
3328
inline
isl
::
checked
::
union_map
get_prefix_schedule_union_map
() const;
3329
inline
isl
::
checked
::
union_pw_multi_aff
prefix_schedule_union_pw_multi_aff
() const;
3330
inline
isl
::
checked
::
union_pw_multi_aff
get_prefix_schedule_union_pw_multi_aff
() const;
3331
inline
isl
::
checked
::
schedule_node
previous_sibling
() const;
3332
inline
isl
::
checked
::
schedule_node
root
() const;
3333
inline
isl
::
checked
::
schedule
schedule
() const;
3334
inline
isl
::
checked
::
schedule
get_schedule
() const;
3335
inline
isl
::
checked
::
schedule_node
shared_ancestor
(const
isl
::
checked
::
schedule_node
&node2) const;
3336
inline
isl
::
checked
::
schedule_node
get_shared_ancestor
(const
isl
::
checked
::
schedule_node
&node2) const;
3337
inline class
size
tree_depth
() const;
3338
inline class
size
get_tree_depth
() const;
3339
};
3340
3341
// declarations for isl::schedule_node_band
3342
3343
class
schedule_node_band
: public
schedule_node
{
3344
template
<
class
T>
3345
friend
boolean
schedule_node::isa
()
const
;
3346
friend
schedule_node_band
schedule_node::as<schedule_node_band>
()
const
;
3347
static
const
auto
type
=
isl_schedule_node_band
;
3348
3349
protected
:
3350
inline
explicit
schedule_node_band
(
__isl_take
isl_schedule_node
*
ptr
);
3351
3352
public
:
3353
inline
/* implicit */
schedule_node_band
();
3354
inline
/* implicit */
schedule_node_band
(
const
schedule_node_band
&
obj
);
3355
inline
schedule_node_band
&
operator=
(
schedule_node_band
obj
);
3356
inline
isl::checked::ctx
ctx
()
const
;
3357
3358
inline
isl::checked::union_set
ast_build_options
()
const
;
3359
inline
isl::checked::union_set
get_ast_build_options
()
const
;
3360
inline
isl::checked::set
ast_isolate_option
()
const
;
3361
inline
isl::checked::set
get_ast_isolate_option
()
const
;
3362
inline
boolean
member_get_coincident
(
int
pos
)
const
;
3363
inline
schedule_node_band
member_set_coincident
(
int
pos
,
int
coincident)
const
;
3364
inline
schedule_node_band
mod
(
isl::checked::multi_val
mv)
const
;
3365
inline
class
size
n_member
()
const
;
3366
inline
isl::checked::multi_union_pw_aff
partial_schedule
()
const
;
3367
inline
isl::checked::multi_union_pw_aff
get_partial_schedule
()
const
;
3368
inline
boolean
permutable
()
const
;
3369
inline
boolean
get_permutable
()
const
;
3370
inline
schedule_node_band
scale
(
isl::checked::multi_val
mv)
const
;
3371
inline
schedule_node_band
scale_down
(
isl::checked::multi_val
mv)
const
;
3372
inline
schedule_node_band
set_ast_build_options
(
isl::checked::union_set
options
)
const
;
3373
inline
schedule_node_band
set_permutable
(
int
permutable
)
const
;
3374
inline
schedule_node_band
shift
(
isl::checked::multi_union_pw_aff
shift
)
const
;
3375
inline
schedule_node_band
split
(
int
pos
)
const
;
3376
inline
schedule_node_band
tile
(
isl::checked::multi_val
sizes
)
const
;
3377
inline
schedule_node_band
member_set_ast_loop_default
(
int
pos
)
const
;
3378
inline
schedule_node_band
member_set_ast_loop_atomic
(
int
pos
)
const
;
3379
inline
schedule_node_band
member_set_ast_loop_unroll
(
int
pos
)
const
;
3380
inline
schedule_node_band
member_set_ast_loop_separate
(
int
pos
)
const
;
3381
};
3382
3383
// declarations for isl::schedule_node_context
3384
3385
class
schedule_node_context
:
public
schedule_node
{
3386
template
<
class
T>
3387
friend
boolean
schedule_node::isa
()
const
;
3388
friend
schedule_node_context
schedule_node::as<schedule_node_context>
()
const
;
3389
static
const
auto
type
=
isl_schedule_node_context
;
3390
3391
protected
:
3392
inline
explicit
schedule_node_context
(
__isl_take
isl_schedule_node
*
ptr
);
3393
3394
public
:
3395
inline
/* implicit */
schedule_node_context
();
3396
inline
/* implicit */
schedule_node_context
(
const
schedule_node_context
&
obj
);
3397
inline
schedule_node_context
&
operator=
(
schedule_node_context
obj
);
3398
inline
isl::checked::ctx
ctx
()
const
;
3399
3400
inline
isl::checked::set
context
()
const
;
3401
inline
isl::checked::set
get_context
()
const
;
3402
};
3403
3404
// declarations for isl::schedule_node_domain
3405
3406
class
schedule_node_domain
:
public
schedule_node
{
3407
template
<
class
T>
3408
friend
boolean
schedule_node::isa
()
const
;
3409
friend
schedule_node_domain
schedule_node::as<schedule_node_domain>
()
const
;
3410
static
const
auto
type
=
isl_schedule_node_domain
;
3411
3412
protected
:
3413
inline
explicit
schedule_node_domain
(
__isl_take
isl_schedule_node
*
ptr
);
3414
3415
public
:
3416
inline
/* implicit */
schedule_node_domain
();
3417
inline
/* implicit */
schedule_node_domain
(
const
schedule_node_domain
&
obj
);
3418
inline
schedule_node_domain
&
operator=
(
schedule_node_domain
obj
);
3419
inline
isl::checked::ctx
ctx
()
const
;
3420
3421
inline
isl::checked::union_set
domain
()
const
;
3422
inline
isl::checked::union_set
get_domain
()
const
;
3423
};
3424
3425
// declarations for isl::schedule_node_expansion
3426
3427
class
schedule_node_expansion
:
public
schedule_node
{
3428
template
<
class
T>
3429
friend
boolean
schedule_node::isa
()
const
;
3430
friend
schedule_node_expansion
schedule_node::as<schedule_node_expansion>
()
const
;
3431
static
const
auto
type
=
isl_schedule_node_expansion
;
3432
3433
protected
:
3434
inline
explicit
schedule_node_expansion
(
__isl_take
isl_schedule_node
*
ptr
);
3435
3436
public
:
3437
inline
/* implicit */
schedule_node_expansion
();
3438
inline
/* implicit */
schedule_node_expansion
(
const
schedule_node_expansion
&
obj
);
3439
inline
schedule_node_expansion
&
operator=
(
schedule_node_expansion
obj
);
3440
inline
isl::checked::ctx
ctx
()
const
;
3441
3442
inline
isl::checked::union_pw_multi_aff
contraction
()
const
;
3443
inline
isl::checked::union_pw_multi_aff
get_contraction
()
const
;
3444
inline
isl::checked::union_map
expansion
()
const
;
3445
inline
isl::checked::union_map
get_expansion
()
const
;
3446
};
3447
3448
// declarations for isl::schedule_node_extension
3449
3450
class
schedule_node_extension
:
public
schedule_node
{
3451
template
<
class
T>
3452
friend
boolean
schedule_node::isa
()
const
;
3453
friend
schedule_node_extension
schedule_node::as<schedule_node_extension>
()
const
;
3454
static
const
auto
type
=
isl_schedule_node_extension
;
3455
3456
protected
:
3457
inline
explicit
schedule_node_extension
(
__isl_take
isl_schedule_node
*
ptr
);
3458
3459
public
:
3460
inline
/* implicit */
schedule_node_extension
();
3461
inline
/* implicit */
schedule_node_extension
(
const
schedule_node_extension
&
obj
);
3462
inline
schedule_node_extension
&
operator=
(
schedule_node_extension
obj
);
3463
inline
isl::checked::ctx
ctx
()
const
;
3464
3465
inline
isl::checked::union_map
extension
()
const
;
3466
inline
isl::checked::union_map
get_extension
()
const
;
3467
};
3468
3469
// declarations for isl::schedule_node_filter
3470
3471
class
schedule_node_filter
:
public
schedule_node
{
3472
template
<
class
T>
3473
friend
boolean
schedule_node::isa
()
const
;
3474
friend
schedule_node_filter
schedule_node::as<schedule_node_filter>
()
const
;
3475
static
const
auto
type
=
isl_schedule_node_filter
;
3476
3477
protected
:
3478
inline
explicit
schedule_node_filter
(
__isl_take
isl_schedule_node
*
ptr
);
3479
3480
public
:
3481
inline
/* implicit */
schedule_node_filter
();
3482
inline
/* implicit */
schedule_node_filter
(
const
schedule_node_filter
&
obj
);
3483
inline
schedule_node_filter
&
operator=
(
schedule_node_filter
obj
);
3484
inline
isl::checked::ctx
ctx
()
const
;
3485
3486
inline
isl::checked::union_set
filter
()
const
;
3487
inline
isl::checked::union_set
get_filter
()
const
;
3488
};
3489
3490
// declarations for isl::schedule_node_guard
3491
3492
class
schedule_node_guard
:
public
schedule_node
{
3493
template
<
class
T>
3494
friend
boolean
schedule_node::isa
()
const
;
3495
friend
schedule_node_guard
schedule_node::as<schedule_node_guard>
()
const
;
3496
static
const
auto
type
=
isl_schedule_node_guard
;
3497
3498
protected
:
3499
inline
explicit
schedule_node_guard
(
__isl_take
isl_schedule_node
*
ptr
);
3500
3501
public
:
3502
inline
/* implicit */
schedule_node_guard
();
3503
inline
/* implicit */
schedule_node_guard
(
const
schedule_node_guard
&
obj
);
3504
inline
schedule_node_guard
&
operator=
(
schedule_node_guard
obj
);
3505
inline
isl::checked::ctx
ctx
()
const
;
3506
3507
inline
isl::checked::set
guard
()
const
;
3508
inline
isl::checked::set
get_guard
()
const
;
3509
};
3510
3511
// declarations for isl::schedule_node_leaf
3512
3513
class
schedule_node_leaf
:
public
schedule_node
{
3514
template
<
class
T>
3515
friend
boolean
schedule_node::isa
()
const
;
3516
friend
schedule_node_leaf
schedule_node::as<schedule_node_leaf>
()
const
;
3517
static
const
auto
type
=
isl_schedule_node_leaf
;
3518
3519
protected
:
3520
inline
explicit
schedule_node_leaf
(
__isl_take
isl_schedule_node
*
ptr
);
3521
3522
public
:
3523
inline
/* implicit */
schedule_node_leaf
();
3524
inline
/* implicit */
schedule_node_leaf
(
const
schedule_node_leaf
&
obj
);
3525
inline
schedule_node_leaf
&
operator=
(
schedule_node_leaf
obj
);
3526
inline
isl::checked::ctx
ctx
()
const
;
3527
3528
};
3529
3530
// declarations for isl::schedule_node_mark
3531
3532
class
schedule_node_mark
:
public
schedule_node
{
3533
template
<
class
T>
3534
friend
boolean
schedule_node::isa
()
const
;
3535
friend
schedule_node_mark
schedule_node::as<schedule_node_mark>
()
const
;
3536
static
const
auto
type
=
isl_schedule_node_mark
;
3537
3538
protected
:
3539
inline
explicit
schedule_node_mark
(
__isl_take
isl_schedule_node
*
ptr
);
3540
3541
public
:
3542
inline
/* implicit */
schedule_node_mark
();
3543
inline
/* implicit */
schedule_node_mark
(
const
schedule_node_mark
&
obj
);
3544
inline
schedule_node_mark
&
operator=
(
schedule_node_mark
obj
);
3545
inline
isl::checked::ctx
ctx
()
const
;
3546
3547
};
3548
3549
// declarations for isl::schedule_node_sequence
3550
3551
class
schedule_node_sequence
:
public
schedule_node
{
3552
template
<
class
T>
3553
friend
boolean
schedule_node::isa
()
const
;
3554
friend
schedule_node_sequence
schedule_node::as<schedule_node_sequence>
()
const
;
3555
static
const
auto
type
=
isl_schedule_node_sequence
;
3556
3557
protected
:
3558
inline
explicit
schedule_node_sequence
(
__isl_take
isl_schedule_node
*
ptr
);
3559
3560
public
:
3561
inline
/* implicit */
schedule_node_sequence
();
3562
inline
/* implicit */
schedule_node_sequence
(
const
schedule_node_sequence
&
obj
);
3563
inline
schedule_node_sequence
&
operator=
(
schedule_node_sequence
obj
);
3564
inline
isl::checked::ctx
ctx
()
const
;
3565
3566
};
3567
3568
// declarations for isl::schedule_node_set
3569
3570
class
schedule_node_set
:
public
schedule_node
{
3571
template
<
class
T>
3572
friend
boolean
schedule_node::isa
()
const
;
3573
friend
schedule_node_set
schedule_node::as<schedule_node_set>
()
const
;
3574
static
const
auto
type
=
isl_schedule_node_set
;
3575
3576
protected
:
3577
inline
explicit
schedule_node_set
(
__isl_take
isl_schedule_node
*
ptr
);
3578
3579
public
:
3580
inline
/* implicit */
schedule_node_set
();
3581
inline
/* implicit */
schedule_node_set
(
const
schedule_node_set
&
obj
);
3582
inline
schedule_node_set
&
operator=
(
schedule_node_set
obj
);
3583
inline
isl::checked::ctx
ctx
()
const
;
3584
3585
};
3586
3587
// declarations for isl::set
3588
inline
set
manage
(
__isl_take
isl_set
*ptr);
3589
inline
set
manage_copy
(
__isl_keep
isl_set
*ptr);
3590
3591
class
set
{
3592
friend
inline
set
manage
(
__isl_take
isl_set
*
ptr
);
3593
friend
inline
set
manage_copy
(
__isl_keep
isl_set
*
ptr
);
3594
3595
protected
:
3596
isl_set
*
ptr
=
nullptr
;
3597
3598
inline
explicit
set
(
__isl_take
isl_set
*
ptr
);
3599
3600
public
:
3601
inline
/* implicit */
set
();
3602
inline
/* implicit */
set
(
const
set
&
obj
);
3603
inline
/* implicit */
set
(
isl::checked::basic_set
bset);
3604
inline
/* implicit */
set
(
isl::checked::point
pnt);
3605
inline
explicit
set
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3606
inline
set
&
operator=
(
set
obj
);
3607
inline
~set
();
3608
inline
__isl_give
isl_set
*
copy
() const &;
3609
inline
__isl_give
isl_set
*
copy
() && = delete;
3610
inline
__isl_keep
isl_set
*
get
() const;
3611
inline
__isl_give
isl_set
*
release
();
3612
inline
bool
is_null
() const;
3613
inline
isl
::
checked
::
ctx
ctx
() const;
3614
3615
inline
isl
::
checked
::
basic_set
affine_hull
() const;
3616
inline
isl
::
checked
::
set
apply
(
isl
::
checked
::
map
map
) const;
3617
inline
isl
::
checked
::
union_set
apply
(const
isl
::
checked
::
union_map
&umap) const;
3618
inline
isl
::
checked
::
set
apply
(const
isl
::
checked
::
basic_map
&
map
) const;
3619
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
3620
inline
isl
::
checked
::
set
as_set
() const;
3621
inline
isl
::
checked
::
set
bind
(
isl
::
checked
::
multi_id
tuple
) const;
3622
inline
isl
::
checked
::
set
coalesce
() const;
3623
inline
isl
::
checked
::
set
complement
() const;
3624
inline
isl
::
checked
::
union_set
compute_divs
() const;
3625
inline
isl
::
checked
::
set
detect_equalities
() const;
3626
inline
isl
::
checked
::
val
dim_max_val
(
int
pos
) const;
3627
inline
isl
::
checked
::
val
dim_min_val
(
int
pos
) const;
3628
inline
isl
::
checked
::
set
drop_unused_params
() const;
3629
static inline
isl
::
checked
::
set
empty
(
isl
::
checked
::
space
space
);
3630
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
checked
::
set
)> &
test
) const;
3631
inline
isl
::
checked
::
set
extract_set
(const
isl
::
checked
::
space
&
space
) const;
3632
inline
isl
::
checked
::
set
flatten
() const;
3633
inline
stat
foreach_basic_set
(const std::function<
stat
(
isl
::
checked
::
basic_set
)> &
fn
) const;
3634
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
checked
::
point
)> &
fn
) const;
3635
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
checked
::
set
)> &
fn
) const;
3636
inline
isl
::
checked
::
set
gist
(
isl
::
checked
::
set
context
) const;
3637
inline
isl
::
checked
::
union_set
gist
(const
isl
::
checked
::
union_set
&
context
) const;
3638
inline
isl
::
checked
::
set
gist
(const
isl
::
checked
::
basic_set
&
context
) const;
3639
inline
isl
::
checked
::
set
gist
(const
isl
::
checked
::
point
&
context
) const;
3640
inline
isl
::
checked
::
set
gist_params
(
isl
::
checked
::
set
context
) const;
3641
inline
isl
::
checked
::
map
identity
() const;
3642
inline
isl
::
checked
::
pw_aff
indicator_function
() const;
3643
inline
isl
::
checked
::
map
insert_domain
(
isl
::
checked
::
space
domain
) const;
3644
inline
isl
::
checked
::
set
intersect
(
isl
::
checked
::
set
set2
) const;
3645
inline
isl
::
checked
::
union_set
intersect
(const
isl
::
checked
::
union_set
&uset2) const;
3646
inline
isl
::
checked
::
set
intersect
(const
isl
::
checked
::
basic_set
&
set2
) const;
3647
inline
isl
::
checked
::
set
intersect
(const
isl
::
checked
::
point
&
set2
) const;
3648
inline
isl
::
checked
::
set
intersect_params
(
isl
::
checked
::
set
params
) const;
3649
inline
boolean
involves_locals
() const;
3650
inline
boolean
is_disjoint
(const
isl
::
checked
::
set
&
set2
) const;
3651
inline
boolean
is_disjoint
(const
isl
::
checked
::
union_set
&uset2) const;
3652
inline
boolean
is_disjoint
(const
isl
::
checked
::
basic_set
&
set2
) const;
3653
inline
boolean
is_disjoint
(const
isl
::
checked
::
point
&
set2
) const;
3654
inline
boolean
is_empty
() const;
3655
inline
boolean
is_equal
(const
isl
::
checked
::
set
&
set2
) const;
3656
inline
boolean
is_equal
(const
isl
::
checked
::
union_set
&uset2) const;
3657
inline
boolean
is_equal
(const
isl
::
checked
::
basic_set
&
set2
) const;
3658
inline
boolean
is_equal
(const
isl
::
checked
::
point
&
set2
) const;
3659
inline
boolean
is_singleton
() const;
3660
inline
boolean
is_strict_subset
(const
isl
::
checked
::
set
&
set2
) const;
3661
inline
boolean
is_strict_subset
(const
isl
::
checked
::
union_set
&uset2) const;
3662
inline
boolean
is_strict_subset
(const
isl
::
checked
::
basic_set
&
set2
) const;
3663
inline
boolean
is_strict_subset
(const
isl
::
checked
::
point
&
set2
) const;
3664
inline
boolean
is_subset
(const
isl
::
checked
::
set
&
set2
) const;
3665
inline
boolean
is_subset
(const
isl
::
checked
::
union_set
&uset2) const;
3666
inline
boolean
is_subset
(const
isl
::
checked
::
basic_set
&
set2
) const;
3667
inline
boolean
is_subset
(const
isl
::
checked
::
point
&
set2
) const;
3668
inline
boolean
is_wrapping
() const;
3669
inline
boolean
isa_set
() const;
3670
inline
isl
::
checked
::
fixed_box
lattice_tile
() const;
3671
inline
isl
::
checked
::
fixed_box
get_lattice_tile
() const;
3672
inline
isl
::
checked
::
set
lexmax
() const;
3673
inline
isl
::
checked
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
3674
inline
isl
::
checked
::
set
lexmin
() const;
3675
inline
isl
::
checked
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
3676
inline
isl
::
checked
::
set
lower_bound
(
isl
::
checked
::
multi_pw_aff
lower) const;
3677
inline
isl
::
checked
::
set
lower_bound
(
isl
::
checked
::
multi_val
lower) const;
3678
inline
isl
::
checked
::
multi_pw_aff
max_multi_pw_aff
() const;
3679
inline
isl
::
checked
::
val
max_val
(const
isl
::
checked
::
aff
&
obj
) const;
3680
inline
isl
::
checked
::
multi_pw_aff
min_multi_pw_aff
() const;
3681
inline
isl
::
checked
::
val
min_val
(const
isl
::
checked
::
aff
&
obj
) const;
3682
inline class
size
n_basic_set
() const;
3683
inline
isl
::
checked
::
pw_aff
param_pw_aff_on_domain
(
isl
::
checked
::
id
id
) const;
3684
inline
isl
::
checked
::
pw_aff
param_pw_aff_on_domain
(const std::
string
&
id
) const;
3685
inline
isl
::
checked
::
set
params
() const;
3686
inline
isl
::
checked
::
multi_val
plain_multi_val_if_fixed
() const;
3687
inline
isl
::
checked
::
multi_val
get_plain_multi_val_if_fixed
() const;
3688
inline
isl
::
checked
::
basic_set
polyhedral_hull
() const;
3689
inline
isl
::
checked
::
set
preimage
(
isl
::
checked
::
multi_aff
ma
) const;
3690
inline
isl
::
checked
::
set
preimage
(
isl
::
checked
::
multi_pw_aff
mpa) const;
3691
inline
isl
::
checked
::
set
preimage
(
isl
::
checked
::
pw_multi_aff
pma
) const;
3692
inline
isl
::
checked
::
union_set
preimage
(const
isl
::
checked
::
union_pw_multi_aff
&upma) const;
3693
inline
isl
::
checked
::
set
product
(
isl
::
checked
::
set
set2
) const;
3694
inline
isl
::
checked
::
set
project_out_all_params
() const;
3695
inline
isl
::
checked
::
set
project_out_param
(
isl
::
checked
::
id
id
) const;
3696
inline
isl
::
checked
::
set
project_out_param
(const std::
string
&
id
) const;
3697
inline
isl
::
checked
::
set
project_out_param
(
isl
::
checked
::
id_list
list) const;
3698
inline
isl
::
checked
::
pw_aff
pw_aff_on_domain
(
isl
::
checked
::
val
v) const;
3699
inline
isl
::
checked
::
pw_aff
pw_aff_on_domain
(
long
v) const;
3700
inline
isl
::
checked
::
pw_multi_aff
pw_multi_aff_on_domain
(
isl
::
checked
::
multi_val
mv) const;
3701
inline
isl
::
checked
::
basic_set
sample
() const;
3702
inline
isl
::
checked
::
point
sample_point
() const;
3703
inline
isl
::
checked
::
set_list
set_list
() const;
3704
inline
isl
::
checked
::
fixed_box
simple_fixed_box_hull
() const;
3705
inline
isl
::
checked
::
fixed_box
get_simple_fixed_box_hull
() const;
3706
inline
isl
::
checked
::
space
space
() const;
3707
inline
isl
::
checked
::
space
get_space
() const;
3708
inline
isl
::
checked
::
val
stride
(
int
pos
) const;
3709
inline
isl
::
checked
::
val
get_stride
(
int
pos
) const;
3710
inline
isl
::
checked
::
set
subtract
(
isl
::
checked
::
set
set2
) const;
3711
inline
isl
::
checked
::
union_set
subtract
(const
isl
::
checked
::
union_set
&uset2) const;
3712
inline
isl
::
checked
::
set
subtract
(const
isl
::
checked
::
basic_set
&
set2
) const;
3713
inline
isl
::
checked
::
set
subtract
(const
isl
::
checked
::
point
&
set2
) const;
3714
inline
isl
::
checked
::
set_list
to_list
() const;
3715
inline
isl
::
checked
::
union_set
to_union_set
() const;
3716
inline
isl
::
checked
::
map
translation
() const;
3717
inline class
size
tuple_dim
() const;
3718
inline
isl
::
checked
::
set
unbind_params
(
isl
::
checked
::
multi_id
tuple
) const;
3719
inline
isl
::
checked
::
map
unbind_params_insert_domain
(
isl
::
checked
::
multi_id
domain
) const;
3720
inline
isl
::
checked
::
set
unite
(
isl
::
checked
::
set
set2
) const;
3721
inline
isl
::
checked
::
union_set
unite
(const
isl
::
checked
::
union_set
&uset2) const;
3722
inline
isl
::
checked
::
set
unite
(const
isl
::
checked
::
basic_set
&
set2
) const;
3723
inline
isl
::
checked
::
set
unite
(const
isl
::
checked
::
point
&
set2
) const;
3724
static inline
isl
::
checked
::
set
universe
(
isl
::
checked
::
space
space
);
3725
inline
isl
::
checked
::
basic_set
unshifted_simple_hull
() const;
3726
inline
isl
::
checked
::
map
unwrap
() const;
3727
inline
isl
::
checked
::
set
upper_bound
(
isl
::
checked
::
multi_pw_aff
upper) const;
3728
inline
isl
::
checked
::
set
upper_bound
(
isl
::
checked
::
multi_val
upper) const;
3729
inline
isl
::
checked
::
set
wrapped_reverse
() const;
3730
};
3731
3732
// declarations for isl::set_list
3733
inline
set_list
manage
(
__isl_take
isl_set_list
*
ptr
);
3734
inline
set_list
manage_copy
(
__isl_keep
isl_set_list
*
ptr
);
3735
3736
class
set_list
{
3737
friend
inline
set_list
manage
(
__isl_take
isl_set_list
*
ptr
);
3738
friend
inline
set_list
manage_copy
(
__isl_keep
isl_set_list
*
ptr
);
3739
3740
protected
:
3741
isl_set_list
*
ptr
=
nullptr
;
3742
3743
inline
explicit
set_list
(
__isl_take
isl_set_list
*
ptr
);
3744
3745
public
:
3746
inline
/* implicit */
set_list
();
3747
inline
/* implicit */
set_list
(
const
set_list
&
obj
);
3748
inline
explicit
set_list
(
isl::checked::ctx
ctx
,
int
n
);
3749
inline
explicit
set_list
(
isl::checked::set
el);
3750
inline
explicit
set_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3751
inline
set_list
&
operator=
(
set_list
obj
);
3752
inline
~set_list
();
3753
inline
__isl_give
isl_set_list
*
copy
() const &;
3754
inline
__isl_give
isl_set_list
*
copy
() && = delete;
3755
inline
__isl_keep
isl_set_list
*
get
() const;
3756
inline
__isl_give
isl_set_list
*
release
();
3757
inline
bool
is_null
() const;
3758
inline
isl
::
checked
::
ctx
ctx
() const;
3759
3760
inline
isl
::
checked
::
set_list
add
(
isl
::
checked
::
set
el) const;
3761
inline
isl
::
checked
::
set
at
(
int
index) const;
3762
inline
isl
::
checked
::
set
get_at
(
int
index) const;
3763
inline
isl
::
checked
::
set_list
clear
() const;
3764
inline
isl
::
checked
::
set_list
concat
(
isl
::
checked
::
set_list
list2) const;
3765
inline
isl
::
checked
::
set_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
3766
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
set
)> &
fn
) const;
3767
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;
3768
inline
isl
::
checked
::
set_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
set
el) const;
3769
inline
isl
::
checked
::
set_list
set_at
(
int
index,
isl
::
checked
::
set
el) const;
3770
inline class
size
size
() const;
3771
};
3772
3773
// declarations for isl::space
3774
inline
space
manage
(
__isl_take
isl_space
*
ptr
);
3775
inline
space
manage_copy
(
__isl_keep
isl_space
*
ptr
);
3776
3777
class
space
{
3778
friend
inline
space
manage
(
__isl_take
isl_space
*
ptr
);
3779
friend
inline
space
manage_copy
(
__isl_keep
isl_space
*
ptr
);
3780
3781
protected
:
3782
isl_space
*
ptr
=
nullptr
;
3783
3784
inline
explicit
space
(
__isl_take
isl_space
*
ptr
);
3785
3786
public
:
3787
inline
/* implicit */
space
();
3788
inline
/* implicit */
space
(
const
space
&
obj
);
3789
inline
explicit
space
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3790
inline
space
&
operator=
(
space
obj
);
3791
inline
~space
();
3792
inline
__isl_give
isl_space
*
copy
() const &;
3793
inline
__isl_give
isl_space
*
copy
() && = delete;
3794
inline
__isl_keep
isl_space
*
get
() const;
3795
inline
__isl_give
isl_space
*
release
();
3796
inline
bool
is_null
() const;
3797
inline
isl
::
checked
::
ctx
ctx
() const;
3798
3799
inline
isl
::
checked
::
space
add_named_tuple
(
isl
::
checked
::
id
tuple_id
,
unsigned
int
dim
) const;
3800
inline
isl
::
checked
::
space
add_named_tuple
(const std::
string
&
tuple_id
,
unsigned
int
dim
) const;
3801
inline
isl
::
checked
::
space
add_param
(
isl
::
checked
::
id
id
) const;
3802
inline
isl
::
checked
::
space
add_param
(const std::
string
&
id
) const;
3803
inline
isl
::
checked
::
space
add_unnamed_tuple
(
unsigned
int
dim
) const;
3804
inline
isl
::
checked
::
space
curry
() const;
3805
inline
isl
::
checked
::
space
domain
() const;
3806
inline
isl
::
checked
::
multi_aff
domain_map_multi_aff
() const;
3807
inline
isl
::
checked
::
pw_multi_aff
domain_map_pw_multi_aff
() const;
3808
inline
isl
::
checked
::
space
domain_reverse
() const;
3809
inline
isl
::
checked
::
id
domain_tuple_id
() const;
3810
inline
isl
::
checked
::
id
get_domain_tuple_id
() const;
3811
inline
isl
::
checked
::
space
drop_all_params
() const;
3812
inline
isl
::
checked
::
space
flatten_domain
() const;
3813
inline
isl
::
checked
::
space
flatten_range
() const;
3814
inline
boolean
has_domain_tuple_id
() const;
3815
inline
boolean
has_range_tuple_id
() const;
3816
inline
isl
::
checked
::
multi_aff
identity_multi_aff_on_domain
() const;
3817
inline
isl
::
checked
::
multi_pw_aff
identity_multi_pw_aff_on_domain
() const;
3818
inline
isl
::
checked
::
pw_multi_aff
identity_pw_multi_aff_on_domain
() const;
3819
inline
boolean
is_equal
(const
isl
::
checked
::
space
&space2) const;
3820
inline
boolean
is_wrapping
() const;
3821
inline
isl
::
checked
::
space
map_from_set
() const;
3822
inline
isl
::
checked
::
multi_aff
multi_aff
(
isl
::
checked
::
aff_list
list) const;
3823
inline
isl
::
checked
::
multi_aff
multi_aff_on_domain
(
isl
::
checked
::
multi_val
mv) const;
3824
inline
isl
::
checked
::
multi_id
multi_id
(
isl
::
checked
::
id_list
list) const;
3825
inline
isl
::
checked
::
multi_pw_aff
multi_pw_aff
(
isl
::
checked
::
pw_aff_list
list) const;
3826
inline
isl
::
checked
::
multi_union_pw_aff
multi_union_pw_aff
(
isl
::
checked
::
union_pw_aff_list
list) const;
3827
inline
isl
::
checked
::
multi_val
multi_val
(
isl
::
checked
::
val_list
list) const;
3828
inline
isl
::
checked
::
aff
param_aff_on_domain
(
isl
::
checked
::
id
id
) const;
3829
inline
isl
::
checked
::
aff
param_aff_on_domain
(const std::
string
&
id
) const;
3830
inline
isl
::
checked
::
space
params
() const;
3831
inline
isl
::
checked
::
space
product
(
isl
::
checked
::
space
right) const;
3832
inline
isl
::
checked
::
space
range
() const;
3833
inline
isl
::
checked
::
multi_aff
range_map_multi_aff
() const;
3834
inline
isl
::
checked
::
pw_multi_aff
range_map_pw_multi_aff
() const;
3835
inline
isl
::
checked
::
space
range_reverse
() const;
3836
inline
isl
::
checked
::
id
range_tuple_id
() const;
3837
inline
isl
::
checked
::
id
get_range_tuple_id
() const;
3838
inline
isl
::
checked
::
space
reverse
() const;
3839
inline
isl
::
checked
::
space
set_domain_tuple
(
isl
::
checked
::
id
id
) const;
3840
inline
isl
::
checked
::
space
set_domain_tuple
(const std::
string
&
id
) const;
3841
inline
isl
::
checked
::
space
set_range_tuple
(
isl
::
checked
::
id
id
) const;
3842
inline
isl
::
checked
::
space
set_range_tuple
(const std::
string
&
id
) const;
3843
inline
isl
::
checked
::
space
uncurry
() const;
3844
static inline
isl
::
checked
::
space
unit
(
isl
::
checked
::
ctx
ctx
);
3845
inline
isl
::
checked
::
map
universe_map
() const;
3846
inline
isl
::
checked
::
set
universe_set
() const;
3847
inline
isl
::
checked
::
space
unwrap
() const;
3848
inline
isl
::
checked
::
space
wrap
() const;
3849
inline
isl
::
checked
::
space
wrapped_reverse
() const;
3850
inline
isl
::
checked
::
aff
zero_aff_on_domain
() const;
3851
inline
isl
::
checked
::
multi_aff
zero_multi_aff
() const;
3852
inline
isl
::
checked
::
multi_pw_aff
zero_multi_pw_aff
() const;
3853
inline
isl
::
checked
::
multi_union_pw_aff
zero_multi_union_pw_aff
() const;
3854
inline
isl
::
checked
::
multi_val
zero_multi_val
() const;
3855
};
3856
3857
// declarations for isl::union_access_info
3858
inline
union_access_info
manage
(
__isl_take
isl_union_access_info
*
ptr
);
3859
inline
union_access_info
manage_copy
(
__isl_keep
isl_union_access_info
*
ptr
);
3860
3861
class
union_access_info
{
3862
friend
inline
union_access_info
manage
(
__isl_take
isl_union_access_info
*
ptr
);
3863
friend
inline
union_access_info
manage_copy
(
__isl_keep
isl_union_access_info
*
ptr
);
3864
3865
protected
:
3866
isl_union_access_info
*
ptr
=
nullptr
;
3867
3868
inline
explicit
union_access_info
(
__isl_take
isl_union_access_info
*
ptr
);
3869
3870
public
:
3871
inline
/* implicit */
union_access_info
();
3872
inline
/* implicit */
union_access_info
(
const
union_access_info
&
obj
);
3873
inline
explicit
union_access_info
(
isl::checked::union_map
sink);
3874
inline
union_access_info
&
operator=
(
union_access_info
obj
);
3875
inline
~union_access_info
();
3876
inline
__isl_give
isl_union_access_info
*
copy
() const &;
3877
inline
__isl_give
isl_union_access_info
*
copy
() && = delete;
3878
inline
__isl_keep
isl_union_access_info
*
get
() const;
3879
inline
__isl_give
isl_union_access_info
*
release
();
3880
inline
bool
is_null
() const;
3881
inline
isl
::
checked
::
ctx
ctx
() const;
3882
3883
inline
isl
::
checked
::
union_flow
compute_flow
() const;
3884
inline
isl
::
checked
::
union_access_info
set_kill
(
isl
::
checked
::
union_map
kill) const;
3885
inline
isl
::
checked
::
union_access_info
set_may_source
(
isl
::
checked
::
union_map
may_source) const;
3886
inline
isl
::
checked
::
union_access_info
set_must_source
(
isl
::
checked
::
union_map
must_source) const;
3887
inline
isl
::
checked
::
union_access_info
set_schedule
(
isl
::
checked
::
schedule
schedule
) const;
3888
inline
isl
::
checked
::
union_access_info
set_schedule_map
(
isl
::
checked
::
union_map
schedule_map) const;
3889
};
3890
3891
// declarations for isl::union_flow
3892
inline
union_flow
manage
(
__isl_take
isl_union_flow
*
ptr
);
3893
inline
union_flow
manage_copy
(
__isl_keep
isl_union_flow
*
ptr
);
3894
3895
class
union_flow
{
3896
friend
inline
union_flow
manage
(
__isl_take
isl_union_flow
*
ptr
);
3897
friend
inline
union_flow
manage_copy
(
__isl_keep
isl_union_flow
*
ptr
);
3898
3899
protected
:
3900
isl_union_flow
*
ptr
=
nullptr
;
3901
3902
inline
explicit
union_flow
(
__isl_take
isl_union_flow
*
ptr
);
3903
3904
public
:
3905
inline
/* implicit */
union_flow
();
3906
inline
/* implicit */
union_flow
(
const
union_flow
&
obj
);
3907
inline
union_flow
&
operator=
(
union_flow
obj
);
3908
inline
~union_flow
();
3909
inline
__isl_give
isl_union_flow
*
copy
() const &;
3910
inline
__isl_give
isl_union_flow
*
copy
() && = delete;
3911
inline
__isl_keep
isl_union_flow
*
get
() const;
3912
inline
__isl_give
isl_union_flow
*
release
();
3913
inline
bool
is_null
() const;
3914
inline
isl
::
checked
::
ctx
ctx
() const;
3915
3916
inline
isl
::
checked
::
union_map
full_may_dependence
() const;
3917
inline
isl
::
checked
::
union_map
get_full_may_dependence
() const;
3918
inline
isl
::
checked
::
union_map
full_must_dependence
() const;
3919
inline
isl
::
checked
::
union_map
get_full_must_dependence
() const;
3920
inline
isl
::
checked
::
union_map
may_dependence
() const;
3921
inline
isl
::
checked
::
union_map
get_may_dependence
() const;
3922
inline
isl
::
checked
::
union_map
may_no_source
() const;
3923
inline
isl
::
checked
::
union_map
get_may_no_source
() const;
3924
inline
isl
::
checked
::
union_map
must_dependence
() const;
3925
inline
isl
::
checked
::
union_map
get_must_dependence
() const;
3926
inline
isl
::
checked
::
union_map
must_no_source
() const;
3927
inline
isl
::
checked
::
union_map
get_must_no_source
() const;
3928
};
3929
3930
// declarations for isl::union_map
3931
inline
union_map
manage
(
__isl_take
isl_union_map
*
ptr
);
3932
inline
union_map
manage_copy
(
__isl_keep
isl_union_map
*
ptr
);
3933
3934
class
union_map
{
3935
friend
inline
union_map
manage
(
__isl_take
isl_union_map
*
ptr
);
3936
friend
inline
union_map
manage_copy
(
__isl_keep
isl_union_map
*
ptr
);
3937
3938
protected
:
3939
isl_union_map
*
ptr
=
nullptr
;
3940
3941
inline
explicit
union_map
(
__isl_take
isl_union_map
*
ptr
);
3942
3943
public
:
3944
inline
/* implicit */
union_map
();
3945
inline
/* implicit */
union_map
(
const
union_map
&
obj
);
3946
inline
/* implicit */
union_map
(
isl::checked::basic_map
bmap);
3947
inline
/* implicit */
union_map
(
isl::checked::map
map
);
3948
inline
explicit
union_map
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
3949
inline
union_map
&
operator=
(
union_map
obj
);
3950
inline
~union_map
();
3951
inline
__isl_give
isl_union_map
*
copy
() const &;
3952
inline
__isl_give
isl_union_map
*
copy
() && = delete;
3953
inline
__isl_keep
isl_union_map
*
get
() const;
3954
inline
__isl_give
isl_union_map
*
release
();
3955
inline
bool
is_null
() const;
3956
inline
isl
::
checked
::
ctx
ctx
() const;
3957
3958
inline
isl
::
checked
::
union_map
affine_hull
() const;
3959
inline
isl
::
checked
::
union_map
apply_domain
(
isl
::
checked
::
union_map
umap2) const;
3960
inline
isl
::
checked
::
union_map
apply_range
(
isl
::
checked
::
union_map
umap2) const;
3961
inline
isl
::
checked
::
map
as_map
() const;
3962
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
3963
inline
isl
::
checked
::
union_pw_multi_aff
as_union_pw_multi_aff
() const;
3964
inline
isl
::
checked
::
union_set
bind_range
(
isl
::
checked
::
multi_id
tuple
) const;
3965
inline
isl
::
checked
::
union_map
coalesce
() const;
3966
inline
isl
::
checked
::
union_map
compute_divs
() const;
3967
inline
isl
::
checked
::
union_map
curry
() const;
3968
inline
isl
::
checked
::
union_set
deltas
() const;
3969
inline
isl
::
checked
::
union_map
detect_equalities
() const;
3970
inline
isl
::
checked
::
union_set
domain
() const;
3971
inline
isl
::
checked
::
union_map
domain_factor_domain
() const;
3972
inline
isl
::
checked
::
union_map
domain_factor_range
() const;
3973
inline
isl
::
checked
::
union_map
domain_map
() const;
3974
inline
isl
::
checked
::
union_pw_multi_aff
domain_map_union_pw_multi_aff
() const;
3975
inline
isl
::
checked
::
union_map
domain_product
(
isl
::
checked
::
union_map
umap2) const;
3976
inline
isl
::
checked
::
union_map
domain_reverse
() const;
3977
inline
isl
::
checked
::
union_map
drop_unused_params
() const;
3978
static inline
isl
::
checked
::
union_map
empty
(
isl
::
checked
::
ctx
ctx
);
3979
inline
isl
::
checked
::
union_map
eq_at
(
isl
::
checked
::
multi_union_pw_aff
mupa
) const;
3980
inline
boolean
every_map
(const std::function<
boolean
(
isl
::
checked
::
map
)> &
test
) const;
3981
inline
isl
::
checked
::
map
extract_map
(
isl
::
checked
::
space
space
) const;
3982
inline
isl
::
checked
::
union_map
factor_domain
() const;
3983
inline
isl
::
checked
::
union_map
factor_range
() const;
3984
inline
isl
::
checked
::
union_map
fixed_power
(
isl
::
checked
::
val
exp) const;
3985
inline
isl
::
checked
::
union_map
fixed_power
(
long
exp) const;
3986
inline
stat
foreach_map
(const std::function<
stat
(
isl
::
checked
::
map
)> &
fn
) const;
3987
static inline
isl
::
checked
::
union_map
from
(
isl
::
checked
::
multi_union_pw_aff
mupa
);
3988
static inline
isl
::
checked
::
union_map
from
(
isl
::
checked
::
union_pw_multi_aff
upma);
3989
static inline
isl
::
checked
::
union_map
from_domain
(
isl
::
checked
::
union_set
uset);
3990
static inline
isl
::
checked
::
union_map
from_domain_and_range
(
isl
::
checked
::
union_set
domain
,
isl
::
checked
::
union_set
range
);
3991
static inline
isl
::
checked
::
union_map
from_range
(
isl
::
checked
::
union_set
uset);
3992
inline
isl
::
checked
::
union_map
gist
(
isl
::
checked
::
union_map
context
) const;
3993
inline
isl
::
checked
::
union_map
gist_domain
(
isl
::
checked
::
union_set
uset) const;
3994
inline
isl
::
checked
::
union_map
gist_params
(
isl
::
checked
::
set
set
) const;
3995
inline
isl
::
checked
::
union_map
gist_range
(
isl
::
checked
::
union_set
uset) const;
3996
inline
isl
::
checked
::
union_map
intersect
(
isl
::
checked
::
union_map
umap2) const;
3997
inline
isl
::
checked
::
union_map
intersect_domain
(
isl
::
checked
::
space
space
) const;
3998
inline
isl
::
checked
::
union_map
intersect_domain
(
isl
::
checked
::
union_set
uset) const;
3999
inline
isl
::
checked
::
union_map
intersect_domain_factor_domain
(
isl
::
checked
::
union_map
factor) const;
4000
inline
isl
::
checked
::
union_map
intersect_domain_factor_range
(
isl
::
checked
::
union_map
factor) const;
4001
inline
isl
::
checked
::
union_map
intersect_domain_wrapped_domain
(
isl
::
checked
::
union_set
domain
) const;
4002
inline
isl
::
checked
::
union_map
intersect_params
(
isl
::
checked
::
set
set
) const;
4003
inline
isl
::
checked
::
union_map
intersect_range
(
isl
::
checked
::
space
space
) const;
4004
inline
isl
::
checked
::
union_map
intersect_range
(
isl
::
checked
::
union_set
uset) const;
4005
inline
isl
::
checked
::
union_map
intersect_range_factor_domain
(
isl
::
checked
::
union_map
factor) const;
4006
inline
isl
::
checked
::
union_map
intersect_range_factor_range
(
isl
::
checked
::
union_map
factor) const;
4007
inline
isl
::
checked
::
union_map
intersect_range_wrapped_domain
(
isl
::
checked
::
union_set
domain
) const;
4008
inline
boolean
is_bijective
() const;
4009
inline
boolean
is_disjoint
(const
isl
::
checked
::
union_map
&umap2) const;
4010
inline
boolean
is_empty
() const;
4011
inline
boolean
is_equal
(const
isl
::
checked
::
union_map
&umap2) const;
4012
inline
boolean
is_injective
() const;
4013
inline
boolean
is_single_valued
() const;
4014
inline
boolean
is_strict_subset
(const
isl
::
checked
::
union_map
&umap2) const;
4015
inline
boolean
is_subset
(const
isl
::
checked
::
union_map
&umap2) const;
4016
inline
boolean
isa_map
() const;
4017
inline
isl
::
checked
::
union_map
lexmax
() const;
4018
inline
isl
::
checked
::
union_map
lexmin
() const;
4019
inline
isl
::
checked
::
map_list
map_list
() const;
4020
inline
isl
::
checked
::
map_list
get_map_list
() const;
4021
inline
isl
::
checked
::
set
params
() const;
4022
inline
isl
::
checked
::
union_map
polyhedral_hull
() const;
4023
inline
isl
::
checked
::
union_map
preimage_domain
(
isl
::
checked
::
multi_aff
ma
) const;
4024
inline
isl
::
checked
::
union_map
preimage_domain
(
isl
::
checked
::
multi_pw_aff
mpa) const;
4025
inline
isl
::
checked
::
union_map
preimage_domain
(
isl
::
checked
::
pw_multi_aff
pma
) const;
4026
inline
isl
::
checked
::
union_map
preimage_domain
(
isl
::
checked
::
union_pw_multi_aff
upma) const;
4027
inline
isl
::
checked
::
union_map
preimage_range
(
isl
::
checked
::
multi_aff
ma
) const;
4028
inline
isl
::
checked
::
union_map
preimage_range
(
isl
::
checked
::
pw_multi_aff
pma
) const;
4029
inline
isl
::
checked
::
union_map
preimage_range
(
isl
::
checked
::
union_pw_multi_aff
upma) const;
4030
inline
isl
::
checked
::
union_map
product
(
isl
::
checked
::
union_map
umap2) const;
4031
inline
isl
::
checked
::
union_map
project_out_all_params
() const;
4032
inline
isl
::
checked
::
union_map
project_out_param
(
isl
::
checked
::
id
id
) const;
4033
inline
isl
::
checked
::
union_map
project_out_param
(const std::
string
&
id
) const;
4034
inline
isl
::
checked
::
union_map
project_out_param
(
isl
::
checked
::
id_list
list) const;
4035
inline
isl
::
checked
::
union_set
range
() const;
4036
inline
isl
::
checked
::
union_map
range_factor_domain
() const;
4037
inline
isl
::
checked
::
union_map
range_factor_range
() const;
4038
inline
isl
::
checked
::
union_map
range_map
() const;
4039
inline
isl
::
checked
::
union_map
range_product
(
isl
::
checked
::
union_map
umap2) const;
4040
inline
isl
::
checked
::
union_map
range_reverse
() const;
4041
inline
isl
::
checked
::
union_map
reverse
() const;
4042
inline
isl
::
checked
::
space
space
() const;
4043
inline
isl
::
checked
::
space
get_space
() const;
4044
inline
isl
::
checked
::
union_map
subtract
(
isl
::
checked
::
union_map
umap2) const;
4045
inline
isl
::
checked
::
union_map
subtract_domain
(
isl
::
checked
::
union_set
dom) const;
4046
inline
isl
::
checked
::
union_map
subtract_range
(
isl
::
checked
::
union_set
dom) const;
4047
inline
isl
::
checked
::
union_map
uncurry
() const;
4048
inline
isl
::
checked
::
union_map
unite
(
isl
::
checked
::
union_map
umap2) const;
4049
inline
isl
::
checked
::
union_map
universe
() const;
4050
inline
isl
::
checked
::
union_set
wrap
() const;
4051
inline
isl
::
checked
::
union_map
zip
() const;
4052
};
4053
4054
// declarations for isl::union_pw_aff
4055
inline
union_pw_aff
manage
(
__isl_take
isl_union_pw_aff
*
ptr
);
4056
inline
union_pw_aff
manage_copy
(
__isl_keep
isl_union_pw_aff
*
ptr
);
4057
4058
class
union_pw_aff
{
4059
friend
inline
union_pw_aff
manage
(
__isl_take
isl_union_pw_aff
*
ptr
);
4060
friend
inline
union_pw_aff
manage_copy
(
__isl_keep
isl_union_pw_aff
*
ptr
);
4061
4062
protected
:
4063
isl_union_pw_aff
*
ptr
=
nullptr
;
4064
4065
inline
explicit
union_pw_aff
(
__isl_take
isl_union_pw_aff
*
ptr
);
4066
4067
public
:
4068
inline
/* implicit */
union_pw_aff
();
4069
inline
/* implicit */
union_pw_aff
(
const
union_pw_aff
&
obj
);
4070
inline
/* implicit */
union_pw_aff
(
isl::checked::aff
aff
);
4071
inline
/* implicit */
union_pw_aff
(
isl::checked::pw_aff
pa
);
4072
inline
explicit
union_pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4073
inline
union_pw_aff
&
operator=
(
union_pw_aff
obj
);
4074
inline
~union_pw_aff
();
4075
inline
__isl_give
isl_union_pw_aff
*
copy
() const &;
4076
inline
__isl_give
isl_union_pw_aff
*
copy
() && = delete;
4077
inline
__isl_keep
isl_union_pw_aff
*
get
() const;
4078
inline
__isl_give
isl_union_pw_aff
*
release
();
4079
inline
bool
is_null
() const;
4080
inline
isl
::
checked
::
ctx
ctx
() const;
4081
4082
inline
isl
::
checked
::
multi_union_pw_aff
add
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
4083
inline
isl
::
checked
::
union_pw_aff
add
(
isl
::
checked
::
union_pw_aff
upa2) const;
4084
inline
isl
::
checked
::
union_pw_multi_aff
add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4085
inline
isl
::
checked
::
union_pw_aff
add
(const
isl
::
checked
::
aff
&upa2) const;
4086
inline
isl
::
checked
::
union_pw_aff
add
(const
isl
::
checked
::
pw_aff
&upa2) const;
4087
inline
isl
::
checked
::
union_pw_multi_aff
apply
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4088
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
4089
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
4090
inline
isl
::
checked
::
union_map
as_union_map
() const;
4091
inline
isl
::
checked
::
union_pw_aff
at
(
int
pos
) const;
4092
inline
isl
::
checked
::
union_set
bind
(const
isl
::
checked
::
multi_id
&
tuple
) const;
4093
inline
isl
::
checked
::
union_set
bind
(
isl
::
checked
::
id
id
) const;
4094
inline
isl
::
checked
::
union_set
bind
(const std::
string
&
id
) const;
4095
inline
isl
::
checked
::
union_pw_aff
coalesce
() const;
4096
inline
isl
::
checked
::
union_set
domain
() const;
4097
inline
isl
::
checked
::
union_pw_aff
drop_unused_params
() const;
4098
inline
isl
::
checked
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
checked
::
space
&
space
) const;
4099
inline
isl
::
checked
::
multi_union_pw_aff
flat_range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
4100
inline
isl
::
checked
::
union_pw_multi_aff
flat_range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4101
inline
isl
::
checked
::
union_pw_aff
gist
(
isl
::
checked
::
union_set
context
) const;
4102
inline
isl
::
checked
::
multi_union_pw_aff
gist_params
(const
isl
::
checked
::
set
&
context
) const;
4103
inline
boolean
has_range_tuple_id
() const;
4104
inline
isl
::
checked
::
union_pw_aff
intersect_domain
(
isl
::
checked
::
space
space
) const;
4105
inline
isl
::
checked
::
union_pw_aff
intersect_domain
(
isl
::
checked
::
union_set
uset) const;
4106
inline
isl
::
checked
::
union_pw_aff
intersect_domain_wrapped_domain
(
isl
::
checked
::
union_set
uset) const;
4107
inline
isl
::
checked
::
union_pw_aff
intersect_domain_wrapped_range
(
isl
::
checked
::
union_set
uset) const;
4108
inline
isl
::
checked
::
union_pw_aff
intersect_params
(
isl
::
checked
::
set
set
) const;
4109
inline
boolean
involves_locals
() const;
4110
inline
boolean
involves_nan
() const;
4111
inline
boolean
isa_pw_multi_aff
() const;
4112
inline
isl
::
checked
::
union_pw_aff_list
list
() const;
4113
inline
isl
::
checked
::
multi_union_pw_aff
neg
() const;
4114
inline
boolean
plain_is_empty
() const;
4115
inline
boolean
plain_is_equal
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
4116
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_aff
&upa2) const;
4117
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4118
inline
boolean
plain_is_equal
(const
isl
::
checked
::
aff
&upa2) const;
4119
inline
boolean
plain_is_equal
(const
isl
::
checked
::
pw_aff
&upa2) const;
4120
inline
isl
::
checked
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4121
inline
isl
::
checked
::
union_pw_aff
pullback
(
isl
::
checked
::
union_pw_multi_aff
upma) const;
4122
inline
isl
::
checked
::
pw_multi_aff_list
pw_multi_aff_list
() const;
4123
inline
isl
::
checked
::
union_pw_multi_aff
range_factor_domain
() const;
4124
inline
isl
::
checked
::
union_pw_multi_aff
range_factor_range
() const;
4125
inline
isl
::
checked
::
multi_union_pw_aff
range_product
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
4126
inline
isl
::
checked
::
union_pw_multi_aff
range_product
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4127
inline
isl
::
checked
::
id
range_tuple_id
() const;
4128
inline
isl
::
checked
::
multi_union_pw_aff
reset_range_tuple_id
() const;
4129
inline
isl
::
checked
::
multi_union_pw_aff
scale
(const
isl
::
checked
::
multi_val
&mv) const;
4130
inline
isl
::
checked
::
multi_union_pw_aff
scale
(const
isl
::
checked
::
val
&v) const;
4131
inline
isl
::
checked
::
multi_union_pw_aff
scale
(
long
v) const;
4132
inline
isl
::
checked
::
multi_union_pw_aff
scale_down
(const
isl
::
checked
::
multi_val
&mv) const;
4133
inline
isl
::
checked
::
multi_union_pw_aff
scale_down
(const
isl
::
checked
::
val
&v) const;
4134
inline
isl
::
checked
::
multi_union_pw_aff
scale_down
(
long
v) const;
4135
inline
isl
::
checked
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
checked
::
union_pw_aff
&el) const;
4136
inline
isl
::
checked
::
multi_union_pw_aff
set_range_tuple
(const
isl
::
checked
::
id
&
id
) const;
4137
inline
isl
::
checked
::
multi_union_pw_aff
set_range_tuple
(const std::
string
&
id
) const;
4138
inline class
size
size
() const;
4139
inline
isl
::
checked
::
space
space
() const;
4140
inline
isl
::
checked
::
space
get_space
() const;
4141
inline
isl
::
checked
::
multi_union_pw_aff
sub
(const
isl
::
checked
::
multi_union_pw_aff
&multi2) const;
4142
inline
isl
::
checked
::
union_pw_aff
sub
(
isl
::
checked
::
union_pw_aff
upa2) const;
4143
inline
isl
::
checked
::
union_pw_multi_aff
sub
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4144
inline
isl
::
checked
::
union_pw_aff
sub
(const
isl
::
checked
::
aff
&upa2) const;
4145
inline
isl
::
checked
::
union_pw_aff
sub
(const
isl
::
checked
::
pw_aff
&upa2) const;
4146
inline
isl
::
checked
::
union_pw_aff
subtract_domain
(
isl
::
checked
::
space
space
) const;
4147
inline
isl
::
checked
::
union_pw_aff
subtract_domain
(
isl
::
checked
::
union_set
uset) const;
4148
inline
isl
::
checked
::
union_pw_aff_list
to_list
() const;
4149
inline
isl
::
checked
::
multi_union_pw_aff
union_add
(const
isl
::
checked
::
multi_union_pw_aff
&mupa2) const;
4150
inline
isl
::
checked
::
union_pw_aff
union_add
(
isl
::
checked
::
union_pw_aff
upa2) const;
4151
inline
isl
::
checked
::
union_pw_multi_aff
union_add
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4152
inline
isl
::
checked
::
union_pw_aff
union_add
(const
isl
::
checked
::
aff
&upa2) const;
4153
inline
isl
::
checked
::
union_pw_aff
union_add
(const
isl
::
checked
::
pw_aff
&upa2) const;
4154
};
4155
4156
// declarations for isl::union_pw_aff_list
4157
inline
union_pw_aff_list
manage
(
__isl_take
isl_union_pw_aff_list *
ptr
);
4158
inline
union_pw_aff_list
manage_copy
(
__isl_keep
isl_union_pw_aff_list *
ptr
);
4159
4160
class
union_pw_aff_list
{
4161
friend
inline
union_pw_aff_list
manage
(
__isl_take
isl_union_pw_aff_list *
ptr
);
4162
friend
inline
union_pw_aff_list
manage_copy
(
__isl_keep
isl_union_pw_aff_list *
ptr
);
4163
4164
protected
:
4165
isl_union_pw_aff_list *
ptr
=
nullptr
;
4166
4167
inline
explicit
union_pw_aff_list
(
__isl_take
isl_union_pw_aff_list *
ptr
);
4168
4169
public
:
4170
inline
/* implicit */
union_pw_aff_list
();
4171
inline
/* implicit */
union_pw_aff_list
(
const
union_pw_aff_list
&
obj
);
4172
inline
explicit
union_pw_aff_list
(
isl::checked::ctx
ctx
,
int
n
);
4173
inline
explicit
union_pw_aff_list
(
isl::checked::union_pw_aff
el);
4174
inline
explicit
union_pw_aff_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4175
inline
union_pw_aff_list
&
operator=
(
union_pw_aff_list
obj
);
4176
inline
~union_pw_aff_list
();
4177
inline
__isl_give
isl_union_pw_aff_list *
copy
() const &;
4178
inline
__isl_give
isl_union_pw_aff_list *
copy
() && = delete;
4179
inline
__isl_keep
isl_union_pw_aff_list *
get
() const;
4180
inline
__isl_give
isl_union_pw_aff_list *
release
();
4181
inline
bool
is_null
() const;
4182
inline
isl
::
checked
::
ctx
ctx
() const;
4183
4184
inline
isl
::
checked
::
union_pw_aff_list
add
(
isl
::
checked
::
union_pw_aff
el) const;
4185
inline
isl
::
checked
::
union_pw_aff
at
(
int
index) const;
4186
inline
isl
::
checked
::
union_pw_aff
get_at
(
int
index) const;
4187
inline
isl
::
checked
::
union_pw_aff_list
clear
() const;
4188
inline
isl
::
checked
::
union_pw_aff_list
concat
(
isl
::
checked
::
union_pw_aff_list
list2) const;
4189
inline
isl
::
checked
::
union_pw_aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4190
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
union_pw_aff
)> &
fn
) const;
4191
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;
4192
inline
isl
::
checked
::
union_pw_aff_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
union_pw_aff
el) const;
4193
inline
isl
::
checked
::
union_pw_aff_list
set_at
(
int
index,
isl
::
checked
::
union_pw_aff
el) const;
4194
inline class
size
size
() const;
4195
};
4196
4197
// declarations for isl::union_pw_multi_aff
4198
inline
union_pw_multi_aff
manage
(
__isl_take
isl_union_pw_multi_aff
*
ptr
);
4199
inline
union_pw_multi_aff
manage_copy
(
__isl_keep
isl_union_pw_multi_aff
*
ptr
);
4200
4201
class
union_pw_multi_aff
{
4202
friend
inline
union_pw_multi_aff
manage
(
__isl_take
isl_union_pw_multi_aff
*
ptr
);
4203
friend
inline
union_pw_multi_aff
manage_copy
(
__isl_keep
isl_union_pw_multi_aff
*
ptr
);
4204
4205
protected
:
4206
isl_union_pw_multi_aff
*
ptr
=
nullptr
;
4207
4208
inline
explicit
union_pw_multi_aff
(
__isl_take
isl_union_pw_multi_aff
*
ptr
);
4209
4210
public
:
4211
inline
/* implicit */
union_pw_multi_aff
();
4212
inline
/* implicit */
union_pw_multi_aff
(
const
union_pw_multi_aff
&
obj
);
4213
inline
/* implicit */
union_pw_multi_aff
(
isl::checked::multi_aff
ma
);
4214
inline
/* implicit */
union_pw_multi_aff
(
isl::checked::pw_multi_aff
pma
);
4215
inline
/* implicit */
union_pw_multi_aff
(
isl::checked::union_pw_aff
upa);
4216
inline
explicit
union_pw_multi_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4217
inline
union_pw_multi_aff
&
operator=
(
union_pw_multi_aff
obj
);
4218
inline
~union_pw_multi_aff
();
4219
inline
__isl_give
isl_union_pw_multi_aff
*
copy
() const &;
4220
inline
__isl_give
isl_union_pw_multi_aff
*
copy
() && = delete;
4221
inline
__isl_keep
isl_union_pw_multi_aff
*
get
() const;
4222
inline
__isl_give
isl_union_pw_multi_aff
*
release
();
4223
inline
bool
is_null
() const;
4224
inline
isl
::
checked
::
ctx
ctx
() const;
4225
4226
inline
isl
::
checked
::
union_pw_multi_aff
add
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4227
inline
isl
::
checked
::
union_pw_multi_aff
apply
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4228
inline
isl
::
checked
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
4229
inline
isl
::
checked
::
pw_multi_aff
as_pw_multi_aff
() const;
4230
inline
isl
::
checked
::
union_map
as_union_map
() const;
4231
inline
isl
::
checked
::
union_pw_multi_aff
coalesce
() const;
4232
inline
isl
::
checked
::
union_set
domain
() const;
4233
inline
isl
::
checked
::
union_pw_multi_aff
drop_unused_params
() const;
4234
static inline
isl
::
checked
::
union_pw_multi_aff
empty
(
isl
::
checked
::
ctx
ctx
);
4235
inline
isl
::
checked
::
pw_multi_aff
extract_pw_multi_aff
(
isl
::
checked
::
space
space
) const;
4236
inline
isl
::
checked
::
union_pw_multi_aff
flat_range_product
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4237
inline
isl
::
checked
::
union_pw_multi_aff
gist
(
isl
::
checked
::
union_set
context
) const;
4238
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain
(
isl
::
checked
::
space
space
) const;
4239
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain
(
isl
::
checked
::
union_set
uset) const;
4240
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain_wrapped_domain
(
isl
::
checked
::
union_set
uset) const;
4241
inline
isl
::
checked
::
union_pw_multi_aff
intersect_domain_wrapped_range
(
isl
::
checked
::
union_set
uset) const;
4242
inline
isl
::
checked
::
union_pw_multi_aff
intersect_params
(
isl
::
checked
::
set
set
) const;
4243
inline
boolean
involves_locals
() const;
4244
inline
boolean
isa_pw_multi_aff
() const;
4245
inline
boolean
plain_is_empty
() const;
4246
inline
boolean
plain_is_equal
(const
isl
::
checked
::
union_pw_multi_aff
&upma2) const;
4247
inline
isl
::
checked
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4248
inline
isl
::
checked
::
union_pw_multi_aff
pullback
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4249
inline
isl
::
checked
::
pw_multi_aff_list
pw_multi_aff_list
() const;
4250
inline
isl
::
checked
::
pw_multi_aff_list
get_pw_multi_aff_list
() const;
4251
inline
isl
::
checked
::
union_pw_multi_aff
range_factor_domain
() const;
4252
inline
isl
::
checked
::
union_pw_multi_aff
range_factor_range
() const;
4253
inline
isl
::
checked
::
union_pw_multi_aff
range_product
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4254
inline
isl
::
checked
::
space
space
() const;
4255
inline
isl
::
checked
::
space
get_space
() const;
4256
inline
isl
::
checked
::
union_pw_multi_aff
sub
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4257
inline
isl
::
checked
::
union_pw_multi_aff
subtract_domain
(
isl
::
checked
::
space
space
) const;
4258
inline
isl
::
checked
::
union_pw_multi_aff
subtract_domain
(
isl
::
checked
::
union_set
uset) const;
4259
inline
isl
::
checked
::
union_pw_multi_aff
union_add
(
isl
::
checked
::
union_pw_multi_aff
upma2) const;
4260
};
4261
4262
// declarations for isl::union_set
4263
inline
union_set
manage
(
__isl_take
isl_union_set
*
ptr
);
4264
inline
union_set
manage_copy
(
__isl_keep
isl_union_set
*
ptr
);
4265
4266
class
union_set
{
4267
friend
inline
union_set
manage
(
__isl_take
isl_union_set
*
ptr
);
4268
friend
inline
union_set
manage_copy
(
__isl_keep
isl_union_set
*
ptr
);
4269
4270
protected
:
4271
isl_union_set
*
ptr
=
nullptr
;
4272
4273
inline
explicit
union_set
(
__isl_take
isl_union_set
*
ptr
);
4274
4275
public
:
4276
inline
/* implicit */
union_set
();
4277
inline
/* implicit */
union_set
(
const
union_set
&
obj
);
4278
inline
/* implicit */
union_set
(
isl::checked::basic_set
bset);
4279
inline
/* implicit */
union_set
(
isl::checked::point
pnt);
4280
inline
/* implicit */
union_set
(
isl::checked::set
set
);
4281
inline
explicit
union_set
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4282
inline
union_set
&
operator=
(
union_set
obj
);
4283
inline
~union_set
();
4284
inline
__isl_give
isl_union_set
*
copy
() const &;
4285
inline
__isl_give
isl_union_set
*
copy
() && = delete;
4286
inline
__isl_keep
isl_union_set
*
get
() const;
4287
inline
__isl_give
isl_union_set
*
release
();
4288
inline
bool
is_null
() const;
4289
inline
isl
::
checked
::
ctx
ctx
() const;
4290
4291
inline
isl
::
checked
::
union_set
affine_hull
() const;
4292
inline
isl
::
checked
::
union_set
apply
(
isl
::
checked
::
union_map
umap) const;
4293
inline
isl
::
checked
::
set
as_set
() const;
4294
inline
isl
::
checked
::
union_set
coalesce
() const;
4295
inline
isl
::
checked
::
union_set
compute_divs
() const;
4296
inline
isl
::
checked
::
union_set
detect_equalities
() const;
4297
inline
isl
::
checked
::
union_set
drop_unused_params
() const;
4298
static inline
isl
::
checked
::
union_set
empty
(
isl
::
checked
::
ctx
ctx
);
4299
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
checked
::
set
)> &
test
) const;
4300
inline
isl
::
checked
::
set
extract_set
(
isl
::
checked
::
space
space
) const;
4301
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
checked
::
point
)> &
fn
) const;
4302
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
checked
::
set
)> &
fn
) const;
4303
inline
isl
::
checked
::
union_set
gist
(
isl
::
checked
::
union_set
context
) const;
4304
inline
isl
::
checked
::
union_set
gist_params
(
isl
::
checked
::
set
set
) const;
4305
inline
isl
::
checked
::
union_map
identity
() const;
4306
inline
isl
::
checked
::
union_set
intersect
(
isl
::
checked
::
union_set
uset2) const;
4307
inline
isl
::
checked
::
union_set
intersect_params
(
isl
::
checked
::
set
set
) const;
4308
inline
boolean
is_disjoint
(const
isl
::
checked
::
union_set
&uset2) const;
4309
inline
boolean
is_empty
() const;
4310
inline
boolean
is_equal
(const
isl
::
checked
::
union_set
&uset2) const;
4311
inline
boolean
is_strict_subset
(const
isl
::
checked
::
union_set
&uset2) const;
4312
inline
boolean
is_subset
(const
isl
::
checked
::
union_set
&uset2) const;
4313
inline
boolean
isa_set
() const;
4314
inline
isl
::
checked
::
union_set
lexmax
() const;
4315
inline
isl
::
checked
::
union_set
lexmin
() const;
4316
inline
isl
::
checked
::
set
params
() const;
4317
inline
isl
::
checked
::
union_set
polyhedral_hull
() const;
4318
inline
isl
::
checked
::
union_set
preimage
(
isl
::
checked
::
multi_aff
ma
) const;
4319
inline
isl
::
checked
::
union_set
preimage
(
isl
::
checked
::
pw_multi_aff
pma
) const;
4320
inline
isl
::
checked
::
union_set
preimage
(
isl
::
checked
::
union_pw_multi_aff
upma) const;
4321
inline
isl
::
checked
::
union_set
project_out_all_params
() const;
4322
inline
isl
::
checked
::
point
sample_point
() const;
4323
inline
isl
::
checked
::
set_list
set_list
() const;
4324
inline
isl
::
checked
::
set_list
get_set_list
() const;
4325
inline
isl
::
checked
::
space
space
() const;
4326
inline
isl
::
checked
::
space
get_space
() const;
4327
inline
isl
::
checked
::
union_set
subtract
(
isl
::
checked
::
union_set
uset2) const;
4328
inline
isl
::
checked
::
union_set_list
to_list
() const;
4329
inline
isl
::
checked
::
union_set
unite
(
isl
::
checked
::
union_set
uset2) const;
4330
inline
isl
::
checked
::
union_set
universe
() const;
4331
inline
isl
::
checked
::
union_map
unwrap
() const;
4332
};
4333
4334
// declarations for isl::union_set_list
4335
inline
union_set_list
manage
(
__isl_take
isl_union_set_list
*
ptr
);
4336
inline
union_set_list
manage_copy
(
__isl_keep
isl_union_set_list
*
ptr
);
4337
4338
class
union_set_list
{
4339
friend
inline
union_set_list
manage
(
__isl_take
isl_union_set_list
*
ptr
);
4340
friend
inline
union_set_list
manage_copy
(
__isl_keep
isl_union_set_list
*
ptr
);
4341
4342
protected
:
4343
isl_union_set_list
*
ptr
=
nullptr
;
4344
4345
inline
explicit
union_set_list
(
__isl_take
isl_union_set_list
*
ptr
);
4346
4347
public
:
4348
inline
/* implicit */
union_set_list
();
4349
inline
/* implicit */
union_set_list
(
const
union_set_list
&
obj
);
4350
inline
explicit
union_set_list
(
isl::checked::ctx
ctx
,
int
n
);
4351
inline
explicit
union_set_list
(
isl::checked::union_set
el);
4352
inline
explicit
union_set_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4353
inline
union_set_list
&
operator=
(
union_set_list
obj
);
4354
inline
~union_set_list
();
4355
inline
__isl_give
isl_union_set_list
*
copy
() const &;
4356
inline
__isl_give
isl_union_set_list
*
copy
() && = delete;
4357
inline
__isl_keep
isl_union_set_list
*
get
() const;
4358
inline
__isl_give
isl_union_set_list
*
release
();
4359
inline
bool
is_null
() const;
4360
inline
isl
::
checked
::
ctx
ctx
() const;
4361
4362
inline
isl
::
checked
::
union_set_list
add
(
isl
::
checked
::
union_set
el) const;
4363
inline
isl
::
checked
::
union_set
at
(
int
index) const;
4364
inline
isl
::
checked
::
union_set
get_at
(
int
index) const;
4365
inline
isl
::
checked
::
union_set_list
clear
() const;
4366
inline
isl
::
checked
::
union_set_list
concat
(
isl
::
checked
::
union_set_list
list2) const;
4367
inline
isl
::
checked
::
union_set_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4368
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
union_set
)> &
fn
) const;
4369
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;
4370
inline
isl
::
checked
::
union_set_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
union_set
el) const;
4371
inline
isl
::
checked
::
union_set_list
set_at
(
int
index,
isl
::
checked
::
union_set
el) const;
4372
inline class
size
size
() const;
4373
};
4374
4375
// declarations for isl::val
4376
inline
val
manage
(
__isl_take
isl_val
*
ptr
);
4377
inline
val
manage_copy
(
__isl_keep
isl_val
*
ptr
);
4378
4379
class
val
{
4380
friend
inline
val
manage
(
__isl_take
isl_val
*
ptr
);
4381
friend
inline
val
manage_copy
(
__isl_keep
isl_val
*
ptr
);
4382
4383
protected
:
4384
isl_val
*
ptr
=
nullptr
;
4385
4386
inline
explicit
val
(
__isl_take
isl_val
*
ptr
);
4387
4388
public
:
4389
inline
/* implicit */
val
();
4390
inline
/* implicit */
val
(
const
val
&
obj
);
4391
inline
explicit
val
(
isl::checked::ctx
ctx
,
long
i);
4392
inline
explicit
val
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4393
inline
val
&
operator=
(
val
obj
);
4394
inline
~val
();
4395
inline
__isl_give
isl_val
*
copy
() const &;
4396
inline
__isl_give
isl_val
*
copy
() && = delete;
4397
inline
__isl_keep
isl_val
*
get
() const;
4398
inline
__isl_give
isl_val
*
release
();
4399
inline
bool
is_null
() const;
4400
inline
isl
::
checked
::
ctx
ctx
() const;
4401
4402
inline
isl
::
checked
::
val
abs
() const;
4403
inline
boolean
abs_eq
(const
isl
::
checked
::
val
&v2) const;
4404
inline
boolean
abs_eq
(
long
v2) const;
4405
inline
isl
::
checked
::
val
add
(
isl
::
checked
::
val
v2) const;
4406
inline
isl
::
checked
::
val
add
(
long
v2) const;
4407
inline
isl
::
checked
::
val
ceil
() const;
4408
inline
int
cmp_si
(
long
i) const;
4409
inline
long
den_si
() const;
4410
inline
long
get_den_si
() const;
4411
inline
isl
::
checked
::
val
div
(
isl
::
checked
::
val
v2) const;
4412
inline
isl
::
checked
::
val
div
(
long
v2) const;
4413
inline
boolean
eq
(const
isl
::
checked
::
val
&v2) const;
4414
inline
boolean
eq
(
long
v2) const;
4415
inline
isl
::
checked
::
val
floor
() const;
4416
inline
isl
::
checked
::
val
gcd
(
isl
::
checked
::
val
v2) const;
4417
inline
isl
::
checked
::
val
gcd
(
long
v2) const;
4418
inline
boolean
ge
(const
isl
::
checked
::
val
&v2) const;
4419
inline
boolean
ge
(
long
v2) const;
4420
inline
boolean
gt
(const
isl
::
checked
::
val
&v2) const;
4421
inline
boolean
gt
(
long
v2) const;
4422
static inline
isl
::
checked
::
val
infty
(
isl
::
checked
::
ctx
ctx
);
4423
inline
isl
::
checked
::
val
inv
() const;
4424
inline
boolean
is_divisible_by
(const
isl
::
checked
::
val
&v2) const;
4425
inline
boolean
is_divisible_by
(
long
v2) const;
4426
inline
boolean
is_infty
() const;
4427
inline
boolean
is_int
() const;
4428
inline
boolean
is_nan
() const;
4429
inline
boolean
is_neg
() const;
4430
inline
boolean
is_neginfty
() const;
4431
inline
boolean
is_negone
() const;
4432
inline
boolean
is_nonneg
() const;
4433
inline
boolean
is_nonpos
() const;
4434
inline
boolean
is_one
() const;
4435
inline
boolean
is_pos
() const;
4436
inline
boolean
is_rat
() const;
4437
inline
boolean
is_zero
() const;
4438
inline
boolean
le
(const
isl
::
checked
::
val
&v2) const;
4439
inline
boolean
le
(
long
v2) const;
4440
inline
boolean
lt
(const
isl
::
checked
::
val
&v2) const;
4441
inline
boolean
lt
(
long
v2) const;
4442
inline
isl
::
checked
::
val
max
(
isl
::
checked
::
val
v2) const;
4443
inline
isl
::
checked
::
val
max
(
long
v2) const;
4444
inline
isl
::
checked
::
val
min
(
isl
::
checked
::
val
v2) const;
4445
inline
isl
::
checked
::
val
min
(
long
v2) const;
4446
inline
isl
::
checked
::
val
mod
(
isl
::
checked
::
val
v2) const;
4447
inline
isl
::
checked
::
val
mod
(
long
v2) const;
4448
inline
isl
::
checked
::
val
mul
(
isl
::
checked
::
val
v2) const;
4449
inline
isl
::
checked
::
val
mul
(
long
v2) const;
4450
static inline
isl
::
checked
::
val
nan
(
isl
::
checked
::
ctx
ctx
);
4451
inline
boolean
ne
(const
isl
::
checked
::
val
&v2) const;
4452
inline
boolean
ne
(
long
v2) const;
4453
inline
isl
::
checked
::
val
neg
() const;
4454
static inline
isl
::
checked
::
val
neginfty
(
isl
::
checked
::
ctx
ctx
);
4455
static inline
isl
::
checked
::
val
negone
(
isl
::
checked
::
ctx
ctx
);
4456
inline
long
num_si
() const;
4457
inline
long
get_num_si
() const;
4458
static inline
isl
::
checked
::
val
one
(
isl
::
checked
::
ctx
ctx
);
4459
inline
isl
::
checked
::
val
pow2
() const;
4460
inline
int
sgn
() const;
4461
inline
isl
::
checked
::
val
sub
(
isl
::
checked
::
val
v2) const;
4462
inline
isl
::
checked
::
val
sub
(
long
v2) const;
4463
inline
isl
::
checked
::
val_list
to_list
() const;
4464
inline
isl
::
checked
::
val
trunc
() const;
4465
static inline
isl
::
checked
::
val
zero
(
isl
::
checked
::
ctx
ctx
);
4466
};
4467
4468
// declarations for isl::val_list
4469
inline
val_list
manage
(
__isl_take
isl_val_list *
ptr
);
4470
inline
val_list
manage_copy
(
__isl_keep
isl_val_list *
ptr
);
4471
4472
class
val_list
{
4473
friend
inline
val_list
manage
(
__isl_take
isl_val_list *
ptr
);
4474
friend
inline
val_list
manage_copy
(
__isl_keep
isl_val_list *
ptr
);
4475
4476
protected
:
4477
isl_val_list *
ptr
=
nullptr
;
4478
4479
inline
explicit
val_list
(
__isl_take
isl_val_list *
ptr
);
4480
4481
public
:
4482
inline
/* implicit */
val_list
();
4483
inline
/* implicit */
val_list
(
const
val_list
&
obj
);
4484
inline
explicit
val_list
(
isl::checked::ctx
ctx
,
int
n
);
4485
inline
explicit
val_list
(
isl::checked::val
el);
4486
inline
explicit
val_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
);
4487
inline
val_list
&
operator=
(
val_list
obj
);
4488
inline
~val_list
();
4489
inline
__isl_give
isl_val_list *
copy
() const &;
4490
inline
__isl_give
isl_val_list *
copy
() && = delete;
4491
inline
__isl_keep
isl_val_list *
get
() const;
4492
inline
__isl_give
isl_val_list *
release
();
4493
inline
bool
is_null
() const;
4494
inline
isl
::
checked
::
ctx
ctx
() const;
4495
4496
inline
isl
::
checked
::
val_list
add
(
isl
::
checked
::
val
el) const;
4497
inline
isl
::
checked
::
val_list
add
(
long
el) const;
4498
inline
isl
::
checked
::
val
at
(
int
index) const;
4499
inline
isl
::
checked
::
val
get_at
(
int
index) const;
4500
inline
isl
::
checked
::
val_list
clear
() const;
4501
inline
isl
::
checked
::
val_list
concat
(
isl
::
checked
::
val_list
list2) const;
4502
inline
isl
::
checked
::
val_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4503
inline
stat
foreach
(const std::function<
stat
(
isl
::
checked
::
val
)> &
fn
) const;
4504
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;
4505
inline
isl
::
checked
::
val_list
insert
(
unsigned
int
pos
,
isl
::
checked
::
val
el) const;
4506
inline
isl
::
checked
::
val_list
insert
(
unsigned
int
pos
,
long
el) const;
4507
inline
isl
::
checked
::
val_list
set_at
(
int
index,
isl
::
checked
::
val
el) const;
4508
inline
isl
::
checked
::
val_list
set_at
(
int
index,
long
el) const;
4509
inline class
size
size
() const;
4510
};
4511
4512
// implementations for isl::aff
4513
aff
manage
(
__isl_take
isl_aff
*
ptr
) {
4514
return
aff
(
ptr
);
4515
}
4516
aff
manage_copy
(
__isl_keep
isl_aff
*
ptr
) {
4517
ptr
=
isl_aff_copy
(
ptr
);
4518
return
aff
(
ptr
);
4519
}
4520
4521
aff::aff
(
__isl_take
isl_aff
*
ptr
)
4522
:
ptr
(
ptr
) {}
4523
4524
aff::aff
()
4525
:
ptr
(nullptr) {}
4526
4527
aff::aff
(
const
aff
&
obj
)
4528
:
ptr
(nullptr)
4529
{
4530
ptr
=
obj
.copy();
4531
}
4532
4533
aff::aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
4534
{
4535
auto
res
=
isl_aff_read_from_str
(
ctx
.release(),
str
.c_str());
4536
ptr
=
res
;
4537
}
4538
4539
aff
&
aff::operator=
(
aff
obj
) {
4540
std::swap(this->ptr,
obj
.ptr);
4541
return
*
this
;
4542
}
4543
4544
aff::~aff
() {
4545
if
(
ptr
)
4546
isl_aff_free
(
ptr
);
4547
}
4548
4549
__isl_give
isl_aff
*
aff::copy
() const & {
4550
return
isl_aff_copy
(
ptr
);
4551
}
4552
4553
__isl_keep
isl_aff
*
aff::get
()
const
{
4554
return
ptr
;
4555
}
4556
4557
__isl_give
isl_aff
*
aff::release
() {
4558
isl_aff
*tmp =
ptr
;
4559
ptr
=
nullptr
;
4560
return
tmp;
4561
}
4562
4563
bool
aff::is_null
()
const
{
4564
return
ptr
==
nullptr
;
4565
}
4566
4567
isl::checked::ctx
aff::ctx
()
const
{
4568
return
isl::checked::ctx
(
isl_aff_get_ctx
(
ptr
));
4569
}
4570
4571
isl::checked::aff
aff::add
(
isl::checked::aff
aff2)
const
4572
{
4573
auto
res
=
isl_aff_add
(
copy
(), aff2.
release
());
4574
return
manage
(
res
);
4575
}
4576
4577
isl::checked::multi_aff
aff::add
(
const
isl::checked::multi_aff
&multi2)
const
4578
{
4579
return
isl::checked::multi_aff
(*this).
add
(multi2);
4580
}
4581
4582
isl::checked::multi_pw_aff
aff::add
(
const
isl::checked::multi_pw_aff
&multi2)
const
4583
{
4584
return
isl::checked::pw_aff
(*this).
add
(multi2);
4585
}
4586
4587
isl::checked::multi_union_pw_aff
aff::add
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
4588
{
4589
return
isl::checked::pw_aff
(*this).
add
(multi2);
4590
}
4591
4592
isl::checked::pw_aff
aff::add
(
const
isl::checked::pw_aff
&pwaff2)
const
4593
{
4594
return
isl::checked::pw_aff
(*this).
add
(pwaff2);
4595
}
4596
4597
isl::checked::pw_multi_aff
aff::add
(
const
isl::checked::pw_multi_aff
&pma2)
const
4598
{
4599
return
isl::checked::pw_aff
(*this).
add
(pma2);
4600
}
4601
4602
isl::checked::union_pw_aff
aff::add
(
const
isl::checked::union_pw_aff
&upa2)
const
4603
{
4604
return
isl::checked::pw_aff
(*this).
add
(upa2);
4605
}
4606
4607
isl::checked::union_pw_multi_aff
aff::add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
4608
{
4609
return
isl::checked::pw_aff
(*this).
add
(upma2);
4610
}
4611
4612
isl::checked::aff
aff::add_constant
(
isl::checked::val
v)
const
4613
{
4614
auto
res
=
isl_aff_add_constant_val
(
copy
(), v.
release
());
4615
return
manage
(
res
);
4616
}
4617
4618
isl::checked::aff
aff::add_constant
(
long
v)
const
4619
{
4620
return
this->
add_constant
(
isl::checked::val
(
ctx
(), v));
4621
}
4622
4623
isl::checked::multi_aff
aff::add_constant
(
const
isl::checked::multi_val
&mv)
const
4624
{
4625
return
isl::checked::multi_aff
(*this).
add_constant
(mv);
4626
}
4627
4628
isl::checked::union_pw_multi_aff
aff::apply
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
4629
{
4630
return
isl::checked::pw_aff
(*this).
apply
(upma2);
4631
}
4632
4633
isl::checked::aff
aff::as_aff
()
const
4634
{
4635
return
isl::checked::pw_aff
(*this).
as_aff
();
4636
}
4637
4638
isl::checked::map
aff::as_map
()
const
4639
{
4640
return
isl::checked::pw_aff
(*this).
as_map
();
4641
}
4642
4643
isl::checked::multi_aff
aff::as_multi_aff
()
const
4644
{
4645
return
isl::checked::pw_aff
(*this).
as_multi_aff
();
4646
}
4647
4648
isl::checked::multi_union_pw_aff
aff::as_multi_union_pw_aff
()
const
4649
{
4650
return
isl::checked::pw_aff
(*this).
as_multi_union_pw_aff
();
4651
}
4652
4653
isl::checked::pw_multi_aff
aff::as_pw_multi_aff
()
const
4654
{
4655
return
isl::checked::pw_aff
(*this).
as_pw_multi_aff
();
4656
}
4657
4658
isl::checked::set
aff::as_set
()
const
4659
{
4660
return
isl::checked::multi_aff
(*this).
as_set
();
4661
}
4662
4663
isl::checked::union_map
aff::as_union_map
()
const
4664
{
4665
return
isl::checked::pw_aff
(*this).
as_union_map
();
4666
}
4667
4668
isl::checked::aff
aff::at
(
int
pos
)
const
4669
{
4670
return
isl::checked::multi_aff
(*this).
at
(
pos
);
4671
}
4672
4673
isl::checked::basic_set
aff::bind
(
isl::checked::id
id
)
const
4674
{
4675
auto
res
=
isl_aff_bind_id
(
copy
(),
id
.
release
());
4676
return
manage
(
res
);
4677
}
4678
4679
isl::checked::basic_set
aff::bind
(
const
std::string &
id
)
const
4680
{
4681
return
this->
bind
(
isl::checked::id
(
ctx
(),
id
));
4682
}
4683
4684
isl::checked::basic_set
aff::bind
(
const
isl::checked::multi_id
&
tuple
)
const
4685
{
4686
return
isl::checked::multi_aff
(*this).
bind
(
tuple
);
4687
}
4688
4689
isl::checked::pw_aff
aff::bind_domain
(
const
isl::checked::multi_id
&
tuple
)
const
4690
{
4691
return
isl::checked::pw_aff
(*this).
bind_domain
(
tuple
);
4692
}
4693
4694
isl::checked::pw_aff
aff::bind_domain_wrapped_domain
(
const
isl::checked::multi_id
&
tuple
)
const
4695
{
4696
return
isl::checked::pw_aff
(*this).
bind_domain_wrapped_domain
(
tuple
);
4697
}
4698
4699
isl::checked::aff
aff::ceil
()
const
4700
{
4701
auto
res
=
isl_aff_ceil
(
copy
());
4702
return
manage
(
res
);
4703
}
4704
4705
isl::checked::pw_aff
aff::coalesce
()
const
4706
{
4707
return
isl::checked::pw_aff
(*this).
coalesce
();
4708
}
4709
4710
isl::checked::pw_aff
aff::cond
(
const
isl::checked::pw_aff
&pwaff_true,
const
isl::checked::pw_aff
&pwaff_false)
const
4711
{
4712
return
isl::checked::pw_aff
(*this).
cond
(pwaff_true, pwaff_false);
4713
}
4714
4715
isl::checked::multi_val
aff::constant_multi_val
()
const
4716
{
4717
return
isl::checked::multi_aff
(*this).
constant_multi_val
();
4718
}
4719
4720
isl::checked::val
aff::constant_val
()
const
4721
{
4722
auto
res
=
isl_aff_get_constant_val
(
get
());
4723
return
manage
(
res
);
4724
}
4725
4726
isl::checked::val
aff::get_constant_val
()
const
4727
{
4728
return
constant_val
();
4729
}
4730
4731
isl::checked::aff
aff::div
(
isl::checked::aff
aff2)
const
4732
{
4733
auto
res
=
isl_aff_div
(
copy
(), aff2.
release
());
4734
return
manage
(
res
);
4735
}
4736
4737
isl::checked::pw_aff
aff::div
(
const
isl::checked::pw_aff
&pa2)
const
4738
{
4739
return
isl::checked::pw_aff
(*this).
div
(pa2);
4740
}
4741
4742
isl::checked::set
aff::domain
()
const
4743
{
4744
return
isl::checked::pw_aff
(*this).
domain
();
4745
}
4746
4747
isl::checked::aff
aff::domain_reverse
()
const
4748
{
4749
auto
res
=
isl_aff_domain_reverse
(
copy
());
4750
return
manage
(
res
);
4751
}
4752
4753
isl::checked::pw_aff
aff::drop_unused_params
()
const
4754
{
4755
return
isl::checked::pw_aff
(*this).
drop_unused_params
();
4756
}
4757
4758
isl::checked::set
aff::eq_set
(
isl::checked::aff
aff2)
const
4759
{
4760
auto
res
=
isl_aff_eq_set
(
copy
(), aff2.
release
());
4761
return
manage
(
res
);
4762
}
4763
4764
isl::checked::set
aff::eq_set
(
const
isl::checked::pw_aff
&pwaff2)
const
4765
{
4766
return
isl::checked::pw_aff
(*this).
eq_set
(pwaff2);
4767
}
4768
4769
isl::checked::val
aff::eval
(
isl::checked::point
pnt)
const
4770
{
4771
auto
res
=
isl_aff_eval
(
copy
(), pnt.
release
());
4772
return
manage
(
res
);
4773
}
4774
4775
isl::checked::pw_multi_aff
aff::extract_pw_multi_aff
(
const
isl::checked::space
&
space
)
const
4776
{
4777
return
isl::checked::pw_aff
(*this).
extract_pw_multi_aff
(
space
);
4778
}
4779
4780
isl::checked::multi_aff
aff::flat_range_product
(
const
isl::checked::multi_aff
&multi2)
const
4781
{
4782
return
isl::checked::multi_aff
(*this).
flat_range_product
(multi2);
4783
}
4784
4785
isl::checked::multi_pw_aff
aff::flat_range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
4786
{
4787
return
isl::checked::pw_aff
(*this).
flat_range_product
(multi2);
4788
}
4789
4790
isl::checked::multi_union_pw_aff
aff::flat_range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
4791
{
4792
return
isl::checked::pw_aff
(*this).
flat_range_product
(multi2);
4793
}
4794
4795
isl::checked::pw_multi_aff
aff::flat_range_product
(
const
isl::checked::pw_multi_aff
&pma2)
const
4796
{
4797
return
isl::checked::pw_aff
(*this).
flat_range_product
(pma2);
4798
}
4799
4800
isl::checked::union_pw_multi_aff
aff::flat_range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
4801
{
4802
return
isl::checked::pw_aff
(*this).
flat_range_product
(upma2);
4803
}
4804
4805
isl::checked::aff
aff::floor
()
const
4806
{
4807
auto
res
=
isl_aff_floor
(
copy
());
4808
return
manage
(
res
);
4809
}
4810
4811
stat
aff::foreach_piece
(
const
std::function<
stat
(
isl::checked::set
,
isl::checked::multi_aff
)> &
fn
)
const
4812
{
4813
return
isl::checked::pw_aff
(*this).
foreach_piece
(
fn
);
4814
}
4815
4816
isl::checked::set
aff::ge_set
(
isl::checked::aff
aff2)
const
4817
{
4818
auto
res
=
isl_aff_ge_set
(
copy
(), aff2.
release
());
4819
return
manage
(
res
);
4820
}
4821
4822
isl::checked::set
aff::ge_set
(
const
isl::checked::pw_aff
&pwaff2)
const
4823
{
4824
return
isl::checked::pw_aff
(*this).
ge_set
(pwaff2);
4825
}
4826
4827
isl::checked::aff
aff::gist
(
isl::checked::set
context
)
const
4828
{
4829
auto
res
=
isl_aff_gist
(
copy
(),
context
.release());
4830
return
manage
(
res
);
4831
}
4832
4833
isl::checked::union_pw_aff
aff::gist
(
const
isl::checked::union_set
&
context
)
const
4834
{
4835
return
isl::checked::pw_aff
(*this).
gist
(
context
);
4836
}
4837
4838
isl::checked::aff
aff::gist
(
const
isl::checked::basic_set
&
context
)
const
4839
{
4840
return
this->
gist
(
isl::checked::set
(
context
));
4841
}
4842
4843
isl::checked::aff
aff::gist
(
const
isl::checked::point
&
context
)
const
4844
{
4845
return
this->
gist
(
isl::checked::set
(
context
));
4846
}
4847
4848
isl::checked::aff
aff::gist_params
(
isl::checked::set
context
)
const
4849
{
4850
auto
res
=
isl_aff_gist_params
(
copy
(),
context
.release());
4851
return
manage
(
res
);
4852
}
4853
4854
isl::checked::set
aff::gt_set
(
isl::checked::aff
aff2)
const
4855
{
4856
auto
res
=
isl_aff_gt_set
(
copy
(), aff2.
release
());
4857
return
manage
(
res
);
4858
}
4859
4860
isl::checked::set
aff::gt_set
(
const
isl::checked::pw_aff
&pwaff2)
const
4861
{
4862
return
isl::checked::pw_aff
(*this).
gt_set
(pwaff2);
4863
}
4864
4865
boolean
aff::has_range_tuple_id
()
const
4866
{
4867
return
isl::checked::multi_aff
(*this).
has_range_tuple_id
();
4868
}
4869
4870
isl::checked::multi_aff
aff::identity
()
const
4871
{
4872
return
isl::checked::multi_aff
(*this).
identity
();
4873
}
4874
4875
isl::checked::pw_aff
aff::insert_domain
(
const
isl::checked::space
&
domain
)
const
4876
{
4877
return
isl::checked::pw_aff
(*this).
insert_domain
(
domain
);
4878
}
4879
4880
isl::checked::pw_aff
aff::intersect_domain
(
const
isl::checked::set
&
set
)
const
4881
{
4882
return
isl::checked::pw_aff
(*this).
intersect_domain
(
set
);
4883
}
4884
4885
isl::checked::union_pw_aff
aff::intersect_domain
(
const
isl::checked::space
&
space
)
const
4886
{
4887
return
isl::checked::pw_aff
(*this).
intersect_domain
(
space
);
4888
}
4889
4890
isl::checked::union_pw_aff
aff::intersect_domain
(
const
isl::checked::union_set
&uset)
const
4891
{
4892
return
isl::checked::pw_aff
(*this).
intersect_domain
(uset);
4893
}
4894
4895
isl::checked::union_pw_aff
aff::intersect_domain_wrapped_domain
(
const
isl::checked::union_set
&uset)
const
4896
{
4897
return
isl::checked::pw_aff
(*this).
intersect_domain_wrapped_domain
(uset);
4898
}
4899
4900
isl::checked::union_pw_aff
aff::intersect_domain_wrapped_range
(
const
isl::checked::union_set
&uset)
const
4901
{
4902
return
isl::checked::pw_aff
(*this).
intersect_domain_wrapped_range
(uset);
4903
}
4904
4905
isl::checked::pw_aff
aff::intersect_params
(
const
isl::checked::set
&
set
)
const
4906
{
4907
return
isl::checked::pw_aff
(*this).
intersect_params
(
set
);
4908
}
4909
4910
boolean
aff::involves_locals
()
const
4911
{
4912
return
isl::checked::multi_aff
(*this).
involves_locals
();
4913
}
4914
4915
boolean
aff::involves_nan
()
const
4916
{
4917
return
isl::checked::multi_aff
(*this).
involves_nan
();
4918
}
4919
4920
boolean
aff::involves_param
(
const
isl::checked::id
&
id
)
const
4921
{
4922
return
isl::checked::pw_aff
(*this).
involves_param
(
id
);
4923
}
4924
4925
boolean
aff::involves_param
(
const
std::string &
id
)
const
4926
{
4927
return
this->
involves_param
(
isl::checked::id
(
ctx
(),
id
));
4928
}
4929
4930
boolean
aff::involves_param
(
const
isl::checked::id_list
&
list
)
const
4931
{
4932
return
isl::checked::pw_aff
(*this).
involves_param
(
list
);
4933
}
4934
4935
boolean
aff::is_cst
()
const
4936
{
4937
auto
res
=
isl_aff_is_cst
(
get
());
4938
return
manage
(
res
);
4939
}
4940
4941
boolean
aff::isa_aff
()
const
4942
{
4943
return
isl::checked::pw_aff
(*this).
isa_aff
();
4944
}
4945
4946
boolean
aff::isa_multi_aff
()
const
4947
{
4948
return
isl::checked::pw_aff
(*this).
isa_multi_aff
();
4949
}
4950
4951
boolean
aff::isa_pw_multi_aff
()
const
4952
{
4953
return
isl::checked::pw_aff
(*this).
isa_pw_multi_aff
();
4954
}
4955
4956
isl::checked::set
aff::le_set
(
isl::checked::aff
aff2)
const
4957
{
4958
auto
res
=
isl_aff_le_set
(
copy
(), aff2.
release
());
4959
return
manage
(
res
);
4960
}
4961
4962
isl::checked::set
aff::le_set
(
const
isl::checked::pw_aff
&pwaff2)
const
4963
{
4964
return
isl::checked::pw_aff
(*this).
le_set
(pwaff2);
4965
}
4966
4967
isl::checked::aff_list
aff::list
()
const
4968
{
4969
return
isl::checked::multi_aff
(*this).
list
();
4970
}
4971
4972
isl::checked::set
aff::lt_set
(
isl::checked::aff
aff2)
const
4973
{
4974
auto
res
=
isl_aff_lt_set
(
copy
(), aff2.
release
());
4975
return
manage
(
res
);
4976
}
4977
4978
isl::checked::set
aff::lt_set
(
const
isl::checked::pw_aff
&pwaff2)
const
4979
{
4980
return
isl::checked::pw_aff
(*this).
lt_set
(pwaff2);
4981
}
4982
4983
isl::checked::multi_pw_aff
aff::max
(
const
isl::checked::multi_pw_aff
&multi2)
const
4984
{
4985
return
isl::checked::pw_aff
(*this).
max
(multi2);
4986
}
4987
4988
isl::checked::pw_aff
aff::max
(
const
isl::checked::pw_aff
&pwaff2)
const
4989
{
4990
return
isl::checked::pw_aff
(*this).
max
(pwaff2);
4991
}
4992
4993
isl::checked::multi_val
aff::max_multi_val
()
const
4994
{
4995
return
isl::checked::pw_aff
(*this).
max_multi_val
();
4996
}
4997
4998
isl::checked::val
aff::max_val
()
const
4999
{
5000
return
isl::checked::pw_aff
(*this).
max_val
();
5001
}
5002
5003
isl::checked::multi_pw_aff
aff::min
(
const
isl::checked::multi_pw_aff
&multi2)
const
5004
{
5005
return
isl::checked::pw_aff
(*this).
min
(multi2);
5006
}
5007
5008
isl::checked::pw_aff
aff::min
(
const
isl::checked::pw_aff
&pwaff2)
const
5009
{
5010
return
isl::checked::pw_aff
(*this).
min
(pwaff2);
5011
}
5012
5013
isl::checked::multi_val
aff::min_multi_val
()
const
5014
{
5015
return
isl::checked::pw_aff
(*this).
min_multi_val
();
5016
}
5017
5018
isl::checked::val
aff::min_val
()
const
5019
{
5020
return
isl::checked::pw_aff
(*this).
min_val
();
5021
}
5022
5023
isl::checked::aff
aff::mod
(
isl::checked::val
mod
)
const
5024
{
5025
auto
res
=
isl_aff_mod_val
(
copy
(),
mod
.release());
5026
return
manage
(
res
);
5027
}
5028
5029
isl::checked::aff
aff::mod
(
long
mod
)
const
5030
{
5031
return
this->
mod
(
isl::checked::val
(
ctx
(),
mod
));
5032
}
5033
5034
isl::checked::aff
aff::mul
(
isl::checked::aff
aff2)
const
5035
{
5036
auto
res
=
isl_aff_mul
(
copy
(), aff2.
release
());
5037
return
manage
(
res
);
5038
}
5039
5040
isl::checked::pw_aff
aff::mul
(
const
isl::checked::pw_aff
&pwaff2)
const
5041
{
5042
return
isl::checked::pw_aff
(*this).
mul
(pwaff2);
5043
}
5044
5045
class
size
aff::n_piece
()
const
5046
{
5047
return
isl::checked::pw_aff
(*this).
n_piece
();
5048
}
5049
5050
isl::checked::set
aff::ne_set
(
isl::checked::aff
aff2)
const
5051
{
5052
auto
res
=
isl_aff_ne_set
(
copy
(), aff2.
release
());
5053
return
manage
(
res
);
5054
}
5055
5056
isl::checked::set
aff::ne_set
(
const
isl::checked::pw_aff
&pwaff2)
const
5057
{
5058
return
isl::checked::pw_aff
(*this).
ne_set
(pwaff2);
5059
}
5060
5061
isl::checked::aff
aff::neg
()
const
5062
{
5063
auto
res
=
isl_aff_neg
(
copy
());
5064
return
manage
(
res
);
5065
}
5066
5067
isl::checked::set
aff::params
()
const
5068
{
5069
return
isl::checked::pw_aff
(*this).
params
();
5070
}
5071
5072
boolean
aff::plain_is_empty
()
const
5073
{
5074
return
isl::checked::pw_aff
(*this).
plain_is_empty
();
5075
}
5076
5077
boolean
aff::plain_is_equal
(
const
isl::checked::aff
&aff2)
const
5078
{
5079
auto
res
=
isl_aff_plain_is_equal
(
get
(), aff2.
get
());
5080
return
manage
(
res
);
5081
}
5082
5083
boolean
aff::plain_is_equal
(
const
isl::checked::multi_aff
&multi2)
const
5084
{
5085
return
isl::checked::multi_aff
(*this).
plain_is_equal
(multi2);
5086
}
5087
5088
boolean
aff::plain_is_equal
(
const
isl::checked::multi_pw_aff
&multi2)
const
5089
{
5090
return
isl::checked::pw_aff
(*this).
plain_is_equal
(multi2);
5091
}
5092
5093
boolean
aff::plain_is_equal
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
5094
{
5095
return
isl::checked::pw_aff
(*this).
plain_is_equal
(multi2);
5096
}
5097
5098
boolean
aff::plain_is_equal
(
const
isl::checked::pw_aff
&pwaff2)
const
5099
{
5100
return
isl::checked::pw_aff
(*this).
plain_is_equal
(pwaff2);
5101
}
5102
5103
boolean
aff::plain_is_equal
(
const
isl::checked::pw_multi_aff
&pma2)
const
5104
{
5105
return
isl::checked::pw_aff
(*this).
plain_is_equal
(pma2);
5106
}
5107
5108
boolean
aff::plain_is_equal
(
const
isl::checked::union_pw_aff
&upa2)
const
5109
{
5110
return
isl::checked::pw_aff
(*this).
plain_is_equal
(upa2);
5111
}
5112
5113
boolean
aff::plain_is_equal
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
5114
{
5115
return
isl::checked::pw_aff
(*this).
plain_is_equal
(upma2);
5116
}
5117
5118
isl::checked::pw_multi_aff
aff::preimage_domain_wrapped_domain
(
const
isl::checked::pw_multi_aff
&pma2)
const
5119
{
5120
return
isl::checked::pw_aff
(*this).
preimage_domain_wrapped_domain
(pma2);
5121
}
5122
5123
isl::checked::union_pw_multi_aff
aff::preimage_domain_wrapped_domain
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
5124
{
5125
return
isl::checked::pw_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
5126
}
5127
5128
isl::checked::multi_aff
aff::product
(
const
isl::checked::multi_aff
&multi2)
const
5129
{
5130
return
isl::checked::multi_aff
(*this).
product
(multi2);
5131
}
5132
5133
isl::checked::multi_pw_aff
aff::product
(
const
isl::checked::multi_pw_aff
&multi2)
const
5134
{
5135
return
isl::checked::pw_aff
(*this).
product
(multi2);
5136
}
5137
5138
isl::checked::pw_multi_aff
aff::product
(
const
isl::checked::pw_multi_aff
&pma2)
const
5139
{
5140
return
isl::checked::pw_aff
(*this).
product
(pma2);
5141
}
5142
5143
isl::checked::aff
aff::pullback
(
isl::checked::multi_aff
ma
)
const
5144
{
5145
auto
res
=
isl_aff_pullback_multi_aff
(
copy
(),
ma
.release());
5146
return
manage
(
res
);
5147
}
5148
5149
isl::checked::pw_aff
aff::pullback
(
const
isl::checked::multi_pw_aff
&mpa)
const
5150
{
5151
return
isl::checked::pw_aff
(*this).
pullback
(mpa);
5152
}
5153
5154
isl::checked::pw_aff
aff::pullback
(
const
isl::checked::pw_multi_aff
&
pma
)
const
5155
{
5156
return
isl::checked::pw_aff
(*this).
pullback
(
pma
);
5157
}
5158
5159
isl::checked::union_pw_aff
aff::pullback
(
const
isl::checked::union_pw_multi_aff
&upma)
const
5160
{
5161
return
isl::checked::pw_aff
(*this).
pullback
(upma);
5162
}
5163
5164
isl::checked::aff
aff::pullback
(
const
isl::checked::aff
&
ma
)
const
5165
{
5166
return
this->
pullback
(
isl::checked::multi_aff
(
ma
));
5167
}
5168
5169
isl::checked::pw_multi_aff_list
aff::pw_multi_aff_list
()
const
5170
{
5171
return
isl::checked::pw_aff
(*this).
pw_multi_aff_list
();
5172
}
5173
5174
isl::checked::pw_multi_aff
aff::range_factor_domain
()
const
5175
{
5176
return
isl::checked::pw_aff
(*this).
range_factor_domain
();
5177
}
5178
5179
isl::checked::pw_multi_aff
aff::range_factor_range
()
const
5180
{
5181
return
isl::checked::pw_aff
(*this).
range_factor_range
();
5182
}
5183
5184
isl::checked::multi_aff
aff::range_product
(
const
isl::checked::multi_aff
&multi2)
const
5185
{
5186
return
isl::checked::multi_aff
(*this).
range_product
(multi2);
5187
}
5188
5189
isl::checked::multi_pw_aff
aff::range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
5190
{
5191
return
isl::checked::pw_aff
(*this).
range_product
(multi2);
5192
}
5193
5194
isl::checked::multi_union_pw_aff
aff::range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
5195
{
5196
return
isl::checked::pw_aff
(*this).
range_product
(multi2);
5197
}
5198
5199
isl::checked::pw_multi_aff
aff::range_product
(
const
isl::checked::pw_multi_aff
&pma2)
const
5200
{
5201
return
isl::checked::pw_aff
(*this).
range_product
(pma2);
5202
}
5203
5204
isl::checked::union_pw_multi_aff
aff::range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
5205
{
5206
return
isl::checked::pw_aff
(*this).
range_product
(upma2);
5207
}
5208
5209
isl::checked::id
aff::range_tuple_id
()
const
5210
{
5211
return
isl::checked::multi_aff
(*this).
range_tuple_id
();
5212
}
5213
5214
isl::checked::multi_aff
aff::reset_range_tuple_id
()
const
5215
{
5216
return
isl::checked::multi_aff
(*this).
reset_range_tuple_id
();
5217
}
5218
5219
isl::checked::aff
aff::scale
(
isl::checked::val
v)
const
5220
{
5221
auto
res
=
isl_aff_scale_val
(
copy
(), v.
release
());
5222
return
manage
(
res
);
5223
}
5224
5225
isl::checked::aff
aff::scale
(
long
v)
const
5226
{
5227
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
5228
}
5229
5230
isl::checked::multi_aff
aff::scale
(
const
isl::checked::multi_val
&mv)
const
5231
{
5232
return
isl::checked::multi_aff
(*this).
scale
(mv);
5233
}
5234
5235
isl::checked::aff
aff::scale_down
(
isl::checked::val
v)
const
5236
{
5237
auto
res
=
isl_aff_scale_down_val
(
copy
(), v.
release
());
5238
return
manage
(
res
);
5239
}
5240
5241
isl::checked::aff
aff::scale_down
(
long
v)
const
5242
{
5243
return
this->
scale_down
(
isl::checked::val
(
ctx
(), v));
5244
}
5245
5246
isl::checked::multi_aff
aff::scale_down
(
const
isl::checked::multi_val
&mv)
const
5247
{
5248
return
isl::checked::multi_aff
(*this).
scale_down
(mv);
5249
}
5250
5251
isl::checked::multi_aff
aff::set_at
(
int
pos
,
const
isl::checked::aff
&el)
const
5252
{
5253
return
isl::checked::multi_aff
(*this).
set_at
(
pos
, el);
5254
}
5255
5256
isl::checked::multi_pw_aff
aff::set_at
(
int
pos
,
const
isl::checked::pw_aff
&el)
const
5257
{
5258
return
isl::checked::pw_aff
(*this).
set_at
(
pos
, el);
5259
}
5260
5261
isl::checked::multi_union_pw_aff
aff::set_at
(
int
pos
,
const
isl::checked::union_pw_aff
&el)
const
5262
{
5263
return
isl::checked::pw_aff
(*this).
set_at
(
pos
, el);
5264
}
5265
5266
isl::checked::multi_aff
aff::set_range_tuple
(
const
isl::checked::id
&
id
)
const
5267
{
5268
return
isl::checked::multi_aff
(*this).
set_range_tuple
(
id
);
5269
}
5270
5271
isl::checked::multi_aff
aff::set_range_tuple
(
const
std::string &
id
)
const
5272
{
5273
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
5274
}
5275
5276
class
size
aff::size
()
const
5277
{
5278
return
isl::checked::multi_aff
(*this).
size
();
5279
}
5280
5281
isl::checked::space
aff::space
()
const
5282
{
5283
return
isl::checked::pw_aff
(*this).
space
();
5284
}
5285
5286
isl::checked::aff
aff::sub
(
isl::checked::aff
aff2)
const
5287
{
5288
auto
res
=
isl_aff_sub
(
copy
(), aff2.
release
());
5289
return
manage
(
res
);
5290
}
5291
5292
isl::checked::multi_aff
aff::sub
(
const
isl::checked::multi_aff
&multi2)
const
5293
{
5294
return
isl::checked::multi_aff
(*this).
sub
(multi2);
5295
}
5296
5297
isl::checked::multi_pw_aff
aff::sub
(
const
isl::checked::multi_pw_aff
&multi2)
const
5298
{
5299
return
isl::checked::pw_aff
(*this).
sub
(multi2);
5300
}
5301
5302
isl::checked::multi_union_pw_aff
aff::sub
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
5303
{
5304
return
isl::checked::pw_aff
(*this).
sub
(multi2);
5305
}
5306
5307
isl::checked::pw_aff
aff::sub
(
const
isl::checked::pw_aff
&pwaff2)
const
5308
{
5309
return
isl::checked::pw_aff
(*this).
sub
(pwaff2);
5310
}
5311
5312
isl::checked::pw_multi_aff
aff::sub
(
const
isl::checked::pw_multi_aff
&pma2)
const
5313
{
5314
return
isl::checked::pw_aff
(*this).
sub
(pma2);
5315
}
5316
5317
isl::checked::union_pw_aff
aff::sub
(
const
isl::checked::union_pw_aff
&upa2)
const
5318
{
5319
return
isl::checked::pw_aff
(*this).
sub
(upa2);
5320
}
5321
5322
isl::checked::union_pw_multi_aff
aff::sub
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
5323
{
5324
return
isl::checked::pw_aff
(*this).
sub
(upma2);
5325
}
5326
5327
isl::checked::pw_aff
aff::subtract_domain
(
const
isl::checked::set
&
set
)
const
5328
{
5329
return
isl::checked::pw_aff
(*this).
subtract_domain
(
set
);
5330
}
5331
5332
isl::checked::union_pw_aff
aff::subtract_domain
(
const
isl::checked::space
&
space
)
const
5333
{
5334
return
isl::checked::pw_aff
(*this).
subtract_domain
(
space
);
5335
}
5336
5337
isl::checked::union_pw_aff
aff::subtract_domain
(
const
isl::checked::union_set
&uset)
const
5338
{
5339
return
isl::checked::pw_aff
(*this).
subtract_domain
(uset);
5340
}
5341
5342
isl::checked::pw_aff
aff::tdiv_q
(
const
isl::checked::pw_aff
&pa2)
const
5343
{
5344
return
isl::checked::pw_aff
(*this).
tdiv_q
(pa2);
5345
}
5346
5347
isl::checked::pw_aff
aff::tdiv_r
(
const
isl::checked::pw_aff
&pa2)
const
5348
{
5349
return
isl::checked::pw_aff
(*this).
tdiv_r
(pa2);
5350
}
5351
5352
isl::checked::aff_list
aff::to_list
()
const
5353
{
5354
auto
res
= isl_aff_to_list(
copy
());
5355
return
manage
(
res
);
5356
}
5357
5358
isl::checked::multi_pw_aff
aff::to_multi_pw_aff
()
const
5359
{
5360
return
isl::checked::multi_aff
(*this).
to_multi_pw_aff
();
5361
}
5362
5363
isl::checked::multi_union_pw_aff
aff::to_multi_union_pw_aff
()
const
5364
{
5365
return
isl::checked::multi_aff
(*this).
to_multi_union_pw_aff
();
5366
}
5367
5368
isl::checked::pw_multi_aff
aff::to_pw_multi_aff
()
const
5369
{
5370
return
isl::checked::multi_aff
(*this).
to_pw_multi_aff
();
5371
}
5372
5373
isl::checked::union_pw_aff
aff::to_union_pw_aff
()
const
5374
{
5375
return
isl::checked::pw_aff
(*this).
to_union_pw_aff
();
5376
}
5377
5378
isl::checked::union_pw_multi_aff
aff::to_union_pw_multi_aff
()
const
5379
{
5380
return
isl::checked::pw_aff
(*this).
to_union_pw_multi_aff
();
5381
}
5382
5383
isl::checked::aff
aff::unbind_params_insert_domain
(
isl::checked::multi_id
domain
)
const
5384
{
5385
auto
res
=
isl_aff_unbind_params_insert_domain
(
copy
(),
domain
.release());
5386
return
manage
(
res
);
5387
}
5388
5389
isl::checked::multi_pw_aff
aff::union_add
(
const
isl::checked::multi_pw_aff
&mpa2)
const
5390
{
5391
return
isl::checked::pw_aff
(*this).
union_add
(mpa2);
5392
}
5393
5394
isl::checked::multi_union_pw_aff
aff::union_add
(
const
isl::checked::multi_union_pw_aff
&mupa2)
const
5395
{
5396
return
isl::checked::pw_aff
(*this).
union_add
(mupa2);
5397
}
5398
5399
isl::checked::pw_aff
aff::union_add
(
const
isl::checked::pw_aff
&pwaff2)
const
5400
{
5401
return
isl::checked::pw_aff
(*this).
union_add
(pwaff2);
5402
}
5403
5404
isl::checked::pw_multi_aff
aff::union_add
(
const
isl::checked::pw_multi_aff
&pma2)
const
5405
{
5406
return
isl::checked::pw_aff
(*this).
union_add
(pma2);
5407
}
5408
5409
isl::checked::union_pw_aff
aff::union_add
(
const
isl::checked::union_pw_aff
&upa2)
const
5410
{
5411
return
isl::checked::pw_aff
(*this).
union_add
(upa2);
5412
}
5413
5414
isl::checked::union_pw_multi_aff
aff::union_add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
5415
{
5416
return
isl::checked::pw_aff
(*this).
union_add
(upma2);
5417
}
5418
5419
isl::checked::aff
aff::zero_on_domain
(
isl::checked::space
space
)
5420
{
5421
auto
res
=
isl_aff_zero_on_domain_space
(
space
.release());
5422
return
manage
(
res
);
5423
}
5424
5425
inline
std::ostream &
operator<<
(std::ostream &os,
const
aff
&
obj
)
5426
{
5427
char
*
str
=
isl_aff_to_str
(
obj
.get());
5428
if
(!
str
) {
5429
os.setstate(std::ios_base::badbit);
5430
return
os;
5431
}
5432
os <<
str
;
5433
free(
str
);
5434
return
os;
5435
}
5436
5437
// implementations for isl::aff_list
5438
aff_list
manage
(
__isl_take
isl_aff_list *
ptr
) {
5439
return
aff_list
(
ptr
);
5440
}
5441
aff_list
manage_copy
(
__isl_keep
isl_aff_list *
ptr
) {
5442
ptr
= isl_aff_list_copy(
ptr
);
5443
return
aff_list
(
ptr
);
5444
}
5445
5446
aff_list::aff_list
(
__isl_take
isl_aff_list *
ptr
)
5447
:
ptr
(
ptr
) {}
5448
5449
aff_list::aff_list
()
5450
:
ptr
(nullptr) {}
5451
5452
aff_list::aff_list
(
const
aff_list
&
obj
)
5453
:
ptr
(nullptr)
5454
{
5455
ptr
=
obj
.copy();
5456
}
5457
5458
aff_list::aff_list
(
isl::checked::ctx
ctx
,
int
n
)
5459
{
5460
auto
res
= isl_aff_list_alloc(
ctx
.release(),
n
);
5461
ptr
=
res
;
5462
}
5463
5464
aff_list::aff_list
(
isl::checked::aff
el)
5465
{
5466
auto
res
= isl_aff_list_from_aff(el.
release
());
5467
ptr
=
res
;
5468
}
5469
5470
aff_list::aff_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
5471
{
5472
auto
res
= isl_aff_list_read_from_str(
ctx
.release(),
str
.c_str());
5473
ptr
=
res
;
5474
}
5475
5476
aff_list
&
aff_list::operator=
(
aff_list
obj
) {
5477
std::swap(this->ptr,
obj
.ptr);
5478
return
*
this
;
5479
}
5480
5481
aff_list::~aff_list
() {
5482
if
(
ptr
)
5483
isl_aff_list_free(
ptr
);
5484
}
5485
5486
__isl_give
isl_aff_list *
aff_list::copy
() const & {
5487
return
isl_aff_list_copy(
ptr
);
5488
}
5489
5490
__isl_keep
isl_aff_list *
aff_list::get
()
const
{
5491
return
ptr
;
5492
}
5493
5494
__isl_give
isl_aff_list *
aff_list::release
() {
5495
isl_aff_list *tmp =
ptr
;
5496
ptr
=
nullptr
;
5497
return
tmp;
5498
}
5499
5500
bool
aff_list::is_null
()
const
{
5501
return
ptr
==
nullptr
;
5502
}
5503
5504
isl::checked::ctx
aff_list::ctx
()
const
{
5505
return
isl::checked::ctx
(isl_aff_list_get_ctx(
ptr
));
5506
}
5507
5508
isl::checked::aff_list
aff_list::add
(
isl::checked::aff
el)
const
5509
{
5510
auto
res
= isl_aff_list_add(
copy
(), el.
release
());
5511
return
manage
(
res
);
5512
}
5513
5514
isl::checked::aff
aff_list::at
(
int
index)
const
5515
{
5516
auto
res
= isl_aff_list_get_at(
get
(), index);
5517
return
manage
(
res
);
5518
}
5519
5520
isl::checked::aff
aff_list::get_at
(
int
index)
const
5521
{
5522
return
at
(index);
5523
}
5524
5525
isl::checked::aff_list
aff_list::clear
()
const
5526
{
5527
auto
res
= isl_aff_list_clear(
copy
());
5528
return
manage
(
res
);
5529
}
5530
5531
isl::checked::aff_list
aff_list::concat
(
isl::checked::aff_list
list2)
const
5532
{
5533
auto
res
= isl_aff_list_concat(
copy
(), list2.
release
());
5534
return
manage
(
res
);
5535
}
5536
5537
isl::checked::aff_list
aff_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
5538
{
5539
auto
res
= isl_aff_list_drop(
copy
(), first,
n
);
5540
return
manage
(
res
);
5541
}
5542
5543
stat
aff_list::foreach
(
const
std::function<
stat
(
isl::checked::aff
)> &
fn
)
const
5544
{
5545
struct
fn_data {
5546
std::function<
stat
(
isl::checked::aff
)> func;
5547
} fn_data = {
fn
};
5548
auto
fn_lambda = [](
isl_aff
*arg_0,
void
*arg_1) ->
isl_stat
{
5549
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
5550
auto
ret = (data->func)(
manage
(arg_0));
5551
return
ret.release();
5552
};
5553
auto
res
= isl_aff_list_foreach(
get
(), fn_lambda, &fn_data);
5554
return
manage
(
res
);
5555
}
5556
5557
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
5558
{
5559
struct
follows_data {
5560
std::function<
boolean
(
isl::checked::aff
,
isl::checked::aff
)> func;
5561
} follows_data = { follows };
5562
auto
follows_lambda = [](
isl_aff
*arg_0,
isl_aff
*arg_1,
void
*arg_2) ->
isl_bool
{
5563
auto
*data =
static_cast<
struct follows_data *
>
(arg_2);
5564
auto
ret = (data->func)(
manage_copy
(arg_0),
manage_copy
(arg_1));
5565
return
ret.release();
5566
};
5567
struct
fn_data {
5568
std::function<
stat
(
isl::checked::aff_list
)> func;
5569
} fn_data = {
fn
};
5570
auto
fn_lambda = [](isl_aff_list *arg_0,
void
*arg_1) ->
isl_stat
{
5571
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
5572
auto
ret = (data->func)(
manage
(arg_0));
5573
return
ret.release();
5574
};
5575
auto
res
= isl_aff_list_foreach_scc(
get
(), follows_lambda, &follows_data, fn_lambda, &fn_data);
5576
return
manage
(
res
);
5577
}
5578
5579
isl::checked::aff_list
aff_list::insert
(
unsigned
int
pos
,
isl::checked::aff
el)
const
5580
{
5581
auto
res
= isl_aff_list_insert(
copy
(),
pos
, el.
release
());
5582
return
manage
(
res
);
5583
}
5584
5585
isl::checked::aff_list
aff_list::set_at
(
int
index,
isl::checked::aff
el)
const
5586
{
5587
auto
res
= isl_aff_list_set_at(
copy
(), index, el.
release
());
5588
return
manage
(
res
);
5589
}
5590
5591
class
size
aff_list::size
()
const
5592
{
5593
auto
res
= isl_aff_list_size(
get
());
5594
return
manage
(
res
);
5595
}
5596
5597
inline
std::ostream &
operator<<
(std::ostream &os,
const
aff_list
&
obj
)
5598
{
5599
char
*
str
= isl_aff_list_to_str(
obj
.get());
5600
if
(!
str
) {
5601
os.setstate(std::ios_base::badbit);
5602
return
os;
5603
}
5604
os <<
str
;
5605
free(
str
);
5606
return
os;
5607
}
5608
5609
// implementations for isl::ast_build
5610
ast_build
manage
(
__isl_take
isl_ast_build
*
ptr
) {
5611
return
ast_build
(
ptr
);
5612
}
5613
ast_build
manage_copy
(
__isl_keep
isl_ast_build
*
ptr
) {
5614
ptr
=
isl_ast_build_copy
(
ptr
);
5615
return
ast_build
(
ptr
);
5616
}
5617
5618
ast_build::ast_build
(
__isl_take
isl_ast_build
*
ptr
)
5619
:
ptr
(
ptr
) {}
5620
5621
ast_build::ast_build
()
5622
:
ptr
(nullptr) {}
5623
5624
ast_build::ast_build
(
const
ast_build
&
obj
)
5625
:
ptr
(nullptr)
5626
{
5627
ptr
=
obj
.copy();
5628
copy_callbacks
(
obj
);
5629
}
5630
5631
ast_build::ast_build
(
isl::checked::ctx
ctx
)
5632
{
5633
auto
res
=
isl_ast_build_alloc
(
ctx
.release());
5634
ptr
=
res
;
5635
}
5636
5637
ast_build
&
ast_build::operator=
(
ast_build
obj
) {
5638
std::swap(this->ptr,
obj
.ptr);
5639
copy_callbacks
(
obj
);
5640
return
*
this
;
5641
}
5642
5643
ast_build::~ast_build
() {
5644
if
(
ptr
)
5645
isl_ast_build_free
(
ptr
);
5646
}
5647
5648
__isl_give
isl_ast_build
*
ast_build::copy
() const & {
5649
return
isl_ast_build_copy
(
ptr
);
5650
}
5651
5652
__isl_keep
isl_ast_build
*
ast_build::get
()
const
{
5653
return
ptr
;
5654
}
5655
5656
__isl_give
isl_ast_build
*
ast_build::release
() {
5657
if
(
at_each_domain_data
)
5658
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"cannot release object with persistent callbacks"
,
return
nullptr
);
5659
isl_ast_build
*tmp =
ptr
;
5660
ptr
=
nullptr
;
5661
return
tmp;
5662
}
5663
5664
bool
ast_build::is_null
()
const
{
5665
return
ptr
==
nullptr
;
5666
}
5667
5668
isl::checked::ctx
ast_build::ctx
()
const
{
5669
return
isl::checked::ctx
(
isl_ast_build_get_ctx
(
ptr
));
5670
}
5671
5672
ast_build
&
ast_build::copy_callbacks
(
const
ast_build
&
obj
)
5673
{
5674
at_each_domain_data
=
obj
.at_each_domain_data;
5675
return
*
this
;
5676
}
5677
5678
isl_ast_node
*
ast_build::at_each_domain
(
isl_ast_node
*arg_0,
isl_ast_build
*arg_1,
void
*arg_2)
5679
{
5680
auto
*data =
static_cast<
struct
at_each_domain_data
*
>
(arg_2);
5681
auto
ret = (data->func)(
manage
(arg_0),
manage_copy
(arg_1));
5682
return
ret.release();
5683
}
5684
5685
void
ast_build::set_at_each_domain_data
(
const
std::function<
isl::checked::ast_node
(
isl::checked::ast_node
,
isl::checked::ast_build
)> &
fn
)
5686
{
5687
at_each_domain_data
= std::make_shared<struct at_each_domain_data>();
5688
at_each_domain_data
->
func
=
fn
;
5689
ptr
=
isl_ast_build_set_at_each_domain
(
ptr
, &
at_each_domain
,
at_each_domain_data
.get());
5690
}
5691
5692
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
{
5694
auto
copy
= *
this
;
5695
copy
.set_at_each_domain_data(
fn
);
5696
return
copy
;
5697
}
5698
5699
isl::checked::ast_expr
ast_build::access_from
(
isl::checked::multi_pw_aff
mpa)
const
5700
{
5701
auto
res
=
isl_ast_build_access_from_multi_pw_aff
(
get
(), mpa.
release
());
5702
return
manage
(
res
);
5703
}
5704
5705
isl::checked::ast_expr
ast_build::access_from
(
isl::checked::pw_multi_aff
pma
)
const
5706
{
5707
auto
res
=
isl_ast_build_access_from_pw_multi_aff
(
get
(),
pma
.release());
5708
return
manage
(
res
);
5709
}
5710
5711
isl::checked::ast_expr
ast_build::call_from
(
isl::checked::multi_pw_aff
mpa)
const
5712
{
5713
auto
res
=
isl_ast_build_call_from_multi_pw_aff
(
get
(), mpa.
release
());
5714
return
manage
(
res
);
5715
}
5716
5717
isl::checked::ast_expr
ast_build::call_from
(
isl::checked::pw_multi_aff
pma
)
const
5718
{
5719
auto
res
=
isl_ast_build_call_from_pw_multi_aff
(
get
(),
pma
.release());
5720
return
manage
(
res
);
5721
}
5722
5723
isl::checked::ast_expr
ast_build::expr_from
(
isl::checked::pw_aff
pa
)
const
5724
{
5725
auto
res
=
isl_ast_build_expr_from_pw_aff
(
get
(),
pa
.release());
5726
return
manage
(
res
);
5727
}
5728
5729
isl::checked::ast_expr
ast_build::expr_from
(
isl::checked::set
set
)
const
5730
{
5731
auto
res
=
isl_ast_build_expr_from_set
(
get
(),
set
.
release
());
5732
return
manage
(
res
);
5733
}
5734
5735
isl::checked::ast_build
ast_build::from_context
(
isl::checked::set
set
)
5736
{
5737
auto
res
=
isl_ast_build_from_context
(
set
.
release
());
5738
return
manage
(
res
);
5739
}
5740
5741
isl::checked::ast_node
ast_build::node_from
(
isl::checked::schedule
schedule
)
const
5742
{
5743
auto
res
=
isl_ast_build_node_from_schedule
(
get
(),
schedule
.release());
5744
return
manage
(
res
);
5745
}
5746
5747
isl::checked::ast_node
ast_build::node_from_schedule_map
(
isl::checked::union_map
schedule
)
const
5748
{
5749
auto
res
=
isl_ast_build_node_from_schedule_map
(
get
(),
schedule
.release());
5750
return
manage
(
res
);
5751
}
5752
5753
isl::checked::union_map
ast_build::schedule
()
const
5754
{
5755
auto
res
=
isl_ast_build_get_schedule
(
get
());
5756
return
manage
(
res
);
5757
}
5758
5759
isl::checked::union_map
ast_build::get_schedule
()
const
5760
{
5761
return
schedule
();
5762
}
5763
5764
// implementations for isl::ast_expr
5765
ast_expr
manage
(
__isl_take
isl_ast_expr
*
ptr
) {
5766
return
ast_expr
(
ptr
);
5767
}
5768
ast_expr
manage_copy
(
__isl_keep
isl_ast_expr
*
ptr
) {
5769
ptr
=
isl_ast_expr_copy
(
ptr
);
5770
return
ast_expr
(
ptr
);
5771
}
5772
5773
ast_expr::ast_expr
(
__isl_take
isl_ast_expr
*
ptr
)
5774
:
ptr
(
ptr
) {}
5775
5776
ast_expr::ast_expr
()
5777
:
ptr
(nullptr) {}
5778
5779
ast_expr::ast_expr
(
const
ast_expr
&
obj
)
5780
:
ptr
(nullptr)
5781
{
5782
ptr
=
obj
.copy();
5783
}
5784
5785
ast_expr
&
ast_expr::operator=
(
ast_expr
obj
) {
5786
std::swap(this->ptr,
obj
.ptr);
5787
return
*
this
;
5788
}
5789
5790
ast_expr::~ast_expr
() {
5791
if
(
ptr
)
5792
isl_ast_expr_free
(
ptr
);
5793
}
5794
5795
__isl_give
isl_ast_expr
*
ast_expr::copy
() const & {
5796
return
isl_ast_expr_copy
(
ptr
);
5797
}
5798
5799
__isl_keep
isl_ast_expr
*
ast_expr::get
()
const
{
5800
return
ptr
;
5801
}
5802
5803
__isl_give
isl_ast_expr
*
ast_expr::release
() {
5804
isl_ast_expr
*tmp =
ptr
;
5805
ptr
=
nullptr
;
5806
return
tmp;
5807
}
5808
5809
bool
ast_expr::is_null
()
const
{
5810
return
ptr
==
nullptr
;
5811
}
5812
5813
template
<
typename
T,
typename
>
5814
boolean
ast_expr::isa_type
(T subtype)
const
5815
{
5816
if
(
is_null
())
5817
return
boolean
();
5818
return
isl_ast_expr_get_type
(
get
()) == subtype;
5819
}
5820
template
<
class
T>
5821
boolean
ast_expr::isa
()
const
5822
{
5823
return
isa_type<decltype(T::type)>
(T::type);
5824
}
5825
template
<
class
T>
5826
T
ast_expr::as
()
const
5827
{
5828
if
(
isa<T>
().is_false())
5829
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
5830
return
T(
copy
());
5831
}
5832
5833
isl::checked::ctx
ast_expr::ctx
()
const
{
5834
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
5835
}
5836
5837
std::string
ast_expr::to_C_str
()
const
5838
{
5839
auto
res
=
isl_ast_expr_to_C_str
(
get
());
5840
std::string tmp(
res
);
5841
free(
res
);
5842
return
tmp;
5843
}
5844
5845
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr
&
obj
)
5846
{
5847
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
5848
if
(!
str
) {
5849
os.setstate(std::ios_base::badbit);
5850
return
os;
5851
}
5852
os <<
str
;
5853
free(
str
);
5854
return
os;
5855
}
5856
5857
// implementations for isl::ast_expr_id
5858
ast_expr_id::ast_expr_id
(
__isl_take
isl_ast_expr
*
ptr
)
5859
:
ast_expr
(
ptr
) {}
5860
5861
ast_expr_id::ast_expr_id
()
5862
:
ast_expr
() {}
5863
5864
ast_expr_id::ast_expr_id
(
const
ast_expr_id
&
obj
)
5865
:
ast_expr
(
obj
)
5866
{
5867
}
5868
5869
ast_expr_id
&
ast_expr_id::operator=
(
ast_expr_id
obj
) {
5870
std::swap(this->ptr,
obj
.ptr);
5871
return
*
this
;
5872
}
5873
5874
isl::checked::ctx
ast_expr_id::ctx
()
const
{
5875
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
5876
}
5877
5878
isl::checked::id
ast_expr_id::id
()
const
5879
{
5880
auto
res
=
isl_ast_expr_id_get_id
(
get
());
5881
return
manage
(
res
);
5882
}
5883
5884
isl::checked::id
ast_expr_id::get_id
()
const
5885
{
5886
return
id
();
5887
}
5888
5889
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_id
&
obj
)
5890
{
5891
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
5892
if
(!
str
) {
5893
os.setstate(std::ios_base::badbit);
5894
return
os;
5895
}
5896
os <<
str
;
5897
free(
str
);
5898
return
os;
5899
}
5900
5901
// implementations for isl::ast_expr_int
5902
ast_expr_int::ast_expr_int
(
__isl_take
isl_ast_expr
*
ptr
)
5903
:
ast_expr
(
ptr
) {}
5904
5905
ast_expr_int::ast_expr_int
()
5906
:
ast_expr
() {}
5907
5908
ast_expr_int::ast_expr_int
(
const
ast_expr_int
&
obj
)
5909
:
ast_expr
(
obj
)
5910
{
5911
}
5912
5913
ast_expr_int
&
ast_expr_int::operator=
(
ast_expr_int
obj
) {
5914
std::swap(this->ptr,
obj
.ptr);
5915
return
*
this
;
5916
}
5917
5918
isl::checked::ctx
ast_expr_int::ctx
()
const
{
5919
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
5920
}
5921
5922
isl::checked::val
ast_expr_int::val
()
const
5923
{
5924
auto
res
=
isl_ast_expr_int_get_val
(
get
());
5925
return
manage
(
res
);
5926
}
5927
5928
isl::checked::val
ast_expr_int::get_val
()
const
5929
{
5930
return
val
();
5931
}
5932
5933
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_int
&
obj
)
5934
{
5935
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
5936
if
(!
str
) {
5937
os.setstate(std::ios_base::badbit);
5938
return
os;
5939
}
5940
os <<
str
;
5941
free(
str
);
5942
return
os;
5943
}
5944
5945
// implementations for isl::ast_expr_op
5946
ast_expr_op::ast_expr_op
(
__isl_take
isl_ast_expr
*
ptr
)
5947
:
ast_expr
(
ptr
) {}
5948
5949
ast_expr_op::ast_expr_op
()
5950
:
ast_expr
() {}
5951
5952
ast_expr_op::ast_expr_op
(
const
ast_expr_op
&
obj
)
5953
:
ast_expr
(
obj
)
5954
{
5955
}
5956
5957
ast_expr_op
&
ast_expr_op::operator=
(
ast_expr_op
obj
) {
5958
std::swap(this->ptr,
obj
.ptr);
5959
return
*
this
;
5960
}
5961
5962
template
<
typename
T,
typename
>
5963
boolean
ast_expr_op::isa_type
(T subtype)
const
5964
{
5965
if
(
is_null
())
5966
return
boolean
();
5967
return
isl_ast_expr_op_get_type
(
get
()) == subtype;
5968
}
5969
template
<
class
T>
5970
boolean
ast_expr_op::isa
()
const
5971
{
5972
return
isa_type<decltype(T::type)>
(T::type);
5973
}
5974
template
<
class
T>
5975
T
ast_expr_op::as
()
const
5976
{
5977
if
(
isa<T>
().is_false())
5978
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
5979
return
T(
copy
());
5980
}
5981
5982
isl::checked::ctx
ast_expr_op::ctx
()
const
{
5983
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
5984
}
5985
5986
isl::checked::ast_expr
ast_expr_op::arg
(
int
pos
)
const
5987
{
5988
auto
res
=
isl_ast_expr_op_get_arg
(
get
(),
pos
);
5989
return
manage
(
res
);
5990
}
5991
5992
isl::checked::ast_expr
ast_expr_op::get_arg
(
int
pos
)
const
5993
{
5994
return
arg
(
pos
);
5995
}
5996
5997
class
size
ast_expr_op::n_arg
()
const
5998
{
5999
auto
res
=
isl_ast_expr_op_get_n_arg
(
get
());
6000
return
manage
(
res
);
6001
}
6002
6003
class
size
ast_expr_op::get_n_arg
()
const
6004
{
6005
return
n_arg
();
6006
}
6007
6008
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op
&
obj
)
6009
{
6010
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6011
if
(!
str
) {
6012
os.setstate(std::ios_base::badbit);
6013
return
os;
6014
}
6015
os <<
str
;
6016
free(
str
);
6017
return
os;
6018
}
6019
6020
// implementations for isl::ast_expr_op_access
6021
ast_expr_op_access::ast_expr_op_access
(
__isl_take
isl_ast_expr
*
ptr
)
6022
:
ast_expr_op
(
ptr
) {}
6023
6024
ast_expr_op_access::ast_expr_op_access
()
6025
:
ast_expr_op
() {}
6026
6027
ast_expr_op_access::ast_expr_op_access
(
const
ast_expr_op_access
&
obj
)
6028
:
ast_expr_op
(
obj
)
6029
{
6030
}
6031
6032
ast_expr_op_access
&
ast_expr_op_access::operator=
(
ast_expr_op_access
obj
) {
6033
std::swap(this->ptr,
obj
.ptr);
6034
return
*
this
;
6035
}
6036
6037
isl::checked::ctx
ast_expr_op_access::ctx
()
const
{
6038
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6039
}
6040
6041
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_access
&
obj
)
6042
{
6043
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6044
if
(!
str
) {
6045
os.setstate(std::ios_base::badbit);
6046
return
os;
6047
}
6048
os <<
str
;
6049
free(
str
);
6050
return
os;
6051
}
6052
6053
// implementations for isl::ast_expr_op_add
6054
ast_expr_op_add::ast_expr_op_add
(
__isl_take
isl_ast_expr
*
ptr
)
6055
:
ast_expr_op
(
ptr
) {}
6056
6057
ast_expr_op_add::ast_expr_op_add
()
6058
:
ast_expr_op
() {}
6059
6060
ast_expr_op_add::ast_expr_op_add
(
const
ast_expr_op_add
&
obj
)
6061
:
ast_expr_op
(
obj
)
6062
{
6063
}
6064
6065
ast_expr_op_add
&
ast_expr_op_add::operator=
(
ast_expr_op_add
obj
) {
6066
std::swap(this->ptr,
obj
.ptr);
6067
return
*
this
;
6068
}
6069
6070
isl::checked::ctx
ast_expr_op_add::ctx
()
const
{
6071
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6072
}
6073
6074
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_add
&
obj
)
6075
{
6076
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6077
if
(!
str
) {
6078
os.setstate(std::ios_base::badbit);
6079
return
os;
6080
}
6081
os <<
str
;
6082
free(
str
);
6083
return
os;
6084
}
6085
6086
// implementations for isl::ast_expr_op_address_of
6087
ast_expr_op_address_of::ast_expr_op_address_of
(
__isl_take
isl_ast_expr
*
ptr
)
6088
:
ast_expr_op
(
ptr
) {}
6089
6090
ast_expr_op_address_of::ast_expr_op_address_of
()
6091
:
ast_expr_op
() {}
6092
6093
ast_expr_op_address_of::ast_expr_op_address_of
(
const
ast_expr_op_address_of
&
obj
)
6094
:
ast_expr_op
(
obj
)
6095
{
6096
}
6097
6098
ast_expr_op_address_of
&
ast_expr_op_address_of::operator=
(
ast_expr_op_address_of
obj
) {
6099
std::swap(this->ptr,
obj
.ptr);
6100
return
*
this
;
6101
}
6102
6103
isl::checked::ctx
ast_expr_op_address_of::ctx
()
const
{
6104
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6105
}
6106
6107
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_address_of
&
obj
)
6108
{
6109
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6110
if
(!
str
) {
6111
os.setstate(std::ios_base::badbit);
6112
return
os;
6113
}
6114
os <<
str
;
6115
free(
str
);
6116
return
os;
6117
}
6118
6119
// implementations for isl::ast_expr_op_and
6120
ast_expr_op_and::ast_expr_op_and
(
__isl_take
isl_ast_expr
*
ptr
)
6121
:
ast_expr_op
(
ptr
) {}
6122
6123
ast_expr_op_and::ast_expr_op_and
()
6124
:
ast_expr_op
() {}
6125
6126
ast_expr_op_and::ast_expr_op_and
(
const
ast_expr_op_and
&
obj
)
6127
:
ast_expr_op
(
obj
)
6128
{
6129
}
6130
6131
ast_expr_op_and
&
ast_expr_op_and::operator=
(
ast_expr_op_and
obj
) {
6132
std::swap(this->ptr,
obj
.ptr);
6133
return
*
this
;
6134
}
6135
6136
isl::checked::ctx
ast_expr_op_and::ctx
()
const
{
6137
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6138
}
6139
6140
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_and
&
obj
)
6141
{
6142
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6143
if
(!
str
) {
6144
os.setstate(std::ios_base::badbit);
6145
return
os;
6146
}
6147
os <<
str
;
6148
free(
str
);
6149
return
os;
6150
}
6151
6152
// implementations for isl::ast_expr_op_and_then
6153
ast_expr_op_and_then::ast_expr_op_and_then
(
__isl_take
isl_ast_expr
*
ptr
)
6154
:
ast_expr_op
(
ptr
) {}
6155
6156
ast_expr_op_and_then::ast_expr_op_and_then
()
6157
:
ast_expr_op
() {}
6158
6159
ast_expr_op_and_then::ast_expr_op_and_then
(
const
ast_expr_op_and_then
&
obj
)
6160
:
ast_expr_op
(
obj
)
6161
{
6162
}
6163
6164
ast_expr_op_and_then
&
ast_expr_op_and_then::operator=
(
ast_expr_op_and_then
obj
) {
6165
std::swap(this->ptr,
obj
.ptr);
6166
return
*
this
;
6167
}
6168
6169
isl::checked::ctx
ast_expr_op_and_then::ctx
()
const
{
6170
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6171
}
6172
6173
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_and_then
&
obj
)
6174
{
6175
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6176
if
(!
str
) {
6177
os.setstate(std::ios_base::badbit);
6178
return
os;
6179
}
6180
os <<
str
;
6181
free(
str
);
6182
return
os;
6183
}
6184
6185
// implementations for isl::ast_expr_op_call
6186
ast_expr_op_call::ast_expr_op_call
(
__isl_take
isl_ast_expr
*
ptr
)
6187
:
ast_expr_op
(
ptr
) {}
6188
6189
ast_expr_op_call::ast_expr_op_call
()
6190
:
ast_expr_op
() {}
6191
6192
ast_expr_op_call::ast_expr_op_call
(
const
ast_expr_op_call
&
obj
)
6193
:
ast_expr_op
(
obj
)
6194
{
6195
}
6196
6197
ast_expr_op_call
&
ast_expr_op_call::operator=
(
ast_expr_op_call
obj
) {
6198
std::swap(this->ptr,
obj
.ptr);
6199
return
*
this
;
6200
}
6201
6202
isl::checked::ctx
ast_expr_op_call::ctx
()
const
{
6203
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6204
}
6205
6206
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_call
&
obj
)
6207
{
6208
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6209
if
(!
str
) {
6210
os.setstate(std::ios_base::badbit);
6211
return
os;
6212
}
6213
os <<
str
;
6214
free(
str
);
6215
return
os;
6216
}
6217
6218
// implementations for isl::ast_expr_op_cond
6219
ast_expr_op_cond::ast_expr_op_cond
(
__isl_take
isl_ast_expr
*
ptr
)
6220
:
ast_expr_op
(
ptr
) {}
6221
6222
ast_expr_op_cond::ast_expr_op_cond
()
6223
:
ast_expr_op
() {}
6224
6225
ast_expr_op_cond::ast_expr_op_cond
(
const
ast_expr_op_cond
&
obj
)
6226
:
ast_expr_op
(
obj
)
6227
{
6228
}
6229
6230
ast_expr_op_cond
&
ast_expr_op_cond::operator=
(
ast_expr_op_cond
obj
) {
6231
std::swap(this->ptr,
obj
.ptr);
6232
return
*
this
;
6233
}
6234
6235
isl::checked::ctx
ast_expr_op_cond::ctx
()
const
{
6236
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6237
}
6238
6239
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_cond
&
obj
)
6240
{
6241
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6242
if
(!
str
) {
6243
os.setstate(std::ios_base::badbit);
6244
return
os;
6245
}
6246
os <<
str
;
6247
free(
str
);
6248
return
os;
6249
}
6250
6251
// implementations for isl::ast_expr_op_div
6252
ast_expr_op_div::ast_expr_op_div
(
__isl_take
isl_ast_expr
*
ptr
)
6253
:
ast_expr_op
(
ptr
) {}
6254
6255
ast_expr_op_div::ast_expr_op_div
()
6256
:
ast_expr_op
() {}
6257
6258
ast_expr_op_div::ast_expr_op_div
(
const
ast_expr_op_div
&
obj
)
6259
:
ast_expr_op
(
obj
)
6260
{
6261
}
6262
6263
ast_expr_op_div
&
ast_expr_op_div::operator=
(
ast_expr_op_div
obj
) {
6264
std::swap(this->ptr,
obj
.ptr);
6265
return
*
this
;
6266
}
6267
6268
isl::checked::ctx
ast_expr_op_div::ctx
()
const
{
6269
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6270
}
6271
6272
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_div
&
obj
)
6273
{
6274
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6275
if
(!
str
) {
6276
os.setstate(std::ios_base::badbit);
6277
return
os;
6278
}
6279
os <<
str
;
6280
free(
str
);
6281
return
os;
6282
}
6283
6284
// implementations for isl::ast_expr_op_eq
6285
ast_expr_op_eq::ast_expr_op_eq
(
__isl_take
isl_ast_expr
*
ptr
)
6286
:
ast_expr_op
(
ptr
) {}
6287
6288
ast_expr_op_eq::ast_expr_op_eq
()
6289
:
ast_expr_op
() {}
6290
6291
ast_expr_op_eq::ast_expr_op_eq
(
const
ast_expr_op_eq
&
obj
)
6292
:
ast_expr_op
(
obj
)
6293
{
6294
}
6295
6296
ast_expr_op_eq
&
ast_expr_op_eq::operator=
(
ast_expr_op_eq
obj
) {
6297
std::swap(this->ptr,
obj
.ptr);
6298
return
*
this
;
6299
}
6300
6301
isl::checked::ctx
ast_expr_op_eq::ctx
()
const
{
6302
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6303
}
6304
6305
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_eq
&
obj
)
6306
{
6307
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6308
if
(!
str
) {
6309
os.setstate(std::ios_base::badbit);
6310
return
os;
6311
}
6312
os <<
str
;
6313
free(
str
);
6314
return
os;
6315
}
6316
6317
// implementations for isl::ast_expr_op_fdiv_q
6318
ast_expr_op_fdiv_q::ast_expr_op_fdiv_q
(
__isl_take
isl_ast_expr
*
ptr
)
6319
:
ast_expr_op
(
ptr
) {}
6320
6321
ast_expr_op_fdiv_q::ast_expr_op_fdiv_q
()
6322
:
ast_expr_op
() {}
6323
6324
ast_expr_op_fdiv_q::ast_expr_op_fdiv_q
(
const
ast_expr_op_fdiv_q
&
obj
)
6325
:
ast_expr_op
(
obj
)
6326
{
6327
}
6328
6329
ast_expr_op_fdiv_q
&
ast_expr_op_fdiv_q::operator=
(
ast_expr_op_fdiv_q
obj
) {
6330
std::swap(this->ptr,
obj
.ptr);
6331
return
*
this
;
6332
}
6333
6334
isl::checked::ctx
ast_expr_op_fdiv_q::ctx
()
const
{
6335
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6336
}
6337
6338
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_fdiv_q
&
obj
)
6339
{
6340
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6341
if
(!
str
) {
6342
os.setstate(std::ios_base::badbit);
6343
return
os;
6344
}
6345
os <<
str
;
6346
free(
str
);
6347
return
os;
6348
}
6349
6350
// implementations for isl::ast_expr_op_ge
6351
ast_expr_op_ge::ast_expr_op_ge
(
__isl_take
isl_ast_expr
*
ptr
)
6352
:
ast_expr_op
(
ptr
) {}
6353
6354
ast_expr_op_ge::ast_expr_op_ge
()
6355
:
ast_expr_op
() {}
6356
6357
ast_expr_op_ge::ast_expr_op_ge
(
const
ast_expr_op_ge
&
obj
)
6358
:
ast_expr_op
(
obj
)
6359
{
6360
}
6361
6362
ast_expr_op_ge
&
ast_expr_op_ge::operator=
(
ast_expr_op_ge
obj
) {
6363
std::swap(this->ptr,
obj
.ptr);
6364
return
*
this
;
6365
}
6366
6367
isl::checked::ctx
ast_expr_op_ge::ctx
()
const
{
6368
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6369
}
6370
6371
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_ge
&
obj
)
6372
{
6373
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6374
if
(!
str
) {
6375
os.setstate(std::ios_base::badbit);
6376
return
os;
6377
}
6378
os <<
str
;
6379
free(
str
);
6380
return
os;
6381
}
6382
6383
// implementations for isl::ast_expr_op_gt
6384
ast_expr_op_gt::ast_expr_op_gt
(
__isl_take
isl_ast_expr
*
ptr
)
6385
:
ast_expr_op
(
ptr
) {}
6386
6387
ast_expr_op_gt::ast_expr_op_gt
()
6388
:
ast_expr_op
() {}
6389
6390
ast_expr_op_gt::ast_expr_op_gt
(
const
ast_expr_op_gt
&
obj
)
6391
:
ast_expr_op
(
obj
)
6392
{
6393
}
6394
6395
ast_expr_op_gt
&
ast_expr_op_gt::operator=
(
ast_expr_op_gt
obj
) {
6396
std::swap(this->ptr,
obj
.ptr);
6397
return
*
this
;
6398
}
6399
6400
isl::checked::ctx
ast_expr_op_gt::ctx
()
const
{
6401
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6402
}
6403
6404
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_gt
&
obj
)
6405
{
6406
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6407
if
(!
str
) {
6408
os.setstate(std::ios_base::badbit);
6409
return
os;
6410
}
6411
os <<
str
;
6412
free(
str
);
6413
return
os;
6414
}
6415
6416
// implementations for isl::ast_expr_op_le
6417
ast_expr_op_le::ast_expr_op_le
(
__isl_take
isl_ast_expr
*
ptr
)
6418
:
ast_expr_op
(
ptr
) {}
6419
6420
ast_expr_op_le::ast_expr_op_le
()
6421
:
ast_expr_op
() {}
6422
6423
ast_expr_op_le::ast_expr_op_le
(
const
ast_expr_op_le
&
obj
)
6424
:
ast_expr_op
(
obj
)
6425
{
6426
}
6427
6428
ast_expr_op_le
&
ast_expr_op_le::operator=
(
ast_expr_op_le
obj
) {
6429
std::swap(this->ptr,
obj
.ptr);
6430
return
*
this
;
6431
}
6432
6433
isl::checked::ctx
ast_expr_op_le::ctx
()
const
{
6434
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6435
}
6436
6437
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_le
&
obj
)
6438
{
6439
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6440
if
(!
str
) {
6441
os.setstate(std::ios_base::badbit);
6442
return
os;
6443
}
6444
os <<
str
;
6445
free(
str
);
6446
return
os;
6447
}
6448
6449
// implementations for isl::ast_expr_op_lt
6450
ast_expr_op_lt::ast_expr_op_lt
(
__isl_take
isl_ast_expr
*
ptr
)
6451
:
ast_expr_op
(
ptr
) {}
6452
6453
ast_expr_op_lt::ast_expr_op_lt
()
6454
:
ast_expr_op
() {}
6455
6456
ast_expr_op_lt::ast_expr_op_lt
(
const
ast_expr_op_lt
&
obj
)
6457
:
ast_expr_op
(
obj
)
6458
{
6459
}
6460
6461
ast_expr_op_lt
&
ast_expr_op_lt::operator=
(
ast_expr_op_lt
obj
) {
6462
std::swap(this->ptr,
obj
.ptr);
6463
return
*
this
;
6464
}
6465
6466
isl::checked::ctx
ast_expr_op_lt::ctx
()
const
{
6467
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6468
}
6469
6470
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_lt
&
obj
)
6471
{
6472
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6473
if
(!
str
) {
6474
os.setstate(std::ios_base::badbit);
6475
return
os;
6476
}
6477
os <<
str
;
6478
free(
str
);
6479
return
os;
6480
}
6481
6482
// implementations for isl::ast_expr_op_max
6483
ast_expr_op_max::ast_expr_op_max
(
__isl_take
isl_ast_expr
*
ptr
)
6484
:
ast_expr_op
(
ptr
) {}
6485
6486
ast_expr_op_max::ast_expr_op_max
()
6487
:
ast_expr_op
() {}
6488
6489
ast_expr_op_max::ast_expr_op_max
(
const
ast_expr_op_max
&
obj
)
6490
:
ast_expr_op
(
obj
)
6491
{
6492
}
6493
6494
ast_expr_op_max
&
ast_expr_op_max::operator=
(
ast_expr_op_max
obj
) {
6495
std::swap(this->ptr,
obj
.ptr);
6496
return
*
this
;
6497
}
6498
6499
isl::checked::ctx
ast_expr_op_max::ctx
()
const
{
6500
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6501
}
6502
6503
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_max
&
obj
)
6504
{
6505
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6506
if
(!
str
) {
6507
os.setstate(std::ios_base::badbit);
6508
return
os;
6509
}
6510
os <<
str
;
6511
free(
str
);
6512
return
os;
6513
}
6514
6515
// implementations for isl::ast_expr_op_member
6516
ast_expr_op_member::ast_expr_op_member
(
__isl_take
isl_ast_expr
*
ptr
)
6517
:
ast_expr_op
(
ptr
) {}
6518
6519
ast_expr_op_member::ast_expr_op_member
()
6520
:
ast_expr_op
() {}
6521
6522
ast_expr_op_member::ast_expr_op_member
(
const
ast_expr_op_member
&
obj
)
6523
:
ast_expr_op
(
obj
)
6524
{
6525
}
6526
6527
ast_expr_op_member
&
ast_expr_op_member::operator=
(
ast_expr_op_member
obj
) {
6528
std::swap(this->ptr,
obj
.ptr);
6529
return
*
this
;
6530
}
6531
6532
isl::checked::ctx
ast_expr_op_member::ctx
()
const
{
6533
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6534
}
6535
6536
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_member
&
obj
)
6537
{
6538
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6539
if
(!
str
) {
6540
os.setstate(std::ios_base::badbit);
6541
return
os;
6542
}
6543
os <<
str
;
6544
free(
str
);
6545
return
os;
6546
}
6547
6548
// implementations for isl::ast_expr_op_min
6549
ast_expr_op_min::ast_expr_op_min
(
__isl_take
isl_ast_expr
*
ptr
)
6550
:
ast_expr_op
(
ptr
) {}
6551
6552
ast_expr_op_min::ast_expr_op_min
()
6553
:
ast_expr_op
() {}
6554
6555
ast_expr_op_min::ast_expr_op_min
(
const
ast_expr_op_min
&
obj
)
6556
:
ast_expr_op
(
obj
)
6557
{
6558
}
6559
6560
ast_expr_op_min
&
ast_expr_op_min::operator=
(
ast_expr_op_min
obj
) {
6561
std::swap(this->ptr,
obj
.ptr);
6562
return
*
this
;
6563
}
6564
6565
isl::checked::ctx
ast_expr_op_min::ctx
()
const
{
6566
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6567
}
6568
6569
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_min
&
obj
)
6570
{
6571
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6572
if
(!
str
) {
6573
os.setstate(std::ios_base::badbit);
6574
return
os;
6575
}
6576
os <<
str
;
6577
free(
str
);
6578
return
os;
6579
}
6580
6581
// implementations for isl::ast_expr_op_minus
6582
ast_expr_op_minus::ast_expr_op_minus
(
__isl_take
isl_ast_expr
*
ptr
)
6583
:
ast_expr_op
(
ptr
) {}
6584
6585
ast_expr_op_minus::ast_expr_op_minus
()
6586
:
ast_expr_op
() {}
6587
6588
ast_expr_op_minus::ast_expr_op_minus
(
const
ast_expr_op_minus
&
obj
)
6589
:
ast_expr_op
(
obj
)
6590
{
6591
}
6592
6593
ast_expr_op_minus
&
ast_expr_op_minus::operator=
(
ast_expr_op_minus
obj
) {
6594
std::swap(this->ptr,
obj
.ptr);
6595
return
*
this
;
6596
}
6597
6598
isl::checked::ctx
ast_expr_op_minus::ctx
()
const
{
6599
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6600
}
6601
6602
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_minus
&
obj
)
6603
{
6604
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6605
if
(!
str
) {
6606
os.setstate(std::ios_base::badbit);
6607
return
os;
6608
}
6609
os <<
str
;
6610
free(
str
);
6611
return
os;
6612
}
6613
6614
// implementations for isl::ast_expr_op_mul
6615
ast_expr_op_mul::ast_expr_op_mul
(
__isl_take
isl_ast_expr
*
ptr
)
6616
:
ast_expr_op
(
ptr
) {}
6617
6618
ast_expr_op_mul::ast_expr_op_mul
()
6619
:
ast_expr_op
() {}
6620
6621
ast_expr_op_mul::ast_expr_op_mul
(
const
ast_expr_op_mul
&
obj
)
6622
:
ast_expr_op
(
obj
)
6623
{
6624
}
6625
6626
ast_expr_op_mul
&
ast_expr_op_mul::operator=
(
ast_expr_op_mul
obj
) {
6627
std::swap(this->ptr,
obj
.ptr);
6628
return
*
this
;
6629
}
6630
6631
isl::checked::ctx
ast_expr_op_mul::ctx
()
const
{
6632
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6633
}
6634
6635
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_mul
&
obj
)
6636
{
6637
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6638
if
(!
str
) {
6639
os.setstate(std::ios_base::badbit);
6640
return
os;
6641
}
6642
os <<
str
;
6643
free(
str
);
6644
return
os;
6645
}
6646
6647
// implementations for isl::ast_expr_op_or
6648
ast_expr_op_or::ast_expr_op_or
(
__isl_take
isl_ast_expr
*
ptr
)
6649
:
ast_expr_op
(
ptr
) {}
6650
6651
ast_expr_op_or::ast_expr_op_or
()
6652
:
ast_expr_op
() {}
6653
6654
ast_expr_op_or::ast_expr_op_or
(
const
ast_expr_op_or
&
obj
)
6655
:
ast_expr_op
(
obj
)
6656
{
6657
}
6658
6659
ast_expr_op_or
&
ast_expr_op_or::operator=
(
ast_expr_op_or
obj
) {
6660
std::swap(this->ptr,
obj
.ptr);
6661
return
*
this
;
6662
}
6663
6664
isl::checked::ctx
ast_expr_op_or::ctx
()
const
{
6665
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6666
}
6667
6668
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_or
&
obj
)
6669
{
6670
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6671
if
(!
str
) {
6672
os.setstate(std::ios_base::badbit);
6673
return
os;
6674
}
6675
os <<
str
;
6676
free(
str
);
6677
return
os;
6678
}
6679
6680
// implementations for isl::ast_expr_op_or_else
6681
ast_expr_op_or_else::ast_expr_op_or_else
(
__isl_take
isl_ast_expr
*
ptr
)
6682
:
ast_expr_op
(
ptr
) {}
6683
6684
ast_expr_op_or_else::ast_expr_op_or_else
()
6685
:
ast_expr_op
() {}
6686
6687
ast_expr_op_or_else::ast_expr_op_or_else
(
const
ast_expr_op_or_else
&
obj
)
6688
:
ast_expr_op
(
obj
)
6689
{
6690
}
6691
6692
ast_expr_op_or_else
&
ast_expr_op_or_else::operator=
(
ast_expr_op_or_else
obj
) {
6693
std::swap(this->ptr,
obj
.ptr);
6694
return
*
this
;
6695
}
6696
6697
isl::checked::ctx
ast_expr_op_or_else::ctx
()
const
{
6698
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6699
}
6700
6701
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_or_else
&
obj
)
6702
{
6703
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6704
if
(!
str
) {
6705
os.setstate(std::ios_base::badbit);
6706
return
os;
6707
}
6708
os <<
str
;
6709
free(
str
);
6710
return
os;
6711
}
6712
6713
// implementations for isl::ast_expr_op_pdiv_q
6714
ast_expr_op_pdiv_q::ast_expr_op_pdiv_q
(
__isl_take
isl_ast_expr
*
ptr
)
6715
:
ast_expr_op
(
ptr
) {}
6716
6717
ast_expr_op_pdiv_q::ast_expr_op_pdiv_q
()
6718
:
ast_expr_op
() {}
6719
6720
ast_expr_op_pdiv_q::ast_expr_op_pdiv_q
(
const
ast_expr_op_pdiv_q
&
obj
)
6721
:
ast_expr_op
(
obj
)
6722
{
6723
}
6724
6725
ast_expr_op_pdiv_q
&
ast_expr_op_pdiv_q::operator=
(
ast_expr_op_pdiv_q
obj
) {
6726
std::swap(this->ptr,
obj
.ptr);
6727
return
*
this
;
6728
}
6729
6730
isl::checked::ctx
ast_expr_op_pdiv_q::ctx
()
const
{
6731
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6732
}
6733
6734
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_pdiv_q
&
obj
)
6735
{
6736
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6737
if
(!
str
) {
6738
os.setstate(std::ios_base::badbit);
6739
return
os;
6740
}
6741
os <<
str
;
6742
free(
str
);
6743
return
os;
6744
}
6745
6746
// implementations for isl::ast_expr_op_pdiv_r
6747
ast_expr_op_pdiv_r::ast_expr_op_pdiv_r
(
__isl_take
isl_ast_expr
*
ptr
)
6748
:
ast_expr_op
(
ptr
) {}
6749
6750
ast_expr_op_pdiv_r::ast_expr_op_pdiv_r
()
6751
:
ast_expr_op
() {}
6752
6753
ast_expr_op_pdiv_r::ast_expr_op_pdiv_r
(
const
ast_expr_op_pdiv_r
&
obj
)
6754
:
ast_expr_op
(
obj
)
6755
{
6756
}
6757
6758
ast_expr_op_pdiv_r
&
ast_expr_op_pdiv_r::operator=
(
ast_expr_op_pdiv_r
obj
) {
6759
std::swap(this->ptr,
obj
.ptr);
6760
return
*
this
;
6761
}
6762
6763
isl::checked::ctx
ast_expr_op_pdiv_r::ctx
()
const
{
6764
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6765
}
6766
6767
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_pdiv_r
&
obj
)
6768
{
6769
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6770
if
(!
str
) {
6771
os.setstate(std::ios_base::badbit);
6772
return
os;
6773
}
6774
os <<
str
;
6775
free(
str
);
6776
return
os;
6777
}
6778
6779
// implementations for isl::ast_expr_op_select
6780
ast_expr_op_select::ast_expr_op_select
(
__isl_take
isl_ast_expr
*
ptr
)
6781
:
ast_expr_op
(
ptr
) {}
6782
6783
ast_expr_op_select::ast_expr_op_select
()
6784
:
ast_expr_op
() {}
6785
6786
ast_expr_op_select::ast_expr_op_select
(
const
ast_expr_op_select
&
obj
)
6787
:
ast_expr_op
(
obj
)
6788
{
6789
}
6790
6791
ast_expr_op_select
&
ast_expr_op_select::operator=
(
ast_expr_op_select
obj
) {
6792
std::swap(this->ptr,
obj
.ptr);
6793
return
*
this
;
6794
}
6795
6796
isl::checked::ctx
ast_expr_op_select::ctx
()
const
{
6797
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6798
}
6799
6800
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_select
&
obj
)
6801
{
6802
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6803
if
(!
str
) {
6804
os.setstate(std::ios_base::badbit);
6805
return
os;
6806
}
6807
os <<
str
;
6808
free(
str
);
6809
return
os;
6810
}
6811
6812
// implementations for isl::ast_expr_op_sub
6813
ast_expr_op_sub::ast_expr_op_sub
(
__isl_take
isl_ast_expr
*
ptr
)
6814
:
ast_expr_op
(
ptr
) {}
6815
6816
ast_expr_op_sub::ast_expr_op_sub
()
6817
:
ast_expr_op
() {}
6818
6819
ast_expr_op_sub::ast_expr_op_sub
(
const
ast_expr_op_sub
&
obj
)
6820
:
ast_expr_op
(
obj
)
6821
{
6822
}
6823
6824
ast_expr_op_sub
&
ast_expr_op_sub::operator=
(
ast_expr_op_sub
obj
) {
6825
std::swap(this->ptr,
obj
.ptr);
6826
return
*
this
;
6827
}
6828
6829
isl::checked::ctx
ast_expr_op_sub::ctx
()
const
{
6830
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6831
}
6832
6833
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_sub
&
obj
)
6834
{
6835
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6836
if
(!
str
) {
6837
os.setstate(std::ios_base::badbit);
6838
return
os;
6839
}
6840
os <<
str
;
6841
free(
str
);
6842
return
os;
6843
}
6844
6845
// implementations for isl::ast_expr_op_zdiv_r
6846
ast_expr_op_zdiv_r::ast_expr_op_zdiv_r
(
__isl_take
isl_ast_expr
*
ptr
)
6847
:
ast_expr_op
(
ptr
) {}
6848
6849
ast_expr_op_zdiv_r::ast_expr_op_zdiv_r
()
6850
:
ast_expr_op
() {}
6851
6852
ast_expr_op_zdiv_r::ast_expr_op_zdiv_r
(
const
ast_expr_op_zdiv_r
&
obj
)
6853
:
ast_expr_op
(
obj
)
6854
{
6855
}
6856
6857
ast_expr_op_zdiv_r
&
ast_expr_op_zdiv_r::operator=
(
ast_expr_op_zdiv_r
obj
) {
6858
std::swap(this->ptr,
obj
.ptr);
6859
return
*
this
;
6860
}
6861
6862
isl::checked::ctx
ast_expr_op_zdiv_r::ctx
()
const
{
6863
return
isl::checked::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6864
}
6865
6866
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_zdiv_r
&
obj
)
6867
{
6868
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6869
if
(!
str
) {
6870
os.setstate(std::ios_base::badbit);
6871
return
os;
6872
}
6873
os <<
str
;
6874
free(
str
);
6875
return
os;
6876
}
6877
6878
// implementations for isl::ast_node
6879
ast_node
manage
(
__isl_take
isl_ast_node
*
ptr
) {
6880
return
ast_node
(
ptr
);
6881
}
6882
ast_node
manage_copy
(
__isl_keep
isl_ast_node
*
ptr
) {
6883
ptr
=
isl_ast_node_copy
(
ptr
);
6884
return
ast_node
(
ptr
);
6885
}
6886
6887
ast_node::ast_node
(
__isl_take
isl_ast_node
*
ptr
)
6888
:
ptr
(
ptr
) {}
6889
6890
ast_node::ast_node
()
6891
:
ptr
(nullptr) {}
6892
6893
ast_node::ast_node
(
const
ast_node
&
obj
)
6894
:
ptr
(nullptr)
6895
{
6896
ptr
=
obj
.copy();
6897
}
6898
6899
ast_node
&
ast_node::operator=
(
ast_node
obj
) {
6900
std::swap(this->ptr,
obj
.ptr);
6901
return
*
this
;
6902
}
6903
6904
ast_node::~ast_node
() {
6905
if
(
ptr
)
6906
isl_ast_node_free
(
ptr
);
6907
}
6908
6909
__isl_give
isl_ast_node
*
ast_node::copy
() const & {
6910
return
isl_ast_node_copy
(
ptr
);
6911
}
6912
6913
__isl_keep
isl_ast_node
*
ast_node::get
()
const
{
6914
return
ptr
;
6915
}
6916
6917
__isl_give
isl_ast_node
*
ast_node::release
() {
6918
isl_ast_node
*tmp =
ptr
;
6919
ptr
=
nullptr
;
6920
return
tmp;
6921
}
6922
6923
bool
ast_node::is_null
()
const
{
6924
return
ptr
==
nullptr
;
6925
}
6926
6927
template
<
typename
T,
typename
>
6928
boolean
ast_node::isa_type
(T subtype)
const
6929
{
6930
if
(
is_null
())
6931
return
boolean
();
6932
return
isl_ast_node_get_type
(
get
()) == subtype;
6933
}
6934
template
<
class
T>
6935
boolean
ast_node::isa
()
const
6936
{
6937
return
isa_type<decltype(T::type)>
(T::type);
6938
}
6939
template
<
class
T>
6940
T
ast_node::as
()
const
6941
{
6942
if
(
isa<T>
().is_false())
6943
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
6944
return
T(
copy
());
6945
}
6946
6947
isl::checked::ctx
ast_node::ctx
()
const
{
6948
return
isl::checked::ctx
(
isl_ast_node_get_ctx
(
ptr
));
6949
}
6950
6951
isl::checked::ast_node
ast_node::map_descendant_bottom_up
(
const
std::function<
isl::checked::ast_node
(
isl::checked::ast_node
)> &
fn
)
const
6952
{
6953
struct
fn_data {
6954
std::function<
isl::checked::ast_node
(
isl::checked::ast_node
)> func;
6955
} fn_data = {
fn
};
6956
auto
fn_lambda = [](
isl_ast_node
*arg_0,
void
*arg_1) ->
isl_ast_node
* {
6957
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
6958
auto
ret = (data->func)(
manage
(arg_0));
6959
return
ret.release();
6960
};
6961
auto
res
=
isl_ast_node_map_descendant_bottom_up
(
copy
(), fn_lambda, &fn_data);
6962
return
manage
(
res
);
6963
}
6964
6965
std::string
ast_node::to_C_str
()
const
6966
{
6967
auto
res
=
isl_ast_node_to_C_str
(
get
());
6968
std::string tmp(
res
);
6969
free(
res
);
6970
return
tmp;
6971
}
6972
6973
isl::checked::ast_node_list
ast_node::to_list
()
const
6974
{
6975
auto
res
= isl_ast_node_to_list(
copy
());
6976
return
manage
(
res
);
6977
}
6978
6979
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node
&
obj
)
6980
{
6981
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
6982
if
(!
str
) {
6983
os.setstate(std::ios_base::badbit);
6984
return
os;
6985
}
6986
os <<
str
;
6987
free(
str
);
6988
return
os;
6989
}
6990
6991
// implementations for isl::ast_node_block
6992
ast_node_block::ast_node_block
(
__isl_take
isl_ast_node
*
ptr
)
6993
:
ast_node
(
ptr
) {}
6994
6995
ast_node_block::ast_node_block
()
6996
:
ast_node
() {}
6997
6998
ast_node_block::ast_node_block
(
const
ast_node_block
&
obj
)
6999
:
ast_node
(
obj
)
7000
{
7001
}
7002
7003
ast_node_block::ast_node_block
(
isl::checked::ast_node_list
list)
7004
{
7005
auto
res
=
isl_ast_node_block_from_children
(list.
release
());
7006
ptr
=
res
;
7007
}
7008
7009
ast_node_block
&
ast_node_block::operator=
(
ast_node_block
obj
) {
7010
std::swap(this->ptr,
obj
.ptr);
7011
return
*
this
;
7012
}
7013
7014
isl::checked::ctx
ast_node_block::ctx
()
const
{
7015
return
isl::checked::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7016
}
7017
7018
isl::checked::ast_node_list
ast_node_block::children
()
const
7019
{
7020
auto
res
=
isl_ast_node_block_get_children
(
get
());
7021
return
manage
(
res
);
7022
}
7023
7024
isl::checked::ast_node_list
ast_node_block::get_children
()
const
7025
{
7026
return
children
();
7027
}
7028
7029
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_block
&
obj
)
7030
{
7031
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7032
if
(!
str
) {
7033
os.setstate(std::ios_base::badbit);
7034
return
os;
7035
}
7036
os <<
str
;
7037
free(
str
);
7038
return
os;
7039
}
7040
7041
// implementations for isl::ast_node_for
7042
ast_node_for::ast_node_for
(
__isl_take
isl_ast_node
*
ptr
)
7043
:
ast_node
(
ptr
) {}
7044
7045
ast_node_for::ast_node_for
()
7046
:
ast_node
() {}
7047
7048
ast_node_for::ast_node_for
(
const
ast_node_for
&
obj
)
7049
:
ast_node
(
obj
)
7050
{
7051
}
7052
7053
ast_node_for
&
ast_node_for::operator=
(
ast_node_for
obj
) {
7054
std::swap(this->ptr,
obj
.ptr);
7055
return
*
this
;
7056
}
7057
7058
isl::checked::ctx
ast_node_for::ctx
()
const
{
7059
return
isl::checked::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7060
}
7061
7062
isl::checked::ast_node
ast_node_for::body
()
const
7063
{
7064
auto
res
=
isl_ast_node_for_get_body
(
get
());
7065
return
manage
(
res
);
7066
}
7067
7068
isl::checked::ast_node
ast_node_for::get_body
()
const
7069
{
7070
return
body
();
7071
}
7072
7073
isl::checked::ast_expr
ast_node_for::cond
()
const
7074
{
7075
auto
res
=
isl_ast_node_for_get_cond
(
get
());
7076
return
manage
(
res
);
7077
}
7078
7079
isl::checked::ast_expr
ast_node_for::get_cond
()
const
7080
{
7081
return
cond
();
7082
}
7083
7084
isl::checked::ast_expr
ast_node_for::inc
()
const
7085
{
7086
auto
res
=
isl_ast_node_for_get_inc
(
get
());
7087
return
manage
(
res
);
7088
}
7089
7090
isl::checked::ast_expr
ast_node_for::get_inc
()
const
7091
{
7092
return
inc
();
7093
}
7094
7095
isl::checked::ast_expr
ast_node_for::init
()
const
7096
{
7097
auto
res
=
isl_ast_node_for_get_init
(
get
());
7098
return
manage
(
res
);
7099
}
7100
7101
isl::checked::ast_expr
ast_node_for::get_init
()
const
7102
{
7103
return
init
();
7104
}
7105
7106
boolean
ast_node_for::is_degenerate
()
const
7107
{
7108
auto
res
=
isl_ast_node_for_is_degenerate
(
get
());
7109
return
manage
(
res
);
7110
}
7111
7112
isl::checked::ast_expr
ast_node_for::iterator
()
const
7113
{
7114
auto
res
=
isl_ast_node_for_get_iterator
(
get
());
7115
return
manage
(
res
);
7116
}
7117
7118
isl::checked::ast_expr
ast_node_for::get_iterator
()
const
7119
{
7120
return
iterator
();
7121
}
7122
7123
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_for
&
obj
)
7124
{
7125
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7126
if
(!
str
) {
7127
os.setstate(std::ios_base::badbit);
7128
return
os;
7129
}
7130
os <<
str
;
7131
free(
str
);
7132
return
os;
7133
}
7134
7135
// implementations for isl::ast_node_if
7136
ast_node_if::ast_node_if
(
__isl_take
isl_ast_node
*
ptr
)
7137
:
ast_node
(
ptr
) {}
7138
7139
ast_node_if::ast_node_if
()
7140
:
ast_node
() {}
7141
7142
ast_node_if::ast_node_if
(
const
ast_node_if
&
obj
)
7143
:
ast_node
(
obj
)
7144
{
7145
}
7146
7147
ast_node_if
&
ast_node_if::operator=
(
ast_node_if
obj
) {
7148
std::swap(this->ptr,
obj
.ptr);
7149
return
*
this
;
7150
}
7151
7152
isl::checked::ctx
ast_node_if::ctx
()
const
{
7153
return
isl::checked::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7154
}
7155
7156
isl::checked::ast_expr
ast_node_if::cond
()
const
7157
{
7158
auto
res
=
isl_ast_node_if_get_cond
(
get
());
7159
return
manage
(
res
);
7160
}
7161
7162
isl::checked::ast_expr
ast_node_if::get_cond
()
const
7163
{
7164
return
cond
();
7165
}
7166
7167
isl::checked::ast_node
ast_node_if::else_node
()
const
7168
{
7169
auto
res
=
isl_ast_node_if_get_else_node
(
get
());
7170
return
manage
(
res
);
7171
}
7172
7173
isl::checked::ast_node
ast_node_if::get_else_node
()
const
7174
{
7175
return
else_node
();
7176
}
7177
7178
boolean
ast_node_if::has_else_node
()
const
7179
{
7180
auto
res
=
isl_ast_node_if_has_else_node
(
get
());
7181
return
manage
(
res
);
7182
}
7183
7184
isl::checked::ast_node
ast_node_if::then_node
()
const
7185
{
7186
auto
res
=
isl_ast_node_if_get_then_node
(
get
());
7187
return
manage
(
res
);
7188
}
7189
7190
isl::checked::ast_node
ast_node_if::get_then_node
()
const
7191
{
7192
return
then_node
();
7193
}
7194
7195
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_if
&
obj
)
7196
{
7197
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7198
if
(!
str
) {
7199
os.setstate(std::ios_base::badbit);
7200
return
os;
7201
}
7202
os <<
str
;
7203
free(
str
);
7204
return
os;
7205
}
7206
7207
// implementations for isl::ast_node_list
7208
ast_node_list
manage
(
__isl_take
isl_ast_node_list *
ptr
) {
7209
return
ast_node_list
(
ptr
);
7210
}
7211
ast_node_list
manage_copy
(
__isl_keep
isl_ast_node_list *
ptr
) {
7212
ptr
= isl_ast_node_list_copy(
ptr
);
7213
return
ast_node_list
(
ptr
);
7214
}
7215
7216
ast_node_list::ast_node_list
(
__isl_take
isl_ast_node_list *
ptr
)
7217
:
ptr
(
ptr
) {}
7218
7219
ast_node_list::ast_node_list
()
7220
:
ptr
(nullptr) {}
7221
7222
ast_node_list::ast_node_list
(
const
ast_node_list
&
obj
)
7223
:
ptr
(nullptr)
7224
{
7225
ptr
=
obj
.copy();
7226
}
7227
7228
ast_node_list::ast_node_list
(
isl::checked::ctx
ctx
,
int
n
)
7229
{
7230
auto
res
= isl_ast_node_list_alloc(
ctx
.release(),
n
);
7231
ptr
=
res
;
7232
}
7233
7234
ast_node_list::ast_node_list
(
isl::checked::ast_node
el)
7235
{
7236
auto
res
= isl_ast_node_list_from_ast_node(el.
release
());
7237
ptr
=
res
;
7238
}
7239
7240
ast_node_list
&
ast_node_list::operator=
(
ast_node_list
obj
) {
7241
std::swap(this->ptr,
obj
.ptr);
7242
return
*
this
;
7243
}
7244
7245
ast_node_list::~ast_node_list
() {
7246
if
(
ptr
)
7247
isl_ast_node_list_free(
ptr
);
7248
}
7249
7250
__isl_give
isl_ast_node_list *
ast_node_list::copy
() const & {
7251
return
isl_ast_node_list_copy(
ptr
);
7252
}
7253
7254
__isl_keep
isl_ast_node_list *
ast_node_list::get
()
const
{
7255
return
ptr
;
7256
}
7257
7258
__isl_give
isl_ast_node_list *
ast_node_list::release
() {
7259
isl_ast_node_list *tmp =
ptr
;
7260
ptr
=
nullptr
;
7261
return
tmp;
7262
}
7263
7264
bool
ast_node_list::is_null
()
const
{
7265
return
ptr
==
nullptr
;
7266
}
7267
7268
isl::checked::ctx
ast_node_list::ctx
()
const
{
7269
return
isl::checked::ctx
(isl_ast_node_list_get_ctx(
ptr
));
7270
}
7271
7272
isl::checked::ast_node_list
ast_node_list::add
(
isl::checked::ast_node
el)
const
7273
{
7274
auto
res
= isl_ast_node_list_add(
copy
(), el.
release
());
7275
return
manage
(
res
);
7276
}
7277
7278
isl::checked::ast_node
ast_node_list::at
(
int
index)
const
7279
{
7280
auto
res
= isl_ast_node_list_get_at(
get
(), index);
7281
return
manage
(
res
);
7282
}
7283
7284
isl::checked::ast_node
ast_node_list::get_at
(
int
index)
const
7285
{
7286
return
at
(index);
7287
}
7288
7289
isl::checked::ast_node_list
ast_node_list::clear
()
const
7290
{
7291
auto
res
= isl_ast_node_list_clear(
copy
());
7292
return
manage
(
res
);
7293
}
7294
7295
isl::checked::ast_node_list
ast_node_list::concat
(
isl::checked::ast_node_list
list2)
const
7296
{
7297
auto
res
= isl_ast_node_list_concat(
copy
(), list2.
release
());
7298
return
manage
(
res
);
7299
}
7300
7301
isl::checked::ast_node_list
ast_node_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
7302
{
7303
auto
res
= isl_ast_node_list_drop(
copy
(), first,
n
);
7304
return
manage
(
res
);
7305
}
7306
7307
stat
ast_node_list::foreach
(
const
std::function<
stat
(
isl::checked::ast_node
)> &
fn
)
const
7308
{
7309
struct
fn_data {
7310
std::function<
stat
(
isl::checked::ast_node
)> func;
7311
} fn_data = {
fn
};
7312
auto
fn_lambda = [](
isl_ast_node
*arg_0,
void
*arg_1) ->
isl_stat
{
7313
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
7314
auto
ret = (data->func)(
manage
(arg_0));
7315
return
ret.release();
7316
};
7317
auto
res
= isl_ast_node_list_foreach(
get
(), fn_lambda, &fn_data);
7318
return
manage
(
res
);
7319
}
7320
7321
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
7322
{
7323
struct
follows_data {
7324
std::function<
boolean
(
isl::checked::ast_node
,
isl::checked::ast_node
)> func;
7325
} follows_data = { follows };
7326
auto
follows_lambda = [](
isl_ast_node
*arg_0,
isl_ast_node
*arg_1,
void
*arg_2) ->
isl_bool
{
7327
auto
*data =
static_cast<
struct follows_data *
>
(arg_2);
7328
auto
ret = (data->func)(
manage_copy
(arg_0),
manage_copy
(arg_1));
7329
return
ret.release();
7330
};
7331
struct
fn_data {
7332
std::function<
stat
(
isl::checked::ast_node_list
)> func;
7333
} fn_data = {
fn
};
7334
auto
fn_lambda = [](isl_ast_node_list *arg_0,
void
*arg_1) ->
isl_stat
{
7335
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
7336
auto
ret = (data->func)(
manage
(arg_0));
7337
return
ret.release();
7338
};
7339
auto
res
= isl_ast_node_list_foreach_scc(
get
(), follows_lambda, &follows_data, fn_lambda, &fn_data);
7340
return
manage
(
res
);
7341
}
7342
7343
isl::checked::ast_node_list
ast_node_list::insert
(
unsigned
int
pos
,
isl::checked::ast_node
el)
const
7344
{
7345
auto
res
= isl_ast_node_list_insert(
copy
(),
pos
, el.
release
());
7346
return
manage
(
res
);
7347
}
7348
7349
isl::checked::ast_node_list
ast_node_list::set_at
(
int
index,
isl::checked::ast_node
el)
const
7350
{
7351
auto
res
= isl_ast_node_list_set_at(
copy
(), index, el.
release
());
7352
return
manage
(
res
);
7353
}
7354
7355
class
size
ast_node_list
::
size
() const
7356
{
7357
auto
res
= isl_ast_node_list_size(
get
());
7358
return
manage
(
res
);
7359
}
7360
7361
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_list
&
obj
)
7362
{
7363
char
*
str
= isl_ast_node_list_to_str(
obj
.get());
7364
if
(!
str
) {
7365
os.setstate(std::ios_base::badbit);
7366
return
os;
7367
}
7368
os <<
str
;
7369
free(
str
);
7370
return
os;
7371
}
7372
7373
// implementations for isl::ast_node_mark
7374
ast_node_mark::ast_node_mark
(
__isl_take
isl_ast_node
*
ptr
)
7375
:
ast_node
(
ptr
) {}
7376
7377
ast_node_mark::ast_node_mark
()
7378
:
ast_node
() {}
7379
7380
ast_node_mark::ast_node_mark
(
const
ast_node_mark
&
obj
)
7381
:
ast_node
(
obj
)
7382
{
7383
}
7384
7385
ast_node_mark
&
ast_node_mark::operator=
(
ast_node_mark
obj
) {
7386
std::swap(this->ptr,
obj
.ptr);
7387
return
*
this
;
7388
}
7389
7390
isl::checked::ctx
ast_node_mark::ctx
()
const
{
7391
return
isl::checked::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7392
}
7393
7394
isl::checked::id
ast_node_mark::id
()
const
7395
{
7396
auto
res
=
isl_ast_node_mark_get_id
(
get
());
7397
return
manage
(
res
);
7398
}
7399
7400
isl::checked::id
ast_node_mark::get_id
()
const
7401
{
7402
return
id
();
7403
}
7404
7405
isl::checked::ast_node
ast_node_mark::node
()
const
7406
{
7407
auto
res
=
isl_ast_node_mark_get_node
(
get
());
7408
return
manage
(
res
);
7409
}
7410
7411
isl::checked::ast_node
ast_node_mark::get_node
()
const
7412
{
7413
return
node
();
7414
}
7415
7416
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_mark
&
obj
)
7417
{
7418
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7419
if
(!
str
) {
7420
os.setstate(std::ios_base::badbit);
7421
return
os;
7422
}
7423
os <<
str
;
7424
free(
str
);
7425
return
os;
7426
}
7427
7428
// implementations for isl::ast_node_user
7429
ast_node_user::ast_node_user
(
__isl_take
isl_ast_node
*
ptr
)
7430
:
ast_node
(
ptr
) {}
7431
7432
ast_node_user::ast_node_user
()
7433
:
ast_node
() {}
7434
7435
ast_node_user::ast_node_user
(
const
ast_node_user
&
obj
)
7436
:
ast_node
(
obj
)
7437
{
7438
}
7439
7440
ast_node_user::ast_node_user
(
isl::checked::ast_expr
expr
)
7441
{
7442
auto
res
=
isl_ast_node_user_from_expr
(
expr
.release());
7443
ptr
=
res
;
7444
}
7445
7446
ast_node_user
&
ast_node_user::operator=
(
ast_node_user
obj
) {
7447
std::swap(this->ptr,
obj
.ptr);
7448
return
*
this
;
7449
}
7450
7451
isl::checked::ctx
ast_node_user::ctx
()
const
{
7452
return
isl::checked::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7453
}
7454
7455
isl::checked::ast_expr
ast_node_user::expr
()
const
7456
{
7457
auto
res
=
isl_ast_node_user_get_expr
(
get
());
7458
return
manage
(
res
);
7459
}
7460
7461
isl::checked::ast_expr
ast_node_user::get_expr
()
const
7462
{
7463
return
expr
();
7464
}
7465
7466
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_user
&
obj
)
7467
{
7468
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7469
if
(!
str
) {
7470
os.setstate(std::ios_base::badbit);
7471
return
os;
7472
}
7473
os <<
str
;
7474
free(
str
);
7475
return
os;
7476
}
7477
7478
// implementations for isl::basic_map
7479
basic_map
manage
(
__isl_take
isl_basic_map
*
ptr
) {
7480
return
basic_map
(
ptr
);
7481
}
7482
basic_map
manage_copy
(
__isl_keep
isl_basic_map
*
ptr
) {
7483
ptr
=
isl_basic_map_copy
(
ptr
);
7484
return
basic_map
(
ptr
);
7485
}
7486
7487
basic_map::basic_map
(
__isl_take
isl_basic_map
*
ptr
)
7488
:
ptr
(
ptr
) {}
7489
7490
basic_map::basic_map
()
7491
:
ptr
(nullptr) {}
7492
7493
basic_map::basic_map
(
const
basic_map
&
obj
)
7494
:
ptr
(nullptr)
7495
{
7496
ptr
=
obj
.copy();
7497
}
7498
7499
basic_map::basic_map
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
7500
{
7501
auto
res
=
isl_basic_map_read_from_str
(
ctx
.release(),
str
.c_str());
7502
ptr
=
res
;
7503
}
7504
7505
basic_map
&
basic_map::operator=
(
basic_map
obj
) {
7506
std::swap(this->ptr,
obj
.ptr);
7507
return
*
this
;
7508
}
7509
7510
basic_map::~basic_map
() {
7511
if
(
ptr
)
7512
isl_basic_map_free
(
ptr
);
7513
}
7514
7515
__isl_give
isl_basic_map
*
basic_map::copy
() const & {
7516
return
isl_basic_map_copy
(
ptr
);
7517
}
7518
7519
__isl_keep
isl_basic_map
*
basic_map::get
()
const
{
7520
return
ptr
;
7521
}
7522
7523
__isl_give
isl_basic_map
*
basic_map::release
() {
7524
isl_basic_map
*tmp =
ptr
;
7525
ptr
=
nullptr
;
7526
return
tmp;
7527
}
7528
7529
bool
basic_map::is_null
()
const
{
7530
return
ptr
==
nullptr
;
7531
}
7532
7533
isl::checked::ctx
basic_map::ctx
()
const
{
7534
return
isl::checked::ctx
(
isl_basic_map_get_ctx
(
ptr
));
7535
}
7536
7537
isl::checked::basic_map
basic_map::affine_hull
()
const
7538
{
7539
auto
res
=
isl_basic_map_affine_hull
(
copy
());
7540
return
manage
(
res
);
7541
}
7542
7543
isl::checked::basic_map
basic_map::apply_domain
(
isl::checked::basic_map
bmap2)
const
7544
{
7545
auto
res
=
isl_basic_map_apply_domain
(
copy
(), bmap2.
release
());
7546
return
manage
(
res
);
7547
}
7548
7549
isl::checked::map
basic_map::apply_domain
(
const
isl::checked::map
&
map2
)
const
7550
{
7551
return
isl::checked::map
(*this).
apply_domain
(
map2
);
7552
}
7553
7554
isl::checked::union_map
basic_map::apply_domain
(
const
isl::checked::union_map
&umap2)
const
7555
{
7556
return
isl::checked::map
(*this).
apply_domain
(umap2);
7557
}
7558
7559
isl::checked::basic_map
basic_map::apply_range
(
isl::checked::basic_map
bmap2)
const
7560
{
7561
auto
res
=
isl_basic_map_apply_range
(
copy
(), bmap2.
release
());
7562
return
manage
(
res
);
7563
}
7564
7565
isl::checked::map
basic_map::apply_range
(
const
isl::checked::map
&
map2
)
const
7566
{
7567
return
isl::checked::map
(*this).
apply_range
(
map2
);
7568
}
7569
7570
isl::checked::union_map
basic_map::apply_range
(
const
isl::checked::union_map
&umap2)
const
7571
{
7572
return
isl::checked::map
(*this).
apply_range
(umap2);
7573
}
7574
7575
isl::checked::map
basic_map::as_map
()
const
7576
{
7577
return
isl::checked::map
(*this).
as_map
();
7578
}
7579
7580
isl::checked::multi_union_pw_aff
basic_map::as_multi_union_pw_aff
()
const
7581
{
7582
return
isl::checked::map
(*this).
as_multi_union_pw_aff
();
7583
}
7584
7585
isl::checked::pw_multi_aff
basic_map::as_pw_multi_aff
()
const
7586
{
7587
return
isl::checked::map
(*this).
as_pw_multi_aff
();
7588
}
7589
7590
isl::checked::union_pw_multi_aff
basic_map::as_union_pw_multi_aff
()
const
7591
{
7592
return
isl::checked::map
(*this).
as_union_pw_multi_aff
();
7593
}
7594
7595
isl::checked::set
basic_map::bind_domain
(
const
isl::checked::multi_id
&
tuple
)
const
7596
{
7597
return
isl::checked::map
(*this).
bind_domain
(
tuple
);
7598
}
7599
7600
isl::checked::set
basic_map::bind_range
(
const
isl::checked::multi_id
&
tuple
)
const
7601
{
7602
return
isl::checked::map
(*this).
bind_range
(
tuple
);
7603
}
7604
7605
isl::checked::map
basic_map::coalesce
()
const
7606
{
7607
return
isl::checked::map
(*this).
coalesce
();
7608
}
7609
7610
isl::checked::map
basic_map::complement
()
const
7611
{
7612
return
isl::checked::map
(*this).
complement
();
7613
}
7614
7615
isl::checked::union_map
basic_map::compute_divs
()
const
7616
{
7617
return
isl::checked::map
(*this).
compute_divs
();
7618
}
7619
7620
isl::checked::map
basic_map::curry
()
const
7621
{
7622
return
isl::checked::map
(*this).
curry
();
7623
}
7624
7625
isl::checked::basic_set
basic_map::deltas
()
const
7626
{
7627
auto
res
=
isl_basic_map_deltas
(
copy
());
7628
return
manage
(
res
);
7629
}
7630
7631
isl::checked::basic_map
basic_map::detect_equalities
()
const
7632
{
7633
auto
res
=
isl_basic_map_detect_equalities
(
copy
());
7634
return
manage
(
res
);
7635
}
7636
7637
isl::checked::set
basic_map::domain
()
const
7638
{
7639
return
isl::checked::map
(*this).
domain
();
7640
}
7641
7642
isl::checked::map
basic_map::domain_factor_domain
()
const
7643
{
7644
return
isl::checked::map
(*this).
domain_factor_domain
();
7645
}
7646
7647
isl::checked::map
basic_map::domain_factor_range
()
const
7648
{
7649
return
isl::checked::map
(*this).
domain_factor_range
();
7650
}
7651
7652
isl::checked::union_map
basic_map::domain_map
()
const
7653
{
7654
return
isl::checked::map
(*this).
domain_map
();
7655
}
7656
7657
isl::checked::union_pw_multi_aff
basic_map::domain_map_union_pw_multi_aff
()
const
7658
{
7659
return
isl::checked::map
(*this).
domain_map_union_pw_multi_aff
();
7660
}
7661
7662
isl::checked::map
basic_map::domain_product
(
const
isl::checked::map
&
map2
)
const
7663
{
7664
return
isl::checked::map
(*this).
domain_product
(
map2
);
7665
}
7666
7667
isl::checked::union_map
basic_map::domain_product
(
const
isl::checked::union_map
&umap2)
const
7668
{
7669
return
isl::checked::map
(*this).
domain_product
(umap2);
7670
}
7671
7672
isl::checked::map
basic_map::domain_reverse
()
const
7673
{
7674
return
isl::checked::map
(*this).
domain_reverse
();
7675
}
7676
7677
class
size
basic_map
::
domain_tuple_dim
() const
7678
{
7679
return
isl::checked::map
(*this).
domain_tuple_dim
();
7680
}
7681
7682
isl::checked::id
basic_map::domain_tuple_id
()
const
7683
{
7684
return
isl::checked::map
(*this).
domain_tuple_id
();
7685
}
7686
7687
isl::checked::map
basic_map::drop_unused_params
()
const
7688
{
7689
return
isl::checked::map
(*this).
drop_unused_params
();
7690
}
7691
7692
isl::checked::map
basic_map::eq_at
(
const
isl::checked::multi_pw_aff
&mpa)
const
7693
{
7694
return
isl::checked::map
(*this).
eq_at
(mpa);
7695
}
7696
7697
isl::checked::union_map
basic_map::eq_at
(
const
isl::checked::multi_union_pw_aff
&
mupa
)
const
7698
{
7699
return
isl::checked::map
(*this).
eq_at
(
mupa
);
7700
}
7701
7702
boolean
basic_map::every_map
(
const
std::function<
boolean
(
isl::checked::map
)> &
test
)
const
7703
{
7704
return
isl::checked::map
(*this).
every_map
(
test
);
7705
}
7706
7707
isl::checked::map
basic_map::extract_map
(
const
isl::checked::space
&
space
)
const
7708
{
7709
return
isl::checked::map
(*this).
extract_map
(
space
);
7710
}
7711
7712
isl::checked::map
basic_map::factor_domain
()
const
7713
{
7714
return
isl::checked::map
(*this).
factor_domain
();
7715
}
7716
7717
isl::checked::map
basic_map::factor_range
()
const
7718
{
7719
return
isl::checked::map
(*this).
factor_range
();
7720
}
7721
7722
isl::checked::map
basic_map::fixed_power
(
const
isl::checked::val
&exp)
const
7723
{
7724
return
isl::checked::map
(*this).
fixed_power
(exp);
7725
}
7726
7727
isl::checked::map
basic_map::fixed_power
(
long
exp)
const
7728
{
7729
return
this->
fixed_power
(
isl::checked::val
(
ctx
(), exp));
7730
}
7731
7732
isl::checked::basic_map
basic_map::flatten
()
const
7733
{
7734
auto
res
=
isl_basic_map_flatten
(
copy
());
7735
return
manage
(
res
);
7736
}
7737
7738
isl::checked::basic_map
basic_map::flatten_domain
()
const
7739
{
7740
auto
res
=
isl_basic_map_flatten_domain
(
copy
());
7741
return
manage
(
res
);
7742
}
7743
7744
isl::checked::basic_map
basic_map::flatten_range
()
const
7745
{
7746
auto
res
=
isl_basic_map_flatten_range
(
copy
());
7747
return
manage
(
res
);
7748
}
7749
7750
stat
basic_map::foreach_basic_map
(
const
std::function<
stat
(
isl::checked::basic_map
)> &
fn
)
const
7751
{
7752
return
isl::checked::map
(*this).
foreach_basic_map
(
fn
);
7753
}
7754
7755
stat
basic_map::foreach_map
(
const
std::function<
stat
(
isl::checked::map
)> &
fn
)
const
7756
{
7757
return
isl::checked::map
(*this).
foreach_map
(
fn
);
7758
}
7759
7760
isl::checked::basic_map
basic_map::gist
(
isl::checked::basic_map
context
)
const
7761
{
7762
auto
res
=
isl_basic_map_gist
(
copy
(),
context
.release());
7763
return
manage
(
res
);
7764
}
7765
7766
isl::checked::map
basic_map::gist
(
const
isl::checked::map
&
context
)
const
7767
{
7768
return
isl::checked::map
(*this).
gist
(
context
);
7769
}
7770
7771
isl::checked::union_map
basic_map::gist
(
const
isl::checked::union_map
&
context
)
const
7772
{
7773
return
isl::checked::map
(*this).
gist
(
context
);
7774
}
7775
7776
isl::checked::map
basic_map::gist_domain
(
const
isl::checked::set
&
context
)
const
7777
{
7778
return
isl::checked::map
(*this).
gist_domain
(
context
);
7779
}
7780
7781
isl::checked::union_map
basic_map::gist_domain
(
const
isl::checked::union_set
&uset)
const
7782
{
7783
return
isl::checked::map
(*this).
gist_domain
(uset);
7784
}
7785
7786
isl::checked::map
basic_map::gist_params
(
const
isl::checked::set
&
context
)
const
7787
{
7788
return
isl::checked::map
(*this).
gist_params
(
context
);
7789
}
7790
7791
isl::checked::union_map
basic_map::gist_range
(
const
isl::checked::union_set
&uset)
const
7792
{
7793
return
isl::checked::map
(*this).
gist_range
(uset);
7794
}
7795
7796
boolean
basic_map::has_domain_tuple_id
()
const
7797
{
7798
return
isl::checked::map
(*this).
has_domain_tuple_id
();
7799
}
7800
7801
boolean
basic_map::has_range_tuple_id
()
const
7802
{
7803
return
isl::checked::map
(*this).
has_range_tuple_id
();
7804
}
7805
7806
isl::checked::basic_map
basic_map::intersect
(
isl::checked::basic_map
bmap2)
const
7807
{
7808
auto
res
=
isl_basic_map_intersect
(
copy
(), bmap2.
release
());
7809
return
manage
(
res
);
7810
}
7811
7812
isl::checked::map
basic_map::intersect
(
const
isl::checked::map
&
map2
)
const
7813
{
7814
return
isl::checked::map
(*this).
intersect
(
map2
);
7815
}
7816
7817
isl::checked::union_map
basic_map::intersect
(
const
isl::checked::union_map
&umap2)
const
7818
{
7819
return
isl::checked::map
(*this).
intersect
(umap2);
7820
}
7821
7822
isl::checked::basic_map
basic_map::intersect_domain
(
isl::checked::basic_set
bset)
const
7823
{
7824
auto
res
=
isl_basic_map_intersect_domain
(
copy
(), bset.
release
());
7825
return
manage
(
res
);
7826
}
7827
7828
isl::checked::map
basic_map::intersect_domain
(
const
isl::checked::set
&
set
)
const
7829
{
7830
return
isl::checked::map
(*this).
intersect_domain
(
set
);
7831
}
7832
7833
isl::checked::union_map
basic_map::intersect_domain
(
const
isl::checked::space
&
space
)
const
7834
{
7835
return
isl::checked::map
(*this).
intersect_domain
(
space
);
7836
}
7837
7838
isl::checked::union_map
basic_map::intersect_domain
(
const
isl::checked::union_set
&uset)
const
7839
{
7840
return
isl::checked::map
(*this).
intersect_domain
(uset);
7841
}
7842
7843
isl::checked::basic_map
basic_map::intersect_domain
(
const
isl::checked::point
&bset)
const
7844
{
7845
return
this->
intersect_domain
(
isl::checked::basic_set
(bset));
7846
}
7847
7848
isl::checked::map
basic_map::intersect_domain_factor_domain
(
const
isl::checked::map
&factor)
const
7849
{
7850
return
isl::checked::map
(*this).
intersect_domain_factor_domain
(factor);
7851
}
7852
7853
isl::checked::union_map
basic_map::intersect_domain_factor_domain
(
const
isl::checked::union_map
&factor)
const
7854
{
7855
return
isl::checked::map
(*this).
intersect_domain_factor_domain
(factor);
7856
}
7857
7858
isl::checked::map
basic_map::intersect_domain_factor_range
(
const
isl::checked::map
&factor)
const
7859
{
7860
return
isl::checked::map
(*this).
intersect_domain_factor_range
(factor);
7861
}
7862
7863
isl::checked::union_map
basic_map::intersect_domain_factor_range
(
const
isl::checked::union_map
&factor)
const
7864
{
7865
return
isl::checked::map
(*this).
intersect_domain_factor_range
(factor);
7866
}
7867
7868
isl::checked::map
basic_map::intersect_domain_wrapped_domain
(
const
isl::checked::set
&
domain
)
const
7869
{
7870
return
isl::checked::map
(*this).
intersect_domain_wrapped_domain
(
domain
);
7871
}
7872
7873
isl::checked::union_map
basic_map::intersect_domain_wrapped_domain
(
const
isl::checked::union_set
&
domain
)
const
7874
{
7875
return
isl::checked::map
(*this).
intersect_domain_wrapped_domain
(
domain
);
7876
}
7877
7878
isl::checked::basic_map
basic_map::intersect_params
(
isl::checked::basic_set
bset)
const
7879
{
7880
auto
res
=
isl_basic_map_intersect_params
(
copy
(), bset.
release
());
7881
return
manage
(
res
);
7882
}
7883
7884
isl::checked::map
basic_map::intersect_params
(
const
isl::checked::set
&
params
)
const
7885
{
7886
return
isl::checked::map
(*this).
intersect_params
(
params
);
7887
}
7888
7889
isl::checked::basic_map
basic_map::intersect_params
(
const
isl::checked::point
&bset)
const
7890
{
7891
return
this->
intersect_params
(
isl::checked::basic_set
(bset));
7892
}
7893
7894
isl::checked::basic_map
basic_map::intersect_range
(
isl::checked::basic_set
bset)
const
7895
{
7896
auto
res
=
isl_basic_map_intersect_range
(
copy
(), bset.
release
());
7897
return
manage
(
res
);
7898
}
7899
7900
isl::checked::map
basic_map::intersect_range
(
const
isl::checked::set
&
set
)
const
7901
{
7902
return
isl::checked::map
(*this).
intersect_range
(
set
);
7903
}
7904
7905
isl::checked::union_map
basic_map::intersect_range
(
const
isl::checked::space
&
space
)
const
7906
{
7907
return
isl::checked::map
(*this).
intersect_range
(
space
);
7908
}
7909
7910
isl::checked::union_map
basic_map::intersect_range
(
const
isl::checked::union_set
&uset)
const
7911
{
7912
return
isl::checked::map
(*this).
intersect_range
(uset);
7913
}
7914
7915
isl::checked::basic_map
basic_map::intersect_range
(
const
isl::checked::point
&bset)
const
7916
{
7917
return
this->
intersect_range
(
isl::checked::basic_set
(bset));
7918
}
7919
7920
isl::checked::map
basic_map::intersect_range_factor_domain
(
const
isl::checked::map
&factor)
const
7921
{
7922
return
isl::checked::map
(*this).
intersect_range_factor_domain
(factor);
7923
}
7924
7925
isl::checked::union_map
basic_map::intersect_range_factor_domain
(
const
isl::checked::union_map
&factor)
const
7926
{
7927
return
isl::checked::map
(*this).
intersect_range_factor_domain
(factor);
7928
}
7929
7930
isl::checked::map
basic_map::intersect_range_factor_range
(
const
isl::checked::map
&factor)
const
7931
{
7932
return
isl::checked::map
(*this).
intersect_range_factor_range
(factor);
7933
}
7934
7935
isl::checked::union_map
basic_map::intersect_range_factor_range
(
const
isl::checked::union_map
&factor)
const
7936
{
7937
return
isl::checked::map
(*this).
intersect_range_factor_range
(factor);
7938
}
7939
7940
isl::checked::map
basic_map::intersect_range_wrapped_domain
(
const
isl::checked::set
&
domain
)
const
7941
{
7942
return
isl::checked::map
(*this).
intersect_range_wrapped_domain
(
domain
);
7943
}
7944
7945
isl::checked::union_map
basic_map::intersect_range_wrapped_domain
(
const
isl::checked::union_set
&
domain
)
const
7946
{
7947
return
isl::checked::map
(*this).
intersect_range_wrapped_domain
(
domain
);
7948
}
7949
7950
boolean
basic_map::is_bijective
()
const
7951
{
7952
return
isl::checked::map
(*this).
is_bijective
();
7953
}
7954
7955
boolean
basic_map::is_disjoint
(
const
isl::checked::map
&
map2
)
const
7956
{
7957
return
isl::checked::map
(*this).
is_disjoint
(
map2
);
7958
}
7959
7960
boolean
basic_map::is_disjoint
(
const
isl::checked::union_map
&umap2)
const
7961
{
7962
return
isl::checked::map
(*this).
is_disjoint
(umap2);
7963
}
7964
7965
boolean
basic_map::is_empty
()
const
7966
{
7967
auto
res
=
isl_basic_map_is_empty
(
get
());
7968
return
manage
(
res
);
7969
}
7970
7971
boolean
basic_map::is_equal
(
const
isl::checked::basic_map
&bmap2)
const
7972
{
7973
auto
res
=
isl_basic_map_is_equal
(
get
(), bmap2.
get
());
7974
return
manage
(
res
);
7975
}
7976
7977
boolean
basic_map::is_equal
(
const
isl::checked::map
&
map2
)
const
7978
{
7979
return
isl::checked::map
(*this).
is_equal
(
map2
);
7980
}
7981
7982
boolean
basic_map::is_equal
(
const
isl::checked::union_map
&umap2)
const
7983
{
7984
return
isl::checked::map
(*this).
is_equal
(umap2);
7985
}
7986
7987
boolean
basic_map::is_injective
()
const
7988
{
7989
return
isl::checked::map
(*this).
is_injective
();
7990
}
7991
7992
boolean
basic_map::is_single_valued
()
const
7993
{
7994
return
isl::checked::map
(*this).
is_single_valued
();
7995
}
7996
7997
boolean
basic_map::is_strict_subset
(
const
isl::checked::map
&
map2
)
const
7998
{
7999
return
isl::checked::map
(*this).
is_strict_subset
(
map2
);
8000
}
8001
8002
boolean
basic_map::is_strict_subset
(
const
isl::checked::union_map
&umap2)
const
8003
{
8004
return
isl::checked::map
(*this).
is_strict_subset
(umap2);
8005
}
8006
8007
boolean
basic_map::is_subset
(
const
isl::checked::basic_map
&bmap2)
const
8008
{
8009
auto
res
=
isl_basic_map_is_subset
(
get
(), bmap2.
get
());
8010
return
manage
(
res
);
8011
}
8012
8013
boolean
basic_map::is_subset
(
const
isl::checked::map
&
map2
)
const
8014
{
8015
return
isl::checked::map
(*this).
is_subset
(
map2
);
8016
}
8017
8018
boolean
basic_map::is_subset
(
const
isl::checked::union_map
&umap2)
const
8019
{
8020
return
isl::checked::map
(*this).
is_subset
(umap2);
8021
}
8022
8023
boolean
basic_map::isa_map
()
const
8024
{
8025
return
isl::checked::map
(*this).
isa_map
();
8026
}
8027
8028
isl::checked::map
basic_map::lex_ge_at
(
const
isl::checked::multi_pw_aff
&mpa)
const
8029
{
8030
return
isl::checked::map
(*this).
lex_ge_at
(mpa);
8031
}
8032
8033
isl::checked::map
basic_map::lex_gt_at
(
const
isl::checked::multi_pw_aff
&mpa)
const
8034
{
8035
return
isl::checked::map
(*this).
lex_gt_at
(mpa);
8036
}
8037
8038
isl::checked::map
basic_map::lex_le_at
(
const
isl::checked::multi_pw_aff
&mpa)
const
8039
{
8040
return
isl::checked::map
(*this).
lex_le_at
(mpa);
8041
}
8042
8043
isl::checked::map
basic_map::lex_lt_at
(
const
isl::checked::multi_pw_aff
&mpa)
const
8044
{
8045
return
isl::checked::map
(*this).
lex_lt_at
(mpa);
8046
}
8047
8048
isl::checked::map
basic_map::lexmax
()
const
8049
{
8050
auto
res
=
isl_basic_map_lexmax
(
copy
());
8051
return
manage
(
res
);
8052
}
8053
8054
isl::checked::pw_multi_aff
basic_map::lexmax_pw_multi_aff
()
const
8055
{
8056
return
isl::checked::map
(*this).
lexmax_pw_multi_aff
();
8057
}
8058
8059
isl::checked::map
basic_map::lexmin
()
const
8060
{
8061
auto
res
=
isl_basic_map_lexmin
(
copy
());
8062
return
manage
(
res
);
8063
}
8064
8065
isl::checked::pw_multi_aff
basic_map::lexmin_pw_multi_aff
()
const
8066
{
8067
return
isl::checked::map
(*this).
lexmin_pw_multi_aff
();
8068
}
8069
8070
isl::checked::map
basic_map::lower_bound
(
const
isl::checked::multi_pw_aff
&lower)
const
8071
{
8072
return
isl::checked::map
(*this).
lower_bound
(lower);
8073
}
8074
8075
isl::checked::map_list
basic_map::map_list
()
const
8076
{
8077
return
isl::checked::map
(*this).
map_list
();
8078
}
8079
8080
isl::checked::multi_pw_aff
basic_map::max_multi_pw_aff
()
const
8081
{
8082
return
isl::checked::map
(*this).
max_multi_pw_aff
();
8083
}
8084
8085
isl::checked::multi_pw_aff
basic_map::min_multi_pw_aff
()
const
8086
{
8087
return
isl::checked::map
(*this).
min_multi_pw_aff
();
8088
}
8089
8090
class
size
basic_map
::
n_basic_map
() const
8091
{
8092
return
isl::checked::map
(*this).
n_basic_map
();
8093
}
8094
8095
isl::checked::set
basic_map::params
()
const
8096
{
8097
return
isl::checked::map
(*this).
params
();
8098
}
8099
8100
isl::checked::basic_map
basic_map::polyhedral_hull
()
const
8101
{
8102
return
isl::checked::map
(*this).
polyhedral_hull
();
8103
}
8104
8105
isl::checked::map
basic_map::preimage_domain
(
const
isl::checked::multi_aff
&
ma
)
const
8106
{
8107
return
isl::checked::map
(*this).
preimage_domain
(
ma
);
8108
}
8109
8110
isl::checked::map
basic_map::preimage_domain
(
const
isl::checked::multi_pw_aff
&mpa)
const
8111
{
8112
return
isl::checked::map
(*this).
preimage_domain
(mpa);
8113
}
8114
8115
isl::checked::map
basic_map::preimage_domain
(
const
isl::checked::pw_multi_aff
&
pma
)
const
8116
{
8117
return
isl::checked::map
(*this).
preimage_domain
(
pma
);
8118
}
8119
8120
isl::checked::union_map
basic_map::preimage_domain
(
const
isl::checked::union_pw_multi_aff
&upma)
const
8121
{
8122
return
isl::checked::map
(*this).
preimage_domain
(upma);
8123
}
8124
8125
isl::checked::map
basic_map::preimage_range
(
const
isl::checked::multi_aff
&
ma
)
const
8126
{
8127
return
isl::checked::map
(*this).
preimage_range
(
ma
);
8128
}
8129
8130
isl::checked::map
basic_map::preimage_range
(
const
isl::checked::pw_multi_aff
&
pma
)
const
8131
{
8132
return
isl::checked::map
(*this).
preimage_range
(
pma
);
8133
}
8134
8135
isl::checked::union_map
basic_map::preimage_range
(
const
isl::checked::union_pw_multi_aff
&upma)
const
8136
{
8137
return
isl::checked::map
(*this).
preimage_range
(upma);
8138
}
8139
8140
isl::checked::map
basic_map::product
(
const
isl::checked::map
&
map2
)
const
8141
{
8142
return
isl::checked::map
(*this).
product
(
map2
);
8143
}
8144
8145
isl::checked::union_map
basic_map::product
(
const
isl::checked::union_map
&umap2)
const
8146
{
8147
return
isl::checked::map
(*this).
product
(umap2);
8148
}
8149
8150
isl::checked::map
basic_map::project_out_all_params
()
const
8151
{
8152
return
isl::checked::map
(*this).
project_out_all_params
();
8153
}
8154
8155
isl::checked::map
basic_map::project_out_param
(
const
isl::checked::id
&
id
)
const
8156
{
8157
return
isl::checked::map
(*this).
project_out_param
(
id
);
8158
}
8159
8160
isl::checked::map
basic_map::project_out_param
(
const
std::string &
id
)
const
8161
{
8162
return
this->
project_out_param
(
isl::checked::id
(
ctx
(),
id
));
8163
}
8164
8165
isl::checked::map
basic_map::project_out_param
(
const
isl::checked::id_list
&list)
const
8166
{
8167
return
isl::checked::map
(*this).
project_out_param
(list);
8168
}
8169
8170
isl::checked::set
basic_map::range
()
const
8171
{
8172
return
isl::checked::map
(*this).
range
();
8173
}
8174
8175
isl::checked::map
basic_map::range_factor_domain
()
const
8176
{
8177
return
isl::checked::map
(*this).
range_factor_domain
();
8178
}
8179
8180
isl::checked::map
basic_map::range_factor_range
()
const
8181
{
8182
return
isl::checked::map
(*this).
range_factor_range
();
8183
}
8184
8185
isl::checked::fixed_box
basic_map::range_lattice_tile
()
const
8186
{
8187
return
isl::checked::map
(*this).
range_lattice_tile
();
8188
}
8189
8190
isl::checked::union_map
basic_map::range_map
()
const
8191
{
8192
return
isl::checked::map
(*this).
range_map
();
8193
}
8194
8195
isl::checked::map
basic_map::range_product
(
const
isl::checked::map
&
map2
)
const
8196
{
8197
return
isl::checked::map
(*this).
range_product
(
map2
);
8198
}
8199
8200
isl::checked::union_map
basic_map::range_product
(
const
isl::checked::union_map
&umap2)
const
8201
{
8202
return
isl::checked::map
(*this).
range_product
(umap2);
8203
}
8204
8205
isl::checked::map
basic_map::range_reverse
()
const
8206
{
8207
return
isl::checked::map
(*this).
range_reverse
();
8208
}
8209
8210
isl::checked::fixed_box
basic_map::range_simple_fixed_box_hull
()
const
8211
{
8212
return
isl::checked::map
(*this).
range_simple_fixed_box_hull
();
8213
}
8214
8215
class
size
basic_map
::
range_tuple_dim
() const
8216
{
8217
return
isl::checked::map
(*this).
range_tuple_dim
();
8218
}
8219
8220
isl::checked::id
basic_map::range_tuple_id
()
const
8221
{
8222
return
isl::checked::map
(*this).
range_tuple_id
();
8223
}
8224
8225
isl::checked::basic_map
basic_map::reverse
()
const
8226
{
8227
auto
res
=
isl_basic_map_reverse
(
copy
());
8228
return
manage
(
res
);
8229
}
8230
8231
isl::checked::basic_map
basic_map::sample
()
const
8232
{
8233
auto
res
=
isl_basic_map_sample
(
copy
());
8234
return
manage
(
res
);
8235
}
8236
8237
isl::checked::map
basic_map::set_domain_tuple
(
const
isl::checked::id
&
id
)
const
8238
{
8239
return
isl::checked::map
(*this).
set_domain_tuple
(
id
);
8240
}
8241
8242
isl::checked::map
basic_map::set_domain_tuple
(
const
std::string &
id
)
const
8243
{
8244
return
this->
set_domain_tuple
(
isl::checked::id
(
ctx
(),
id
));
8245
}
8246
8247
isl::checked::map
basic_map::set_range_tuple
(
const
isl::checked::id
&
id
)
const
8248
{
8249
return
isl::checked::map
(*this).
set_range_tuple
(
id
);
8250
}
8251
8252
isl::checked::map
basic_map::set_range_tuple
(
const
std::string &
id
)
const
8253
{
8254
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
8255
}
8256
8257
isl::checked::space
basic_map::space
()
const
8258
{
8259
return
isl::checked::map
(*this).
space
();
8260
}
8261
8262
isl::checked::map
basic_map::subtract
(
const
isl::checked::map
&
map2
)
const
8263
{
8264
return
isl::checked::map
(*this).
subtract
(
map2
);
8265
}
8266
8267
isl::checked::union_map
basic_map::subtract
(
const
isl::checked::union_map
&umap2)
const
8268
{
8269
return
isl::checked::map
(*this).
subtract
(umap2);
8270
}
8271
8272
isl::checked::union_map
basic_map::subtract_domain
(
const
isl::checked::union_set
&dom)
const
8273
{
8274
return
isl::checked::map
(*this).
subtract_domain
(dom);
8275
}
8276
8277
isl::checked::union_map
basic_map::subtract_range
(
const
isl::checked::union_set
&dom)
const
8278
{
8279
return
isl::checked::map
(*this).
subtract_range
(dom);
8280
}
8281
8282
isl::checked::map_list
basic_map::to_list
()
const
8283
{
8284
return
isl::checked::map
(*this).
to_list
();
8285
}
8286
8287
isl::checked::union_map
basic_map::to_union_map
()
const
8288
{
8289
return
isl::checked::map
(*this).
to_union_map
();
8290
}
8291
8292
isl::checked::map
basic_map::uncurry
()
const
8293
{
8294
return
isl::checked::map
(*this).
uncurry
();
8295
}
8296
8297
isl::checked::map
basic_map::unite
(
isl::checked::basic_map
bmap2)
const
8298
{
8299
auto
res
=
isl_basic_map_union
(
copy
(), bmap2.
release
());
8300
return
manage
(
res
);
8301
}
8302
8303
isl::checked::map
basic_map::unite
(
const
isl::checked::map
&
map2
)
const
8304
{
8305
return
isl::checked::map
(*this).
unite
(
map2
);
8306
}
8307
8308
isl::checked::union_map
basic_map::unite
(
const
isl::checked::union_map
&umap2)
const
8309
{
8310
return
isl::checked::map
(*this).
unite
(umap2);
8311
}
8312
8313
isl::checked::basic_map
basic_map::unshifted_simple_hull
()
const
8314
{
8315
return
isl::checked::map
(*this).
unshifted_simple_hull
();
8316
}
8317
8318
isl::checked::map
basic_map::upper_bound
(
const
isl::checked::multi_pw_aff
&upper)
const
8319
{
8320
return
isl::checked::map
(*this).
upper_bound
(upper);
8321
}
8322
8323
isl::checked::set
basic_map::wrap
()
const
8324
{
8325
return
isl::checked::map
(*this).
wrap
();
8326
}
8327
8328
isl::checked::map
basic_map::zip
()
const
8329
{
8330
return
isl::checked::map
(*this).
zip
();
8331
}
8332
8333
inline
std::ostream &
operator<<
(std::ostream &os,
const
basic_map
&
obj
)
8334
{
8335
char
*
str
=
isl_basic_map_to_str
(
obj
.get());
8336
if
(!
str
) {
8337
os.setstate(std::ios_base::badbit);
8338
return
os;
8339
}
8340
os <<
str
;
8341
free(
str
);
8342
return
os;
8343
}
8344
8345
// implementations for isl::basic_set
8346
basic_set
manage
(
__isl_take
isl_basic_set
*
ptr
) {
8347
return
basic_set
(
ptr
);
8348
}
8349
basic_set
manage_copy
(
__isl_keep
isl_basic_set
*
ptr
) {
8350
ptr
=
isl_basic_set_copy
(
ptr
);
8351
return
basic_set
(
ptr
);
8352
}
8353
8354
basic_set::basic_set
(
__isl_take
isl_basic_set
*
ptr
)
8355
:
ptr
(
ptr
) {}
8356
8357
basic_set::basic_set
()
8358
:
ptr
(nullptr) {}
8359
8360
basic_set::basic_set
(
const
basic_set
&
obj
)
8361
:
ptr
(nullptr)
8362
{
8363
ptr
=
obj
.copy();
8364
}
8365
8366
basic_set::basic_set
(
isl::checked::point
pnt)
8367
{
8368
auto
res
=
isl_basic_set_from_point
(pnt.
release
());
8369
ptr
=
res
;
8370
}
8371
8372
basic_set::basic_set
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
8373
{
8374
auto
res
=
isl_basic_set_read_from_str
(
ctx
.release(),
str
.c_str());
8375
ptr
=
res
;
8376
}
8377
8378
basic_set
&
basic_set::operator=
(
basic_set
obj
) {
8379
std::swap(this->ptr,
obj
.ptr);
8380
return
*
this
;
8381
}
8382
8383
basic_set::~basic_set
() {
8384
if
(
ptr
)
8385
isl_basic_set_free
(
ptr
);
8386
}
8387
8388
__isl_give
isl_basic_set
*
basic_set::copy
() const & {
8389
return
isl_basic_set_copy
(
ptr
);
8390
}
8391
8392
__isl_keep
isl_basic_set
*
basic_set::get
()
const
{
8393
return
ptr
;
8394
}
8395
8396
__isl_give
isl_basic_set
*
basic_set::release
() {
8397
isl_basic_set
*tmp =
ptr
;
8398
ptr
=
nullptr
;
8399
return
tmp;
8400
}
8401
8402
bool
basic_set::is_null
()
const
{
8403
return
ptr
==
nullptr
;
8404
}
8405
8406
isl::checked::ctx
basic_set::ctx
()
const
{
8407
return
isl::checked::ctx
(
isl_basic_set_get_ctx
(
ptr
));
8408
}
8409
8410
isl::checked::basic_set
basic_set::affine_hull
()
const
8411
{
8412
auto
res
=
isl_basic_set_affine_hull
(
copy
());
8413
return
manage
(
res
);
8414
}
8415
8416
isl::checked::basic_set
basic_set::apply
(
isl::checked::basic_map
bmap)
const
8417
{
8418
auto
res
=
isl_basic_set_apply
(
copy
(), bmap.
release
());
8419
return
manage
(
res
);
8420
}
8421
8422
isl::checked::set
basic_set::apply
(
const
isl::checked::map
&
map
)
const
8423
{
8424
return
isl::checked::set
(*this).
apply
(
map
);
8425
}
8426
8427
isl::checked::union_set
basic_set::apply
(
const
isl::checked::union_map
&umap)
const
8428
{
8429
return
isl::checked::set
(*this).
apply
(umap);
8430
}
8431
8432
isl::checked::pw_multi_aff
basic_set::as_pw_multi_aff
()
const
8433
{
8434
return
isl::checked::set
(*this).
as_pw_multi_aff
();
8435
}
8436
8437
isl::checked::set
basic_set::as_set
()
const
8438
{
8439
return
isl::checked::set
(*this).
as_set
();
8440
}
8441
8442
isl::checked::set
basic_set::bind
(
const
isl::checked::multi_id
&
tuple
)
const
8443
{
8444
return
isl::checked::set
(*this).
bind
(
tuple
);
8445
}
8446
8447
isl::checked::set
basic_set::coalesce
()
const
8448
{
8449
return
isl::checked::set
(*this).
coalesce
();
8450
}
8451
8452
isl::checked::set
basic_set::complement
()
const
8453
{
8454
return
isl::checked::set
(*this).
complement
();
8455
}
8456
8457
isl::checked::union_set
basic_set::compute_divs
()
const
8458
{
8459
return
isl::checked::set
(*this).
compute_divs
();
8460
}
8461
8462
isl::checked::basic_set
basic_set::detect_equalities
()
const
8463
{
8464
auto
res
=
isl_basic_set_detect_equalities
(
copy
());
8465
return
manage
(
res
);
8466
}
8467
8468
isl::checked::val
basic_set::dim_max_val
(
int
pos
)
const
8469
{
8470
auto
res
=
isl_basic_set_dim_max_val
(
copy
(),
pos
);
8471
return
manage
(
res
);
8472
}
8473
8474
isl::checked::val
basic_set::dim_min_val
(
int
pos
)
const
8475
{
8476
return
isl::checked::set
(*this).
dim_min_val
(
pos
);
8477
}
8478
8479
isl::checked::set
basic_set::drop_unused_params
()
const
8480
{
8481
return
isl::checked::set
(*this).
drop_unused_params
();
8482
}
8483
8484
boolean
basic_set::every_set
(
const
std::function<
boolean
(
isl::checked::set
)> &
test
)
const
8485
{
8486
return
isl::checked::set
(*this).
every_set
(
test
);
8487
}
8488
8489
isl::checked::set
basic_set::extract_set
(
const
isl::checked::space
&
space
)
const
8490
{
8491
return
isl::checked::set
(*this).
extract_set
(
space
);
8492
}
8493
8494
isl::checked::basic_set
basic_set::flatten
()
const
8495
{
8496
auto
res
=
isl_basic_set_flatten
(
copy
());
8497
return
manage
(
res
);
8498
}
8499
8500
stat
basic_set::foreach_basic_set
(
const
std::function<
stat
(
isl::checked::basic_set
)> &
fn
)
const
8501
{
8502
return
isl::checked::set
(*this).
foreach_basic_set
(
fn
);
8503
}
8504
8505
stat
basic_set::foreach_point
(
const
std::function<
stat
(
isl::checked::point
)> &
fn
)
const
8506
{
8507
return
isl::checked::set
(*this).
foreach_point
(
fn
);
8508
}
8509
8510
stat
basic_set::foreach_set
(
const
std::function<
stat
(
isl::checked::set
)> &
fn
)
const
8511
{
8512
return
isl::checked::set
(*this).
foreach_set
(
fn
);
8513
}
8514
8515
isl::checked::basic_set
basic_set::gist
(
isl::checked::basic_set
context
)
const
8516
{
8517
auto
res
=
isl_basic_set_gist
(
copy
(),
context
.release());
8518
return
manage
(
res
);
8519
}
8520
8521
isl::checked::set
basic_set::gist
(
const
isl::checked::set
&
context
)
const
8522
{
8523
return
isl::checked::set
(*this).
gist
(
context
);
8524
}
8525
8526
isl::checked::union_set
basic_set::gist
(
const
isl::checked::union_set
&
context
)
const
8527
{
8528
return
isl::checked::set
(*this).
gist
(
context
);
8529
}
8530
8531
isl::checked::basic_set
basic_set::gist
(
const
isl::checked::point
&
context
)
const
8532
{
8533
return
this->
gist
(
isl::checked::basic_set
(
context
));
8534
}
8535
8536
isl::checked::set
basic_set::gist_params
(
const
isl::checked::set
&
context
)
const
8537
{
8538
return
isl::checked::set
(*this).
gist_params
(
context
);
8539
}
8540
8541
isl::checked::map
basic_set::identity
()
const
8542
{
8543
return
isl::checked::set
(*this).
identity
();
8544
}
8545
8546
isl::checked::pw_aff
basic_set::indicator_function
()
const
8547
{
8548
return
isl::checked::set
(*this).
indicator_function
();
8549
}
8550
8551
isl::checked::map
basic_set::insert_domain
(
const
isl::checked::space
&
domain
)
const
8552
{
8553
return
isl::checked::set
(*this).
insert_domain
(
domain
);
8554
}
8555
8556
isl::checked::basic_set
basic_set::intersect
(
isl::checked::basic_set
bset2)
const
8557
{
8558
auto
res
=
isl_basic_set_intersect
(
copy
(), bset2.
release
());
8559
return
manage
(
res
);
8560
}
8561
8562
isl::checked::set
basic_set::intersect
(
const
isl::checked::set
&
set2
)
const
8563
{
8564
return
isl::checked::set
(*this).
intersect
(
set2
);
8565
}
8566
8567
isl::checked::union_set
basic_set::intersect
(
const
isl::checked::union_set
&uset2)
const
8568
{
8569
return
isl::checked::set
(*this).
intersect
(uset2);
8570
}
8571
8572
isl::checked::basic_set
basic_set::intersect
(
const
isl::checked::point
&bset2)
const
8573
{
8574
return
this->
intersect
(
isl::checked::basic_set
(bset2));
8575
}
8576
8577
isl::checked::basic_set
basic_set::intersect_params
(
isl::checked::basic_set
bset2)
const
8578
{
8579
auto
res
=
isl_basic_set_intersect_params
(
copy
(), bset2.
release
());
8580
return
manage
(
res
);
8581
}
8582
8583
isl::checked::set
basic_set::intersect_params
(
const
isl::checked::set
&
params
)
const
8584
{
8585
return
isl::checked::set
(*this).
intersect_params
(
params
);
8586
}
8587
8588
isl::checked::basic_set
basic_set::intersect_params
(
const
isl::checked::point
&bset2)
const
8589
{
8590
return
this->
intersect_params
(
isl::checked::basic_set
(bset2));
8591
}
8592
8593
boolean
basic_set::involves_locals
()
const
8594
{
8595
return
isl::checked::set
(*this).
involves_locals
();
8596
}
8597
8598
boolean
basic_set::is_disjoint
(
const
isl::checked::set
&
set2
)
const
8599
{
8600
return
isl::checked::set
(*this).
is_disjoint
(
set2
);
8601
}
8602
8603
boolean
basic_set::is_disjoint
(
const
isl::checked::union_set
&uset2)
const
8604
{
8605
return
isl::checked::set
(*this).
is_disjoint
(uset2);
8606
}
8607
8608
boolean
basic_set::is_empty
()
const
8609
{
8610
auto
res
=
isl_basic_set_is_empty
(
get
());
8611
return
manage
(
res
);
8612
}
8613
8614
boolean
basic_set::is_equal
(
const
isl::checked::basic_set
&bset2)
const
8615
{
8616
auto
res
=
isl_basic_set_is_equal
(
get
(), bset2.
get
());
8617
return
manage
(
res
);
8618
}
8619
8620
boolean
basic_set::is_equal
(
const
isl::checked::set
&
set2
)
const
8621
{
8622
return
isl::checked::set
(*this).
is_equal
(
set2
);
8623
}
8624
8625
boolean
basic_set::is_equal
(
const
isl::checked::union_set
&uset2)
const
8626
{
8627
return
isl::checked::set
(*this).
is_equal
(uset2);
8628
}
8629
8630
boolean
basic_set::is_equal
(
const
isl::checked::point
&bset2)
const
8631
{
8632
return
this->
is_equal
(
isl::checked::basic_set
(bset2));
8633
}
8634
8635
boolean
basic_set::is_singleton
()
const
8636
{
8637
return
isl::checked::set
(*this).
is_singleton
();
8638
}
8639
8640
boolean
basic_set::is_strict_subset
(
const
isl::checked::set
&
set2
)
const
8641
{
8642
return
isl::checked::set
(*this).
is_strict_subset
(
set2
);
8643
}
8644
8645
boolean
basic_set::is_strict_subset
(
const
isl::checked::union_set
&uset2)
const
8646
{
8647
return
isl::checked::set
(*this).
is_strict_subset
(uset2);
8648
}
8649
8650
boolean
basic_set::is_subset
(
const
isl::checked::basic_set
&bset2)
const
8651
{
8652
auto
res
=
isl_basic_set_is_subset
(
get
(), bset2.
get
());
8653
return
manage
(
res
);
8654
}
8655
8656
boolean
basic_set::is_subset
(
const
isl::checked::set
&
set2
)
const
8657
{
8658
return
isl::checked::set
(*this).
is_subset
(
set2
);
8659
}
8660
8661
boolean
basic_set::is_subset
(
const
isl::checked::union_set
&uset2)
const
8662
{
8663
return
isl::checked::set
(*this).
is_subset
(uset2);
8664
}
8665
8666
boolean
basic_set::is_subset
(
const
isl::checked::point
&bset2)
const
8667
{
8668
return
this->
is_subset
(
isl::checked::basic_set
(bset2));
8669
}
8670
8671
boolean
basic_set::is_wrapping
()
const
8672
{
8673
auto
res
=
isl_basic_set_is_wrapping
(
get
());
8674
return
manage
(
res
);
8675
}
8676
8677
boolean
basic_set::isa_set
()
const
8678
{
8679
return
isl::checked::set
(*this).
isa_set
();
8680
}
8681
8682
isl::checked::fixed_box
basic_set::lattice_tile
()
const
8683
{
8684
return
isl::checked::set
(*this).
lattice_tile
();
8685
}
8686
8687
isl::checked::set
basic_set::lexmax
()
const
8688
{
8689
auto
res
=
isl_basic_set_lexmax
(
copy
());
8690
return
manage
(
res
);
8691
}
8692
8693
isl::checked::pw_multi_aff
basic_set::lexmax_pw_multi_aff
()
const
8694
{
8695
return
isl::checked::set
(*this).
lexmax_pw_multi_aff
();
8696
}
8697
8698
isl::checked::set
basic_set::lexmin
()
const
8699
{
8700
auto
res
=
isl_basic_set_lexmin
(
copy
());
8701
return
manage
(
res
);
8702
}
8703
8704
isl::checked::pw_multi_aff
basic_set::lexmin_pw_multi_aff
()
const
8705
{
8706
return
isl::checked::set
(*this).
lexmin_pw_multi_aff
();
8707
}
8708
8709
isl::checked::set
basic_set::lower_bound
(
const
isl::checked::multi_pw_aff
&lower)
const
8710
{
8711
return
isl::checked::set
(*this).
lower_bound
(lower);
8712
}
8713
8714
isl::checked::set
basic_set::lower_bound
(
const
isl::checked::multi_val
&lower)
const
8715
{
8716
return
isl::checked::set
(*this).
lower_bound
(lower);
8717
}
8718
8719
isl::checked::multi_pw_aff
basic_set::max_multi_pw_aff
()
const
8720
{
8721
return
isl::checked::set
(*this).
max_multi_pw_aff
();
8722
}
8723
8724
isl::checked::val
basic_set::max_val
(
const
isl::checked::aff
&
obj
)
const
8725
{
8726
return
isl::checked::set
(*this).
max_val
(
obj
);
8727
}
8728
8729
isl::checked::multi_pw_aff
basic_set::min_multi_pw_aff
()
const
8730
{
8731
return
isl::checked::set
(*this).
min_multi_pw_aff
();
8732
}
8733
8734
isl::checked::val
basic_set::min_val
(
const
isl::checked::aff
&
obj
)
const
8735
{
8736
return
isl::checked::set
(*this).
min_val
(
obj
);
8737
}
8738
8739
class
size
basic_set
::
n_basic_set
() const
8740
{
8741
return
isl::checked::set
(*this).
n_basic_set
();
8742
}
8743
8744
isl::checked::pw_aff
basic_set::param_pw_aff_on_domain
(
const
isl::checked::id
&
id
)
const
8745
{
8746
return
isl::checked::set
(*this).
param_pw_aff_on_domain
(
id
);
8747
}
8748
8749
isl::checked::pw_aff
basic_set::param_pw_aff_on_domain
(
const
std::string &
id
)
const
8750
{
8751
return
this->
param_pw_aff_on_domain
(
isl::checked::id
(
ctx
(),
id
));
8752
}
8753
8754
isl::checked::basic_set
basic_set::params
()
const
8755
{
8756
auto
res
=
isl_basic_set_params
(
copy
());
8757
return
manage
(
res
);
8758
}
8759
8760
isl::checked::multi_val
basic_set::plain_multi_val_if_fixed
()
const
8761
{
8762
return
isl::checked::set
(*this).
plain_multi_val_if_fixed
();
8763
}
8764
8765
isl::checked::basic_set
basic_set::polyhedral_hull
()
const
8766
{
8767
return
isl::checked::set
(*this).
polyhedral_hull
();
8768
}
8769
8770
isl::checked::set
basic_set::preimage
(
const
isl::checked::multi_aff
&
ma
)
const
8771
{
8772
return
isl::checked::set
(*this).
preimage
(
ma
);
8773
}
8774
8775
isl::checked::set
basic_set::preimage
(
const
isl::checked::multi_pw_aff
&mpa)
const
8776
{
8777
return
isl::checked::set
(*this).
preimage
(mpa);
8778
}
8779
8780
isl::checked::set
basic_set::preimage
(
const
isl::checked::pw_multi_aff
&
pma
)
const
8781
{
8782
return
isl::checked::set
(*this).
preimage
(
pma
);
8783
}
8784
8785
isl::checked::union_set
basic_set::preimage
(
const
isl::checked::union_pw_multi_aff
&upma)
const
8786
{
8787
return
isl::checked::set
(*this).
preimage
(upma);
8788
}
8789
8790
isl::checked::set
basic_set::product
(
const
isl::checked::set
&
set2
)
const
8791
{
8792
return
isl::checked::set
(*this).
product
(
set2
);
8793
}
8794
8795
isl::checked::set
basic_set::project_out_all_params
()
const
8796
{
8797
return
isl::checked::set
(*this).
project_out_all_params
();
8798
}
8799
8800
isl::checked::set
basic_set::project_out_param
(
const
isl::checked::id
&
id
)
const
8801
{
8802
return
isl::checked::set
(*this).
project_out_param
(
id
);
8803
}
8804
8805
isl::checked::set
basic_set::project_out_param
(
const
std::string &
id
)
const
8806
{
8807
return
this->
project_out_param
(
isl::checked::id
(
ctx
(),
id
));
8808
}
8809
8810
isl::checked::set
basic_set::project_out_param
(
const
isl::checked::id_list
&list)
const
8811
{
8812
return
isl::checked::set
(*this).
project_out_param
(list);
8813
}
8814
8815
isl::checked::pw_aff
basic_set::pw_aff_on_domain
(
const
isl::checked::val
&v)
const
8816
{
8817
return
isl::checked::set
(*this).
pw_aff_on_domain
(v);
8818
}
8819
8820
isl::checked::pw_aff
basic_set::pw_aff_on_domain
(
long
v)
const
8821
{
8822
return
this->
pw_aff_on_domain
(
isl::checked::val
(
ctx
(), v));
8823
}
8824
8825
isl::checked::pw_multi_aff
basic_set::pw_multi_aff_on_domain
(
const
isl::checked::multi_val
&mv)
const
8826
{
8827
return
isl::checked::set
(*this).
pw_multi_aff_on_domain
(mv);
8828
}
8829
8830
isl::checked::basic_set
basic_set::sample
()
const
8831
{
8832
auto
res
=
isl_basic_set_sample
(
copy
());
8833
return
manage
(
res
);
8834
}
8835
8836
isl::checked::point
basic_set::sample_point
()
const
8837
{
8838
auto
res
=
isl_basic_set_sample_point
(
copy
());
8839
return
manage
(
res
);
8840
}
8841
8842
isl::checked::set_list
basic_set::set_list
()
const
8843
{
8844
return
isl::checked::set
(*this).
set_list
();
8845
}
8846
8847
isl::checked::fixed_box
basic_set::simple_fixed_box_hull
()
const
8848
{
8849
return
isl::checked::set
(*this).
simple_fixed_box_hull
();
8850
}
8851
8852
isl::checked::space
basic_set::space
()
const
8853
{
8854
return
isl::checked::set
(*this).
space
();
8855
}
8856
8857
isl::checked::val
basic_set::stride
(
int
pos
)
const
8858
{
8859
return
isl::checked::set
(*this).
stride
(
pos
);
8860
}
8861
8862
isl::checked::set
basic_set::subtract
(
const
isl::checked::set
&
set2
)
const
8863
{
8864
return
isl::checked::set
(*this).
subtract
(
set2
);
8865
}
8866
8867
isl::checked::union_set
basic_set::subtract
(
const
isl::checked::union_set
&uset2)
const
8868
{
8869
return
isl::checked::set
(*this).
subtract
(uset2);
8870
}
8871
8872
isl::checked::set_list
basic_set::to_list
()
const
8873
{
8874
return
isl::checked::set
(*this).
to_list
();
8875
}
8876
8877
isl::checked::set
basic_set::to_set
()
const
8878
{
8879
auto
res
=
isl_basic_set_to_set
(
copy
());
8880
return
manage
(
res
);
8881
}
8882
8883
isl::checked::union_set
basic_set::to_union_set
()
const
8884
{
8885
return
isl::checked::set
(*this).
to_union_set
();
8886
}
8887
8888
isl::checked::map
basic_set::translation
()
const
8889
{
8890
return
isl::checked::set
(*this).
translation
();
8891
}
8892
8893
class
size
basic_set
::
tuple_dim
() const
8894
{
8895
return
isl::checked::set
(*this).
tuple_dim
();
8896
}
8897
8898
isl::checked::set
basic_set::unbind_params
(
const
isl::checked::multi_id
&
tuple
)
const
8899
{
8900
return
isl::checked::set
(*this).
unbind_params
(
tuple
);
8901
}
8902
8903
isl::checked::map
basic_set::unbind_params_insert_domain
(
const
isl::checked::multi_id
&
domain
)
const
8904
{
8905
return
isl::checked::set
(*this).
unbind_params_insert_domain
(
domain
);
8906
}
8907
8908
isl::checked::set
basic_set::unite
(
isl::checked::basic_set
bset2)
const
8909
{
8910
auto
res
=
isl_basic_set_union
(
copy
(), bset2.
release
());
8911
return
manage
(
res
);
8912
}
8913
8914
isl::checked::set
basic_set::unite
(
const
isl::checked::set
&
set2
)
const
8915
{
8916
return
isl::checked::set
(*this).
unite
(
set2
);
8917
}
8918
8919
isl::checked::union_set
basic_set::unite
(
const
isl::checked::union_set
&uset2)
const
8920
{
8921
return
isl::checked::set
(*this).
unite
(uset2);
8922
}
8923
8924
isl::checked::set
basic_set::unite
(
const
isl::checked::point
&bset2)
const
8925
{
8926
return
this->
unite
(
isl::checked::basic_set
(bset2));
8927
}
8928
8929
isl::checked::basic_set
basic_set::unshifted_simple_hull
()
const
8930
{
8931
return
isl::checked::set
(*this).
unshifted_simple_hull
();
8932
}
8933
8934
isl::checked::map
basic_set::unwrap
()
const
8935
{
8936
return
isl::checked::set
(*this).
unwrap
();
8937
}
8938
8939
isl::checked::set
basic_set::upper_bound
(
const
isl::checked::multi_pw_aff
&upper)
const
8940
{
8941
return
isl::checked::set
(*this).
upper_bound
(upper);
8942
}
8943
8944
isl::checked::set
basic_set::upper_bound
(
const
isl::checked::multi_val
&upper)
const
8945
{
8946
return
isl::checked::set
(*this).
upper_bound
(upper);
8947
}
8948
8949
isl::checked::set
basic_set::wrapped_reverse
()
const
8950
{
8951
return
isl::checked::set
(*this).
wrapped_reverse
();
8952
}
8953
8954
inline
std::ostream &
operator<<
(std::ostream &os,
const
basic_set
&
obj
)
8955
{
8956
char
*
str
=
isl_basic_set_to_str
(
obj
.get());
8957
if
(!
str
) {
8958
os.setstate(std::ios_base::badbit);
8959
return
os;
8960
}
8961
os <<
str
;
8962
free(
str
);
8963
return
os;
8964
}
8965
8966
// implementations for isl::fixed_box
8967
fixed_box
manage
(
__isl_take
isl_fixed_box
*
ptr
) {
8968
return
fixed_box
(
ptr
);
8969
}
8970
fixed_box
manage_copy
(
__isl_keep
isl_fixed_box
*
ptr
) {
8971
ptr
=
isl_fixed_box_copy
(
ptr
);
8972
return
fixed_box
(
ptr
);
8973
}
8974
8975
fixed_box::fixed_box
(
__isl_take
isl_fixed_box
*
ptr
)
8976
:
ptr
(
ptr
) {}
8977
8978
fixed_box::fixed_box
()
8979
:
ptr
(nullptr) {}
8980
8981
fixed_box::fixed_box
(
const
fixed_box
&
obj
)
8982
:
ptr
(nullptr)
8983
{
8984
ptr
=
obj
.copy();
8985
}
8986
8987
fixed_box::fixed_box
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
8988
{
8989
auto
res
=
isl_fixed_box_read_from_str
(
ctx
.release(),
str
.c_str());
8990
ptr
=
res
;
8991
}
8992
8993
fixed_box
&
fixed_box::operator=
(
fixed_box
obj
) {
8994
std::swap(this->ptr,
obj
.ptr);
8995
return
*
this
;
8996
}
8997
8998
fixed_box::~fixed_box
() {
8999
if
(
ptr
)
9000
isl_fixed_box_free
(
ptr
);
9001
}
9002
9003
__isl_give
isl_fixed_box
*
fixed_box::copy
() const & {
9004
return
isl_fixed_box_copy
(
ptr
);
9005
}
9006
9007
__isl_keep
isl_fixed_box
*
fixed_box::get
()
const
{
9008
return
ptr
;
9009
}
9010
9011
__isl_give
isl_fixed_box
*
fixed_box::release
() {
9012
isl_fixed_box
*tmp =
ptr
;
9013
ptr
=
nullptr
;
9014
return
tmp;
9015
}
9016
9017
bool
fixed_box::is_null
()
const
{
9018
return
ptr
==
nullptr
;
9019
}
9020
9021
isl::checked::ctx
fixed_box::ctx
()
const
{
9022
return
isl::checked::ctx
(
isl_fixed_box_get_ctx
(
ptr
));
9023
}
9024
9025
boolean
fixed_box::is_valid
()
const
9026
{
9027
auto
res
=
isl_fixed_box_is_valid
(
get
());
9028
return
manage
(
res
);
9029
}
9030
9031
isl::checked::multi_aff
fixed_box::offset
()
const
9032
{
9033
auto
res
=
isl_fixed_box_get_offset
(
get
());
9034
return
manage
(
res
);
9035
}
9036
9037
isl::checked::multi_aff
fixed_box::get_offset
()
const
9038
{
9039
return
offset
();
9040
}
9041
9042
boolean
fixed_box::plain_is_equal
(
const
isl::checked::fixed_box
&box2)
const
9043
{
9044
auto
res
=
isl_fixed_box_plain_is_equal
(
get
(), box2.
get
());
9045
return
manage
(
res
);
9046
}
9047
9048
isl::checked::multi_val
fixed_box::size
()
const
9049
{
9050
auto
res
=
isl_fixed_box_get_size
(
get
());
9051
return
manage
(
res
);
9052
}
9053
9054
isl::checked::multi_val
fixed_box::get_size
()
const
9055
{
9056
return
size
();
9057
}
9058
9059
isl::checked::space
fixed_box::space
()
const
9060
{
9061
auto
res
=
isl_fixed_box_get_space
(
get
());
9062
return
manage
(
res
);
9063
}
9064
9065
isl::checked::space
fixed_box::get_space
()
const
9066
{
9067
return
space
();
9068
}
9069
9070
inline
std::ostream &
operator<<
(std::ostream &os,
const
fixed_box
&
obj
)
9071
{
9072
char
*
str
=
isl_fixed_box_to_str
(
obj
.get());
9073
if
(!
str
) {
9074
os.setstate(std::ios_base::badbit);
9075
return
os;
9076
}
9077
os <<
str
;
9078
free(
str
);
9079
return
os;
9080
}
9081
9082
// implementations for isl::id
9083
id
manage
(
__isl_take
isl_id
*
ptr
) {
9084
return
id
(
ptr
);
9085
}
9086
id
manage_copy
(
__isl_keep
isl_id
*
ptr
) {
9087
ptr
=
isl_id_copy
(
ptr
);
9088
return
id
(
ptr
);
9089
}
9090
9091
id::id
(
__isl_take
isl_id
*
ptr
)
9092
:
ptr
(
ptr
) {}
9093
9094
id::id
()
9095
:
ptr
(nullptr) {}
9096
9097
id::id
(
const
id
&
obj
)
9098
:
ptr
(nullptr)
9099
{
9100
ptr
=
obj
.copy();
9101
}
9102
9103
id::id
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
9104
{
9105
auto
res
=
isl_id_read_from_str
(
ctx
.release(),
str
.c_str());
9106
ptr
=
res
;
9107
}
9108
9109
id
&
id::operator=
(
id
obj
) {
9110
std::swap(this->ptr,
obj
.ptr);
9111
return
*
this
;
9112
}
9113
9114
id::~id
() {
9115
if
(
ptr
)
9116
isl_id_free
(
ptr
);
9117
}
9118
9119
__isl_give
isl_id
*
id::copy
() const & {
9120
return
isl_id_copy
(
ptr
);
9121
}
9122
9123
__isl_keep
isl_id
*
id::get
()
const
{
9124
return
ptr
;
9125
}
9126
9127
__isl_give
isl_id
*
id::release
() {
9128
isl_id
*tmp =
ptr
;
9129
ptr
=
nullptr
;
9130
return
tmp;
9131
}
9132
9133
bool
id::is_null
()
const
{
9134
return
ptr
==
nullptr
;
9135
}
9136
9137
isl::checked::ctx
id::ctx
()
const
{
9138
return
isl::checked::ctx
(
isl_id_get_ctx
(
ptr
));
9139
}
9140
9141
std::string
id::name
()
const
9142
{
9143
auto
res
=
isl_id_get_name
(
get
());
9144
std::string tmp(
res
);
9145
return
tmp;
9146
}
9147
9148
std::string
id::get_name
()
const
9149
{
9150
return
name
();
9151
}
9152
9153
isl::checked::id_list
id::to_list
()
const
9154
{
9155
auto
res
= isl_id_to_list(
copy
());
9156
return
manage
(
res
);
9157
}
9158
9159
#if __cplusplus >= 201703L
9160
id::id
(
isl::checked::ctx
ctx
,
const
std::string &
str
,
const
std::any &
any
)
9161
{
9162
std::any *
p
=
new
std::any(
any
);
9163
auto
res
=
isl_id_alloc
(
ctx
.
get
(),
str
.c_str(),
p
);
9164
res
=
isl_id_set_free_user
(
res
, &ctx::free_user);
9165
if
(!
res
) {
9166
delete
p
;
9167
}
9168
ptr
=
res
;
9169
}
9170
9171
template
<
class
T>
9172
std::optional<T> id::try_user()
const
9173
{
9174
std::any *
p
= (std::any *)
isl_id_get_user
(
ptr
);
9175
if
(!
p
)
9176
return
std::nullopt;
9177
if
(
isl_id_get_free_user
(
ptr
) != &ctx::free_user)
9178
return
std::nullopt;
9179
T *
res
= std::any_cast<T>(
p
);
9180
if
(!
res
)
9181
return
std::nullopt;
9182
return
*
res
;
9183
}
9184
9185
template
<
class
T>
9186
T
id::user
()
const
9187
{
9188
std::any *
p
= (std::any *)
isl_id_get_user
(
ptr
);
9189
if
(!
p
)
9190
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"no user pointer"
,
return
T());
9191
if
(
isl_id_get_free_user
(
ptr
) != &ctx::free_user)
9192
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"user pointer not attached by C++ interface"
,
return
T());
9193
T *
res
= std::any_cast<T>(
p
);
9194
if
(!
res
)
9195
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"user pointer not of given type"
,
return
T());
9196
return
*
res
;
9197
}
9198
#endif
9199
9200
inline
std::ostream &
operator<<
(std::ostream &os,
const
id
&
obj
)
9201
{
9202
char
*
str
=
isl_id_to_str
(
obj
.get());
9203
if
(!
str
) {
9204
os.setstate(std::ios_base::badbit);
9205
return
os;
9206
}
9207
os <<
str
;
9208
free(
str
);
9209
return
os;
9210
}
9211
9212
// implementations for isl::id_list
9213
id_list
manage
(
__isl_take
isl_id_list *
ptr
) {
9214
return
id_list
(
ptr
);
9215
}
9216
id_list
manage_copy
(
__isl_keep
isl_id_list *
ptr
) {
9217
ptr
= isl_id_list_copy(
ptr
);
9218
return
id_list
(
ptr
);
9219
}
9220
9221
id_list::id_list
(
__isl_take
isl_id_list *
ptr
)
9222
:
ptr
(
ptr
) {}
9223
9224
id_list::id_list
()
9225
:
ptr
(nullptr) {}
9226
9227
id_list::id_list
(
const
id_list
&
obj
)
9228
:
ptr
(nullptr)
9229
{
9230
ptr
=
obj
.copy();
9231
}
9232
9233
id_list::id_list
(
isl::checked::ctx
ctx
,
int
n
)
9234
{
9235
auto
res
= isl_id_list_alloc(
ctx
.release(),
n
);
9236
ptr
=
res
;
9237
}
9238
9239
id_list::id_list
(
isl::checked::id
el)
9240
{
9241
auto
res
= isl_id_list_from_id(el.
release
());
9242
ptr
=
res
;
9243
}
9244
9245
id_list::id_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
9246
{
9247
auto
res
= isl_id_list_read_from_str(
ctx
.release(),
str
.c_str());
9248
ptr
=
res
;
9249
}
9250
9251
id_list
&
id_list::operator=
(
id_list
obj
) {
9252
std::swap(this->ptr,
obj
.ptr);
9253
return
*
this
;
9254
}
9255
9256
id_list::~id_list
() {
9257
if
(
ptr
)
9258
isl_id_list_free(
ptr
);
9259
}
9260
9261
__isl_give
isl_id_list *
id_list::copy
() const & {
9262
return
isl_id_list_copy(
ptr
);
9263
}
9264
9265
__isl_keep
isl_id_list *
id_list::get
()
const
{
9266
return
ptr
;
9267
}
9268
9269
__isl_give
isl_id_list *
id_list::release
() {
9270
isl_id_list *tmp =
ptr
;
9271
ptr
=
nullptr
;
9272
return
tmp;
9273
}
9274
9275
bool
id_list::is_null
()
const
{
9276
return
ptr
==
nullptr
;
9277
}
9278
9279
isl::checked::ctx
id_list::ctx
()
const
{
9280
return
isl::checked::ctx
(isl_id_list_get_ctx(
ptr
));
9281
}
9282
9283
isl::checked::id_list
id_list::add
(
isl::checked::id
el)
const
9284
{
9285
auto
res
= isl_id_list_add(
copy
(), el.
release
());
9286
return
manage
(
res
);
9287
}
9288
9289
isl::checked::id_list
id_list::add
(
const
std::string &el)
const
9290
{
9291
return
this->
add
(
isl::checked::id
(
ctx
(), el));
9292
}
9293
9294
isl::checked::id
id_list::at
(
int
index)
const
9295
{
9296
auto
res
= isl_id_list_get_at(
get
(), index);
9297
return
manage
(
res
);
9298
}
9299
9300
isl::checked::id
id_list::get_at
(
int
index)
const
9301
{
9302
return
at
(index);
9303
}
9304
9305
isl::checked::id_list
id_list::clear
()
const
9306
{
9307
auto
res
= isl_id_list_clear(
copy
());
9308
return
manage
(
res
);
9309
}
9310
9311
isl::checked::id_list
id_list::concat
(
isl::checked::id_list
list2)
const
9312
{
9313
auto
res
= isl_id_list_concat(
copy
(), list2.
release
());
9314
return
manage
(
res
);
9315
}
9316
9317
isl::checked::id_list
id_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
9318
{
9319
auto
res
= isl_id_list_drop(
copy
(), first,
n
);
9320
return
manage
(
res
);
9321
}
9322
9323
stat
id_list::foreach
(
const
std::function<
stat
(
isl::checked::id
)> &
fn
)
const
9324
{
9325
struct
fn_data {
9326
std::function<
stat
(
isl::checked::id
)> func;
9327
} fn_data = {
fn
};
9328
auto
fn_lambda = [](
isl_id
*arg_0,
void
*arg_1) ->
isl_stat
{
9329
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
9330
auto
ret = (data->func)(
manage
(arg_0));
9331
return
ret.release();
9332
};
9333
auto
res
= isl_id_list_foreach(
get
(), fn_lambda, &fn_data);
9334
return
manage
(
res
);
9335
}
9336
9337
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
9338
{
9339
struct
follows_data {
9340
std::function<
boolean
(
isl::checked::id
,
isl::checked::id
)> func;
9341
} follows_data = { follows };
9342
auto
follows_lambda = [](
isl_id
*arg_0,
isl_id
*arg_1,
void
*arg_2) ->
isl_bool
{
9343
auto
*data =
static_cast<
struct follows_data *
>
(arg_2);
9344
auto
ret = (data->func)(
manage_copy
(arg_0),
manage_copy
(arg_1));
9345
return
ret.release();
9346
};
9347
struct
fn_data {
9348
std::function<
stat
(
isl::checked::id_list
)> func;
9349
} fn_data = {
fn
};
9350
auto
fn_lambda = [](isl_id_list *arg_0,
void
*arg_1) ->
isl_stat
{
9351
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
9352
auto
ret = (data->func)(
manage
(arg_0));
9353
return
ret.release();
9354
};
9355
auto
res
= isl_id_list_foreach_scc(
get
(), follows_lambda, &follows_data, fn_lambda, &fn_data);
9356
return
manage
(
res
);
9357
}
9358
9359
isl::checked::id_list
id_list::insert
(
unsigned
int
pos
,
isl::checked::id
el)
const
9360
{
9361
auto
res
= isl_id_list_insert(
copy
(),
pos
, el.
release
());
9362
return
manage
(
res
);
9363
}
9364
9365
isl::checked::id_list
id_list::insert
(
unsigned
int
pos
,
const
std::string &el)
const
9366
{
9367
return
this->
insert
(pos,
isl::checked::id
(
ctx
(), el));
9368
}
9369
9370
isl::checked::id_list
id_list::set_at
(
int
index,
isl::checked::id
el)
const
9371
{
9372
auto
res
= isl_id_list_set_at(
copy
(), index, el.
release
());
9373
return
manage
(
res
);
9374
}
9375
9376
isl::checked::id_list
id_list::set_at
(
int
index,
const
std::string &el)
const
9377
{
9378
return
this->
set_at
(index,
isl::checked::id
(
ctx
(), el));
9379
}
9380
9381
class
size
id_list
::
size
() const
9382
{
9383
auto
res
= isl_id_list_size(
get
());
9384
return
manage
(
res
);
9385
}
9386
9387
inline
std::ostream &
operator<<
(std::ostream &os,
const
id_list
&
obj
)
9388
{
9389
char
*
str
= isl_id_list_to_str(
obj
.get());
9390
if
(!
str
) {
9391
os.setstate(std::ios_base::badbit);
9392
return
os;
9393
}
9394
os <<
str
;
9395
free(
str
);
9396
return
os;
9397
}
9398
9399
// implementations for isl::id_to_ast_expr
9400
id_to_ast_expr
manage
(
__isl_take
isl_id_to_ast_expr *
ptr
) {
9401
return
id_to_ast_expr
(
ptr
);
9402
}
9403
id_to_ast_expr
manage_copy
(
__isl_keep
isl_id_to_ast_expr *
ptr
) {
9404
ptr
= isl_id_to_ast_expr_copy(
ptr
);
9405
return
id_to_ast_expr
(
ptr
);
9406
}
9407
9408
id_to_ast_expr::id_to_ast_expr
(
__isl_take
isl_id_to_ast_expr *
ptr
)
9409
:
ptr
(
ptr
) {}
9410
9411
id_to_ast_expr::id_to_ast_expr
()
9412
:
ptr
(nullptr) {}
9413
9414
id_to_ast_expr::id_to_ast_expr
(
const
id_to_ast_expr
&
obj
)
9415
:
ptr
(nullptr)
9416
{
9417
ptr
=
obj
.copy();
9418
}
9419
9420
id_to_ast_expr::id_to_ast_expr
(
isl::checked::ctx
ctx
,
int
min_size
)
9421
{
9422
auto
res
= isl_id_to_ast_expr_alloc(
ctx
.release(),
min_size
);
9423
ptr
=
res
;
9424
}
9425
9426
id_to_ast_expr::id_to_ast_expr
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
9427
{
9428
auto
res
= isl_id_to_ast_expr_read_from_str(
ctx
.release(),
str
.c_str());
9429
ptr
=
res
;
9430
}
9431
9432
id_to_ast_expr
&
id_to_ast_expr::operator=
(
id_to_ast_expr
obj
) {
9433
std::swap(this->ptr,
obj
.ptr);
9434
return
*
this
;
9435
}
9436
9437
id_to_ast_expr::~id_to_ast_expr
() {
9438
if
(
ptr
)
9439
isl_id_to_ast_expr_free(
ptr
);
9440
}
9441
9442
__isl_give
isl_id_to_ast_expr *
id_to_ast_expr::copy
() const & {
9443
return
isl_id_to_ast_expr_copy(
ptr
);
9444
}
9445
9446
__isl_keep
isl_id_to_ast_expr *
id_to_ast_expr::get
()
const
{
9447
return
ptr
;
9448
}
9449
9450
__isl_give
isl_id_to_ast_expr *
id_to_ast_expr::release
() {
9451
isl_id_to_ast_expr *tmp =
ptr
;
9452
ptr
=
nullptr
;
9453
return
tmp;
9454
}
9455
9456
bool
id_to_ast_expr::is_null
()
const
{
9457
return
ptr
==
nullptr
;
9458
}
9459
9460
isl::checked::ctx
id_to_ast_expr::ctx
()
const
{
9461
return
isl::checked::ctx
(isl_id_to_ast_expr_get_ctx(
ptr
));
9462
}
9463
9464
boolean
id_to_ast_expr::is_equal
(
const
isl::checked::id_to_ast_expr
&hmap2)
const
9465
{
9466
auto
res
= isl_id_to_ast_expr_is_equal(
get
(), hmap2.
get
());
9467
return
manage
(
res
);
9468
}
9469
9470
isl::checked::id_to_ast_expr
id_to_ast_expr::set
(
isl::checked::id
key
,
isl::checked::ast_expr
val
)
const
9471
{
9472
auto
res
= isl_id_to_ast_expr_set(
copy
(),
key
.release(),
val
.
release
());
9473
return
manage
(
res
);
9474
}
9475
9476
isl::checked::id_to_ast_expr
id_to_ast_expr::set
(
const
std::string &
key
,
const
isl::checked::ast_expr
&
val
)
const
9477
{
9478
return
this->
set
(
isl::checked::id
(
ctx
(),
key
),
val
);
9479
}
9480
9481
inline
std::ostream &
operator<<
(std::ostream &os,
const
id_to_ast_expr
&
obj
)
9482
{
9483
char
*
str
= isl_id_to_ast_expr_to_str(
obj
.get());
9484
if
(!
str
) {
9485
os.setstate(std::ios_base::badbit);
9486
return
os;
9487
}
9488
os <<
str
;
9489
free(
str
);
9490
return
os;
9491
}
9492
9493
// implementations for isl::id_to_id
9494
id_to_id
manage
(
__isl_take
isl_id_to_id *
ptr
) {
9495
return
id_to_id
(
ptr
);
9496
}
9497
id_to_id
manage_copy
(
__isl_keep
isl_id_to_id *
ptr
) {
9498
ptr
= isl_id_to_id_copy(
ptr
);
9499
return
id_to_id
(
ptr
);
9500
}
9501
9502
id_to_id::id_to_id
(
__isl_take
isl_id_to_id *
ptr
)
9503
:
ptr
(
ptr
) {}
9504
9505
id_to_id::id_to_id
()
9506
:
ptr
(nullptr) {}
9507
9508
id_to_id::id_to_id
(
const
id_to_id
&
obj
)
9509
:
ptr
(nullptr)
9510
{
9511
ptr
=
obj
.copy();
9512
}
9513
9514
id_to_id::id_to_id
(
isl::checked::ctx
ctx
,
int
min_size
)
9515
{
9516
auto
res
= isl_id_to_id_alloc(
ctx
.release(),
min_size
);
9517
ptr
=
res
;
9518
}
9519
9520
id_to_id::id_to_id
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
9521
{
9522
auto
res
= isl_id_to_id_read_from_str(
ctx
.release(),
str
.c_str());
9523
ptr
=
res
;
9524
}
9525
9526
id_to_id
&
id_to_id::operator=
(
id_to_id
obj
) {
9527
std::swap(this->ptr,
obj
.ptr);
9528
return
*
this
;
9529
}
9530
9531
id_to_id::~id_to_id
() {
9532
if
(
ptr
)
9533
isl_id_to_id_free(
ptr
);
9534
}
9535
9536
__isl_give
isl_id_to_id *
id_to_id::copy
() const & {
9537
return
isl_id_to_id_copy(
ptr
);
9538
}
9539
9540
__isl_keep
isl_id_to_id *
id_to_id::get
()
const
{
9541
return
ptr
;
9542
}
9543
9544
__isl_give
isl_id_to_id *
id_to_id::release
() {
9545
isl_id_to_id *tmp =
ptr
;
9546
ptr
=
nullptr
;
9547
return
tmp;
9548
}
9549
9550
bool
id_to_id::is_null
()
const
{
9551
return
ptr
==
nullptr
;
9552
}
9553
9554
isl::checked::ctx
id_to_id::ctx
()
const
{
9555
return
isl::checked::ctx
(isl_id_to_id_get_ctx(
ptr
));
9556
}
9557
9558
boolean
id_to_id::is_equal
(
const
isl::checked::id_to_id
&hmap2)
const
9559
{
9560
auto
res
= isl_id_to_id_is_equal(
get
(), hmap2.
get
());
9561
return
manage
(
res
);
9562
}
9563
9564
isl::checked::id_to_id
id_to_id::set
(
isl::checked::id
key
,
isl::checked::id
val
)
const
9565
{
9566
auto
res
= isl_id_to_id_set(
copy
(),
key
.release(),
val
.
release
());
9567
return
manage
(
res
);
9568
}
9569
9570
isl::checked::id_to_id
id_to_id::set
(
const
isl::checked::id
&
key
,
const
std::string &
val
)
const
9571
{
9572
return
this->
set
(key,
isl::checked::id
(
ctx
(),
val
));
9573
}
9574
9575
isl::checked::id_to_id
id_to_id::set
(
const
std::string &
key
,
const
isl::checked::id
&
val
)
const
9576
{
9577
return
this->
set
(
isl::checked::id
(
ctx
(),
key
),
val
);
9578
}
9579
9580
isl::checked::id_to_id
id_to_id::set
(
const
std::string &
key
,
const
std::string &
val
)
const
9581
{
9582
return
this->
set
(
isl::checked::id
(
ctx
(),
key
),
isl::checked::id
(
ctx
(),
val
));
9583
}
9584
9585
inline
std::ostream &
operator<<
(std::ostream &os,
const
id_to_id
&
obj
)
9586
{
9587
char
*
str
= isl_id_to_id_to_str(
obj
.get());
9588
if
(!
str
) {
9589
os.setstate(std::ios_base::badbit);
9590
return
os;
9591
}
9592
os <<
str
;
9593
free(
str
);
9594
return
os;
9595
}
9596
9597
// implementations for isl::map
9598
map
manage
(
__isl_take
isl_map
*
ptr
) {
9599
return
map
(
ptr
);
9600
}
9601
map
manage_copy
(
__isl_keep
isl_map
*
ptr
) {
9602
ptr
=
isl_map_copy
(
ptr
);
9603
return
map
(
ptr
);
9604
}
9605
9606
map::map
(
__isl_take
isl_map
*
ptr
)
9607
:
ptr
(
ptr
) {}
9608
9609
map::map
()
9610
:
ptr
(nullptr) {}
9611
9612
map::map
(
const
map
&
obj
)
9613
:
ptr
(nullptr)
9614
{
9615
ptr
=
obj
.copy();
9616
}
9617
9618
map::map
(
isl::checked::basic_map
bmap)
9619
{
9620
auto
res
=
isl_map_from_basic_map
(bmap.
release
());
9621
ptr
=
res
;
9622
}
9623
9624
map::map
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
9625
{
9626
auto
res
=
isl_map_read_from_str
(
ctx
.release(),
str
.c_str());
9627
ptr
=
res
;
9628
}
9629
9630
map
&
map::operator=
(
map
obj
) {
9631
std::swap(this->ptr,
obj
.ptr);
9632
return
*
this
;
9633
}
9634
9635
map::~map
() {
9636
if
(
ptr
)
9637
isl_map_free
(
ptr
);
9638
}
9639
9640
__isl_give
isl_map
*
map::copy
() const & {
9641
return
isl_map_copy
(
ptr
);
9642
}
9643
9644
__isl_keep
isl_map
*
map::get
()
const
{
9645
return
ptr
;
9646
}
9647
9648
__isl_give
isl_map
*
map::release
() {
9649
isl_map
*tmp =
ptr
;
9650
ptr
=
nullptr
;
9651
return
tmp;
9652
}
9653
9654
bool
map::is_null
()
const
{
9655
return
ptr
==
nullptr
;
9656
}
9657
9658
isl::checked::ctx
map::ctx
()
const
{
9659
return
isl::checked::ctx
(
isl_map_get_ctx
(
ptr
));
9660
}
9661
9662
isl::checked::basic_map
map::affine_hull
()
const
9663
{
9664
auto
res
=
isl_map_affine_hull
(
copy
());
9665
return
manage
(
res
);
9666
}
9667
9668
isl::checked::map
map::apply_domain
(
isl::checked::map
map2
)
const
9669
{
9670
auto
res
=
isl_map_apply_domain
(
copy
(),
map2
.release());
9671
return
manage
(
res
);
9672
}
9673
9674
isl::checked::union_map
map::apply_domain
(
const
isl::checked::union_map
&umap2)
const
9675
{
9676
return
isl::checked::union_map
(*this).
apply_domain
(umap2);
9677
}
9678
9679
isl::checked::map
map::apply_domain
(
const
isl::checked::basic_map
&
map2
)
const
9680
{
9681
return
this->
apply_domain
(
isl::checked::map
(
map2
));
9682
}
9683
9684
isl::checked::map
map::apply_range
(
isl::checked::map
map2
)
const
9685
{
9686
auto
res
=
isl_map_apply_range
(
copy
(),
map2
.release());
9687
return
manage
(
res
);
9688
}
9689
9690
isl::checked::union_map
map::apply_range
(
const
isl::checked::union_map
&umap2)
const
9691
{
9692
return
isl::checked::union_map
(*this).
apply_range
(umap2);
9693
}
9694
9695
isl::checked::map
map::apply_range
(
const
isl::checked::basic_map
&
map2
)
const
9696
{
9697
return
this->
apply_range
(
isl::checked::map
(
map2
));
9698
}
9699
9700
isl::checked::map
map::as_map
()
const
9701
{
9702
return
isl::checked::union_map
(*this).
as_map
();
9703
}
9704
9705
isl::checked::multi_union_pw_aff
map::as_multi_union_pw_aff
()
const
9706
{
9707
return
isl::checked::union_map
(*this).
as_multi_union_pw_aff
();
9708
}
9709
9710
isl::checked::pw_multi_aff
map::as_pw_multi_aff
()
const
9711
{
9712
auto
res
=
isl_map_as_pw_multi_aff
(
copy
());
9713
return
manage
(
res
);
9714
}
9715
9716
isl::checked::union_pw_multi_aff
map::as_union_pw_multi_aff
()
const
9717
{
9718
return
isl::checked::union_map
(*this).
as_union_pw_multi_aff
();
9719
}
9720
9721
isl::checked::set
map::bind_domain
(
isl::checked::multi_id
tuple
)
const
9722
{
9723
auto
res
=
isl_map_bind_domain
(
copy
(),
tuple
.release());
9724
return
manage
(
res
);
9725
}
9726
9727
isl::checked::set
map::bind_range
(
isl::checked::multi_id
tuple
)
const
9728
{
9729
auto
res
=
isl_map_bind_range
(
copy
(),
tuple
.release());
9730
return
manage
(
res
);
9731
}
9732
9733
isl::checked::map
map::coalesce
()
const
9734
{
9735
auto
res
=
isl_map_coalesce
(
copy
());
9736
return
manage
(
res
);
9737
}
9738
9739
isl::checked::map
map::complement
()
const
9740
{
9741
auto
res
=
isl_map_complement
(
copy
());
9742
return
manage
(
res
);
9743
}
9744
9745
isl::checked::union_map
map::compute_divs
()
const
9746
{
9747
return
isl::checked::union_map
(*this).
compute_divs
();
9748
}
9749
9750
isl::checked::map
map::curry
()
const
9751
{
9752
auto
res
=
isl_map_curry
(
copy
());
9753
return
manage
(
res
);
9754
}
9755
9756
isl::checked::set
map::deltas
()
const
9757
{
9758
auto
res
=
isl_map_deltas
(
copy
());
9759
return
manage
(
res
);
9760
}
9761
9762
isl::checked::map
map::detect_equalities
()
const
9763
{
9764
auto
res
=
isl_map_detect_equalities
(
copy
());
9765
return
manage
(
res
);
9766
}
9767
9768
isl::checked::set
map::domain
()
const
9769
{
9770
auto
res
=
isl_map_domain
(
copy
());
9771
return
manage
(
res
);
9772
}
9773
9774
isl::checked::map
map::domain_factor_domain
()
const
9775
{
9776
auto
res
=
isl_map_domain_factor_domain
(
copy
());
9777
return
manage
(
res
);
9778
}
9779
9780
isl::checked::map
map::domain_factor_range
()
const
9781
{
9782
auto
res
=
isl_map_domain_factor_range
(
copy
());
9783
return
manage
(
res
);
9784
}
9785
9786
isl::checked::union_map
map::domain_map
()
const
9787
{
9788
return
isl::checked::union_map
(*this).
domain_map
();
9789
}
9790
9791
isl::checked::union_pw_multi_aff
map::domain_map_union_pw_multi_aff
()
const
9792
{
9793
return
isl::checked::union_map
(*this).
domain_map_union_pw_multi_aff
();
9794
}
9795
9796
isl::checked::map
map::domain_product
(
isl::checked::map
map2
)
const
9797
{
9798
auto
res
=
isl_map_domain_product
(
copy
(),
map2
.release());
9799
return
manage
(
res
);
9800
}
9801
9802
isl::checked::union_map
map::domain_product
(
const
isl::checked::union_map
&umap2)
const
9803
{
9804
return
isl::checked::union_map
(*this).
domain_product
(umap2);
9805
}
9806
9807
isl::checked::map
map::domain_product
(
const
isl::checked::basic_map
&
map2
)
const
9808
{
9809
return
this->
domain_product
(
isl::checked::map
(
map2
));
9810
}
9811
9812
isl::checked::map
map::domain_reverse
()
const
9813
{
9814
auto
res
=
isl_map_domain_reverse
(
copy
());
9815
return
manage
(
res
);
9816
}
9817
9818
class
size
map
::
domain_tuple_dim
() const
9819
{
9820
auto
res
=
isl_map_domain_tuple_dim
(
get
());
9821
return
manage
(
res
);
9822
}
9823
9824
isl::checked::id
map::domain_tuple_id
()
const
9825
{
9826
auto
res
=
isl_map_get_domain_tuple_id
(
get
());
9827
return
manage
(
res
);
9828
}
9829
9830
isl::checked::id
map::get_domain_tuple_id
()
const
9831
{
9832
return
domain_tuple_id
();
9833
}
9834
9835
isl::checked::map
map::drop_unused_params
()
const
9836
{
9837
auto
res
=
isl_map_drop_unused_params
(
copy
());
9838
return
manage
(
res
);
9839
}
9840
9841
isl::checked::map
map::empty
(
isl::checked::space
space
)
9842
{
9843
auto
res
=
isl_map_empty
(
space
.release());
9844
return
manage
(
res
);
9845
}
9846
9847
isl::checked::map
map::eq_at
(
isl::checked::multi_pw_aff
mpa)
const
9848
{
9849
auto
res
=
isl_map_eq_at_multi_pw_aff
(
copy
(), mpa.
release
());
9850
return
manage
(
res
);
9851
}
9852
9853
isl::checked::union_map
map::eq_at
(
const
isl::checked::multi_union_pw_aff
&
mupa
)
const
9854
{
9855
return
isl::checked::union_map
(*this).
eq_at
(
mupa
);
9856
}
9857
9858
isl::checked::map
map::eq_at
(
const
isl::checked::aff
&mpa)
const
9859
{
9860
return
this->
eq_at
(
isl::checked::multi_pw_aff
(mpa));
9861
}
9862
9863
isl::checked::map
map::eq_at
(
const
isl::checked::multi_aff
&mpa)
const
9864
{
9865
return
this->
eq_at
(
isl::checked::multi_pw_aff
(mpa));
9866
}
9867
9868
isl::checked::map
map::eq_at
(
const
isl::checked::pw_aff
&mpa)
const
9869
{
9870
return
this->
eq_at
(
isl::checked::multi_pw_aff
(mpa));
9871
}
9872
9873
isl::checked::map
map::eq_at
(
const
isl::checked::pw_multi_aff
&mpa)
const
9874
{
9875
return
this->
eq_at
(
isl::checked::multi_pw_aff
(mpa));
9876
}
9877
9878
boolean
map::every_map
(
const
std::function<
boolean
(
isl::checked::map
)> &
test
)
const
9879
{
9880
return
isl::checked::union_map
(*this).
every_map
(
test
);
9881
}
9882
9883
isl::checked::map
map::extract_map
(
const
isl::checked::space
&
space
)
const
9884
{
9885
return
isl::checked::union_map
(*this).
extract_map
(
space
);
9886
}
9887
9888
isl::checked::map
map::factor_domain
()
const
9889
{
9890
auto
res
=
isl_map_factor_domain
(
copy
());
9891
return
manage
(
res
);
9892
}
9893
9894
isl::checked::map
map::factor_range
()
const
9895
{
9896
auto
res
=
isl_map_factor_range
(
copy
());
9897
return
manage
(
res
);
9898
}
9899
9900
isl::checked::map
map::fixed_power
(
isl::checked::val
exp)
const
9901
{
9902
auto
res
=
isl_map_fixed_power_val
(
copy
(), exp.
release
());
9903
return
manage
(
res
);
9904
}
9905
9906
isl::checked::map
map::fixed_power
(
long
exp)
const
9907
{
9908
return
this->
fixed_power
(
isl::checked::val
(
ctx
(), exp));
9909
}
9910
9911
isl::checked::map
map::flatten
()
const
9912
{
9913
auto
res
=
isl_map_flatten
(
copy
());
9914
return
manage
(
res
);
9915
}
9916
9917
isl::checked::map
map::flatten_domain
()
const
9918
{
9919
auto
res
=
isl_map_flatten_domain
(
copy
());
9920
return
manage
(
res
);
9921
}
9922
9923
isl::checked::map
map::flatten_range
()
const
9924
{
9925
auto
res
=
isl_map_flatten_range
(
copy
());
9926
return
manage
(
res
);
9927
}
9928
9929
stat
map::foreach_basic_map
(
const
std::function<
stat
(
isl::checked::basic_map
)> &
fn
)
const
9930
{
9931
struct
fn_data {
9932
std::function<
stat
(
isl::checked::basic_map
)> func;
9933
} fn_data = {
fn
};
9934
auto
fn_lambda = [](
isl_basic_map
*arg_0,
void
*arg_1) ->
isl_stat
{
9935
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
9936
auto
ret = (data->func)(
manage
(arg_0));
9937
return
ret.release();
9938
};
9939
auto
res
=
isl_map_foreach_basic_map
(
get
(), fn_lambda, &fn_data);
9940
return
manage
(
res
);
9941
}
9942
9943
stat
map::foreach_map
(
const
std::function<
stat
(
isl::checked::map
)> &
fn
)
const
9944
{
9945
return
isl::checked::union_map
(*this).
foreach_map
(
fn
);
9946
}
9947
9948
isl::checked::map
map::gist
(
isl::checked::map
context
)
const
9949
{
9950
auto
res
=
isl_map_gist
(
copy
(),
context
.release());
9951
return
manage
(
res
);
9952
}
9953
9954
isl::checked::union_map
map::gist
(
const
isl::checked::union_map
&
context
)
const
9955
{
9956
return
isl::checked::union_map
(*this).
gist
(
context
);
9957
}
9958
9959
isl::checked::map
map::gist
(
const
isl::checked::basic_map
&
context
)
const
9960
{
9961
return
this->
gist
(
isl::checked::map
(
context
));
9962
}
9963
9964
isl::checked::map
map::gist_domain
(
isl::checked::set
context
)
const
9965
{
9966
auto
res
=
isl_map_gist_domain
(
copy
(),
context
.release());
9967
return
manage
(
res
);
9968
}
9969
9970
isl::checked::union_map
map::gist_domain
(
const
isl::checked::union_set
&uset)
const
9971
{
9972
return
isl::checked::union_map
(*this).
gist_domain
(uset);
9973
}
9974
9975
isl::checked::map
map::gist_domain
(
const
isl::checked::basic_set
&
context
)
const
9976
{
9977
return
this->
gist_domain
(
isl::checked::set
(
context
));
9978
}
9979
9980
isl::checked::map
map::gist_domain
(
const
isl::checked::point
&
context
)
const
9981
{
9982
return
this->
gist_domain
(
isl::checked::set
(
context
));
9983
}
9984
9985
isl::checked::map
map::gist_params
(
isl::checked::set
context
)
const
9986
{
9987
auto
res
=
isl_map_gist_params
(
copy
(),
context
.release());
9988
return
manage
(
res
);
9989
}
9990
9991
isl::checked::union_map
map::gist_range
(
const
isl::checked::union_set
&uset)
const
9992
{
9993
return
isl::checked::union_map
(*this).
gist_range
(uset);
9994
}
9995
9996
boolean
map::has_domain_tuple_id
()
const
9997
{
9998
auto
res
=
isl_map_has_domain_tuple_id
(
get
());
9999
return
manage
(
res
);
10000
}
10001
10002
boolean
map::has_range_tuple_id
()
const
10003
{
10004
auto
res
=
isl_map_has_range_tuple_id
(
get
());
10005
return
manage
(
res
);
10006
}
10007
10008
isl::checked::map
map::intersect
(
isl::checked::map
map2
)
const
10009
{
10010
auto
res
=
isl_map_intersect
(
copy
(),
map2
.release());
10011
return
manage
(
res
);
10012
}
10013
10014
isl::checked::union_map
map::intersect
(
const
isl::checked::union_map
&umap2)
const
10015
{
10016
return
isl::checked::union_map
(*this).
intersect
(umap2);
10017
}
10018
10019
isl::checked::map
map::intersect
(
const
isl::checked::basic_map
&
map2
)
const
10020
{
10021
return
this->
intersect
(
isl::checked::map
(
map2
));
10022
}
10023
10024
isl::checked::map
map::intersect_domain
(
isl::checked::set
set
)
const
10025
{
10026
auto
res
=
isl_map_intersect_domain
(
copy
(),
set
.
release
());
10027
return
manage
(
res
);
10028
}
10029
10030
isl::checked::union_map
map::intersect_domain
(
const
isl::checked::space
&
space
)
const
10031
{
10032
return
isl::checked::union_map
(*this).
intersect_domain
(
space
);
10033
}
10034
10035
isl::checked::union_map
map::intersect_domain
(
const
isl::checked::union_set
&uset)
const
10036
{
10037
return
isl::checked::union_map
(*this).
intersect_domain
(uset);
10038
}
10039
10040
isl::checked::map
map::intersect_domain
(
const
isl::checked::basic_set
&
set
)
const
10041
{
10042
return
this->
intersect_domain
(
isl::checked::set
(
set
));
10043
}
10044
10045
isl::checked::map
map::intersect_domain
(
const
isl::checked::point
&
set
)
const
10046
{
10047
return
this->
intersect_domain
(
isl::checked::set
(
set
));
10048
}
10049
10050
isl::checked::map
map::intersect_domain_factor_domain
(
isl::checked::map
factor)
const
10051
{
10052
auto
res
=
isl_map_intersect_domain_factor_domain
(
copy
(), factor.
release
());
10053
return
manage
(
res
);
10054
}
10055
10056
isl::checked::union_map
map::intersect_domain_factor_domain
(
const
isl::checked::union_map
&factor)
const
10057
{
10058
return
isl::checked::union_map
(*this).
intersect_domain_factor_domain
(factor);
10059
}
10060
10061
isl::checked::map
map::intersect_domain_factor_domain
(
const
isl::checked::basic_map
&factor)
const
10062
{
10063
return
this->
intersect_domain_factor_domain
(
isl::checked::map
(factor));
10064
}
10065
10066
isl::checked::map
map::intersect_domain_factor_range
(
isl::checked::map
factor)
const
10067
{
10068
auto
res
=
isl_map_intersect_domain_factor_range
(
copy
(), factor.
release
());
10069
return
manage
(
res
);
10070
}
10071
10072
isl::checked::union_map
map::intersect_domain_factor_range
(
const
isl::checked::union_map
&factor)
const
10073
{
10074
return
isl::checked::union_map
(*this).
intersect_domain_factor_range
(factor);
10075
}
10076
10077
isl::checked::map
map::intersect_domain_factor_range
(
const
isl::checked::basic_map
&factor)
const
10078
{
10079
return
this->
intersect_domain_factor_range
(
isl::checked::map
(factor));
10080
}
10081
10082
isl::checked::map
map::intersect_domain_wrapped_domain
(
isl::checked::set
domain
)
const
10083
{
10084
auto
res
=
isl_map_intersect_domain_wrapped_domain
(
copy
(),
domain
.release());
10085
return
manage
(
res
);
10086
}
10087
10088
isl::checked::union_map
map::intersect_domain_wrapped_domain
(
const
isl::checked::union_set
&
domain
)
const
10089
{
10090
return
isl::checked::union_map
(*this).
intersect_domain_wrapped_domain
(
domain
);
10091
}
10092
10093
isl::checked::map
map::intersect_domain_wrapped_domain
(
const
isl::checked::basic_set
&
domain
)
const
10094
{
10095
return
this->
intersect_domain_wrapped_domain
(
isl::checked::set
(
domain
));
10096
}
10097
10098
isl::checked::map
map::intersect_domain_wrapped_domain
(
const
isl::checked::point
&
domain
)
const
10099
{
10100
return
this->
intersect_domain_wrapped_domain
(
isl::checked::set
(
domain
));
10101
}
10102
10103
isl::checked::map
map::intersect_params
(
isl::checked::set
params
)
const
10104
{
10105
auto
res
=
isl_map_intersect_params
(
copy
(),
params
.release());
10106
return
manage
(
res
);
10107
}
10108
10109
isl::checked::map
map::intersect_range
(
isl::checked::set
set
)
const
10110
{
10111
auto
res
=
isl_map_intersect_range
(
copy
(),
set
.
release
());
10112
return
manage
(
res
);
10113
}
10114
10115
isl::checked::union_map
map::intersect_range
(
const
isl::checked::space
&
space
)
const
10116
{
10117
return
isl::checked::union_map
(*this).
intersect_range
(
space
);
10118
}
10119
10120
isl::checked::union_map
map::intersect_range
(
const
isl::checked::union_set
&uset)
const
10121
{
10122
return
isl::checked::union_map
(*this).
intersect_range
(uset);
10123
}
10124
10125
isl::checked::map
map::intersect_range
(
const
isl::checked::basic_set
&
set
)
const
10126
{
10127
return
this->
intersect_range
(
isl::checked::set
(
set
));
10128
}
10129
10130
isl::checked::map
map::intersect_range
(
const
isl::checked::point
&
set
)
const
10131
{
10132
return
this->
intersect_range
(
isl::checked::set
(
set
));
10133
}
10134
10135
isl::checked::map
map::intersect_range_factor_domain
(
isl::checked::map
factor)
const
10136
{
10137
auto
res
=
isl_map_intersect_range_factor_domain
(
copy
(), factor.
release
());
10138
return
manage
(
res
);
10139
}
10140
10141
isl::checked::union_map
map::intersect_range_factor_domain
(
const
isl::checked::union_map
&factor)
const
10142
{
10143
return
isl::checked::union_map
(*this).
intersect_range_factor_domain
(factor);
10144
}
10145
10146
isl::checked::map
map::intersect_range_factor_domain
(
const
isl::checked::basic_map
&factor)
const
10147
{
10148
return
this->
intersect_range_factor_domain
(
isl::checked::map
(factor));
10149
}
10150
10151
isl::checked::map
map::intersect_range_factor_range
(
isl::checked::map
factor)
const
10152
{
10153
auto
res
=
isl_map_intersect_range_factor_range
(
copy
(), factor.
release
());
10154
return
manage
(
res
);
10155
}
10156
10157
isl::checked::union_map
map::intersect_range_factor_range
(
const
isl::checked::union_map
&factor)
const
10158
{
10159
return
isl::checked::union_map
(*this).
intersect_range_factor_range
(factor);
10160
}
10161
10162
isl::checked::map
map::intersect_range_factor_range
(
const
isl::checked::basic_map
&factor)
const
10163
{
10164
return
this->
intersect_range_factor_range
(
isl::checked::map
(factor));
10165
}
10166
10167
isl::checked::map
map::intersect_range_wrapped_domain
(
isl::checked::set
domain
)
const
10168
{
10169
auto
res
=
isl_map_intersect_range_wrapped_domain
(
copy
(),
domain
.release());
10170
return
manage
(
res
);
10171
}
10172
10173
isl::checked::union_map
map::intersect_range_wrapped_domain
(
const
isl::checked::union_set
&
domain
)
const
10174
{
10175
return
isl::checked::union_map
(*this).
intersect_range_wrapped_domain
(
domain
);
10176
}
10177
10178
isl::checked::map
map::intersect_range_wrapped_domain
(
const
isl::checked::basic_set
&
domain
)
const
10179
{
10180
return
this->
intersect_range_wrapped_domain
(
isl::checked::set
(
domain
));
10181
}
10182
10183
isl::checked::map
map::intersect_range_wrapped_domain
(
const
isl::checked::point
&
domain
)
const
10184
{
10185
return
this->
intersect_range_wrapped_domain
(
isl::checked::set
(
domain
));
10186
}
10187
10188
boolean
map::is_bijective
()
const
10189
{
10190
auto
res
=
isl_map_is_bijective
(
get
());
10191
return
manage
(
res
);
10192
}
10193
10194
boolean
map::is_disjoint
(
const
isl::checked::map
&
map2
)
const
10195
{
10196
auto
res
=
isl_map_is_disjoint
(
get
(),
map2
.get());
10197
return
manage
(
res
);
10198
}
10199
10200
boolean
map::is_disjoint
(
const
isl::checked::union_map
&umap2)
const
10201
{
10202
return
isl::checked::union_map
(*this).
is_disjoint
(umap2);
10203
}
10204
10205
boolean
map::is_disjoint
(
const
isl::checked::basic_map
&
map2
)
const
10206
{
10207
return
this->
is_disjoint
(
isl::checked::map
(
map2
));
10208
}
10209
10210
boolean
map::is_empty
()
const
10211
{
10212
auto
res
=
isl_map_is_empty
(
get
());
10213
return
manage
(
res
);
10214
}
10215
10216
boolean
map::is_equal
(
const
isl::checked::map
&
map2
)
const
10217
{
10218
auto
res
=
isl_map_is_equal
(
get
(),
map2
.get());
10219
return
manage
(
res
);
10220
}
10221
10222
boolean
map::is_equal
(
const
isl::checked::union_map
&umap2)
const
10223
{
10224
return
isl::checked::union_map
(*this).
is_equal
(umap2);
10225
}
10226
10227
boolean
map::is_equal
(
const
isl::checked::basic_map
&
map2
)
const
10228
{
10229
return
this->
is_equal
(
isl::checked::map
(
map2
));
10230
}
10231
10232
boolean
map::is_injective
()
const
10233
{
10234
auto
res
=
isl_map_is_injective
(
get
());
10235
return
manage
(
res
);
10236
}
10237
10238
boolean
map::is_single_valued
()
const
10239
{
10240
auto
res
=
isl_map_is_single_valued
(
get
());
10241
return
manage
(
res
);
10242
}
10243
10244
boolean
map::is_strict_subset
(
const
isl::checked::map
&
map2
)
const
10245
{
10246
auto
res
=
isl_map_is_strict_subset
(
get
(),
map2
.get());
10247
return
manage
(
res
);
10248
}
10249
10250
boolean
map::is_strict_subset
(
const
isl::checked::union_map
&umap2)
const
10251
{
10252
return
isl::checked::union_map
(*this).
is_strict_subset
(umap2);
10253
}
10254
10255
boolean
map::is_strict_subset
(
const
isl::checked::basic_map
&
map2
)
const
10256
{
10257
return
this->
is_strict_subset
(
isl::checked::map
(
map2
));
10258
}
10259
10260
boolean
map::is_subset
(
const
isl::checked::map
&
map2
)
const
10261
{
10262
auto
res
=
isl_map_is_subset
(
get
(),
map2
.get());
10263
return
manage
(
res
);
10264
}
10265
10266
boolean
map::is_subset
(
const
isl::checked::union_map
&umap2)
const
10267
{
10268
return
isl::checked::union_map
(*this).
is_subset
(umap2);
10269
}
10270
10271
boolean
map::is_subset
(
const
isl::checked::basic_map
&
map2
)
const
10272
{
10273
return
this->
is_subset
(
isl::checked::map
(
map2
));
10274
}
10275
10276
boolean
map::isa_map
()
const
10277
{
10278
return
isl::checked::union_map
(*this).
isa_map
();
10279
}
10280
10281
isl::checked::map
map::lex_ge_at
(
isl::checked::multi_pw_aff
mpa)
const
10282
{
10283
auto
res
=
isl_map_lex_ge_at_multi_pw_aff
(
copy
(), mpa.
release
());
10284
return
manage
(
res
);
10285
}
10286
10287
isl::checked::map
map::lex_gt_at
(
isl::checked::multi_pw_aff
mpa)
const
10288
{
10289
auto
res
=
isl_map_lex_gt_at_multi_pw_aff
(
copy
(), mpa.
release
());
10290
return
manage
(
res
);
10291
}
10292
10293
isl::checked::map
map::lex_le_at
(
isl::checked::multi_pw_aff
mpa)
const
10294
{
10295
auto
res
=
isl_map_lex_le_at_multi_pw_aff
(
copy
(), mpa.
release
());
10296
return
manage
(
res
);
10297
}
10298
10299
isl::checked::map
map::lex_lt_at
(
isl::checked::multi_pw_aff
mpa)
const
10300
{
10301
auto
res
=
isl_map_lex_lt_at_multi_pw_aff
(
copy
(), mpa.
release
());
10302
return
manage
(
res
);
10303
}
10304
10305
isl::checked::map
map::lexmax
()
const
10306
{
10307
auto
res
=
isl_map_lexmax
(
copy
());
10308
return
manage
(
res
);
10309
}
10310
10311
isl::checked::pw_multi_aff
map::lexmax_pw_multi_aff
()
const
10312
{
10313
auto
res
=
isl_map_lexmax_pw_multi_aff
(
copy
());
10314
return
manage
(
res
);
10315
}
10316
10317
isl::checked::map
map::lexmin
()
const
10318
{
10319
auto
res
=
isl_map_lexmin
(
copy
());
10320
return
manage
(
res
);
10321
}
10322
10323
isl::checked::pw_multi_aff
map::lexmin_pw_multi_aff
()
const
10324
{
10325
auto
res
=
isl_map_lexmin_pw_multi_aff
(
copy
());
10326
return
manage
(
res
);
10327
}
10328
10329
isl::checked::map
map::lower_bound
(
isl::checked::multi_pw_aff
lower)
const
10330
{
10331
auto
res
=
isl_map_lower_bound_multi_pw_aff
(
copy
(), lower.
release
());
10332
return
manage
(
res
);
10333
}
10334
10335
isl::checked::map_list
map::map_list
()
const
10336
{
10337
return
isl::checked::union_map
(*this).
map_list
();
10338
}
10339
10340
isl::checked::multi_pw_aff
map::max_multi_pw_aff
()
const
10341
{
10342
auto
res
=
isl_map_max_multi_pw_aff
(
copy
());
10343
return
manage
(
res
);
10344
}
10345
10346
isl::checked::multi_pw_aff
map::min_multi_pw_aff
()
const
10347
{
10348
auto
res
=
isl_map_min_multi_pw_aff
(
copy
());
10349
return
manage
(
res
);
10350
}
10351
10352
class
size
map
::
n_basic_map
() const
10353
{
10354
auto
res
=
isl_map_n_basic_map
(
get
());
10355
return
manage
(
res
);
10356
}
10357
10358
isl::checked::set
map::params
()
const
10359
{
10360
auto
res
=
isl_map_params
(
copy
());
10361
return
manage
(
res
);
10362
}
10363
10364
isl::checked::basic_map
map::polyhedral_hull
()
const
10365
{
10366
auto
res
=
isl_map_polyhedral_hull
(
copy
());
10367
return
manage
(
res
);
10368
}
10369
10370
isl::checked::map
map::preimage_domain
(
isl::checked::multi_aff
ma
)
const
10371
{
10372
auto
res
=
isl_map_preimage_domain_multi_aff
(
copy
(),
ma
.release());
10373
return
manage
(
res
);
10374
}
10375
10376
isl::checked::map
map::preimage_domain
(
isl::checked::multi_pw_aff
mpa)
const
10377
{
10378
auto
res
=
isl_map_preimage_domain_multi_pw_aff
(
copy
(), mpa.
release
());
10379
return
manage
(
res
);
10380
}
10381
10382
isl::checked::map
map::preimage_domain
(
isl::checked::pw_multi_aff
pma
)
const
10383
{
10384
auto
res
=
isl_map_preimage_domain_pw_multi_aff
(
copy
(),
pma
.release());
10385
return
manage
(
res
);
10386
}
10387
10388
isl::checked::union_map
map::preimage_domain
(
const
isl::checked::union_pw_multi_aff
&upma)
const
10389
{
10390
return
isl::checked::union_map
(*this).
preimage_domain
(upma);
10391
}
10392
10393
isl::checked::map
map::preimage_range
(
isl::checked::multi_aff
ma
)
const
10394
{
10395
auto
res
=
isl_map_preimage_range_multi_aff
(
copy
(),
ma
.release());
10396
return
manage
(
res
);
10397
}
10398
10399
isl::checked::map
map::preimage_range
(
isl::checked::pw_multi_aff
pma
)
const
10400
{
10401
auto
res
=
isl_map_preimage_range_pw_multi_aff
(
copy
(),
pma
.release());
10402
return
manage
(
res
);
10403
}
10404
10405
isl::checked::union_map
map::preimage_range
(
const
isl::checked::union_pw_multi_aff
&upma)
const
10406
{
10407
return
isl::checked::union_map
(*this).
preimage_range
(upma);
10408
}
10409
10410
isl::checked::map
map::product
(
isl::checked::map
map2
)
const
10411
{
10412
auto
res
=
isl_map_product
(
copy
(),
map2
.release());
10413
return
manage
(
res
);
10414
}
10415
10416
isl::checked::union_map
map::product
(
const
isl::checked::union_map
&umap2)
const
10417
{
10418
return
isl::checked::union_map
(*this).
product
(umap2);
10419
}
10420
10421
isl::checked::map
map::product
(
const
isl::checked::basic_map
&
map2
)
const
10422
{
10423
return
this->
product
(
isl::checked::map
(
map2
));
10424
}
10425
10426
isl::checked::map
map::project_out_all_params
()
const
10427
{
10428
auto
res
=
isl_map_project_out_all_params
(
copy
());
10429
return
manage
(
res
);
10430
}
10431
10432
isl::checked::map
map::project_out_param
(
isl::checked::id
id
)
const
10433
{
10434
auto
res
=
isl_map_project_out_param_id
(
copy
(),
id
.
release
());
10435
return
manage
(
res
);
10436
}
10437
10438
isl::checked::map
map::project_out_param
(
const
std::string &
id
)
const
10439
{
10440
return
this->
project_out_param
(
isl::checked::id
(
ctx
(),
id
));
10441
}
10442
10443
isl::checked::map
map::project_out_param
(
isl::checked::id_list
list)
const
10444
{
10445
auto
res
=
isl_map_project_out_param_id_list
(
copy
(), list.
release
());
10446
return
manage
(
res
);
10447
}
10448
10449
isl::checked::set
map::range
()
const
10450
{
10451
auto
res
=
isl_map_range
(
copy
());
10452
return
manage
(
res
);
10453
}
10454
10455
isl::checked::map
map::range_factor_domain
()
const
10456
{
10457
auto
res
=
isl_map_range_factor_domain
(
copy
());
10458
return
manage
(
res
);
10459
}
10460
10461
isl::checked::map
map::range_factor_range
()
const
10462
{
10463
auto
res
=
isl_map_range_factor_range
(
copy
());
10464
return
manage
(
res
);
10465
}
10466
10467
isl::checked::fixed_box
map::range_lattice_tile
()
const
10468
{
10469
auto
res
=
isl_map_get_range_lattice_tile
(
get
());
10470
return
manage
(
res
);
10471
}
10472
10473
isl::checked::fixed_box
map::get_range_lattice_tile
()
const
10474
{
10475
return
range_lattice_tile
();
10476
}
10477
10478
isl::checked::union_map
map::range_map
()
const
10479
{
10480
return
isl::checked::union_map
(*this).
range_map
();
10481
}
10482
10483
isl::checked::map
map::range_product
(
isl::checked::map
map2
)
const
10484
{
10485
auto
res
=
isl_map_range_product
(
copy
(),
map2
.release());
10486
return
manage
(
res
);
10487
}
10488
10489
isl::checked::union_map
map::range_product
(
const
isl::checked::union_map
&umap2)
const
10490
{
10491
return
isl::checked::union_map
(*this).
range_product
(umap2);
10492
}
10493
10494
isl::checked::map
map::range_product
(
const
isl::checked::basic_map
&
map2
)
const
10495
{
10496
return
this->
range_product
(
isl::checked::map
(
map2
));
10497
}
10498
10499
isl::checked::map
map::range_reverse
()
const
10500
{
10501
auto
res
=
isl_map_range_reverse
(
copy
());
10502
return
manage
(
res
);
10503
}
10504
10505
isl::checked::fixed_box
map::range_simple_fixed_box_hull
()
const
10506
{
10507
auto
res
=
isl_map_get_range_simple_fixed_box_hull
(
get
());
10508
return
manage
(
res
);
10509
}
10510
10511
isl::checked::fixed_box
map::get_range_simple_fixed_box_hull
()
const
10512
{
10513
return
range_simple_fixed_box_hull
();
10514
}
10515
10516
class
size
map
::
range_tuple_dim
() const
10517
{
10518
auto
res
=
isl_map_range_tuple_dim
(
get
());
10519
return
manage
(
res
);
10520
}
10521
10522
isl::checked::id
map::range_tuple_id
()
const
10523
{
10524
auto
res
=
isl_map_get_range_tuple_id
(
get
());
10525
return
manage
(
res
);
10526
}
10527
10528
isl::checked::id
map::get_range_tuple_id
()
const
10529
{
10530
return
range_tuple_id
();
10531
}
10532
10533
isl::checked::map
map::reverse
()
const
10534
{
10535
auto
res
=
isl_map_reverse
(
copy
());
10536
return
manage
(
res
);
10537
}
10538
10539
isl::checked::basic_map
map::sample
()
const
10540
{
10541
auto
res
=
isl_map_sample
(
copy
());
10542
return
manage
(
res
);
10543
}
10544
10545
isl::checked::map
map::set_domain_tuple
(
isl::checked::id
id
)
const
10546
{
10547
auto
res
=
isl_map_set_domain_tuple_id
(
copy
(),
id
.
release
());
10548
return
manage
(
res
);
10549
}
10550
10551
isl::checked::map
map::set_domain_tuple
(
const
std::string &
id
)
const
10552
{
10553
return
this->
set_domain_tuple
(
isl::checked::id
(
ctx
(),
id
));
10554
}
10555
10556
isl::checked::map
map::set_range_tuple
(
isl::checked::id
id
)
const
10557
{
10558
auto
res
=
isl_map_set_range_tuple_id
(
copy
(),
id
.
release
());
10559
return
manage
(
res
);
10560
}
10561
10562
isl::checked::map
map::set_range_tuple
(
const
std::string &
id
)
const
10563
{
10564
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
10565
}
10566
10567
isl::checked::space
map::space
()
const
10568
{
10569
auto
res
=
isl_map_get_space
(
get
());
10570
return
manage
(
res
);
10571
}
10572
10573
isl::checked::space
map::get_space
()
const
10574
{
10575
return
space
();
10576
}
10577
10578
isl::checked::map
map::subtract
(
isl::checked::map
map2
)
const
10579
{
10580
auto
res
=
isl_map_subtract
(
copy
(),
map2
.release());
10581
return
manage
(
res
);
10582
}
10583
10584
isl::checked::union_map
map::subtract
(
const
isl::checked::union_map
&umap2)
const
10585
{
10586
return
isl::checked::union_map
(*this).
subtract
(umap2);
10587
}
10588
10589
isl::checked::map
map::subtract
(
const
isl::checked::basic_map
&
map2
)
const
10590
{
10591
return
this->
subtract
(
isl::checked::map
(
map2
));
10592
}
10593
10594
isl::checked::union_map
map::subtract_domain
(
const
isl::checked::union_set
&dom)
const
10595
{
10596
return
isl::checked::union_map
(*this).
subtract_domain
(dom);
10597
}
10598
10599
isl::checked::union_map
map::subtract_range
(
const
isl::checked::union_set
&dom)
const
10600
{
10601
return
isl::checked::union_map
(*this).
subtract_range
(dom);
10602
}
10603
10604
isl::checked::map_list
map::to_list
()
const
10605
{
10606
auto
res
= isl_map_to_list(
copy
());
10607
return
manage
(
res
);
10608
}
10609
10610
isl::checked::union_map
map::to_union_map
()
const
10611
{
10612
auto
res
=
isl_map_to_union_map
(
copy
());
10613
return
manage
(
res
);
10614
}
10615
10616
isl::checked::map
map::uncurry
()
const
10617
{
10618
auto
res
=
isl_map_uncurry
(
copy
());
10619
return
manage
(
res
);
10620
}
10621
10622
isl::checked::map
map::unite
(
isl::checked::map
map2
)
const
10623
{
10624
auto
res
=
isl_map_union
(
copy
(),
map2
.release());
10625
return
manage
(
res
);
10626
}
10627
10628
isl::checked::union_map
map::unite
(
const
isl::checked::union_map
&umap2)
const
10629
{
10630
return
isl::checked::union_map
(*this).
unite
(umap2);
10631
}
10632
10633
isl::checked::map
map::unite
(
const
isl::checked::basic_map
&
map2
)
const
10634
{
10635
return
this->
unite
(
isl::checked::map
(
map2
));
10636
}
10637
10638
isl::checked::map
map::universe
(
isl::checked::space
space
)
10639
{
10640
auto
res
=
isl_map_universe
(
space
.release());
10641
return
manage
(
res
);
10642
}
10643
10644
isl::checked::basic_map
map::unshifted_simple_hull
()
const
10645
{
10646
auto
res
=
isl_map_unshifted_simple_hull
(
copy
());
10647
return
manage
(
res
);
10648
}
10649
10650
isl::checked::map
map::upper_bound
(
isl::checked::multi_pw_aff
upper)
const
10651
{
10652
auto
res
=
isl_map_upper_bound_multi_pw_aff
(
copy
(), upper.
release
());
10653
return
manage
(
res
);
10654
}
10655
10656
isl::checked::set
map::wrap
()
const
10657
{
10658
auto
res
=
isl_map_wrap
(
copy
());
10659
return
manage
(
res
);
10660
}
10661
10662
isl::checked::map
map::zip
()
const
10663
{
10664
auto
res
=
isl_map_zip
(
copy
());
10665
return
manage
(
res
);
10666
}
10667
10668
inline
std::ostream &
operator<<
(std::ostream &os,
const
map
&
obj
)
10669
{
10670
char
*
str
=
isl_map_to_str
(
obj
.get());
10671
if
(!
str
) {
10672
os.setstate(std::ios_base::badbit);
10673
return
os;
10674
}
10675
os <<
str
;
10676
free(
str
);
10677
return
os;
10678
}
10679
10680
// implementations for isl::map_list
10681
map_list
manage
(
__isl_take
isl_map_list *
ptr
) {
10682
return
map_list
(
ptr
);
10683
}
10684
map_list
manage_copy
(
__isl_keep
isl_map_list *
ptr
) {
10685
ptr
= isl_map_list_copy(
ptr
);
10686
return
map_list
(
ptr
);
10687
}
10688
10689
map_list::map_list
(
__isl_take
isl_map_list *
ptr
)
10690
:
ptr
(
ptr
) {}
10691
10692
map_list::map_list
()
10693
:
ptr
(nullptr) {}
10694
10695
map_list::map_list
(
const
map_list
&
obj
)
10696
:
ptr
(nullptr)
10697
{
10698
ptr
=
obj
.copy();
10699
}
10700
10701
map_list::map_list
(
isl::checked::ctx
ctx
,
int
n
)
10702
{
10703
auto
res
= isl_map_list_alloc(
ctx
.release(),
n
);
10704
ptr
=
res
;
10705
}
10706
10707
map_list::map_list
(
isl::checked::map
el)
10708
{
10709
auto
res
= isl_map_list_from_map(el.
release
());
10710
ptr
=
res
;
10711
}
10712
10713
map_list::map_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
10714
{
10715
auto
res
= isl_map_list_read_from_str(
ctx
.release(),
str
.c_str());
10716
ptr
=
res
;
10717
}
10718
10719
map_list
&
map_list::operator=
(
map_list
obj
) {
10720
std::swap(this->ptr,
obj
.ptr);
10721
return
*
this
;
10722
}
10723
10724
map_list::~map_list
() {
10725
if
(
ptr
)
10726
isl_map_list_free(
ptr
);
10727
}
10728
10729
__isl_give
isl_map_list *
map_list::copy
() const & {
10730
return
isl_map_list_copy(
ptr
);
10731
}
10732
10733
__isl_keep
isl_map_list *
map_list::get
()
const
{
10734
return
ptr
;
10735
}
10736
10737
__isl_give
isl_map_list *
map_list::release
() {
10738
isl_map_list *tmp =
ptr
;
10739
ptr
=
nullptr
;
10740
return
tmp;
10741
}
10742
10743
bool
map_list::is_null
()
const
{
10744
return
ptr
==
nullptr
;
10745
}
10746
10747
isl::checked::ctx
map_list::ctx
()
const
{
10748
return
isl::checked::ctx
(isl_map_list_get_ctx(
ptr
));
10749
}
10750
10751
isl::checked::map_list
map_list::add
(
isl::checked::map
el)
const
10752
{
10753
auto
res
= isl_map_list_add(
copy
(), el.
release
());
10754
return
manage
(
res
);
10755
}
10756
10757
isl::checked::map
map_list::at
(
int
index)
const
10758
{
10759
auto
res
= isl_map_list_get_at(
get
(), index);
10760
return
manage
(
res
);
10761
}
10762
10763
isl::checked::map
map_list::get_at
(
int
index)
const
10764
{
10765
return
at
(index);
10766
}
10767
10768
isl::checked::map_list
map_list::clear
()
const
10769
{
10770
auto
res
= isl_map_list_clear(
copy
());
10771
return
manage
(
res
);
10772
}
10773
10774
isl::checked::map_list
map_list::concat
(
isl::checked::map_list
list2)
const
10775
{
10776
auto
res
= isl_map_list_concat(
copy
(), list2.
release
());
10777
return
manage
(
res
);
10778
}
10779
10780
isl::checked::map_list
map_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
10781
{
10782
auto
res
= isl_map_list_drop(
copy
(), first,
n
);
10783
return
manage
(
res
);
10784
}
10785
10786
stat
map_list::foreach
(
const
std::function<
stat
(
isl::checked::map
)> &
fn
)
const
10787
{
10788
struct
fn_data {
10789
std::function<
stat
(
isl::checked::map
)> func;
10790
} fn_data = {
fn
};
10791
auto
fn_lambda = [](
isl_map
*arg_0,
void
*arg_1) ->
isl_stat
{
10792
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
10793
auto
ret = (data->func)(
manage
(arg_0));
10794
return
ret.release();
10795
};
10796
auto
res
= isl_map_list_foreach(
get
(), fn_lambda, &fn_data);
10797
return
manage
(
res
);
10798
}
10799
10800
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
10801
{
10802
struct
follows_data {
10803
std::function<
boolean
(
isl::checked::map
,
isl::checked::map
)> func;
10804
} follows_data = { follows };
10805
auto
follows_lambda = [](
isl_map
*arg_0,
isl_map
*arg_1,
void
*arg_2) ->
isl_bool
{
10806
auto
*data =
static_cast<
struct follows_data *
>
(arg_2);
10807
auto
ret = (data->func)(
manage_copy
(arg_0),
manage_copy
(arg_1));
10808
return
ret.release();
10809
};
10810
struct
fn_data {
10811
std::function<
stat
(
isl::checked::map_list
)> func;
10812
} fn_data = {
fn
};
10813
auto
fn_lambda = [](isl_map_list *arg_0,
void
*arg_1) ->
isl_stat
{
10814
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
10815
auto
ret = (data->func)(
manage
(arg_0));
10816
return
ret.release();
10817
};
10818
auto
res
= isl_map_list_foreach_scc(
get
(), follows_lambda, &follows_data, fn_lambda, &fn_data);
10819
return
manage
(
res
);
10820
}
10821
10822
isl::checked::map_list
map_list::insert
(
unsigned
int
pos
,
isl::checked::map
el)
const
10823
{
10824
auto
res
= isl_map_list_insert(
copy
(),
pos
, el.
release
());
10825
return
manage
(
res
);
10826
}
10827
10828
isl::checked::map_list
map_list::set_at
(
int
index,
isl::checked::map
el)
const
10829
{
10830
auto
res
= isl_map_list_set_at(
copy
(), index, el.
release
());
10831
return
manage
(
res
);
10832
}
10833
10834
class
size
map_list
::
size
() const
10835
{
10836
auto
res
= isl_map_list_size(
get
());
10837
return
manage
(
res
);
10838
}
10839
10840
inline
std::ostream &
operator<<
(std::ostream &os,
const
map_list
&
obj
)
10841
{
10842
char
*
str
= isl_map_list_to_str(
obj
.get());
10843
if
(!
str
) {
10844
os.setstate(std::ios_base::badbit);
10845
return
os;
10846
}
10847
os <<
str
;
10848
free(
str
);
10849
return
os;
10850
}
10851
10852
// implementations for isl::multi_aff
10853
multi_aff
manage
(
__isl_take
isl_multi_aff
*
ptr
) {
10854
return
multi_aff
(
ptr
);
10855
}
10856
multi_aff
manage_copy
(
__isl_keep
isl_multi_aff
*
ptr
) {
10857
ptr
= isl_multi_aff_copy(
ptr
);
10858
return
multi_aff
(
ptr
);
10859
}
10860
10861
multi_aff::multi_aff
(
__isl_take
isl_multi_aff
*
ptr
)
10862
:
ptr
(
ptr
) {}
10863
10864
multi_aff::multi_aff
()
10865
:
ptr
(nullptr) {}
10866
10867
multi_aff::multi_aff
(
const
multi_aff
&
obj
)
10868
:
ptr
(nullptr)
10869
{
10870
ptr
=
obj
.copy();
10871
}
10872
10873
multi_aff::multi_aff
(
isl::checked::aff
aff
)
10874
{
10875
auto
res
=
isl_multi_aff_from_aff
(
aff
.
release
());
10876
ptr
=
res
;
10877
}
10878
10879
multi_aff::multi_aff
(
isl::checked::space
space
,
isl::checked::aff_list
list
)
10880
{
10881
auto
res
= isl_multi_aff_from_aff_list(
space
.release(),
list
.release());
10882
ptr
=
res
;
10883
}
10884
10885
multi_aff::multi_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
10886
{
10887
auto
res
=
isl_multi_aff_read_from_str
(
ctx
.release(),
str
.c_str());
10888
ptr
=
res
;
10889
}
10890
10891
multi_aff
&
multi_aff::operator=
(
multi_aff
obj
) {
10892
std::swap(this->ptr,
obj
.ptr);
10893
return
*
this
;
10894
}
10895
10896
multi_aff::~multi_aff
() {
10897
if
(
ptr
)
10898
isl_multi_aff_free(
ptr
);
10899
}
10900
10901
__isl_give
isl_multi_aff
*
multi_aff::copy
() const & {
10902
return
isl_multi_aff_copy(
ptr
);
10903
}
10904
10905
__isl_keep
isl_multi_aff
*
multi_aff::get
()
const
{
10906
return
ptr
;
10907
}
10908
10909
__isl_give
isl_multi_aff
*
multi_aff::release
() {
10910
isl_multi_aff
*tmp =
ptr
;
10911
ptr
=
nullptr
;
10912
return
tmp;
10913
}
10914
10915
bool
multi_aff::is_null
()
const
{
10916
return
ptr
==
nullptr
;
10917
}
10918
10919
isl::checked::ctx
multi_aff::ctx
()
const
{
10920
return
isl::checked::ctx
(isl_multi_aff_get_ctx(
ptr
));
10921
}
10922
10923
isl::checked::multi_aff
multi_aff::add
(
isl::checked::multi_aff
multi2)
const
10924
{
10925
auto
res
= isl_multi_aff_add(
copy
(), multi2.
release
());
10926
return
manage
(
res
);
10927
}
10928
10929
isl::checked::multi_pw_aff
multi_aff::add
(
const
isl::checked::multi_pw_aff
&multi2)
const
10930
{
10931
return
isl::checked::pw_multi_aff
(*this).
add
(multi2);
10932
}
10933
10934
isl::checked::multi_union_pw_aff
multi_aff::add
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
10935
{
10936
return
isl::checked::pw_multi_aff
(*this).
add
(multi2);
10937
}
10938
10939
isl::checked::pw_multi_aff
multi_aff::add
(
const
isl::checked::pw_multi_aff
&pma2)
const
10940
{
10941
return
isl::checked::pw_multi_aff
(*this).
add
(pma2);
10942
}
10943
10944
isl::checked::union_pw_multi_aff
multi_aff::add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
10945
{
10946
return
isl::checked::pw_multi_aff
(*this).
add
(upma2);
10947
}
10948
10949
isl::checked::multi_aff
multi_aff::add
(
const
isl::checked::aff
&multi2)
const
10950
{
10951
return
this->
add
(
isl::checked::multi_aff
(multi2));
10952
}
10953
10954
isl::checked::multi_aff
multi_aff::add_constant
(
isl::checked::multi_val
mv)
const
10955
{
10956
auto
res
= isl_multi_aff_add_constant_multi_val(
copy
(), mv.
release
());
10957
return
manage
(
res
);
10958
}
10959
10960
isl::checked::multi_aff
multi_aff::add_constant
(
isl::checked::val
v)
const
10961
{
10962
auto
res
= isl_multi_aff_add_constant_val(
copy
(), v.
release
());
10963
return
manage
(
res
);
10964
}
10965
10966
isl::checked::multi_aff
multi_aff::add_constant
(
long
v)
const
10967
{
10968
return
this->
add_constant
(
isl::checked::val
(
ctx
(), v));
10969
}
10970
10971
isl::checked::union_pw_multi_aff
multi_aff::apply
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
10972
{
10973
return
isl::checked::pw_multi_aff
(*this).
apply
(upma2);
10974
}
10975
10976
isl::checked::map
multi_aff::as_map
()
const
10977
{
10978
auto
res
=
isl_multi_aff_as_map
(
copy
());
10979
return
manage
(
res
);
10980
}
10981
10982
isl::checked::multi_aff
multi_aff::as_multi_aff
()
const
10983
{
10984
return
isl::checked::pw_multi_aff
(*this).
as_multi_aff
();
10985
}
10986
10987
isl::checked::multi_union_pw_aff
multi_aff::as_multi_union_pw_aff
()
const
10988
{
10989
return
isl::checked::pw_multi_aff
(*this).
as_multi_union_pw_aff
();
10990
}
10991
10992
isl::checked::pw_multi_aff
multi_aff::as_pw_multi_aff
()
const
10993
{
10994
return
isl::checked::pw_multi_aff
(*this).
as_pw_multi_aff
();
10995
}
10996
10997
isl::checked::set
multi_aff::as_set
()
const
10998
{
10999
auto
res
=
isl_multi_aff_as_set
(
copy
());
11000
return
manage
(
res
);
11001
}
11002
11003
isl::checked::union_map
multi_aff::as_union_map
()
const
11004
{
11005
return
isl::checked::pw_multi_aff
(*this).
as_union_map
();
11006
}
11007
11008
isl::checked::aff
multi_aff::at
(
int
pos
)
const
11009
{
11010
auto
res
= isl_multi_aff_get_at(
get
(),
pos
);
11011
return
manage
(
res
);
11012
}
11013
11014
isl::checked::aff
multi_aff::get_at
(
int
pos
)
const
11015
{
11016
return
at
(
pos
);
11017
}
11018
11019
isl::checked::basic_set
multi_aff::bind
(
isl::checked::multi_id
tuple
)
const
11020
{
11021
auto
res
=
isl_multi_aff_bind
(
copy
(),
tuple
.release());
11022
return
manage
(
res
);
11023
}
11024
11025
isl::checked::multi_aff
multi_aff::bind_domain
(
isl::checked::multi_id
tuple
)
const
11026
{
11027
auto
res
= isl_multi_aff_bind_domain(
copy
(),
tuple
.release());
11028
return
manage
(
res
);
11029
}
11030
11031
isl::checked::multi_aff
multi_aff::bind_domain_wrapped_domain
(
isl::checked::multi_id
tuple
)
const
11032
{
11033
auto
res
= isl_multi_aff_bind_domain_wrapped_domain(
copy
(),
tuple
.release());
11034
return
manage
(
res
);
11035
}
11036
11037
isl::checked::pw_multi_aff
multi_aff::coalesce
()
const
11038
{
11039
return
isl::checked::pw_multi_aff
(*this).
coalesce
();
11040
}
11041
11042
isl::checked::multi_val
multi_aff::constant_multi_val
()
const
11043
{
11044
auto
res
=
isl_multi_aff_get_constant_multi_val
(
get
());
11045
return
manage
(
res
);
11046
}
11047
11048
isl::checked::multi_val
multi_aff::get_constant_multi_val
()
const
11049
{
11050
return
constant_multi_val
();
11051
}
11052
11053
isl::checked::set
multi_aff::domain
()
const
11054
{
11055
return
isl::checked::pw_multi_aff
(*this).
domain
();
11056
}
11057
11058
isl::checked::multi_aff
multi_aff::domain_map
(
isl::checked::space
space
)
11059
{
11060
auto
res
=
isl_multi_aff_domain_map
(
space
.release());
11061
return
manage
(
res
);
11062
}
11063
11064
isl::checked::multi_aff
multi_aff::domain_reverse
()
const
11065
{
11066
auto
res
= isl_multi_aff_domain_reverse(
copy
());
11067
return
manage
(
res
);
11068
}
11069
11070
isl::checked::pw_multi_aff
multi_aff::drop_unused_params
()
const
11071
{
11072
return
isl::checked::pw_multi_aff
(*this).
drop_unused_params
();
11073
}
11074
11075
isl::checked::pw_multi_aff
multi_aff::extract_pw_multi_aff
(
const
isl::checked::space
&
space
)
const
11076
{
11077
return
isl::checked::pw_multi_aff
(*this).
extract_pw_multi_aff
(
space
);
11078
}
11079
11080
isl::checked::multi_aff
multi_aff::flat_range_product
(
isl::checked::multi_aff
multi2)
const
11081
{
11082
auto
res
= isl_multi_aff_flat_range_product(
copy
(), multi2.
release
());
11083
return
manage
(
res
);
11084
}
11085
11086
isl::checked::multi_pw_aff
multi_aff::flat_range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
11087
{
11088
return
isl::checked::pw_multi_aff
(*this).
flat_range_product
(multi2);
11089
}
11090
11091
isl::checked::multi_union_pw_aff
multi_aff::flat_range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
11092
{
11093
return
isl::checked::pw_multi_aff
(*this).
flat_range_product
(multi2);
11094
}
11095
11096
isl::checked::pw_multi_aff
multi_aff::flat_range_product
(
const
isl::checked::pw_multi_aff
&pma2)
const
11097
{
11098
return
isl::checked::pw_multi_aff
(*this).
flat_range_product
(pma2);
11099
}
11100
11101
isl::checked::union_pw_multi_aff
multi_aff::flat_range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11102
{
11103
return
isl::checked::pw_multi_aff
(*this).
flat_range_product
(upma2);
11104
}
11105
11106
isl::checked::multi_aff
multi_aff::flat_range_product
(
const
isl::checked::aff
&multi2)
const
11107
{
11108
return
this->
flat_range_product
(
isl::checked::multi_aff
(multi2));
11109
}
11110
11111
isl::checked::multi_aff
multi_aff::floor
()
const
11112
{
11113
auto
res
=
isl_multi_aff_floor
(
copy
());
11114
return
manage
(
res
);
11115
}
11116
11117
stat
multi_aff::foreach_piece
(
const
std::function<
stat
(
isl::checked::set
,
isl::checked::multi_aff
)> &
fn
)
const
11118
{
11119
return
isl::checked::pw_multi_aff
(*this).
foreach_piece
(
fn
);
11120
}
11121
11122
isl::checked::multi_aff
multi_aff::gist
(
isl::checked::set
context
)
const
11123
{
11124
auto
res
=
isl_multi_aff_gist
(
copy
(),
context
.release());
11125
return
manage
(
res
);
11126
}
11127
11128
isl::checked::union_pw_multi_aff
multi_aff::gist
(
const
isl::checked::union_set
&
context
)
const
11129
{
11130
return
isl::checked::pw_multi_aff
(*this).
gist
(
context
);
11131
}
11132
11133
isl::checked::multi_aff
multi_aff::gist
(
const
isl::checked::basic_set
&
context
)
const
11134
{
11135
return
this->
gist
(
isl::checked::set
(
context
));
11136
}
11137
11138
isl::checked::multi_aff
multi_aff::gist
(
const
isl::checked::point
&
context
)
const
11139
{
11140
return
this->
gist
(
isl::checked::set
(
context
));
11141
}
11142
11143
isl::checked::multi_aff
multi_aff::gist_params
(
isl::checked::set
context
)
const
11144
{
11145
auto
res
=
isl_multi_aff_gist_params
(
copy
(),
context
.release());
11146
return
manage
(
res
);
11147
}
11148
11149
boolean
multi_aff::has_range_tuple_id
()
const
11150
{
11151
auto
res
= isl_multi_aff_has_range_tuple_id(
get
());
11152
return
manage
(
res
);
11153
}
11154
11155
isl::checked::multi_aff
multi_aff::identity
()
const
11156
{
11157
auto
res
= isl_multi_aff_identity_multi_aff(
copy
());
11158
return
manage
(
res
);
11159
}
11160
11161
isl::checked::multi_aff
multi_aff::identity_on_domain
(
isl::checked::space
space
)
11162
{
11163
auto
res
= isl_multi_aff_identity_on_domain_space(
space
.release());
11164
return
manage
(
res
);
11165
}
11166
11167
isl::checked::multi_aff
multi_aff::insert_domain
(
isl::checked::space
domain
)
const
11168
{
11169
auto
res
= isl_multi_aff_insert_domain(
copy
(),
domain
.release());
11170
return
manage
(
res
);
11171
}
11172
11173
isl::checked::pw_multi_aff
multi_aff::intersect_domain
(
const
isl::checked::set
&
set
)
const
11174
{
11175
return
isl::checked::pw_multi_aff
(*this).
intersect_domain
(
set
);
11176
}
11177
11178
isl::checked::union_pw_multi_aff
multi_aff::intersect_domain
(
const
isl::checked::space
&
space
)
const
11179
{
11180
return
isl::checked::pw_multi_aff
(*this).
intersect_domain
(
space
);
11181
}
11182
11183
isl::checked::union_pw_multi_aff
multi_aff::intersect_domain
(
const
isl::checked::union_set
&uset)
const
11184
{
11185
return
isl::checked::pw_multi_aff
(*this).
intersect_domain
(uset);
11186
}
11187
11188
isl::checked::union_pw_multi_aff
multi_aff::intersect_domain_wrapped_domain
(
const
isl::checked::union_set
&uset)
const
11189
{
11190
return
isl::checked::pw_multi_aff
(*this).
intersect_domain_wrapped_domain
(uset);
11191
}
11192
11193
isl::checked::union_pw_multi_aff
multi_aff::intersect_domain_wrapped_range
(
const
isl::checked::union_set
&uset)
const
11194
{
11195
return
isl::checked::pw_multi_aff
(*this).
intersect_domain_wrapped_range
(uset);
11196
}
11197
11198
isl::checked::pw_multi_aff
multi_aff::intersect_params
(
const
isl::checked::set
&
set
)
const
11199
{
11200
return
isl::checked::pw_multi_aff
(*this).
intersect_params
(
set
);
11201
}
11202
11203
boolean
multi_aff::involves_locals
()
const
11204
{
11205
auto
res
= isl_multi_aff_involves_locals(
get
());
11206
return
manage
(
res
);
11207
}
11208
11209
boolean
multi_aff::involves_nan
()
const
11210
{
11211
auto
res
= isl_multi_aff_involves_nan(
get
());
11212
return
manage
(
res
);
11213
}
11214
11215
boolean
multi_aff::involves_param
(
const
isl::checked::id
&
id
)
const
11216
{
11217
return
isl::checked::pw_multi_aff
(*this).
involves_param
(
id
);
11218
}
11219
11220
boolean
multi_aff::involves_param
(
const
std::string &
id
)
const
11221
{
11222
return
this->
involves_param
(
isl::checked::id
(
ctx
(),
id
));
11223
}
11224
11225
boolean
multi_aff::involves_param
(
const
isl::checked::id_list
&
list
)
const
11226
{
11227
return
isl::checked::pw_multi_aff
(*this).
involves_param
(
list
);
11228
}
11229
11230
boolean
multi_aff::isa_multi_aff
()
const
11231
{
11232
return
isl::checked::pw_multi_aff
(*this).
isa_multi_aff
();
11233
}
11234
11235
boolean
multi_aff::isa_pw_multi_aff
()
const
11236
{
11237
return
isl::checked::pw_multi_aff
(*this).
isa_pw_multi_aff
();
11238
}
11239
11240
isl::checked::aff_list
multi_aff::list
()
const
11241
{
11242
auto
res
= isl_multi_aff_get_list(
get
());
11243
return
manage
(
res
);
11244
}
11245
11246
isl::checked::aff_list
multi_aff::get_list
()
const
11247
{
11248
return
list
();
11249
}
11250
11251
isl::checked::multi_pw_aff
multi_aff::max
(
const
isl::checked::multi_pw_aff
&multi2)
const
11252
{
11253
return
isl::checked::pw_multi_aff
(*this).
max
(multi2);
11254
}
11255
11256
isl::checked::multi_val
multi_aff::max_multi_val
()
const
11257
{
11258
return
isl::checked::pw_multi_aff
(*this).
max_multi_val
();
11259
}
11260
11261
isl::checked::multi_pw_aff
multi_aff::min
(
const
isl::checked::multi_pw_aff
&multi2)
const
11262
{
11263
return
isl::checked::pw_multi_aff
(*this).
min
(multi2);
11264
}
11265
11266
isl::checked::multi_val
multi_aff::min_multi_val
()
const
11267
{
11268
return
isl::checked::pw_multi_aff
(*this).
min_multi_val
();
11269
}
11270
11271
isl::checked::multi_aff
multi_aff::multi_val_on_domain
(
isl::checked::space
space
,
isl::checked::multi_val
mv)
11272
{
11273
auto
res
=
isl_multi_aff_multi_val_on_domain_space
(
space
.release(), mv.
release
());
11274
return
manage
(
res
);
11275
}
11276
11277
class
size
multi_aff
::
n_piece
() const
11278
{
11279
return
isl::checked::pw_multi_aff
(*this).
n_piece
();
11280
}
11281
11282
isl::checked::multi_aff
multi_aff::neg
()
const
11283
{
11284
auto
res
= isl_multi_aff_neg(
copy
());
11285
return
manage
(
res
);
11286
}
11287
11288
boolean
multi_aff::plain_is_empty
()
const
11289
{
11290
return
isl::checked::pw_multi_aff
(*this).
plain_is_empty
();
11291
}
11292
11293
boolean
multi_aff::plain_is_equal
(
const
isl::checked::multi_aff
&multi2)
const
11294
{
11295
auto
res
= isl_multi_aff_plain_is_equal(
get
(), multi2.
get
());
11296
return
manage
(
res
);
11297
}
11298
11299
boolean
multi_aff::plain_is_equal
(
const
isl::checked::multi_pw_aff
&multi2)
const
11300
{
11301
return
isl::checked::pw_multi_aff
(*this).
plain_is_equal
(multi2);
11302
}
11303
11304
boolean
multi_aff::plain_is_equal
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
11305
{
11306
return
isl::checked::pw_multi_aff
(*this).
plain_is_equal
(multi2);
11307
}
11308
11309
boolean
multi_aff::plain_is_equal
(
const
isl::checked::pw_multi_aff
&pma2)
const
11310
{
11311
return
isl::checked::pw_multi_aff
(*this).
plain_is_equal
(pma2);
11312
}
11313
11314
boolean
multi_aff::plain_is_equal
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11315
{
11316
return
isl::checked::pw_multi_aff
(*this).
plain_is_equal
(upma2);
11317
}
11318
11319
boolean
multi_aff::plain_is_equal
(
const
isl::checked::aff
&multi2)
const
11320
{
11321
return
this->
plain_is_equal
(
isl::checked::multi_aff
(multi2));
11322
}
11323
11324
isl::checked::pw_multi_aff
multi_aff::preimage_domain_wrapped_domain
(
const
isl::checked::pw_multi_aff
&pma2)
const
11325
{
11326
return
isl::checked::pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(pma2);
11327
}
11328
11329
isl::checked::union_pw_multi_aff
multi_aff::preimage_domain_wrapped_domain
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11330
{
11331
return
isl::checked::pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
11332
}
11333
11334
isl::checked::multi_aff
multi_aff::product
(
isl::checked::multi_aff
multi2)
const
11335
{
11336
auto
res
= isl_multi_aff_product(
copy
(), multi2.
release
());
11337
return
manage
(
res
);
11338
}
11339
11340
isl::checked::multi_pw_aff
multi_aff::product
(
const
isl::checked::multi_pw_aff
&multi2)
const
11341
{
11342
return
isl::checked::pw_multi_aff
(*this).
product
(multi2);
11343
}
11344
11345
isl::checked::pw_multi_aff
multi_aff::product
(
const
isl::checked::pw_multi_aff
&pma2)
const
11346
{
11347
return
isl::checked::pw_multi_aff
(*this).
product
(pma2);
11348
}
11349
11350
isl::checked::multi_aff
multi_aff::product
(
const
isl::checked::aff
&multi2)
const
11351
{
11352
return
this->
product
(
isl::checked::multi_aff
(multi2));
11353
}
11354
11355
isl::checked::multi_aff
multi_aff::pullback
(
isl::checked::multi_aff
ma2)
const
11356
{
11357
auto
res
=
isl_multi_aff_pullback_multi_aff
(
copy
(), ma2.
release
());
11358
return
manage
(
res
);
11359
}
11360
11361
isl::checked::multi_pw_aff
multi_aff::pullback
(
const
isl::checked::multi_pw_aff
&mpa2)
const
11362
{
11363
return
isl::checked::pw_multi_aff
(*this).
pullback
(mpa2);
11364
}
11365
11366
isl::checked::pw_multi_aff
multi_aff::pullback
(
const
isl::checked::pw_multi_aff
&pma2)
const
11367
{
11368
return
isl::checked::pw_multi_aff
(*this).
pullback
(pma2);
11369
}
11370
11371
isl::checked::union_pw_multi_aff
multi_aff::pullback
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11372
{
11373
return
isl::checked::pw_multi_aff
(*this).
pullback
(upma2);
11374
}
11375
11376
isl::checked::multi_aff
multi_aff::pullback
(
const
isl::checked::aff
&ma2)
const
11377
{
11378
return
this->
pullback
(
isl::checked::multi_aff
(ma2));
11379
}
11380
11381
isl::checked::pw_multi_aff_list
multi_aff::pw_multi_aff_list
()
const
11382
{
11383
return
isl::checked::pw_multi_aff
(*this).
pw_multi_aff_list
();
11384
}
11385
11386
isl::checked::pw_multi_aff
multi_aff::range_factor_domain
()
const
11387
{
11388
return
isl::checked::pw_multi_aff
(*this).
range_factor_domain
();
11389
}
11390
11391
isl::checked::pw_multi_aff
multi_aff::range_factor_range
()
const
11392
{
11393
return
isl::checked::pw_multi_aff
(*this).
range_factor_range
();
11394
}
11395
11396
isl::checked::multi_aff
multi_aff::range_map
(
isl::checked::space
space
)
11397
{
11398
auto
res
=
isl_multi_aff_range_map
(
space
.release());
11399
return
manage
(
res
);
11400
}
11401
11402
isl::checked::multi_aff
multi_aff::range_product
(
isl::checked::multi_aff
multi2)
const
11403
{
11404
auto
res
= isl_multi_aff_range_product(
copy
(), multi2.
release
());
11405
return
manage
(
res
);
11406
}
11407
11408
isl::checked::multi_pw_aff
multi_aff::range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
11409
{
11410
return
isl::checked::pw_multi_aff
(*this).
range_product
(multi2);
11411
}
11412
11413
isl::checked::multi_union_pw_aff
multi_aff::range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
11414
{
11415
return
isl::checked::pw_multi_aff
(*this).
range_product
(multi2);
11416
}
11417
11418
isl::checked::pw_multi_aff
multi_aff::range_product
(
const
isl::checked::pw_multi_aff
&pma2)
const
11419
{
11420
return
isl::checked::pw_multi_aff
(*this).
range_product
(pma2);
11421
}
11422
11423
isl::checked::union_pw_multi_aff
multi_aff::range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11424
{
11425
return
isl::checked::pw_multi_aff
(*this).
range_product
(upma2);
11426
}
11427
11428
isl::checked::multi_aff
multi_aff::range_product
(
const
isl::checked::aff
&multi2)
const
11429
{
11430
return
this->
range_product
(
isl::checked::multi_aff
(multi2));
11431
}
11432
11433
isl::checked::id
multi_aff::range_tuple_id
()
const
11434
{
11435
auto
res
= isl_multi_aff_get_range_tuple_id(
get
());
11436
return
manage
(
res
);
11437
}
11438
11439
isl::checked::id
multi_aff::get_range_tuple_id
()
const
11440
{
11441
return
range_tuple_id
();
11442
}
11443
11444
isl::checked::multi_aff
multi_aff::reset_range_tuple_id
()
const
11445
{
11446
auto
res
= isl_multi_aff_reset_range_tuple_id(
copy
());
11447
return
manage
(
res
);
11448
}
11449
11450
isl::checked::multi_aff
multi_aff::scale
(
isl::checked::multi_val
mv)
const
11451
{
11452
auto
res
= isl_multi_aff_scale_multi_val(
copy
(), mv.
release
());
11453
return
manage
(
res
);
11454
}
11455
11456
isl::checked::multi_aff
multi_aff::scale
(
isl::checked::val
v)
const
11457
{
11458
auto
res
= isl_multi_aff_scale_val(
copy
(), v.
release
());
11459
return
manage
(
res
);
11460
}
11461
11462
isl::checked::multi_aff
multi_aff::scale
(
long
v)
const
11463
{
11464
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
11465
}
11466
11467
isl::checked::multi_aff
multi_aff::scale_down
(
isl::checked::multi_val
mv)
const
11468
{
11469
auto
res
= isl_multi_aff_scale_down_multi_val(
copy
(), mv.
release
());
11470
return
manage
(
res
);
11471
}
11472
11473
isl::checked::multi_aff
multi_aff::scale_down
(
isl::checked::val
v)
const
11474
{
11475
auto
res
= isl_multi_aff_scale_down_val(
copy
(), v.
release
());
11476
return
manage
(
res
);
11477
}
11478
11479
isl::checked::multi_aff
multi_aff::scale_down
(
long
v)
const
11480
{
11481
return
this->
scale_down
(
isl::checked::val
(
ctx
(), v));
11482
}
11483
11484
isl::checked::multi_aff
multi_aff::set_at
(
int
pos
,
isl::checked::aff
el)
const
11485
{
11486
auto
res
= isl_multi_aff_set_at(
copy
(),
pos
, el.
release
());
11487
return
manage
(
res
);
11488
}
11489
11490
isl::checked::multi_pw_aff
multi_aff::set_at
(
int
pos
,
const
isl::checked::pw_aff
&el)
const
11491
{
11492
return
isl::checked::pw_multi_aff
(*this).
set_at
(
pos
, el);
11493
}
11494
11495
isl::checked::multi_union_pw_aff
multi_aff::set_at
(
int
pos
,
const
isl::checked::union_pw_aff
&el)
const
11496
{
11497
return
isl::checked::pw_multi_aff
(*this).
set_at
(
pos
, el);
11498
}
11499
11500
isl::checked::multi_aff
multi_aff::set_range_tuple
(
isl::checked::id
id
)
const
11501
{
11502
auto
res
= isl_multi_aff_set_range_tuple_id(
copy
(),
id
.
release
());
11503
return
manage
(
res
);
11504
}
11505
11506
isl::checked::multi_aff
multi_aff::set_range_tuple
(
const
std::string &
id
)
const
11507
{
11508
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
11509
}
11510
11511
class
size
multi_aff
::
size
() const
11512
{
11513
auto
res
= isl_multi_aff_size(
get
());
11514
return
manage
(
res
);
11515
}
11516
11517
isl::checked::space
multi_aff::space
()
const
11518
{
11519
auto
res
= isl_multi_aff_get_space(
get
());
11520
return
manage
(
res
);
11521
}
11522
11523
isl::checked::space
multi_aff::get_space
()
const
11524
{
11525
return
space
();
11526
}
11527
11528
isl::checked::multi_aff
multi_aff::sub
(
isl::checked::multi_aff
multi2)
const
11529
{
11530
auto
res
= isl_multi_aff_sub(
copy
(), multi2.
release
());
11531
return
manage
(
res
);
11532
}
11533
11534
isl::checked::multi_pw_aff
multi_aff::sub
(
const
isl::checked::multi_pw_aff
&multi2)
const
11535
{
11536
return
isl::checked::pw_multi_aff
(*this).
sub
(multi2);
11537
}
11538
11539
isl::checked::multi_union_pw_aff
multi_aff::sub
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
11540
{
11541
return
isl::checked::pw_multi_aff
(*this).
sub
(multi2);
11542
}
11543
11544
isl::checked::pw_multi_aff
multi_aff::sub
(
const
isl::checked::pw_multi_aff
&pma2)
const
11545
{
11546
return
isl::checked::pw_multi_aff
(*this).
sub
(pma2);
11547
}
11548
11549
isl::checked::union_pw_multi_aff
multi_aff::sub
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11550
{
11551
return
isl::checked::pw_multi_aff
(*this).
sub
(upma2);
11552
}
11553
11554
isl::checked::multi_aff
multi_aff::sub
(
const
isl::checked::aff
&multi2)
const
11555
{
11556
return
this->
sub
(
isl::checked::multi_aff
(multi2));
11557
}
11558
11559
isl::checked::pw_multi_aff
multi_aff::subtract_domain
(
const
isl::checked::set
&
set
)
const
11560
{
11561
return
isl::checked::pw_multi_aff
(*this).
subtract_domain
(
set
);
11562
}
11563
11564
isl::checked::union_pw_multi_aff
multi_aff::subtract_domain
(
const
isl::checked::space
&
space
)
const
11565
{
11566
return
isl::checked::pw_multi_aff
(*this).
subtract_domain
(
space
);
11567
}
11568
11569
isl::checked::union_pw_multi_aff
multi_aff::subtract_domain
(
const
isl::checked::union_set
&uset)
const
11570
{
11571
return
isl::checked::pw_multi_aff
(*this).
subtract_domain
(uset);
11572
}
11573
11574
isl::checked::pw_multi_aff_list
multi_aff::to_list
()
const
11575
{
11576
return
isl::checked::pw_multi_aff
(*this).
to_list
();
11577
}
11578
11579
isl::checked::multi_pw_aff
multi_aff::to_multi_pw_aff
()
const
11580
{
11581
auto
res
=
isl_multi_aff_to_multi_pw_aff
(
copy
());
11582
return
manage
(
res
);
11583
}
11584
11585
isl::checked::multi_union_pw_aff
multi_aff::to_multi_union_pw_aff
()
const
11586
{
11587
auto
res
=
isl_multi_aff_to_multi_union_pw_aff
(
copy
());
11588
return
manage
(
res
);
11589
}
11590
11591
isl::checked::pw_multi_aff
multi_aff::to_pw_multi_aff
()
const
11592
{
11593
auto
res
=
isl_multi_aff_to_pw_multi_aff
(
copy
());
11594
return
manage
(
res
);
11595
}
11596
11597
isl::checked::union_pw_multi_aff
multi_aff::to_union_pw_multi_aff
()
const
11598
{
11599
return
isl::checked::pw_multi_aff
(*this).
to_union_pw_multi_aff
();
11600
}
11601
11602
isl::checked::multi_aff
multi_aff::unbind_params_insert_domain
(
isl::checked::multi_id
domain
)
const
11603
{
11604
auto
res
= isl_multi_aff_unbind_params_insert_domain(
copy
(),
domain
.release());
11605
return
manage
(
res
);
11606
}
11607
11608
isl::checked::multi_pw_aff
multi_aff::union_add
(
const
isl::checked::multi_pw_aff
&mpa2)
const
11609
{
11610
return
isl::checked::pw_multi_aff
(*this).
union_add
(mpa2);
11611
}
11612
11613
isl::checked::multi_union_pw_aff
multi_aff::union_add
(
const
isl::checked::multi_union_pw_aff
&mupa2)
const
11614
{
11615
return
isl::checked::pw_multi_aff
(*this).
union_add
(mupa2);
11616
}
11617
11618
isl::checked::pw_multi_aff
multi_aff::union_add
(
const
isl::checked::pw_multi_aff
&pma2)
const
11619
{
11620
return
isl::checked::pw_multi_aff
(*this).
union_add
(pma2);
11621
}
11622
11623
isl::checked::union_pw_multi_aff
multi_aff::union_add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
11624
{
11625
return
isl::checked::pw_multi_aff
(*this).
union_add
(upma2);
11626
}
11627
11628
isl::checked::multi_aff
multi_aff::zero
(
isl::checked::space
space
)
11629
{
11630
auto
res
= isl_multi_aff_zero(
space
.release());
11631
return
manage
(
res
);
11632
}
11633
11634
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_aff
&
obj
)
11635
{
11636
char
*
str
=
isl_multi_aff_to_str
(
obj
.get());
11637
if
(!
str
) {
11638
os.setstate(std::ios_base::badbit);
11639
return
os;
11640
}
11641
os <<
str
;
11642
free(
str
);
11643
return
os;
11644
}
11645
11646
// implementations for isl::multi_id
11647
multi_id
manage
(
__isl_take
isl_multi_id
*
ptr
) {
11648
return
multi_id
(
ptr
);
11649
}
11650
multi_id
manage_copy
(
__isl_keep
isl_multi_id
*
ptr
) {
11651
ptr
= isl_multi_id_copy(
ptr
);
11652
return
multi_id
(
ptr
);
11653
}
11654
11655
multi_id::multi_id
(
__isl_take
isl_multi_id
*
ptr
)
11656
:
ptr
(
ptr
) {}
11657
11658
multi_id::multi_id
()
11659
:
ptr
(nullptr) {}
11660
11661
multi_id::multi_id
(
const
multi_id
&
obj
)
11662
:
ptr
(nullptr)
11663
{
11664
ptr
=
obj
.copy();
11665
}
11666
11667
multi_id::multi_id
(
isl::checked::space
space
,
isl::checked::id_list
list
)
11668
{
11669
auto
res
= isl_multi_id_from_id_list(
space
.release(),
list
.release());
11670
ptr
=
res
;
11671
}
11672
11673
multi_id::multi_id
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
11674
{
11675
auto
res
=
isl_multi_id_read_from_str
(
ctx
.release(),
str
.c_str());
11676
ptr
=
res
;
11677
}
11678
11679
multi_id
&
multi_id::operator=
(
multi_id
obj
) {
11680
std::swap(this->ptr,
obj
.ptr);
11681
return
*
this
;
11682
}
11683
11684
multi_id::~multi_id
() {
11685
if
(
ptr
)
11686
isl_multi_id_free(
ptr
);
11687
}
11688
11689
__isl_give
isl_multi_id
*
multi_id::copy
() const & {
11690
return
isl_multi_id_copy(
ptr
);
11691
}
11692
11693
__isl_keep
isl_multi_id
*
multi_id::get
()
const
{
11694
return
ptr
;
11695
}
11696
11697
__isl_give
isl_multi_id
*
multi_id::release
() {
11698
isl_multi_id
*tmp =
ptr
;
11699
ptr
=
nullptr
;
11700
return
tmp;
11701
}
11702
11703
bool
multi_id::is_null
()
const
{
11704
return
ptr
==
nullptr
;
11705
}
11706
11707
isl::checked::ctx
multi_id::ctx
()
const
{
11708
return
isl::checked::ctx
(isl_multi_id_get_ctx(
ptr
));
11709
}
11710
11711
isl::checked::id
multi_id::at
(
int
pos
)
const
11712
{
11713
auto
res
= isl_multi_id_get_at(
get
(),
pos
);
11714
return
manage
(
res
);
11715
}
11716
11717
isl::checked::id
multi_id::get_at
(
int
pos
)
const
11718
{
11719
return
at
(
pos
);
11720
}
11721
11722
isl::checked::multi_id
multi_id::flat_range_product
(
isl::checked::multi_id
multi2)
const
11723
{
11724
auto
res
= isl_multi_id_flat_range_product(
copy
(), multi2.
release
());
11725
return
manage
(
res
);
11726
}
11727
11728
isl::checked::id_list
multi_id::list
()
const
11729
{
11730
auto
res
= isl_multi_id_get_list(
get
());
11731
return
manage
(
res
);
11732
}
11733
11734
isl::checked::id_list
multi_id::get_list
()
const
11735
{
11736
return
list
();
11737
}
11738
11739
boolean
multi_id::plain_is_equal
(
const
isl::checked::multi_id
&multi2)
const
11740
{
11741
auto
res
= isl_multi_id_plain_is_equal(
get
(), multi2.
get
());
11742
return
manage
(
res
);
11743
}
11744
11745
isl::checked::multi_id
multi_id::range_product
(
isl::checked::multi_id
multi2)
const
11746
{
11747
auto
res
= isl_multi_id_range_product(
copy
(), multi2.
release
());
11748
return
manage
(
res
);
11749
}
11750
11751
isl::checked::multi_id
multi_id::set_at
(
int
pos
,
isl::checked::id
el)
const
11752
{
11753
auto
res
= isl_multi_id_set_at(
copy
(),
pos
, el.
release
());
11754
return
manage
(
res
);
11755
}
11756
11757
isl::checked::multi_id
multi_id::set_at
(
int
pos
,
const
std::string &el)
const
11758
{
11759
return
this->
set_at
(pos,
isl::checked::id
(
ctx
(), el));
11760
}
11761
11762
class
size
multi_id
::
size
() const
11763
{
11764
auto
res
= isl_multi_id_size(
get
());
11765
return
manage
(
res
);
11766
}
11767
11768
isl::checked::space
multi_id::space
()
const
11769
{
11770
auto
res
= isl_multi_id_get_space(
get
());
11771
return
manage
(
res
);
11772
}
11773
11774
isl::checked::space
multi_id::get_space
()
const
11775
{
11776
return
space
();
11777
}
11778
11779
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_id
&
obj
)
11780
{
11781
char
*
str
=
isl_multi_id_to_str
(
obj
.get());
11782
if
(!
str
) {
11783
os.setstate(std::ios_base::badbit);
11784
return
os;
11785
}
11786
os <<
str
;
11787
free(
str
);
11788
return
os;
11789
}
11790
11791
// implementations for isl::multi_pw_aff
11792
multi_pw_aff
manage
(
__isl_take
isl_multi_pw_aff
*
ptr
) {
11793
return
multi_pw_aff
(
ptr
);
11794
}
11795
multi_pw_aff
manage_copy
(
__isl_keep
isl_multi_pw_aff
*
ptr
) {
11796
ptr
= isl_multi_pw_aff_copy(
ptr
);
11797
return
multi_pw_aff
(
ptr
);
11798
}
11799
11800
multi_pw_aff::multi_pw_aff
(
__isl_take
isl_multi_pw_aff
*
ptr
)
11801
:
ptr
(
ptr
) {}
11802
11803
multi_pw_aff::multi_pw_aff
()
11804
:
ptr
(nullptr) {}
11805
11806
multi_pw_aff::multi_pw_aff
(
const
multi_pw_aff
&
obj
)
11807
:
ptr
(nullptr)
11808
{
11809
ptr
=
obj
.copy();
11810
}
11811
11812
multi_pw_aff::multi_pw_aff
(
isl::checked::aff
aff
)
11813
{
11814
auto
res
=
isl_multi_pw_aff_from_aff
(
aff
.
release
());
11815
ptr
=
res
;
11816
}
11817
11818
multi_pw_aff::multi_pw_aff
(
isl::checked::multi_aff
ma
)
11819
{
11820
auto
res
=
isl_multi_pw_aff_from_multi_aff
(
ma
.release());
11821
ptr
=
res
;
11822
}
11823
11824
multi_pw_aff::multi_pw_aff
(
isl::checked::pw_aff
pa
)
11825
{
11826
auto
res
=
isl_multi_pw_aff_from_pw_aff
(
pa
.release());
11827
ptr
=
res
;
11828
}
11829
11830
multi_pw_aff::multi_pw_aff
(
isl::checked::space
space
,
isl::checked::pw_aff_list
list
)
11831
{
11832
auto
res
= isl_multi_pw_aff_from_pw_aff_list(
space
.release(),
list
.release());
11833
ptr
=
res
;
11834
}
11835
11836
multi_pw_aff::multi_pw_aff
(
isl::checked::pw_multi_aff
pma
)
11837
{
11838
auto
res
=
isl_multi_pw_aff_from_pw_multi_aff
(
pma
.release());
11839
ptr
=
res
;
11840
}
11841
11842
multi_pw_aff::multi_pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
11843
{
11844
auto
res
=
isl_multi_pw_aff_read_from_str
(
ctx
.release(),
str
.c_str());
11845
ptr
=
res
;
11846
}
11847
11848
multi_pw_aff
&
multi_pw_aff::operator=
(
multi_pw_aff
obj
) {
11849
std::swap(this->ptr,
obj
.ptr);
11850
return
*
this
;
11851
}
11852
11853
multi_pw_aff::~multi_pw_aff
() {
11854
if
(
ptr
)
11855
isl_multi_pw_aff_free(
ptr
);
11856
}
11857
11858
__isl_give
isl_multi_pw_aff
*
multi_pw_aff::copy
() const & {
11859
return
isl_multi_pw_aff_copy(
ptr
);
11860
}
11861
11862
__isl_keep
isl_multi_pw_aff
*
multi_pw_aff::get
()
const
{
11863
return
ptr
;
11864
}
11865
11866
__isl_give
isl_multi_pw_aff
*
multi_pw_aff::release
() {
11867
isl_multi_pw_aff
*tmp =
ptr
;
11868
ptr
=
nullptr
;
11869
return
tmp;
11870
}
11871
11872
bool
multi_pw_aff::is_null
()
const
{
11873
return
ptr
==
nullptr
;
11874
}
11875
11876
isl::checked::ctx
multi_pw_aff::ctx
()
const
{
11877
return
isl::checked::ctx
(isl_multi_pw_aff_get_ctx(
ptr
));
11878
}
11879
11880
isl::checked::multi_pw_aff
multi_pw_aff::add
(
isl::checked::multi_pw_aff
multi2)
const
11881
{
11882
auto
res
= isl_multi_pw_aff_add(
copy
(), multi2.
release
());
11883
return
manage
(
res
);
11884
}
11885
11886
isl::checked::multi_union_pw_aff
multi_pw_aff::add
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
11887
{
11888
return
isl::checked::multi_union_pw_aff
(*this).
add
(multi2);
11889
}
11890
11891
isl::checked::multi_pw_aff
multi_pw_aff::add
(
const
isl::checked::aff
&multi2)
const
11892
{
11893
return
this->
add
(
isl::checked::multi_pw_aff
(multi2));
11894
}
11895
11896
isl::checked::multi_pw_aff
multi_pw_aff::add
(
const
isl::checked::multi_aff
&multi2)
const
11897
{
11898
return
this->
add
(
isl::checked::multi_pw_aff
(multi2));
11899
}
11900
11901
isl::checked::multi_pw_aff
multi_pw_aff::add
(
const
isl::checked::pw_aff
&multi2)
const
11902
{
11903
return
this->
add
(
isl::checked::multi_pw_aff
(multi2));
11904
}
11905
11906
isl::checked::multi_pw_aff
multi_pw_aff::add
(
const
isl::checked::pw_multi_aff
&multi2)
const
11907
{
11908
return
this->
add
(
isl::checked::multi_pw_aff
(multi2));
11909
}
11910
11911
isl::checked::multi_pw_aff
multi_pw_aff::add_constant
(
isl::checked::multi_val
mv)
const
11912
{
11913
auto
res
= isl_multi_pw_aff_add_constant_multi_val(
copy
(), mv.
release
());
11914
return
manage
(
res
);
11915
}
11916
11917
isl::checked::multi_pw_aff
multi_pw_aff::add_constant
(
isl::checked::val
v)
const
11918
{
11919
auto
res
= isl_multi_pw_aff_add_constant_val(
copy
(), v.
release
());
11920
return
manage
(
res
);
11921
}
11922
11923
isl::checked::multi_pw_aff
multi_pw_aff::add_constant
(
long
v)
const
11924
{
11925
return
this->
add_constant
(
isl::checked::val
(
ctx
(), v));
11926
}
11927
11928
isl::checked::map
multi_pw_aff::as_map
()
const
11929
{
11930
auto
res
=
isl_multi_pw_aff_as_map
(
copy
());
11931
return
manage
(
res
);
11932
}
11933
11934
isl::checked::multi_aff
multi_pw_aff::as_multi_aff
()
const
11935
{
11936
auto
res
=
isl_multi_pw_aff_as_multi_aff
(
copy
());
11937
return
manage
(
res
);
11938
}
11939
11940
isl::checked::set
multi_pw_aff::as_set
()
const
11941
{
11942
auto
res
=
isl_multi_pw_aff_as_set
(
copy
());
11943
return
manage
(
res
);
11944
}
11945
11946
isl::checked::pw_aff
multi_pw_aff::at
(
int
pos
)
const
11947
{
11948
auto
res
= isl_multi_pw_aff_get_at(
get
(),
pos
);
11949
return
manage
(
res
);
11950
}
11951
11952
isl::checked::pw_aff
multi_pw_aff::get_at
(
int
pos
)
const
11953
{
11954
return
at
(
pos
);
11955
}
11956
11957
isl::checked::set
multi_pw_aff::bind
(
isl::checked::multi_id
tuple
)
const
11958
{
11959
auto
res
=
isl_multi_pw_aff_bind
(
copy
(),
tuple
.release());
11960
return
manage
(
res
);
11961
}
11962
11963
isl::checked::multi_pw_aff
multi_pw_aff::bind_domain
(
isl::checked::multi_id
tuple
)
const
11964
{
11965
auto
res
= isl_multi_pw_aff_bind_domain(
copy
(),
tuple
.release());
11966
return
manage
(
res
);
11967
}
11968
11969
isl::checked::multi_pw_aff
multi_pw_aff::bind_domain_wrapped_domain
(
isl::checked::multi_id
tuple
)
const
11970
{
11971
auto
res
= isl_multi_pw_aff_bind_domain_wrapped_domain(
copy
(),
tuple
.release());
11972
return
manage
(
res
);
11973
}
11974
11975
isl::checked::multi_pw_aff
multi_pw_aff::coalesce
()
const
11976
{
11977
auto
res
=
isl_multi_pw_aff_coalesce
(
copy
());
11978
return
manage
(
res
);
11979
}
11980
11981
isl::checked::set
multi_pw_aff::domain
()
const
11982
{
11983
auto
res
=
isl_multi_pw_aff_domain
(
copy
());
11984
return
manage
(
res
);
11985
}
11986
11987
isl::checked::multi_pw_aff
multi_pw_aff::domain_reverse
()
const
11988
{
11989
auto
res
= isl_multi_pw_aff_domain_reverse(
copy
());
11990
return
manage
(
res
);
11991
}
11992
11993
isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product
(
isl::checked::multi_pw_aff
multi2)
const
11994
{
11995
auto
res
= isl_multi_pw_aff_flat_range_product(
copy
(), multi2.
release
());
11996
return
manage
(
res
);
11997
}
11998
11999
isl::checked::multi_union_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
12000
{
12001
return
isl::checked::multi_union_pw_aff
(*this).
flat_range_product
(multi2);
12002
}
12003
12004
isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::checked::aff
&multi2)
const
12005
{
12006
return
this->
flat_range_product
(
isl::checked::multi_pw_aff
(multi2));
12007
}
12008
12009
isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::checked::multi_aff
&multi2)
const
12010
{
12011
return
this->
flat_range_product
(
isl::checked::multi_pw_aff
(multi2));
12012
}
12013
12014
isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::checked::pw_aff
&multi2)
const
12015
{
12016
return
this->
flat_range_product
(
isl::checked::multi_pw_aff
(multi2));
12017
}
12018
12019
isl::checked::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::checked::pw_multi_aff
&multi2)
const
12020
{
12021
return
this->
flat_range_product
(
isl::checked::multi_pw_aff
(multi2));
12022
}
12023
12024
isl::checked::multi_pw_aff
multi_pw_aff::gist
(
isl::checked::set
set
)
const
12025
{
12026
auto
res
=
isl_multi_pw_aff_gist
(
copy
(),
set
.
release
());
12027
return
manage
(
res
);
12028
}
12029
12030
isl::checked::multi_union_pw_aff
multi_pw_aff::gist
(
const
isl::checked::union_set
&
context
)
const
12031
{
12032
return
isl::checked::multi_union_pw_aff
(*this).
gist
(
context
);
12033
}
12034
12035
isl::checked::multi_pw_aff
multi_pw_aff::gist
(
const
isl::checked::basic_set
&
set
)
const
12036
{
12037
return
this->
gist
(
isl::checked::set
(
set
));
12038
}
12039
12040
isl::checked::multi_pw_aff
multi_pw_aff::gist
(
const
isl::checked::point
&
set
)
const
12041
{
12042
return
this->
gist
(
isl::checked::set
(
set
));
12043
}
12044
12045
isl::checked::multi_pw_aff
multi_pw_aff::gist_params
(
isl::checked::set
set
)
const
12046
{
12047
auto
res
=
isl_multi_pw_aff_gist_params
(
copy
(),
set
.
release
());
12048
return
manage
(
res
);
12049
}
12050
12051
boolean
multi_pw_aff::has_range_tuple_id
()
const
12052
{
12053
auto
res
= isl_multi_pw_aff_has_range_tuple_id(
get
());
12054
return
manage
(
res
);
12055
}
12056
12057
isl::checked::multi_pw_aff
multi_pw_aff::identity
()
const
12058
{
12059
auto
res
= isl_multi_pw_aff_identity_multi_pw_aff(
copy
());
12060
return
manage
(
res
);
12061
}
12062
12063
isl::checked::multi_pw_aff
multi_pw_aff::identity_on_domain
(
isl::checked::space
space
)
12064
{
12065
auto
res
= isl_multi_pw_aff_identity_on_domain_space(
space
.release());
12066
return
manage
(
res
);
12067
}
12068
12069
isl::checked::multi_pw_aff
multi_pw_aff::insert_domain
(
isl::checked::space
domain
)
const
12070
{
12071
auto
res
= isl_multi_pw_aff_insert_domain(
copy
(),
domain
.release());
12072
return
manage
(
res
);
12073
}
12074
12075
isl::checked::multi_pw_aff
multi_pw_aff::intersect_domain
(
isl::checked::set
domain
)
const
12076
{
12077
auto
res
=
isl_multi_pw_aff_intersect_domain
(
copy
(),
domain
.release());
12078
return
manage
(
res
);
12079
}
12080
12081
isl::checked::multi_union_pw_aff
multi_pw_aff::intersect_domain
(
const
isl::checked::union_set
&uset)
const
12082
{
12083
return
isl::checked::multi_union_pw_aff
(*this).
intersect_domain
(uset);
12084
}
12085
12086
isl::checked::multi_pw_aff
multi_pw_aff::intersect_domain
(
const
isl::checked::basic_set
&
domain
)
const
12087
{
12088
return
this->
intersect_domain
(
isl::checked::set
(
domain
));
12089
}
12090
12091
isl::checked::multi_pw_aff
multi_pw_aff::intersect_domain
(
const
isl::checked::point
&
domain
)
const
12092
{
12093
return
this->
intersect_domain
(
isl::checked::set
(
domain
));
12094
}
12095
12096
isl::checked::multi_pw_aff
multi_pw_aff::intersect_params
(
isl::checked::set
set
)
const
12097
{
12098
auto
res
=
isl_multi_pw_aff_intersect_params
(
copy
(),
set
.
release
());
12099
return
manage
(
res
);
12100
}
12101
12102
boolean
multi_pw_aff::involves_nan
()
const
12103
{
12104
auto
res
= isl_multi_pw_aff_involves_nan(
get
());
12105
return
manage
(
res
);
12106
}
12107
12108
boolean
multi_pw_aff::involves_param
(
const
isl::checked::id
&
id
)
const
12109
{
12110
auto
res
= isl_multi_pw_aff_involves_param_id(
get
(),
id
.
get
());
12111
return
manage
(
res
);
12112
}
12113
12114
boolean
multi_pw_aff::involves_param
(
const
std::string &
id
)
const
12115
{
12116
return
this->
involves_param
(
isl::checked::id
(
ctx
(),
id
));
12117
}
12118
12119
boolean
multi_pw_aff::involves_param
(
const
isl::checked::id_list
&
list
)
const
12120
{
12121
auto
res
= isl_multi_pw_aff_involves_param_id_list(
get
(),
list
.get());
12122
return
manage
(
res
);
12123
}
12124
12125
boolean
multi_pw_aff::isa_multi_aff
()
const
12126
{
12127
auto
res
=
isl_multi_pw_aff_isa_multi_aff
(
get
());
12128
return
manage
(
res
);
12129
}
12130
12131
isl::checked::pw_aff_list
multi_pw_aff::list
()
const
12132
{
12133
auto
res
= isl_multi_pw_aff_get_list(
get
());
12134
return
manage
(
res
);
12135
}
12136
12137
isl::checked::pw_aff_list
multi_pw_aff::get_list
()
const
12138
{
12139
return
list
();
12140
}
12141
12142
isl::checked::multi_pw_aff
multi_pw_aff::max
(
isl::checked::multi_pw_aff
multi2)
const
12143
{
12144
auto
res
= isl_multi_pw_aff_max(
copy
(), multi2.
release
());
12145
return
manage
(
res
);
12146
}
12147
12148
isl::checked::multi_val
multi_pw_aff::max_multi_val
()
const
12149
{
12150
auto
res
=
isl_multi_pw_aff_max_multi_val
(
copy
());
12151
return
manage
(
res
);
12152
}
12153
12154
isl::checked::multi_pw_aff
multi_pw_aff::min
(
isl::checked::multi_pw_aff
multi2)
const
12155
{
12156
auto
res
= isl_multi_pw_aff_min(
copy
(), multi2.
release
());
12157
return
manage
(
res
);
12158
}
12159
12160
isl::checked::multi_val
multi_pw_aff::min_multi_val
()
const
12161
{
12162
auto
res
=
isl_multi_pw_aff_min_multi_val
(
copy
());
12163
return
manage
(
res
);
12164
}
12165
12166
isl::checked::multi_pw_aff
multi_pw_aff::neg
()
const
12167
{
12168
auto
res
= isl_multi_pw_aff_neg(
copy
());
12169
return
manage
(
res
);
12170
}
12171
12172
boolean
multi_pw_aff::plain_is_equal
(
const
isl::checked::multi_pw_aff
&multi2)
const
12173
{
12174
auto
res
= isl_multi_pw_aff_plain_is_equal(
get
(), multi2.
get
());
12175
return
manage
(
res
);
12176
}
12177
12178
boolean
multi_pw_aff::plain_is_equal
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
12179
{
12180
return
isl::checked::multi_union_pw_aff
(*this).
plain_is_equal
(multi2);
12181
}
12182
12183
boolean
multi_pw_aff::plain_is_equal
(
const
isl::checked::aff
&multi2)
const
12184
{
12185
return
this->
plain_is_equal
(
isl::checked::multi_pw_aff
(multi2));
12186
}
12187
12188
boolean
multi_pw_aff::plain_is_equal
(
const
isl::checked::multi_aff
&multi2)
const
12189
{
12190
return
this->
plain_is_equal
(
isl::checked::multi_pw_aff
(multi2));
12191
}
12192
12193
boolean
multi_pw_aff::plain_is_equal
(
const
isl::checked::pw_aff
&multi2)
const
12194
{
12195
return
this->
plain_is_equal
(
isl::checked::multi_pw_aff
(multi2));
12196
}
12197
12198
boolean
multi_pw_aff::plain_is_equal
(
const
isl::checked::pw_multi_aff
&multi2)
const
12199
{
12200
return
this->
plain_is_equal
(
isl::checked::multi_pw_aff
(multi2));
12201
}
12202
12203
isl::checked::multi_pw_aff
multi_pw_aff::product
(
isl::checked::multi_pw_aff
multi2)
const
12204
{
12205
auto
res
= isl_multi_pw_aff_product(
copy
(), multi2.
release
());
12206
return
manage
(
res
);
12207
}
12208
12209
isl::checked::multi_pw_aff
multi_pw_aff::pullback
(
isl::checked::multi_aff
ma
)
const
12210
{
12211
auto
res
=
isl_multi_pw_aff_pullback_multi_aff
(
copy
(),
ma
.release());
12212
return
manage
(
res
);
12213
}
12214
12215
isl::checked::multi_pw_aff
multi_pw_aff::pullback
(
isl::checked::multi_pw_aff
mpa2)
const
12216
{
12217
auto
res
=
isl_multi_pw_aff_pullback_multi_pw_aff
(
copy
(), mpa2.
release
());
12218
return
manage
(
res
);
12219
}
12220
12221
isl::checked::multi_pw_aff
multi_pw_aff::pullback
(
isl::checked::pw_multi_aff
pma
)
const
12222
{
12223
auto
res
=
isl_multi_pw_aff_pullback_pw_multi_aff
(
copy
(),
pma
.release());
12224
return
manage
(
res
);
12225
}
12226
12227
isl::checked::multi_union_pw_aff
multi_pw_aff::pullback
(
const
isl::checked::union_pw_multi_aff
&upma)
const
12228
{
12229
return
isl::checked::multi_union_pw_aff
(*this).
pullback
(upma);
12230
}
12231
12232
isl::checked::multi_pw_aff
multi_pw_aff::range_product
(
isl::checked::multi_pw_aff
multi2)
const
12233
{
12234
auto
res
= isl_multi_pw_aff_range_product(
copy
(), multi2.
release
());
12235
return
manage
(
res
);
12236
}
12237
12238
isl::checked::multi_union_pw_aff
multi_pw_aff::range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
12239
{
12240
return
isl::checked::multi_union_pw_aff
(*this).
range_product
(multi2);
12241
}
12242
12243
isl::checked::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::checked::aff
&multi2)
const
12244
{
12245
return
this->
range_product
(
isl::checked::multi_pw_aff
(multi2));
12246
}
12247
12248
isl::checked::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::checked::multi_aff
&multi2)
const
12249
{
12250
return
this->
range_product
(
isl::checked::multi_pw_aff
(multi2));
12251
}
12252
12253
isl::checked::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::checked::pw_aff
&multi2)
const
12254
{
12255
return
this->
range_product
(
isl::checked::multi_pw_aff
(multi2));
12256
}
12257
12258
isl::checked::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::checked::pw_multi_aff
&multi2)
const
12259
{
12260
return
this->
range_product
(
isl::checked::multi_pw_aff
(multi2));
12261
}
12262
12263
isl::checked::id
multi_pw_aff::range_tuple_id
()
const
12264
{
12265
auto
res
= isl_multi_pw_aff_get_range_tuple_id(
get
());
12266
return
manage
(
res
);
12267
}
12268
12269
isl::checked::id
multi_pw_aff::get_range_tuple_id
()
const
12270
{
12271
return
range_tuple_id
();
12272
}
12273
12274
isl::checked::multi_pw_aff
multi_pw_aff::reset_range_tuple_id
()
const
12275
{
12276
auto
res
= isl_multi_pw_aff_reset_range_tuple_id(
copy
());
12277
return
manage
(
res
);
12278
}
12279
12280
isl::checked::multi_pw_aff
multi_pw_aff::scale
(
isl::checked::multi_val
mv)
const
12281
{
12282
auto
res
= isl_multi_pw_aff_scale_multi_val(
copy
(), mv.
release
());
12283
return
manage
(
res
);
12284
}
12285
12286
isl::checked::multi_pw_aff
multi_pw_aff::scale
(
isl::checked::val
v)
const
12287
{
12288
auto
res
= isl_multi_pw_aff_scale_val(
copy
(), v.
release
());
12289
return
manage
(
res
);
12290
}
12291
12292
isl::checked::multi_pw_aff
multi_pw_aff::scale
(
long
v)
const
12293
{
12294
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
12295
}
12296
12297
isl::checked::multi_pw_aff
multi_pw_aff::scale_down
(
isl::checked::multi_val
mv)
const
12298
{
12299
auto
res
= isl_multi_pw_aff_scale_down_multi_val(
copy
(), mv.
release
());
12300
return
manage
(
res
);
12301
}
12302
12303
isl::checked::multi_pw_aff
multi_pw_aff::scale_down
(
isl::checked::val
v)
const
12304
{
12305
auto
res
= isl_multi_pw_aff_scale_down_val(
copy
(), v.
release
());
12306
return
manage
(
res
);
12307
}
12308
12309
isl::checked::multi_pw_aff
multi_pw_aff::scale_down
(
long
v)
const
12310
{
12311
return
this->
scale_down
(
isl::checked::val
(
ctx
(), v));
12312
}
12313
12314
isl::checked::multi_pw_aff
multi_pw_aff::set_at
(
int
pos
,
isl::checked::pw_aff
el)
const
12315
{
12316
auto
res
= isl_multi_pw_aff_set_at(
copy
(),
pos
, el.
release
());
12317
return
manage
(
res
);
12318
}
12319
12320
isl::checked::multi_union_pw_aff
multi_pw_aff::set_at
(
int
pos
,
const
isl::checked::union_pw_aff
&el)
const
12321
{
12322
return
isl::checked::multi_union_pw_aff
(*this).
set_at
(
pos
, el);
12323
}
12324
12325
isl::checked::multi_pw_aff
multi_pw_aff::set_range_tuple
(
isl::checked::id
id
)
const
12326
{
12327
auto
res
= isl_multi_pw_aff_set_range_tuple_id(
copy
(),
id
.
release
());
12328
return
manage
(
res
);
12329
}
12330
12331
isl::checked::multi_pw_aff
multi_pw_aff::set_range_tuple
(
const
std::string &
id
)
const
12332
{
12333
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
12334
}
12335
12336
class
size
multi_pw_aff
::
size
() const
12337
{
12338
auto
res
= isl_multi_pw_aff_size(
get
());
12339
return
manage
(
res
);
12340
}
12341
12342
isl::checked::space
multi_pw_aff::space
()
const
12343
{
12344
auto
res
= isl_multi_pw_aff_get_space(
get
());
12345
return
manage
(
res
);
12346
}
12347
12348
isl::checked::space
multi_pw_aff::get_space
()
const
12349
{
12350
return
space
();
12351
}
12352
12353
isl::checked::multi_pw_aff
multi_pw_aff::sub
(
isl::checked::multi_pw_aff
multi2)
const
12354
{
12355
auto
res
= isl_multi_pw_aff_sub(
copy
(), multi2.
release
());
12356
return
manage
(
res
);
12357
}
12358
12359
isl::checked::multi_union_pw_aff
multi_pw_aff::sub
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
12360
{
12361
return
isl::checked::multi_union_pw_aff
(*this).
sub
(multi2);
12362
}
12363
12364
isl::checked::multi_pw_aff
multi_pw_aff::sub
(
const
isl::checked::aff
&multi2)
const
12365
{
12366
return
this->
sub
(
isl::checked::multi_pw_aff
(multi2));
12367
}
12368
12369
isl::checked::multi_pw_aff
multi_pw_aff::sub
(
const
isl::checked::multi_aff
&multi2)
const
12370
{
12371
return
this->
sub
(
isl::checked::multi_pw_aff
(multi2));
12372
}
12373
12374
isl::checked::multi_pw_aff
multi_pw_aff::sub
(
const
isl::checked::pw_aff
&multi2)
const
12375
{
12376
return
this->
sub
(
isl::checked::multi_pw_aff
(multi2));
12377
}
12378
12379
isl::checked::multi_pw_aff
multi_pw_aff::sub
(
const
isl::checked::pw_multi_aff
&multi2)
const
12380
{
12381
return
this->
sub
(
isl::checked::multi_pw_aff
(multi2));
12382
}
12383
12384
isl::checked::multi_pw_aff
multi_pw_aff::unbind_params_insert_domain
(
isl::checked::multi_id
domain
)
const
12385
{
12386
auto
res
= isl_multi_pw_aff_unbind_params_insert_domain(
copy
(),
domain
.release());
12387
return
manage
(
res
);
12388
}
12389
12390
isl::checked::multi_pw_aff
multi_pw_aff::union_add
(
isl::checked::multi_pw_aff
mpa2)
const
12391
{
12392
auto
res
=
isl_multi_pw_aff_union_add
(
copy
(), mpa2.
release
());
12393
return
manage
(
res
);
12394
}
12395
12396
isl::checked::multi_union_pw_aff
multi_pw_aff::union_add
(
const
isl::checked::multi_union_pw_aff
&mupa2)
const
12397
{
12398
return
isl::checked::multi_union_pw_aff
(*this).
union_add
(mupa2);
12399
}
12400
12401
isl::checked::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::checked::aff
&mpa2)
const
12402
{
12403
return
this->
union_add
(
isl::checked::multi_pw_aff
(mpa2));
12404
}
12405
12406
isl::checked::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::checked::multi_aff
&mpa2)
const
12407
{
12408
return
this->
union_add
(
isl::checked::multi_pw_aff
(mpa2));
12409
}
12410
12411
isl::checked::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::checked::pw_aff
&mpa2)
const
12412
{
12413
return
this->
union_add
(
isl::checked::multi_pw_aff
(mpa2));
12414
}
12415
12416
isl::checked::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::checked::pw_multi_aff
&mpa2)
const
12417
{
12418
return
this->
union_add
(
isl::checked::multi_pw_aff
(mpa2));
12419
}
12420
12421
isl::checked::multi_pw_aff
multi_pw_aff::zero
(
isl::checked::space
space
)
12422
{
12423
auto
res
= isl_multi_pw_aff_zero(
space
.release());
12424
return
manage
(
res
);
12425
}
12426
12427
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_pw_aff
&
obj
)
12428
{
12429
char
*
str
=
isl_multi_pw_aff_to_str
(
obj
.get());
12430
if
(!
str
) {
12431
os.setstate(std::ios_base::badbit);
12432
return
os;
12433
}
12434
os <<
str
;
12435
free(
str
);
12436
return
os;
12437
}
12438
12439
// implementations for isl::multi_union_pw_aff
12440
multi_union_pw_aff
manage
(
__isl_take
isl_multi_union_pw_aff
*
ptr
) {
12441
return
multi_union_pw_aff
(
ptr
);
12442
}
12443
multi_union_pw_aff
manage_copy
(
__isl_keep
isl_multi_union_pw_aff
*
ptr
) {
12444
ptr
= isl_multi_union_pw_aff_copy(
ptr
);
12445
return
multi_union_pw_aff
(
ptr
);
12446
}
12447
12448
multi_union_pw_aff::multi_union_pw_aff
(
__isl_take
isl_multi_union_pw_aff
*
ptr
)
12449
:
ptr
(
ptr
) {}
12450
12451
multi_union_pw_aff::multi_union_pw_aff
()
12452
:
ptr
(nullptr) {}
12453
12454
multi_union_pw_aff::multi_union_pw_aff
(
const
multi_union_pw_aff
&
obj
)
12455
:
ptr
(nullptr)
12456
{
12457
ptr
=
obj
.copy();
12458
}
12459
12460
multi_union_pw_aff::multi_union_pw_aff
(
isl::checked::multi_pw_aff
mpa)
12461
{
12462
auto
res
=
isl_multi_union_pw_aff_from_multi_pw_aff
(mpa.
release
());
12463
ptr
=
res
;
12464
}
12465
12466
multi_union_pw_aff::multi_union_pw_aff
(
isl::checked::union_pw_aff
upa)
12467
{
12468
auto
res
=
isl_multi_union_pw_aff_from_union_pw_aff
(upa.
release
());
12469
ptr
=
res
;
12470
}
12471
12472
multi_union_pw_aff::multi_union_pw_aff
(
isl::checked::space
space
,
isl::checked::union_pw_aff_list
list
)
12473
{
12474
auto
res
= isl_multi_union_pw_aff_from_union_pw_aff_list(
space
.release(),
list
.release());
12475
ptr
=
res
;
12476
}
12477
12478
multi_union_pw_aff::multi_union_pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
12479
{
12480
auto
res
=
isl_multi_union_pw_aff_read_from_str
(
ctx
.release(),
str
.c_str());
12481
ptr
=
res
;
12482
}
12483
12484
multi_union_pw_aff
&
multi_union_pw_aff::operator=
(
multi_union_pw_aff
obj
) {
12485
std::swap(this->ptr,
obj
.ptr);
12486
return
*
this
;
12487
}
12488
12489
multi_union_pw_aff::~multi_union_pw_aff
() {
12490
if
(
ptr
)
12491
isl_multi_union_pw_aff_free(
ptr
);
12492
}
12493
12494
__isl_give
isl_multi_union_pw_aff
*
multi_union_pw_aff::copy
() const & {
12495
return
isl_multi_union_pw_aff_copy(
ptr
);
12496
}
12497
12498
__isl_keep
isl_multi_union_pw_aff
*
multi_union_pw_aff::get
()
const
{
12499
return
ptr
;
12500
}
12501
12502
__isl_give
isl_multi_union_pw_aff
*
multi_union_pw_aff::release
() {
12503
isl_multi_union_pw_aff
*tmp =
ptr
;
12504
ptr
=
nullptr
;
12505
return
tmp;
12506
}
12507
12508
bool
multi_union_pw_aff::is_null
()
const
{
12509
return
ptr
==
nullptr
;
12510
}
12511
12512
isl::checked::ctx
multi_union_pw_aff::ctx
()
const
{
12513
return
isl::checked::ctx
(isl_multi_union_pw_aff_get_ctx(
ptr
));
12514
}
12515
12516
isl::checked::multi_union_pw_aff
multi_union_pw_aff::add
(
isl::checked::multi_union_pw_aff
multi2)
const
12517
{
12518
auto
res
= isl_multi_union_pw_aff_add(
copy
(), multi2.
release
());
12519
return
manage
(
res
);
12520
}
12521
12522
isl::checked::union_pw_aff
multi_union_pw_aff::at
(
int
pos
)
const
12523
{
12524
auto
res
= isl_multi_union_pw_aff_get_at(
get
(),
pos
);
12525
return
manage
(
res
);
12526
}
12527
12528
isl::checked::union_pw_aff
multi_union_pw_aff::get_at
(
int
pos
)
const
12529
{
12530
return
at
(
pos
);
12531
}
12532
12533
isl::checked::union_set
multi_union_pw_aff::bind
(
isl::checked::multi_id
tuple
)
const
12534
{
12535
auto
res
=
isl_multi_union_pw_aff_bind
(
copy
(),
tuple
.release());
12536
return
manage
(
res
);
12537
}
12538
12539
isl::checked::multi_union_pw_aff
multi_union_pw_aff::coalesce
()
const
12540
{
12541
auto
res
=
isl_multi_union_pw_aff_coalesce
(
copy
());
12542
return
manage
(
res
);
12543
}
12544
12545
isl::checked::union_set
multi_union_pw_aff::domain
()
const
12546
{
12547
auto
res
=
isl_multi_union_pw_aff_domain
(
copy
());
12548
return
manage
(
res
);
12549
}
12550
12551
isl::checked::multi_union_pw_aff
multi_union_pw_aff::flat_range_product
(
isl::checked::multi_union_pw_aff
multi2)
const
12552
{
12553
auto
res
= isl_multi_union_pw_aff_flat_range_product(
copy
(), multi2.
release
());
12554
return
manage
(
res
);
12555
}
12556
12557
isl::checked::multi_union_pw_aff
multi_union_pw_aff::gist
(
isl::checked::union_set
context
)
const
12558
{
12559
auto
res
=
isl_multi_union_pw_aff_gist
(
copy
(),
context
.release());
12560
return
manage
(
res
);
12561
}
12562
12563
isl::checked::multi_union_pw_aff
multi_union_pw_aff::gist_params
(
isl::checked::set
context
)
const
12564
{
12565
auto
res
=
isl_multi_union_pw_aff_gist_params
(
copy
(),
context
.release());
12566
return
manage
(
res
);
12567
}
12568
12569
boolean
multi_union_pw_aff::has_range_tuple_id
()
const
12570
{
12571
auto
res
= isl_multi_union_pw_aff_has_range_tuple_id(
get
());
12572
return
manage
(
res
);
12573
}
12574
12575
isl::checked::multi_union_pw_aff
multi_union_pw_aff::intersect_domain
(
isl::checked::union_set
uset)
const
12576
{
12577
auto
res
=
isl_multi_union_pw_aff_intersect_domain
(
copy
(), uset.
release
());
12578
return
manage
(
res
);
12579
}
12580
12581
isl::checked::multi_union_pw_aff
multi_union_pw_aff::intersect_params
(
isl::checked::set
params
)
const
12582
{
12583
auto
res
=
isl_multi_union_pw_aff_intersect_params
(
copy
(),
params
.release());
12584
return
manage
(
res
);
12585
}
12586
12587
boolean
multi_union_pw_aff::involves_nan
()
const
12588
{
12589
auto
res
= isl_multi_union_pw_aff_involves_nan(
get
());
12590
return
manage
(
res
);
12591
}
12592
12593
isl::checked::union_pw_aff_list
multi_union_pw_aff::list
()
const
12594
{
12595
auto
res
= isl_multi_union_pw_aff_get_list(
get
());
12596
return
manage
(
res
);
12597
}
12598
12599
isl::checked::union_pw_aff_list
multi_union_pw_aff::get_list
()
const
12600
{
12601
return
list
();
12602
}
12603
12604
isl::checked::multi_union_pw_aff
multi_union_pw_aff::neg
()
const
12605
{
12606
auto
res
= isl_multi_union_pw_aff_neg(
copy
());
12607
return
manage
(
res
);
12608
}
12609
12610
boolean
multi_union_pw_aff::plain_is_equal
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
12611
{
12612
auto
res
= isl_multi_union_pw_aff_plain_is_equal(
get
(), multi2.
get
());
12613
return
manage
(
res
);
12614
}
12615
12616
isl::checked::multi_union_pw_aff
multi_union_pw_aff::pullback
(
isl::checked::union_pw_multi_aff
upma)
const
12617
{
12618
auto
res
=
isl_multi_union_pw_aff_pullback_union_pw_multi_aff
(
copy
(), upma.
release
());
12619
return
manage
(
res
);
12620
}
12621
12622
isl::checked::multi_union_pw_aff
multi_union_pw_aff::range_product
(
isl::checked::multi_union_pw_aff
multi2)
const
12623
{
12624
auto
res
= isl_multi_union_pw_aff_range_product(
copy
(), multi2.
release
());
12625
return
manage
(
res
);
12626
}
12627
12628
isl::checked::id
multi_union_pw_aff::range_tuple_id
()
const
12629
{
12630
auto
res
= isl_multi_union_pw_aff_get_range_tuple_id(
get
());
12631
return
manage
(
res
);
12632
}
12633
12634
isl::checked::id
multi_union_pw_aff::get_range_tuple_id
()
const
12635
{
12636
return
range_tuple_id
();
12637
}
12638
12639
isl::checked::multi_union_pw_aff
multi_union_pw_aff::reset_range_tuple_id
()
const
12640
{
12641
auto
res
= isl_multi_union_pw_aff_reset_range_tuple_id(
copy
());
12642
return
manage
(
res
);
12643
}
12644
12645
isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale
(
isl::checked::multi_val
mv)
const
12646
{
12647
auto
res
= isl_multi_union_pw_aff_scale_multi_val(
copy
(), mv.
release
());
12648
return
manage
(
res
);
12649
}
12650
12651
isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale
(
isl::checked::val
v)
const
12652
{
12653
auto
res
= isl_multi_union_pw_aff_scale_val(
copy
(), v.
release
());
12654
return
manage
(
res
);
12655
}
12656
12657
isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale
(
long
v)
const
12658
{
12659
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
12660
}
12661
12662
isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale_down
(
isl::checked::multi_val
mv)
const
12663
{
12664
auto
res
= isl_multi_union_pw_aff_scale_down_multi_val(
copy
(), mv.
release
());
12665
return
manage
(
res
);
12666
}
12667
12668
isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale_down
(
isl::checked::val
v)
const
12669
{
12670
auto
res
= isl_multi_union_pw_aff_scale_down_val(
copy
(), v.
release
());
12671
return
manage
(
res
);
12672
}
12673
12674
isl::checked::multi_union_pw_aff
multi_union_pw_aff::scale_down
(
long
v)
const
12675
{
12676
return
this->
scale_down
(
isl::checked::val
(
ctx
(), v));
12677
}
12678
12679
isl::checked::multi_union_pw_aff
multi_union_pw_aff::set_at
(
int
pos
,
isl::checked::union_pw_aff
el)
const
12680
{
12681
auto
res
= isl_multi_union_pw_aff_set_at(
copy
(),
pos
, el.
release
());
12682
return
manage
(
res
);
12683
}
12684
12685
isl::checked::multi_union_pw_aff
multi_union_pw_aff::set_range_tuple
(
isl::checked::id
id
)
const
12686
{
12687
auto
res
= isl_multi_union_pw_aff_set_range_tuple_id(
copy
(),
id
.
release
());
12688
return
manage
(
res
);
12689
}
12690
12691
isl::checked::multi_union_pw_aff
multi_union_pw_aff::set_range_tuple
(
const
std::string &
id
)
const
12692
{
12693
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
12694
}
12695
12696
class
size
multi_union_pw_aff
::
size
() const
12697
{
12698
auto
res
= isl_multi_union_pw_aff_size(
get
());
12699
return
manage
(
res
);
12700
}
12701
12702
isl::checked::space
multi_union_pw_aff::space
()
const
12703
{
12704
auto
res
= isl_multi_union_pw_aff_get_space(
get
());
12705
return
manage
(
res
);
12706
}
12707
12708
isl::checked::space
multi_union_pw_aff::get_space
()
const
12709
{
12710
return
space
();
12711
}
12712
12713
isl::checked::multi_union_pw_aff
multi_union_pw_aff::sub
(
isl::checked::multi_union_pw_aff
multi2)
const
12714
{
12715
auto
res
= isl_multi_union_pw_aff_sub(
copy
(), multi2.
release
());
12716
return
manage
(
res
);
12717
}
12718
12719
isl::checked::multi_union_pw_aff
multi_union_pw_aff::union_add
(
isl::checked::multi_union_pw_aff
mupa2)
const
12720
{
12721
auto
res
=
isl_multi_union_pw_aff_union_add
(
copy
(), mupa2.
release
());
12722
return
manage
(
res
);
12723
}
12724
12725
isl::checked::multi_union_pw_aff
multi_union_pw_aff::zero
(
isl::checked::space
space
)
12726
{
12727
auto
res
=
isl_multi_union_pw_aff_zero
(
space
.release());
12728
return
manage
(
res
);
12729
}
12730
12731
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_union_pw_aff
&
obj
)
12732
{
12733
char
*
str
=
isl_multi_union_pw_aff_to_str
(
obj
.get());
12734
if
(!
str
) {
12735
os.setstate(std::ios_base::badbit);
12736
return
os;
12737
}
12738
os <<
str
;
12739
free(
str
);
12740
return
os;
12741
}
12742
12743
// implementations for isl::multi_val
12744
multi_val
manage
(
__isl_take
isl_multi_val
*
ptr
) {
12745
return
multi_val
(
ptr
);
12746
}
12747
multi_val
manage_copy
(
__isl_keep
isl_multi_val
*
ptr
) {
12748
ptr
= isl_multi_val_copy(
ptr
);
12749
return
multi_val
(
ptr
);
12750
}
12751
12752
multi_val::multi_val
(
__isl_take
isl_multi_val
*
ptr
)
12753
:
ptr
(
ptr
) {}
12754
12755
multi_val::multi_val
()
12756
:
ptr
(nullptr) {}
12757
12758
multi_val::multi_val
(
const
multi_val
&
obj
)
12759
:
ptr
(nullptr)
12760
{
12761
ptr
=
obj
.copy();
12762
}
12763
12764
multi_val::multi_val
(
isl::checked::space
space
,
isl::checked::val_list
list
)
12765
{
12766
auto
res
= isl_multi_val_from_val_list(
space
.release(),
list
.release());
12767
ptr
=
res
;
12768
}
12769
12770
multi_val::multi_val
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
12771
{
12772
auto
res
=
isl_multi_val_read_from_str
(
ctx
.release(),
str
.c_str());
12773
ptr
=
res
;
12774
}
12775
12776
multi_val
&
multi_val::operator=
(
multi_val
obj
) {
12777
std::swap(this->ptr,
obj
.ptr);
12778
return
*
this
;
12779
}
12780
12781
multi_val::~multi_val
() {
12782
if
(
ptr
)
12783
isl_multi_val_free(
ptr
);
12784
}
12785
12786
__isl_give
isl_multi_val
*
multi_val::copy
() const & {
12787
return
isl_multi_val_copy(
ptr
);
12788
}
12789
12790
__isl_keep
isl_multi_val
*
multi_val::get
()
const
{
12791
return
ptr
;
12792
}
12793
12794
__isl_give
isl_multi_val
*
multi_val::release
() {
12795
isl_multi_val
*tmp =
ptr
;
12796
ptr
=
nullptr
;
12797
return
tmp;
12798
}
12799
12800
bool
multi_val::is_null
()
const
{
12801
return
ptr
==
nullptr
;
12802
}
12803
12804
isl::checked::ctx
multi_val::ctx
()
const
{
12805
return
isl::checked::ctx
(isl_multi_val_get_ctx(
ptr
));
12806
}
12807
12808
isl::checked::multi_val
multi_val::add
(
isl::checked::multi_val
multi2)
const
12809
{
12810
auto
res
= isl_multi_val_add(
copy
(), multi2.
release
());
12811
return
manage
(
res
);
12812
}
12813
12814
isl::checked::multi_val
multi_val::add
(
isl::checked::val
v)
const
12815
{
12816
auto
res
=
isl_multi_val_add_val
(
copy
(), v.
release
());
12817
return
manage
(
res
);
12818
}
12819
12820
isl::checked::multi_val
multi_val::add
(
long
v)
const
12821
{
12822
return
this->
add
(
isl::checked::val
(
ctx
(), v));
12823
}
12824
12825
isl::checked::val
multi_val::at
(
int
pos
)
const
12826
{
12827
auto
res
= isl_multi_val_get_at(
get
(),
pos
);
12828
return
manage
(
res
);
12829
}
12830
12831
isl::checked::val
multi_val::get_at
(
int
pos
)
const
12832
{
12833
return
at
(
pos
);
12834
}
12835
12836
isl::checked::multi_val
multi_val::flat_range_product
(
isl::checked::multi_val
multi2)
const
12837
{
12838
auto
res
= isl_multi_val_flat_range_product(
copy
(), multi2.
release
());
12839
return
manage
(
res
);
12840
}
12841
12842
boolean
multi_val::has_range_tuple_id
()
const
12843
{
12844
auto
res
= isl_multi_val_has_range_tuple_id(
get
());
12845
return
manage
(
res
);
12846
}
12847
12848
boolean
multi_val::involves_nan
()
const
12849
{
12850
auto
res
= isl_multi_val_involves_nan(
get
());
12851
return
manage
(
res
);
12852
}
12853
12854
boolean
multi_val::is_equal
(
const
isl::checked::multi_val
&mv2)
const
12855
{
12856
auto
res
=
isl_multi_val_is_equal
(
get
(), mv2.
get
());
12857
return
manage
(
res
);
12858
}
12859
12860
isl::checked::val_list
multi_val::list
()
const
12861
{
12862
auto
res
= isl_multi_val_get_list(
get
());
12863
return
manage
(
res
);
12864
}
12865
12866
isl::checked::val_list
multi_val::get_list
()
const
12867
{
12868
return
list
();
12869
}
12870
12871
isl::checked::multi_val
multi_val::max
(
isl::checked::multi_val
multi2)
const
12872
{
12873
auto
res
= isl_multi_val_max(
copy
(), multi2.
release
());
12874
return
manage
(
res
);
12875
}
12876
12877
isl::checked::multi_val
multi_val::min
(
isl::checked::multi_val
multi2)
const
12878
{
12879
auto
res
= isl_multi_val_min(
copy
(), multi2.
release
());
12880
return
manage
(
res
);
12881
}
12882
12883
isl::checked::multi_val
multi_val::neg
()
const
12884
{
12885
auto
res
= isl_multi_val_neg(
copy
());
12886
return
manage
(
res
);
12887
}
12888
12889
boolean
multi_val::plain_is_equal
(
const
isl::checked::multi_val
&multi2)
const
12890
{
12891
auto
res
= isl_multi_val_plain_is_equal(
get
(), multi2.
get
());
12892
return
manage
(
res
);
12893
}
12894
12895
isl::checked::multi_val
multi_val::product
(
isl::checked::multi_val
multi2)
const
12896
{
12897
auto
res
= isl_multi_val_product(
copy
(), multi2.
release
());
12898
return
manage
(
res
);
12899
}
12900
12901
isl::checked::multi_val
multi_val::range_product
(
isl::checked::multi_val
multi2)
const
12902
{
12903
auto
res
= isl_multi_val_range_product(
copy
(), multi2.
release
());
12904
return
manage
(
res
);
12905
}
12906
12907
isl::checked::id
multi_val::range_tuple_id
()
const
12908
{
12909
auto
res
= isl_multi_val_get_range_tuple_id(
get
());
12910
return
manage
(
res
);
12911
}
12912
12913
isl::checked::id
multi_val::get_range_tuple_id
()
const
12914
{
12915
return
range_tuple_id
();
12916
}
12917
12918
isl::checked::multi_val
multi_val::reset_range_tuple_id
()
const
12919
{
12920
auto
res
= isl_multi_val_reset_range_tuple_id(
copy
());
12921
return
manage
(
res
);
12922
}
12923
12924
isl::checked::multi_val
multi_val::scale
(
isl::checked::multi_val
mv)
const
12925
{
12926
auto
res
= isl_multi_val_scale_multi_val(
copy
(), mv.
release
());
12927
return
manage
(
res
);
12928
}
12929
12930
isl::checked::multi_val
multi_val::scale
(
isl::checked::val
v)
const
12931
{
12932
auto
res
= isl_multi_val_scale_val(
copy
(), v.
release
());
12933
return
manage
(
res
);
12934
}
12935
12936
isl::checked::multi_val
multi_val::scale
(
long
v)
const
12937
{
12938
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
12939
}
12940
12941
isl::checked::multi_val
multi_val::scale_down
(
isl::checked::multi_val
mv)
const
12942
{
12943
auto
res
= isl_multi_val_scale_down_multi_val(
copy
(), mv.
release
());
12944
return
manage
(
res
);
12945
}
12946
12947
isl::checked::multi_val
multi_val::scale_down
(
isl::checked::val
v)
const
12948
{
12949
auto
res
= isl_multi_val_scale_down_val(
copy
(), v.
release
());
12950
return
manage
(
res
);
12951
}
12952
12953
isl::checked::multi_val
multi_val::scale_down
(
long
v)
const
12954
{
12955
return
this->
scale_down
(
isl::checked::val
(
ctx
(), v));
12956
}
12957
12958
isl::checked::multi_val
multi_val::set_at
(
int
pos
,
isl::checked::val
el)
const
12959
{
12960
auto
res
= isl_multi_val_set_at(
copy
(),
pos
, el.
release
());
12961
return
manage
(
res
);
12962
}
12963
12964
isl::checked::multi_val
multi_val::set_at
(
int
pos
,
long
el)
const
12965
{
12966
return
this->
set_at
(pos,
isl::checked::val
(
ctx
(), el));
12967
}
12968
12969
isl::checked::multi_val
multi_val::set_range_tuple
(
isl::checked::id
id
)
const
12970
{
12971
auto
res
= isl_multi_val_set_range_tuple_id(
copy
(),
id
.
release
());
12972
return
manage
(
res
);
12973
}
12974
12975
isl::checked::multi_val
multi_val::set_range_tuple
(
const
std::string &
id
)
const
12976
{
12977
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
12978
}
12979
12980
class
size
multi_val
::
size
() const
12981
{
12982
auto
res
= isl_multi_val_size(
get
());
12983
return
manage
(
res
);
12984
}
12985
12986
isl::checked::space
multi_val::space
()
const
12987
{
12988
auto
res
= isl_multi_val_get_space(
get
());
12989
return
manage
(
res
);
12990
}
12991
12992
isl::checked::space
multi_val::get_space
()
const
12993
{
12994
return
space
();
12995
}
12996
12997
isl::checked::multi_val
multi_val::sub
(
isl::checked::multi_val
multi2)
const
12998
{
12999
auto
res
= isl_multi_val_sub(
copy
(), multi2.
release
());
13000
return
manage
(
res
);
13001
}
13002
13003
isl::checked::multi_val
multi_val::zero
(
isl::checked::space
space
)
13004
{
13005
auto
res
= isl_multi_val_zero(
space
.release());
13006
return
manage
(
res
);
13007
}
13008
13009
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_val
&
obj
)
13010
{
13011
char
*
str
=
isl_multi_val_to_str
(
obj
.get());
13012
if
(!
str
) {
13013
os.setstate(std::ios_base::badbit);
13014
return
os;
13015
}
13016
os <<
str
;
13017
free(
str
);
13018
return
os;
13019
}
13020
13021
// implementations for isl::point
13022
point
manage
(
__isl_take
isl_point
*
ptr
) {
13023
return
point
(
ptr
);
13024
}
13025
point
manage_copy
(
__isl_keep
isl_point
*
ptr
) {
13026
ptr
=
isl_point_copy
(
ptr
);
13027
return
point
(
ptr
);
13028
}
13029
13030
point::point
(
__isl_take
isl_point
*
ptr
)
13031
:
ptr
(
ptr
) {}
13032
13033
point::point
()
13034
:
ptr
(nullptr) {}
13035
13036
point::point
(
const
point
&
obj
)
13037
:
ptr
(nullptr)
13038
{
13039
ptr
=
obj
.copy();
13040
}
13041
13042
point
&
point::operator=
(
point
obj
) {
13043
std::swap(this->ptr,
obj
.ptr);
13044
return
*
this
;
13045
}
13046
13047
point::~point
() {
13048
if
(
ptr
)
13049
isl_point_free
(
ptr
);
13050
}
13051
13052
__isl_give
isl_point
*
point::copy
() const & {
13053
return
isl_point_copy
(
ptr
);
13054
}
13055
13056
__isl_keep
isl_point
*
point::get
()
const
{
13057
return
ptr
;
13058
}
13059
13060
__isl_give
isl_point
*
point::release
() {
13061
isl_point
*tmp =
ptr
;
13062
ptr
=
nullptr
;
13063
return
tmp;
13064
}
13065
13066
bool
point::is_null
()
const
{
13067
return
ptr
==
nullptr
;
13068
}
13069
13070
isl::checked::ctx
point::ctx
()
const
{
13071
return
isl::checked::ctx
(
isl_point_get_ctx
(
ptr
));
13072
}
13073
13074
isl::checked::basic_set
point::affine_hull
()
const
13075
{
13076
return
isl::checked::basic_set
(*this).
affine_hull
();
13077
}
13078
13079
isl::checked::basic_set
point::apply
(
const
isl::checked::basic_map
&bmap)
const
13080
{
13081
return
isl::checked::basic_set
(*this).
apply
(bmap);
13082
}
13083
13084
isl::checked::set
point::apply
(
const
isl::checked::map
&
map
)
const
13085
{
13086
return
isl::checked::basic_set
(*this).
apply
(
map
);
13087
}
13088
13089
isl::checked::union_set
point::apply
(
const
isl::checked::union_map
&umap)
const
13090
{
13091
return
isl::checked::basic_set
(*this).
apply
(umap);
13092
}
13093
13094
isl::checked::pw_multi_aff
point::as_pw_multi_aff
()
const
13095
{
13096
return
isl::checked::basic_set
(*this).
as_pw_multi_aff
();
13097
}
13098
13099
isl::checked::set
point::as_set
()
const
13100
{
13101
return
isl::checked::basic_set
(*this).
as_set
();
13102
}
13103
13104
isl::checked::set
point::bind
(
const
isl::checked::multi_id
&
tuple
)
const
13105
{
13106
return
isl::checked::basic_set
(*this).
bind
(
tuple
);
13107
}
13108
13109
isl::checked::set
point::coalesce
()
const
13110
{
13111
return
isl::checked::basic_set
(*this).
coalesce
();
13112
}
13113
13114
isl::checked::set
point::complement
()
const
13115
{
13116
return
isl::checked::basic_set
(*this).
complement
();
13117
}
13118
13119
isl::checked::union_set
point::compute_divs
()
const
13120
{
13121
return
isl::checked::basic_set
(*this).
compute_divs
();
13122
}
13123
13124
isl::checked::basic_set
point::detect_equalities
()
const
13125
{
13126
return
isl::checked::basic_set
(*this).
detect_equalities
();
13127
}
13128
13129
isl::checked::val
point::dim_max_val
(
int
pos
)
const
13130
{
13131
return
isl::checked::basic_set
(*this).
dim_max_val
(
pos
);
13132
}
13133
13134
isl::checked::val
point::dim_min_val
(
int
pos
)
const
13135
{
13136
return
isl::checked::basic_set
(*this).
dim_min_val
(
pos
);
13137
}
13138
13139
isl::checked::set
point::drop_unused_params
()
const
13140
{
13141
return
isl::checked::basic_set
(*this).
drop_unused_params
();
13142
}
13143
13144
boolean
point::every_set
(
const
std::function<
boolean
(
isl::checked::set
)> &
test
)
const
13145
{
13146
return
isl::checked::basic_set
(*this).
every_set
(
test
);
13147
}
13148
13149
isl::checked::set
point::extract_set
(
const
isl::checked::space
&
space
)
const
13150
{
13151
return
isl::checked::basic_set
(*this).
extract_set
(
space
);
13152
}
13153
13154
isl::checked::basic_set
point::flatten
()
const
13155
{
13156
return
isl::checked::basic_set
(*this).
flatten
();
13157
}
13158
13159
stat
point::foreach_basic_set
(
const
std::function<
stat
(
isl::checked::basic_set
)> &
fn
)
const
13160
{
13161
return
isl::checked::basic_set
(*this).
foreach_basic_set
(
fn
);
13162
}
13163
13164
stat
point::foreach_point
(
const
std::function<
stat
(
isl::checked::point
)> &
fn
)
const
13165
{
13166
return
isl::checked::basic_set
(*this).
foreach_point
(
fn
);
13167
}
13168
13169
stat
point::foreach_set
(
const
std::function<
stat
(
isl::checked::set
)> &
fn
)
const
13170
{
13171
return
isl::checked::basic_set
(*this).
foreach_set
(
fn
);
13172
}
13173
13174
isl::checked::basic_set
point::gist
(
const
isl::checked::basic_set
&
context
)
const
13175
{
13176
return
isl::checked::basic_set
(*this).
gist
(
context
);
13177
}
13178
13179
isl::checked::set
point::gist
(
const
isl::checked::set
&
context
)
const
13180
{
13181
return
isl::checked::basic_set
(*this).
gist
(
context
);
13182
}
13183
13184
isl::checked::union_set
point::gist
(
const
isl::checked::union_set
&
context
)
const
13185
{
13186
return
isl::checked::basic_set
(*this).
gist
(
context
);
13187
}
13188
13189
isl::checked::set
point::gist_params
(
const
isl::checked::set
&
context
)
const
13190
{
13191
return
isl::checked::basic_set
(*this).
gist_params
(
context
);
13192
}
13193
13194
isl::checked::map
point::identity
()
const
13195
{
13196
return
isl::checked::basic_set
(*this).
identity
();
13197
}
13198
13199
isl::checked::pw_aff
point::indicator_function
()
const
13200
{
13201
return
isl::checked::basic_set
(*this).
indicator_function
();
13202
}
13203
13204
isl::checked::map
point::insert_domain
(
const
isl::checked::space
&
domain
)
const
13205
{
13206
return
isl::checked::basic_set
(*this).
insert_domain
(
domain
);
13207
}
13208
13209
isl::checked::basic_set
point::intersect
(
const
isl::checked::basic_set
&bset2)
const
13210
{
13211
return
isl::checked::basic_set
(*this).
intersect
(bset2);
13212
}
13213
13214
isl::checked::set
point::intersect
(
const
isl::checked::set
&
set2
)
const
13215
{
13216
return
isl::checked::basic_set
(*this).
intersect
(
set2
);
13217
}
13218
13219
isl::checked::union_set
point::intersect
(
const
isl::checked::union_set
&uset2)
const
13220
{
13221
return
isl::checked::basic_set
(*this).
intersect
(uset2);
13222
}
13223
13224
isl::checked::basic_set
point::intersect_params
(
const
isl::checked::basic_set
&bset2)
const
13225
{
13226
return
isl::checked::basic_set
(*this).
intersect_params
(bset2);
13227
}
13228
13229
isl::checked::set
point::intersect_params
(
const
isl::checked::set
&
params
)
const
13230
{
13231
return
isl::checked::basic_set
(*this).
intersect_params
(
params
);
13232
}
13233
13234
boolean
point::involves_locals
()
const
13235
{
13236
return
isl::checked::basic_set
(*this).
involves_locals
();
13237
}
13238
13239
boolean
point::is_disjoint
(
const
isl::checked::set
&
set2
)
const
13240
{
13241
return
isl::checked::basic_set
(*this).
is_disjoint
(
set2
);
13242
}
13243
13244
boolean
point::is_disjoint
(
const
isl::checked::union_set
&uset2)
const
13245
{
13246
return
isl::checked::basic_set
(*this).
is_disjoint
(uset2);
13247
}
13248
13249
boolean
point::is_empty
()
const
13250
{
13251
return
isl::checked::basic_set
(*this).
is_empty
();
13252
}
13253
13254
boolean
point::is_equal
(
const
isl::checked::basic_set
&bset2)
const
13255
{
13256
return
isl::checked::basic_set
(*this).
is_equal
(bset2);
13257
}
13258
13259
boolean
point::is_equal
(
const
isl::checked::set
&
set2
)
const
13260
{
13261
return
isl::checked::basic_set
(*this).
is_equal
(
set2
);
13262
}
13263
13264
boolean
point::is_equal
(
const
isl::checked::union_set
&uset2)
const
13265
{
13266
return
isl::checked::basic_set
(*this).
is_equal
(uset2);
13267
}
13268
13269
boolean
point::is_singleton
()
const
13270
{
13271
return
isl::checked::basic_set
(*this).
is_singleton
();
13272
}
13273
13274
boolean
point::is_strict_subset
(
const
isl::checked::set
&
set2
)
const
13275
{
13276
return
isl::checked::basic_set
(*this).
is_strict_subset
(
set2
);
13277
}
13278
13279
boolean
point::is_strict_subset
(
const
isl::checked::union_set
&uset2)
const
13280
{
13281
return
isl::checked::basic_set
(*this).
is_strict_subset
(uset2);
13282
}
13283
13284
boolean
point::is_subset
(
const
isl::checked::basic_set
&bset2)
const
13285
{
13286
return
isl::checked::basic_set
(*this).
is_subset
(bset2);
13287
}
13288
13289
boolean
point::is_subset
(
const
isl::checked::set
&
set2
)
const
13290
{
13291
return
isl::checked::basic_set
(*this).
is_subset
(
set2
);
13292
}
13293
13294
boolean
point::is_subset
(
const
isl::checked::union_set
&uset2)
const
13295
{
13296
return
isl::checked::basic_set
(*this).
is_subset
(uset2);
13297
}
13298
13299
boolean
point::is_wrapping
()
const
13300
{
13301
return
isl::checked::basic_set
(*this).
is_wrapping
();
13302
}
13303
13304
boolean
point::isa_set
()
const
13305
{
13306
return
isl::checked::basic_set
(*this).
isa_set
();
13307
}
13308
13309
isl::checked::fixed_box
point::lattice_tile
()
const
13310
{
13311
return
isl::checked::basic_set
(*this).
lattice_tile
();
13312
}
13313
13314
isl::checked::set
point::lexmax
()
const
13315
{
13316
return
isl::checked::basic_set
(*this).
lexmax
();
13317
}
13318
13319
isl::checked::pw_multi_aff
point::lexmax_pw_multi_aff
()
const
13320
{
13321
return
isl::checked::basic_set
(*this).
lexmax_pw_multi_aff
();
13322
}
13323
13324
isl::checked::set
point::lexmin
()
const
13325
{
13326
return
isl::checked::basic_set
(*this).
lexmin
();
13327
}
13328
13329
isl::checked::pw_multi_aff
point::lexmin_pw_multi_aff
()
const
13330
{
13331
return
isl::checked::basic_set
(*this).
lexmin_pw_multi_aff
();
13332
}
13333
13334
isl::checked::set
point::lower_bound
(
const
isl::checked::multi_pw_aff
&lower)
const
13335
{
13336
return
isl::checked::basic_set
(*this).
lower_bound
(lower);
13337
}
13338
13339
isl::checked::set
point::lower_bound
(
const
isl::checked::multi_val
&lower)
const
13340
{
13341
return
isl::checked::basic_set
(*this).
lower_bound
(lower);
13342
}
13343
13344
isl::checked::multi_pw_aff
point::max_multi_pw_aff
()
const
13345
{
13346
return
isl::checked::basic_set
(*this).
max_multi_pw_aff
();
13347
}
13348
13349
isl::checked::val
point::max_val
(
const
isl::checked::aff
&
obj
)
const
13350
{
13351
return
isl::checked::basic_set
(*this).
max_val
(
obj
);
13352
}
13353
13354
isl::checked::multi_pw_aff
point::min_multi_pw_aff
()
const
13355
{
13356
return
isl::checked::basic_set
(*this).
min_multi_pw_aff
();
13357
}
13358
13359
isl::checked::val
point::min_val
(
const
isl::checked::aff
&
obj
)
const
13360
{
13361
return
isl::checked::basic_set
(*this).
min_val
(
obj
);
13362
}
13363
13364
isl::checked::multi_val
point::multi_val
()
const
13365
{
13366
auto
res
=
isl_point_get_multi_val
(
get
());
13367
return
manage
(
res
);
13368
}
13369
13370
isl::checked::multi_val
point::get_multi_val
()
const
13371
{
13372
return
multi_val
();
13373
}
13374
13375
class
size
point
::
n_basic_set
() const
13376
{
13377
return
isl::checked::basic_set
(*this).
n_basic_set
();
13378
}
13379
13380
isl::checked::pw_aff
point::param_pw_aff_on_domain
(
const
isl::checked::id
&
id
)
const
13381
{
13382
return
isl::checked::basic_set
(*this).
param_pw_aff_on_domain
(
id
);
13383
}
13384
13385
isl::checked::pw_aff
point::param_pw_aff_on_domain
(
const
std::string &
id
)
const
13386
{
13387
return
this->
param_pw_aff_on_domain
(
isl::checked::id
(
ctx
(),
id
));
13388
}
13389
13390
isl::checked::basic_set
point::params
()
const
13391
{
13392
return
isl::checked::basic_set
(*this).
params
();
13393
}
13394
13395
isl::checked::multi_val
point::plain_multi_val_if_fixed
()
const
13396
{
13397
return
isl::checked::basic_set
(*this).
plain_multi_val_if_fixed
();
13398
}
13399
13400
isl::checked::basic_set
point::polyhedral_hull
()
const
13401
{
13402
return
isl::checked::basic_set
(*this).
polyhedral_hull
();
13403
}
13404
13405
isl::checked::set
point::preimage
(
const
isl::checked::multi_aff
&
ma
)
const
13406
{
13407
return
isl::checked::basic_set
(*this).
preimage
(
ma
);
13408
}
13409
13410
isl::checked::set
point::preimage
(
const
isl::checked::multi_pw_aff
&mpa)
const
13411
{
13412
return
isl::checked::basic_set
(*this).
preimage
(mpa);
13413
}
13414
13415
isl::checked::set
point::preimage
(
const
isl::checked::pw_multi_aff
&
pma
)
const
13416
{
13417
return
isl::checked::basic_set
(*this).
preimage
(
pma
);
13418
}
13419
13420
isl::checked::union_set
point::preimage
(
const
isl::checked::union_pw_multi_aff
&upma)
const
13421
{
13422
return
isl::checked::basic_set
(*this).
preimage
(upma);
13423
}
13424
13425
isl::checked::set
point::product
(
const
isl::checked::set
&
set2
)
const
13426
{
13427
return
isl::checked::basic_set
(*this).
product
(
set2
);
13428
}
13429
13430
isl::checked::set
point::project_out_all_params
()
const
13431
{
13432
return
isl::checked::basic_set
(*this).
project_out_all_params
();
13433
}
13434
13435
isl::checked::set
point::project_out_param
(
const
isl::checked::id
&
id
)
const
13436
{
13437
return
isl::checked::basic_set
(*this).
project_out_param
(
id
);
13438
}
13439
13440
isl::checked::set
point::project_out_param
(
const
std::string &
id
)
const
13441
{
13442
return
this->
project_out_param
(
isl::checked::id
(
ctx
(),
id
));
13443
}
13444
13445
isl::checked::set
point::project_out_param
(
const
isl::checked::id_list
&list)
const
13446
{
13447
return
isl::checked::basic_set
(*this).
project_out_param
(list);
13448
}
13449
13450
isl::checked::pw_aff
point::pw_aff_on_domain
(
const
isl::checked::val
&v)
const
13451
{
13452
return
isl::checked::basic_set
(*this).
pw_aff_on_domain
(v);
13453
}
13454
13455
isl::checked::pw_aff
point::pw_aff_on_domain
(
long
v)
const
13456
{
13457
return
this->
pw_aff_on_domain
(
isl::checked::val
(
ctx
(), v));
13458
}
13459
13460
isl::checked::pw_multi_aff
point::pw_multi_aff_on_domain
(
const
isl::checked::multi_val
&mv)
const
13461
{
13462
return
isl::checked::basic_set
(*this).
pw_multi_aff_on_domain
(mv);
13463
}
13464
13465
isl::checked::basic_set
point::sample
()
const
13466
{
13467
return
isl::checked::basic_set
(*this).
sample
();
13468
}
13469
13470
isl::checked::point
point::sample_point
()
const
13471
{
13472
return
isl::checked::basic_set
(*this).
sample_point
();
13473
}
13474
13475
isl::checked::set_list
point::set_list
()
const
13476
{
13477
return
isl::checked::basic_set
(*this).
set_list
();
13478
}
13479
13480
isl::checked::fixed_box
point::simple_fixed_box_hull
()
const
13481
{
13482
return
isl::checked::basic_set
(*this).
simple_fixed_box_hull
();
13483
}
13484
13485
isl::checked::space
point::space
()
const
13486
{
13487
return
isl::checked::basic_set
(*this).
space
();
13488
}
13489
13490
isl::checked::val
point::stride
(
int
pos
)
const
13491
{
13492
return
isl::checked::basic_set
(*this).
stride
(
pos
);
13493
}
13494
13495
isl::checked::set
point::subtract
(
const
isl::checked::set
&
set2
)
const
13496
{
13497
return
isl::checked::basic_set
(*this).
subtract
(
set2
);
13498
}
13499
13500
isl::checked::union_set
point::subtract
(
const
isl::checked::union_set
&uset2)
const
13501
{
13502
return
isl::checked::basic_set
(*this).
subtract
(uset2);
13503
}
13504
13505
isl::checked::set_list
point::to_list
()
const
13506
{
13507
return
isl::checked::basic_set
(*this).
to_list
();
13508
}
13509
13510
isl::checked::set
point::to_set
()
const
13511
{
13512
auto
res
=
isl_point_to_set
(
copy
());
13513
return
manage
(
res
);
13514
}
13515
13516
isl::checked::union_set
point::to_union_set
()
const
13517
{
13518
return
isl::checked::basic_set
(*this).
to_union_set
();
13519
}
13520
13521
isl::checked::map
point::translation
()
const
13522
{
13523
return
isl::checked::basic_set
(*this).
translation
();
13524
}
13525
13526
class
size
point
::
tuple_dim
() const
13527
{
13528
return
isl::checked::basic_set
(*this).
tuple_dim
();
13529
}
13530
13531
isl::checked::set
point::unbind_params
(
const
isl::checked::multi_id
&
tuple
)
const
13532
{
13533
return
isl::checked::basic_set
(*this).
unbind_params
(
tuple
);
13534
}
13535
13536
isl::checked::map
point::unbind_params_insert_domain
(
const
isl::checked::multi_id
&
domain
)
const
13537
{
13538
return
isl::checked::basic_set
(*this).
unbind_params_insert_domain
(
domain
);
13539
}
13540
13541
isl::checked::set
point::unite
(
const
isl::checked::basic_set
&bset2)
const
13542
{
13543
return
isl::checked::basic_set
(*this).
unite
(bset2);
13544
}
13545
13546
isl::checked::set
point::unite
(
const
isl::checked::set
&
set2
)
const
13547
{
13548
return
isl::checked::basic_set
(*this).
unite
(
set2
);
13549
}
13550
13551
isl::checked::union_set
point::unite
(
const
isl::checked::union_set
&uset2)
const
13552
{
13553
return
isl::checked::basic_set
(*this).
unite
(uset2);
13554
}
13555
13556
isl::checked::basic_set
point::unshifted_simple_hull
()
const
13557
{
13558
return
isl::checked::basic_set
(*this).
unshifted_simple_hull
();
13559
}
13560
13561
isl::checked::map
point::unwrap
()
const
13562
{
13563
return
isl::checked::basic_set
(*this).
unwrap
();
13564
}
13565
13566
isl::checked::set
point::upper_bound
(
const
isl::checked::multi_pw_aff
&upper)
const
13567
{
13568
return
isl::checked::basic_set
(*this).
upper_bound
(upper);
13569
}
13570
13571
isl::checked::set
point::upper_bound
(
const
isl::checked::multi_val
&upper)
const
13572
{
13573
return
isl::checked::basic_set
(*this).
upper_bound
(upper);
13574
}
13575
13576
isl::checked::set
point::wrapped_reverse
()
const
13577
{
13578
return
isl::checked::basic_set
(*this).
wrapped_reverse
();
13579
}
13580
13581
inline
std::ostream &
operator<<
(std::ostream &os,
const
point
&
obj
)
13582
{
13583
char
*
str
=
isl_point_to_str
(
obj
.get());
13584
if
(!
str
) {
13585
os.setstate(std::ios_base::badbit);
13586
return
os;
13587
}
13588
os <<
str
;
13589
free(
str
);
13590
return
os;
13591
}
13592
13593
// implementations for isl::pw_aff
13594
pw_aff
manage
(
__isl_take
isl_pw_aff
*
ptr
) {
13595
return
pw_aff
(
ptr
);
13596
}
13597
pw_aff
manage_copy
(
__isl_keep
isl_pw_aff
*
ptr
) {
13598
ptr
=
isl_pw_aff_copy
(
ptr
);
13599
return
pw_aff
(
ptr
);
13600
}
13601
13602
pw_aff::pw_aff
(
__isl_take
isl_pw_aff
*
ptr
)
13603
:
ptr
(
ptr
) {}
13604
13605
pw_aff::pw_aff
()
13606
:
ptr
(nullptr) {}
13607
13608
pw_aff::pw_aff
(
const
pw_aff
&
obj
)
13609
:
ptr
(nullptr)
13610
{
13611
ptr
=
obj
.copy();
13612
}
13613
13614
pw_aff::pw_aff
(
isl::checked::aff
aff
)
13615
{
13616
auto
res
=
isl_pw_aff_from_aff
(
aff
.
release
());
13617
ptr
=
res
;
13618
}
13619
13620
pw_aff::pw_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
13621
{
13622
auto
res
=
isl_pw_aff_read_from_str
(
ctx
.release(),
str
.c_str());
13623
ptr
=
res
;
13624
}
13625
13626
pw_aff
&
pw_aff::operator=
(
pw_aff
obj
) {
13627
std::swap(this->ptr,
obj
.ptr);
13628
return
*
this
;
13629
}
13630
13631
pw_aff::~pw_aff
() {
13632
if
(
ptr
)
13633
isl_pw_aff_free
(
ptr
);
13634
}
13635
13636
__isl_give
isl_pw_aff
*
pw_aff::copy
() const & {
13637
return
isl_pw_aff_copy
(
ptr
);
13638
}
13639
13640
__isl_keep
isl_pw_aff
*
pw_aff::get
()
const
{
13641
return
ptr
;
13642
}
13643
13644
__isl_give
isl_pw_aff
*
pw_aff::release
() {
13645
isl_pw_aff
*tmp =
ptr
;
13646
ptr
=
nullptr
;
13647
return
tmp;
13648
}
13649
13650
bool
pw_aff::is_null
()
const
{
13651
return
ptr
==
nullptr
;
13652
}
13653
13654
isl::checked::ctx
pw_aff::ctx
()
const
{
13655
return
isl::checked::ctx
(
isl_pw_aff_get_ctx
(
ptr
));
13656
}
13657
13658
isl::checked::multi_pw_aff
pw_aff::add
(
const
isl::checked::multi_pw_aff
&multi2)
const
13659
{
13660
return
isl::checked::pw_multi_aff
(*this).
add
(multi2);
13661
}
13662
13663
isl::checked::multi_union_pw_aff
pw_aff::add
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
13664
{
13665
return
isl::checked::union_pw_aff
(*this).
add
(multi2);
13666
}
13667
13668
isl::checked::pw_aff
pw_aff::add
(
isl::checked::pw_aff
pwaff2)
const
13669
{
13670
auto
res
=
isl_pw_aff_add
(
copy
(), pwaff2.
release
());
13671
return
manage
(
res
);
13672
}
13673
13674
isl::checked::pw_multi_aff
pw_aff::add
(
const
isl::checked::pw_multi_aff
&pma2)
const
13675
{
13676
return
isl::checked::pw_multi_aff
(*this).
add
(pma2);
13677
}
13678
13679
isl::checked::union_pw_aff
pw_aff::add
(
const
isl::checked::union_pw_aff
&upa2)
const
13680
{
13681
return
isl::checked::union_pw_aff
(*this).
add
(upa2);
13682
}
13683
13684
isl::checked::union_pw_multi_aff
pw_aff::add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
13685
{
13686
return
isl::checked::union_pw_aff
(*this).
add
(upma2);
13687
}
13688
13689
isl::checked::pw_aff
pw_aff::add
(
const
isl::checked::aff
&pwaff2)
const
13690
{
13691
return
this->
add
(
isl::checked::pw_aff
(pwaff2));
13692
}
13693
13694
isl::checked::pw_aff
pw_aff::add_constant
(
isl::checked::val
v)
const
13695
{
13696
auto
res
=
isl_pw_aff_add_constant_val
(
copy
(), v.
release
());
13697
return
manage
(
res
);
13698
}
13699
13700
isl::checked::pw_aff
pw_aff::add_constant
(
long
v)
const
13701
{
13702
return
this->
add_constant
(
isl::checked::val
(
ctx
(), v));
13703
}
13704
13705
isl::checked::pw_multi_aff
pw_aff::add_constant
(
const
isl::checked::multi_val
&mv)
const
13706
{
13707
return
isl::checked::pw_multi_aff
(*this).
add_constant
(mv);
13708
}
13709
13710
isl::checked::union_pw_multi_aff
pw_aff::apply
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
13711
{
13712
return
isl::checked::union_pw_aff
(*this).
apply
(upma2);
13713
}
13714
13715
isl::checked::aff
pw_aff::as_aff
()
const
13716
{
13717
auto
res
=
isl_pw_aff_as_aff
(
copy
());
13718
return
manage
(
res
);
13719
}
13720
13721
isl::checked::map
pw_aff::as_map
()
const
13722
{
13723
auto
res
=
isl_pw_aff_as_map
(
copy
());
13724
return
manage
(
res
);
13725
}
13726
13727
isl::checked::multi_aff
pw_aff::as_multi_aff
()
const
13728
{
13729
return
isl::checked::pw_multi_aff
(*this).
as_multi_aff
();
13730
}
13731
13732
isl::checked::multi_union_pw_aff
pw_aff::as_multi_union_pw_aff
()
const
13733
{
13734
return
isl::checked::union_pw_aff
(*this).
as_multi_union_pw_aff
();
13735
}
13736
13737
isl::checked::pw_multi_aff
pw_aff::as_pw_multi_aff
()
const
13738
{
13739
return
isl::checked::union_pw_aff
(*this).
as_pw_multi_aff
();
13740
}
13741
13742
isl::checked::set
pw_aff::as_set
()
const
13743
{
13744
return
isl::checked::pw_multi_aff
(*this).
as_set
();
13745
}
13746
13747
isl::checked::union_map
pw_aff::as_union_map
()
const
13748
{
13749
return
isl::checked::union_pw_aff
(*this).
as_union_map
();
13750
}
13751
13752
isl::checked::pw_aff
pw_aff::at
(
int
pos
)
const
13753
{
13754
return
isl::checked::pw_multi_aff
(*this).
at
(
pos
);
13755
}
13756
13757
isl::checked::set
pw_aff::bind
(
const
isl::checked::multi_id
&
tuple
)
const
13758
{
13759
return
isl::checked::multi_pw_aff
(*this).
bind
(
tuple
);
13760
}
13761
13762
isl::checked::set
pw_aff::bind
(
isl::checked::id
id
)
const
13763
{
13764
auto
res
=
isl_pw_aff_bind_id
(
copy
(),
id
.
release
());
13765
return
manage
(
res
);
13766
}
13767
13768
isl::checked::set
pw_aff::bind
(
const
std::string &
id
)
const
13769
{
13770
return
this->
bind
(
isl::checked::id
(
ctx
(),
id
));
13771
}
13772
13773
isl::checked::pw_aff
pw_aff::bind_domain
(
isl::checked::multi_id
tuple
)
const
13774
{
13775
auto
res
=
isl_pw_aff_bind_domain
(
copy
(),
tuple
.release());
13776
return
manage
(
res
);
13777
}
13778
13779
isl::checked::pw_aff
pw_aff::bind_domain_wrapped_domain
(
isl::checked::multi_id
tuple
)
const
13780
{
13781
auto
res
=
isl_pw_aff_bind_domain_wrapped_domain
(
copy
(),
tuple
.release());
13782
return
manage
(
res
);
13783
}
13784
13785
isl::checked::pw_aff
pw_aff::ceil
()
const
13786
{
13787
auto
res
=
isl_pw_aff_ceil
(
copy
());
13788
return
manage
(
res
);
13789
}
13790
13791
isl::checked::pw_aff
pw_aff::coalesce
()
const
13792
{
13793
auto
res
=
isl_pw_aff_coalesce
(
copy
());
13794
return
manage
(
res
);
13795
}
13796
13797
isl::checked::pw_aff
pw_aff::cond
(
isl::checked::pw_aff
pwaff_true,
isl::checked::pw_aff
pwaff_false)
const
13798
{
13799
auto
res
=
isl_pw_aff_cond
(
copy
(), pwaff_true.
release
(), pwaff_false.
release
());
13800
return
manage
(
res
);
13801
}
13802
13803
isl::checked::pw_aff
pw_aff::div
(
isl::checked::pw_aff
pa2)
const
13804
{
13805
auto
res
=
isl_pw_aff_div
(
copy
(), pa2.
release
());
13806
return
manage
(
res
);
13807
}
13808
13809
isl::checked::set
pw_aff::domain
()
const
13810
{
13811
auto
res
=
isl_pw_aff_domain
(
copy
());
13812
return
manage
(
res
);
13813
}
13814
13815
isl::checked::pw_aff
pw_aff::domain_reverse
()
const
13816
{
13817
auto
res
=
isl_pw_aff_domain_reverse
(
copy
());
13818
return
manage
(
res
);
13819
}
13820
13821
isl::checked::pw_aff
pw_aff::drop_unused_params
()
const
13822
{
13823
auto
res
=
isl_pw_aff_drop_unused_params
(
copy
());
13824
return
manage
(
res
);
13825
}
13826
13827
isl::checked::set
pw_aff::eq_set
(
isl::checked::pw_aff
pwaff2)
const
13828
{
13829
auto
res
=
isl_pw_aff_eq_set
(
copy
(), pwaff2.
release
());
13830
return
manage
(
res
);
13831
}
13832
13833
isl::checked::val
pw_aff::eval
(
isl::checked::point
pnt)
const
13834
{
13835
auto
res
=
isl_pw_aff_eval
(
copy
(), pnt.
release
());
13836
return
manage
(
res
);
13837
}
13838
13839
isl::checked::pw_multi_aff
pw_aff::extract_pw_multi_aff
(
const
isl::checked::space
&
space
)
const
13840
{
13841
return
isl::checked::union_pw_aff
(*this).
extract_pw_multi_aff
(
space
);
13842
}
13843
13844
isl::checked::multi_pw_aff
pw_aff::flat_range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
13845
{
13846
return
isl::checked::pw_multi_aff
(*this).
flat_range_product
(multi2);
13847
}
13848
13849
isl::checked::multi_union_pw_aff
pw_aff::flat_range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
13850
{
13851
return
isl::checked::union_pw_aff
(*this).
flat_range_product
(multi2);
13852
}
13853
13854
isl::checked::pw_multi_aff
pw_aff::flat_range_product
(
const
isl::checked::pw_multi_aff
&pma2)
const
13855
{
13856
return
isl::checked::pw_multi_aff
(*this).
flat_range_product
(pma2);
13857
}
13858
13859
isl::checked::union_pw_multi_aff
pw_aff::flat_range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
13860
{
13861
return
isl::checked::union_pw_aff
(*this).
flat_range_product
(upma2);
13862
}
13863
13864
isl::checked::pw_aff
pw_aff::floor
()
const
13865
{
13866
auto
res
=
isl_pw_aff_floor
(
copy
());
13867
return
manage
(
res
);
13868
}
13869
13870
stat
pw_aff::foreach_piece
(
const
std::function<
stat
(
isl::checked::set
,
isl::checked::multi_aff
)> &
fn
)
const
13871
{
13872
return
isl::checked::pw_multi_aff
(*this).
foreach_piece
(
fn
);
13873
}
13874
13875
isl::checked::set
pw_aff::ge_set
(
isl::checked::pw_aff
pwaff2)
const
13876
{
13877
auto
res
=
isl_pw_aff_ge_set
(
copy
(), pwaff2.
release
());
13878
return
manage
(
res
);
13879
}
13880
13881
isl::checked::pw_aff
pw_aff::gist
(
isl::checked::set
context
)
const
13882
{
13883
auto
res
=
isl_pw_aff_gist
(
copy
(),
context
.release());
13884
return
manage
(
res
);
13885
}
13886
13887
isl::checked::union_pw_aff
pw_aff::gist
(
const
isl::checked::union_set
&
context
)
const
13888
{
13889
return
isl::checked::union_pw_aff
(*this).
gist
(
context
);
13890
}
13891
13892
isl::checked::pw_aff
pw_aff::gist
(
const
isl::checked::basic_set
&
context
)
const
13893
{
13894
return
this->
gist
(
isl::checked::set
(
context
));
13895
}
13896
13897
isl::checked::pw_aff
pw_aff::gist
(
const
isl::checked::point
&
context
)
const
13898
{
13899
return
this->
gist
(
isl::checked::set
(
context
));
13900
}
13901
13902
isl::checked::pw_aff
pw_aff::gist_params
(
isl::checked::set
context
)
const
13903
{
13904
auto
res
=
isl_pw_aff_gist_params
(
copy
(),
context
.release());
13905
return
manage
(
res
);
13906
}
13907
13908
isl::checked::set
pw_aff::gt_set
(
isl::checked::pw_aff
pwaff2)
const
13909
{
13910
auto
res
=
isl_pw_aff_gt_set
(
copy
(), pwaff2.
release
());
13911
return
manage
(
res
);
13912
}
13913
13914
boolean
pw_aff::has_range_tuple_id
()
const
13915
{
13916
return
isl::checked::pw_multi_aff
(*this).
has_range_tuple_id
();
13917
}
13918
13919
isl::checked::multi_pw_aff
pw_aff::identity
()
const
13920
{
13921
return
isl::checked::pw_multi_aff
(*this).
identity
();
13922
}
13923
13924
isl::checked::pw_aff
pw_aff::insert_domain
(
isl::checked::space
domain
)
const
13925
{
13926
auto
res
=
isl_pw_aff_insert_domain
(
copy
(),
domain
.release());
13927
return
manage
(
res
);
13928
}
13929
13930
isl::checked::pw_aff
pw_aff::intersect_domain
(
isl::checked::set
set
)
const
13931
{
13932
auto
res
=
isl_pw_aff_intersect_domain
(
copy
(),
set
.
release
());
13933
return
manage
(
res
);
13934
}
13935
13936
isl::checked::union_pw_aff
pw_aff::intersect_domain
(
const
isl::checked::space
&
space
)
const
13937
{
13938
return
isl::checked::union_pw_aff
(*this).
intersect_domain
(
space
);
13939
}
13940
13941
isl::checked::union_pw_aff
pw_aff::intersect_domain
(
const
isl::checked::union_set
&uset)
const
13942
{
13943
return
isl::checked::union_pw_aff
(*this).
intersect_domain
(uset);
13944
}
13945
13946
isl::checked::pw_aff
pw_aff::intersect_domain
(
const
isl::checked::basic_set
&
set
)
const
13947
{
13948
return
this->
intersect_domain
(
isl::checked::set
(
set
));
13949
}
13950
13951
isl::checked::pw_aff
pw_aff::intersect_domain
(
const
isl::checked::point
&
set
)
const
13952
{
13953
return
this->
intersect_domain
(
isl::checked::set
(
set
));
13954
}
13955
13956
isl::checked::union_pw_aff
pw_aff::intersect_domain_wrapped_domain
(
const
isl::checked::union_set
&uset)
const
13957
{
13958
return
isl::checked::union_pw_aff
(*this).
intersect_domain_wrapped_domain
(uset);
13959
}
13960
13961
isl::checked::union_pw_aff
pw_aff::intersect_domain_wrapped_range
(
const
isl::checked::union_set
&uset)
const
13962
{
13963
return
isl::checked::union_pw_aff
(*this).
intersect_domain_wrapped_range
(uset);
13964
}
13965
13966
isl::checked::pw_aff
pw_aff::intersect_params
(
isl::checked::set
set
)
const
13967
{
13968
auto
res
=
isl_pw_aff_intersect_params
(
copy
(),
set
.
release
());
13969
return
manage
(
res
);
13970
}
13971
13972
boolean
pw_aff::involves_locals
()
const
13973
{
13974
return
isl::checked::pw_multi_aff
(*this).
involves_locals
();
13975
}
13976
13977
boolean
pw_aff::involves_nan
()
const
13978
{
13979
return
isl::checked::multi_pw_aff
(*this).
involves_nan
();
13980
}
13981
13982
boolean
pw_aff::involves_param
(
const
isl::checked::id
&
id
)
const
13983
{
13984
return
isl::checked::pw_multi_aff
(*this).
involves_param
(
id
);
13985
}
13986
13987
boolean
pw_aff::involves_param
(
const
std::string &
id
)
const
13988
{
13989
return
this->
involves_param
(
isl::checked::id
(
ctx
(),
id
));
13990
}
13991
13992
boolean
pw_aff::involves_param
(
const
isl::checked::id_list
&
list
)
const
13993
{
13994
return
isl::checked::pw_multi_aff
(*this).
involves_param
(
list
);
13995
}
13996
13997
boolean
pw_aff::isa_aff
()
const
13998
{
13999
auto
res
=
isl_pw_aff_isa_aff
(
get
());
14000
return
manage
(
res
);
14001
}
14002
14003
boolean
pw_aff::isa_multi_aff
()
const
14004
{
14005
return
isl::checked::pw_multi_aff
(*this).
isa_multi_aff
();
14006
}
14007
14008
boolean
pw_aff::isa_pw_multi_aff
()
const
14009
{
14010
return
isl::checked::union_pw_aff
(*this).
isa_pw_multi_aff
();
14011
}
14012
14013
isl::checked::set
pw_aff::le_set
(
isl::checked::pw_aff
pwaff2)
const
14014
{
14015
auto
res
=
isl_pw_aff_le_set
(
copy
(), pwaff2.
release
());
14016
return
manage
(
res
);
14017
}
14018
14019
isl::checked::pw_aff_list
pw_aff::list
()
const
14020
{
14021
return
isl::checked::multi_pw_aff
(*this).
list
();
14022
}
14023
14024
isl::checked::set
pw_aff::lt_set
(
isl::checked::pw_aff
pwaff2)
const
14025
{
14026
auto
res
=
isl_pw_aff_lt_set
(
copy
(), pwaff2.
release
());
14027
return
manage
(
res
);
14028
}
14029
14030
isl::checked::multi_pw_aff
pw_aff::max
(
const
isl::checked::multi_pw_aff
&multi2)
const
14031
{
14032
return
isl::checked::pw_multi_aff
(*this).
max
(multi2);
14033
}
14034
14035
isl::checked::pw_aff
pw_aff::max
(
isl::checked::pw_aff
pwaff2)
const
14036
{
14037
auto
res
=
isl_pw_aff_max
(
copy
(), pwaff2.
release
());
14038
return
manage
(
res
);
14039
}
14040
14041
isl::checked::pw_aff
pw_aff::max
(
const
isl::checked::aff
&pwaff2)
const
14042
{
14043
return
this->
max
(
isl::checked::pw_aff
(pwaff2));
14044
}
14045
14046
isl::checked::multi_val
pw_aff::max_multi_val
()
const
14047
{
14048
return
isl::checked::pw_multi_aff
(*this).
max_multi_val
();
14049
}
14050
14051
isl::checked::val
pw_aff::max_val
()
const
14052
{
14053
auto
res
=
isl_pw_aff_max_val
(
copy
());
14054
return
manage
(
res
);
14055
}
14056
14057
isl::checked::multi_pw_aff
pw_aff::min
(
const
isl::checked::multi_pw_aff
&multi2)
const
14058
{
14059
return
isl::checked::pw_multi_aff
(*this).
min
(multi2);
14060
}
14061
14062
isl::checked::pw_aff
pw_aff::min
(
isl::checked::pw_aff
pwaff2)
const
14063
{
14064
auto
res
=
isl_pw_aff_min
(
copy
(), pwaff2.
release
());
14065
return
manage
(
res
);
14066
}
14067
14068
isl::checked::pw_aff
pw_aff::min
(
const
isl::checked::aff
&pwaff2)
const
14069
{
14070
return
this->
min
(
isl::checked::pw_aff
(pwaff2));
14071
}
14072
14073
isl::checked::multi_val
pw_aff::min_multi_val
()
const
14074
{
14075
return
isl::checked::pw_multi_aff
(*this).
min_multi_val
();
14076
}
14077
14078
isl::checked::val
pw_aff::min_val
()
const
14079
{
14080
auto
res
=
isl_pw_aff_min_val
(
copy
());
14081
return
manage
(
res
);
14082
}
14083
14084
isl::checked::pw_aff
pw_aff::mod
(
isl::checked::val
mod
)
const
14085
{
14086
auto
res
=
isl_pw_aff_mod_val
(
copy
(),
mod
.release());
14087
return
manage
(
res
);
14088
}
14089
14090
isl::checked::pw_aff
pw_aff::mod
(
long
mod
)
const
14091
{
14092
return
this->
mod
(
isl::checked::val
(
ctx
(),
mod
));
14093
}
14094
14095
isl::checked::pw_aff
pw_aff::mul
(
isl::checked::pw_aff
pwaff2)
const
14096
{
14097
auto
res
=
isl_pw_aff_mul
(
copy
(), pwaff2.
release
());
14098
return
manage
(
res
);
14099
}
14100
14101
class
size
pw_aff
::
n_piece
() const
14102
{
14103
return
isl::checked::pw_multi_aff
(*this).
n_piece
();
14104
}
14105
14106
isl::checked::set
pw_aff::ne_set
(
isl::checked::pw_aff
pwaff2)
const
14107
{
14108
auto
res
=
isl_pw_aff_ne_set
(
copy
(), pwaff2.
release
());
14109
return
manage
(
res
);
14110
}
14111
14112
isl::checked::pw_aff
pw_aff::neg
()
const
14113
{
14114
auto
res
=
isl_pw_aff_neg
(
copy
());
14115
return
manage
(
res
);
14116
}
14117
14118
isl::checked::pw_aff
pw_aff::param_on_domain
(
isl::checked::set
domain
,
isl::checked::id
id
)
14119
{
14120
auto
res
=
isl_pw_aff_param_on_domain_id
(
domain
.release(),
id
.release());
14121
return
manage
(
res
);
14122
}
14123
14124
isl::checked::set
pw_aff::params
()
const
14125
{
14126
auto
res
=
isl_pw_aff_params
(
copy
());
14127
return
manage
(
res
);
14128
}
14129
14130
boolean
pw_aff::plain_is_empty
()
const
14131
{
14132
return
isl::checked::union_pw_aff
(*this).
plain_is_empty
();
14133
}
14134
14135
boolean
pw_aff::plain_is_equal
(
const
isl::checked::multi_pw_aff
&multi2)
const
14136
{
14137
return
isl::checked::pw_multi_aff
(*this).
plain_is_equal
(multi2);
14138
}
14139
14140
boolean
pw_aff::plain_is_equal
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
14141
{
14142
return
isl::checked::union_pw_aff
(*this).
plain_is_equal
(multi2);
14143
}
14144
14145
boolean
pw_aff::plain_is_equal
(
const
isl::checked::pw_aff
&pwaff2)
const
14146
{
14147
auto
res
=
isl_pw_aff_plain_is_equal
(
get
(), pwaff2.
get
());
14148
return
manage
(
res
);
14149
}
14150
14151
boolean
pw_aff::plain_is_equal
(
const
isl::checked::pw_multi_aff
&pma2)
const
14152
{
14153
return
isl::checked::pw_multi_aff
(*this).
plain_is_equal
(pma2);
14154
}
14155
14156
boolean
pw_aff::plain_is_equal
(
const
isl::checked::union_pw_aff
&upa2)
const
14157
{
14158
return
isl::checked::union_pw_aff
(*this).
plain_is_equal
(upa2);
14159
}
14160
14161
boolean
pw_aff::plain_is_equal
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14162
{
14163
return
isl::checked::union_pw_aff
(*this).
plain_is_equal
(upma2);
14164
}
14165
14166
boolean
pw_aff::plain_is_equal
(
const
isl::checked::aff
&pwaff2)
const
14167
{
14168
return
this->
plain_is_equal
(
isl::checked::pw_aff
(pwaff2));
14169
}
14170
14171
isl::checked::pw_multi_aff
pw_aff::preimage_domain_wrapped_domain
(
const
isl::checked::pw_multi_aff
&pma2)
const
14172
{
14173
return
isl::checked::pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(pma2);
14174
}
14175
14176
isl::checked::union_pw_multi_aff
pw_aff::preimage_domain_wrapped_domain
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14177
{
14178
return
isl::checked::union_pw_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
14179
}
14180
14181
isl::checked::multi_pw_aff
pw_aff::product
(
const
isl::checked::multi_pw_aff
&multi2)
const
14182
{
14183
return
isl::checked::pw_multi_aff
(*this).
product
(multi2);
14184
}
14185
14186
isl::checked::pw_multi_aff
pw_aff::product
(
const
isl::checked::pw_multi_aff
&pma2)
const
14187
{
14188
return
isl::checked::pw_multi_aff
(*this).
product
(pma2);
14189
}
14190
14191
isl::checked::pw_aff
pw_aff::pullback
(
isl::checked::multi_aff
ma
)
const
14192
{
14193
auto
res
=
isl_pw_aff_pullback_multi_aff
(
copy
(),
ma
.release());
14194
return
manage
(
res
);
14195
}
14196
14197
isl::checked::pw_aff
pw_aff::pullback
(
isl::checked::multi_pw_aff
mpa)
const
14198
{
14199
auto
res
=
isl_pw_aff_pullback_multi_pw_aff
(
copy
(), mpa.
release
());
14200
return
manage
(
res
);
14201
}
14202
14203
isl::checked::pw_aff
pw_aff::pullback
(
isl::checked::pw_multi_aff
pma
)
const
14204
{
14205
auto
res
=
isl_pw_aff_pullback_pw_multi_aff
(
copy
(),
pma
.release());
14206
return
manage
(
res
);
14207
}
14208
14209
isl::checked::union_pw_aff
pw_aff::pullback
(
const
isl::checked::union_pw_multi_aff
&upma)
const
14210
{
14211
return
isl::checked::union_pw_aff
(*this).
pullback
(upma);
14212
}
14213
14214
isl::checked::pw_multi_aff_list
pw_aff::pw_multi_aff_list
()
const
14215
{
14216
return
isl::checked::union_pw_aff
(*this).
pw_multi_aff_list
();
14217
}
14218
14219
isl::checked::pw_multi_aff
pw_aff::range_factor_domain
()
const
14220
{
14221
return
isl::checked::pw_multi_aff
(*this).
range_factor_domain
();
14222
}
14223
14224
isl::checked::pw_multi_aff
pw_aff::range_factor_range
()
const
14225
{
14226
return
isl::checked::pw_multi_aff
(*this).
range_factor_range
();
14227
}
14228
14229
isl::checked::multi_pw_aff
pw_aff::range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
14230
{
14231
return
isl::checked::pw_multi_aff
(*this).
range_product
(multi2);
14232
}
14233
14234
isl::checked::multi_union_pw_aff
pw_aff::range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
14235
{
14236
return
isl::checked::union_pw_aff
(*this).
range_product
(multi2);
14237
}
14238
14239
isl::checked::pw_multi_aff
pw_aff::range_product
(
const
isl::checked::pw_multi_aff
&pma2)
const
14240
{
14241
return
isl::checked::pw_multi_aff
(*this).
range_product
(pma2);
14242
}
14243
14244
isl::checked::union_pw_multi_aff
pw_aff::range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14245
{
14246
return
isl::checked::union_pw_aff
(*this).
range_product
(upma2);
14247
}
14248
14249
isl::checked::id
pw_aff::range_tuple_id
()
const
14250
{
14251
return
isl::checked::pw_multi_aff
(*this).
range_tuple_id
();
14252
}
14253
14254
isl::checked::multi_pw_aff
pw_aff::reset_range_tuple_id
()
const
14255
{
14256
return
isl::checked::multi_pw_aff
(*this).
reset_range_tuple_id
();
14257
}
14258
14259
isl::checked::pw_aff
pw_aff::scale
(
isl::checked::val
v)
const
14260
{
14261
auto
res
=
isl_pw_aff_scale_val
(
copy
(), v.
release
());
14262
return
manage
(
res
);
14263
}
14264
14265
isl::checked::pw_aff
pw_aff::scale
(
long
v)
const
14266
{
14267
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
14268
}
14269
14270
isl::checked::pw_multi_aff
pw_aff::scale
(
const
isl::checked::multi_val
&mv)
const
14271
{
14272
return
isl::checked::pw_multi_aff
(*this).
scale
(mv);
14273
}
14274
14275
isl::checked::pw_aff
pw_aff::scale_down
(
isl::checked::val
f
)
const
14276
{
14277
auto
res
=
isl_pw_aff_scale_down_val
(
copy
(),
f
.release());
14278
return
manage
(
res
);
14279
}
14280
14281
isl::checked::pw_aff
pw_aff::scale_down
(
long
f
)
const
14282
{
14283
return
this->
scale_down
(
isl::checked::val
(
ctx
(),
f
));
14284
}
14285
14286
isl::checked::pw_multi_aff
pw_aff::scale_down
(
const
isl::checked::multi_val
&mv)
const
14287
{
14288
return
isl::checked::pw_multi_aff
(*this).
scale_down
(mv);
14289
}
14290
14291
isl::checked::multi_pw_aff
pw_aff::set_at
(
int
pos
,
const
isl::checked::pw_aff
&el)
const
14292
{
14293
return
isl::checked::pw_multi_aff
(*this).
set_at
(
pos
, el);
14294
}
14295
14296
isl::checked::multi_union_pw_aff
pw_aff::set_at
(
int
pos
,
const
isl::checked::union_pw_aff
&el)
const
14297
{
14298
return
isl::checked::union_pw_aff
(*this).
set_at
(
pos
, el);
14299
}
14300
14301
isl::checked::pw_multi_aff
pw_aff::set_range_tuple
(
const
isl::checked::id
&
id
)
const
14302
{
14303
return
isl::checked::pw_multi_aff
(*this).
set_range_tuple
(
id
);
14304
}
14305
14306
isl::checked::pw_multi_aff
pw_aff::set_range_tuple
(
const
std::string &
id
)
const
14307
{
14308
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
14309
}
14310
14311
class
size
pw_aff
::
size
() const
14312
{
14313
return
isl::checked::multi_pw_aff
(*this).
size
();
14314
}
14315
14316
isl::checked::space
pw_aff::space
()
const
14317
{
14318
auto
res
=
isl_pw_aff_get_space
(
get
());
14319
return
manage
(
res
);
14320
}
14321
14322
isl::checked::space
pw_aff::get_space
()
const
14323
{
14324
return
space
();
14325
}
14326
14327
isl::checked::multi_pw_aff
pw_aff::sub
(
const
isl::checked::multi_pw_aff
&multi2)
const
14328
{
14329
return
isl::checked::pw_multi_aff
(*this).
sub
(multi2);
14330
}
14331
14332
isl::checked::multi_union_pw_aff
pw_aff::sub
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
14333
{
14334
return
isl::checked::union_pw_aff
(*this).
sub
(multi2);
14335
}
14336
14337
isl::checked::pw_aff
pw_aff::sub
(
isl::checked::pw_aff
pwaff2)
const
14338
{
14339
auto
res
=
isl_pw_aff_sub
(
copy
(), pwaff2.
release
());
14340
return
manage
(
res
);
14341
}
14342
14343
isl::checked::pw_multi_aff
pw_aff::sub
(
const
isl::checked::pw_multi_aff
&pma2)
const
14344
{
14345
return
isl::checked::pw_multi_aff
(*this).
sub
(pma2);
14346
}
14347
14348
isl::checked::union_pw_aff
pw_aff::sub
(
const
isl::checked::union_pw_aff
&upa2)
const
14349
{
14350
return
isl::checked::union_pw_aff
(*this).
sub
(upa2);
14351
}
14352
14353
isl::checked::union_pw_multi_aff
pw_aff::sub
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14354
{
14355
return
isl::checked::union_pw_aff
(*this).
sub
(upma2);
14356
}
14357
14358
isl::checked::pw_aff
pw_aff::sub
(
const
isl::checked::aff
&pwaff2)
const
14359
{
14360
return
this->
sub
(
isl::checked::pw_aff
(pwaff2));
14361
}
14362
14363
isl::checked::pw_aff
pw_aff::subtract_domain
(
isl::checked::set
set
)
const
14364
{
14365
auto
res
=
isl_pw_aff_subtract_domain
(
copy
(),
set
.
release
());
14366
return
manage
(
res
);
14367
}
14368
14369
isl::checked::union_pw_aff
pw_aff::subtract_domain
(
const
isl::checked::space
&
space
)
const
14370
{
14371
return
isl::checked::union_pw_aff
(*this).
subtract_domain
(
space
);
14372
}
14373
14374
isl::checked::union_pw_aff
pw_aff::subtract_domain
(
const
isl::checked::union_set
&uset)
const
14375
{
14376
return
isl::checked::union_pw_aff
(*this).
subtract_domain
(uset);
14377
}
14378
14379
isl::checked::pw_aff
pw_aff::subtract_domain
(
const
isl::checked::basic_set
&
set
)
const
14380
{
14381
return
this->
subtract_domain
(
isl::checked::set
(
set
));
14382
}
14383
14384
isl::checked::pw_aff
pw_aff::subtract_domain
(
const
isl::checked::point
&
set
)
const
14385
{
14386
return
this->
subtract_domain
(
isl::checked::set
(
set
));
14387
}
14388
14389
isl::checked::pw_aff
pw_aff::tdiv_q
(
isl::checked::pw_aff
pa2)
const
14390
{
14391
auto
res
=
isl_pw_aff_tdiv_q
(
copy
(), pa2.
release
());
14392
return
manage
(
res
);
14393
}
14394
14395
isl::checked::pw_aff
pw_aff::tdiv_r
(
isl::checked::pw_aff
pa2)
const
14396
{
14397
auto
res
=
isl_pw_aff_tdiv_r
(
copy
(), pa2.
release
());
14398
return
manage
(
res
);
14399
}
14400
14401
isl::checked::pw_aff_list
pw_aff::to_list
()
const
14402
{
14403
auto
res
= isl_pw_aff_to_list(
copy
());
14404
return
manage
(
res
);
14405
}
14406
14407
isl::checked::multi_pw_aff
pw_aff::to_multi_pw_aff
()
const
14408
{
14409
return
isl::checked::pw_multi_aff
(*this).
to_multi_pw_aff
();
14410
}
14411
14412
isl::checked::union_pw_aff
pw_aff::to_union_pw_aff
()
const
14413
{
14414
auto
res
=
isl_pw_aff_to_union_pw_aff
(
copy
());
14415
return
manage
(
res
);
14416
}
14417
14418
isl::checked::union_pw_multi_aff
pw_aff::to_union_pw_multi_aff
()
const
14419
{
14420
return
isl::checked::pw_multi_aff
(*this).
to_union_pw_multi_aff
();
14421
}
14422
14423
isl::checked::multi_pw_aff
pw_aff::unbind_params_insert_domain
(
const
isl::checked::multi_id
&
domain
)
const
14424
{
14425
return
isl::checked::pw_multi_aff
(*this).
unbind_params_insert_domain
(
domain
);
14426
}
14427
14428
isl::checked::multi_pw_aff
pw_aff::union_add
(
const
isl::checked::multi_pw_aff
&mpa2)
const
14429
{
14430
return
isl::checked::pw_multi_aff
(*this).
union_add
(mpa2);
14431
}
14432
14433
isl::checked::multi_union_pw_aff
pw_aff::union_add
(
const
isl::checked::multi_union_pw_aff
&mupa2)
const
14434
{
14435
return
isl::checked::union_pw_aff
(*this).
union_add
(mupa2);
14436
}
14437
14438
isl::checked::pw_aff
pw_aff::union_add
(
isl::checked::pw_aff
pwaff2)
const
14439
{
14440
auto
res
=
isl_pw_aff_union_add
(
copy
(), pwaff2.
release
());
14441
return
manage
(
res
);
14442
}
14443
14444
isl::checked::pw_multi_aff
pw_aff::union_add
(
const
isl::checked::pw_multi_aff
&pma2)
const
14445
{
14446
return
isl::checked::pw_multi_aff
(*this).
union_add
(pma2);
14447
}
14448
14449
isl::checked::union_pw_aff
pw_aff::union_add
(
const
isl::checked::union_pw_aff
&upa2)
const
14450
{
14451
return
isl::checked::union_pw_aff
(*this).
union_add
(upa2);
14452
}
14453
14454
isl::checked::union_pw_multi_aff
pw_aff::union_add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14455
{
14456
return
isl::checked::union_pw_aff
(*this).
union_add
(upma2);
14457
}
14458
14459
isl::checked::pw_aff
pw_aff::union_add
(
const
isl::checked::aff
&pwaff2)
const
14460
{
14461
return
this->
union_add
(
isl::checked::pw_aff
(pwaff2));
14462
}
14463
14464
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_aff
&
obj
)
14465
{
14466
char
*
str
=
isl_pw_aff_to_str
(
obj
.get());
14467
if
(!
str
) {
14468
os.setstate(std::ios_base::badbit);
14469
return
os;
14470
}
14471
os <<
str
;
14472
free(
str
);
14473
return
os;
14474
}
14475
14476
// implementations for isl::pw_aff_list
14477
pw_aff_list
manage
(
__isl_take
isl_pw_aff_list *
ptr
) {
14478
return
pw_aff_list
(
ptr
);
14479
}
14480
pw_aff_list
manage_copy
(
__isl_keep
isl_pw_aff_list *
ptr
) {
14481
ptr
= isl_pw_aff_list_copy(
ptr
);
14482
return
pw_aff_list
(
ptr
);
14483
}
14484
14485
pw_aff_list::pw_aff_list
(
__isl_take
isl_pw_aff_list *
ptr
)
14486
:
ptr
(
ptr
) {}
14487
14488
pw_aff_list::pw_aff_list
()
14489
:
ptr
(nullptr) {}
14490
14491
pw_aff_list::pw_aff_list
(
const
pw_aff_list
&
obj
)
14492
:
ptr
(nullptr)
14493
{
14494
ptr
=
obj
.copy();
14495
}
14496
14497
pw_aff_list::pw_aff_list
(
isl::checked::ctx
ctx
,
int
n
)
14498
{
14499
auto
res
= isl_pw_aff_list_alloc(
ctx
.release(),
n
);
14500
ptr
=
res
;
14501
}
14502
14503
pw_aff_list::pw_aff_list
(
isl::checked::pw_aff
el)
14504
{
14505
auto
res
= isl_pw_aff_list_from_pw_aff(el.
release
());
14506
ptr
=
res
;
14507
}
14508
14509
pw_aff_list::pw_aff_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
14510
{
14511
auto
res
= isl_pw_aff_list_read_from_str(
ctx
.release(),
str
.c_str());
14512
ptr
=
res
;
14513
}
14514
14515
pw_aff_list
&
pw_aff_list::operator=
(
pw_aff_list
obj
) {
14516
std::swap(this->ptr,
obj
.ptr);
14517
return
*
this
;
14518
}
14519
14520
pw_aff_list::~pw_aff_list
() {
14521
if
(
ptr
)
14522
isl_pw_aff_list_free(
ptr
);
14523
}
14524
14525
__isl_give
isl_pw_aff_list *
pw_aff_list::copy
() const & {
14526
return
isl_pw_aff_list_copy(
ptr
);
14527
}
14528
14529
__isl_keep
isl_pw_aff_list *
pw_aff_list::get
()
const
{
14530
return
ptr
;
14531
}
14532
14533
__isl_give
isl_pw_aff_list *
pw_aff_list::release
() {
14534
isl_pw_aff_list *tmp =
ptr
;
14535
ptr
=
nullptr
;
14536
return
tmp;
14537
}
14538
14539
bool
pw_aff_list::is_null
()
const
{
14540
return
ptr
==
nullptr
;
14541
}
14542
14543
isl::checked::ctx
pw_aff_list::ctx
()
const
{
14544
return
isl::checked::ctx
(isl_pw_aff_list_get_ctx(
ptr
));
14545
}
14546
14547
isl::checked::pw_aff_list
pw_aff_list::add
(
isl::checked::pw_aff
el)
const
14548
{
14549
auto
res
= isl_pw_aff_list_add(
copy
(), el.
release
());
14550
return
manage
(
res
);
14551
}
14552
14553
isl::checked::pw_aff
pw_aff_list::at
(
int
index)
const
14554
{
14555
auto
res
= isl_pw_aff_list_get_at(
get
(), index);
14556
return
manage
(
res
);
14557
}
14558
14559
isl::checked::pw_aff
pw_aff_list::get_at
(
int
index)
const
14560
{
14561
return
at
(index);
14562
}
14563
14564
isl::checked::pw_aff_list
pw_aff_list::clear
()
const
14565
{
14566
auto
res
= isl_pw_aff_list_clear(
copy
());
14567
return
manage
(
res
);
14568
}
14569
14570
isl::checked::pw_aff_list
pw_aff_list::concat
(
isl::checked::pw_aff_list
list2)
const
14571
{
14572
auto
res
= isl_pw_aff_list_concat(
copy
(), list2.
release
());
14573
return
manage
(
res
);
14574
}
14575
14576
isl::checked::pw_aff_list
pw_aff_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
14577
{
14578
auto
res
= isl_pw_aff_list_drop(
copy
(), first,
n
);
14579
return
manage
(
res
);
14580
}
14581
14582
stat
pw_aff_list::foreach
(
const
std::function<
stat
(
isl::checked::pw_aff
)> &
fn
)
const
14583
{
14584
struct
fn_data {
14585
std::function<
stat
(
isl::checked::pw_aff
)> func;
14586
} fn_data = {
fn
};
14587
auto
fn_lambda = [](
isl_pw_aff
*arg_0,
void
*arg_1) ->
isl_stat
{
14588
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
14589
auto
ret = (data->func)(
manage
(arg_0));
14590
return
ret.release();
14591
};
14592
auto
res
= isl_pw_aff_list_foreach(
get
(), fn_lambda, &fn_data);
14593
return
manage
(
res
);
14594
}
14595
14596
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
14597
{
14598
struct
follows_data {
14599
std::function<
boolean
(
isl::checked::pw_aff
,
isl::checked::pw_aff
)> func;
14600
} follows_data = { follows };
14601
auto
follows_lambda = [](
isl_pw_aff
*arg_0,
isl_pw_aff
*arg_1,
void
*arg_2) ->
isl_bool
{
14602
auto
*data =
static_cast<
struct follows_data *
>
(arg_2);
14603
auto
ret = (data->func)(
manage_copy
(arg_0),
manage_copy
(arg_1));
14604
return
ret.release();
14605
};
14606
struct
fn_data {
14607
std::function<
stat
(
isl::checked::pw_aff_list
)> func;
14608
} fn_data = {
fn
};
14609
auto
fn_lambda = [](isl_pw_aff_list *arg_0,
void
*arg_1) ->
isl_stat
{
14610
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
14611
auto
ret = (data->func)(
manage
(arg_0));
14612
return
ret.release();
14613
};
14614
auto
res
= isl_pw_aff_list_foreach_scc(
get
(), follows_lambda, &follows_data, fn_lambda, &fn_data);
14615
return
manage
(
res
);
14616
}
14617
14618
isl::checked::pw_aff_list
pw_aff_list::insert
(
unsigned
int
pos
,
isl::checked::pw_aff
el)
const
14619
{
14620
auto
res
= isl_pw_aff_list_insert(
copy
(),
pos
, el.
release
());
14621
return
manage
(
res
);
14622
}
14623
14624
isl::checked::pw_aff_list
pw_aff_list::set_at
(
int
index,
isl::checked::pw_aff
el)
const
14625
{
14626
auto
res
= isl_pw_aff_list_set_at(
copy
(), index, el.
release
());
14627
return
manage
(
res
);
14628
}
14629
14630
class
size
pw_aff_list
::
size
() const
14631
{
14632
auto
res
= isl_pw_aff_list_size(
get
());
14633
return
manage
(
res
);
14634
}
14635
14636
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_aff_list
&
obj
)
14637
{
14638
char
*
str
= isl_pw_aff_list_to_str(
obj
.get());
14639
if
(!
str
) {
14640
os.setstate(std::ios_base::badbit);
14641
return
os;
14642
}
14643
os <<
str
;
14644
free(
str
);
14645
return
os;
14646
}
14647
14648
// implementations for isl::pw_multi_aff
14649
pw_multi_aff
manage
(
__isl_take
isl_pw_multi_aff
*
ptr
) {
14650
return
pw_multi_aff
(
ptr
);
14651
}
14652
pw_multi_aff
manage_copy
(
__isl_keep
isl_pw_multi_aff
*
ptr
) {
14653
ptr
=
isl_pw_multi_aff_copy
(
ptr
);
14654
return
pw_multi_aff
(
ptr
);
14655
}
14656
14657
pw_multi_aff::pw_multi_aff
(
__isl_take
isl_pw_multi_aff
*
ptr
)
14658
:
ptr
(
ptr
) {}
14659
14660
pw_multi_aff::pw_multi_aff
()
14661
:
ptr
(nullptr) {}
14662
14663
pw_multi_aff::pw_multi_aff
(
const
pw_multi_aff
&
obj
)
14664
:
ptr
(nullptr)
14665
{
14666
ptr
=
obj
.copy();
14667
}
14668
14669
pw_multi_aff::pw_multi_aff
(
isl::checked::multi_aff
ma
)
14670
{
14671
auto
res
=
isl_pw_multi_aff_from_multi_aff
(
ma
.release());
14672
ptr
=
res
;
14673
}
14674
14675
pw_multi_aff::pw_multi_aff
(
isl::checked::pw_aff
pa
)
14676
{
14677
auto
res
=
isl_pw_multi_aff_from_pw_aff
(
pa
.release());
14678
ptr
=
res
;
14679
}
14680
14681
pw_multi_aff::pw_multi_aff
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
14682
{
14683
auto
res
=
isl_pw_multi_aff_read_from_str
(
ctx
.release(),
str
.c_str());
14684
ptr
=
res
;
14685
}
14686
14687
pw_multi_aff
&
pw_multi_aff::operator=
(
pw_multi_aff
obj
) {
14688
std::swap(this->ptr,
obj
.ptr);
14689
return
*
this
;
14690
}
14691
14692
pw_multi_aff::~pw_multi_aff
() {
14693
if
(
ptr
)
14694
isl_pw_multi_aff_free
(
ptr
);
14695
}
14696
14697
__isl_give
isl_pw_multi_aff
*
pw_multi_aff::copy
() const & {
14698
return
isl_pw_multi_aff_copy
(
ptr
);
14699
}
14700
14701
__isl_keep
isl_pw_multi_aff
*
pw_multi_aff::get
()
const
{
14702
return
ptr
;
14703
}
14704
14705
__isl_give
isl_pw_multi_aff
*
pw_multi_aff::release
() {
14706
isl_pw_multi_aff
*tmp =
ptr
;
14707
ptr
=
nullptr
;
14708
return
tmp;
14709
}
14710
14711
bool
pw_multi_aff::is_null
()
const
{
14712
return
ptr
==
nullptr
;
14713
}
14714
14715
isl::checked::ctx
pw_multi_aff::ctx
()
const
{
14716
return
isl::checked::ctx
(
isl_pw_multi_aff_get_ctx
(
ptr
));
14717
}
14718
14719
isl::checked::multi_pw_aff
pw_multi_aff::add
(
const
isl::checked::multi_pw_aff
&multi2)
const
14720
{
14721
return
isl::checked::multi_pw_aff
(*this).
add
(multi2);
14722
}
14723
14724
isl::checked::multi_union_pw_aff
pw_multi_aff::add
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
14725
{
14726
return
isl::checked::multi_pw_aff
(*this).
add
(multi2);
14727
}
14728
14729
isl::checked::pw_multi_aff
pw_multi_aff::add
(
isl::checked::pw_multi_aff
pma2)
const
14730
{
14731
auto
res
=
isl_pw_multi_aff_add
(
copy
(), pma2.
release
());
14732
return
manage
(
res
);
14733
}
14734
14735
isl::checked::union_pw_multi_aff
pw_multi_aff::add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14736
{
14737
return
isl::checked::union_pw_multi_aff
(*this).
add
(upma2);
14738
}
14739
14740
isl::checked::pw_multi_aff
pw_multi_aff::add
(
const
isl::checked::multi_aff
&pma2)
const
14741
{
14742
return
this->
add
(
isl::checked::pw_multi_aff
(pma2));
14743
}
14744
14745
isl::checked::pw_multi_aff
pw_multi_aff::add
(
const
isl::checked::pw_aff
&pma2)
const
14746
{
14747
return
this->
add
(
isl::checked::pw_multi_aff
(pma2));
14748
}
14749
14750
isl::checked::pw_multi_aff
pw_multi_aff::add_constant
(
isl::checked::multi_val
mv)
const
14751
{
14752
auto
res
=
isl_pw_multi_aff_add_constant_multi_val
(
copy
(), mv.
release
());
14753
return
manage
(
res
);
14754
}
14755
14756
isl::checked::pw_multi_aff
pw_multi_aff::add_constant
(
isl::checked::val
v)
const
14757
{
14758
auto
res
=
isl_pw_multi_aff_add_constant_val
(
copy
(), v.
release
());
14759
return
manage
(
res
);
14760
}
14761
14762
isl::checked::pw_multi_aff
pw_multi_aff::add_constant
(
long
v)
const
14763
{
14764
return
this->
add_constant
(
isl::checked::val
(
ctx
(), v));
14765
}
14766
14767
isl::checked::union_pw_multi_aff
pw_multi_aff::apply
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14768
{
14769
return
isl::checked::union_pw_multi_aff
(*this).
apply
(upma2);
14770
}
14771
14772
isl::checked::map
pw_multi_aff::as_map
()
const
14773
{
14774
auto
res
=
isl_pw_multi_aff_as_map
(
copy
());
14775
return
manage
(
res
);
14776
}
14777
14778
isl::checked::multi_aff
pw_multi_aff::as_multi_aff
()
const
14779
{
14780
auto
res
=
isl_pw_multi_aff_as_multi_aff
(
copy
());
14781
return
manage
(
res
);
14782
}
14783
14784
isl::checked::multi_union_pw_aff
pw_multi_aff::as_multi_union_pw_aff
()
const
14785
{
14786
return
isl::checked::union_pw_multi_aff
(*this).
as_multi_union_pw_aff
();
14787
}
14788
14789
isl::checked::pw_multi_aff
pw_multi_aff::as_pw_multi_aff
()
const
14790
{
14791
return
isl::checked::union_pw_multi_aff
(*this).
as_pw_multi_aff
();
14792
}
14793
14794
isl::checked::set
pw_multi_aff::as_set
()
const
14795
{
14796
auto
res
=
isl_pw_multi_aff_as_set
(
copy
());
14797
return
manage
(
res
);
14798
}
14799
14800
isl::checked::union_map
pw_multi_aff::as_union_map
()
const
14801
{
14802
return
isl::checked::union_pw_multi_aff
(*this).
as_union_map
();
14803
}
14804
14805
isl::checked::pw_aff
pw_multi_aff::at
(
int
pos
)
const
14806
{
14807
auto
res
=
isl_pw_multi_aff_get_at
(
get
(),
pos
);
14808
return
manage
(
res
);
14809
}
14810
14811
isl::checked::pw_aff
pw_multi_aff::get_at
(
int
pos
)
const
14812
{
14813
return
at
(
pos
);
14814
}
14815
14816
isl::checked::set
pw_multi_aff::bind
(
const
isl::checked::multi_id
&
tuple
)
const
14817
{
14818
return
isl::checked::multi_pw_aff
(*this).
bind
(
tuple
);
14819
}
14820
14821
isl::checked::pw_multi_aff
pw_multi_aff::bind_domain
(
isl::checked::multi_id
tuple
)
const
14822
{
14823
auto
res
=
isl_pw_multi_aff_bind_domain
(
copy
(),
tuple
.release());
14824
return
manage
(
res
);
14825
}
14826
14827
isl::checked::pw_multi_aff
pw_multi_aff::bind_domain_wrapped_domain
(
isl::checked::multi_id
tuple
)
const
14828
{
14829
auto
res
=
isl_pw_multi_aff_bind_domain_wrapped_domain
(
copy
(),
tuple
.release());
14830
return
manage
(
res
);
14831
}
14832
14833
isl::checked::pw_multi_aff
pw_multi_aff::coalesce
()
const
14834
{
14835
auto
res
=
isl_pw_multi_aff_coalesce
(
copy
());
14836
return
manage
(
res
);
14837
}
14838
14839
isl::checked::set
pw_multi_aff::domain
()
const
14840
{
14841
auto
res
=
isl_pw_multi_aff_domain
(
copy
());
14842
return
manage
(
res
);
14843
}
14844
14845
isl::checked::pw_multi_aff
pw_multi_aff::domain_map
(
isl::checked::space
space
)
14846
{
14847
auto
res
=
isl_pw_multi_aff_domain_map
(
space
.release());
14848
return
manage
(
res
);
14849
}
14850
14851
isl::checked::pw_multi_aff
pw_multi_aff::domain_reverse
()
const
14852
{
14853
auto
res
=
isl_pw_multi_aff_domain_reverse
(
copy
());
14854
return
manage
(
res
);
14855
}
14856
14857
isl::checked::pw_multi_aff
pw_multi_aff::drop_unused_params
()
const
14858
{
14859
auto
res
=
isl_pw_multi_aff_drop_unused_params
(
copy
());
14860
return
manage
(
res
);
14861
}
14862
14863
isl::checked::pw_multi_aff
pw_multi_aff::extract_pw_multi_aff
(
const
isl::checked::space
&
space
)
const
14864
{
14865
return
isl::checked::union_pw_multi_aff
(*this).
extract_pw_multi_aff
(
space
);
14866
}
14867
14868
isl::checked::multi_pw_aff
pw_multi_aff::flat_range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
14869
{
14870
return
isl::checked::multi_pw_aff
(*this).
flat_range_product
(multi2);
14871
}
14872
14873
isl::checked::multi_union_pw_aff
pw_multi_aff::flat_range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
14874
{
14875
return
isl::checked::multi_pw_aff
(*this).
flat_range_product
(multi2);
14876
}
14877
14878
isl::checked::pw_multi_aff
pw_multi_aff::flat_range_product
(
isl::checked::pw_multi_aff
pma2)
const
14879
{
14880
auto
res
=
isl_pw_multi_aff_flat_range_product
(
copy
(), pma2.
release
());
14881
return
manage
(
res
);
14882
}
14883
14884
isl::checked::union_pw_multi_aff
pw_multi_aff::flat_range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
14885
{
14886
return
isl::checked::union_pw_multi_aff
(*this).
flat_range_product
(upma2);
14887
}
14888
14889
isl::checked::pw_multi_aff
pw_multi_aff::flat_range_product
(
const
isl::checked::multi_aff
&pma2)
const
14890
{
14891
return
this->
flat_range_product
(
isl::checked::pw_multi_aff
(pma2));
14892
}
14893
14894
isl::checked::pw_multi_aff
pw_multi_aff::flat_range_product
(
const
isl::checked::pw_aff
&pma2)
const
14895
{
14896
return
this->
flat_range_product
(
isl::checked::pw_multi_aff
(pma2));
14897
}
14898
14899
stat
pw_multi_aff::foreach_piece
(
const
std::function<
stat
(
isl::checked::set
,
isl::checked::multi_aff
)> &
fn
)
const
14900
{
14901
struct
fn_data {
14902
std::function<
stat
(
isl::checked::set
,
isl::checked::multi_aff
)> func;
14903
} fn_data = {
fn
};
14904
auto
fn_lambda = [](
isl_set
*arg_0,
isl_multi_aff
*arg_1,
void
*arg_2) ->
isl_stat
{
14905
auto
*data =
static_cast<
struct fn_data *
>
(arg_2);
14906
auto
ret = (data->func)(
manage
(arg_0),
manage
(arg_1));
14907
return
ret.release();
14908
};
14909
auto
res
=
isl_pw_multi_aff_foreach_piece
(
get
(), fn_lambda, &fn_data);
14910
return
manage
(
res
);
14911
}
14912
14913
isl::checked::pw_multi_aff
pw_multi_aff::gist
(
isl::checked::set
set
)
const
14914
{
14915
auto
res
=
isl_pw_multi_aff_gist
(
copy
(),
set
.
release
());
14916
return
manage
(
res
);
14917
}
14918
14919
isl::checked::union_pw_multi_aff
pw_multi_aff::gist
(
const
isl::checked::union_set
&
context
)
const
14920
{
14921
return
isl::checked::union_pw_multi_aff
(*this).
gist
(
context
);
14922
}
14923
14924
isl::checked::pw_multi_aff
pw_multi_aff::gist
(
const
isl::checked::basic_set
&
set
)
const
14925
{
14926
return
this->
gist
(
isl::checked::set
(
set
));
14927
}
14928
14929
isl::checked::pw_multi_aff
pw_multi_aff::gist
(
const
isl::checked::point
&
set
)
const
14930
{
14931
return
this->
gist
(
isl::checked::set
(
set
));
14932
}
14933
14934
isl::checked::pw_multi_aff
pw_multi_aff::gist_params
(
isl::checked::set
set
)
const
14935
{
14936
auto
res
=
isl_pw_multi_aff_gist_params
(
copy
(),
set
.
release
());
14937
return
manage
(
res
);
14938
}
14939
14940
boolean
pw_multi_aff::has_range_tuple_id
()
const
14941
{
14942
auto
res
=
isl_pw_multi_aff_has_range_tuple_id
(
get
());
14943
return
manage
(
res
);
14944
}
14945
14946
isl::checked::multi_pw_aff
pw_multi_aff::identity
()
const
14947
{
14948
return
isl::checked::multi_pw_aff
(*this).
identity
();
14949
}
14950
14951
isl::checked::pw_multi_aff
pw_multi_aff::identity_on_domain
(
isl::checked::space
space
)
14952
{
14953
auto
res
=
isl_pw_multi_aff_identity_on_domain_space
(
space
.release());
14954
return
manage
(
res
);
14955
}
14956
14957
isl::checked::pw_multi_aff
pw_multi_aff::insert_domain
(
isl::checked::space
domain
)
const
14958
{
14959
auto
res
=
isl_pw_multi_aff_insert_domain
(
copy
(),
domain
.release());
14960
return
manage
(
res
);
14961
}
14962
14963
isl::checked::pw_multi_aff
pw_multi_aff::intersect_domain
(
isl::checked::set
set
)
const
14964
{
14965
auto
res
=
isl_pw_multi_aff_intersect_domain
(
copy
(),
set
.
release
());
14966
return
manage
(
res
);
14967
}
14968
14969
isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::checked::space
&
space
)
const
14970
{
14971
return
isl::checked::union_pw_multi_aff
(*this).
intersect_domain
(
space
);
14972
}
14973
14974
isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::checked::union_set
&uset)
const
14975
{
14976
return
isl::checked::union_pw_multi_aff
(*this).
intersect_domain
(uset);
14977
}
14978
14979
isl::checked::pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::checked::basic_set
&
set
)
const
14980
{
14981
return
this->
intersect_domain
(
isl::checked::set
(
set
));
14982
}
14983
14984
isl::checked::pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::checked::point
&
set
)
const
14985
{
14986
return
this->
intersect_domain
(
isl::checked::set
(
set
));
14987
}
14988
14989
isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain_wrapped_domain
(
const
isl::checked::union_set
&uset)
const
14990
{
14991
return
isl::checked::union_pw_multi_aff
(*this).
intersect_domain_wrapped_domain
(uset);
14992
}
14993
14994
isl::checked::union_pw_multi_aff
pw_multi_aff::intersect_domain_wrapped_range
(
const
isl::checked::union_set
&uset)
const
14995
{
14996
return
isl::checked::union_pw_multi_aff
(*this).
intersect_domain_wrapped_range
(uset);
14997
}
14998
14999
isl::checked::pw_multi_aff
pw_multi_aff::intersect_params
(
isl::checked::set
set
)
const
15000
{
15001
auto
res
=
isl_pw_multi_aff_intersect_params
(
copy
(),
set
.
release
());
15002
return
manage
(
res
);
15003
}
15004
15005
boolean
pw_multi_aff::involves_locals
()
const
15006
{
15007
auto
res
=
isl_pw_multi_aff_involves_locals
(
get
());
15008
return
manage
(
res
);
15009
}
15010
15011
boolean
pw_multi_aff::involves_nan
()
const
15012
{
15013
return
isl::checked::multi_pw_aff
(*this).
involves_nan
();
15014
}
15015
15016
boolean
pw_multi_aff::involves_param
(
const
isl::checked::id
&
id
)
const
15017
{
15018
return
isl::checked::multi_pw_aff
(*this).
involves_param
(
id
);
15019
}
15020
15021
boolean
pw_multi_aff::involves_param
(
const
std::string &
id
)
const
15022
{
15023
return
this->
involves_param
(
isl::checked::id
(
ctx
(),
id
));
15024
}
15025
15026
boolean
pw_multi_aff::involves_param
(
const
isl::checked::id_list
&
list
)
const
15027
{
15028
return
isl::checked::multi_pw_aff
(*this).
involves_param
(
list
);
15029
}
15030
15031
boolean
pw_multi_aff::isa_multi_aff
()
const
15032
{
15033
auto
res
=
isl_pw_multi_aff_isa_multi_aff
(
get
());
15034
return
manage
(
res
);
15035
}
15036
15037
boolean
pw_multi_aff::isa_pw_multi_aff
()
const
15038
{
15039
return
isl::checked::union_pw_multi_aff
(*this).
isa_pw_multi_aff
();
15040
}
15041
15042
isl::checked::pw_aff_list
pw_multi_aff::list
()
const
15043
{
15044
return
isl::checked::multi_pw_aff
(*this).
list
();
15045
}
15046
15047
isl::checked::multi_pw_aff
pw_multi_aff::max
(
const
isl::checked::multi_pw_aff
&multi2)
const
15048
{
15049
return
isl::checked::multi_pw_aff
(*this).
max
(multi2);
15050
}
15051
15052
isl::checked::multi_val
pw_multi_aff::max_multi_val
()
const
15053
{
15054
auto
res
=
isl_pw_multi_aff_max_multi_val
(
copy
());
15055
return
manage
(
res
);
15056
}
15057
15058
isl::checked::multi_pw_aff
pw_multi_aff::min
(
const
isl::checked::multi_pw_aff
&multi2)
const
15059
{
15060
return
isl::checked::multi_pw_aff
(*this).
min
(multi2);
15061
}
15062
15063
isl::checked::multi_val
pw_multi_aff::min_multi_val
()
const
15064
{
15065
auto
res
=
isl_pw_multi_aff_min_multi_val
(
copy
());
15066
return
manage
(
res
);
15067
}
15068
15069
isl::checked::pw_multi_aff
pw_multi_aff::multi_val_on_domain
(
isl::checked::set
domain
,
isl::checked::multi_val
mv)
15070
{
15071
auto
res
=
isl_pw_multi_aff_multi_val_on_domain
(
domain
.release(), mv.
release
());
15072
return
manage
(
res
);
15073
}
15074
15075
class
size
pw_multi_aff
::
n_piece
() const
15076
{
15077
auto
res
=
isl_pw_multi_aff_n_piece
(
get
());
15078
return
manage
(
res
);
15079
}
15080
15081
isl::checked::multi_pw_aff
pw_multi_aff::neg
()
const
15082
{
15083
return
isl::checked::multi_pw_aff
(*this).
neg
();
15084
}
15085
15086
boolean
pw_multi_aff::plain_is_empty
()
const
15087
{
15088
return
isl::checked::union_pw_multi_aff
(*this).
plain_is_empty
();
15089
}
15090
15091
boolean
pw_multi_aff::plain_is_equal
(
const
isl::checked::multi_pw_aff
&multi2)
const
15092
{
15093
return
isl::checked::multi_pw_aff
(*this).
plain_is_equal
(multi2);
15094
}
15095
15096
boolean
pw_multi_aff::plain_is_equal
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
15097
{
15098
return
isl::checked::multi_pw_aff
(*this).
plain_is_equal
(multi2);
15099
}
15100
15101
boolean
pw_multi_aff::plain_is_equal
(
const
isl::checked::pw_multi_aff
&pma2)
const
15102
{
15103
auto
res
=
isl_pw_multi_aff_plain_is_equal
(
get
(), pma2.
get
());
15104
return
manage
(
res
);
15105
}
15106
15107
boolean
pw_multi_aff::plain_is_equal
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
15108
{
15109
return
isl::checked::union_pw_multi_aff
(*this).
plain_is_equal
(upma2);
15110
}
15111
15112
boolean
pw_multi_aff::plain_is_equal
(
const
isl::checked::multi_aff
&pma2)
const
15113
{
15114
return
this->
plain_is_equal
(
isl::checked::pw_multi_aff
(pma2));
15115
}
15116
15117
boolean
pw_multi_aff::plain_is_equal
(
const
isl::checked::pw_aff
&pma2)
const
15118
{
15119
return
this->
plain_is_equal
(
isl::checked::pw_multi_aff
(pma2));
15120
}
15121
15122
isl::checked::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
isl::checked::pw_multi_aff
pma2)
const
15123
{
15124
auto
res
=
isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff
(
copy
(), pma2.
release
());
15125
return
manage
(
res
);
15126
}
15127
15128
isl::checked::union_pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
15129
{
15130
return
isl::checked::union_pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
15131
}
15132
15133
isl::checked::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
const
isl::checked::multi_aff
&pma2)
const
15134
{
15135
return
this->
preimage_domain_wrapped_domain
(
isl::checked::pw_multi_aff
(pma2));
15136
}
15137
15138
isl::checked::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
const
isl::checked::pw_aff
&pma2)
const
15139
{
15140
return
this->
preimage_domain_wrapped_domain
(
isl::checked::pw_multi_aff
(pma2));
15141
}
15142
15143
isl::checked::multi_pw_aff
pw_multi_aff::product
(
const
isl::checked::multi_pw_aff
&multi2)
const
15144
{
15145
return
isl::checked::multi_pw_aff
(*this).
product
(multi2);
15146
}
15147
15148
isl::checked::pw_multi_aff
pw_multi_aff::product
(
isl::checked::pw_multi_aff
pma2)
const
15149
{
15150
auto
res
=
isl_pw_multi_aff_product
(
copy
(), pma2.
release
());
15151
return
manage
(
res
);
15152
}
15153
15154
isl::checked::pw_multi_aff
pw_multi_aff::product
(
const
isl::checked::multi_aff
&pma2)
const
15155
{
15156
return
this->
product
(
isl::checked::pw_multi_aff
(pma2));
15157
}
15158
15159
isl::checked::pw_multi_aff
pw_multi_aff::product
(
const
isl::checked::pw_aff
&pma2)
const
15160
{
15161
return
this->
product
(
isl::checked::pw_multi_aff
(pma2));
15162
}
15163
15164
isl::checked::multi_pw_aff
pw_multi_aff::pullback
(
const
isl::checked::multi_pw_aff
&mpa2)
const
15165
{
15166
return
isl::checked::multi_pw_aff
(*this).
pullback
(mpa2);
15167
}
15168
15169
isl::checked::pw_multi_aff
pw_multi_aff::pullback
(
isl::checked::multi_aff
ma
)
const
15170
{
15171
auto
res
=
isl_pw_multi_aff_pullback_multi_aff
(
copy
(),
ma
.release());
15172
return
manage
(
res
);
15173
}
15174
15175
isl::checked::pw_multi_aff
pw_multi_aff::pullback
(
isl::checked::pw_multi_aff
pma2)
const
15176
{
15177
auto
res
=
isl_pw_multi_aff_pullback_pw_multi_aff
(
copy
(), pma2.
release
());
15178
return
manage
(
res
);
15179
}
15180
15181
isl::checked::union_pw_multi_aff
pw_multi_aff::pullback
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
15182
{
15183
return
isl::checked::union_pw_multi_aff
(*this).
pullback
(upma2);
15184
}
15185
15186
isl::checked::pw_multi_aff_list
pw_multi_aff::pw_multi_aff_list
()
const
15187
{
15188
return
isl::checked::union_pw_multi_aff
(*this).
pw_multi_aff_list
();
15189
}
15190
15191
isl::checked::pw_multi_aff
pw_multi_aff::range_factor_domain
()
const
15192
{
15193
auto
res
=
isl_pw_multi_aff_range_factor_domain
(
copy
());
15194
return
manage
(
res
);
15195
}
15196
15197
isl::checked::pw_multi_aff
pw_multi_aff::range_factor_range
()
const
15198
{
15199
auto
res
=
isl_pw_multi_aff_range_factor_range
(
copy
());
15200
return
manage
(
res
);
15201
}
15202
15203
isl::checked::pw_multi_aff
pw_multi_aff::range_map
(
isl::checked::space
space
)
15204
{
15205
auto
res
=
isl_pw_multi_aff_range_map
(
space
.release());
15206
return
manage
(
res
);
15207
}
15208
15209
isl::checked::multi_pw_aff
pw_multi_aff::range_product
(
const
isl::checked::multi_pw_aff
&multi2)
const
15210
{
15211
return
isl::checked::multi_pw_aff
(*this).
range_product
(multi2);
15212
}
15213
15214
isl::checked::multi_union_pw_aff
pw_multi_aff::range_product
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
15215
{
15216
return
isl::checked::multi_pw_aff
(*this).
range_product
(multi2);
15217
}
15218
15219
isl::checked::pw_multi_aff
pw_multi_aff::range_product
(
isl::checked::pw_multi_aff
pma2)
const
15220
{
15221
auto
res
=
isl_pw_multi_aff_range_product
(
copy
(), pma2.
release
());
15222
return
manage
(
res
);
15223
}
15224
15225
isl::checked::union_pw_multi_aff
pw_multi_aff::range_product
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
15226
{
15227
return
isl::checked::union_pw_multi_aff
(*this).
range_product
(upma2);
15228
}
15229
15230
isl::checked::pw_multi_aff
pw_multi_aff::range_product
(
const
isl::checked::multi_aff
&pma2)
const
15231
{
15232
return
this->
range_product
(
isl::checked::pw_multi_aff
(pma2));
15233
}
15234
15235
isl::checked::pw_multi_aff
pw_multi_aff::range_product
(
const
isl::checked::pw_aff
&pma2)
const
15236
{
15237
return
this->
range_product
(
isl::checked::pw_multi_aff
(pma2));
15238
}
15239
15240
isl::checked::id
pw_multi_aff::range_tuple_id
()
const
15241
{
15242
auto
res
=
isl_pw_multi_aff_get_range_tuple_id
(
get
());
15243
return
manage
(
res
);
15244
}
15245
15246
isl::checked::id
pw_multi_aff::get_range_tuple_id
()
const
15247
{
15248
return
range_tuple_id
();
15249
}
15250
15251
isl::checked::multi_pw_aff
pw_multi_aff::reset_range_tuple_id
()
const
15252
{
15253
return
isl::checked::multi_pw_aff
(*this).
reset_range_tuple_id
();
15254
}
15255
15256
isl::checked::pw_multi_aff
pw_multi_aff::scale
(
isl::checked::multi_val
mv)
const
15257
{
15258
auto
res
=
isl_pw_multi_aff_scale_multi_val
(
copy
(), mv.
release
());
15259
return
manage
(
res
);
15260
}
15261
15262
isl::checked::pw_multi_aff
pw_multi_aff::scale
(
isl::checked::val
v)
const
15263
{
15264
auto
res
=
isl_pw_multi_aff_scale_val
(
copy
(), v.
release
());
15265
return
manage
(
res
);
15266
}
15267
15268
isl::checked::pw_multi_aff
pw_multi_aff::scale
(
long
v)
const
15269
{
15270
return
this->
scale
(
isl::checked::val
(
ctx
(), v));
15271
}
15272
15273
isl::checked::pw_multi_aff
pw_multi_aff::scale_down
(
isl::checked::multi_val
mv)
const
15274
{
15275
auto
res
=
isl_pw_multi_aff_scale_down_multi_val
(
copy
(), mv.
release
());
15276
return
manage
(
res
);
15277
}
15278
15279
isl::checked::pw_multi_aff
pw_multi_aff::scale_down
(
isl::checked::val
v)
const
15280
{
15281
auto
res
=
isl_pw_multi_aff_scale_down_val
(
copy
(), v.
release
());
15282
return
manage
(
res
);
15283
}
15284
15285
isl::checked::pw_multi_aff
pw_multi_aff::scale_down
(
long
v)
const
15286
{
15287
return
this->
scale_down
(
isl::checked::val
(
ctx
(), v));
15288
}
15289
15290
isl::checked::multi_pw_aff
pw_multi_aff::set_at
(
int
pos
,
const
isl::checked::pw_aff
&el)
const
15291
{
15292
return
isl::checked::multi_pw_aff
(*this).
set_at
(
pos
, el);
15293
}
15294
15295
isl::checked::multi_union_pw_aff
pw_multi_aff::set_at
(
int
pos
,
const
isl::checked::union_pw_aff
&el)
const
15296
{
15297
return
isl::checked::multi_pw_aff
(*this).
set_at
(
pos
, el);
15298
}
15299
15300
isl::checked::pw_multi_aff
pw_multi_aff::set_range_tuple
(
isl::checked::id
id
)
const
15301
{
15302
auto
res
=
isl_pw_multi_aff_set_range_tuple_id
(
copy
(),
id
.
release
());
15303
return
manage
(
res
);
15304
}
15305
15306
isl::checked::pw_multi_aff
pw_multi_aff::set_range_tuple
(
const
std::string &
id
)
const
15307
{
15308
return
this->
set_range_tuple
(
isl::checked::id
(
ctx
(),
id
));
15309
}
15310
15311
class
size
pw_multi_aff
::
size
() const
15312
{
15313
return
isl::checked::multi_pw_aff
(*this).
size
();
15314
}
15315
15316
isl::checked::space
pw_multi_aff::space
()
const
15317
{
15318
auto
res
=
isl_pw_multi_aff_get_space
(
get
());
15319
return
manage
(
res
);
15320
}
15321
15322
isl::checked::space
pw_multi_aff::get_space
()
const
15323
{
15324
return
space
();
15325
}
15326
15327
isl::checked::multi_pw_aff
pw_multi_aff::sub
(
const
isl::checked::multi_pw_aff
&multi2)
const
15328
{
15329
return
isl::checked::multi_pw_aff
(*this).
sub
(multi2);
15330
}
15331
15332
isl::checked::multi_union_pw_aff
pw_multi_aff::sub
(
const
isl::checked::multi_union_pw_aff
&multi2)
const
15333
{
15334
return
isl::checked::multi_pw_aff
(*this).
sub
(multi2);
15335
}
15336
15337
isl::checked::pw_multi_aff
pw_multi_aff::sub
(
isl::checked::pw_multi_aff
pma2)
const
15338
{
15339
auto
res
=
isl_pw_multi_aff_sub
(
copy
(), pma2.
release
());
15340
return
manage
(
res
);
15341
}
15342
15343
isl::checked::union_pw_multi_aff
pw_multi_aff::sub
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
15344
{
15345
return
isl::checked::union_pw_multi_aff
(*this).
sub
(upma2);
15346
}
15347
15348
isl::checked::pw_multi_aff
pw_multi_aff::sub
(
const
isl::checked::multi_aff
&pma2)
const
15349
{
15350
return
this->
sub
(
isl::checked::pw_multi_aff
(pma2));
15351
}
15352
15353
isl::checked::pw_multi_aff
pw_multi_aff::sub
(
const
isl::checked::pw_aff
&pma2)
const
15354
{
15355
return
this->
sub
(
isl::checked::pw_multi_aff
(pma2));
15356
}
15357
15358
isl::checked::pw_multi_aff
pw_multi_aff::subtract_domain
(
isl::checked::set
set
)
const
15359
{
15360
auto
res
=
isl_pw_multi_aff_subtract_domain
(
copy
(),
set
.
release
());
15361
return
manage
(
res
);
15362
}
15363
15364
isl::checked::union_pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::checked::space
&
space
)
const
15365
{
15366
return
isl::checked::union_pw_multi_aff
(*this).
subtract_domain
(
space
);
15367
}
15368
15369
isl::checked::union_pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::checked::union_set
&uset)
const
15370
{
15371
return
isl::checked::union_pw_multi_aff
(*this).
subtract_domain
(uset);
15372
}
15373
15374
isl::checked::pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::checked::basic_set
&
set
)
const
15375
{
15376
return
this->
subtract_domain
(
isl::checked::set
(
set
));
15377
}
15378
15379
isl::checked::pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::checked::point
&
set
)
const
15380
{
15381
return
this->
subtract_domain
(
isl::checked::set
(
set
));
15382
}
15383
15384
isl::checked::pw_multi_aff_list
pw_multi_aff::to_list
()
const
15385
{
15386
auto
res
= isl_pw_multi_aff_to_list(
copy
());
15387
return
manage
(
res
);
15388
}
15389
15390
isl::checked::multi_pw_aff
pw_multi_aff::to_multi_pw_aff
()
const
15391
{
15392
auto
res
=
isl_pw_multi_aff_to_multi_pw_aff
(
copy
());
15393
return
manage
(
res
);
15394
}
15395
15396
isl::checked::union_pw_multi_aff
pw_multi_aff::to_union_pw_multi_aff
()
const
15397
{
15398
auto
res
=
isl_pw_multi_aff_to_union_pw_multi_aff
(
copy
());
15399
return
manage
(
res
);
15400
}
15401
15402
isl::checked::multi_pw_aff
pw_multi_aff::unbind_params_insert_domain
(
const
isl::checked::multi_id
&
domain
)
const
15403
{
15404
return
isl::checked::multi_pw_aff
(*this).
unbind_params_insert_domain
(
domain
);
15405
}
15406
15407
isl::checked::multi_pw_aff
pw_multi_aff::union_add
(
const
isl::checked::multi_pw_aff
&mpa2)
const
15408
{
15409
return
isl::checked::multi_pw_aff
(*this).
union_add
(mpa2);
15410
}
15411
15412
isl::checked::multi_union_pw_aff
pw_multi_aff::union_add
(
const
isl::checked::multi_union_pw_aff
&mupa2)
const
15413
{
15414
return
isl::checked::multi_pw_aff
(*this).
union_add
(mupa2);
15415
}
15416
15417
isl::checked::pw_multi_aff
pw_multi_aff::union_add
(
isl::checked::pw_multi_aff
pma2)
const
15418
{
15419
auto
res
=
isl_pw_multi_aff_union_add
(
copy
(), pma2.
release
());
15420
return
manage
(
res
);
15421
}
15422
15423
isl::checked::union_pw_multi_aff
pw_multi_aff::union_add
(
const
isl::checked::union_pw_multi_aff
&upma2)
const
15424
{
15425
return
isl::checked::union_pw_multi_aff
(*this).
union_add
(upma2);
15426
}
15427
15428
isl::checked::pw_multi_aff
pw_multi_aff::union_add
(
const
isl::checked::multi_aff
&pma2)
const
15429
{
15430
return
this->
union_add
(
isl::checked::pw_multi_aff
(pma2));
15431
}
15432
15433
isl::checked::pw_multi_aff
pw_multi_aff::union_add
(
const
isl::checked::pw_aff
&pma2)
const
15434
{
15435
return
this->
union_add
(
isl::checked::pw_multi_aff
(pma2));
15436
}
15437
15438
isl::checked::pw_multi_aff
pw_multi_aff::zero
(
isl::checked::space
space
)
15439
{
15440
auto
res
=
isl_pw_multi_aff_zero
(
space
.release());
15441
return
manage
(
res
);
15442
}
15443
15444
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_multi_aff
&
obj
)
15445
{
15446
char
*
str
=
isl_pw_multi_aff_to_str
(
obj
.get());
15447
if
(!
str
) {
15448
os.setstate(std::ios_base::badbit);
15449
return
os;
15450
}
15451
os <<
str
;
15452
free(
str
);
15453
return
os;
15454
}
15455
15456
// implementations for isl::pw_multi_aff_list
15457
pw_multi_aff_list
manage
(
__isl_take
isl_pw_multi_aff_list *
ptr
) {
15458
return
pw_multi_aff_list
(
ptr
);
15459
}
15460
pw_multi_aff_list
manage_copy
(
__isl_keep
isl_pw_multi_aff_list *
ptr
) {
15461
ptr
= isl_pw_multi_aff_list_copy(
ptr
);
15462
return
pw_multi_aff_list
(
ptr
);
15463
}
15464
15465
pw_multi_aff_list::pw_multi_aff_list
(
__isl_take
isl_pw_multi_aff_list *
ptr
)
15466
:
ptr
(
ptr
) {}
15467
15468
pw_multi_aff_list::pw_multi_aff_list
()
15469
:
ptr
(nullptr) {}
15470
15471
pw_multi_aff_list::pw_multi_aff_list
(
const
pw_multi_aff_list
&
obj
)
15472
:
ptr
(nullptr)
15473
{
15474
ptr
=
obj
.copy();
15475
}
15476
15477
pw_multi_aff_list::pw_multi_aff_list
(
isl::checked::ctx
ctx
,
int
n
)
15478
{
15479
auto
res
= isl_pw_multi_aff_list_alloc(
ctx
.release(),
n
);
15480
ptr
=
res
;
15481
}
15482
15483
pw_multi_aff_list::pw_multi_aff_list
(
isl::checked::pw_multi_aff
el)
15484
{
15485
auto
res
= isl_pw_multi_aff_list_from_pw_multi_aff(el.
release
());
15486
ptr
=
res
;
15487
}
15488
15489
pw_multi_aff_list::pw_multi_aff_list
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
15490
{
15491
auto
res
= isl_pw_multi_aff_list_read_from_str(
ctx
.release(),
str
.c_str());
15492
ptr
=
res
;
15493
}
15494
15495
pw_multi_aff_list
&
pw_multi_aff_list::operator=
(
pw_multi_aff_list
obj
) {
15496
std::swap(this->ptr,
obj
.ptr);
15497
return
*
this
;
15498
}
15499
15500
pw_multi_aff_list::~pw_multi_aff_list
() {
15501
if
(
ptr
)
15502
isl_pw_multi_aff_list_free(
ptr
);
15503
}
15504
15505
__isl_give
isl_pw_multi_aff_list *
pw_multi_aff_list::copy
() const & {
15506
return
isl_pw_multi_aff_list_copy(
ptr
);
15507
}
15508
15509
__isl_keep
isl_pw_multi_aff_list *
pw_multi_aff_list::get
()
const
{
15510
return
ptr
;
15511
}
15512
15513
__isl_give
isl_pw_multi_aff_list *
pw_multi_aff_list::release
() {
15514
isl_pw_multi_aff_list *tmp =
ptr
;
15515
ptr
=
nullptr
;
15516
return
tmp;
15517
}
15518
15519
bool
pw_multi_aff_list::is_null
()
const
{
15520
return
ptr
==
nullptr
;
15521
}
15522
15523
isl::checked::ctx
pw_multi_aff_list::ctx
()
const
{
15524
return
isl::checked::ctx
(isl_pw_multi_aff_list_get_ctx(
ptr
));
15525
}
15526
15527
isl::checked::pw_multi_aff_list
pw_multi_aff_list::add
(
isl::checked::pw_multi_aff
el)
const
15528
{
15529
auto
res
= isl_pw_multi_aff_list_add(
copy
(), el.
release
());
15530
return
manage
(
res
);
15531
}
15532
15533
isl::checked::pw_multi_aff
pw_multi_aff_list::at
(
int
index)
const
15534
{
15535
auto
res
= isl_pw_multi_aff_list_get_at(
get
(), index);
15536
return
manage
(
res
);
15537
}
15538
15539
isl::checked::pw_multi_aff
pw_multi_aff_list::get_at
(
int
index)
const
15540
{
15541
return
at
(index);
15542
}
15543
15544
isl::checked::pw_multi_aff_list
pw_multi_aff_list::clear
()
const
15545
{
15546
auto
res
= isl_pw_multi_aff_list_clear(
copy
());
15547
return
manage
(
res
);
15548
}
15549
15550
isl::checked::pw_multi_aff_list
pw_multi_aff_list::concat
(
isl::checked::pw_multi_aff_list
list2)
const
15551
{
15552
auto
res
= isl_pw_multi_aff_list_concat(
copy
(), list2.
release
());
15553
return
manage
(
res
);
15554
}
15555
15556
isl::checked::pw_multi_aff_list
pw_multi_aff_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
15557
{
15558
auto
res
= isl_pw_multi_aff_list_drop(
copy
(), first,
n
);
15559
return
manage
(
res
);
15560
}
15561
15562
stat
pw_multi_aff_list::foreach
(
const
std::function<
stat
(
isl::checked::pw_multi_aff
)> &
fn
)
const
15563
{
15564
struct
fn_data {
15565
std::function<
stat
(
isl::checked::pw_multi_aff
)> func;
15566
} fn_data = {
fn
};
15567
auto
fn_lambda = [](
isl_pw_multi_aff
*arg_0,
void
*arg_1) ->
isl_stat
{
15568
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
15569
auto
ret = (data->func)(
manage
(arg_0));
15570
return
ret.release();
15571
};
15572
auto
res
= isl_pw_multi_aff_list_foreach(
get
(), fn_lambda, &fn_data);
15573
return
manage
(
res
);
15574
}
15575
15576
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
15577
{
15578
struct
follows_data {
15579
std::function<
boolean
(
isl::checked::pw_multi_aff
,
isl::checked::pw_multi_aff
)> func;
15580
} follows_data = { follows };
15581
auto
follows_lambda = [](
isl_pw_multi_aff
*arg_0,
isl_pw_multi_aff
*arg_1,
void
*arg_2) ->
isl_bool
{
15582
auto
*data =
static_cast<
struct follows_data *
>
(arg_2);
15583
auto
ret = (data->func)(
manage_copy
(arg_0),
manage_copy
(arg_1));
15584
return
ret.release();
15585
};
15586
struct
fn_data {
15587
std::function<
stat
(
isl::checked::pw_multi_aff_list
)> func;
15588
} fn_data = {
fn
};
15589
auto
fn_lambda = [](isl_pw_multi_aff_list *arg_0,
void
*arg_1) ->
isl_stat
{
15590
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
15591
auto
ret = (data->func)(
manage
(arg_0));
15592
return
ret.release();
15593
};
15594
auto
res
= isl_pw_multi_aff_list_foreach_scc(
get
(), follows_lambda, &follows_data, fn_lambda, &fn_data);
15595
return
manage
(
res
);
15596
}
15597
15598
isl::checked::pw_multi_aff_list
pw_multi_aff_list::insert
(
unsigned
int
pos
,
isl::checked::pw_multi_aff
el)
const
15599
{
15600
auto
res
= isl_pw_multi_aff_list_insert(
copy
(),
pos
, el.
release
());
15601
return
manage
(
res
);
15602
}
15603
15604
isl::checked::pw_multi_aff_list
pw_multi_aff_list::set_at
(
int
index,
isl::checked::pw_multi_aff
el)
const
15605
{
15606
auto
res
= isl_pw_multi_aff_list_set_at(
copy
(), index, el.
release
());
15607
return
manage
(
res
);
15608
}
15609
15610
class
size
pw_multi_aff_list
::
size
() const
15611
{
15612
auto
res
= isl_pw_multi_aff_list_size(
get
());
15613
return
manage
(
res
);
15614
}
15615
15616
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_multi_aff_list
&
obj
)
15617
{
15618
char
*
str
= isl_pw_multi_aff_list_to_str(
obj
.get());
15619
if
(!
str
) {
15620
os.setstate(std::ios_base::badbit);
15621
return
os;
15622
}
15623
os <<
str
;
15624
free(
str
);
15625
return
os;
15626
}
15627
15628
// implementations for isl::schedule
15629
schedule
manage
(
__isl_take
isl_schedule
*
ptr
) {
15630
return
schedule
(
ptr
);
15631
}
15632
schedule
manage_copy
(
__isl_keep
isl_schedule
*
ptr
) {
15633
ptr
=
isl_schedule_copy
(
ptr
);
15634
return
schedule
(
ptr
);
15635
}
15636
15637
schedule::schedule
(
__isl_take
isl_schedule
*
ptr
)
15638
:
ptr
(
ptr
) {}
15639
15640
schedule::schedule
()
15641
:
ptr
(nullptr) {}
15642
15643
schedule::schedule
(
const
schedule
&
obj
)
15644
:
ptr
(nullptr)
15645
{
15646
ptr
=
obj
.copy();
15647
}
15648
15649
schedule::schedule
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
15650
{
15651
auto
res
=
isl_schedule_read_from_str
(
ctx
.release(),
str
.c_str());
15652
ptr
=
res
;
15653
}
15654
15655
schedule
&
schedule::operator=
(
schedule
obj
) {
15656
std::swap(this->ptr,
obj
.ptr);
15657
return
*
this
;
15658
}
15659
15660
schedule::~schedule
() {
15661
if
(
ptr
)
15662
isl_schedule_free
(
ptr
);
15663
}
15664
15665
__isl_give
isl_schedule
*
schedule::copy
() const & {
15666
return
isl_schedule_copy
(
ptr
);
15667
}
15668
15669
__isl_keep
isl_schedule
*
schedule::get
()
const
{
15670
return
ptr
;
15671
}
15672
15673
__isl_give
isl_schedule
*
schedule::release
() {
15674
isl_schedule
*tmp =
ptr
;
15675
ptr
=
nullptr
;
15676
return
tmp;
15677
}
15678
15679
bool
schedule::is_null
()
const
{
15680
return
ptr
==
nullptr
;
15681
}
15682
15683
isl::checked::ctx
schedule::ctx
()
const
{
15684
return
isl::checked::ctx
(
isl_schedule_get_ctx
(
ptr
));
15685
}
15686
15687
isl::checked::union_set
schedule::domain
()
const
15688
{
15689
auto
res
=
isl_schedule_get_domain
(
get
());
15690
return
manage
(
res
);
15691
}
15692
15693
isl::checked::union_set
schedule::get_domain
()
const
15694
{
15695
return
domain
();
15696
}
15697
15698
isl::checked::schedule
schedule::from_domain
(
isl::checked::union_set
domain
)
15699
{
15700
auto
res
=
isl_schedule_from_domain
(
domain
.release());
15701
return
manage
(
res
);
15702
}
15703
15704
isl::checked::union_map
schedule::map
()
const
15705
{
15706
auto
res
=
isl_schedule_get_map
(
get
());
15707
return
manage
(
res
);
15708
}
15709
15710
isl::checked::union_map
schedule::get_map
()
const
15711
{
15712
return
map
();
15713
}
15714
15715
isl::checked::schedule
schedule::pullback
(
isl::checked::union_pw_multi_aff
upma)
const
15716
{
15717
auto
res
=
isl_schedule_pullback_union_pw_multi_aff
(
copy
(), upma.
release
());
15718
return
manage
(
res
);
15719
}
15720
15721
isl::checked::schedule_node
schedule::root
()
const
15722
{
15723
auto
res
=
isl_schedule_get_root
(
get
());
15724
return
manage
(
res
);
15725
}
15726
15727
isl::checked::schedule_node
schedule::get_root
()
const
15728
{
15729
return
root
();
15730
}
15731
15732
inline
std::ostream &
operator<<
(std::ostream &os,
const
schedule
&
obj
)
15733
{
15734
char
*
str
=
isl_schedule_to_str
(
obj
.get());
15735
if
(!
str
) {
15736
os.setstate(std::ios_base::badbit);
15737
return
os;
15738
}
15739
os <<
str
;
15740
free(
str
);
15741
return
os;
15742
}
15743
15744
// implementations for isl::schedule_constraints
15745
schedule_constraints
manage
(
__isl_take
isl_schedule_constraints
*
ptr
) {
15746
return
schedule_constraints
(
ptr
);
15747
}
15748
schedule_constraints
manage_copy
(
__isl_keep
isl_schedule_constraints
*
ptr
) {
15749
ptr
=
isl_schedule_constraints_copy
(
ptr
);
15750
return
schedule_constraints
(
ptr
);
15751
}
15752
15753
schedule_constraints::schedule_constraints
(
__isl_take
isl_schedule_constraints
*
ptr
)
15754
:
ptr
(
ptr
) {}
15755
15756
schedule_constraints::schedule_constraints
()
15757
:
ptr
(nullptr) {}
15758
15759
schedule_constraints::schedule_constraints
(
const
schedule_constraints
&
obj
)
15760
:
ptr
(nullptr)
15761
{
15762
ptr
=
obj
.copy();
15763
}
15764
15765
schedule_constraints::schedule_constraints
(
isl::checked::ctx
ctx
,
const
std::string &
str
)
15766
{
15767
auto
res
=
isl_schedule_constraints_read_from_str
(
ctx
.release(),
str
.c_str());
15768
ptr
=
res
;
15769
}
15770
15771
schedule_constraints
&
schedule_constraints::operator=
(
schedule_constraints
obj
) {
15772
std::swap(this->ptr,
obj
.ptr);
15773
return
*
this
;
15774
}
15775
15776
schedule_constraints::~schedule_constraints
() {
15777
if
(
ptr
)
15778
isl_schedule_constraints_free
(
ptr
);
15779
}
15780
15781
__isl_give
isl_schedule_constraints
*
schedule_constraints::copy
() const & {
15782
return
isl_schedule_constraints_copy
(
ptr
);
15783
}
15784
15785
__isl_keep
isl_schedule_constraints
*
schedule_constraints::get
()
const
{
15786
return
ptr
;
15787
}
15788
15789
__isl_give
isl_schedule_constraints
*
schedule_constraints::release
() {
15790
isl_schedule_constraints
*tmp =
ptr
;
15791
ptr
=
nullptr
;
15792
return
tmp;
15793
}
15794
15795
bool
schedule_constraints::is_null
()
const
{
15796
return
ptr
==
nullptr
;
15797
}
15798
15799
isl::checked::ctx
schedule_constraints::ctx
()
const
{
15800
return
isl::checked::ctx
(
isl_schedule_constraints_get_ctx
(
ptr
));
15801
}
15802
15803
isl::checked::union_map
schedule_constraints::coincidence
()
const
15804
{
15805
auto
res
=
isl_schedule_constraints_get_coincidence
(
get
());
15806
return
manage
(
res
);
15807
}
15808
15809
isl::checked::union_map
schedule_constraints::get_coincidence
()
const
15810
{
15811
return
coincidence
();
15812
}
15813
15814
isl::checked::schedule
schedule_constraints::compute_schedule
()
const
15815
{
15816
auto
res
=
isl_schedule_constraints_compute_schedule
(
copy
());
15817
return
manage
(
res
);
15818
}
15819
15820
isl::checked::union_map
schedule_constraints::conditional_validity
()
const
15821
{
15822
auto
res
=
isl_schedule_constraints_get_conditional_validity
(
get
());
15823
return
manage
(
res
);
15824
}
15825
15826
isl::checked::union_map
schedule_constraints::get_conditional_validity
()
const
15827
{
15828
return
conditional_validity
();
15829
}
15830
15831
isl::checked::union_map
schedule_constraints::conditional_validity_condition
()
const
15832
{
15833
auto
res
=
isl_schedule_constraints_get_conditional_validity_condition
(
get
());
15834
return
manage
(
res
);
15835
}
15836
15837
isl::checked::union_map
schedule_constraints::get_conditional_validity_condition
()
const
15838
{
15839
return
conditional_validity_condition
();
15840
}
15841
15842
isl::checked::set
schedule_constraints::context
()
const
15843
{
15844
auto
res
=
isl_schedule_constraints_get_context
(
get
());
15845
return
manage
(
res
);
15846
}
15847
15848
isl::checked::set
schedule_constraints::get_context
()
const
15849
{
15850
return
context
();
15851
}
15852
15853
isl::checked::union_set
schedule_constraints::domain
()
const
15854
{
15855
auto
res
=
isl_schedule_constraints_get_domain
(
get
());
15856
return
manage
(
res
);
15857
}
15858
15859
isl::checked::union_set
schedule_constraints::get_domain
()
const
15860
{
15861
return
domain
();
15862
}
15863
15864
isl::checked::schedule_constraints
schedule_constraints::on_domain
(
isl::checked::union_set
domain
)
15865
{
15866
auto
res
=
isl_schedule_constraints_on_domain
(
domain
.release());
15867
return
manage
(
res
);
15868
}
15869
15870
isl::checked::union_map
schedule_constraints::proximity
()
const
15871
{
15872
auto
res
=
isl_schedule_constraints_get_proximity
(
get
());
15873
return
manage
(
res
);
15874
}
15875
15876
isl::checked::union_map
schedule_constraints::get_proximity
()
const
15877
{
15878
return
proximity
();
15879
}
15880
15881
isl::checked::schedule_constraints
schedule_constraints::set_coincidence
(
isl::checked::union_map
coincidence
)
const
15882
{
15883
auto
res
=
isl_schedule_constraints_set_coincidence
(
copy
(),
coincidence
.release());
15884
return
manage
(
res
);
15885
}
15886
15887
isl::checked::schedule_constraints
schedule_constraints::set_conditional_validity
(
isl::checked::union_map
condition
,
isl::checked::union_map
validity
)
const
15888
{
15889
auto
res
=
isl_schedule_constraints_set_conditional_validity
(
copy
(),
condition
.release(),
validity
.release());
15890
return
manage
(
res
);
15891
}
15892
15893
isl::checked::schedule_constraints
schedule_constraints::set_context
(
isl::checked::set
context
)
const
15894
{
15895
auto
res
=
isl_schedule_constraints_set_context
(
copy
(),
context
.release());
15896
return
manage
(
res
);
15897
}
15898
15899
isl::checked::schedule_constraints
schedule_constraints::set_proximity
(
isl::checked::union_map
proximity
)
const
15900
{
15901
auto
res
=
isl_schedule_constraints_set_proximity
(
copy
(),
proximity
.release());
15902
return
manage
(
res
);
15903
}
15904
15905
isl::checked::schedule_constraints
schedule_constraints::set_validity
(
isl::checked::union_map
validity
)
const
15906
{
15907
auto
res
=
isl_schedule_constraints_set_validity
(
copy
(),
validity
.release());
15908
return
manage
(
res
);
15909
}
15910
15911
isl::checked::union_map
schedule_constraints::validity
()
const
15912
{
15913
auto
res
=
isl_schedule_constraints_get_validity
(
get
());
15914
return
manage
(
res
);
15915
}
15916
15917
isl::checked::union_map
schedule_constraints::get_validity
()
const
15918
{
15919
return
validity
();
15920
}
15921
15922
inline
std::ostream &
operator<<
(std::ostream &os,
const
schedule_constraints
&
obj
)
15923
{
15924
char
*
str
=
isl_schedule_constraints_to_str
(
obj
.get());
15925
if
(!
str
) {
15926
os.setstate(std::ios_base::badbit);
15927
return
os;
15928
}
15929
os <<
str
;
15930
free(
str
);
15931
return
os;
15932
}
15933
15934
// implementations for isl::schedule_node
15935
schedule_node
manage
(
__isl_take
isl_schedule_node
*
ptr
) {
15936
return
schedule_node
(
ptr
);
15937
}
15938
schedule_node
manage_copy
(
__isl_keep
isl_schedule_node
*
ptr
) {
15939
ptr
=
isl_schedule_node_copy
(
ptr
);
15940
return
schedule_node
(
ptr
);
15941
}
15942
15943
schedule_node::schedule_node
(
__isl_take
isl_schedule_node
*
ptr
)
15944
:
ptr
(
ptr
) {}
15945
15946
schedule_node::schedule_node
()
15947
:
ptr
(nullptr) {}
15948
15949
schedule_node::schedule_node
(
const
schedule_node
&
obj
)
15950
:
ptr
(nullptr)
15951
{
15952
ptr
=
obj
.copy();
15953
}
15954
15955
schedule_node
&
schedule_node::operator=
(
schedule_node
obj
) {
15956
std::swap(this->ptr,
obj
.ptr);
15957
return
*
this
;
15958
}
15959
15960
schedule_node::~schedule_node
() {
15961
if
(
ptr
)
15962
isl_schedule_node_free
(
ptr
);
15963
}
15964
15965
__isl_give
isl_schedule_node
*
schedule_node::copy
() const & {
15966
return
isl_schedule_node_copy
(
ptr
);
15967
}
15968
15969
__isl_keep
isl_schedule_node
*
schedule_node::get
()
const
{
15970
return
ptr
;
15971
}
15972
15973
__isl_give
isl_schedule_node
*
schedule_node::release
() {
15974
isl_schedule_node
*tmp =
ptr
;
15975
ptr
=
nullptr
;
15976
return
tmp;
15977
}
15978
15979
bool
schedule_node::is_null
()
const
{
15980
return
ptr
==
nullptr
;
15981
}
15982
15983
template
<
typename
T,
typename
>
15984
boolean
schedule_node::isa_type
(T subtype)
const
15985
{
15986
if
(
is_null
())
15987
return
boolean
();
15988
return
isl_schedule_node_get_type
(
get
()) == subtype;
15989
}
15990
template
<
class
T>
15991
boolean
schedule_node::isa
()
const
15992
{
15993
return
isa_type<decltype(T::type)>
(T::type);
15994
}
15995
template
<
class
T>
15996
T
schedule_node::as
()
const
15997
{
15998
if
(
isa<T>
().is_false())
15999
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
16000
return
T(
copy
());
16001
}
16002
16003
isl::checked::ctx
schedule_node::ctx
()
const
{
16004
return
isl::checked::ctx
(
isl_schedule_node_get_ctx
(
ptr
));
16005
}
16006
16007
isl::checked::schedule_node
schedule_node::ancestor
(
int
generation)
const
16008
{
16009
auto
res
=
isl_schedule_node_ancestor
(
copy
(), generation);
16010
return
manage
(
res
);
16011
}
16012
16013
class
size
schedule_node
::
ancestor_child_position
(const isl::checked::schedule_node &ancestor) const
16014
{
16015
auto
res
=
isl_schedule_node_get_ancestor_child_position
(
get
(),
ancestor
.get());
16016
return
manage
(
res
);
16017
}
16018
16019
class
size
schedule_node
::
get_ancestor_child_position
(const isl::checked::schedule_node &ancestor) const
16020
{
16021
return
ancestor_child_position
(
ancestor
);
16022
}
16023
16024
isl::checked::schedule_node
schedule_node::child
(
int
pos
)
const
16025
{
16026
auto
res
=
isl_schedule_node_child
(
copy
(),
pos
);
16027
return
manage
(
res
);
16028
}
16029
16030
class
size
schedule_node
::
child_position
() const
16031
{
16032
auto
res
=
isl_schedule_node_get_child_position
(
get
());
16033
return
manage
(
res
);
16034
}
16035
16036
class
size
schedule_node
::
get_child_position
() const
16037
{
16038
return
child_position
();
16039
}
16040
16041
boolean
schedule_node::every_descendant
(
const
std::function<
boolean
(
isl::checked::schedule_node
)> &
test
)
const
16042
{
16043
struct
test_data {
16044
std::function<
boolean
(
isl::checked::schedule_node
)> func;
16045
} test_data = {
test
};
16046
auto
test_lambda = [](
isl_schedule_node
*arg_0,
void
*arg_1) ->
isl_bool
{
16047
auto
*data =
static_cast<
struct test_data *
>
(arg_1);
16048
auto
ret = (data->func)(
manage_copy
(arg_0));
16049
return
ret.release();
16050
};
16051
auto
res
=
isl_schedule_node_every_descendant
(
get
(), test_lambda, &test_data);
16052
return
manage
(
res
);
16053
}
16054
16055
isl::checked::schedule_node
schedule_node::first_child
()
const
16056
{
16057
auto
res
=
isl_schedule_node_first_child
(
copy
());
16058
return
manage
(
res
);
16059
}
16060
16061
stat
schedule_node::foreach_ancestor_top_down
(
const
std::function<
stat
(
isl::checked::schedule_node
)> &
fn
)
const
16062
{
16063
struct
fn_data {
16064
std::function<
stat
(
isl::checked::schedule_node
)> func;
16065
} fn_data = {
fn
};
16066
auto
fn_lambda = [](
isl_schedule_node
*arg_0,
void
*arg_1) ->
isl_stat
{
16067
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
16068
auto
ret = (data->func)(
manage_copy
(arg_0));
16069
return
ret.release();
16070
};
16071
auto
res
=
isl_schedule_node_foreach_ancestor_top_down
(
get
(), fn_lambda, &fn_data);
16072
return
manage
(
res
);
16073
}
16074
16075
stat
schedule_node::foreach_descendant_top_down
(
const
std::function<
boolean
(
isl::checked::schedule_node
)> &
fn
)
const
16076
{
16077
struct
fn_data {
16078
std::function<
boolean
(
isl::checked::schedule_node
)> func;
16079
} fn_data = {
fn
};
16080
auto
fn_lambda = [](
isl_schedule_node
*arg_0,
void
*arg_1) ->
isl_bool
{
16081
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
16082
auto
ret = (data->func)(
manage_copy
(arg_0));
16083
return
ret.release();
16084
};
16085
auto
res
=
isl_schedule_node_foreach_descendant_top_down
(
get
(), fn_lambda, &fn_data);
16086
return
manage
(
res
);
16087
}
16088
16089
isl::checked::schedule_node
schedule_node::from_domain
(
isl::checked::union_set
domain
)
16090
{
16091
auto
res
=
isl_schedule_node_from_domain
(
domain
.release());
16092
return
manage
(
res
);
16093
}
16094
16095
isl::checked::schedule_node
schedule_node::from_extension
(
isl::checked::union_map
extension)
16096
{
16097
auto
res
=
isl_schedule_node_from_extension
(extension.
release
());
16098
return
manage
(
res
);
16099
}
16100
16101
isl::checked::schedule_node
schedule_node::graft_after
(
isl::checked::schedule_node
graft)
const
16102
{
16103
auto
res
=
isl_schedule_node_graft_after
(
copy
(), graft.
release
());
16104
return
manage
(
res
);
16105
}
16106
16107
isl::checked::schedule_node
schedule_node::graft_before
(
isl::checked::schedule_node
graft)
const
16108
{
16109
auto
res
=
isl_schedule_node_graft_before
(
copy
(), graft.
release
());
16110
return
manage
(
res
);
16111
}
16112
16113
boolean
schedule_node::has_children
()
const
16114
{
16115
auto
res
=
isl_schedule_node_has_children
(
get
());
16116
return
manage
(
res
);
16117
}
16118
16119
boolean
schedule_node::has_next_sibling
()
const
16120
{
16121
auto
res
=
isl_schedule_node_has_next_sibling
(
get
());
16122
return
manage
(
res
);
16123
}
16124
16125
boolean
schedule_node::has_parent
()
const
16126
{
16127
auto
res
=
isl_schedule_node_has_parent
(
get
());
16128
return
manage
(
res
);
16129
}
16130
16131
boolean
schedule_node::has_previous_sibling
()
const
16132
{
16133
auto
res
=
isl_schedule_node_has_previous_sibling
(
get
());
16134
return
manage
(
res
);
16135
}
16136
16137
isl::checked::schedule_node
schedule_node::insert_context
(
isl::checked::set
context
)
const
16138
{
16139
auto
res
=
isl_schedule_node_insert_context
(
copy
(),
context
.release());
16140
return
manage
(
res
);
16141
}
16142
16143
isl::checked::schedule_node
schedule_node::insert_filter
(
isl::checked::union_set
filter)
const
16144
{
16145
auto
res
=
isl_schedule_node_insert_filter
(
copy
(), filter.
release
());
16146
return
manage
(
res
);
16147
}
16148
16149
isl::checked::schedule_node
schedule_node::insert_guard
(
isl::checked::set
context
)
const
16150
{
16151
auto
res
=
isl_schedule_node_insert_guard
(
copy
(),
context
.release());
16152
return
manage
(
res
);
16153
}
16154
16155
isl::checked::schedule_node
schedule_node::insert_mark
(
isl::checked::id
mark)
const
16156
{
16157
auto
res
=
isl_schedule_node_insert_mark
(
copy
(), mark.
release
());
16158
return
manage
(
res
);
16159
}
16160
16161
isl::checked::schedule_node
schedule_node::insert_mark
(
const
std::string &mark)
const
16162
{
16163
return
this->
insert_mark
(
isl::checked::id
(
ctx
(), mark));
16164
}
16165
16166
isl::checked::schedule_node
schedule_node::insert_partial_schedule
(
isl::checked::multi_union_pw_aff
schedule
)
const
16167
{
16168
auto
res
=
isl_schedule_node_insert_partial_schedule
(
copy
(),
schedule
.release());
16169
return