Polly
22.0.0git
llvm-project
polly
lib
External
isl
include
isl
isl-noexceptions.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
// clang-format off
9
10
#ifndef ISL_CPP_CHECKED
11
#define ISL_CPP_CHECKED
12
13
#include <stdio.h>
14
#include <stdlib.h>
15
#include <
isl/set.h
>
16
17
#include <functional>
18
#include <memory>
19
#include <ostream>
20
#include <string>
21
#include <type_traits>
22
23
namespace
isl
{
24
25
#define ISLPP_STRINGIZE_(X) #X
26
#define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
27
28
#define ISLPP_ASSERT(test, message) \
29
do { \
30
if (test) \
31
break; \
32
fputs("Assertion \"" #test "\" failed at " __FILE__ \
33
":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \
34
stderr); \
35
abort(); \
36
} while (0)
37
38
/* Class used to check that isl::checked::boolean,
39
* isl::checked::stat and isl::checked::size values are checked for errors.
40
*/
41
struct
checker
{
42
bool
checked
=
false
;
43
~checker
() {
44
//ISLPP_ASSERT(checked, "IMPLEMENTATION ERROR: Unchecked state");
45
}
46
};
47
48
class
boolean
{
49
private
:
50
mutable
std::shared_ptr<checker>
check
= std::make_shared<checker>();
51
isl_bool
val
;
52
53
friend
boolean
manage
(
isl_bool
val
);
54
boolean
(
isl_bool
val
):
val
(
val
) {}
55
public
:
56
static
boolean
error
() {
57
return
boolean
(
isl_bool_error
);
58
}
59
boolean
()
60
:
val
(
isl_bool_error
) {}
61
62
/* implicit */
boolean
(
bool
val
)
63
:
val
(
val
?
isl_bool_true
:
isl_bool_false
) {}
64
65
isl_bool
release
() {
66
auto
tmp =
val
;
67
val
=
isl_bool_error
;
68
check
->checked =
true
;
69
return
tmp;
70
}
71
72
bool
is_error
()
const
{
check
->checked =
true
;
return
val
==
isl_bool_error
; }
73
bool
is_false
()
const
{
check
->checked =
true
;
return
val
==
isl_bool_false
; }
74
bool
is_true
()
const
{
check
->checked =
true
;
return
val
==
isl_bool_true
; }
75
76
operator
bool()
const
{
77
//ISLPP_ASSERT(check->checked, "IMPLEMENTATION ERROR: Unchecked error state");
78
ISLPP_ASSERT
(!
is_error
(),
"IMPLEMENTATION ERROR: Unhandled error state"
);
79
return
is_true
();
80
}
81
82
boolean
negate
() {
83
if
(
val
==
isl_bool_true
)
84
val
=
isl_bool_false
;
85
else
if
(
val
==
isl_bool_false
)
86
val
=
isl_bool_true
;
87
return
*
this
;
88
}
89
90
boolean
operator!
()
const
{
91
return
boolean
(*this).
negate
();
92
}
93
};
94
95
inline
boolean
manage
(
isl_bool
val
) {
96
return
boolean
(
val
);
97
}
98
99
class
ctx
{
100
isl_ctx
*
ptr
;
101
public
:
102
/* implicit */
ctx
(
isl_ctx
*
ctx
)
103
:
ptr
(
ctx
) {}
104
isl_ctx
*
release
() {
105
auto
tmp =
ptr
;
106
ptr
=
nullptr
;
107
return
tmp;
108
}
109
isl_ctx
*
get
() {
110
return
ptr
;
111
}
112
};
113
114
/* Class encapsulating an isl_stat value.
115
*/
116
class
stat
{
117
private
:
118
mutable
std::shared_ptr<checker>
check
= std::make_shared<checker>();
119
isl_stat
val
;
120
121
friend
stat
manage
(
isl_stat
val
);
122
stat
(
isl_stat
val
) :
val
(
val
) {}
123
public
:
124
static
stat
ok
() {
125
return
stat
(
isl_stat_ok
);
126
}
127
static
stat
error
() {
128
return
stat
(
isl_stat_error
);
129
}
130
stat
() :
val
(
isl_stat_error
) {}
131
132
isl_stat
release
() {
133
check
->checked =
true
;
134
return
val
;
135
}
136
137
bool
is_error
()
const
{
138
check
->checked =
true
;
139
return
val
==
isl_stat_error
;
140
}
141
bool
is_ok
()
const
{
142
check
->checked =
true
;
143
return
val
==
isl_stat_ok
;
144
}
145
};
146
147
inline
stat
manage
(
isl_stat
val
)
148
{
149
return
stat
(
val
);
150
}
151
152
/* Class encapsulating an isl_size value.
153
*/
154
class
size
{
155
private
:
156
mutable
std::shared_ptr<checker>
check
= std::make_shared<checker>();
157
isl_size
val
;
158
159
friend
size
manage
(
isl_size
val
);
160
size
(
isl_size
val
) :
val
(
val
) {}
161
public
:
162
size
() :
val
(
isl_size_error
) {}
163
164
isl_size
release
() {
165
auto
tmp =
val
;
166
val
=
isl_size_error
;
167
check
->checked =
true
;
168
return
tmp;
169
}
170
171
bool
is_error
()
const
{
172
check
->checked =
true
;
173
return
val
==
isl_size_error
;
174
}
175
176
explicit
operator
unsigned()
const
{
177
ISLPP_ASSERT
(
check
->checked,
178
"IMPLEMENTATION ERROR: Unchecked error state"
);
179
ISLPP_ASSERT
(!
is_error
(),
180
"IMPLEMENTATION ERROR: Unhandled error state"
);
181
return
val
;
182
}
183
};
184
185
inline
size
manage
(
isl_size
val
)
186
{
187
return
size
(
val
);
188
}
189
190
enum class
dim
{
191
cst
=
isl_dim_cst
,
192
param
=
isl_dim_param
,
193
in
=
isl_dim_in
,
194
out
=
isl_dim_out
,
195
set
=
isl_dim_set
,
196
div
=
isl_dim_div
,
197
all
=
isl_dim_all
198
};
199
200
}
// namespace isl
201
#include <
isl/id.h
>
202
#include <
isl/space.h
>
203
#include <
isl/val.h
>
204
#include <
isl/aff.h
>
205
#include <
isl/set.h
>
206
#include <
isl/map.h
>
207
#include <
isl/ilp.h
>
208
#include <
isl/constraint.h
>
209
#include <
isl/union_set.h
>
210
#include <
isl/union_map.h
>
211
#include <
isl/flow.h
>
212
#include <
isl/schedule.h
>
213
#include <
isl/schedule_node.h
>
214
#include <
isl/ast_build.h
>
215
#include <
isl/fixed_box.h
>
216
217
namespace
isl
{
218
219
// forward declarations
220
class
aff
;
221
class
aff_list
;
222
class
ast_build
;
223
class
ast_expr
;
224
class
ast_expr_id
;
225
class
ast_expr_int
;
226
class
ast_expr_op
;
227
class
ast_expr_op_access
;
228
class
ast_expr_op_add
;
229
class
ast_expr_op_address_of
;
230
class
ast_expr_op_and
;
231
class
ast_expr_op_and_then
;
232
class
ast_expr_op_call
;
233
class
ast_expr_op_cond
;
234
class
ast_expr_op_div
;
235
class
ast_expr_op_eq
;
236
class
ast_expr_op_fdiv_q
;
237
class
ast_expr_op_ge
;
238
class
ast_expr_op_gt
;
239
class
ast_expr_op_le
;
240
class
ast_expr_op_lt
;
241
class
ast_expr_op_max
;
242
class
ast_expr_op_member
;
243
class
ast_expr_op_min
;
244
class
ast_expr_op_minus
;
245
class
ast_expr_op_mul
;
246
class
ast_expr_op_or
;
247
class
ast_expr_op_or_else
;
248
class
ast_expr_op_pdiv_q
;
249
class
ast_expr_op_pdiv_r
;
250
class
ast_expr_op_select
;
251
class
ast_expr_op_sub
;
252
class
ast_expr_op_zdiv_r
;
253
class
ast_node
;
254
class
ast_node_block
;
255
class
ast_node_for
;
256
class
ast_node_if
;
257
class
ast_node_list
;
258
class
ast_node_mark
;
259
class
ast_node_user
;
260
class
basic_map
;
261
class
basic_map_list
;
262
class
basic_set
;
263
class
basic_set_list
;
264
class
constraint
;
265
class
fixed_box
;
266
class
id
;
267
class
id_list
;
268
class
id_to_ast_expr
;
269
class
local_space
;
270
class
map
;
271
class
map_list
;
272
class
multi_aff
;
273
class
multi_id
;
274
class
multi_pw_aff
;
275
class
multi_union_pw_aff
;
276
class
multi_val
;
277
class
point
;
278
class
pw_aff
;
279
class
pw_aff_list
;
280
class
pw_multi_aff
;
281
class
pw_multi_aff_list
;
282
class
schedule
;
283
class
schedule_constraints
;
284
class
schedule_node
;
285
class
schedule_node_band
;
286
class
schedule_node_context
;
287
class
schedule_node_domain
;
288
class
schedule_node_expansion
;
289
class
schedule_node_extension
;
290
class
schedule_node_filter
;
291
class
schedule_node_guard
;
292
class
schedule_node_leaf
;
293
class
schedule_node_mark
;
294
class
schedule_node_sequence
;
295
class
schedule_node_set
;
296
class
set
;
297
class
set_list
;
298
class
space
;
299
class
union_access_info
;
300
class
union_flow
;
301
class
union_map
;
302
class
union_pw_aff
;
303
class
union_pw_aff_list
;
304
class
union_pw_multi_aff
;
305
class
union_set
;
306
class
union_set_list
;
307
class
val
;
308
class
val_list
;
309
310
// declarations for isl::aff
311
inline
aff
manage
(
__isl_take
isl_aff
*ptr);
312
inline
aff
manage_copy
(
__isl_keep
isl_aff
*ptr);
313
314
class
aff
{
315
friend
inline
aff
manage
(
__isl_take
isl_aff
*
ptr
);
316
friend
inline
aff
manage_copy
(
__isl_keep
isl_aff
*
ptr
);
317
318
protected
:
319
isl_aff
*
ptr
=
nullptr
;
320
321
inline
explicit
aff
(
__isl_take
isl_aff
*
ptr
);
322
323
public
:
324
inline
/* implicit */
aff
();
325
inline
/* implicit */
aff
(
const
aff
&
obj
);
326
inline
explicit
aff
(
isl::ctx
ctx
,
const
std::string &
str
);
327
inline
explicit
aff
(
isl::local_space
ls,
isl::val
val
);
328
inline
explicit
aff
(
isl::local_space
ls);
329
inline
aff
&
operator=
(
aff
obj
);
330
inline
~aff
();
331
inline
__isl_give
isl_aff
*
copy
() const &;
332
inline
__isl_give
isl_aff
*
copy
() && = delete;
333
inline
__isl_keep
isl_aff
*
get
() const;
334
inline
__isl_give
isl_aff
*
release
();
335
inline
bool
is_null
() const;
336
inline
isl
::
ctx
ctx
() const;
337
338
inline
isl
::
aff
add
(
isl
::
aff
aff2) const;
339
inline
isl
::
multi_aff
add
(const
isl
::
multi_aff
&multi2) const;
340
inline
isl
::
multi_pw_aff
add
(const
isl
::
multi_pw_aff
&multi2) const;
341
inline
isl
::
multi_union_pw_aff
add
(const
isl
::
multi_union_pw_aff
&multi2) const;
342
inline
isl
::
pw_aff
add
(const
isl
::
pw_aff
&pwaff2) const;
343
inline
isl
::
pw_multi_aff
add
(const
isl
::
pw_multi_aff
&pma2) const;
344
inline
isl
::
union_pw_aff
add
(const
isl
::
union_pw_aff
&upa2) const;
345
inline
isl
::
union_pw_multi_aff
add
(const
isl
::
union_pw_multi_aff
&upma2) const;
346
inline
isl
::
aff
add_constant
(
isl
::
val
v) const;
347
inline
isl
::
aff
add_constant
(
long
v) const;
348
inline
isl
::
multi_aff
add_constant
(const
isl
::
multi_val
&mv) const;
349
inline
isl
::
aff
add_constant_si
(
int
v) const;
350
inline
isl
::
pw_aff
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
351
inline
isl
::
union_pw_multi_aff
add_pw_multi_aff
(const
isl
::
pw_multi_aff
&
pma
) const;
352
inline
isl
::
union_pw_multi_aff
apply
(const
isl
::
union_pw_multi_aff
&upma2) const;
353
inline
isl
::
aff
as_aff
() const;
354
inline
isl
::
map
as_map
() const;
355
inline
isl
::
multi_aff
as_multi_aff
() const;
356
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
357
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
358
inline
isl
::
set
as_set
() const;
359
inline
isl
::
union_map
as_union_map
() const;
360
inline
isl
::
aff
at
(
int
pos
) const;
361
inline
isl
::
basic_set
bind
(
isl
::
id
id
) const;
362
inline
isl
::
basic_set
bind
(const std::
string
&
id
) const;
363
inline
isl
::
basic_set
bind
(const
isl
::
multi_id
&
tuple
) const;
364
inline
isl
::
pw_aff
bind_domain
(const
isl
::
multi_id
&
tuple
) const;
365
inline
isl
::
pw_aff
bind_domain_wrapped_domain
(const
isl
::
multi_id
&
tuple
) const;
366
inline
isl
::
aff
ceil
() const;
367
inline
isl
::
pw_aff
coalesce
() const;
368
inline
isl
::
pw_aff
cond
(const
isl
::
pw_aff
&pwaff_true, const
isl
::
pw_aff
&pwaff_false) const;
369
inline
isl
::
multi_val
constant_multi_val
() const;
370
inline
isl
::
val
constant_val
() const;
371
inline
isl
::
val
get_constant_val
() const;
372
inline
isl
::
val
denominator_val
() const;
373
inline
isl
::
val
get_denominator_val
() const;
374
inline class
size
dim
(
isl
::
dim
type
) const;
375
inline
isl
::
id
dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
376
inline
isl
::
aff
div
(
isl
::
aff
aff2) const;
377
inline
isl
::
pw_aff
div
(const
isl
::
pw_aff
&pa2) const;
378
inline
isl
::
set
domain
() const;
379
inline
isl
::
space
domain_space
() const;
380
inline
isl
::
pw_multi_aff
drop_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
381
inline
isl
::
set
eq_set
(
isl
::
aff
aff2) const;
382
inline
isl
::
set
eq_set
(const
isl
::
pw_aff
&pwaff2) const;
383
inline
isl
::
val
eval
(
isl
::
point
pnt) const;
384
inline
isl
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
space
&
space
) const;
385
inline
isl
::
multi_aff
flat_range_product
(const
isl
::
multi_aff
&multi2) const;
386
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
multi_pw_aff
&multi2) const;
387
inline
isl
::
multi_union_pw_aff
flat_range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
388
inline
isl
::
pw_multi_aff
flat_range_product
(const
isl
::
pw_multi_aff
&pma2) const;
389
inline
isl
::
union_pw_multi_aff
flat_range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
390
inline
isl
::
aff
floor
() const;
391
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
set
,
isl
::
aff
)> &
fn
) const;
392
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
set
,
isl
::
multi_aff
)> &
fn
) const;
393
inline
stat
foreach_pw_aff
(const std::function<
stat
(
isl
::
pw_aff
)> &
fn
) const;
394
inline
isl
::
set
ge_set
(
isl
::
aff
aff2) const;
395
inline
isl
::
set
ge_set
(const
isl
::
pw_aff
&pwaff2) const;
396
inline
isl
::
aff
gist
(
isl
::
set
context
) const;
397
inline
isl
::
union_pw_aff
gist
(const
isl
::
union_set
&
context
) const;
398
inline
isl
::
aff
gist
(const
isl
::
basic_set
&
context
) const;
399
inline
isl
::
aff
gist
(const
isl
::
point
&
context
) const;
400
inline
isl
::
set
gt_set
(
isl
::
aff
aff2) const;
401
inline
isl
::
set
gt_set
(const
isl
::
pw_aff
&pwaff2) const;
402
inline
boolean
has_range_tuple_id
() const;
403
inline
isl
::
multi_aff
identity
() const;
404
inline
isl
::
pw_aff
insert_domain
(const
isl
::
space
&
domain
) const;
405
inline
isl
::
pw_aff
intersect_domain
(const
isl
::
set
&
set
) const;
406
inline
isl
::
union_pw_aff
intersect_domain
(const
isl
::
space
&
space
) const;
407
inline
isl
::
union_pw_aff
intersect_domain
(const
isl
::
union_set
&uset) const;
408
inline
isl
::
union_pw_aff
intersect_domain_wrapped_domain
(const
isl
::
union_set
&uset) const;
409
inline
isl
::
union_pw_aff
intersect_domain_wrapped_range
(const
isl
::
union_set
&uset) const;
410
inline
isl
::
pw_aff
intersect_params
(const
isl
::
set
&
set
) const;
411
inline
boolean
involves_locals
() const;
412
inline
boolean
involves_nan
() const;
413
inline
boolean
involves_param
(const
isl
::
id
&
id
) const;
414
inline
boolean
involves_param
(const std::
string
&
id
) const;
415
inline
boolean
involves_param
(const
isl
::
id_list
&
list
) const;
416
inline
boolean
is_cst
() const;
417
inline
boolean
is_equal
(const
isl
::
pw_aff
&pa2) const;
418
inline
boolean
isa_aff
() const;
419
inline
boolean
isa_multi_aff
() const;
420
inline
boolean
isa_pw_multi_aff
() const;
421
inline
isl
::
set
le_set
(
isl
::
aff
aff2) const;
422
inline
isl
::
set
le_set
(const
isl
::
pw_aff
&pwaff2) const;
423
inline
isl
::
aff_list
list
() const;
424
inline
isl
::
set
lt_set
(
isl
::
aff
aff2) const;
425
inline
isl
::
set
lt_set
(const
isl
::
pw_aff
&pwaff2) const;
426
inline
isl
::
multi_pw_aff
max
(const
isl
::
multi_pw_aff
&multi2) const;
427
inline
isl
::
pw_aff
max
(const
isl
::
pw_aff
&pwaff2) const;
428
inline
isl
::
multi_val
max_multi_val
() const;
429
inline
isl
::
multi_pw_aff
min
(const
isl
::
multi_pw_aff
&multi2) const;
430
inline
isl
::
pw_aff
min
(const
isl
::
pw_aff
&pwaff2) const;
431
inline
isl
::
multi_val
min_multi_val
() const;
432
inline
isl
::
aff
mod
(
isl
::
val
mod
) const;
433
inline
isl
::
aff
mod
(
long
mod
) const;
434
inline
isl
::
aff
mul
(
isl
::
aff
aff2) const;
435
inline
isl
::
pw_aff
mul
(const
isl
::
pw_aff
&pwaff2) const;
436
inline class
size
n_piece
() const;
437
inline
isl
::
set
ne_set
(
isl
::
aff
aff2) const;
438
inline
isl
::
set
ne_set
(const
isl
::
pw_aff
&pwaff2) const;
439
inline
isl
::
aff
neg
() const;
440
inline
boolean
plain_is_empty
() const;
441
inline
boolean
plain_is_equal
(const
isl
::
multi_aff
&multi2) const;
442
inline
boolean
plain_is_equal
(const
isl
::
multi_pw_aff
&multi2) const;
443
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
444
inline
isl
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
pw_multi_aff
&pma2) const;
445
inline
isl
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
union_pw_multi_aff
&upma2) const;
446
inline
isl
::
multi_aff
product
(const
isl
::
multi_aff
&multi2) const;
447
inline
isl
::
multi_pw_aff
product
(const
isl
::
multi_pw_aff
&multi2) const;
448
inline
isl
::
pw_multi_aff
product
(const
isl
::
pw_multi_aff
&pma2) const;
449
inline
isl
::
aff
pullback
(
isl
::
multi_aff
ma
) const;
450
inline
isl
::
pw_aff
pullback
(const
isl
::
multi_pw_aff
&mpa) const;
451
inline
isl
::
pw_aff
pullback
(const
isl
::
pw_multi_aff
&
pma
) const;
452
inline
isl
::
union_pw_aff
pullback
(const
isl
::
union_pw_multi_aff
&upma) const;
453
inline
isl
::
aff
pullback
(const
isl
::
aff
&
ma
) const;
454
inline
isl
::
pw_multi_aff_list
pw_multi_aff_list
() const;
455
inline
isl
::
pw_multi_aff
range_factor_domain
() const;
456
inline
isl
::
pw_multi_aff
range_factor_range
() const;
457
inline
isl
::
multi_aff
range_product
(const
isl
::
multi_aff
&multi2) const;
458
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
multi_pw_aff
&multi2) const;
459
inline
isl
::
multi_union_pw_aff
range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
460
inline
isl
::
pw_multi_aff
range_product
(const
isl
::
pw_multi_aff
&pma2) const;
461
inline
isl
::
union_pw_multi_aff
range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
462
inline
isl
::
id
range_tuple_id
() const;
463
inline
isl
::
multi_aff
reset_range_tuple_id
() const;
464
inline
isl
::
multi_aff
reset_tuple_id
(
isl
::
dim
type
) const;
465
inline
isl
::
aff
scale
(
isl
::
val
v) const;
466
inline
isl
::
aff
scale
(
long
v) const;
467
inline
isl
::
multi_aff
scale
(const
isl
::
multi_val
&mv) const;
468
inline
isl
::
aff
scale_down
(
isl
::
val
v) const;
469
inline
isl
::
aff
scale_down
(
long
v) const;
470
inline
isl
::
multi_aff
scale_down
(const
isl
::
multi_val
&mv) const;
471
inline
isl
::
multi_aff
set_aff
(
int
pos
, const
isl
::
aff
&el) const;
472
inline
isl
::
multi_aff
set_at
(
int
pos
, const
isl
::
aff
&el) const;
473
inline
isl
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
pw_aff
&el) const;
474
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
475
inline
isl
::
aff
set_constant_si
(
int
v) const;
476
inline
isl
::
multi_pw_aff
set_pw_aff
(
int
pos
, const
isl
::
pw_aff
&el) const;
477
inline
isl
::
pw_multi_aff
set_pw_aff
(
unsigned
int
pos
, const
isl
::
pw_aff
&
pa
) const;
478
inline
isl
::
multi_aff
set_range_tuple
(const
isl
::
id
&
id
) const;
479
inline
isl
::
multi_aff
set_range_tuple
(const std::
string
&
id
) const;
480
inline
isl
::
pw_aff
set_tuple_id
(
isl
::
dim
type
, const
isl
::
id
&
id
) const;
481
inline
isl
::
pw_aff
set_tuple_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
482
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
483
inline class
size
size
() const;
484
inline
isl
::
space
space
() const;
485
inline
isl
::
aff
sub
(
isl
::
aff
aff2) const;
486
inline
isl
::
multi_aff
sub
(const
isl
::
multi_aff
&multi2) const;
487
inline
isl
::
multi_pw_aff
sub
(const
isl
::
multi_pw_aff
&multi2) const;
488
inline
isl
::
multi_union_pw_aff
sub
(const
isl
::
multi_union_pw_aff
&multi2) const;
489
inline
isl
::
pw_aff
sub
(const
isl
::
pw_aff
&pwaff2) const;
490
inline
isl
::
pw_multi_aff
sub
(const
isl
::
pw_multi_aff
&pma2) const;
491
inline
isl
::
union_pw_aff
sub
(const
isl
::
union_pw_aff
&upa2) const;
492
inline
isl
::
union_pw_multi_aff
sub
(const
isl
::
union_pw_multi_aff
&upma2) const;
493
inline
isl
::
pw_aff
subtract_domain
(const
isl
::
set
&
set
) const;
494
inline
isl
::
union_pw_aff
subtract_domain
(const
isl
::
space
&
space
) const;
495
inline
isl
::
union_pw_aff
subtract_domain
(const
isl
::
union_set
&uset) const;
496
inline
isl
::
pw_aff
tdiv_q
(const
isl
::
pw_aff
&pa2) const;
497
inline
isl
::
pw_aff
tdiv_r
(const
isl
::
pw_aff
&pa2) const;
498
inline
isl
::
aff_list
to_list
() const;
499
inline
isl
::
multi_pw_aff
to_multi_pw_aff
() const;
500
inline
isl
::
multi_union_pw_aff
to_multi_union_pw_aff
() const;
501
inline
isl
::
pw_multi_aff
to_pw_multi_aff
() const;
502
inline
isl
::
union_pw_aff
to_union_pw_aff
() const;
503
inline
isl
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
504
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
505
inline
isl
::
aff
unbind_params_insert_domain
(
isl
::
multi_id
domain
) const;
506
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
multi_pw_aff
&mpa2) const;
507
inline
isl
::
multi_union_pw_aff
union_add
(const
isl
::
multi_union_pw_aff
&mupa2) const;
508
inline
isl
::
pw_aff
union_add
(const
isl
::
pw_aff
&pwaff2) const;
509
inline
isl
::
pw_multi_aff
union_add
(const
isl
::
pw_multi_aff
&pma2) const;
510
inline
isl
::
union_pw_aff
union_add
(const
isl
::
union_pw_aff
&upa2) const;
511
inline
isl
::
union_pw_multi_aff
union_add
(const
isl
::
union_pw_multi_aff
&upma2) const;
512
static inline
isl
::
aff
var_on_domain
(
isl
::
local_space
ls,
isl
::
dim
type
,
unsigned
int
pos
);
513
static inline
isl
::
aff
zero_on_domain
(
isl
::
space
space
);
514
};
515
516
// declarations for isl::aff_list
517
inline
aff_list
manage
(
__isl_take
isl_aff_list *
ptr
);
518
inline
aff_list
manage_copy
(
__isl_keep
isl_aff_list *
ptr
);
519
520
class
aff_list
{
521
friend
inline
aff_list
manage
(
__isl_take
isl_aff_list *
ptr
);
522
friend
inline
aff_list
manage_copy
(
__isl_keep
isl_aff_list *
ptr
);
523
524
protected
:
525
isl_aff_list *
ptr
=
nullptr
;
526
527
inline
explicit
aff_list
(
__isl_take
isl_aff_list *
ptr
);
528
529
public
:
530
inline
/* implicit */
aff_list
();
531
inline
/* implicit */
aff_list
(
const
aff_list
&
obj
);
532
inline
explicit
aff_list
(
isl::ctx
ctx
,
int
n
);
533
inline
explicit
aff_list
(
isl::aff
el);
534
inline
explicit
aff_list
(
isl::ctx
ctx
,
const
std::string &
str
);
535
inline
aff_list
&
operator=
(
aff_list
obj
);
536
inline
~aff_list
();
537
inline
__isl_give
isl_aff_list *
copy
() const &;
538
inline
__isl_give
isl_aff_list *
copy
() && = delete;
539
inline
__isl_keep
isl_aff_list *
get
() const;
540
inline
__isl_give
isl_aff_list *
release
();
541
inline
bool
is_null
() const;
542
inline
isl
::
ctx
ctx
() const;
543
544
inline
isl
::
aff_list
add
(
isl
::
aff
el) const;
545
inline
isl
::
aff
at
(
int
index) const;
546
inline
isl
::
aff
get_at
(
int
index) const;
547
inline
isl
::
aff_list
clear
() const;
548
inline
isl
::
aff_list
concat
(
isl
::
aff_list
list2) const;
549
inline
isl
::
aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
550
inline
stat
foreach
(const std::function<
stat
(
isl
::
aff
)> &
fn
) const;
551
inline
isl
::
aff_list
insert
(
unsigned
int
pos
,
isl
::
aff
el) const;
552
inline class
size
size
() const;
553
};
554
555
// declarations for isl::ast_build
556
inline
ast_build
manage
(
__isl_take
isl_ast_build
*
ptr
);
557
inline
ast_build
manage_copy
(
__isl_keep
isl_ast_build
*
ptr
);
558
559
class
ast_build
{
560
friend
inline
ast_build
manage
(
__isl_take
isl_ast_build
*
ptr
);
561
friend
inline
ast_build
manage_copy
(
__isl_keep
isl_ast_build
*
ptr
);
562
563
protected
:
564
isl_ast_build
*
ptr
=
nullptr
;
565
566
inline
explicit
ast_build
(
__isl_take
isl_ast_build
*
ptr
);
567
568
public
:
569
inline
/* implicit */
ast_build
();
570
inline
/* implicit */
ast_build
(
const
ast_build
&
obj
);
571
inline
explicit
ast_build
(
isl::ctx
ctx
);
572
inline
ast_build
&
operator=
(
ast_build
obj
);
573
inline
~ast_build
();
574
inline
__isl_give
isl_ast_build
*
copy
() const &;
575
inline
__isl_give
isl_ast_build
*
copy
() && = delete;
576
inline
__isl_keep
isl_ast_build
*
get
() const;
577
inline
__isl_give
isl_ast_build
*
release
();
578
inline
bool
is_null
() const;
579
inline
isl
::
ctx
ctx
() const;
580
581
private:
582
inline
ast_build
&
copy_callbacks
(const
ast_build
&
obj
);
583
struct
at_each_domain_data
{
584
std::function<
isl::ast_node
(
isl::ast_node
,
isl::ast_build
)>
func
;
585
};
586
std::shared_ptr<at_each_domain_data>
at_each_domain_data
;
587
static
inline
isl_ast_node
*
at_each_domain
(
isl_ast_node
*arg_0,
isl_ast_build
*arg_1,
void
*arg_2);
588
inline
void
set_at_each_domain_data
(
const
std::function<
isl::ast_node
(
isl::ast_node
,
isl::ast_build
)> &
fn
);
589
public
:
590
inline
isl::ast_build
set_at_each_domain
(
const
std::function<
isl::ast_node
(
isl::ast_node
,
isl::ast_build
)> &
fn
)
const
;
591
inline
isl::ast_expr
access_from
(
isl::multi_pw_aff
mpa)
const
;
592
inline
isl::ast_expr
access_from
(
isl::pw_multi_aff
pma
)
const
;
593
inline
isl::ast_expr
call_from
(
isl::multi_pw_aff
mpa)
const
;
594
inline
isl::ast_expr
call_from
(
isl::pw_multi_aff
pma
)
const
;
595
inline
isl::ast_expr
expr_from
(
isl::pw_aff
pa
)
const
;
596
inline
isl::ast_expr
expr_from
(
isl::set
set
)
const
;
597
static
inline
isl::ast_build
from_context
(
isl::set
set
);
598
inline
isl::ast_node
node_from
(
isl::schedule
schedule
)
const
;
599
inline
isl::ast_node
node_from_schedule_map
(
isl::union_map
schedule
)
const
;
600
inline
isl::ast_build
restrict
(
isl::set
set
)
const
;
601
inline
isl::union_map
schedule
()
const
;
602
inline
isl::union_map
get_schedule
()
const
;
603
};
604
605
// declarations for isl::ast_expr
606
inline
ast_expr
manage
(
__isl_take
isl_ast_expr
*
ptr
);
607
inline
ast_expr
manage_copy
(
__isl_keep
isl_ast_expr
*
ptr
);
608
609
class
ast_expr
{
610
friend
inline
ast_expr
manage
(
__isl_take
isl_ast_expr
*
ptr
);
611
friend
inline
ast_expr
manage_copy
(
__isl_keep
isl_ast_expr
*
ptr
);
612
613
protected
:
614
isl_ast_expr
*
ptr
=
nullptr
;
615
616
inline
explicit
ast_expr
(
__isl_take
isl_ast_expr
*
ptr
);
617
618
public
:
619
inline
/* implicit */
ast_expr
();
620
inline
/* implicit */
ast_expr
(
const
ast_expr
&
obj
);
621
inline
ast_expr
&
operator=
(
ast_expr
obj
);
622
inline
~ast_expr
();
623
inline
__isl_give
isl_ast_expr
*
copy
() const &;
624
inline
__isl_give
isl_ast_expr
*
copy
() && = delete;
625
inline
__isl_keep
isl_ast_expr
*
get
() const;
626
inline
__isl_give
isl_ast_expr
*
release
();
627
inline
bool
is_null
() const;
628
private:
629
template <typename T,
630
typename = typename std::enable_if<std::is_same<
631
const decltype(
isl_ast_expr_get_type
(
nullptr
)),
632
const T>::value>::
type
>
633
inline
boolean
isa_type
(T subtype) const;
634
public:
635
template <class T> inline
boolean
isa
() const;
636
template <class T> inline T
as
() const;
637
inline
isl
::
ctx
ctx
() const;
638
639
inline
isl
::
ast_expr
add
(
isl
::
ast_expr
expr2) const;
640
inline
isl
::
ast_expr
address_of
() const;
641
inline
isl
::
ast_expr
eq
(
isl
::
ast_expr
expr2) const;
642
static inline
isl
::
ast_expr
from_val
(
isl
::
val
v);
643
inline
isl
::
id
id
() const;
644
inline
isl
::
id
get_id
() const;
645
inline
isl
::
ast_expr
le
(
isl
::
ast_expr
expr2) const;
646
inline
isl
::
ast_expr
mul
(
isl
::
ast_expr
expr2) const;
647
inline
isl
::
ast_expr
op_arg
(
int
pos
) const;
648
inline
isl
::
ast_expr
get_op_arg
(
int
pos
) const;
649
inline std::
string
to_C_str
() const;
650
inline
isl
::
val
val
() const;
651
inline
isl
::
val
get_val
() const;
652
};
653
654
// declarations for isl::ast_expr_id
655
656
class
ast_expr_id
: public
ast_expr
{
657
template
<
class
T>
658
friend
boolean
ast_expr::isa
()
const
;
659
friend
ast_expr_id
ast_expr::as<ast_expr_id>
()
const
;
660
static
const
auto
type
=
isl_ast_expr_id
;
661
662
protected
:
663
inline
explicit
ast_expr_id
(
__isl_take
isl_ast_expr
*
ptr
);
664
665
public
:
666
inline
/* implicit */
ast_expr_id
();
667
inline
/* implicit */
ast_expr_id
(
const
ast_expr_id
&
obj
);
668
inline
ast_expr_id
&
operator=
(
ast_expr_id
obj
);
669
inline
isl::ctx
ctx
()
const
;
670
671
inline
isl::id
id
()
const
;
672
inline
isl::id
get_id
()
const
;
673
};
674
675
// declarations for isl::ast_expr_int
676
677
class
ast_expr_int
:
public
ast_expr
{
678
template
<
class
T>
679
friend
boolean
ast_expr::isa
()
const
;
680
friend
ast_expr_int
ast_expr::as<ast_expr_int>
()
const
;
681
static
const
auto
type
=
isl_ast_expr_int
;
682
683
protected
:
684
inline
explicit
ast_expr_int
(
__isl_take
isl_ast_expr
*
ptr
);
685
686
public
:
687
inline
/* implicit */
ast_expr_int
();
688
inline
/* implicit */
ast_expr_int
(
const
ast_expr_int
&
obj
);
689
inline
ast_expr_int
&
operator=
(
ast_expr_int
obj
);
690
inline
isl::ctx
ctx
()
const
;
691
692
inline
isl::val
val
()
const
;
693
inline
isl::val
get_val
()
const
;
694
};
695
696
// declarations for isl::ast_expr_op
697
698
class
ast_expr_op
:
public
ast_expr
{
699
template
<
class
T>
700
friend
boolean
ast_expr::isa
()
const
;
701
friend
ast_expr_op
ast_expr::as<ast_expr_op>
()
const
;
702
static
const
auto
type
=
isl_ast_expr_op
;
703
704
protected
:
705
inline
explicit
ast_expr_op
(
__isl_take
isl_ast_expr
*
ptr
);
706
707
public
:
708
inline
/* implicit */
ast_expr_op
();
709
inline
/* implicit */
ast_expr_op
(
const
ast_expr_op
&
obj
);
710
inline
ast_expr_op
&
operator=
(
ast_expr_op
obj
);
711
private
:
712
template
<
typename
T,
713
typename
=
typename
std::enable_if<std::is_same<
714
const
decltype
(
isl_ast_expr_op_get_type
(
nullptr
)),
715
const
T>::value>
::type
>
716
inline
boolean
isa_type
(T subtype)
const
;
717
public
:
718
template
<
class
T>
inline
boolean
isa
()
const
;
719
template
<
class
T>
inline
T
as
()
const
;
720
inline
isl::ctx
ctx
()
const
;
721
722
inline
isl::ast_expr
arg
(
int
pos
)
const
;
723
inline
isl::ast_expr
get_arg
(
int
pos
)
const
;
724
inline
class
size
n_arg
()
const
;
725
inline
class
size
get_n_arg
()
const
;
726
};
727
728
// declarations for isl::ast_expr_op_access
729
730
class
ast_expr_op_access
:
public
ast_expr_op
{
731
template
<
class
T>
732
friend
boolean
ast_expr_op::isa
()
const
;
733
friend
ast_expr_op_access
ast_expr_op::as<ast_expr_op_access>
()
const
;
734
static
const
auto
type
=
isl_ast_expr_op_access
;
735
736
protected
:
737
inline
explicit
ast_expr_op_access
(
__isl_take
isl_ast_expr
*
ptr
);
738
739
public
:
740
inline
/* implicit */
ast_expr_op_access
();
741
inline
/* implicit */
ast_expr_op_access
(
const
ast_expr_op_access
&
obj
);
742
inline
ast_expr_op_access
&
operator=
(
ast_expr_op_access
obj
);
743
inline
isl::ctx
ctx
()
const
;
744
745
};
746
747
// declarations for isl::ast_expr_op_add
748
749
class
ast_expr_op_add
:
public
ast_expr_op
{
750
template
<
class
T>
751
friend
boolean
ast_expr_op::isa
()
const
;
752
friend
ast_expr_op_add
ast_expr_op::as<ast_expr_op_add>
()
const
;
753
static
const
auto
type
=
isl_ast_expr_op_add
;
754
755
protected
:
756
inline
explicit
ast_expr_op_add
(
__isl_take
isl_ast_expr
*
ptr
);
757
758
public
:
759
inline
/* implicit */
ast_expr_op_add
();
760
inline
/* implicit */
ast_expr_op_add
(
const
ast_expr_op_add
&
obj
);
761
inline
ast_expr_op_add
&
operator=
(
ast_expr_op_add
obj
);
762
inline
isl::ctx
ctx
()
const
;
763
764
};
765
766
// declarations for isl::ast_expr_op_address_of
767
768
class
ast_expr_op_address_of
:
public
ast_expr_op
{
769
template
<
class
T>
770
friend
boolean
ast_expr_op::isa
()
const
;
771
friend
ast_expr_op_address_of
ast_expr_op::as<ast_expr_op_address_of>
()
const
;
772
static
const
auto
type
=
isl_ast_expr_op_address_of
;
773
774
protected
:
775
inline
explicit
ast_expr_op_address_of
(
__isl_take
isl_ast_expr
*
ptr
);
776
777
public
:
778
inline
/* implicit */
ast_expr_op_address_of
();
779
inline
/* implicit */
ast_expr_op_address_of
(
const
ast_expr_op_address_of
&
obj
);
780
inline
ast_expr_op_address_of
&
operator=
(
ast_expr_op_address_of
obj
);
781
inline
isl::ctx
ctx
()
const
;
782
783
};
784
785
// declarations for isl::ast_expr_op_and
786
787
class
ast_expr_op_and
:
public
ast_expr_op
{
788
template
<
class
T>
789
friend
boolean
ast_expr_op::isa
()
const
;
790
friend
ast_expr_op_and
ast_expr_op::as<ast_expr_op_and>
()
const
;
791
static
const
auto
type
=
isl_ast_expr_op_and
;
792
793
protected
:
794
inline
explicit
ast_expr_op_and
(
__isl_take
isl_ast_expr
*
ptr
);
795
796
public
:
797
inline
/* implicit */
ast_expr_op_and
();
798
inline
/* implicit */
ast_expr_op_and
(
const
ast_expr_op_and
&
obj
);
799
inline
ast_expr_op_and
&
operator=
(
ast_expr_op_and
obj
);
800
inline
isl::ctx
ctx
()
const
;
801
802
};
803
804
// declarations for isl::ast_expr_op_and_then
805
806
class
ast_expr_op_and_then
:
public
ast_expr_op
{
807
template
<
class
T>
808
friend
boolean
ast_expr_op::isa
()
const
;
809
friend
ast_expr_op_and_then
ast_expr_op::as<ast_expr_op_and_then>
()
const
;
810
static
const
auto
type
=
isl_ast_expr_op_and_then
;
811
812
protected
:
813
inline
explicit
ast_expr_op_and_then
(
__isl_take
isl_ast_expr
*
ptr
);
814
815
public
:
816
inline
/* implicit */
ast_expr_op_and_then
();
817
inline
/* implicit */
ast_expr_op_and_then
(
const
ast_expr_op_and_then
&
obj
);
818
inline
ast_expr_op_and_then
&
operator=
(
ast_expr_op_and_then
obj
);
819
inline
isl::ctx
ctx
()
const
;
820
821
};
822
823
// declarations for isl::ast_expr_op_call
824
825
class
ast_expr_op_call
:
public
ast_expr_op
{
826
template
<
class
T>
827
friend
boolean
ast_expr_op::isa
()
const
;
828
friend
ast_expr_op_call
ast_expr_op::as<ast_expr_op_call>
()
const
;
829
static
const
auto
type
=
isl_ast_expr_op_call
;
830
831
protected
:
832
inline
explicit
ast_expr_op_call
(
__isl_take
isl_ast_expr
*
ptr
);
833
834
public
:
835
inline
/* implicit */
ast_expr_op_call
();
836
inline
/* implicit */
ast_expr_op_call
(
const
ast_expr_op_call
&
obj
);
837
inline
ast_expr_op_call
&
operator=
(
ast_expr_op_call
obj
);
838
inline
isl::ctx
ctx
()
const
;
839
840
};
841
842
// declarations for isl::ast_expr_op_cond
843
844
class
ast_expr_op_cond
:
public
ast_expr_op
{
845
template
<
class
T>
846
friend
boolean
ast_expr_op::isa
()
const
;
847
friend
ast_expr_op_cond
ast_expr_op::as<ast_expr_op_cond>
()
const
;
848
static
const
auto
type
=
isl_ast_expr_op_cond
;
849
850
protected
:
851
inline
explicit
ast_expr_op_cond
(
__isl_take
isl_ast_expr
*
ptr
);
852
853
public
:
854
inline
/* implicit */
ast_expr_op_cond
();
855
inline
/* implicit */
ast_expr_op_cond
(
const
ast_expr_op_cond
&
obj
);
856
inline
ast_expr_op_cond
&
operator=
(
ast_expr_op_cond
obj
);
857
inline
isl::ctx
ctx
()
const
;
858
859
};
860
861
// declarations for isl::ast_expr_op_div
862
863
class
ast_expr_op_div
:
public
ast_expr_op
{
864
template
<
class
T>
865
friend
boolean
ast_expr_op::isa
()
const
;
866
friend
ast_expr_op_div
ast_expr_op::as<ast_expr_op_div>
()
const
;
867
static
const
auto
type
=
isl_ast_expr_op_div
;
868
869
protected
:
870
inline
explicit
ast_expr_op_div
(
__isl_take
isl_ast_expr
*
ptr
);
871
872
public
:
873
inline
/* implicit */
ast_expr_op_div
();
874
inline
/* implicit */
ast_expr_op_div
(
const
ast_expr_op_div
&
obj
);
875
inline
ast_expr_op_div
&
operator=
(
ast_expr_op_div
obj
);
876
inline
isl::ctx
ctx
()
const
;
877
878
};
879
880
// declarations for isl::ast_expr_op_eq
881
882
class
ast_expr_op_eq
:
public
ast_expr_op
{
883
template
<
class
T>
884
friend
boolean
ast_expr_op::isa
()
const
;
885
friend
ast_expr_op_eq
ast_expr_op::as<ast_expr_op_eq>
()
const
;
886
static
const
auto
type
=
isl_ast_expr_op_eq
;
887
888
protected
:
889
inline
explicit
ast_expr_op_eq
(
__isl_take
isl_ast_expr
*
ptr
);
890
891
public
:
892
inline
/* implicit */
ast_expr_op_eq
();
893
inline
/* implicit */
ast_expr_op_eq
(
const
ast_expr_op_eq
&
obj
);
894
inline
ast_expr_op_eq
&
operator=
(
ast_expr_op_eq
obj
);
895
inline
isl::ctx
ctx
()
const
;
896
897
};
898
899
// declarations for isl::ast_expr_op_fdiv_q
900
901
class
ast_expr_op_fdiv_q
:
public
ast_expr_op
{
902
template
<
class
T>
903
friend
boolean
ast_expr_op::isa
()
const
;
904
friend
ast_expr_op_fdiv_q
ast_expr_op::as<ast_expr_op_fdiv_q>
()
const
;
905
static
const
auto
type
=
isl_ast_expr_op_fdiv_q
;
906
907
protected
:
908
inline
explicit
ast_expr_op_fdiv_q
(
__isl_take
isl_ast_expr
*
ptr
);
909
910
public
:
911
inline
/* implicit */
ast_expr_op_fdiv_q
();
912
inline
/* implicit */
ast_expr_op_fdiv_q
(
const
ast_expr_op_fdiv_q
&
obj
);
913
inline
ast_expr_op_fdiv_q
&
operator=
(
ast_expr_op_fdiv_q
obj
);
914
inline
isl::ctx
ctx
()
const
;
915
916
};
917
918
// declarations for isl::ast_expr_op_ge
919
920
class
ast_expr_op_ge
:
public
ast_expr_op
{
921
template
<
class
T>
922
friend
boolean
ast_expr_op::isa
()
const
;
923
friend
ast_expr_op_ge
ast_expr_op::as<ast_expr_op_ge>
()
const
;
924
static
const
auto
type
=
isl_ast_expr_op_ge
;
925
926
protected
:
927
inline
explicit
ast_expr_op_ge
(
__isl_take
isl_ast_expr
*
ptr
);
928
929
public
:
930
inline
/* implicit */
ast_expr_op_ge
();
931
inline
/* implicit */
ast_expr_op_ge
(
const
ast_expr_op_ge
&
obj
);
932
inline
ast_expr_op_ge
&
operator=
(
ast_expr_op_ge
obj
);
933
inline
isl::ctx
ctx
()
const
;
934
935
};
936
937
// declarations for isl::ast_expr_op_gt
938
939
class
ast_expr_op_gt
:
public
ast_expr_op
{
940
template
<
class
T>
941
friend
boolean
ast_expr_op::isa
()
const
;
942
friend
ast_expr_op_gt
ast_expr_op::as<ast_expr_op_gt>
()
const
;
943
static
const
auto
type
=
isl_ast_expr_op_gt
;
944
945
protected
:
946
inline
explicit
ast_expr_op_gt
(
__isl_take
isl_ast_expr
*
ptr
);
947
948
public
:
949
inline
/* implicit */
ast_expr_op_gt
();
950
inline
/* implicit */
ast_expr_op_gt
(
const
ast_expr_op_gt
&
obj
);
951
inline
ast_expr_op_gt
&
operator=
(
ast_expr_op_gt
obj
);
952
inline
isl::ctx
ctx
()
const
;
953
954
};
955
956
// declarations for isl::ast_expr_op_le
957
958
class
ast_expr_op_le
:
public
ast_expr_op
{
959
template
<
class
T>
960
friend
boolean
ast_expr_op::isa
()
const
;
961
friend
ast_expr_op_le
ast_expr_op::as<ast_expr_op_le>
()
const
;
962
static
const
auto
type
=
isl_ast_expr_op_le
;
963
964
protected
:
965
inline
explicit
ast_expr_op_le
(
__isl_take
isl_ast_expr
*
ptr
);
966
967
public
:
968
inline
/* implicit */
ast_expr_op_le
();
969
inline
/* implicit */
ast_expr_op_le
(
const
ast_expr_op_le
&
obj
);
970
inline
ast_expr_op_le
&
operator=
(
ast_expr_op_le
obj
);
971
inline
isl::ctx
ctx
()
const
;
972
973
};
974
975
// declarations for isl::ast_expr_op_lt
976
977
class
ast_expr_op_lt
:
public
ast_expr_op
{
978
template
<
class
T>
979
friend
boolean
ast_expr_op::isa
()
const
;
980
friend
ast_expr_op_lt
ast_expr_op::as<ast_expr_op_lt>
()
const
;
981
static
const
auto
type
=
isl_ast_expr_op_lt
;
982
983
protected
:
984
inline
explicit
ast_expr_op_lt
(
__isl_take
isl_ast_expr
*
ptr
);
985
986
public
:
987
inline
/* implicit */
ast_expr_op_lt
();
988
inline
/* implicit */
ast_expr_op_lt
(
const
ast_expr_op_lt
&
obj
);
989
inline
ast_expr_op_lt
&
operator=
(
ast_expr_op_lt
obj
);
990
inline
isl::ctx
ctx
()
const
;
991
992
};
993
994
// declarations for isl::ast_expr_op_max
995
996
class
ast_expr_op_max
:
public
ast_expr_op
{
997
template
<
class
T>
998
friend
boolean
ast_expr_op::isa
()
const
;
999
friend
ast_expr_op_max
ast_expr_op::as<ast_expr_op_max>
()
const
;
1000
static
const
auto
type
=
isl_ast_expr_op_max
;
1001
1002
protected
:
1003
inline
explicit
ast_expr_op_max
(
__isl_take
isl_ast_expr
*
ptr
);
1004
1005
public
:
1006
inline
/* implicit */
ast_expr_op_max
();
1007
inline
/* implicit */
ast_expr_op_max
(
const
ast_expr_op_max
&
obj
);
1008
inline
ast_expr_op_max
&
operator=
(
ast_expr_op_max
obj
);
1009
inline
isl::ctx
ctx
()
const
;
1010
1011
};
1012
1013
// declarations for isl::ast_expr_op_member
1014
1015
class
ast_expr_op_member
:
public
ast_expr_op
{
1016
template
<
class
T>
1017
friend
boolean
ast_expr_op::isa
()
const
;
1018
friend
ast_expr_op_member
ast_expr_op::as<ast_expr_op_member>
()
const
;
1019
static
const
auto
type
=
isl_ast_expr_op_member
;
1020
1021
protected
:
1022
inline
explicit
ast_expr_op_member
(
__isl_take
isl_ast_expr
*
ptr
);
1023
1024
public
:
1025
inline
/* implicit */
ast_expr_op_member
();
1026
inline
/* implicit */
ast_expr_op_member
(
const
ast_expr_op_member
&
obj
);
1027
inline
ast_expr_op_member
&
operator=
(
ast_expr_op_member
obj
);
1028
inline
isl::ctx
ctx
()
const
;
1029
1030
};
1031
1032
// declarations for isl::ast_expr_op_min
1033
1034
class
ast_expr_op_min
:
public
ast_expr_op
{
1035
template
<
class
T>
1036
friend
boolean
ast_expr_op::isa
()
const
;
1037
friend
ast_expr_op_min
ast_expr_op::as<ast_expr_op_min>
()
const
;
1038
static
const
auto
type
=
isl_ast_expr_op_min
;
1039
1040
protected
:
1041
inline
explicit
ast_expr_op_min
(
__isl_take
isl_ast_expr
*
ptr
);
1042
1043
public
:
1044
inline
/* implicit */
ast_expr_op_min
();
1045
inline
/* implicit */
ast_expr_op_min
(
const
ast_expr_op_min
&
obj
);
1046
inline
ast_expr_op_min
&
operator=
(
ast_expr_op_min
obj
);
1047
inline
isl::ctx
ctx
()
const
;
1048
1049
};
1050
1051
// declarations for isl::ast_expr_op_minus
1052
1053
class
ast_expr_op_minus
:
public
ast_expr_op
{
1054
template
<
class
T>
1055
friend
boolean
ast_expr_op::isa
()
const
;
1056
friend
ast_expr_op_minus
ast_expr_op::as<ast_expr_op_minus>
()
const
;
1057
static
const
auto
type
=
isl_ast_expr_op_minus
;
1058
1059
protected
:
1060
inline
explicit
ast_expr_op_minus
(
__isl_take
isl_ast_expr
*
ptr
);
1061
1062
public
:
1063
inline
/* implicit */
ast_expr_op_minus
();
1064
inline
/* implicit */
ast_expr_op_minus
(
const
ast_expr_op_minus
&
obj
);
1065
inline
ast_expr_op_minus
&
operator=
(
ast_expr_op_minus
obj
);
1066
inline
isl::ctx
ctx
()
const
;
1067
1068
};
1069
1070
// declarations for isl::ast_expr_op_mul
1071
1072
class
ast_expr_op_mul
:
public
ast_expr_op
{
1073
template
<
class
T>
1074
friend
boolean
ast_expr_op::isa
()
const
;
1075
friend
ast_expr_op_mul
ast_expr_op::as<ast_expr_op_mul>
()
const
;
1076
static
const
auto
type
=
isl_ast_expr_op_mul
;
1077
1078
protected
:
1079
inline
explicit
ast_expr_op_mul
(
__isl_take
isl_ast_expr
*
ptr
);
1080
1081
public
:
1082
inline
/* implicit */
ast_expr_op_mul
();
1083
inline
/* implicit */
ast_expr_op_mul
(
const
ast_expr_op_mul
&
obj
);
1084
inline
ast_expr_op_mul
&
operator=
(
ast_expr_op_mul
obj
);
1085
inline
isl::ctx
ctx
()
const
;
1086
1087
};
1088
1089
// declarations for isl::ast_expr_op_or
1090
1091
class
ast_expr_op_or
:
public
ast_expr_op
{
1092
template
<
class
T>
1093
friend
boolean
ast_expr_op::isa
()
const
;
1094
friend
ast_expr_op_or
ast_expr_op::as<ast_expr_op_or>
()
const
;
1095
static
const
auto
type
=
isl_ast_expr_op_or
;
1096
1097
protected
:
1098
inline
explicit
ast_expr_op_or
(
__isl_take
isl_ast_expr
*
ptr
);
1099
1100
public
:
1101
inline
/* implicit */
ast_expr_op_or
();
1102
inline
/* implicit */
ast_expr_op_or
(
const
ast_expr_op_or
&
obj
);
1103
inline
ast_expr_op_or
&
operator=
(
ast_expr_op_or
obj
);
1104
inline
isl::ctx
ctx
()
const
;
1105
1106
};
1107
1108
// declarations for isl::ast_expr_op_or_else
1109
1110
class
ast_expr_op_or_else
:
public
ast_expr_op
{
1111
template
<
class
T>
1112
friend
boolean
ast_expr_op::isa
()
const
;
1113
friend
ast_expr_op_or_else
ast_expr_op::as<ast_expr_op_or_else>
()
const
;
1114
static
const
auto
type
=
isl_ast_expr_op_or_else
;
1115
1116
protected
:
1117
inline
explicit
ast_expr_op_or_else
(
__isl_take
isl_ast_expr
*
ptr
);
1118
1119
public
:
1120
inline
/* implicit */
ast_expr_op_or_else
();
1121
inline
/* implicit */
ast_expr_op_or_else
(
const
ast_expr_op_or_else
&
obj
);
1122
inline
ast_expr_op_or_else
&
operator=
(
ast_expr_op_or_else
obj
);
1123
inline
isl::ctx
ctx
()
const
;
1124
1125
};
1126
1127
// declarations for isl::ast_expr_op_pdiv_q
1128
1129
class
ast_expr_op_pdiv_q
:
public
ast_expr_op
{
1130
template
<
class
T>
1131
friend
boolean
ast_expr_op::isa
()
const
;
1132
friend
ast_expr_op_pdiv_q
ast_expr_op::as<ast_expr_op_pdiv_q>
()
const
;
1133
static
const
auto
type
=
isl_ast_expr_op_pdiv_q
;
1134
1135
protected
:
1136
inline
explicit
ast_expr_op_pdiv_q
(
__isl_take
isl_ast_expr
*
ptr
);
1137
1138
public
:
1139
inline
/* implicit */
ast_expr_op_pdiv_q
();
1140
inline
/* implicit */
ast_expr_op_pdiv_q
(
const
ast_expr_op_pdiv_q
&
obj
);
1141
inline
ast_expr_op_pdiv_q
&
operator=
(
ast_expr_op_pdiv_q
obj
);
1142
inline
isl::ctx
ctx
()
const
;
1143
1144
};
1145
1146
// declarations for isl::ast_expr_op_pdiv_r
1147
1148
class
ast_expr_op_pdiv_r
:
public
ast_expr_op
{
1149
template
<
class
T>
1150
friend
boolean
ast_expr_op::isa
()
const
;
1151
friend
ast_expr_op_pdiv_r
ast_expr_op::as<ast_expr_op_pdiv_r>
()
const
;
1152
static
const
auto
type
=
isl_ast_expr_op_pdiv_r
;
1153
1154
protected
:
1155
inline
explicit
ast_expr_op_pdiv_r
(
__isl_take
isl_ast_expr
*
ptr
);
1156
1157
public
:
1158
inline
/* implicit */
ast_expr_op_pdiv_r
();
1159
inline
/* implicit */
ast_expr_op_pdiv_r
(
const
ast_expr_op_pdiv_r
&
obj
);
1160
inline
ast_expr_op_pdiv_r
&
operator=
(
ast_expr_op_pdiv_r
obj
);
1161
inline
isl::ctx
ctx
()
const
;
1162
1163
};
1164
1165
// declarations for isl::ast_expr_op_select
1166
1167
class
ast_expr_op_select
:
public
ast_expr_op
{
1168
template
<
class
T>
1169
friend
boolean
ast_expr_op::isa
()
const
;
1170
friend
ast_expr_op_select
ast_expr_op::as<ast_expr_op_select>
()
const
;
1171
static
const
auto
type
=
isl_ast_expr_op_select
;
1172
1173
protected
:
1174
inline
explicit
ast_expr_op_select
(
__isl_take
isl_ast_expr
*
ptr
);
1175
1176
public
:
1177
inline
/* implicit */
ast_expr_op_select
();
1178
inline
/* implicit */
ast_expr_op_select
(
const
ast_expr_op_select
&
obj
);
1179
inline
ast_expr_op_select
&
operator=
(
ast_expr_op_select
obj
);
1180
inline
isl::ctx
ctx
()
const
;
1181
1182
};
1183
1184
// declarations for isl::ast_expr_op_sub
1185
1186
class
ast_expr_op_sub
:
public
ast_expr_op
{
1187
template
<
class
T>
1188
friend
boolean
ast_expr_op::isa
()
const
;
1189
friend
ast_expr_op_sub
ast_expr_op::as<ast_expr_op_sub>
()
const
;
1190
static
const
auto
type
=
isl_ast_expr_op_sub
;
1191
1192
protected
:
1193
inline
explicit
ast_expr_op_sub
(
__isl_take
isl_ast_expr
*
ptr
);
1194
1195
public
:
1196
inline
/* implicit */
ast_expr_op_sub
();
1197
inline
/* implicit */
ast_expr_op_sub
(
const
ast_expr_op_sub
&
obj
);
1198
inline
ast_expr_op_sub
&
operator=
(
ast_expr_op_sub
obj
);
1199
inline
isl::ctx
ctx
()
const
;
1200
1201
};
1202
1203
// declarations for isl::ast_expr_op_zdiv_r
1204
1205
class
ast_expr_op_zdiv_r
:
public
ast_expr_op
{
1206
template
<
class
T>
1207
friend
boolean
ast_expr_op::isa
()
const
;
1208
friend
ast_expr_op_zdiv_r
ast_expr_op::as<ast_expr_op_zdiv_r>
()
const
;
1209
static
const
auto
type
=
isl_ast_expr_op_zdiv_r
;
1210
1211
protected
:
1212
inline
explicit
ast_expr_op_zdiv_r
(
__isl_take
isl_ast_expr
*
ptr
);
1213
1214
public
:
1215
inline
/* implicit */
ast_expr_op_zdiv_r
();
1216
inline
/* implicit */
ast_expr_op_zdiv_r
(
const
ast_expr_op_zdiv_r
&
obj
);
1217
inline
ast_expr_op_zdiv_r
&
operator=
(
ast_expr_op_zdiv_r
obj
);
1218
inline
isl::ctx
ctx
()
const
;
1219
1220
};
1221
1222
// declarations for isl::ast_node
1223
inline
ast_node
manage
(
__isl_take
isl_ast_node
*ptr);
1224
inline
ast_node
manage_copy
(
__isl_keep
isl_ast_node
*ptr);
1225
1226
class
ast_node
{
1227
friend
inline
ast_node
manage
(
__isl_take
isl_ast_node
*
ptr
);
1228
friend
inline
ast_node
manage_copy
(
__isl_keep
isl_ast_node
*
ptr
);
1229
1230
protected
:
1231
isl_ast_node
*
ptr
=
nullptr
;
1232
1233
inline
explicit
ast_node
(
__isl_take
isl_ast_node
*
ptr
);
1234
1235
public
:
1236
inline
/* implicit */
ast_node
();
1237
inline
/* implicit */
ast_node
(
const
ast_node
&
obj
);
1238
inline
ast_node
&
operator=
(
ast_node
obj
);
1239
inline
~ast_node
();
1240
inline
__isl_give
isl_ast_node
*
copy
() const &;
1241
inline
__isl_give
isl_ast_node
*
copy
() && = delete;
1242
inline
__isl_keep
isl_ast_node
*
get
() const;
1243
inline
__isl_give
isl_ast_node
*
release
();
1244
inline
bool
is_null
() const;
1245
private:
1246
template <typename T,
1247
typename = typename std::enable_if<std::is_same<
1248
const decltype(
isl_ast_node_get_type
(
nullptr
)),
1249
const T>::value>::
type
>
1250
inline
boolean
isa_type
(T subtype) const;
1251
public:
1252
template <class T> inline
boolean
isa
() const;
1253
template <class T> inline T
as
() const;
1254
inline
isl
::
ctx
ctx
() const;
1255
1256
inline
isl
::
id
annotation
() const;
1257
inline
isl
::
id
get_annotation
() const;
1258
inline std::
string
to_C_str
() const;
1259
inline
isl
::
ast_node_list
to_list
() const;
1260
};
1261
1262
// declarations for isl::ast_node_block
1263
1264
class
ast_node_block
: public
ast_node
{
1265
template
<
class
T>
1266
friend
boolean
ast_node::isa
()
const
;
1267
friend
ast_node_block
ast_node::as<ast_node_block>
()
const
;
1268
static
const
auto
type
=
isl_ast_node_block
;
1269
1270
protected
:
1271
inline
explicit
ast_node_block
(
__isl_take
isl_ast_node
*
ptr
);
1272
1273
public
:
1274
inline
/* implicit */
ast_node_block
();
1275
inline
/* implicit */
ast_node_block
(
const
ast_node_block
&
obj
);
1276
inline
ast_node_block
&
operator=
(
ast_node_block
obj
);
1277
inline
isl::ctx
ctx
()
const
;
1278
1279
inline
isl::ast_node_list
children
()
const
;
1280
inline
isl::ast_node_list
get_children
()
const
;
1281
};
1282
1283
// declarations for isl::ast_node_for
1284
1285
class
ast_node_for
:
public
ast_node
{
1286
template
<
class
T>
1287
friend
boolean
ast_node::isa
()
const
;
1288
friend
ast_node_for
ast_node::as<ast_node_for>
()
const
;
1289
static
const
auto
type
=
isl_ast_node_for
;
1290
1291
protected
:
1292
inline
explicit
ast_node_for
(
__isl_take
isl_ast_node
*
ptr
);
1293
1294
public
:
1295
inline
/* implicit */
ast_node_for
();
1296
inline
/* implicit */
ast_node_for
(
const
ast_node_for
&
obj
);
1297
inline
ast_node_for
&
operator=
(
ast_node_for
obj
);
1298
inline
isl::ctx
ctx
()
const
;
1299
1300
inline
isl::ast_node
body
()
const
;
1301
inline
isl::ast_node
get_body
()
const
;
1302
inline
isl::ast_expr
cond
()
const
;
1303
inline
isl::ast_expr
get_cond
()
const
;
1304
inline
isl::ast_expr
inc
()
const
;
1305
inline
isl::ast_expr
get_inc
()
const
;
1306
inline
isl::ast_expr
init
()
const
;
1307
inline
isl::ast_expr
get_init
()
const
;
1308
inline
boolean
is_degenerate
()
const
;
1309
inline
isl::ast_expr
iterator
()
const
;
1310
inline
isl::ast_expr
get_iterator
()
const
;
1311
};
1312
1313
// declarations for isl::ast_node_if
1314
1315
class
ast_node_if
:
public
ast_node
{
1316
template
<
class
T>
1317
friend
boolean
ast_node::isa
()
const
;
1318
friend
ast_node_if
ast_node::as<ast_node_if>
()
const
;
1319
static
const
auto
type
=
isl_ast_node_if
;
1320
1321
protected
:
1322
inline
explicit
ast_node_if
(
__isl_take
isl_ast_node
*
ptr
);
1323
1324
public
:
1325
inline
/* implicit */
ast_node_if
();
1326
inline
/* implicit */
ast_node_if
(
const
ast_node_if
&
obj
);
1327
inline
ast_node_if
&
operator=
(
ast_node_if
obj
);
1328
inline
isl::ctx
ctx
()
const
;
1329
1330
inline
isl::ast_expr
cond
()
const
;
1331
inline
isl::ast_expr
get_cond
()
const
;
1332
inline
isl::ast_node
else_node
()
const
;
1333
inline
isl::ast_node
get_else_node
()
const
;
1334
inline
boolean
has_else_node
()
const
;
1335
inline
isl::ast_node
then_node
()
const
;
1336
inline
isl::ast_node
get_then_node
()
const
;
1337
};
1338
1339
// declarations for isl::ast_node_list
1340
inline
ast_node_list
manage
(
__isl_take
isl_ast_node_list *ptr);
1341
inline
ast_node_list
manage_copy
(
__isl_keep
isl_ast_node_list *ptr);
1342
1343
class
ast_node_list
{
1344
friend
inline
ast_node_list
manage
(
__isl_take
isl_ast_node_list *
ptr
);
1345
friend
inline
ast_node_list
manage_copy
(
__isl_keep
isl_ast_node_list *
ptr
);
1346
1347
protected
:
1348
isl_ast_node_list *
ptr
=
nullptr
;
1349
1350
inline
explicit
ast_node_list
(
__isl_take
isl_ast_node_list *
ptr
);
1351
1352
public
:
1353
inline
/* implicit */
ast_node_list
();
1354
inline
/* implicit */
ast_node_list
(
const
ast_node_list
&
obj
);
1355
inline
explicit
ast_node_list
(
isl::ctx
ctx
,
int
n
);
1356
inline
explicit
ast_node_list
(
isl::ast_node
el);
1357
inline
ast_node_list
&
operator=
(
ast_node_list
obj
);
1358
inline
~ast_node_list
();
1359
inline
__isl_give
isl_ast_node_list *
copy
() const &;
1360
inline
__isl_give
isl_ast_node_list *
copy
() && = delete;
1361
inline
__isl_keep
isl_ast_node_list *
get
() const;
1362
inline
__isl_give
isl_ast_node_list *
release
();
1363
inline
bool
is_null
() const;
1364
inline
isl
::
ctx
ctx
() const;
1365
1366
inline
isl
::
ast_node_list
add
(
isl
::
ast_node
el) const;
1367
inline
isl
::
ast_node
at
(
int
index) const;
1368
inline
isl
::
ast_node
get_at
(
int
index) const;
1369
inline
isl
::
ast_node_list
clear
() const;
1370
inline
isl
::
ast_node_list
concat
(
isl
::
ast_node_list
list2) const;
1371
inline
isl
::
ast_node_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
1372
inline
stat
foreach
(const std::function<
stat
(
isl
::
ast_node
)> &
fn
) const;
1373
inline
isl
::
ast_node_list
insert
(
unsigned
int
pos
,
isl
::
ast_node
el) const;
1374
inline class
size
size
() const;
1375
};
1376
1377
// declarations for isl::ast_node_mark
1378
1379
class
ast_node_mark
: public
ast_node
{
1380
template
<
class
T>
1381
friend
boolean
ast_node::isa
()
const
;
1382
friend
ast_node_mark
ast_node::as<ast_node_mark>
()
const
;
1383
static
const
auto
type
=
isl_ast_node_mark
;
1384
1385
protected
:
1386
inline
explicit
ast_node_mark
(
__isl_take
isl_ast_node
*
ptr
);
1387
1388
public
:
1389
inline
/* implicit */
ast_node_mark
();
1390
inline
/* implicit */
ast_node_mark
(
const
ast_node_mark
&
obj
);
1391
inline
ast_node_mark
&
operator=
(
ast_node_mark
obj
);
1392
inline
isl::ctx
ctx
()
const
;
1393
1394
inline
isl::id
id
()
const
;
1395
inline
isl::id
get_id
()
const
;
1396
inline
isl::ast_node
node
()
const
;
1397
inline
isl::ast_node
get_node
()
const
;
1398
};
1399
1400
// declarations for isl::ast_node_user
1401
1402
class
ast_node_user
:
public
ast_node
{
1403
template
<
class
T>
1404
friend
boolean
ast_node::isa
()
const
;
1405
friend
ast_node_user
ast_node::as<ast_node_user>
()
const
;
1406
static
const
auto
type
=
isl_ast_node_user
;
1407
1408
protected
:
1409
inline
explicit
ast_node_user
(
__isl_take
isl_ast_node
*
ptr
);
1410
1411
public
:
1412
inline
/* implicit */
ast_node_user
();
1413
inline
/* implicit */
ast_node_user
(
const
ast_node_user
&
obj
);
1414
inline
ast_node_user
&
operator=
(
ast_node_user
obj
);
1415
inline
isl::ctx
ctx
()
const
;
1416
1417
inline
isl::ast_expr
expr
()
const
;
1418
inline
isl::ast_expr
get_expr
()
const
;
1419
};
1420
1421
// declarations for isl::basic_map
1422
inline
basic_map
manage
(
__isl_take
isl_basic_map
*ptr);
1423
inline
basic_map
manage_copy
(
__isl_keep
isl_basic_map
*ptr);
1424
1425
class
basic_map
{
1426
friend
inline
basic_map
manage
(
__isl_take
isl_basic_map
*
ptr
);
1427
friend
inline
basic_map
manage_copy
(
__isl_keep
isl_basic_map
*
ptr
);
1428
1429
protected
:
1430
isl_basic_map
*
ptr
=
nullptr
;
1431
1432
inline
explicit
basic_map
(
__isl_take
isl_basic_map
*
ptr
);
1433
1434
public
:
1435
inline
/* implicit */
basic_map
();
1436
inline
/* implicit */
basic_map
(
const
basic_map
&
obj
);
1437
inline
explicit
basic_map
(
isl::ctx
ctx
,
const
std::string &
str
);
1438
inline
basic_map
&
operator=
(
basic_map
obj
);
1439
inline
~basic_map
();
1440
inline
__isl_give
isl_basic_map
*
copy
() const &;
1441
inline
__isl_give
isl_basic_map
*
copy
() && = delete;
1442
inline
__isl_keep
isl_basic_map
*
get
() const;
1443
inline
__isl_give
isl_basic_map
*
release
();
1444
inline
bool
is_null
() const;
1445
inline
isl
::
ctx
ctx
() const;
1446
1447
inline
isl
::
map
add_constraint
(const
isl
::
constraint
&
constraint
) const;
1448
inline
isl
::
map
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
1449
inline
isl
::
basic_map
affine_hull
() const;
1450
inline
isl
::
map
align_params
(const
isl
::
space
&model) const;
1451
inline
isl
::
basic_map
apply_domain
(
isl
::
basic_map
bmap2) const;
1452
inline
isl
::
map
apply_domain
(const
isl
::
map
&
map2
) const;
1453
inline
isl
::
union_map
apply_domain
(const
isl
::
union_map
&umap2) const;
1454
inline
isl
::
basic_map
apply_range
(
isl
::
basic_map
bmap2) const;
1455
inline
isl
::
map
apply_range
(const
isl
::
map
&
map2
) const;
1456
inline
isl
::
union_map
apply_range
(const
isl
::
union_map
&umap2) const;
1457
inline
isl
::
map
as_map
() const;
1458
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
1459
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
1460
inline
isl
::
union_pw_multi_aff
as_union_pw_multi_aff
() const;
1461
inline
isl
::
basic_map_list
basic_map_list
() const;
1462
inline
isl
::
set
bind_domain
(const
isl
::
multi_id
&
tuple
) const;
1463
inline
isl
::
set
bind_range
(const
isl
::
multi_id
&
tuple
) const;
1464
inline
boolean
can_curry
() const;
1465
inline
isl
::
map
coalesce
() const;
1466
inline
isl
::
map
complement
() const;
1467
inline
isl
::
union_map
compute_divs
() const;
1468
inline
isl
::
map
curry
() const;
1469
inline
isl
::
basic_set
deltas
() const;
1470
inline
isl
::
basic_map
detect_equalities
() const;
1471
inline class
size
dim
(
isl
::
dim
type
) const;
1472
inline
isl
::
pw_aff
dim_max
(
int
pos
) const;
1473
inline
isl
::
pw_aff
dim_min
(
int
pos
) const;
1474
inline
isl
::
basic_set
domain
() const;
1475
inline
isl
::
map
domain_factor_domain
() const;
1476
inline
isl
::
map
domain_factor_range
() const;
1477
inline
isl
::
map
domain_map
() const;
1478
inline
isl
::
union_pw_multi_aff
domain_map_union_pw_multi_aff
() const;
1479
inline
isl
::
map
domain_product
(const
isl
::
map
&
map2
) const;
1480
inline
isl
::
union_map
domain_product
(const
isl
::
union_map
&umap2) const;
1481
inline class
size
domain_tuple_dim
() const;
1482
inline
isl
::
id
domain_tuple_id
() const;
1483
inline
isl
::
map
eq_at
(const
isl
::
multi_pw_aff
&mpa) const;
1484
inline
isl
::
union_map
eq_at
(const
isl
::
multi_union_pw_aff
&
mupa
) const;
1485
static inline
isl
::
basic_map
equal
(
isl
::
space
space
,
unsigned
int
n_equal);
1486
inline
isl
::
basic_map
equate
(
isl
::
dim
type1,
int
pos1,
isl
::
dim
type2,
int
pos2) const;
1487
inline
boolean
every_map
(const std::function<
boolean
(
isl
::
map
)> &
test
) const;
1488
inline
isl
::
map
extract_map
(const
isl
::
space
&
space
) const;
1489
inline
isl
::
map
factor_domain
() const;
1490
inline
isl
::
map
factor_range
() const;
1491
inline
isl
::
basic_map
fix_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
1492
inline
isl
::
basic_map
fix_val
(
isl
::
dim
type
,
unsigned
int
pos
,
isl
::
val
v) const;
1493
inline
isl
::
basic_map
fix_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
v) const;
1494
inline
isl
::
union_map
fixed_power
(const
isl
::
val
&exp) const;
1495
inline
isl
::
union_map
fixed_power
(
long
exp) const;
1496
inline
isl
::
map
flat_range_product
(const
isl
::
map
&
map2
) const;
1497
inline
isl
::
union_map
flat_range_product
(const
isl
::
union_map
&umap2) const;
1498
inline
isl
::
basic_map
flatten
() const;
1499
inline
isl
::
basic_map
flatten_domain
() const;
1500
inline
isl
::
basic_map
flatten_range
() const;
1501
inline
isl
::
map
floordiv_val
(const
isl
::
val
&d) const;
1502
inline
isl
::
map
floordiv_val
(
long
d) const;
1503
inline
stat
foreach_basic_map
(const std::function<
stat
(
isl
::
basic_map
)> &
fn
) const;
1504
inline
stat
foreach_map
(const std::function<
stat
(
isl
::
map
)> &
fn
) const;
1505
static inline
isl
::
basic_map
from_aff
(
isl
::
aff
aff
);
1506
static inline
isl
::
basic_map
from_domain_and_range
(
isl
::
basic_set
domain
,
isl
::
basic_set
range
);
1507
inline
isl
::
basic_map
gist
(
isl
::
basic_map
context
) const;
1508
inline
isl
::
map
gist
(const
isl
::
map
&
context
) const;
1509
inline
isl
::
union_map
gist
(const
isl
::
union_map
&
context
) const;
1510
inline
isl
::
map
gist_domain
(const
isl
::
set
&
context
) const;
1511
inline
isl
::
union_map
gist_domain
(const
isl
::
union_set
&uset) const;
1512
inline
isl
::
map
gist_params
(const
isl
::
set
&
context
) const;
1513
inline
isl
::
union_map
gist_range
(const
isl
::
union_set
&uset) const;
1514
inline
boolean
has_domain_tuple_id
() const;
1515
inline
boolean
has_equal_space
(const
isl
::
map
&
map2
) const;
1516
inline
boolean
has_range_tuple_id
() const;
1517
inline
boolean
has_tuple_id
(
isl
::
dim
type
) const;
1518
inline
boolean
has_tuple_name
(
isl
::
dim
type
) const;
1519
inline
isl
::
basic_map
intersect
(
isl
::
basic_map
bmap2) const;
1520
inline
isl
::
map
intersect
(const
isl
::
map
&
map2
) const;
1521
inline
isl
::
union_map
intersect
(const
isl
::
union_map
&umap2) const;
1522
inline
isl
::
basic_map
intersect_domain
(
isl
::
basic_set
bset) const;
1523
inline
isl
::
map
intersect_domain
(const
isl
::
set
&
set
) const;
1524
inline
isl
::
union_map
intersect_domain
(const
isl
::
space
&
space
) const;
1525
inline
isl
::
union_map
intersect_domain
(const
isl
::
union_set
&uset) const;
1526
inline
isl
::
basic_map
intersect_domain
(const
isl
::
point
&bset) const;
1527
inline
isl
::
map
intersect_domain_factor_domain
(const
isl
::
map
&factor) const;
1528
inline
isl
::
union_map
intersect_domain_factor_domain
(const
isl
::
union_map
&factor) const;
1529
inline
isl
::
map
intersect_domain_factor_range
(const
isl
::
map
&factor) const;
1530
inline
isl
::
union_map
intersect_domain_factor_range
(const
isl
::
union_map
&factor) const;
1531
inline
isl
::
map
intersect_params
(const
isl
::
set
&
params
) const;
1532
inline
isl
::
basic_map
intersect_range
(
isl
::
basic_set
bset) const;
1533
inline
isl
::
map
intersect_range
(const
isl
::
set
&
set
) const;
1534
inline
isl
::
union_map
intersect_range
(const
isl
::
space
&
space
) const;
1535
inline
isl
::
union_map
intersect_range
(const
isl
::
union_set
&uset) const;
1536
inline
isl
::
basic_map
intersect_range
(const
isl
::
point
&bset) const;
1537
inline
isl
::
map
intersect_range_factor_domain
(const
isl
::
map
&factor) const;
1538
inline
isl
::
union_map
intersect_range_factor_domain
(const
isl
::
union_map
&factor) const;
1539
inline
isl
::
map
intersect_range_factor_range
(const
isl
::
map
&factor) const;
1540
inline
isl
::
union_map
intersect_range_factor_range
(const
isl
::
union_map
&factor) const;
1541
inline
boolean
involves_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1542
inline
boolean
is_bijective
() const;
1543
inline
boolean
is_disjoint
(const
isl
::
map
&
map2
) const;
1544
inline
boolean
is_disjoint
(const
isl
::
union_map
&umap2) const;
1545
inline
boolean
is_empty
() const;
1546
inline
boolean
is_equal
(const
isl
::
basic_map
&bmap2) const;
1547
inline
boolean
is_equal
(const
isl
::
map
&
map2
) const;
1548
inline
boolean
is_equal
(const
isl
::
union_map
&umap2) const;
1549
inline
boolean
is_injective
() const;
1550
inline
boolean
is_single_valued
() const;
1551
inline
boolean
is_strict_subset
(const
isl
::
map
&
map2
) const;
1552
inline
boolean
is_strict_subset
(const
isl
::
union_map
&umap2) const;
1553
inline
boolean
is_subset
(const
isl
::
basic_map
&bmap2) const;
1554
inline
boolean
is_subset
(const
isl
::
map
&
map2
) const;
1555
inline
boolean
is_subset
(const
isl
::
union_map
&umap2) const;
1556
inline
boolean
isa_map
() const;
1557
inline
isl
::
map
lex_ge_at
(const
isl
::
multi_pw_aff
&mpa) const;
1558
inline
isl
::
map
lex_gt_at
(const
isl
::
multi_pw_aff
&mpa) const;
1559
inline
isl
::
map
lex_le_at
(const
isl
::
multi_pw_aff
&mpa) const;
1560
inline
isl
::
map
lex_lt_at
(const
isl
::
multi_pw_aff
&mpa) const;
1561
inline
isl
::
map
lexmax
() const;
1562
inline
isl
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
1563
inline
isl
::
map
lexmin
() const;
1564
inline
isl
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
1565
inline
isl
::
map
lower_bound
(const
isl
::
multi_pw_aff
&lower) const;
1566
inline
isl
::
map
lower_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
1567
inline
isl
::
map_list
map_list
() const;
1568
inline
isl
::
multi_pw_aff
max_multi_pw_aff
() const;
1569
inline
isl
::
multi_pw_aff
min_multi_pw_aff
() const;
1570
inline
isl
::
map
move_dims
(
isl
::
dim
dst_type,
unsigned
int
dst_pos,
isl
::
dim
src_type,
unsigned
int
src_pos,
unsigned
int
n
) const;
1571
inline class
size
n_basic_map
() const;
1572
inline
isl
::
map
order_lt
(
isl
::
dim
type1,
int
pos1,
isl
::
dim
type2,
int
pos2) const;
1573
inline
isl
::
set
params
() const;
1574
inline
isl
::
val
plain_get_val_if_fixed
(
isl
::
dim
type
,
unsigned
int
pos
) const;
1575
inline
isl
::
basic_map
polyhedral_hull
() const;
1576
inline
isl
::
map
preimage_domain
(const
isl
::
multi_aff
&
ma
) const;
1577
inline
isl
::
map
preimage_domain
(const
isl
::
multi_pw_aff
&mpa) const;
1578
inline
isl
::
map
preimage_domain
(const
isl
::
pw_multi_aff
&
pma
) const;
1579
inline
isl
::
union_map
preimage_domain
(const
isl
::
union_pw_multi_aff
&upma) const;
1580
inline
isl
::
map
preimage_range
(const
isl
::
multi_aff
&
ma
) const;
1581
inline
isl
::
map
preimage_range
(const
isl
::
pw_multi_aff
&
pma
) const;
1582
inline
isl
::
union_map
preimage_range
(const
isl
::
union_pw_multi_aff
&upma) const;
1583
inline
isl
::
map
product
(const
isl
::
map
&
map2
) const;
1584
inline
isl
::
union_map
product
(const
isl
::
union_map
&umap2) const;
1585
inline
isl
::
map
project_out
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1586
inline
isl
::
map
project_out_all_params
() const;
1587
inline
isl
::
set
range
() const;
1588
inline
isl
::
map
range_factor_domain
() const;
1589
inline
isl
::
map
range_factor_range
() const;
1590
inline
isl
::
fixed_box
range_lattice_tile
() const;
1591
inline
isl
::
map
range_map
() const;
1592
inline
isl
::
map
range_product
(const
isl
::
map
&
map2
) const;
1593
inline
isl
::
union_map
range_product
(const
isl
::
union_map
&umap2) const;
1594
inline
isl
::
map
range_reverse
() const;
1595
inline
isl
::
fixed_box
range_simple_fixed_box_hull
() const;
1596
inline class
size
range_tuple_dim
() const;
1597
inline
isl
::
id
range_tuple_id
() const;
1598
inline
isl
::
basic_map
reverse
() const;
1599
inline
isl
::
basic_map
sample
() const;
1600
inline
isl
::
map
set_domain_tuple
(const
isl
::
id
&
id
) const;
1601
inline
isl
::
map
set_domain_tuple
(const std::
string
&
id
) const;
1602
inline
isl
::
map
set_range_tuple
(const
isl
::
id
&
id
) const;
1603
inline
isl
::
map
set_range_tuple
(const std::
string
&
id
) const;
1604
inline
isl
::
map
set_tuple_id
(
isl
::
dim
type
, const
isl
::
id
&
id
) const;
1605
inline
isl
::
map
set_tuple_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
1606
inline
isl
::
space
space
() const;
1607
inline
isl
::
map
subtract
(const
isl
::
map
&
map2
) const;
1608
inline
isl
::
union_map
subtract
(const
isl
::
union_map
&umap2) const;
1609
inline
isl
::
union_map
subtract_domain
(const
isl
::
union_set
&dom) const;
1610
inline
isl
::
union_map
subtract_range
(const
isl
::
union_set
&dom) const;
1611
inline
isl
::
map
sum
(const
isl
::
map
&
map2
) const;
1612
inline
isl
::
basic_map_list
to_list
() const;
1613
inline
isl
::
union_map
to_union_map
() const;
1614
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
1615
inline
isl
::
map
uncurry
() const;
1616
inline
isl
::
map
unite
(
isl
::
basic_map
bmap2) const;
1617
inline
isl
::
map
unite
(const
isl
::
map
&
map2
) const;
1618
inline
isl
::
union_map
unite
(const
isl
::
union_map
&umap2) const;
1619
static inline
isl
::
basic_map
universe
(
isl
::
space
space
);
1620
inline
isl
::
basic_map
unshifted_simple_hull
() const;
1621
inline
isl
::
map
upper_bound
(const
isl
::
multi_pw_aff
&upper) const;
1622
inline
isl
::
map
upper_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
1623
inline
isl
::
set
wrap
() const;
1624
inline
isl
::
map
zip
() const;
1625
};
1626
1627
// declarations for isl::basic_map_list
1628
inline
basic_map_list
manage
(
__isl_take
isl_basic_map_list *
ptr
);
1629
inline
basic_map_list
manage_copy
(
__isl_keep
isl_basic_map_list *
ptr
);
1630
1631
class
basic_map_list
{
1632
friend
inline
basic_map_list
manage
(
__isl_take
isl_basic_map_list *
ptr
);
1633
friend
inline
basic_map_list
manage_copy
(
__isl_keep
isl_basic_map_list *
ptr
);
1634
1635
protected
:
1636
isl_basic_map_list *
ptr
=
nullptr
;
1637
1638
inline
explicit
basic_map_list
(
__isl_take
isl_basic_map_list *
ptr
);
1639
1640
public
:
1641
inline
/* implicit */
basic_map_list
();
1642
inline
/* implicit */
basic_map_list
(
const
basic_map_list
&
obj
);
1643
inline
explicit
basic_map_list
(
isl::ctx
ctx
,
int
n
);
1644
inline
explicit
basic_map_list
(
isl::basic_map
el);
1645
inline
basic_map_list
&
operator=
(
basic_map_list
obj
);
1646
inline
~basic_map_list
();
1647
inline
__isl_give
isl_basic_map_list *
copy
() const &;
1648
inline
__isl_give
isl_basic_map_list *
copy
() && = delete;
1649
inline
__isl_keep
isl_basic_map_list *
get
() const;
1650
inline
__isl_give
isl_basic_map_list *
release
();
1651
inline
bool
is_null
() const;
1652
inline
isl
::
ctx
ctx
() const;
1653
1654
inline
isl
::
basic_map_list
add
(
isl
::
basic_map
el) const;
1655
inline
isl
::
basic_map
at
(
int
index) const;
1656
inline
isl
::
basic_map
get_at
(
int
index) const;
1657
inline
isl
::
basic_map_list
clear
() const;
1658
inline
isl
::
basic_map_list
concat
(
isl
::
basic_map_list
list2) const;
1659
inline
isl
::
basic_map_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
1660
inline
stat
foreach
(const std::function<
stat
(
isl
::
basic_map
)> &
fn
) const;
1661
inline
isl
::
basic_map_list
insert
(
unsigned
int
pos
,
isl
::
basic_map
el) const;
1662
inline class
size
size
() const;
1663
};
1664
1665
// declarations for isl::basic_set
1666
inline
basic_set
manage
(
__isl_take
isl_basic_set
*
ptr
);
1667
inline
basic_set
manage_copy
(
__isl_keep
isl_basic_set
*
ptr
);
1668
1669
class
basic_set
{
1670
friend
inline
basic_set
manage
(
__isl_take
isl_basic_set
*
ptr
);
1671
friend
inline
basic_set
manage_copy
(
__isl_keep
isl_basic_set
*
ptr
);
1672
1673
protected
:
1674
isl_basic_set
*
ptr
=
nullptr
;
1675
1676
inline
explicit
basic_set
(
__isl_take
isl_basic_set
*
ptr
);
1677
1678
public
:
1679
inline
/* implicit */
basic_set
();
1680
inline
/* implicit */
basic_set
(
const
basic_set
&
obj
);
1681
inline
/* implicit */
basic_set
(
isl::point
pnt);
1682
inline
explicit
basic_set
(
isl::ctx
ctx
,
const
std::string &
str
);
1683
inline
basic_set
&
operator=
(
basic_set
obj
);
1684
inline
~basic_set
();
1685
inline
__isl_give
isl_basic_set
*
copy
() const &;
1686
inline
__isl_give
isl_basic_set
*
copy
() && = delete;
1687
inline
__isl_keep
isl_basic_set
*
get
() const;
1688
inline
__isl_give
isl_basic_set
*
release
();
1689
inline
bool
is_null
() const;
1690
inline
isl
::
ctx
ctx
() const;
1691
1692
inline
isl
::
set
add_constraint
(const
isl
::
constraint
&
constraint
) const;
1693
inline
isl
::
set
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
1694
inline
isl
::
basic_set
affine_hull
() const;
1695
inline
isl
::
set
align_params
(const
isl
::
space
&model) const;
1696
inline
isl
::
basic_set
apply
(
isl
::
basic_map
bmap) const;
1697
inline
isl
::
set
apply
(const
isl
::
map
&
map
) const;
1698
inline
isl
::
union_set
apply
(const
isl
::
union_map
&umap) const;
1699
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
1700
inline
isl
::
set
as_set
() const;
1701
inline
isl
::
basic_set_list
basic_set_list
() const;
1702
inline
isl
::
set
bind
(const
isl
::
multi_id
&
tuple
) const;
1703
inline
isl
::
set
coalesce
() const;
1704
inline
isl
::
set
complement
() const;
1705
inline
isl
::
union_set
compute_divs
() const;
1706
inline
boolean
contains
(const
isl
::
space
&
space
) const;
1707
inline
isl
::
basic_set
convex_hull
() const;
1708
inline
isl
::
basic_set
detect_equalities
() const;
1709
inline class
size
dim
(
isl
::
dim
type
) const;
1710
inline
boolean
dim_has_any_lower_bound
(
isl
::
dim
type
,
unsigned
int
pos
) const;
1711
inline
isl
::
id
dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
1712
inline
isl
::
pw_aff
dim_max
(
int
pos
) const;
1713
inline
isl
::
val
dim_max_val
(
int
pos
) const;
1714
inline
isl
::
pw_aff
dim_min
(
int
pos
) const;
1715
inline
isl
::
val
dim_min_val
(
int
pos
) const;
1716
inline std::
string
dim_name
(
isl
::
dim
type
,
unsigned
int
pos
) const;
1717
inline
isl
::
aff
div
(
int
pos
) const;
1718
inline
isl
::
aff
get_div
(
int
pos
) const;
1719
inline
isl
::
set
drop_constraints_involving_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1720
inline
isl
::
set
eliminate
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1721
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
set
)> &
test
) const;
1722
inline
isl
::
set
extract_set
(const
isl
::
space
&
space
) const;
1723
inline
int
find_dim_by_id
(
isl
::
dim
type
, const
isl
::
id
&
id
) const;
1724
inline
int
find_dim_by_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
1725
inline
isl
::
basic_set
fix_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
1726
inline
isl
::
basic_set
fix_val
(
isl
::
dim
type
,
unsigned
int
pos
,
isl
::
val
v) const;
1727
inline
isl
::
basic_set
fix_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
v) const;
1728
inline
isl
::
basic_set
flatten
() const;
1729
inline
stat
foreach_basic_set
(const std::function<
stat
(
isl
::
basic_set
)> &
fn
) const;
1730
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
point
)> &
fn
) const;
1731
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
set
)> &
fn
) const;
1732
inline
isl
::
basic_set
gist
(
isl
::
basic_set
context
) const;
1733
inline
isl
::
set
gist
(const
isl
::
set
&
context
) const;
1734
inline
isl
::
union_set
gist
(const
isl
::
union_set
&
context
) const;
1735
inline
isl
::
basic_set
gist
(const
isl
::
point
&
context
) const;
1736
inline
isl
::
set
gist_params
(const
isl
::
set
&
context
) const;
1737
inline
boolean
has_equal_space
(const
isl
::
set
&
set2
) const;
1738
inline
isl
::
map
identity
() const;
1739
inline
isl
::
union_pw_multi_aff
identity_union_pw_multi_aff
() const;
1740
inline
isl
::
pw_aff
indicator_function
() const;
1741
inline
isl
::
set
insert_dims
(
isl
::
dim
type
,
unsigned
int
pos
,
unsigned
int
n
) const;
1742
inline
isl
::
map
insert_domain
(const
isl
::
space
&
domain
) const;
1743
inline
isl
::
basic_set
intersect
(
isl
::
basic_set
bset2) const;
1744
inline
isl
::
set
intersect
(const
isl
::
set
&
set2
) const;
1745
inline
isl
::
union_set
intersect
(const
isl
::
union_set
&uset2) const;
1746
inline
isl
::
basic_set
intersect
(const
isl
::
point
&bset2) const;
1747
inline
isl
::
basic_set
intersect_params
(
isl
::
basic_set
bset2) const;
1748
inline
isl
::
set
intersect_params
(const
isl
::
set
&
params
) const;
1749
inline
isl
::
basic_set
intersect_params
(const
isl
::
point
&bset2) const;
1750
inline
boolean
involves_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1751
inline
boolean
involves_locals
() const;
1752
inline
boolean
is_bounded
() const;
1753
inline
boolean
is_disjoint
(const
isl
::
set
&
set2
) const;
1754
inline
boolean
is_disjoint
(const
isl
::
union_set
&uset2) const;
1755
inline
boolean
is_empty
() const;
1756
inline
boolean
is_equal
(const
isl
::
basic_set
&bset2) const;
1757
inline
boolean
is_equal
(const
isl
::
set
&
set2
) const;
1758
inline
boolean
is_equal
(const
isl
::
union_set
&uset2) const;
1759
inline
boolean
is_equal
(const
isl
::
point
&bset2) const;
1760
inline
boolean
is_params
() const;
1761
inline
boolean
is_singleton
() const;
1762
inline
boolean
is_strict_subset
(const
isl
::
set
&
set2
) const;
1763
inline
boolean
is_strict_subset
(const
isl
::
union_set
&uset2) const;
1764
inline
boolean
is_subset
(const
isl
::
basic_set
&bset2) const;
1765
inline
boolean
is_subset
(const
isl
::
set
&
set2
) const;
1766
inline
boolean
is_subset
(const
isl
::
union_set
&uset2) const;
1767
inline
boolean
is_subset
(const
isl
::
point
&bset2) const;
1768
inline
boolean
is_wrapping
() const;
1769
inline
boolean
isa_set
() const;
1770
inline
isl
::
set
lexmax
() const;
1771
inline
isl
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
1772
inline
isl
::
set
lexmin
() const;
1773
inline
isl
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
1774
inline
isl
::
set
lower_bound
(const
isl
::
multi_pw_aff
&lower) const;
1775
inline
isl
::
set
lower_bound
(const
isl
::
multi_val
&lower) const;
1776
inline
isl
::
set
lower_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
1777
inline
isl
::
set
lower_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
val
&value) const;
1778
inline
isl
::
set
lower_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
value) const;
1779
inline
isl
::
multi_pw_aff
max_multi_pw_aff
() const;
1780
inline
isl
::
val
max_val
(const
isl
::
aff
&
obj
) const;
1781
inline
isl
::
multi_pw_aff
min_multi_pw_aff
() const;
1782
inline
isl
::
val
min_val
(const
isl
::
aff
&
obj
) const;
1783
inline class
size
n_basic_set
() const;
1784
inline
isl
::
basic_set
params
() const;
1785
inline
isl
::
val
plain_get_val_if_fixed
(
isl
::
dim
type
,
unsigned
int
pos
) const;
1786
inline
isl
::
multi_val
plain_multi_val_if_fixed
() const;
1787
inline
isl
::
basic_set
polyhedral_hull
() const;
1788
inline
isl
::
set
preimage
(const
isl
::
multi_aff
&
ma
) const;
1789
inline
isl
::
set
preimage
(const
isl
::
multi_pw_aff
&mpa) const;
1790
inline
isl
::
set
preimage
(const
isl
::
pw_multi_aff
&
pma
) const;
1791
inline
isl
::
union_set
preimage
(const
isl
::
union_pw_multi_aff
&upma) const;
1792
inline
isl
::
set
product
(const
isl
::
set
&
set2
) const;
1793
inline
isl
::
basic_set
project_out
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1794
inline
isl
::
set
project_out_all_params
() const;
1795
inline
isl
::
set
project_out_param
(const
isl
::
id
&
id
) const;
1796
inline
isl
::
set
project_out_param
(const std::
string
&
id
) const;
1797
inline
isl
::
set
project_out_param
(const
isl
::
id_list
&list) const;
1798
inline
isl
::
pw_multi_aff
pw_multi_aff_on_domain
(const
isl
::
multi_val
&mv) const;
1799
inline
isl
::
set
remove_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
1800
inline
isl
::
set
remove_divs
() const;
1801
inline
isl
::
set
remove_redundancies
() const;
1802
inline
isl
::
set
reset_tuple_id
() const;
1803
inline
isl
::
basic_set
sample
() const;
1804
inline
isl
::
point
sample_point
() const;
1805
inline
isl
::
set
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
id
&
id
) const;
1806
inline
isl
::
set
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
, const std::
string
&
id
) const;
1807
inline
isl
::
set_list
set_list
() const;
1808
inline
isl
::
set
set_tuple_id
(const
isl
::
id
&
id
) const;
1809
inline
isl
::
set
set_tuple_id
(const std::
string
&
id
) const;
1810
inline
isl
::
fixed_box
simple_fixed_box_hull
() const;
1811
inline
isl
::
basic_set
simple_hull
() const;
1812
inline
isl
::
space
space
() const;
1813
inline
isl
::
space
get_space
() const;
1814
inline
isl
::
val
stride
(
int
pos
) const;
1815
inline
isl
::
set
subtract
(const
isl
::
set
&
set2
) const;
1816
inline
isl
::
union_set
subtract
(const
isl
::
union_set
&uset2) const;
1817
inline
isl
::
basic_set_list
to_list
() const;
1818
inline
isl
::
set
to_set
() const;
1819
inline
isl
::
union_set
to_union_set
() const;
1820
inline
isl
::
map
translation
() const;
1821
inline class
size
tuple_dim
() const;
1822
inline
isl
::
id
tuple_id
() const;
1823
inline std::
string
tuple_name
() const;
1824
inline
isl
::
set
unbind_params
(const
isl
::
multi_id
&
tuple
) const;
1825
inline
isl
::
map
unbind_params_insert_domain
(const
isl
::
multi_id
&
domain
) const;
1826
inline
isl
::
set
unite
(
isl
::
basic_set
bset2) const;
1827
inline
isl
::
set
unite
(const
isl
::
set
&
set2
) const;
1828
inline
isl
::
union_set
unite
(const
isl
::
union_set
&uset2) const;
1829
inline
isl
::
set
unite
(const
isl
::
point
&bset2) const;
1830
static inline
isl
::
basic_set
universe
(
isl
::
space
space
);
1831
inline
isl
::
basic_set
unshifted_simple_hull
() const;
1832
inline
isl
::
map
unwrap
() const;
1833
inline
isl
::
set
upper_bound
(const
isl
::
multi_pw_aff
&upper) const;
1834
inline
isl
::
set
upper_bound
(const
isl
::
multi_val
&upper) const;
1835
inline
isl
::
set
upper_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
val
&value) const;
1836
inline
isl
::
set
upper_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
value) const;
1837
};
1838
1839
// declarations for isl::basic_set_list
1840
inline
basic_set_list
manage
(
__isl_take
isl_basic_set_list
*
ptr
);
1841
inline
basic_set_list
manage_copy
(
__isl_keep
isl_basic_set_list
*
ptr
);
1842
1843
class
basic_set_list
{
1844
friend
inline
basic_set_list
manage
(
__isl_take
isl_basic_set_list
*
ptr
);
1845
friend
inline
basic_set_list
manage_copy
(
__isl_keep
isl_basic_set_list
*
ptr
);
1846
1847
protected
:
1848
isl_basic_set_list
*
ptr
=
nullptr
;
1849
1850
inline
explicit
basic_set_list
(
__isl_take
isl_basic_set_list
*
ptr
);
1851
1852
public
:
1853
inline
/* implicit */
basic_set_list
();
1854
inline
/* implicit */
basic_set_list
(
const
basic_set_list
&
obj
);
1855
inline
explicit
basic_set_list
(
isl::ctx
ctx
,
int
n
);
1856
inline
explicit
basic_set_list
(
isl::basic_set
el);
1857
inline
basic_set_list
&
operator=
(
basic_set_list
obj
);
1858
inline
~basic_set_list
();
1859
inline
__isl_give
isl_basic_set_list
*
copy
() const &;
1860
inline
__isl_give
isl_basic_set_list
*
copy
() && = delete;
1861
inline
__isl_keep
isl_basic_set_list
*
get
() const;
1862
inline
__isl_give
isl_basic_set_list
*
release
();
1863
inline
bool
is_null
() const;
1864
inline
isl
::
ctx
ctx
() const;
1865
1866
inline
isl
::
basic_set_list
add
(
isl
::
basic_set
el) const;
1867
inline
isl
::
basic_set
at
(
int
index) const;
1868
inline
isl
::
basic_set
get_at
(
int
index) const;
1869
inline
isl
::
basic_set_list
clear
() const;
1870
inline
isl
::
basic_set_list
concat
(
isl
::
basic_set_list
list2) const;
1871
inline
isl
::
basic_set_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
1872
inline
stat
foreach
(const std::function<
stat
(
isl
::
basic_set
)> &
fn
) const;
1873
inline
isl
::
basic_set_list
insert
(
unsigned
int
pos
,
isl
::
basic_set
el) const;
1874
inline class
size
size
() const;
1875
};
1876
1877
// declarations for isl::constraint
1878
inline
constraint
manage
(
__isl_take
isl_constraint
*
ptr
);
1879
inline
constraint
manage_copy
(
__isl_keep
isl_constraint
*
ptr
);
1880
1881
class
constraint
{
1882
friend
inline
constraint
manage
(
__isl_take
isl_constraint
*
ptr
);
1883
friend
inline
constraint
manage_copy
(
__isl_keep
isl_constraint
*
ptr
);
1884
1885
protected
:
1886
isl_constraint
*
ptr
=
nullptr
;
1887
1888
inline
explicit
constraint
(
__isl_take
isl_constraint
*
ptr
);
1889
1890
public
:
1891
inline
/* implicit */
constraint
();
1892
inline
/* implicit */
constraint
(
const
constraint
&
obj
);
1893
inline
constraint
&
operator=
(
constraint
obj
);
1894
inline
~constraint
();
1895
inline
__isl_give
isl_constraint
*
copy
() const &;
1896
inline
__isl_give
isl_constraint
*
copy
() && = delete;
1897
inline
__isl_keep
isl_constraint
*
get
() const;
1898
inline
__isl_give
isl_constraint
*
release
();
1899
inline
bool
is_null
() const;
1900
inline
isl
::
ctx
ctx
() const;
1901
1902
static inline
isl
::
constraint
alloc_equality
(
isl
::
local_space
ls);
1903
static inline
isl
::
constraint
alloc_inequality
(
isl
::
local_space
ls);
1904
inline
isl
::
constraint
set_coefficient_si
(
isl
::
dim
type
,
int
pos
,
int
v) const;
1905
inline
isl
::
constraint
set_constant_si
(
int
v) const;
1906
inline
isl
::
constraint
set_constant_val
(
isl
::
val
v) const;
1907
inline
isl
::
constraint
set_constant_val
(
long
v) const;
1908
};
1909
1910
// declarations for isl::fixed_box
1911
inline
fixed_box
manage
(
__isl_take
isl_fixed_box
*
ptr
);
1912
inline
fixed_box
manage_copy
(
__isl_keep
isl_fixed_box
*
ptr
);
1913
1914
class
fixed_box
{
1915
friend
inline
fixed_box
manage
(
__isl_take
isl_fixed_box
*
ptr
);
1916
friend
inline
fixed_box
manage_copy
(
__isl_keep
isl_fixed_box
*
ptr
);
1917
1918
protected
:
1919
isl_fixed_box
*
ptr
=
nullptr
;
1920
1921
inline
explicit
fixed_box
(
__isl_take
isl_fixed_box
*
ptr
);
1922
1923
public
:
1924
inline
/* implicit */
fixed_box
();
1925
inline
/* implicit */
fixed_box
(
const
fixed_box
&
obj
);
1926
inline
fixed_box
&
operator=
(
fixed_box
obj
);
1927
inline
~fixed_box
();
1928
inline
__isl_give
isl_fixed_box
*
copy
() const &;
1929
inline
__isl_give
isl_fixed_box
*
copy
() && = delete;
1930
inline
__isl_keep
isl_fixed_box
*
get
() const;
1931
inline
__isl_give
isl_fixed_box
*
release
();
1932
inline
bool
is_null
() const;
1933
inline
isl
::
ctx
ctx
() const;
1934
1935
inline
boolean
is_valid
() const;
1936
inline
isl
::
multi_aff
offset
() const;
1937
inline
isl
::
multi_aff
get_offset
() const;
1938
inline
isl
::
multi_val
size
() const;
1939
inline
isl
::
multi_val
get_size
() const;
1940
inline
isl
::
space
space
() const;
1941
inline
isl
::
space
get_space
() const;
1942
};
1943
1944
// declarations for isl::id
1945
inline
id
manage
(
__isl_take
isl_id
*
ptr
);
1946
inline
id
manage_copy
(
__isl_keep
isl_id
*
ptr
);
1947
1948
class
id
{
1949
friend
inline
id
manage
(
__isl_take
isl_id
*
ptr
);
1950
friend
inline
id
manage_copy
(
__isl_keep
isl_id
*
ptr
);
1951
1952
protected
:
1953
isl_id
*
ptr
=
nullptr
;
1954
1955
inline
explicit
id
(
__isl_take
isl_id
*
ptr
);
1956
1957
public
:
1958
inline
/* implicit */
id
();
1959
inline
/* implicit */
id
(
const
id
&
obj
);
1960
inline
explicit
id
(
isl::ctx
ctx
,
const
std::string &
str
);
1961
inline
id
&
operator=
(
id
obj
);
1962
inline
~id
();
1963
inline
__isl_give
isl_id
*
copy
() const &;
1964
inline
__isl_give
isl_id
*
copy
() && = delete;
1965
inline
__isl_keep
isl_id
*
get
() const;
1966
inline
__isl_give
isl_id
*
release
();
1967
inline
bool
is_null
() const;
1968
inline
isl
::
ctx
ctx
() const;
1969
1970
static inline
isl
::
id
alloc
(
isl
::
ctx
ctx
, const std::
string
&
name
,
void
*
user
);
1971
inline std::
string
name
() const;
1972
inline std::
string
get_name
() const;
1973
inline
isl
::
id_list
to_list
() const;
1974
inline
void
*
user
() const;
1975
inline
void
*
get_user
() const;
1976
};
1977
1978
// declarations for isl::id_list
1979
inline
id_list
manage
(
__isl_take
isl_id_list *
ptr
);
1980
inline
id_list
manage_copy
(
__isl_keep
isl_id_list *
ptr
);
1981
1982
class
id_list
{
1983
friend
inline
id_list
manage
(
__isl_take
isl_id_list *
ptr
);
1984
friend
inline
id_list
manage_copy
(
__isl_keep
isl_id_list *
ptr
);
1985
1986
protected
:
1987
isl_id_list *
ptr
=
nullptr
;
1988
1989
inline
explicit
id_list
(
__isl_take
isl_id_list *
ptr
);
1990
1991
public
:
1992
inline
/* implicit */
id_list
();
1993
inline
/* implicit */
id_list
(
const
id_list
&
obj
);
1994
inline
explicit
id_list
(
isl::ctx
ctx
,
int
n
);
1995
inline
explicit
id_list
(
isl::id
el);
1996
inline
explicit
id_list
(
isl::ctx
ctx
,
const
std::string &
str
);
1997
inline
id_list
&
operator=
(
id_list
obj
);
1998
inline
~id_list
();
1999
inline
__isl_give
isl_id_list *
copy
() const &;
2000
inline
__isl_give
isl_id_list *
copy
() && = delete;
2001
inline
__isl_keep
isl_id_list *
get
() const;
2002
inline
__isl_give
isl_id_list *
release
();
2003
inline
bool
is_null
() const;
2004
inline
isl
::
ctx
ctx
() const;
2005
2006
inline
isl
::
id_list
add
(
isl
::
id
el) const;
2007
inline
isl
::
id_list
add
(const std::
string
&el) const;
2008
inline
isl
::
id
at
(
int
index) const;
2009
inline
isl
::
id
get_at
(
int
index) const;
2010
inline
isl
::
id_list
clear
() const;
2011
inline
isl
::
id_list
concat
(
isl
::
id_list
list2) const;
2012
inline
isl
::
id_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
2013
inline
stat
foreach
(const std::function<
stat
(
isl
::
id
)> &
fn
) const;
2014
inline
isl
::
id_list
insert
(
unsigned
int
pos
,
isl
::
id
el) const;
2015
inline
isl
::
id_list
insert
(
unsigned
int
pos
, const std::
string
&el) const;
2016
inline class
size
size
() const;
2017
};
2018
2019
// declarations for isl::id_to_ast_expr
2020
inline
id_to_ast_expr
manage
(
__isl_take
isl_id_to_ast_expr *
ptr
);
2021
inline
id_to_ast_expr
manage_copy
(
__isl_keep
isl_id_to_ast_expr *
ptr
);
2022
2023
class
id_to_ast_expr
{
2024
friend
inline
id_to_ast_expr
manage
(
__isl_take
isl_id_to_ast_expr *
ptr
);
2025
friend
inline
id_to_ast_expr
manage_copy
(
__isl_keep
isl_id_to_ast_expr *
ptr
);
2026
2027
protected
:
2028
isl_id_to_ast_expr *
ptr
=
nullptr
;
2029
2030
inline
explicit
id_to_ast_expr
(
__isl_take
isl_id_to_ast_expr *
ptr
);
2031
2032
public
:
2033
inline
/* implicit */
id_to_ast_expr
();
2034
inline
/* implicit */
id_to_ast_expr
(
const
id_to_ast_expr
&
obj
);
2035
inline
id_to_ast_expr
&
operator=
(
id_to_ast_expr
obj
);
2036
inline
~id_to_ast_expr
();
2037
inline
__isl_give
isl_id_to_ast_expr *
copy
() const &;
2038
inline
__isl_give
isl_id_to_ast_expr *
copy
() && = delete;
2039
inline
__isl_keep
isl_id_to_ast_expr *
get
() const;
2040
inline
__isl_give
isl_id_to_ast_expr *
release
();
2041
inline
bool
is_null
() const;
2042
inline
isl
::
ctx
ctx
() const;
2043
2044
static inline
isl
::
id_to_ast_expr
alloc
(
isl
::
ctx
ctx
,
int
min_size
);
2045
inline
isl
::
id_to_ast_expr
set
(
isl
::
id
key
,
isl
::
ast_expr
val
) const;
2046
inline
isl
::
id_to_ast_expr
set
(const std::
string
&
key
, const
isl
::
ast_expr
&
val
) const;
2047
};
2048
2049
// declarations for isl::local_space
2050
inline
local_space
manage
(
__isl_take
isl_local_space
*
ptr
);
2051
inline
local_space
manage_copy
(
__isl_keep
isl_local_space
*
ptr
);
2052
2053
class
local_space
{
2054
friend
inline
local_space
manage
(
__isl_take
isl_local_space
*
ptr
);
2055
friend
inline
local_space
manage_copy
(
__isl_keep
isl_local_space
*
ptr
);
2056
2057
protected
:
2058
isl_local_space
*
ptr
=
nullptr
;
2059
2060
inline
explicit
local_space
(
__isl_take
isl_local_space
*
ptr
);
2061
2062
public
:
2063
inline
/* implicit */
local_space
();
2064
inline
/* implicit */
local_space
(
const
local_space
&
obj
);
2065
inline
explicit
local_space
(
isl::space
space
);
2066
inline
local_space
&
operator=
(
local_space
obj
);
2067
inline
~local_space
();
2068
inline
__isl_give
isl_local_space
*
copy
() const &;
2069
inline
__isl_give
isl_local_space
*
copy
() && = delete;
2070
inline
__isl_keep
isl_local_space
*
get
() const;
2071
inline
__isl_give
isl_local_space
*
release
();
2072
inline
bool
is_null
() const;
2073
inline
isl
::
ctx
ctx
() const;
2074
2075
};
2076
2077
// declarations for isl::map
2078
inline
map
manage
(
__isl_take
isl_map
*
ptr
);
2079
inline
map
manage_copy
(
__isl_keep
isl_map
*
ptr
);
2080
2081
class
map
{
2082
friend
inline
map
manage
(
__isl_take
isl_map
*
ptr
);
2083
friend
inline
map
manage_copy
(
__isl_keep
isl_map
*
ptr
);
2084
2085
protected
:
2086
isl_map
*
ptr
=
nullptr
;
2087
2088
inline
explicit
map
(
__isl_take
isl_map
*
ptr
);
2089
2090
public
:
2091
inline
/* implicit */
map
();
2092
inline
/* implicit */
map
(
const
map
&
obj
);
2093
inline
/* implicit */
map
(
isl::basic_map
bmap);
2094
inline
explicit
map
(
isl::ctx
ctx
,
const
std::string &
str
);
2095
inline
map
&
operator=
(
map
obj
);
2096
inline
~map
();
2097
inline
__isl_give
isl_map
*
copy
() const &;
2098
inline
__isl_give
isl_map
*
copy
() && = delete;
2099
inline
__isl_keep
isl_map
*
get
() const;
2100
inline
__isl_give
isl_map
*
release
();
2101
inline
bool
is_null
() const;
2102
inline
isl
::
ctx
ctx
() const;
2103
2104
inline
isl
::
map
add_constraint
(
isl
::
constraint
constraint
) const;
2105
inline
isl
::
map
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
2106
inline
isl
::
basic_map
affine_hull
() const;
2107
inline
isl
::
map
align_params
(
isl
::
space
model) const;
2108
inline
isl
::
map
apply_domain
(
isl
::
map
map2
) const;
2109
inline
isl
::
union_map
apply_domain
(const
isl
::
union_map
&umap2) const;
2110
inline
isl
::
map
apply_domain
(const
isl
::
basic_map
&
map2
) const;
2111
inline
isl
::
map
apply_range
(
isl
::
map
map2
) const;
2112
inline
isl
::
union_map
apply_range
(const
isl
::
union_map
&umap2) const;
2113
inline
isl
::
map
apply_range
(const
isl
::
basic_map
&
map2
) const;
2114
inline
isl
::
map
as_map
() const;
2115
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
2116
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
2117
inline
isl
::
union_pw_multi_aff
as_union_pw_multi_aff
() const;
2118
inline
isl
::
basic_map_list
basic_map_list
() const;
2119
inline
isl
::
basic_map_list
get_basic_map_list
() const;
2120
inline
isl
::
set
bind_domain
(
isl
::
multi_id
tuple
) const;
2121
inline
isl
::
set
bind_range
(
isl
::
multi_id
tuple
) const;
2122
inline
boolean
can_curry
() const;
2123
inline
isl
::
map
coalesce
() const;
2124
inline
isl
::
map
complement
() const;
2125
inline
isl
::
union_map
compute_divs
() const;
2126
inline
isl
::
map
curry
() const;
2127
inline
isl
::
set
deltas
() const;
2128
inline
isl
::
map
detect_equalities
() const;
2129
inline class
size
dim
(
isl
::
dim
type
) const;
2130
inline
isl
::
pw_aff
dim_max
(
int
pos
) const;
2131
inline
isl
::
pw_aff
dim_min
(
int
pos
) const;
2132
inline
isl
::
set
domain
() const;
2133
inline
isl
::
map
domain_factor_domain
() const;
2134
inline
isl
::
map
domain_factor_range
() const;
2135
inline
isl
::
map
domain_map
() const;
2136
inline
isl
::
union_pw_multi_aff
domain_map_union_pw_multi_aff
() const;
2137
inline
isl
::
map
domain_product
(
isl
::
map
map2
) const;
2138
inline
isl
::
union_map
domain_product
(const
isl
::
union_map
&umap2) const;
2139
inline
isl
::
map
domain_product
(const
isl
::
basic_map
&
map2
) const;
2140
inline class
size
domain_tuple_dim
() const;
2141
inline
isl
::
id
domain_tuple_id
() const;
2142
inline
isl
::
id
get_domain_tuple_id
() const;
2143
static inline
isl
::
map
empty
(
isl
::
space
space
);
2144
inline
isl
::
map
eq_at
(
isl
::
multi_pw_aff
mpa) const;
2145
inline
isl
::
union_map
eq_at
(const
isl
::
multi_union_pw_aff
&
mupa
) const;
2146
inline
isl
::
map
eq_at
(const
isl
::
aff
&mpa) const;
2147
inline
isl
::
map
eq_at
(const
isl
::
multi_aff
&mpa) const;
2148
inline
isl
::
map
eq_at
(const
isl
::
pw_aff
&mpa) const;
2149
inline
isl
::
map
eq_at
(const
isl
::
pw_multi_aff
&mpa) const;
2150
inline
isl
::
map
equate
(
isl
::
dim
type1,
int
pos1,
isl
::
dim
type2,
int
pos2) const;
2151
inline
boolean
every_map
(const std::function<
boolean
(
isl
::
map
)> &
test
) const;
2152
inline
isl
::
map
extract_map
(const
isl
::
space
&
space
) const;
2153
inline
isl
::
map
factor_domain
() const;
2154
inline
isl
::
map
factor_range
() const;
2155
inline
isl
::
map
fix_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
2156
inline
isl
::
union_map
fixed_power
(const
isl
::
val
&exp) const;
2157
inline
isl
::
union_map
fixed_power
(
long
exp) const;
2158
inline
isl
::
map
flat_range_product
(
isl
::
map
map2
) const;
2159
inline
isl
::
union_map
flat_range_product
(const
isl
::
union_map
&umap2) const;
2160
inline
isl
::
map
flat_range_product
(const
isl
::
basic_map
&
map2
) const;
2161
inline
isl
::
map
flatten
() const;
2162
inline
isl
::
map
flatten_domain
() const;
2163
inline
isl
::
map
flatten_range
() const;
2164
inline
isl
::
map
floordiv_val
(
isl
::
val
d) const;
2165
inline
isl
::
map
floordiv_val
(
long
d) const;
2166
inline
stat
foreach_basic_map
(const std::function<
stat
(
isl
::
basic_map
)> &
fn
) const;
2167
inline
stat
foreach_map
(const std::function<
stat
(
isl
::
map
)> &
fn
) const;
2168
static inline
isl
::
map
from_aff
(
isl
::
aff
aff
);
2169
static inline
isl
::
map
from_domain
(
isl
::
set
set
);
2170
static inline
isl
::
map
from_domain_and_range
(
isl
::
set
domain
,
isl
::
set
range
);
2171
static inline
isl
::
map
from_multi_aff
(
isl
::
multi_aff
maff);
2172
static inline
isl
::
map
from_pw_aff
(
isl
::
pw_aff
pwaff);
2173
static inline
isl
::
map
from_range
(
isl
::
set
set
);
2174
static inline
isl
::
map
from_union_map
(
isl
::
union_map
umap);
2175
inline
isl
::
map
gist
(
isl
::
map
context
) const;
2176
inline
isl
::
union_map
gist
(const
isl
::
union_map
&
context
) const;
2177
inline
isl
::
map
gist
(const
isl
::
basic_map
&
context
) const;
2178
inline
isl
::
map
gist_domain
(
isl
::
set
context
) const;
2179
inline
isl
::
union_map
gist_domain
(const
isl
::
union_set
&uset) const;
2180
inline
isl
::
map
gist_domain
(const
isl
::
basic_set
&
context
) const;
2181
inline
isl
::
map
gist_domain
(const
isl
::
point
&
context
) const;
2182
inline
isl
::
map
gist_params
(
isl
::
set
context
) const;
2183
inline
isl
::
union_map
gist_range
(const
isl
::
union_set
&uset) const;
2184
inline
boolean
has_domain_tuple_id
() const;
2185
inline
boolean
has_equal_space
(const
isl
::
map
&
map2
) const;
2186
inline
boolean
has_range_tuple_id
() const;
2187
inline
boolean
has_tuple_id
(
isl
::
dim
type
) const;
2188
inline
boolean
has_tuple_name
(
isl
::
dim
type
) const;
2189
static inline
isl
::
map
identity
(
isl
::
space
space
);
2190
inline
isl
::
map
intersect
(
isl
::
map
map2
) const;
2191
inline
isl
::
union_map
intersect
(const
isl
::
union_map
&umap2) const;
2192
inline
isl
::
map
intersect
(const
isl
::
basic_map
&
map2
) const;
2193
inline
isl
::
map
intersect_domain
(
isl
::
set
set
) const;
2194
inline
isl
::
union_map
intersect_domain
(const
isl
::
space
&
space
) const;
2195
inline
isl
::
union_map
intersect_domain
(const
isl
::
union_set
&uset) const;
2196
inline
isl
::
map
intersect_domain
(const
isl
::
basic_set
&
set
) const;
2197
inline
isl
::
map
intersect_domain
(const
isl
::
point
&
set
) const;
2198
inline
isl
::
map
intersect_domain_factor_domain
(
isl
::
map
factor) const;
2199
inline
isl
::
union_map
intersect_domain_factor_domain
(const
isl
::
union_map
&factor) const;
2200
inline
isl
::
map
intersect_domain_factor_domain
(const
isl
::
basic_map
&factor) const;
2201
inline
isl
::
map
intersect_domain_factor_range
(
isl
::
map
factor) const;
2202
inline
isl
::
union_map
intersect_domain_factor_range
(const
isl
::
union_map
&factor) const;
2203
inline
isl
::
map
intersect_domain_factor_range
(const
isl
::
basic_map
&factor) const;
2204
inline
isl
::
map
intersect_params
(
isl
::
set
params
) const;
2205
inline
isl
::
map
intersect_range
(
isl
::
set
set
) const;
2206
inline
isl
::
union_map
intersect_range
(const
isl
::
space
&
space
) const;
2207
inline
isl
::
union_map
intersect_range
(const
isl
::
union_set
&uset) const;
2208
inline
isl
::
map
intersect_range
(const
isl
::
basic_set
&
set
) const;
2209
inline
isl
::
map
intersect_range
(const
isl
::
point
&
set
) const;
2210
inline
isl
::
map
intersect_range_factor_domain
(
isl
::
map
factor) const;
2211
inline
isl
::
union_map
intersect_range_factor_domain
(const
isl
::
union_map
&factor) const;
2212
inline
isl
::
map
intersect_range_factor_domain
(const
isl
::
basic_map
&factor) const;
2213
inline
isl
::
map
intersect_range_factor_range
(
isl
::
map
factor) const;
2214
inline
isl
::
union_map
intersect_range_factor_range
(const
isl
::
union_map
&factor) const;
2215
inline
isl
::
map
intersect_range_factor_range
(const
isl
::
basic_map
&factor) const;
2216
inline
boolean
involves_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2217
inline
boolean
is_bijective
() const;
2218
inline
boolean
is_disjoint
(const
isl
::
map
&
map2
) const;
2219
inline
boolean
is_disjoint
(const
isl
::
union_map
&umap2) const;
2220
inline
boolean
is_disjoint
(const
isl
::
basic_map
&
map2
) const;
2221
inline
boolean
is_empty
() const;
2222
inline
boolean
is_equal
(const
isl
::
map
&
map2
) const;
2223
inline
boolean
is_equal
(const
isl
::
union_map
&umap2) const;
2224
inline
boolean
is_equal
(const
isl
::
basic_map
&
map2
) const;
2225
inline
boolean
is_injective
() const;
2226
inline
boolean
is_single_valued
() const;
2227
inline
boolean
is_strict_subset
(const
isl
::
map
&
map2
) const;
2228
inline
boolean
is_strict_subset
(const
isl
::
union_map
&umap2) const;
2229
inline
boolean
is_strict_subset
(const
isl
::
basic_map
&
map2
) const;
2230
inline
boolean
is_subset
(const
isl
::
map
&
map2
) const;
2231
inline
boolean
is_subset
(const
isl
::
union_map
&umap2) const;
2232
inline
boolean
is_subset
(const
isl
::
basic_map
&
map2
) const;
2233
inline
boolean
isa_map
() const;
2234
static inline
isl
::
map
lex_ge
(
isl
::
space
set_space);
2235
inline
isl
::
map
lex_ge_at
(
isl
::
multi_pw_aff
mpa) const;
2236
static inline
isl
::
map
lex_gt
(
isl
::
space
set_space);
2237
inline
isl
::
map
lex_gt_at
(
isl
::
multi_pw_aff
mpa) const;
2238
static inline
isl
::
map
lex_le
(
isl
::
space
set_space);
2239
inline
isl
::
map
lex_le_at
(
isl
::
multi_pw_aff
mpa) const;
2240
static inline
isl
::
map
lex_lt
(
isl
::
space
set_space);
2241
inline
isl
::
map
lex_lt_at
(
isl
::
multi_pw_aff
mpa) const;
2242
inline
isl
::
map
lexmax
() const;
2243
inline
isl
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
2244
inline
isl
::
map
lexmin
() const;
2245
inline
isl
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
2246
inline
isl
::
map
lower_bound
(
isl
::
multi_pw_aff
lower) const;
2247
inline
isl
::
map
lower_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
2248
inline
isl
::
map_list
map_list
() const;
2249
inline
isl
::
multi_pw_aff
max_multi_pw_aff
() const;
2250
inline
isl
::
multi_pw_aff
min_multi_pw_aff
() const;
2251
inline
isl
::
map
move_dims
(
isl
::
dim
dst_type,
unsigned
int
dst_pos,
isl
::
dim
src_type,
unsigned
int
src_pos,
unsigned
int
n
) const;
2252
inline class
size
n_basic_map
() const;
2253
inline
isl
::
map
order_lt
(
isl
::
dim
type1,
int
pos1,
isl
::
dim
type2,
int
pos2) const;
2254
inline
isl
::
set
params
() const;
2255
inline
isl
::
basic_map
polyhedral_hull
() const;
2256
inline
isl
::
map
preimage_domain
(
isl
::
multi_aff
ma
) const;
2257
inline
isl
::
map
preimage_domain
(
isl
::
multi_pw_aff
mpa) const;
2258
inline
isl
::
map
preimage_domain
(
isl
::
pw_multi_aff
pma
) const;
2259
inline
isl
::
union_map
preimage_domain
(const
isl
::
union_pw_multi_aff
&upma) const;
2260
inline
isl
::
map
preimage_range
(
isl
::
multi_aff
ma
) const;
2261
inline
isl
::
map
preimage_range
(
isl
::
pw_multi_aff
pma
) const;
2262
inline
isl
::
union_map
preimage_range
(const
isl
::
union_pw_multi_aff
&upma) const;
2263
inline
isl
::
map
product
(
isl
::
map
map2
) const;
2264
inline
isl
::
union_map
product
(const
isl
::
union_map
&umap2) const;
2265
inline
isl
::
map
product
(const
isl
::
basic_map
&
map2
) const;
2266
inline
isl
::
map
project_out
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2267
inline
isl
::
map
project_out_all_params
() const;
2268
inline
isl
::
set
range
() const;
2269
inline
isl
::
map
range_factor_domain
() const;
2270
inline
isl
::
map
range_factor_range
() const;
2271
inline
isl
::
fixed_box
range_lattice_tile
() const;
2272
inline
isl
::
fixed_box
get_range_lattice_tile
() const;
2273
inline
isl
::
map
range_map
() const;
2274
inline
isl
::
map
range_product
(
isl
::
map
map2
) const;
2275
inline
isl
::
union_map
range_product
(const
isl
::
union_map
&umap2) const;
2276
inline
isl
::
map
range_product
(const
isl
::
basic_map
&
map2
) const;
2277
inline
isl
::
map
range_reverse
() const;
2278
inline
isl
::
fixed_box
range_simple_fixed_box_hull
() const;
2279
inline
isl
::
fixed_box
get_range_simple_fixed_box_hull
() const;
2280
inline class
size
range_tuple_dim
() const;
2281
inline
isl
::
id
range_tuple_id
() const;
2282
inline
isl
::
id
get_range_tuple_id
() const;
2283
inline
isl
::
map
reverse
() const;
2284
inline
isl
::
basic_map
sample
() const;
2285
inline
isl
::
map
set_domain_tuple
(
isl
::
id
id
) const;
2286
inline
isl
::
map
set_domain_tuple
(const std::
string
&
id
) const;
2287
inline
isl
::
map
set_range_tuple
(
isl
::
id
id
) const;
2288
inline
isl
::
map
set_range_tuple
(const std::
string
&
id
) const;
2289
inline
isl
::
map
set_tuple_id
(
isl
::
dim
type
,
isl
::
id
id
) const;
2290
inline
isl
::
map
set_tuple_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
2291
inline
isl
::
space
space
() const;
2292
inline
isl
::
space
get_space
() const;
2293
inline
isl
::
map
subtract
(
isl
::
map
map2
) const;
2294
inline
isl
::
union_map
subtract
(const
isl
::
union_map
&umap2) const;
2295
inline
isl
::
map
subtract
(const
isl
::
basic_map
&
map2
) const;
2296
inline
isl
::
union_map
subtract_domain
(const
isl
::
union_set
&dom) const;
2297
inline
isl
::
union_map
subtract_range
(const
isl
::
union_set
&dom) const;
2298
inline
isl
::
map
sum
(
isl
::
map
map2
) const;
2299
inline
isl
::
map_list
to_list
() const;
2300
inline
isl
::
union_map
to_union_map
() const;
2301
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
2302
inline
isl
::
id
get_tuple_id
(
isl
::
dim
type
) const;
2303
inline
isl
::
map
uncurry
() const;
2304
inline
isl
::
map
unite
(
isl
::
map
map2
) const;
2305
inline
isl
::
union_map
unite
(const
isl
::
union_map
&umap2) const;
2306
inline
isl
::
map
unite
(const
isl
::
basic_map
&
map2
) const;
2307
static inline
isl
::
map
universe
(
isl
::
space
space
);
2308
inline
isl
::
basic_map
unshifted_simple_hull
() const;
2309
inline
isl
::
map
upper_bound
(
isl
::
multi_pw_aff
upper) const;
2310
inline
isl
::
map
upper_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
2311
inline
isl
::
set
wrap
() const;
2312
inline
isl
::
map
zip
() const;
2313
};
2314
2315
// declarations for isl::map_list
2316
inline
map_list
manage
(
__isl_take
isl_map_list *
ptr
);
2317
inline
map_list
manage_copy
(
__isl_keep
isl_map_list *
ptr
);
2318
2319
class
map_list
{
2320
friend
inline
map_list
manage
(
__isl_take
isl_map_list *
ptr
);
2321
friend
inline
map_list
manage_copy
(
__isl_keep
isl_map_list *
ptr
);
2322
2323
protected
:
2324
isl_map_list *
ptr
=
nullptr
;
2325
2326
inline
explicit
map_list
(
__isl_take
isl_map_list *
ptr
);
2327
2328
public
:
2329
inline
/* implicit */
map_list
();
2330
inline
/* implicit */
map_list
(
const
map_list
&
obj
);
2331
inline
explicit
map_list
(
isl::ctx
ctx
,
int
n
);
2332
inline
explicit
map_list
(
isl::map
el);
2333
inline
explicit
map_list
(
isl::ctx
ctx
,
const
std::string &
str
);
2334
inline
map_list
&
operator=
(
map_list
obj
);
2335
inline
~map_list
();
2336
inline
__isl_give
isl_map_list *
copy
() const &;
2337
inline
__isl_give
isl_map_list *
copy
() && = delete;
2338
inline
__isl_keep
isl_map_list *
get
() const;
2339
inline
__isl_give
isl_map_list *
release
();
2340
inline
bool
is_null
() const;
2341
inline
isl
::
ctx
ctx
() const;
2342
2343
inline
isl
::
map_list
add
(
isl
::
map
el) const;
2344
inline
isl
::
map
at
(
int
index) const;
2345
inline
isl
::
map
get_at
(
int
index) const;
2346
inline
isl
::
map_list
clear
() const;
2347
inline
isl
::
map_list
concat
(
isl
::
map_list
list2) const;
2348
inline
isl
::
map_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
2349
inline
stat
foreach
(const std::function<
stat
(
isl
::
map
)> &
fn
) const;
2350
inline
isl
::
map_list
insert
(
unsigned
int
pos
,
isl
::
map
el) const;
2351
inline class
size
size
() const;
2352
};
2353
2354
// declarations for isl::multi_aff
2355
inline
multi_aff
manage
(
__isl_take
isl_multi_aff
*
ptr
);
2356
inline
multi_aff
manage_copy
(
__isl_keep
isl_multi_aff
*
ptr
);
2357
2358
class
multi_aff
{
2359
friend
inline
multi_aff
manage
(
__isl_take
isl_multi_aff
*
ptr
);
2360
friend
inline
multi_aff
manage_copy
(
__isl_keep
isl_multi_aff
*
ptr
);
2361
2362
protected
:
2363
isl_multi_aff
*
ptr
=
nullptr
;
2364
2365
inline
explicit
multi_aff
(
__isl_take
isl_multi_aff
*
ptr
);
2366
2367
public
:
2368
inline
/* implicit */
multi_aff
();
2369
inline
/* implicit */
multi_aff
(
const
multi_aff
&
obj
);
2370
inline
/* implicit */
multi_aff
(
isl::aff
aff
);
2371
inline
explicit
multi_aff
(
isl::space
space
,
isl::aff_list
list
);
2372
inline
explicit
multi_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
2373
inline
multi_aff
&
operator=
(
multi_aff
obj
);
2374
inline
~multi_aff
();
2375
inline
__isl_give
isl_multi_aff
*
copy
() const &;
2376
inline
__isl_give
isl_multi_aff
*
copy
() && = delete;
2377
inline
__isl_keep
isl_multi_aff
*
get
() const;
2378
inline
__isl_give
isl_multi_aff
*
release
();
2379
inline
bool
is_null
() const;
2380
inline
isl
::
ctx
ctx
() const;
2381
2382
inline
isl
::
multi_aff
add
(
isl
::
multi_aff
multi2) const;
2383
inline
isl
::
multi_pw_aff
add
(const
isl
::
multi_pw_aff
&multi2) const;
2384
inline
isl
::
multi_union_pw_aff
add
(const
isl
::
multi_union_pw_aff
&multi2) const;
2385
inline
isl
::
pw_multi_aff
add
(const
isl
::
pw_multi_aff
&pma2) const;
2386
inline
isl
::
union_pw_multi_aff
add
(const
isl
::
union_pw_multi_aff
&upma2) const;
2387
inline
isl
::
multi_aff
add
(const
isl
::
aff
&multi2) const;
2388
inline
isl
::
multi_aff
add_constant
(
isl
::
multi_val
mv) const;
2389
inline
isl
::
multi_aff
add_constant
(
isl
::
val
v) const;
2390
inline
isl
::
multi_aff
add_constant
(
long
v) const;
2391
inline
isl
::
union_pw_multi_aff
add_pw_multi_aff
(const
isl
::
pw_multi_aff
&
pma
) const;
2392
inline
isl
::
union_pw_multi_aff
apply
(const
isl
::
union_pw_multi_aff
&upma2) const;
2393
inline
isl
::
map
as_map
() const;
2394
inline
isl
::
multi_aff
as_multi_aff
() const;
2395
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
2396
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
2397
inline
isl
::
set
as_set
() const;
2398
inline
isl
::
union_map
as_union_map
() const;
2399
inline
isl
::
aff
at
(
int
pos
) const;
2400
inline
isl
::
aff
get_at
(
int
pos
) const;
2401
inline
isl
::
basic_set
bind
(
isl
::
multi_id
tuple
) const;
2402
inline
isl
::
multi_aff
bind_domain
(
isl
::
multi_id
tuple
) const;
2403
inline
isl
::
multi_aff
bind_domain_wrapped_domain
(
isl
::
multi_id
tuple
) const;
2404
inline
isl
::
pw_multi_aff
coalesce
() const;
2405
inline
isl
::
multi_val
constant_multi_val
() const;
2406
inline
isl
::
multi_val
get_constant_multi_val
() const;
2407
inline class
size
dim
(
isl
::
dim
type
) const;
2408
inline
isl
::
set
domain
() const;
2409
static inline
isl
::
multi_aff
domain_map
(
isl
::
space
space
);
2410
inline
isl
::
pw_multi_aff
drop_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2411
inline
isl
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
space
&
space
) const;
2412
inline
isl
::
multi_aff
flat_range_product
(
isl
::
multi_aff
multi2) const;
2413
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
multi_pw_aff
&multi2) const;
2414
inline
isl
::
multi_union_pw_aff
flat_range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
2415
inline
isl
::
pw_multi_aff
flat_range_product
(const
isl
::
pw_multi_aff
&pma2) const;
2416
inline
isl
::
union_pw_multi_aff
flat_range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
2417
inline
isl
::
multi_aff
flat_range_product
(const
isl
::
aff
&multi2) const;
2418
inline
isl
::
multi_aff
floor
() const;
2419
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
set
,
isl
::
multi_aff
)> &
fn
) const;
2420
inline
isl
::
multi_aff
gist
(
isl
::
set
context
) const;
2421
inline
isl
::
union_pw_multi_aff
gist
(const
isl
::
union_set
&
context
) const;
2422
inline
isl
::
multi_aff
gist
(const
isl
::
basic_set
&
context
) const;
2423
inline
isl
::
multi_aff
gist
(const
isl
::
point
&
context
) const;
2424
inline
boolean
has_range_tuple_id
() const;
2425
static inline
isl
::
multi_aff
identity
(
isl
::
space
space
);
2426
inline
isl
::
multi_aff
identity
() const;
2427
static inline
isl
::
multi_aff
identity_on_domain
(
isl
::
space
space
);
2428
inline
isl
::
multi_aff
insert_domain
(
isl
::
space
domain
) const;
2429
inline
isl
::
pw_multi_aff
intersect_domain
(const
isl
::
set
&
set
) const;
2430
inline
isl
::
union_pw_multi_aff
intersect_domain
(const
isl
::
space
&
space
) const;
2431
inline
isl
::
union_pw_multi_aff
intersect_domain
(const
isl
::
union_set
&uset) const;
2432
inline
isl
::
union_pw_multi_aff
intersect_domain_wrapped_domain
(const
isl
::
union_set
&uset) const;
2433
inline
isl
::
union_pw_multi_aff
intersect_domain_wrapped_range
(const
isl
::
union_set
&uset) const;
2434
inline
isl
::
pw_multi_aff
intersect_params
(const
isl
::
set
&
set
) const;
2435
inline
boolean
involves_locals
() const;
2436
inline
boolean
involves_nan
() const;
2437
inline
boolean
involves_param
(const
isl
::
id
&
id
) const;
2438
inline
boolean
involves_param
(const std::
string
&
id
) const;
2439
inline
boolean
involves_param
(const
isl
::
id_list
&
list
) const;
2440
inline
boolean
isa_multi_aff
() const;
2441
inline
boolean
isa_pw_multi_aff
() const;
2442
inline
isl
::
aff_list
list
() const;
2443
inline
isl
::
aff_list
get_list
() const;
2444
inline
isl
::
multi_pw_aff
max
(const
isl
::
multi_pw_aff
&multi2) const;
2445
inline
isl
::
multi_val
max_multi_val
() const;
2446
inline
isl
::
multi_pw_aff
min
(const
isl
::
multi_pw_aff
&multi2) const;
2447
inline
isl
::
multi_val
min_multi_val
() const;
2448
static inline
isl
::
multi_aff
multi_val_on_domain
(
isl
::
space
space
,
isl
::
multi_val
mv);
2449
inline class
size
n_piece
() const;
2450
inline
isl
::
multi_aff
neg
() const;
2451
inline
boolean
plain_is_empty
() const;
2452
inline
boolean
plain_is_equal
(const
isl
::
multi_aff
&multi2) const;
2453
inline
boolean
plain_is_equal
(const
isl
::
multi_pw_aff
&multi2) const;
2454
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
2455
inline
boolean
plain_is_equal
(const
isl
::
aff
&multi2) const;
2456
inline
isl
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
pw_multi_aff
&pma2) const;
2457
inline
isl
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
union_pw_multi_aff
&upma2) const;
2458
inline
isl
::
multi_aff
product
(
isl
::
multi_aff
multi2) const;
2459
inline
isl
::
multi_pw_aff
product
(const
isl
::
multi_pw_aff
&multi2) const;
2460
inline
isl
::
pw_multi_aff
product
(const
isl
::
pw_multi_aff
&pma2) const;
2461
inline
isl
::
multi_aff
product
(const
isl
::
aff
&multi2) const;
2462
inline
isl
::
multi_aff
pullback
(
isl
::
multi_aff
ma2) const;
2463
inline
isl
::
multi_pw_aff
pullback
(const
isl
::
multi_pw_aff
&mpa2) const;
2464
inline
isl
::
pw_multi_aff
pullback
(const
isl
::
pw_multi_aff
&pma2) const;
2465
inline
isl
::
union_pw_multi_aff
pullback
(const
isl
::
union_pw_multi_aff
&upma2) const;
2466
inline
isl
::
multi_aff
pullback
(const
isl
::
aff
&ma2) const;
2467
inline
isl
::
pw_multi_aff_list
pw_multi_aff_list
() const;
2468
inline
isl
::
pw_multi_aff
range_factor_domain
() const;
2469
inline
isl
::
pw_multi_aff
range_factor_range
() const;
2470
static inline
isl
::
multi_aff
range_map
(
isl
::
space
space
);
2471
inline
isl
::
multi_aff
range_product
(
isl
::
multi_aff
multi2) const;
2472
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
multi_pw_aff
&multi2) const;
2473
inline
isl
::
multi_union_pw_aff
range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
2474
inline
isl
::
pw_multi_aff
range_product
(const
isl
::
pw_multi_aff
&pma2) const;
2475
inline
isl
::
union_pw_multi_aff
range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
2476
inline
isl
::
multi_aff
range_product
(const
isl
::
aff
&multi2) const;
2477
inline
isl
::
id
range_tuple_id
() const;
2478
inline
isl
::
id
get_range_tuple_id
() const;
2479
inline
isl
::
multi_aff
reset_range_tuple_id
() const;
2480
inline
isl
::
multi_aff
reset_tuple_id
(
isl
::
dim
type
) const;
2481
inline
isl
::
multi_aff
scale
(
isl
::
multi_val
mv) const;
2482
inline
isl
::
multi_aff
scale
(
isl
::
val
v) const;
2483
inline
isl
::
multi_aff
scale
(
long
v) const;
2484
inline
isl
::
multi_aff
scale_down
(
isl
::
multi_val
mv) const;
2485
inline
isl
::
multi_aff
scale_down
(
isl
::
val
v) const;
2486
inline
isl
::
multi_aff
scale_down
(
long
v) const;
2487
inline
isl
::
multi_aff
set_aff
(
int
pos
,
isl
::
aff
el) const;
2488
inline
isl
::
multi_aff
set_at
(
int
pos
,
isl
::
aff
el) const;
2489
inline
isl
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
pw_aff
&el) const;
2490
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
2491
inline
isl
::
multi_pw_aff
set_pw_aff
(
int
pos
, const
isl
::
pw_aff
&el) const;
2492
inline
isl
::
pw_multi_aff
set_pw_aff
(
unsigned
int
pos
, const
isl
::
pw_aff
&
pa
) const;
2493
inline
isl
::
multi_aff
set_range_tuple
(
isl
::
id
id
) const;
2494
inline
isl
::
multi_aff
set_range_tuple
(const std::
string
&
id
) const;
2495
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
2496
inline class
size
size
() const;
2497
inline
isl
::
space
space
() const;
2498
inline
isl
::
space
get_space
() const;
2499
inline
isl
::
multi_aff
sub
(
isl
::
multi_aff
multi2) const;
2500
inline
isl
::
multi_pw_aff
sub
(const
isl
::
multi_pw_aff
&multi2) const;
2501
inline
isl
::
multi_union_pw_aff
sub
(const
isl
::
multi_union_pw_aff
&multi2) const;
2502
inline
isl
::
pw_multi_aff
sub
(const
isl
::
pw_multi_aff
&pma2) const;
2503
inline
isl
::
union_pw_multi_aff
sub
(const
isl
::
union_pw_multi_aff
&upma2) const;
2504
inline
isl
::
multi_aff
sub
(const
isl
::
aff
&multi2) const;
2505
inline
isl
::
pw_multi_aff
subtract_domain
(const
isl
::
set
&
set
) const;
2506
inline
isl
::
union_pw_multi_aff
subtract_domain
(const
isl
::
space
&
space
) const;
2507
inline
isl
::
union_pw_multi_aff
subtract_domain
(const
isl
::
union_set
&uset) const;
2508
inline
isl
::
pw_multi_aff_list
to_list
() const;
2509
inline
isl
::
multi_pw_aff
to_multi_pw_aff
() const;
2510
inline
isl
::
multi_union_pw_aff
to_multi_union_pw_aff
() const;
2511
inline
isl
::
pw_multi_aff
to_pw_multi_aff
() const;
2512
inline
isl
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
2513
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
2514
inline
isl
::
multi_aff
unbind_params_insert_domain
(
isl
::
multi_id
domain
) const;
2515
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
multi_pw_aff
&mpa2) const;
2516
inline
isl
::
multi_union_pw_aff
union_add
(const
isl
::
multi_union_pw_aff
&mupa2) const;
2517
inline
isl
::
pw_multi_aff
union_add
(const
isl
::
pw_multi_aff
&pma2) const;
2518
inline
isl
::
union_pw_multi_aff
union_add
(const
isl
::
union_pw_multi_aff
&upma2) const;
2519
static inline
isl
::
multi_aff
zero
(
isl
::
space
space
);
2520
};
2521
2522
// declarations for isl::multi_id
2523
inline
multi_id
manage
(
__isl_take
isl_multi_id
*
ptr
);
2524
inline
multi_id
manage_copy
(
__isl_keep
isl_multi_id
*
ptr
);
2525
2526
class
multi_id
{
2527
friend
inline
multi_id
manage
(
__isl_take
isl_multi_id
*
ptr
);
2528
friend
inline
multi_id
manage_copy
(
__isl_keep
isl_multi_id
*
ptr
);
2529
2530
protected
:
2531
isl_multi_id
*
ptr
=
nullptr
;
2532
2533
inline
explicit
multi_id
(
__isl_take
isl_multi_id
*
ptr
);
2534
2535
public
:
2536
inline
/* implicit */
multi_id
();
2537
inline
/* implicit */
multi_id
(
const
multi_id
&
obj
);
2538
inline
explicit
multi_id
(
isl::space
space
,
isl::id_list
list
);
2539
inline
explicit
multi_id
(
isl::ctx
ctx
,
const
std::string &
str
);
2540
inline
multi_id
&
operator=
(
multi_id
obj
);
2541
inline
~multi_id
();
2542
inline
__isl_give
isl_multi_id
*
copy
() const &;
2543
inline
__isl_give
isl_multi_id
*
copy
() && = delete;
2544
inline
__isl_keep
isl_multi_id
*
get
() const;
2545
inline
__isl_give
isl_multi_id
*
release
();
2546
inline
bool
is_null
() const;
2547
inline
isl
::
ctx
ctx
() const;
2548
2549
inline
isl
::
id
at
(
int
pos
) const;
2550
inline
isl
::
id
get_at
(
int
pos
) const;
2551
inline
isl
::
multi_id
flat_range_product
(
isl
::
multi_id
multi2) const;
2552
inline
isl
::
id_list
list
() const;
2553
inline
isl
::
id_list
get_list
() const;
2554
inline
boolean
plain_is_equal
(const
isl
::
multi_id
&multi2) const;
2555
inline
isl
::
multi_id
range_product
(
isl
::
multi_id
multi2) const;
2556
inline
isl
::
multi_id
set_at
(
int
pos
,
isl
::
id
el) const;
2557
inline
isl
::
multi_id
set_at
(
int
pos
, const std::
string
&el) const;
2558
inline
isl
::
multi_id
set_id
(
int
pos
,
isl
::
id
el) const;
2559
inline
isl
::
multi_id
set_id
(
int
pos
, const std::
string
&el) const;
2560
inline class
size
size
() const;
2561
inline
isl
::
space
space
() const;
2562
inline
isl
::
space
get_space
() const;
2563
};
2564
2565
// declarations for isl::multi_pw_aff
2566
inline
multi_pw_aff
manage
(
__isl_take
isl_multi_pw_aff
*
ptr
);
2567
inline
multi_pw_aff
manage_copy
(
__isl_keep
isl_multi_pw_aff
*
ptr
);
2568
2569
class
multi_pw_aff
{
2570
friend
inline
multi_pw_aff
manage
(
__isl_take
isl_multi_pw_aff
*
ptr
);
2571
friend
inline
multi_pw_aff
manage_copy
(
__isl_keep
isl_multi_pw_aff
*
ptr
);
2572
2573
protected
:
2574
isl_multi_pw_aff
*
ptr
=
nullptr
;
2575
2576
inline
explicit
multi_pw_aff
(
__isl_take
isl_multi_pw_aff
*
ptr
);
2577
2578
public
:
2579
inline
/* implicit */
multi_pw_aff
();
2580
inline
/* implicit */
multi_pw_aff
(
const
multi_pw_aff
&
obj
);
2581
inline
/* implicit */
multi_pw_aff
(
isl::aff
aff
);
2582
inline
/* implicit */
multi_pw_aff
(
isl::multi_aff
ma
);
2583
inline
/* implicit */
multi_pw_aff
(
isl::pw_aff
pa
);
2584
inline
explicit
multi_pw_aff
(
isl::space
space
,
isl::pw_aff_list
list
);
2585
inline
/* implicit */
multi_pw_aff
(
isl::pw_multi_aff
pma
);
2586
inline
explicit
multi_pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
2587
inline
multi_pw_aff
&
operator=
(
multi_pw_aff
obj
);
2588
inline
~multi_pw_aff
();
2589
inline
__isl_give
isl_multi_pw_aff
*
copy
() const &;
2590
inline
__isl_give
isl_multi_pw_aff
*
copy
() && = delete;
2591
inline
__isl_keep
isl_multi_pw_aff
*
get
() const;
2592
inline
__isl_give
isl_multi_pw_aff
*
release
();
2593
inline
bool
is_null
() const;
2594
inline
isl
::
ctx
ctx
() const;
2595
2596
inline
isl
::
multi_pw_aff
add
(
isl
::
multi_pw_aff
multi2) const;
2597
inline
isl
::
multi_union_pw_aff
add
(const
isl
::
multi_union_pw_aff
&multi2) const;
2598
inline
isl
::
multi_pw_aff
add
(const
isl
::
aff
&multi2) const;
2599
inline
isl
::
multi_pw_aff
add
(const
isl
::
multi_aff
&multi2) const;
2600
inline
isl
::
multi_pw_aff
add
(const
isl
::
pw_aff
&multi2) const;
2601
inline
isl
::
multi_pw_aff
add
(const
isl
::
pw_multi_aff
&multi2) const;
2602
inline
isl
::
multi_pw_aff
add_constant
(
isl
::
multi_val
mv) const;
2603
inline
isl
::
multi_pw_aff
add_constant
(
isl
::
val
v) const;
2604
inline
isl
::
multi_pw_aff
add_constant
(
long
v) const;
2605
inline
isl
::
map
as_map
() const;
2606
inline
isl
::
multi_aff
as_multi_aff
() const;
2607
inline
isl
::
set
as_set
() const;
2608
inline
isl
::
pw_aff
at
(
int
pos
) const;
2609
inline
isl
::
pw_aff
get_at
(
int
pos
) const;
2610
inline
isl
::
set
bind
(
isl
::
multi_id
tuple
) const;
2611
inline
isl
::
multi_pw_aff
bind_domain
(
isl
::
multi_id
tuple
) const;
2612
inline
isl
::
multi_pw_aff
bind_domain_wrapped_domain
(
isl
::
multi_id
tuple
) const;
2613
inline
isl
::
multi_pw_aff
coalesce
() const;
2614
inline class
size
dim
(
isl
::
dim
type
) const;
2615
inline
isl
::
set
domain
() const;
2616
inline
isl
::
multi_pw_aff
flat_range_product
(
isl
::
multi_pw_aff
multi2) const;
2617
inline
isl
::
multi_union_pw_aff
flat_range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
2618
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
aff
&multi2) const;
2619
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
multi_aff
&multi2) const;
2620
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
pw_aff
&multi2) const;
2621
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
pw_multi_aff
&multi2) const;
2622
inline
isl
::
multi_pw_aff
gist
(
isl
::
set
set
) const;
2623
inline
isl
::
multi_union_pw_aff
gist
(const
isl
::
union_set
&
context
) const;
2624
inline
isl
::
multi_pw_aff
gist
(const
isl
::
basic_set
&
set
) const;
2625
inline
isl
::
multi_pw_aff
gist
(const
isl
::
point
&
set
) const;
2626
inline
boolean
has_range_tuple_id
() const;
2627
static inline
isl
::
multi_pw_aff
identity
(
isl
::
space
space
);
2628
inline
isl
::
multi_pw_aff
identity
() const;
2629
static inline
isl
::
multi_pw_aff
identity_on_domain
(
isl
::
space
space
);
2630
inline
isl
::
multi_pw_aff
insert_domain
(
isl
::
space
domain
) const;
2631
inline
isl
::
multi_pw_aff
intersect_domain
(
isl
::
set
domain
) const;
2632
inline
isl
::
multi_union_pw_aff
intersect_domain
(const
isl
::
union_set
&uset) const;
2633
inline
isl
::
multi_pw_aff
intersect_domain
(const
isl
::
basic_set
&
domain
) const;
2634
inline
isl
::
multi_pw_aff
intersect_domain
(const
isl
::
point
&
domain
) const;
2635
inline
isl
::
multi_pw_aff
intersect_params
(
isl
::
set
set
) const;
2636
inline
boolean
involves_nan
() const;
2637
inline
boolean
involves_param
(const
isl
::
id
&
id
) const;
2638
inline
boolean
involves_param
(const std::
string
&
id
) const;
2639
inline
boolean
involves_param
(const
isl
::
id_list
&
list
) const;
2640
inline
boolean
isa_multi_aff
() const;
2641
inline
isl
::
pw_aff_list
list
() const;
2642
inline
isl
::
pw_aff_list
get_list
() const;
2643
inline
isl
::
multi_pw_aff
max
(
isl
::
multi_pw_aff
multi2) const;
2644
inline
isl
::
multi_val
max_multi_val
() const;
2645
inline
isl
::
multi_pw_aff
min
(
isl
::
multi_pw_aff
multi2) const;
2646
inline
isl
::
multi_val
min_multi_val
() const;
2647
inline
isl
::
multi_pw_aff
neg
() const;
2648
inline
boolean
plain_is_equal
(const
isl
::
multi_pw_aff
&multi2) const;
2649
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
2650
inline
boolean
plain_is_equal
(const
isl
::
aff
&multi2) const;
2651
inline
boolean
plain_is_equal
(const
isl
::
multi_aff
&multi2) const;
2652
inline
boolean
plain_is_equal
(const
isl
::
pw_aff
&multi2) const;
2653
inline
boolean
plain_is_equal
(const
isl
::
pw_multi_aff
&multi2) const;
2654
inline
isl
::
multi_pw_aff
product
(
isl
::
multi_pw_aff
multi2) const;
2655
inline
isl
::
multi_pw_aff
pullback
(
isl
::
multi_aff
ma
) const;
2656
inline
isl
::
multi_pw_aff
pullback
(
isl
::
multi_pw_aff
mpa2) const;
2657
inline
isl
::
multi_pw_aff
pullback
(
isl
::
pw_multi_aff
pma
) const;
2658
inline
isl
::
multi_union_pw_aff
pullback
(const
isl
::
union_pw_multi_aff
&upma) const;
2659
inline
isl
::
multi_pw_aff
range_product
(
isl
::
multi_pw_aff
multi2) const;
2660
inline
isl
::
multi_union_pw_aff
range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
2661
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
aff
&multi2) const;
2662
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
multi_aff
&multi2) const;
2663
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
pw_aff
&multi2) const;
2664
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
pw_multi_aff
&multi2) const;
2665
inline
isl
::
id
range_tuple_id
() const;
2666
inline
isl
::
id
get_range_tuple_id
() const;
2667
inline
isl
::
multi_pw_aff
reset_range_tuple_id
() const;
2668
inline
isl
::
multi_pw_aff
reset_tuple_id
(
isl
::
dim
type
) const;
2669
inline
isl
::
multi_pw_aff
scale
(
isl
::
multi_val
mv) const;
2670
inline
isl
::
multi_pw_aff
scale
(
isl
::
val
v) const;
2671
inline
isl
::
multi_pw_aff
scale
(
long
v) const;
2672
inline
isl
::
multi_pw_aff
scale_down
(
isl
::
multi_val
mv) const;
2673
inline
isl
::
multi_pw_aff
scale_down
(
isl
::
val
v) const;
2674
inline
isl
::
multi_pw_aff
scale_down
(
long
v) const;
2675
inline
isl
::
multi_pw_aff
set_at
(
int
pos
,
isl
::
pw_aff
el) const;
2676
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
2677
inline
isl
::
multi_pw_aff
set_pw_aff
(
int
pos
,
isl
::
pw_aff
el) const;
2678
inline
isl
::
multi_pw_aff
set_range_tuple
(
isl
::
id
id
) const;
2679
inline
isl
::
multi_pw_aff
set_range_tuple
(const std::
string
&
id
) const;
2680
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
2681
inline class
size
size
() const;
2682
inline
isl
::
space
space
() const;
2683
inline
isl
::
space
get_space
() const;
2684
inline
isl
::
multi_pw_aff
sub
(
isl
::
multi_pw_aff
multi2) const;
2685
inline
isl
::
multi_union_pw_aff
sub
(const
isl
::
multi_union_pw_aff
&multi2) const;
2686
inline
isl
::
multi_pw_aff
sub
(const
isl
::
aff
&multi2) const;
2687
inline
isl
::
multi_pw_aff
sub
(const
isl
::
multi_aff
&multi2) const;
2688
inline
isl
::
multi_pw_aff
sub
(const
isl
::
pw_aff
&multi2) const;
2689
inline
isl
::
multi_pw_aff
sub
(const
isl
::
pw_multi_aff
&multi2) const;
2690
inline
isl
::
multi_pw_aff
unbind_params_insert_domain
(
isl
::
multi_id
domain
) const;
2691
inline
isl
::
multi_pw_aff
union_add
(
isl
::
multi_pw_aff
mpa2) const;
2692
inline
isl
::
multi_union_pw_aff
union_add
(const
isl
::
multi_union_pw_aff
&mupa2) const;
2693
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
aff
&mpa2) const;
2694
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
multi_aff
&mpa2) const;
2695
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
pw_aff
&mpa2) const;
2696
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
pw_multi_aff
&mpa2) const;
2697
static inline
isl
::
multi_pw_aff
zero
(
isl
::
space
space
);
2698
};
2699
2700
// declarations for isl::multi_union_pw_aff
2701
inline
multi_union_pw_aff
manage
(
__isl_take
isl_multi_union_pw_aff
*
ptr
);
2702
inline
multi_union_pw_aff
manage_copy
(
__isl_keep
isl_multi_union_pw_aff
*
ptr
);
2703
2704
class
multi_union_pw_aff
{
2705
friend
inline
multi_union_pw_aff
manage
(
__isl_take
isl_multi_union_pw_aff
*
ptr
);
2706
friend
inline
multi_union_pw_aff
manage_copy
(
__isl_keep
isl_multi_union_pw_aff
*
ptr
);
2707
2708
protected
:
2709
isl_multi_union_pw_aff
*
ptr
=
nullptr
;
2710
2711
inline
explicit
multi_union_pw_aff
(
__isl_take
isl_multi_union_pw_aff
*
ptr
);
2712
2713
public
:
2714
inline
/* implicit */
multi_union_pw_aff
();
2715
inline
/* implicit */
multi_union_pw_aff
(
const
multi_union_pw_aff
&
obj
);
2716
inline
/* implicit */
multi_union_pw_aff
(
isl::multi_pw_aff
mpa);
2717
inline
/* implicit */
multi_union_pw_aff
(
isl::union_pw_aff
upa);
2718
inline
explicit
multi_union_pw_aff
(
isl::space
space
,
isl::union_pw_aff_list
list
);
2719
inline
explicit
multi_union_pw_aff
(
isl::union_pw_multi_aff
upma);
2720
inline
explicit
multi_union_pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
2721
inline
multi_union_pw_aff
&
operator=
(
multi_union_pw_aff
obj
);
2722
inline
~multi_union_pw_aff
();
2723
inline
__isl_give
isl_multi_union_pw_aff
*
copy
() const &;
2724
inline
__isl_give
isl_multi_union_pw_aff
*
copy
() && = delete;
2725
inline
__isl_keep
isl_multi_union_pw_aff
*
get
() const;
2726
inline
__isl_give
isl_multi_union_pw_aff
*
release
();
2727
inline
bool
is_null
() const;
2728
inline
isl
::
ctx
ctx
() const;
2729
2730
inline
isl
::
multi_union_pw_aff
add
(
isl
::
multi_union_pw_aff
multi2) const;
2731
inline
isl
::
union_pw_aff
at
(
int
pos
) const;
2732
inline
isl
::
union_pw_aff
get_at
(
int
pos
) const;
2733
inline
isl
::
union_set
bind
(
isl
::
multi_id
tuple
) const;
2734
inline
isl
::
multi_union_pw_aff
coalesce
() const;
2735
inline class
size
dim
(
isl
::
dim
type
) const;
2736
inline
isl
::
union_set
domain
() const;
2737
inline
isl
::
multi_union_pw_aff
flat_range_product
(
isl
::
multi_union_pw_aff
multi2) const;
2738
static inline
isl
::
multi_union_pw_aff
from_union_map
(
isl
::
union_map
umap);
2739
inline
isl
::
multi_union_pw_aff
gist
(
isl
::
union_set
context
) const;
2740
inline
boolean
has_range_tuple_id
() const;
2741
inline
isl
::
multi_union_pw_aff
intersect_domain
(
isl
::
union_set
uset) const;
2742
inline
isl
::
multi_union_pw_aff
intersect_params
(
isl
::
set
params
) const;
2743
inline
boolean
involves_nan
() const;
2744
inline
isl
::
union_pw_aff_list
list
() const;
2745
inline
isl
::
union_pw_aff_list
get_list
() const;
2746
inline
isl
::
multi_union_pw_aff
neg
() const;
2747
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
2748
inline
isl
::
multi_union_pw_aff
pullback
(
isl
::
union_pw_multi_aff
upma) const;
2749
inline
isl
::
multi_union_pw_aff
range_product
(
isl
::
multi_union_pw_aff
multi2) const;
2750
inline
isl
::
id
range_tuple_id
() const;
2751
inline
isl
::
id
get_range_tuple_id
() const;
2752
inline
isl
::
multi_union_pw_aff
reset_range_tuple_id
() const;
2753
inline
isl
::
multi_union_pw_aff
reset_tuple_id
(
isl
::
dim
type
) const;
2754
inline
isl
::
multi_union_pw_aff
scale
(
isl
::
multi_val
mv) const;
2755
inline
isl
::
multi_union_pw_aff
scale
(
isl
::
val
v) const;
2756
inline
isl
::
multi_union_pw_aff
scale
(
long
v) const;
2757
inline
isl
::
multi_union_pw_aff
scale_down
(
isl
::
multi_val
mv) const;
2758
inline
isl
::
multi_union_pw_aff
scale_down
(
isl
::
val
v) const;
2759
inline
isl
::
multi_union_pw_aff
scale_down
(
long
v) const;
2760
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
,
isl
::
union_pw_aff
el) const;
2761
inline
isl
::
multi_union_pw_aff
set_range_tuple
(
isl
::
id
id
) const;
2762
inline
isl
::
multi_union_pw_aff
set_range_tuple
(const std::
string
&
id
) const;
2763
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
,
isl
::
union_pw_aff
el) const;
2764
inline class
size
size
() const;
2765
inline
isl
::
space
space
() const;
2766
inline
isl
::
space
get_space
() const;
2767
inline
isl
::
multi_union_pw_aff
sub
(
isl
::
multi_union_pw_aff
multi2) const;
2768
inline
isl
::
multi_union_pw_aff
union_add
(
isl
::
multi_union_pw_aff
mupa2) const;
2769
static inline
isl
::
multi_union_pw_aff
zero
(
isl
::
space
space
);
2770
};
2771
2772
// declarations for isl::multi_val
2773
inline
multi_val
manage
(
__isl_take
isl_multi_val
*
ptr
);
2774
inline
multi_val
manage_copy
(
__isl_keep
isl_multi_val
*
ptr
);
2775
2776
class
multi_val
{
2777
friend
inline
multi_val
manage
(
__isl_take
isl_multi_val
*
ptr
);
2778
friend
inline
multi_val
manage_copy
(
__isl_keep
isl_multi_val
*
ptr
);
2779
2780
protected
:
2781
isl_multi_val
*
ptr
=
nullptr
;
2782
2783
inline
explicit
multi_val
(
__isl_take
isl_multi_val
*
ptr
);
2784
2785
public
:
2786
inline
/* implicit */
multi_val
();
2787
inline
/* implicit */
multi_val
(
const
multi_val
&
obj
);
2788
inline
explicit
multi_val
(
isl::space
space
,
isl::val_list
list
);
2789
inline
explicit
multi_val
(
isl::ctx
ctx
,
const
std::string &
str
);
2790
inline
multi_val
&
operator=
(
multi_val
obj
);
2791
inline
~multi_val
();
2792
inline
__isl_give
isl_multi_val
*
copy
() const &;
2793
inline
__isl_give
isl_multi_val
*
copy
() && = delete;
2794
inline
__isl_keep
isl_multi_val
*
get
() const;
2795
inline
__isl_give
isl_multi_val
*
release
();
2796
inline
bool
is_null
() const;
2797
inline
isl
::
ctx
ctx
() const;
2798
2799
inline
isl
::
multi_val
add
(
isl
::
multi_val
multi2) const;
2800
inline
isl
::
multi_val
add
(
isl
::
val
v) const;
2801
inline
isl
::
multi_val
add
(
long
v) const;
2802
inline
isl
::
val
at
(
int
pos
) const;
2803
inline
isl
::
val
get_at
(
int
pos
) const;
2804
inline class
size
dim
(
isl
::
dim
type
) const;
2805
inline
isl
::
multi_val
flat_range_product
(
isl
::
multi_val
multi2) const;
2806
inline
boolean
has_range_tuple_id
() const;
2807
inline
boolean
involves_nan
() const;
2808
inline
isl
::
val_list
list
() const;
2809
inline
isl
::
val_list
get_list
() const;
2810
inline
isl
::
multi_val
max
(
isl
::
multi_val
multi2) const;
2811
inline
isl
::
multi_val
min
(
isl
::
multi_val
multi2) const;
2812
inline
isl
::
multi_val
neg
() const;
2813
inline
boolean
plain_is_equal
(const
isl
::
multi_val
&multi2) const;
2814
inline
isl
::
multi_val
product
(
isl
::
multi_val
multi2) const;
2815
inline
isl
::
multi_val
range_product
(
isl
::
multi_val
multi2) const;
2816
inline
isl
::
id
range_tuple_id
() const;
2817
inline
isl
::
id
get_range_tuple_id
() const;
2818
inline
isl
::
multi_val
reset_range_tuple_id
() const;
2819
inline
isl
::
multi_val
reset_tuple_id
(
isl
::
dim
type
) const;
2820
inline
isl
::
multi_val
scale
(
isl
::
multi_val
mv) const;
2821
inline
isl
::
multi_val
scale
(
isl
::
val
v) const;
2822
inline
isl
::
multi_val
scale
(
long
v) const;
2823
inline
isl
::
multi_val
scale_down
(
isl
::
multi_val
mv) const;
2824
inline
isl
::
multi_val
scale_down
(
isl
::
val
v) const;
2825
inline
isl
::
multi_val
scale_down
(
long
v) const;
2826
inline
isl
::
multi_val
set_at
(
int
pos
,
isl
::
val
el) const;
2827
inline
isl
::
multi_val
set_at
(
int
pos
,
long
el) const;
2828
inline
isl
::
multi_val
set_range_tuple
(
isl
::
id
id
) const;
2829
inline
isl
::
multi_val
set_range_tuple
(const std::
string
&
id
) const;
2830
inline
isl
::
multi_val
set_val
(
int
pos
,
isl
::
val
el) const;
2831
inline
isl
::
multi_val
set_val
(
int
pos
,
long
el) const;
2832
inline class
size
size
() const;
2833
inline
isl
::
space
space
() const;
2834
inline
isl
::
space
get_space
() const;
2835
inline
isl
::
multi_val
sub
(
isl
::
multi_val
multi2) const;
2836
static inline
isl
::
multi_val
zero
(
isl
::
space
space
);
2837
};
2838
2839
// declarations for isl::point
2840
inline
point
manage
(
__isl_take
isl_point
*
ptr
);
2841
inline
point
manage_copy
(
__isl_keep
isl_point
*
ptr
);
2842
2843
class
point
{
2844
friend
inline
point
manage
(
__isl_take
isl_point
*
ptr
);
2845
friend
inline
point
manage_copy
(
__isl_keep
isl_point
*
ptr
);
2846
2847
protected
:
2848
isl_point
*
ptr
=
nullptr
;
2849
2850
inline
explicit
point
(
__isl_take
isl_point
*
ptr
);
2851
2852
public
:
2853
inline
/* implicit */
point
();
2854
inline
/* implicit */
point
(
const
point
&
obj
);
2855
inline
explicit
point
(
isl::space
space
);
2856
inline
point
&
operator=
(
point
obj
);
2857
inline
~point
();
2858
inline
__isl_give
isl_point
*
copy
() const &;
2859
inline
__isl_give
isl_point
*
copy
() && = delete;
2860
inline
__isl_keep
isl_point
*
get
() const;
2861
inline
__isl_give
isl_point
*
release
();
2862
inline
bool
is_null
() const;
2863
inline
isl
::
ctx
ctx
() const;
2864
2865
inline
isl
::
set
add_constraint
(const
isl
::
constraint
&
constraint
) const;
2866
inline
isl
::
set
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
2867
inline
isl
::
basic_set
affine_hull
() const;
2868
inline
isl
::
set
align_params
(const
isl
::
space
&model) const;
2869
inline
isl
::
basic_set
apply
(const
isl
::
basic_map
&bmap) const;
2870
inline
isl
::
set
apply
(const
isl
::
map
&
map
) const;
2871
inline
isl
::
union_set
apply
(const
isl
::
union_map
&umap) const;
2872
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
2873
inline
isl
::
set
as_set
() const;
2874
inline
isl
::
basic_set_list
basic_set_list
() const;
2875
inline
isl
::
set
bind
(const
isl
::
multi_id
&
tuple
) const;
2876
inline
isl
::
set
coalesce
() const;
2877
inline
isl
::
set
complement
() const;
2878
inline
isl
::
union_set
compute_divs
() const;
2879
inline
boolean
contains
(const
isl
::
space
&
space
) const;
2880
inline
isl
::
basic_set
convex_hull
() const;
2881
inline
isl
::
val
coordinate_val
(
isl
::
dim
type
,
int
pos
) const;
2882
inline
isl
::
val
get_coordinate_val
(
isl
::
dim
type
,
int
pos
) const;
2883
inline
isl
::
basic_set
detect_equalities
() const;
2884
inline class
size
dim
(
isl
::
dim
type
) const;
2885
inline
boolean
dim_has_any_lower_bound
(
isl
::
dim
type
,
unsigned
int
pos
) const;
2886
inline
isl
::
id
dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
2887
inline
isl
::
pw_aff
dim_max
(
int
pos
) const;
2888
inline
isl
::
val
dim_max_val
(
int
pos
) const;
2889
inline
isl
::
pw_aff
dim_min
(
int
pos
) const;
2890
inline
isl
::
val
dim_min_val
(
int
pos
) const;
2891
inline std::
string
dim_name
(
isl
::
dim
type
,
unsigned
int
pos
) const;
2892
inline
isl
::
aff
div
(
int
pos
) const;
2893
inline
isl
::
set
drop_constraints_involving_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2894
inline
isl
::
set
eliminate
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2895
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
set
)> &
test
) const;
2896
inline
isl
::
set
extract_set
(const
isl
::
space
&
space
) const;
2897
inline
int
find_dim_by_id
(
isl
::
dim
type
, const
isl
::
id
&
id
) const;
2898
inline
int
find_dim_by_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
2899
inline
isl
::
basic_set
fix_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
2900
inline
isl
::
basic_set
fix_val
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
val
&v) const;
2901
inline
isl
::
basic_set
fix_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
v) const;
2902
inline
isl
::
basic_set
flatten
() const;
2903
inline
stat
foreach_basic_set
(const std::function<
stat
(
isl
::
basic_set
)> &
fn
) const;
2904
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
point
)> &
fn
) const;
2905
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
set
)> &
fn
) const;
2906
inline
isl
::
basic_set
gist
(const
isl
::
basic_set
&
context
) const;
2907
inline
isl
::
set
gist
(const
isl
::
set
&
context
) const;
2908
inline
isl
::
union_set
gist
(const
isl
::
union_set
&
context
) const;
2909
inline
isl
::
set
gist_params
(const
isl
::
set
&
context
) const;
2910
inline
boolean
has_equal_space
(const
isl
::
set
&
set2
) const;
2911
inline
isl
::
map
identity
() const;
2912
inline
isl
::
union_pw_multi_aff
identity_union_pw_multi_aff
() const;
2913
inline
isl
::
pw_aff
indicator_function
() const;
2914
inline
isl
::
set
insert_dims
(
isl
::
dim
type
,
unsigned
int
pos
,
unsigned
int
n
) const;
2915
inline
isl
::
map
insert_domain
(const
isl
::
space
&
domain
) const;
2916
inline
isl
::
basic_set
intersect
(const
isl
::
basic_set
&bset2) const;
2917
inline
isl
::
set
intersect
(const
isl
::
set
&
set2
) const;
2918
inline
isl
::
union_set
intersect
(const
isl
::
union_set
&uset2) const;
2919
inline
isl
::
basic_set
intersect_params
(const
isl
::
basic_set
&bset2) const;
2920
inline
isl
::
set
intersect_params
(const
isl
::
set
&
params
) const;
2921
inline
boolean
involves_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2922
inline
boolean
involves_locals
() const;
2923
inline
boolean
is_bounded
() const;
2924
inline
boolean
is_disjoint
(const
isl
::
set
&
set2
) const;
2925
inline
boolean
is_disjoint
(const
isl
::
union_set
&uset2) const;
2926
inline
boolean
is_empty
() const;
2927
inline
boolean
is_equal
(const
isl
::
basic_set
&bset2) const;
2928
inline
boolean
is_equal
(const
isl
::
set
&
set2
) const;
2929
inline
boolean
is_equal
(const
isl
::
union_set
&uset2) const;
2930
inline
boolean
is_params
() const;
2931
inline
boolean
is_singleton
() const;
2932
inline
boolean
is_strict_subset
(const
isl
::
set
&
set2
) const;
2933
inline
boolean
is_strict_subset
(const
isl
::
union_set
&uset2) const;
2934
inline
boolean
is_subset
(const
isl
::
basic_set
&bset2) const;
2935
inline
boolean
is_subset
(const
isl
::
set
&
set2
) const;
2936
inline
boolean
is_subset
(const
isl
::
union_set
&uset2) const;
2937
inline
boolean
is_wrapping
() const;
2938
inline
boolean
isa_set
() const;
2939
inline
isl
::
set
lexmax
() const;
2940
inline
isl
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
2941
inline
isl
::
set
lexmin
() const;
2942
inline
isl
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
2943
inline
isl
::
set
lower_bound
(const
isl
::
multi_pw_aff
&lower) const;
2944
inline
isl
::
set
lower_bound
(const
isl
::
multi_val
&lower) const;
2945
inline
isl
::
set
lower_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
2946
inline
isl
::
set
lower_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
val
&value) const;
2947
inline
isl
::
set
lower_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
value) const;
2948
inline
isl
::
multi_pw_aff
max_multi_pw_aff
() const;
2949
inline
isl
::
val
max_val
(const
isl
::
aff
&
obj
) const;
2950
inline
isl
::
multi_pw_aff
min_multi_pw_aff
() const;
2951
inline
isl
::
val
min_val
(const
isl
::
aff
&
obj
) const;
2952
inline
isl
::
multi_val
multi_val
() const;
2953
inline
isl
::
multi_val
get_multi_val
() const;
2954
inline class
size
n_basic_set
() const;
2955
inline
isl
::
basic_set
params
() const;
2956
inline
isl
::
val
plain_get_val_if_fixed
(
isl
::
dim
type
,
unsigned
int
pos
) const;
2957
inline
isl
::
multi_val
plain_multi_val_if_fixed
() const;
2958
inline
isl
::
basic_set
polyhedral_hull
() const;
2959
inline
isl
::
set
preimage
(const
isl
::
multi_aff
&
ma
) const;
2960
inline
isl
::
set
preimage
(const
isl
::
multi_pw_aff
&mpa) const;
2961
inline
isl
::
set
preimage
(const
isl
::
pw_multi_aff
&
pma
) const;
2962
inline
isl
::
union_set
preimage
(const
isl
::
union_pw_multi_aff
&upma) const;
2963
inline
isl
::
set
product
(const
isl
::
set
&
set2
) const;
2964
inline
isl
::
basic_set
project_out
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2965
inline
isl
::
set
project_out_all_params
() const;
2966
inline
isl
::
set
project_out_param
(const
isl
::
id
&
id
) const;
2967
inline
isl
::
set
project_out_param
(const std::
string
&
id
) const;
2968
inline
isl
::
set
project_out_param
(const
isl
::
id_list
&list) const;
2969
inline
isl
::
pw_multi_aff
pw_multi_aff_on_domain
(const
isl
::
multi_val
&mv) const;
2970
inline
isl
::
set
remove_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
2971
inline
isl
::
set
remove_divs
() const;
2972
inline
isl
::
set
remove_redundancies
() const;
2973
inline
isl
::
set
reset_tuple_id
() const;
2974
inline
isl
::
basic_set
sample
() const;
2975
inline
isl
::
point
sample_point
() const;
2976
inline
isl
::
set
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
id
&
id
) const;
2977
inline
isl
::
set
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
, const std::
string
&
id
) const;
2978
inline
isl
::
set_list
set_list
() const;
2979
inline
isl
::
set
set_tuple_id
(const
isl
::
id
&
id
) const;
2980
inline
isl
::
set
set_tuple_id
(const std::
string
&
id
) const;
2981
inline
isl
::
fixed_box
simple_fixed_box_hull
() const;
2982
inline
isl
::
basic_set
simple_hull
() const;
2983
inline
isl
::
space
space
() const;
2984
inline
isl
::
val
stride
(
int
pos
) const;
2985
inline
isl
::
set
subtract
(const
isl
::
set
&
set2
) const;
2986
inline
isl
::
union_set
subtract
(const
isl
::
union_set
&uset2) const;
2987
inline
isl
::
basic_set_list
to_list
() const;
2988
inline
isl
::
set
to_set
() const;
2989
inline
isl
::
union_set
to_union_set
() const;
2990
inline
isl
::
map
translation
() const;
2991
inline class
size
tuple_dim
() const;
2992
inline
isl
::
id
tuple_id
() const;
2993
inline std::
string
tuple_name
() const;
2994
inline
isl
::
set
unbind_params
(const
isl
::
multi_id
&
tuple
) const;
2995
inline
isl
::
map
unbind_params_insert_domain
(const
isl
::
multi_id
&
domain
) const;
2996
inline
isl
::
set
unite
(const
isl
::
basic_set
&bset2) const;
2997
inline
isl
::
set
unite
(const
isl
::
set
&
set2
) const;
2998
inline
isl
::
union_set
unite
(const
isl
::
union_set
&uset2) const;
2999
inline
isl
::
basic_set
unshifted_simple_hull
() const;
3000
inline
isl
::
map
unwrap
() const;
3001
inline
isl
::
set
upper_bound
(const
isl
::
multi_pw_aff
&upper) const;
3002
inline
isl
::
set
upper_bound
(const
isl
::
multi_val
&upper) const;
3003
inline
isl
::
set
upper_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
, const
isl
::
val
&value) const;
3004
inline
isl
::
set
upper_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
value) const;
3005
};
3006
3007
// declarations for isl::pw_aff
3008
inline
pw_aff
manage
(
__isl_take
isl_pw_aff
*
ptr
);
3009
inline
pw_aff
manage_copy
(
__isl_keep
isl_pw_aff
*
ptr
);
3010
3011
class
pw_aff
{
3012
friend
inline
pw_aff
manage
(
__isl_take
isl_pw_aff
*
ptr
);
3013
friend
inline
pw_aff
manage_copy
(
__isl_keep
isl_pw_aff
*
ptr
);
3014
3015
protected
:
3016
isl_pw_aff
*
ptr
=
nullptr
;
3017
3018
inline
explicit
pw_aff
(
__isl_take
isl_pw_aff
*
ptr
);
3019
3020
public
:
3021
inline
/* implicit */
pw_aff
();
3022
inline
/* implicit */
pw_aff
(
const
pw_aff
&
obj
);
3023
inline
/* implicit */
pw_aff
(
isl::aff
aff
);
3024
inline
explicit
pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
3025
inline
explicit
pw_aff
(
isl::set
domain
,
isl::val
v);
3026
inline
explicit
pw_aff
(
isl::local_space
ls);
3027
inline
pw_aff
&
operator=
(
pw_aff
obj
);
3028
inline
~pw_aff
();
3029
inline
__isl_give
isl_pw_aff
*
copy
() const &;
3030
inline
__isl_give
isl_pw_aff
*
copy
() && = delete;
3031
inline
__isl_keep
isl_pw_aff
*
get
() const;
3032
inline
__isl_give
isl_pw_aff
*
release
();
3033
inline
bool
is_null
() const;
3034
inline
isl
::
ctx
ctx
() const;
3035
3036
inline
isl
::
multi_pw_aff
add
(const
isl
::
multi_pw_aff
&multi2) const;
3037
inline
isl
::
multi_union_pw_aff
add
(const
isl
::
multi_union_pw_aff
&multi2) const;
3038
inline
isl
::
pw_aff
add
(
isl
::
pw_aff
pwaff2) const;
3039
inline
isl
::
pw_multi_aff
add
(const
isl
::
pw_multi_aff
&pma2) const;
3040
inline
isl
::
union_pw_aff
add
(const
isl
::
union_pw_aff
&upa2) const;
3041
inline
isl
::
union_pw_multi_aff
add
(const
isl
::
union_pw_multi_aff
&upma2) const;
3042
inline
isl
::
pw_aff
add
(const
isl
::
aff
&pwaff2) const;
3043
inline
isl
::
pw_aff
add_constant
(
isl
::
val
v) const;
3044
inline
isl
::
pw_aff
add_constant
(
long
v) const;
3045
inline
isl
::
pw_multi_aff
add_constant
(const
isl
::
multi_val
&mv) const;
3046
inline
isl
::
pw_aff
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
3047
inline
isl
::
union_pw_multi_aff
add_pw_multi_aff
(const
isl
::
pw_multi_aff
&
pma
) const;
3048
inline
isl
::
union_pw_multi_aff
apply
(const
isl
::
union_pw_multi_aff
&upma2) const;
3049
inline
isl
::
aff
as_aff
() const;
3050
inline
isl
::
map
as_map
() const;
3051
inline
isl
::
multi_aff
as_multi_aff
() const;
3052
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
3053
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
3054
inline
isl
::
set
as_set
() const;
3055
inline
isl
::
union_map
as_union_map
() const;
3056
inline
isl
::
pw_aff
at
(
int
pos
) const;
3057
inline
isl
::
set
bind
(const
isl
::
multi_id
&
tuple
) const;
3058
inline
isl
::
set
bind
(
isl
::
id
id
) const;
3059
inline
isl
::
set
bind
(const std::
string
&
id
) const;
3060
inline
isl
::
pw_aff
bind_domain
(
isl
::
multi_id
tuple
) const;
3061
inline
isl
::
pw_aff
bind_domain_wrapped_domain
(
isl
::
multi_id
tuple
) const;
3062
inline
isl
::
pw_aff
ceil
() const;
3063
inline
isl
::
pw_aff
coalesce
() const;
3064
inline
isl
::
pw_aff
cond
(
isl
::
pw_aff
pwaff_true,
isl
::
pw_aff
pwaff_false) const;
3065
inline class
size
dim
(
isl
::
dim
type
) const;
3066
inline
isl
::
id
dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3067
inline
isl
::
id
get_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3068
inline
isl
::
pw_aff
div
(
isl
::
pw_aff
pa2) const;
3069
inline
isl
::
set
domain
() const;
3070
inline
isl
::
space
domain_space
() const;
3071
inline
isl
::
space
get_domain_space
() const;
3072
inline
isl
::
pw_multi_aff
drop_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
3073
inline
isl
::
set
eq_set
(
isl
::
pw_aff
pwaff2) const;
3074
inline
isl
::
val
eval
(
isl
::
point
pnt) const;
3075
inline
isl
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
space
&
space
) const;
3076
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
multi_pw_aff
&multi2) const;
3077
inline
isl
::
multi_union_pw_aff
flat_range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
3078
inline
isl
::
pw_multi_aff
flat_range_product
(const
isl
::
pw_multi_aff
&pma2) const;
3079
inline
isl
::
union_pw_multi_aff
flat_range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
3080
inline
isl
::
pw_aff
floor
() const;
3081
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
set
,
isl
::
aff
)> &
fn
) const;
3082
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
set
,
isl
::
multi_aff
)> &
fn
) const;
3083
inline
stat
foreach_pw_aff
(const std::function<
stat
(
isl
::
pw_aff
)> &
fn
) const;
3084
inline
isl
::
set
ge_set
(
isl
::
pw_aff
pwaff2) const;
3085
inline
isl
::
pw_aff
gist
(
isl
::
set
context
) const;
3086
inline
isl
::
union_pw_aff
gist
(const
isl
::
union_set
&
context
) const;
3087
inline
isl
::
pw_aff
gist
(const
isl
::
basic_set
&
context
) const;
3088
inline
isl
::
pw_aff
gist
(const
isl
::
point
&
context
) const;
3089
inline
isl
::
set
gt_set
(
isl
::
pw_aff
pwaff2) const;
3090
inline
boolean
has_range_tuple_id
() const;
3091
inline
isl
::
multi_pw_aff
identity
() const;
3092
inline
isl
::
pw_aff
insert_domain
(
isl
::
space
domain
) const;
3093
inline
isl
::
pw_aff
intersect_domain
(
isl
::
set
set
) const;
3094
inline
isl
::
union_pw_aff
intersect_domain
(const
isl
::
space
&
space
) const;
3095
inline
isl
::
union_pw_aff
intersect_domain
(const
isl
::
union_set
&uset) const;
3096
inline
isl
::
pw_aff
intersect_domain
(const
isl
::
basic_set
&
set
) const;
3097
inline
isl
::
pw_aff
intersect_domain
(const
isl
::
point
&
set
) const;
3098
inline
isl
::
union_pw_aff
intersect_domain_wrapped_domain
(const
isl
::
union_set
&uset) const;
3099
inline
isl
::
union_pw_aff
intersect_domain_wrapped_range
(const
isl
::
union_set
&uset) const;
3100
inline
isl
::
pw_aff
intersect_params
(
isl
::
set
set
) const;
3101
inline
boolean
involves_locals
() const;
3102
inline
boolean
involves_nan
() const;
3103
inline
boolean
involves_param
(const
isl
::
id
&
id
) const;
3104
inline
boolean
involves_param
(const std::
string
&
id
) const;
3105
inline
boolean
involves_param
(const
isl
::
id_list
&
list
) const;
3106
inline
boolean
is_cst
() const;
3107
inline
boolean
is_equal
(const
isl
::
pw_aff
&pa2) const;
3108
inline
boolean
isa_aff
() const;
3109
inline
boolean
isa_multi_aff
() const;
3110
inline
boolean
isa_pw_multi_aff
() const;
3111
inline
isl
::
set
le_set
(
isl
::
pw_aff
pwaff2) const;
3112
inline
isl
::
pw_aff_list
list
() const;
3113
inline
isl
::
set
lt_set
(
isl
::
pw_aff
pwaff2) const;
3114
inline
isl
::
multi_pw_aff
max
(const
isl
::
multi_pw_aff
&multi2) const;
3115
inline
isl
::
pw_aff
max
(
isl
::
pw_aff
pwaff2) const;
3116
inline
isl
::
pw_aff
max
(const
isl
::
aff
&pwaff2) const;
3117
inline
isl
::
multi_val
max_multi_val
() const;
3118
inline
isl
::
multi_pw_aff
min
(const
isl
::
multi_pw_aff
&multi2) const;
3119
inline
isl
::
pw_aff
min
(
isl
::
pw_aff
pwaff2) const;
3120
inline
isl
::
pw_aff
min
(const
isl
::
aff
&pwaff2) const;
3121
inline
isl
::
multi_val
min_multi_val
() const;
3122
inline
isl
::
pw_aff
mod
(
isl
::
val
mod
) const;
3123
inline
isl
::
pw_aff
mod
(
long
mod
) const;
3124
inline
isl
::
pw_aff
mul
(
isl
::
pw_aff
pwaff2) const;
3125
inline class
size
n_piece
() const;
3126
inline
isl
::
set
ne_set
(
isl
::
pw_aff
pwaff2) const;
3127
inline
isl
::
pw_aff
neg
() const;
3128
static inline
isl
::
pw_aff
param_on_domain
(
isl
::
set
domain
,
isl
::
id
id
);
3129
inline
boolean
plain_is_empty
() const;
3130
inline
boolean
plain_is_equal
(const
isl
::
multi_pw_aff
&multi2) const;
3131
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
3132
inline
isl
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
pw_multi_aff
&pma2) const;
3133
inline
isl
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
union_pw_multi_aff
&upma2) const;
3134
inline
isl
::
multi_pw_aff
product
(const
isl
::
multi_pw_aff
&multi2) const;
3135
inline
isl
::
pw_multi_aff
product
(const
isl
::
pw_multi_aff
&pma2) const;
3136
inline
isl
::
pw_aff
pullback
(
isl
::
multi_aff
ma
) const;
3137
inline
isl
::
pw_aff
pullback
(
isl
::
multi_pw_aff
mpa) const;
3138
inline
isl
::
pw_aff
pullback
(
isl
::
pw_multi_aff
pma
) const;
3139
inline
isl
::
union_pw_aff
pullback
(const
isl
::
union_pw_multi_aff
&upma) const;
3140
inline
isl
::
pw_multi_aff_list
pw_multi_aff_list
() const;
3141
inline
isl
::
pw_multi_aff
range_factor_domain
() const;
3142
inline
isl
::
pw_multi_aff
range_factor_range
() const;
3143
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
multi_pw_aff
&multi2) const;
3144
inline
isl
::
multi_union_pw_aff
range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
3145
inline
isl
::
pw_multi_aff
range_product
(const
isl
::
pw_multi_aff
&pma2) const;
3146
inline
isl
::
union_pw_multi_aff
range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
3147
inline
isl
::
id
range_tuple_id
() const;
3148
inline
isl
::
multi_pw_aff
reset_range_tuple_id
() const;
3149
inline
isl
::
multi_pw_aff
reset_tuple_id
(
isl
::
dim
type
) const;
3150
inline
isl
::
multi_pw_aff
scale
(const
isl
::
multi_val
&mv) const;
3151
inline
isl
::
pw_aff
scale
(
isl
::
val
v) const;
3152
inline
isl
::
pw_aff
scale
(
long
v) const;
3153
inline
isl
::
multi_pw_aff
scale_down
(const
isl
::
multi_val
&mv) const;
3154
inline
isl
::
pw_aff
scale_down
(
isl
::
val
f
) const;
3155
inline
isl
::
pw_aff
scale_down
(
long
f
) const;
3156
inline
isl
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
pw_aff
&el) const;
3157
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
3158
inline
isl
::
multi_pw_aff
set_pw_aff
(
int
pos
, const
isl
::
pw_aff
&el) const;
3159
inline
isl
::
pw_multi_aff
set_pw_aff
(
unsigned
int
pos
, const
isl
::
pw_aff
&
pa
) const;
3160
inline
isl
::
pw_multi_aff
set_range_tuple
(const
isl
::
id
&
id
) const;
3161
inline
isl
::
pw_multi_aff
set_range_tuple
(const std::
string
&
id
) const;
3162
inline
isl
::
pw_aff
set_tuple_id
(
isl
::
dim
type
,
isl
::
id
id
) const;
3163
inline
isl
::
pw_aff
set_tuple_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
3164
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
3165
inline class
size
size
() const;
3166
inline
isl
::
space
space
() const;
3167
inline
isl
::
space
get_space
() const;
3168
inline
isl
::
multi_pw_aff
sub
(const
isl
::
multi_pw_aff
&multi2) const;
3169
inline
isl
::
multi_union_pw_aff
sub
(const
isl
::
multi_union_pw_aff
&multi2) const;
3170
inline
isl
::
pw_aff
sub
(
isl
::
pw_aff
pwaff2) const;
3171
inline
isl
::
pw_multi_aff
sub
(const
isl
::
pw_multi_aff
&pma2) const;
3172
inline
isl
::
union_pw_aff
sub
(const
isl
::
union_pw_aff
&upa2) const;
3173
inline
isl
::
union_pw_multi_aff
sub
(const
isl
::
union_pw_multi_aff
&upma2) const;
3174
inline
isl
::
pw_aff
sub
(const
isl
::
aff
&pwaff2) const;
3175
inline
isl
::
pw_aff
subtract_domain
(
isl
::
set
set
) const;
3176
inline
isl
::
union_pw_aff
subtract_domain
(const
isl
::
space
&
space
) const;
3177
inline
isl
::
union_pw_aff
subtract_domain
(const
isl
::
union_set
&uset) const;
3178
inline
isl
::
pw_aff
subtract_domain
(const
isl
::
basic_set
&
set
) const;
3179
inline
isl
::
pw_aff
subtract_domain
(const
isl
::
point
&
set
) const;
3180
inline
isl
::
pw_aff
tdiv_q
(
isl
::
pw_aff
pa2) const;
3181
inline
isl
::
pw_aff
tdiv_r
(
isl
::
pw_aff
pa2) const;
3182
inline
isl
::
pw_aff_list
to_list
() const;
3183
inline
isl
::
multi_pw_aff
to_multi_pw_aff
() const;
3184
inline
isl
::
union_pw_aff
to_union_pw_aff
() const;
3185
inline
isl
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
3186
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
3187
inline
isl
::
id
get_tuple_id
(
isl
::
dim
type
) const;
3188
inline
isl
::
multi_pw_aff
unbind_params_insert_domain
(const
isl
::
multi_id
&
domain
) const;
3189
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
multi_pw_aff
&mpa2) const;
3190
inline
isl
::
multi_union_pw_aff
union_add
(const
isl
::
multi_union_pw_aff
&mupa2) const;
3191
inline
isl
::
pw_aff
union_add
(
isl
::
pw_aff
pwaff2) const;
3192
inline
isl
::
pw_multi_aff
union_add
(const
isl
::
pw_multi_aff
&pma2) const;
3193
inline
isl
::
union_pw_aff
union_add
(const
isl
::
union_pw_aff
&upa2) const;
3194
inline
isl
::
union_pw_multi_aff
union_add
(const
isl
::
union_pw_multi_aff
&upma2) const;
3195
inline
isl
::
pw_aff
union_add
(const
isl
::
aff
&pwaff2) const;
3196
static inline
isl
::
pw_aff
var_on_domain
(
isl
::
local_space
ls,
isl
::
dim
type
,
unsigned
int
pos
);
3197
};
3198
3199
// declarations for isl::pw_aff_list
3200
inline
pw_aff_list
manage
(
__isl_take
isl_pw_aff_list *
ptr
);
3201
inline
pw_aff_list
manage_copy
(
__isl_keep
isl_pw_aff_list *
ptr
);
3202
3203
class
pw_aff_list
{
3204
friend
inline
pw_aff_list
manage
(
__isl_take
isl_pw_aff_list *
ptr
);
3205
friend
inline
pw_aff_list
manage_copy
(
__isl_keep
isl_pw_aff_list *
ptr
);
3206
3207
protected
:
3208
isl_pw_aff_list *
ptr
=
nullptr
;
3209
3210
inline
explicit
pw_aff_list
(
__isl_take
isl_pw_aff_list *
ptr
);
3211
3212
public
:
3213
inline
/* implicit */
pw_aff_list
();
3214
inline
/* implicit */
pw_aff_list
(
const
pw_aff_list
&
obj
);
3215
inline
explicit
pw_aff_list
(
isl::ctx
ctx
,
int
n
);
3216
inline
explicit
pw_aff_list
(
isl::pw_aff
el);
3217
inline
explicit
pw_aff_list
(
isl::ctx
ctx
,
const
std::string &
str
);
3218
inline
pw_aff_list
&
operator=
(
pw_aff_list
obj
);
3219
inline
~pw_aff_list
();
3220
inline
__isl_give
isl_pw_aff_list *
copy
() const &;
3221
inline
__isl_give
isl_pw_aff_list *
copy
() && = delete;
3222
inline
__isl_keep
isl_pw_aff_list *
get
() const;
3223
inline
__isl_give
isl_pw_aff_list *
release
();
3224
inline
bool
is_null
() const;
3225
inline
isl
::
ctx
ctx
() const;
3226
3227
inline
isl
::
pw_aff_list
add
(
isl
::
pw_aff
el) const;
3228
inline
isl
::
pw_aff
at
(
int
index) const;
3229
inline
isl
::
pw_aff
get_at
(
int
index) const;
3230
inline
isl
::
pw_aff_list
clear
() const;
3231
inline
isl
::
pw_aff_list
concat
(
isl
::
pw_aff_list
list2) const;
3232
inline
isl
::
pw_aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
3233
inline
stat
foreach
(const std::function<
stat
(
isl
::
pw_aff
)> &
fn
) const;
3234
inline
isl
::
pw_aff_list
insert
(
unsigned
int
pos
,
isl
::
pw_aff
el) const;
3235
inline class
size
size
() const;
3236
};
3237
3238
// declarations for isl::pw_multi_aff
3239
inline
pw_multi_aff
manage
(
__isl_take
isl_pw_multi_aff
*
ptr
);
3240
inline
pw_multi_aff
manage_copy
(
__isl_keep
isl_pw_multi_aff
*
ptr
);
3241
3242
class
pw_multi_aff
{
3243
friend
inline
pw_multi_aff
manage
(
__isl_take
isl_pw_multi_aff
*
ptr
);
3244
friend
inline
pw_multi_aff
manage_copy
(
__isl_keep
isl_pw_multi_aff
*
ptr
);
3245
3246
protected
:
3247
isl_pw_multi_aff
*
ptr
=
nullptr
;
3248
3249
inline
explicit
pw_multi_aff
(
__isl_take
isl_pw_multi_aff
*
ptr
);
3250
3251
public
:
3252
inline
/* implicit */
pw_multi_aff
();
3253
inline
/* implicit */
pw_multi_aff
(
const
pw_multi_aff
&
obj
);
3254
inline
/* implicit */
pw_multi_aff
(
isl::multi_aff
ma
);
3255
inline
/* implicit */
pw_multi_aff
(
isl::pw_aff
pa
);
3256
inline
explicit
pw_multi_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
3257
inline
pw_multi_aff
&
operator=
(
pw_multi_aff
obj
);
3258
inline
~pw_multi_aff
();
3259
inline
__isl_give
isl_pw_multi_aff
*
copy
() const &;
3260
inline
__isl_give
isl_pw_multi_aff
*
copy
() && = delete;
3261
inline
__isl_keep
isl_pw_multi_aff
*
get
() const;
3262
inline
__isl_give
isl_pw_multi_aff
*
release
();
3263
inline
bool
is_null
() const;
3264
inline
isl
::
ctx
ctx
() const;
3265
3266
inline
isl
::
multi_pw_aff
add
(const
isl
::
multi_pw_aff
&multi2) const;
3267
inline
isl
::
multi_union_pw_aff
add
(const
isl
::
multi_union_pw_aff
&multi2) const;
3268
inline
isl
::
pw_multi_aff
add
(
isl
::
pw_multi_aff
pma2) const;
3269
inline
isl
::
union_pw_multi_aff
add
(const
isl
::
union_pw_multi_aff
&upma2) const;
3270
inline
isl
::
pw_multi_aff
add
(const
isl
::
multi_aff
&pma2) const;
3271
inline
isl
::
pw_multi_aff
add
(const
isl
::
pw_aff
&pma2) const;
3272
inline
isl
::
pw_multi_aff
add_constant
(
isl
::
multi_val
mv) const;
3273
inline
isl
::
pw_multi_aff
add_constant
(
isl
::
val
v) const;
3274
inline
isl
::
pw_multi_aff
add_constant
(
long
v) const;
3275
inline
isl
::
union_pw_multi_aff
add_pw_multi_aff
(const
isl
::
pw_multi_aff
&
pma
) const;
3276
inline
isl
::
union_pw_multi_aff
apply
(const
isl
::
union_pw_multi_aff
&upma2) const;
3277
inline
isl
::
map
as_map
() const;
3278
inline
isl
::
multi_aff
as_multi_aff
() const;
3279
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
3280
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
3281
inline
isl
::
set
as_set
() const;
3282
inline
isl
::
union_map
as_union_map
() const;
3283
inline
isl
::
pw_aff
at
(
int
pos
) const;
3284
inline
isl
::
pw_aff
get_at
(
int
pos
) const;
3285
inline
isl
::
set
bind
(const
isl
::
multi_id
&
tuple
) const;
3286
inline
isl
::
pw_multi_aff
bind_domain
(
isl
::
multi_id
tuple
) const;
3287
inline
isl
::
pw_multi_aff
bind_domain_wrapped_domain
(
isl
::
multi_id
tuple
) const;
3288
inline
isl
::
pw_multi_aff
coalesce
() const;
3289
inline class
size
dim
(
isl
::
dim
type
) const;
3290
inline
isl
::
set
domain
() const;
3291
static inline
isl
::
pw_multi_aff
domain_map
(
isl
::
space
space
);
3292
inline
isl
::
pw_multi_aff
drop_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
3293
inline
isl
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
space
&
space
) const;
3294
inline
isl
::
multi_pw_aff
flat_range_product
(const
isl
::
multi_pw_aff
&multi2) const;
3295
inline
isl
::
multi_union_pw_aff
flat_range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
3296
inline
isl
::
pw_multi_aff
flat_range_product
(
isl
::
pw_multi_aff
pma2) const;
3297
inline
isl
::
union_pw_multi_aff
flat_range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
3298
inline
isl
::
pw_multi_aff
flat_range_product
(const
isl
::
multi_aff
&pma2) const;
3299
inline
isl
::
pw_multi_aff
flat_range_product
(const
isl
::
pw_aff
&pma2) const;
3300
inline
stat
foreach_piece
(const std::function<
stat
(
isl
::
set
,
isl
::
multi_aff
)> &
fn
) const;
3301
static inline
isl
::
pw_multi_aff
from_map
(
isl
::
map
map
);
3302
inline
isl
::
pw_multi_aff
gist
(
isl
::
set
set
) const;
3303
inline
isl
::
union_pw_multi_aff
gist
(const
isl
::
union_set
&
context
) const;
3304
inline
isl
::
pw_multi_aff
gist
(const
isl
::
basic_set
&
set
) const;
3305
inline
isl
::
pw_multi_aff
gist
(const
isl
::
point
&
set
) const;
3306
inline
boolean
has_range_tuple_id
() const;
3307
inline
isl
::
multi_pw_aff
identity
() const;
3308
static inline
isl
::
pw_multi_aff
identity_on_domain
(
isl
::
space
space
);
3309
inline
isl
::
pw_multi_aff
insert_domain
(
isl
::
space
domain
) const;
3310
inline
isl
::
pw_multi_aff
intersect_domain
(
isl
::
set
set
) const;
3311
inline
isl
::
union_pw_multi_aff
intersect_domain
(const
isl
::
space
&
space
) const;
3312
inline
isl
::
union_pw_multi_aff
intersect_domain
(const
isl
::
union_set
&uset) const;
3313
inline
isl
::
pw_multi_aff
intersect_domain
(const
isl
::
basic_set
&
set
) const;
3314
inline
isl
::
pw_multi_aff
intersect_domain
(const
isl
::
point
&
set
) const;
3315
inline
isl
::
union_pw_multi_aff
intersect_domain_wrapped_domain
(const
isl
::
union_set
&uset) const;
3316
inline
isl
::
union_pw_multi_aff
intersect_domain_wrapped_range
(const
isl
::
union_set
&uset) const;
3317
inline
isl
::
pw_multi_aff
intersect_params
(
isl
::
set
set
) const;
3318
inline
boolean
involves_locals
() const;
3319
inline
boolean
involves_nan
() const;
3320
inline
boolean
involves_param
(const
isl
::
id
&
id
) const;
3321
inline
boolean
involves_param
(const std::
string
&
id
) const;
3322
inline
boolean
involves_param
(const
isl
::
id_list
&
list
) const;
3323
inline
boolean
isa_multi_aff
() const;
3324
inline
boolean
isa_pw_multi_aff
() const;
3325
inline
isl
::
pw_aff_list
list
() const;
3326
inline
isl
::
multi_pw_aff
max
(const
isl
::
multi_pw_aff
&multi2) const;
3327
inline
isl
::
multi_val
max_multi_val
() const;
3328
inline
isl
::
multi_pw_aff
min
(const
isl
::
multi_pw_aff
&multi2) const;
3329
inline
isl
::
multi_val
min_multi_val
() const;
3330
static inline
isl
::
pw_multi_aff
multi_val_on_domain
(
isl
::
set
domain
,
isl
::
multi_val
mv);
3331
inline class
size
n_piece
() const;
3332
inline
isl
::
multi_pw_aff
neg
() const;
3333
inline
boolean
plain_is_empty
() const;
3334
inline
boolean
plain_is_equal
(const
isl
::
multi_pw_aff
&multi2) const;
3335
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
3336
inline
isl
::
pw_multi_aff
preimage_domain_wrapped_domain
(
isl
::
pw_multi_aff
pma2) const;
3337
inline
isl
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
union_pw_multi_aff
&upma2) const;
3338
inline
isl
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
multi_aff
&pma2) const;
3339
inline
isl
::
pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
pw_aff
&pma2) const;
3340
inline
isl
::
multi_pw_aff
product
(const
isl
::
multi_pw_aff
&multi2) const;
3341
inline
isl
::
pw_multi_aff
product
(
isl
::
pw_multi_aff
pma2) const;
3342
inline
isl
::
pw_multi_aff
product
(const
isl
::
multi_aff
&pma2) const;
3343
inline
isl
::
pw_multi_aff
product
(const
isl
::
pw_aff
&pma2) const;
3344
static inline
isl
::
pw_multi_aff
project_out_map
(
isl
::
space
space
,
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
);
3345
inline
isl
::
multi_pw_aff
pullback
(const
isl
::
multi_pw_aff
&mpa2) const;
3346
inline
isl
::
pw_multi_aff
pullback
(
isl
::
multi_aff
ma
) const;
3347
inline
isl
::
pw_multi_aff
pullback
(
isl
::
pw_multi_aff
pma2) const;
3348
inline
isl
::
union_pw_multi_aff
pullback
(const
isl
::
union_pw_multi_aff
&upma2) const;
3349
inline
isl
::
pw_multi_aff_list
pw_multi_aff_list
() const;
3350
inline
isl
::
pw_multi_aff
range_factor_domain
() const;
3351
inline
isl
::
pw_multi_aff
range_factor_range
() const;
3352
static inline
isl
::
pw_multi_aff
range_map
(
isl
::
space
space
);
3353
inline
isl
::
multi_pw_aff
range_product
(const
isl
::
multi_pw_aff
&multi2) const;
3354
inline
isl
::
multi_union_pw_aff
range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
3355
inline
isl
::
pw_multi_aff
range_product
(
isl
::
pw_multi_aff
pma2) const;
3356
inline
isl
::
union_pw_multi_aff
range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
3357
inline
isl
::
pw_multi_aff
range_product
(const
isl
::
multi_aff
&pma2) const;
3358
inline
isl
::
pw_multi_aff
range_product
(const
isl
::
pw_aff
&pma2) const;
3359
inline
isl
::
id
range_tuple_id
() const;
3360
inline
isl
::
id
get_range_tuple_id
() const;
3361
inline
isl
::
multi_pw_aff
reset_range_tuple_id
() const;
3362
inline
isl
::
multi_pw_aff
reset_tuple_id
(
isl
::
dim
type
) const;
3363
inline
isl
::
multi_pw_aff
scale
(const
isl
::
multi_val
&mv) const;
3364
inline
isl
::
pw_multi_aff
scale
(
isl
::
val
v) const;
3365
inline
isl
::
pw_multi_aff
scale
(
long
v) const;
3366
inline
isl
::
multi_pw_aff
scale_down
(const
isl
::
multi_val
&mv) const;
3367
inline
isl
::
pw_multi_aff
scale_down
(
isl
::
val
v) const;
3368
inline
isl
::
pw_multi_aff
scale_down
(
long
v) const;
3369
inline
isl
::
multi_pw_aff
set_at
(
int
pos
, const
isl
::
pw_aff
&el) const;
3370
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
3371
inline
isl
::
multi_pw_aff
set_pw_aff
(
int
pos
, const
isl
::
pw_aff
&el) const;
3372
inline
isl
::
pw_multi_aff
set_pw_aff
(
unsigned
int
pos
,
isl
::
pw_aff
pa
) const;
3373
inline
isl
::
pw_multi_aff
set_range_tuple
(
isl
::
id
id
) const;
3374
inline
isl
::
pw_multi_aff
set_range_tuple
(const std::
string
&
id
) const;
3375
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
3376
inline class
size
size
() const;
3377
inline
isl
::
space
space
() const;
3378
inline
isl
::
space
get_space
() const;
3379
inline
isl
::
multi_pw_aff
sub
(const
isl
::
multi_pw_aff
&multi2) const;
3380
inline
isl
::
multi_union_pw_aff
sub
(const
isl
::
multi_union_pw_aff
&multi2) const;
3381
inline
isl
::
pw_multi_aff
sub
(
isl
::
pw_multi_aff
pma2) const;
3382
inline
isl
::
union_pw_multi_aff
sub
(const
isl
::
union_pw_multi_aff
&upma2) const;
3383
inline
isl
::
pw_multi_aff
sub
(const
isl
::
multi_aff
&pma2) const;
3384
inline
isl
::
pw_multi_aff
sub
(const
isl
::
pw_aff
&pma2) const;
3385
inline
isl
::
pw_multi_aff
subtract_domain
(
isl
::
set
set
) const;
3386
inline
isl
::
union_pw_multi_aff
subtract_domain
(const
isl
::
space
&
space
) const;
3387
inline
isl
::
union_pw_multi_aff
subtract_domain
(const
isl
::
union_set
&uset) const;
3388
inline
isl
::
pw_multi_aff
subtract_domain
(const
isl
::
basic_set
&
set
) const;
3389
inline
isl
::
pw_multi_aff
subtract_domain
(const
isl
::
point
&
set
) const;
3390
inline
isl
::
pw_multi_aff_list
to_list
() const;
3391
inline
isl
::
multi_pw_aff
to_multi_pw_aff
() const;
3392
inline
isl
::
union_pw_multi_aff
to_union_pw_multi_aff
() const;
3393
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
3394
inline
isl
::
id
get_tuple_id
(
isl
::
dim
type
) const;
3395
inline
isl
::
multi_pw_aff
unbind_params_insert_domain
(const
isl
::
multi_id
&
domain
) const;
3396
inline
isl
::
multi_pw_aff
union_add
(const
isl
::
multi_pw_aff
&mpa2) const;
3397
inline
isl
::
multi_union_pw_aff
union_add
(const
isl
::
multi_union_pw_aff
&mupa2) const;
3398
inline
isl
::
pw_multi_aff
union_add
(
isl
::
pw_multi_aff
pma2) const;
3399
inline
isl
::
union_pw_multi_aff
union_add
(const
isl
::
union_pw_multi_aff
&upma2) const;
3400
inline
isl
::
pw_multi_aff
union_add
(const
isl
::
multi_aff
&pma2) const;
3401
inline
isl
::
pw_multi_aff
union_add
(const
isl
::
pw_aff
&pma2) const;
3402
static inline
isl
::
pw_multi_aff
zero
(
isl
::
space
space
);
3403
};
3404
3405
// declarations for isl::pw_multi_aff_list
3406
inline
pw_multi_aff_list
manage
(
__isl_take
isl_pw_multi_aff_list *
ptr
);
3407
inline
pw_multi_aff_list
manage_copy
(
__isl_keep
isl_pw_multi_aff_list *
ptr
);
3408
3409
class
pw_multi_aff_list
{
3410
friend
inline
pw_multi_aff_list
manage
(
__isl_take
isl_pw_multi_aff_list *
ptr
);
3411
friend
inline
pw_multi_aff_list
manage_copy
(
__isl_keep
isl_pw_multi_aff_list *
ptr
);
3412
3413
protected
:
3414
isl_pw_multi_aff_list *
ptr
=
nullptr
;
3415
3416
inline
explicit
pw_multi_aff_list
(
__isl_take
isl_pw_multi_aff_list *
ptr
);
3417
3418
public
:
3419
inline
/* implicit */
pw_multi_aff_list
();
3420
inline
/* implicit */
pw_multi_aff_list
(
const
pw_multi_aff_list
&
obj
);
3421
inline
explicit
pw_multi_aff_list
(
isl::ctx
ctx
,
int
n
);
3422
inline
explicit
pw_multi_aff_list
(
isl::pw_multi_aff
el);
3423
inline
explicit
pw_multi_aff_list
(
isl::ctx
ctx
,
const
std::string &
str
);
3424
inline
pw_multi_aff_list
&
operator=
(
pw_multi_aff_list
obj
);
3425
inline
~pw_multi_aff_list
();
3426
inline
__isl_give
isl_pw_multi_aff_list *
copy
() const &;
3427
inline
__isl_give
isl_pw_multi_aff_list *
copy
() && = delete;
3428
inline
__isl_keep
isl_pw_multi_aff_list *
get
() const;
3429
inline
__isl_give
isl_pw_multi_aff_list *
release
();
3430
inline
bool
is_null
() const;
3431
inline
isl
::
ctx
ctx
() const;
3432
3433
inline
isl
::
pw_multi_aff_list
add
(
isl
::
pw_multi_aff
el) const;
3434
inline
isl
::
pw_multi_aff
at
(
int
index) const;
3435
inline
isl
::
pw_multi_aff
get_at
(
int
index) const;
3436
inline
isl
::
pw_multi_aff_list
clear
() const;
3437
inline
isl
::
pw_multi_aff_list
concat
(
isl
::
pw_multi_aff_list
list2) const;
3438
inline
isl
::
pw_multi_aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
3439
inline
stat
foreach
(const std::function<
stat
(
isl
::
pw_multi_aff
)> &
fn
) const;
3440
inline
isl
::
pw_multi_aff_list
insert
(
unsigned
int
pos
,
isl
::
pw_multi_aff
el) const;
3441
inline class
size
size
() const;
3442
};
3443
3444
// declarations for isl::schedule
3445
inline
schedule
manage
(
__isl_take
isl_schedule
*
ptr
);
3446
inline
schedule
manage_copy
(
__isl_keep
isl_schedule
*
ptr
);
3447
3448
class
schedule
{
3449
friend
inline
schedule
manage
(
__isl_take
isl_schedule
*
ptr
);
3450
friend
inline
schedule
manage_copy
(
__isl_keep
isl_schedule
*
ptr
);
3451
3452
protected
:
3453
isl_schedule
*
ptr
=
nullptr
;
3454
3455
inline
explicit
schedule
(
__isl_take
isl_schedule
*
ptr
);
3456
3457
public
:
3458
inline
/* implicit */
schedule
();
3459
inline
/* implicit */
schedule
(
const
schedule
&
obj
);
3460
inline
explicit
schedule
(
isl::ctx
ctx
,
const
std::string &
str
);
3461
inline
schedule
&
operator=
(
schedule
obj
);
3462
inline
~schedule
();
3463
inline
__isl_give
isl_schedule
*
copy
() const &;
3464
inline
__isl_give
isl_schedule
*
copy
() && = delete;
3465
inline
__isl_keep
isl_schedule
*
get
() const;
3466
inline
__isl_give
isl_schedule
*
release
();
3467
inline
bool
is_null
() const;
3468
inline
isl
::
ctx
ctx
() const;
3469
3470
inline
isl
::
schedule
align_params
(
isl
::
space
space
) const;
3471
inline
isl
::
union_set
domain
() const;
3472
inline
isl
::
union_set
get_domain
() const;
3473
static inline
isl
::
schedule
from_domain
(
isl
::
union_set
domain
);
3474
inline
isl
::
schedule
gist_domain_params
(
isl
::
set
context
) const;
3475
inline
isl
::
schedule
insert_partial_schedule
(
isl
::
multi_union_pw_aff
partial) const;
3476
inline
isl
::
schedule
intersect_domain
(
isl
::
union_set
domain
) const;
3477
inline
isl
::
union_map
map
() const;
3478
inline
isl
::
union_map
get_map
() const;
3479
inline
isl
::
schedule
pullback
(
isl
::
union_pw_multi_aff
upma) const;
3480
inline
isl
::
schedule_node
root
() const;
3481
inline
isl
::
schedule_node
get_root
() const;
3482
inline
isl
::
schedule
sequence
(
isl
::
schedule
schedule2) const;
3483
};
3484
3485
// declarations for isl::schedule_constraints
3486
inline
schedule_constraints
manage
(
__isl_take
isl_schedule_constraints
*
ptr
);
3487
inline
schedule_constraints
manage_copy
(
__isl_keep
isl_schedule_constraints
*
ptr
);
3488
3489
class
schedule_constraints
{
3490
friend
inline
schedule_constraints
manage
(
__isl_take
isl_schedule_constraints
*
ptr
);
3491
friend
inline
schedule_constraints
manage_copy
(
__isl_keep
isl_schedule_constraints
*
ptr
);
3492
3493
protected
:
3494
isl_schedule_constraints
*
ptr
=
nullptr
;
3495
3496
inline
explicit
schedule_constraints
(
__isl_take
isl_schedule_constraints
*
ptr
);
3497
3498
public
:
3499
inline
/* implicit */
schedule_constraints
();
3500
inline
/* implicit */
schedule_constraints
(
const
schedule_constraints
&
obj
);
3501
inline
explicit
schedule_constraints
(
isl::ctx
ctx
,
const
std::string &
str
);
3502
inline
schedule_constraints
&
operator=
(
schedule_constraints
obj
);
3503
inline
~schedule_constraints
();
3504
inline
__isl_give
isl_schedule_constraints
*
copy
() const &;
3505
inline
__isl_give
isl_schedule_constraints
*
copy
() && = delete;
3506
inline
__isl_keep
isl_schedule_constraints
*
get
() const;
3507
inline
__isl_give
isl_schedule_constraints
*
release
();
3508
inline
bool
is_null
() const;
3509
inline
isl
::
ctx
ctx
() const;
3510
3511
inline
isl
::
union_map
coincidence
() const;
3512
inline
isl
::
union_map
get_coincidence
() const;
3513
inline
isl
::
schedule
compute_schedule
() const;
3514
inline
isl
::
union_map
conditional_validity
() const;
3515
inline
isl
::
union_map
get_conditional_validity
() const;
3516
inline
isl
::
union_map
conditional_validity_condition
() const;
3517
inline
isl
::
union_map
get_conditional_validity_condition
() const;
3518
inline
isl
::
set
context
() const;
3519
inline
isl
::
set
get_context
() const;
3520
inline
isl
::
union_set
domain
() const;
3521
inline
isl
::
union_set
get_domain
() const;
3522
static inline
isl
::
schedule_constraints
on_domain
(
isl
::
union_set
domain
);
3523
inline
isl
::
union_map
proximity
() const;
3524
inline
isl
::
union_map
get_proximity
() const;
3525
inline
isl
::
schedule_constraints
set_coincidence
(
isl
::
union_map
coincidence
) const;
3526
inline
isl
::
schedule_constraints
set_conditional_validity
(
isl
::
union_map
condition
,
isl
::
union_map
validity
) const;
3527
inline
isl
::
schedule_constraints
set_context
(
isl
::
set
context
) const;
3528
inline
isl
::
schedule_constraints
set_proximity
(
isl
::
union_map
proximity
) const;
3529
inline
isl
::
schedule_constraints
set_validity
(
isl
::
union_map
validity
) const;
3530
inline
isl
::
union_map
validity
() const;
3531
inline
isl
::
union_map
get_validity
() const;
3532
};
3533
3534
// declarations for isl::schedule_node
3535
inline
schedule_node
manage
(
__isl_take
isl_schedule_node
*
ptr
);
3536
inline
schedule_node
manage_copy
(
__isl_keep
isl_schedule_node
*
ptr
);
3537
3538
class
schedule_node
{
3539
friend
inline
schedule_node
manage
(
__isl_take
isl_schedule_node
*
ptr
);
3540
friend
inline
schedule_node
manage_copy
(
__isl_keep
isl_schedule_node
*
ptr
);
3541
3542
protected
:
3543
isl_schedule_node
*
ptr
=
nullptr
;
3544
3545
inline
explicit
schedule_node
(
__isl_take
isl_schedule_node
*
ptr
);
3546
3547
public
:
3548
inline
/* implicit */
schedule_node
();
3549
inline
/* implicit */
schedule_node
(
const
schedule_node
&
obj
);
3550
inline
schedule_node
&
operator=
(
schedule_node
obj
);
3551
inline
~schedule_node
();
3552
inline
__isl_give
isl_schedule_node
*
copy
() const &;
3553
inline
__isl_give
isl_schedule_node
*
copy
() && = delete;
3554
inline
__isl_keep
isl_schedule_node
*
get
() const;
3555
inline
__isl_give
isl_schedule_node
*
release
();
3556
inline
bool
is_null
() const;
3557
private:
3558
template <typename T,
3559
typename = typename std::enable_if<std::is_same<
3560
const decltype(
isl_schedule_node_get_type
(
nullptr
)),
3561
const T>::value>::
type
>
3562
inline
boolean
isa_type
(T subtype) const;
3563
public:
3564
template <class T> inline
boolean
isa
() const;
3565
template <class T> inline T
as
() const;
3566
inline
isl
::
ctx
ctx
() const;
3567
3568
inline
isl
::
schedule_node
ancestor
(
int
generation) const;
3569
inline class
size
ancestor_child_position
(const
isl
::
schedule_node
&
ancestor
) const;
3570
inline class
size
get_ancestor_child_position
(const
isl
::
schedule_node
&
ancestor
) const;
3571
inline
isl
::
schedule_node
child
(
int
pos
) const;
3572
inline class
size
child_position
() const;
3573
inline class
size
get_child_position
() const;
3574
inline
isl
::
union_set
domain
() const;
3575
inline
isl
::
union_set
get_domain
() const;
3576
inline
boolean
every_descendant
(const std::function<
boolean
(
isl
::
schedule_node
)> &
test
) const;
3577
inline
isl
::
schedule_node
first_child
() const;
3578
inline
stat
foreach_ancestor_top_down
(const std::function<
stat
(
isl
::
schedule_node
)> &
fn
) const;
3579
inline
stat
foreach_descendant_top_down
(const std::function<
boolean
(
isl
::
schedule_node
)> &
fn
) const;
3580
static inline
isl
::
schedule_node
from_domain
(
isl
::
union_set
domain
);
3581
static inline
isl
::
schedule_node
from_extension
(
isl
::
union_map
extension);
3582
inline
isl
::
schedule_node
graft_after
(
isl
::
schedule_node
graft) const;
3583
inline
isl
::
schedule_node
graft_before
(
isl
::
schedule_node
graft) const;
3584
inline
boolean
has_children
() const;
3585
inline
boolean
has_next_sibling
() const;
3586
inline
boolean
has_parent
() const;
3587
inline
boolean
has_previous_sibling
() const;
3588
inline
isl
::
schedule_node
insert_context
(
isl
::
set
context
) const;
3589
inline
isl
::
schedule_node
insert_filter
(
isl
::
union_set
filter) const;
3590
inline
isl
::
schedule_node
insert_guard
(
isl
::
set
context
) const;
3591
inline
isl
::
schedule_node
insert_mark
(
isl
::
id
mark) const;
3592
inline
isl
::
schedule_node
insert_mark
(const std::
string
&mark) const;
3593
inline
isl
::
schedule_node
insert_partial_schedule
(
isl
::
multi_union_pw_aff
schedule
) const;
3594
inline
isl
::
schedule_node
insert_sequence
(
isl
::
union_set_list
filters) const;
3595
inline
isl
::
schedule_node
insert_set
(
isl
::
union_set_list
filters) const;
3596
inline
boolean
is_equal
(const
isl
::
schedule_node
&node2) const;
3597
inline
boolean
is_subtree_anchored
() const;
3598
inline
isl
::
schedule_node
map_descendant_bottom_up
(const std::function<
isl
::
schedule_node
(
isl
::
schedule_node
)> &
fn
) const;
3599
inline class
size
n_children
() const;
3600
inline
isl
::
schedule_node
next_sibling
() const;
3601
inline
isl
::
schedule_node
order_after
(
isl
::
union_set
filter) const;
3602
inline
isl
::
schedule_node
order_before
(
isl
::
union_set
filter) const;
3603
inline
isl
::
schedule_node
parent
() const;
3604
inline
isl
::
multi_union_pw_aff
prefix_schedule_multi_union_pw_aff
() const;
3605
inline
isl
::
multi_union_pw_aff
get_prefix_schedule_multi_union_pw_aff
() const;
3606
inline
isl
::
union_map
prefix_schedule_relation
() const;
3607
inline
isl
::
union_map
get_prefix_schedule_relation
() const;
3608
inline
isl
::
union_map
prefix_schedule_union_map
() const;
3609
inline
isl
::
union_map
get_prefix_schedule_union_map
() const;
3610
inline
isl
::
union_pw_multi_aff
prefix_schedule_union_pw_multi_aff
() const;
3611
inline
isl
::
union_pw_multi_aff
get_prefix_schedule_union_pw_multi_aff
() const;
3612
inline
isl
::
schedule_node
previous_sibling
() const;
3613
inline
isl
::
schedule_node
root
() const;
3614
inline
isl
::
schedule
schedule
() const;
3615
inline
isl
::
schedule
get_schedule
() const;
3616
inline class
size
schedule_depth
() const;
3617
inline class
size
get_schedule_depth
() const;
3618
inline
isl
::
schedule_node
shared_ancestor
(const
isl
::
schedule_node
&node2) const;
3619
inline
isl
::
schedule_node
get_shared_ancestor
(const
isl
::
schedule_node
&node2) const;
3620
inline class
size
tree_depth
() const;
3621
inline class
size
get_tree_depth
() const;
3622
inline
isl
::
union_set
universe_domain
() const;
3623
inline
isl
::
union_set
get_universe_domain
() const;
3624
};
3625
3626
// declarations for isl::schedule_node_band
3627
3628
class
schedule_node_band
: public
schedule_node
{
3629
template
<
class
T>
3630
friend
boolean
schedule_node::isa
()
const
;
3631
friend
schedule_node_band
schedule_node::as<schedule_node_band>
()
const
;
3632
static
const
auto
type
=
isl_schedule_node_band
;
3633
3634
protected
:
3635
inline
explicit
schedule_node_band
(
__isl_take
isl_schedule_node
*
ptr
);
3636
3637
public
:
3638
inline
/* implicit */
schedule_node_band
();
3639
inline
/* implicit */
schedule_node_band
(
const
schedule_node_band
&
obj
);
3640
inline
schedule_node_band
&
operator=
(
schedule_node_band
obj
);
3641
inline
isl::ctx
ctx
()
const
;
3642
3643
inline
isl::union_set
ast_build_options
()
const
;
3644
inline
isl::union_set
get_ast_build_options
()
const
;
3645
inline
isl::set
ast_isolate_option
()
const
;
3646
inline
isl::set
get_ast_isolate_option
()
const
;
3647
inline
boolean
member_get_coincident
(
int
pos
)
const
;
3648
inline
schedule_node_band
member_set_coincident
(
int
pos
,
int
coincident)
const
;
3649
inline
schedule_node_band
mod
(
isl::multi_val
mv)
const
;
3650
inline
class
size
n_member
()
const
;
3651
inline
isl::multi_union_pw_aff
partial_schedule
()
const
;
3652
inline
isl::multi_union_pw_aff
get_partial_schedule
()
const
;
3653
inline
boolean
permutable
()
const
;
3654
inline
boolean
get_permutable
()
const
;
3655
inline
schedule_node_band
scale
(
isl::multi_val
mv)
const
;
3656
inline
schedule_node_band
scale_down
(
isl::multi_val
mv)
const
;
3657
inline
schedule_node_band
set_ast_build_options
(
isl::union_set
options
)
const
;
3658
inline
schedule_node_band
set_permutable
(
int
permutable
)
const
;
3659
inline
schedule_node_band
shift
(
isl::multi_union_pw_aff
shift
)
const
;
3660
inline
schedule_node_band
split
(
int
pos
)
const
;
3661
inline
schedule_node_band
tile
(
isl::multi_val
sizes
)
const
;
3662
inline
schedule_node_band
member_set_ast_loop_default
(
int
pos
)
const
;
3663
inline
schedule_node_band
member_set_ast_loop_atomic
(
int
pos
)
const
;
3664
inline
schedule_node_band
member_set_ast_loop_unroll
(
int
pos
)
const
;
3665
inline
schedule_node_band
member_set_ast_loop_separate
(
int
pos
)
const
;
3666
};
3667
3668
// declarations for isl::schedule_node_context
3669
3670
class
schedule_node_context
:
public
schedule_node
{
3671
template
<
class
T>
3672
friend
boolean
schedule_node::isa
()
const
;
3673
friend
schedule_node_context
schedule_node::as<schedule_node_context>
()
const
;
3674
static
const
auto
type
=
isl_schedule_node_context
;
3675
3676
protected
:
3677
inline
explicit
schedule_node_context
(
__isl_take
isl_schedule_node
*
ptr
);
3678
3679
public
:
3680
inline
/* implicit */
schedule_node_context
();
3681
inline
/* implicit */
schedule_node_context
(
const
schedule_node_context
&
obj
);
3682
inline
schedule_node_context
&
operator=
(
schedule_node_context
obj
);
3683
inline
isl::ctx
ctx
()
const
;
3684
3685
inline
isl::set
context
()
const
;
3686
inline
isl::set
get_context
()
const
;
3687
};
3688
3689
// declarations for isl::schedule_node_domain
3690
3691
class
schedule_node_domain
:
public
schedule_node
{
3692
template
<
class
T>
3693
friend
boolean
schedule_node::isa
()
const
;
3694
friend
schedule_node_domain
schedule_node::as<schedule_node_domain>
()
const
;
3695
static
const
auto
type
=
isl_schedule_node_domain
;
3696
3697
protected
:
3698
inline
explicit
schedule_node_domain
(
__isl_take
isl_schedule_node
*
ptr
);
3699
3700
public
:
3701
inline
/* implicit */
schedule_node_domain
();
3702
inline
/* implicit */
schedule_node_domain
(
const
schedule_node_domain
&
obj
);
3703
inline
schedule_node_domain
&
operator=
(
schedule_node_domain
obj
);
3704
inline
isl::ctx
ctx
()
const
;
3705
3706
inline
isl::union_set
domain
()
const
;
3707
inline
isl::union_set
get_domain
()
const
;
3708
};
3709
3710
// declarations for isl::schedule_node_expansion
3711
3712
class
schedule_node_expansion
:
public
schedule_node
{
3713
template
<
class
T>
3714
friend
boolean
schedule_node::isa
()
const
;
3715
friend
schedule_node_expansion
schedule_node::as<schedule_node_expansion>
()
const
;
3716
static
const
auto
type
=
isl_schedule_node_expansion
;
3717
3718
protected
:
3719
inline
explicit
schedule_node_expansion
(
__isl_take
isl_schedule_node
*
ptr
);
3720
3721
public
:
3722
inline
/* implicit */
schedule_node_expansion
();
3723
inline
/* implicit */
schedule_node_expansion
(
const
schedule_node_expansion
&
obj
);
3724
inline
schedule_node_expansion
&
operator=
(
schedule_node_expansion
obj
);
3725
inline
isl::ctx
ctx
()
const
;
3726
3727
inline
isl::union_pw_multi_aff
contraction
()
const
;
3728
inline
isl::union_pw_multi_aff
get_contraction
()
const
;
3729
inline
isl::union_map
expansion
()
const
;
3730
inline
isl::union_map
get_expansion
()
const
;
3731
};
3732
3733
// declarations for isl::schedule_node_extension
3734
3735
class
schedule_node_extension
:
public
schedule_node
{
3736
template
<
class
T>
3737
friend
boolean
schedule_node::isa
()
const
;
3738
friend
schedule_node_extension
schedule_node::as<schedule_node_extension>
()
const
;
3739
static
const
auto
type
=
isl_schedule_node_extension
;
3740
3741
protected
:
3742
inline
explicit
schedule_node_extension
(
__isl_take
isl_schedule_node
*
ptr
);
3743
3744
public
:
3745
inline
/* implicit */
schedule_node_extension
();
3746
inline
/* implicit */
schedule_node_extension
(
const
schedule_node_extension
&
obj
);
3747
inline
schedule_node_extension
&
operator=
(
schedule_node_extension
obj
);
3748
inline
isl::ctx
ctx
()
const
;
3749
3750
inline
isl::union_map
extension
()
const
;
3751
inline
isl::union_map
get_extension
()
const
;
3752
};
3753
3754
// declarations for isl::schedule_node_filter
3755
3756
class
schedule_node_filter
:
public
schedule_node
{
3757
template
<
class
T>
3758
friend
boolean
schedule_node::isa
()
const
;
3759
friend
schedule_node_filter
schedule_node::as<schedule_node_filter>
()
const
;
3760
static
const
auto
type
=
isl_schedule_node_filter
;
3761
3762
protected
:
3763
inline
explicit
schedule_node_filter
(
__isl_take
isl_schedule_node
*
ptr
);
3764
3765
public
:
3766
inline
/* implicit */
schedule_node_filter
();
3767
inline
/* implicit */
schedule_node_filter
(
const
schedule_node_filter
&
obj
);
3768
inline
schedule_node_filter
&
operator=
(
schedule_node_filter
obj
);
3769
inline
isl::ctx
ctx
()
const
;
3770
3771
inline
isl::union_set
filter
()
const
;
3772
inline
isl::union_set
get_filter
()
const
;
3773
};
3774
3775
// declarations for isl::schedule_node_guard
3776
3777
class
schedule_node_guard
:
public
schedule_node
{
3778
template
<
class
T>
3779
friend
boolean
schedule_node::isa
()
const
;
3780
friend
schedule_node_guard
schedule_node::as<schedule_node_guard>
()
const
;
3781
static
const
auto
type
=
isl_schedule_node_guard
;
3782
3783
protected
:
3784
inline
explicit
schedule_node_guard
(
__isl_take
isl_schedule_node
*
ptr
);
3785
3786
public
:
3787
inline
/* implicit */
schedule_node_guard
();
3788
inline
/* implicit */
schedule_node_guard
(
const
schedule_node_guard
&
obj
);
3789
inline
schedule_node_guard
&
operator=
(
schedule_node_guard
obj
);
3790
inline
isl::ctx
ctx
()
const
;
3791
3792
inline
isl::set
guard
()
const
;
3793
inline
isl::set
get_guard
()
const
;
3794
};
3795
3796
// declarations for isl::schedule_node_leaf
3797
3798
class
schedule_node_leaf
:
public
schedule_node
{
3799
template
<
class
T>
3800
friend
boolean
schedule_node::isa
()
const
;
3801
friend
schedule_node_leaf
schedule_node::as<schedule_node_leaf>
()
const
;
3802
static
const
auto
type
=
isl_schedule_node_leaf
;
3803
3804
protected
:
3805
inline
explicit
schedule_node_leaf
(
__isl_take
isl_schedule_node
*
ptr
);
3806
3807
public
:
3808
inline
/* implicit */
schedule_node_leaf
();
3809
inline
/* implicit */
schedule_node_leaf
(
const
schedule_node_leaf
&
obj
);
3810
inline
schedule_node_leaf
&
operator=
(
schedule_node_leaf
obj
);
3811
inline
isl::ctx
ctx
()
const
;
3812
3813
};
3814
3815
// declarations for isl::schedule_node_mark
3816
3817
class
schedule_node_mark
:
public
schedule_node
{
3818
template
<
class
T>
3819
friend
boolean
schedule_node::isa
()
const
;
3820
friend
schedule_node_mark
schedule_node::as<schedule_node_mark>
()
const
;
3821
static
const
auto
type
=
isl_schedule_node_mark
;
3822
3823
protected
:
3824
inline
explicit
schedule_node_mark
(
__isl_take
isl_schedule_node
*
ptr
);
3825
3826
public
:
3827
inline
/* implicit */
schedule_node_mark
();
3828
inline
/* implicit */
schedule_node_mark
(
const
schedule_node_mark
&
obj
);
3829
inline
schedule_node_mark
&
operator=
(
schedule_node_mark
obj
);
3830
inline
isl::ctx
ctx
()
const
;
3831
3832
inline
isl::id
id
()
const
;
3833
inline
isl::id
get_id
()
const
;
3834
};
3835
3836
// declarations for isl::schedule_node_sequence
3837
3838
class
schedule_node_sequence
:
public
schedule_node
{
3839
template
<
class
T>
3840
friend
boolean
schedule_node::isa
()
const
;
3841
friend
schedule_node_sequence
schedule_node::as<schedule_node_sequence>
()
const
;
3842
static
const
auto
type
=
isl_schedule_node_sequence
;
3843
3844
protected
:
3845
inline
explicit
schedule_node_sequence
(
__isl_take
isl_schedule_node
*
ptr
);
3846
3847
public
:
3848
inline
/* implicit */
schedule_node_sequence
();
3849
inline
/* implicit */
schedule_node_sequence
(
const
schedule_node_sequence
&
obj
);
3850
inline
schedule_node_sequence
&
operator=
(
schedule_node_sequence
obj
);
3851
inline
isl::ctx
ctx
()
const
;
3852
3853
};
3854
3855
// declarations for isl::schedule_node_set
3856
3857
class
schedule_node_set
:
public
schedule_node
{
3858
template
<
class
T>
3859
friend
boolean
schedule_node::isa
()
const
;
3860
friend
schedule_node_set
schedule_node::as<schedule_node_set>
()
const
;
3861
static
const
auto
type
=
isl_schedule_node_set
;
3862
3863
protected
:
3864
inline
explicit
schedule_node_set
(
__isl_take
isl_schedule_node
*
ptr
);
3865
3866
public
:
3867
inline
/* implicit */
schedule_node_set
();
3868
inline
/* implicit */
schedule_node_set
(
const
schedule_node_set
&
obj
);
3869
inline
schedule_node_set
&
operator=
(
schedule_node_set
obj
);
3870
inline
isl::ctx
ctx
()
const
;
3871
3872
};
3873
3874
// declarations for isl::set
3875
inline
set
manage
(
__isl_take
isl_set
*ptr);
3876
inline
set
manage_copy
(
__isl_keep
isl_set
*ptr);
3877
3878
class
set
{
3879
friend
inline
set
manage
(
__isl_take
isl_set
*
ptr
);
3880
friend
inline
set
manage_copy
(
__isl_keep
isl_set
*
ptr
);
3881
3882
protected
:
3883
isl_set
*
ptr
=
nullptr
;
3884
3885
inline
explicit
set
(
__isl_take
isl_set
*
ptr
);
3886
3887
public
:
3888
inline
/* implicit */
set
();
3889
inline
/* implicit */
set
(
const
set
&
obj
);
3890
inline
/* implicit */
set
(
isl::basic_set
bset);
3891
inline
/* implicit */
set
(
isl::point
pnt);
3892
inline
explicit
set
(
isl::union_set
uset);
3893
inline
explicit
set
(
isl::ctx
ctx
,
const
std::string &
str
);
3894
inline
set
&
operator=
(
set
obj
);
3895
inline
~set
();
3896
inline
__isl_give
isl_set
*
copy
() const &;
3897
inline
__isl_give
isl_set
*
copy
() && = delete;
3898
inline
__isl_keep
isl_set
*
get
() const;
3899
inline
__isl_give
isl_set
*
release
();
3900
inline
bool
is_null
() const;
3901
inline
isl
::
ctx
ctx
() const;
3902
3903
inline
isl
::
set
add_constraint
(
isl
::
constraint
constraint
) const;
3904
inline
isl
::
set
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
3905
inline
isl
::
basic_set
affine_hull
() const;
3906
inline
isl
::
set
align_params
(
isl
::
space
model) const;
3907
inline
isl
::
set
apply
(
isl
::
map
map
) const;
3908
inline
isl
::
union_set
apply
(const
isl
::
union_map
&umap) const;
3909
inline
isl
::
set
apply
(const
isl
::
basic_map
&
map
) const;
3910
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
3911
inline
isl
::
set
as_set
() const;
3912
inline
isl
::
basic_set_list
basic_set_list
() const;
3913
inline
isl
::
basic_set_list
get_basic_set_list
() const;
3914
inline
isl
::
set
bind
(
isl
::
multi_id
tuple
) const;
3915
inline
isl
::
set
coalesce
() const;
3916
inline
isl
::
set
complement
() const;
3917
inline
isl
::
union_set
compute_divs
() const;
3918
inline
boolean
contains
(const
isl
::
space
&
space
) const;
3919
inline
isl
::
basic_set
convex_hull
() const;
3920
inline
isl
::
set
detect_equalities
() const;
3921
inline class
size
dim
(
isl
::
dim
type
) const;
3922
inline
boolean
dim_has_any_lower_bound
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3923
inline
isl
::
id
dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3924
inline
isl
::
id
get_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3925
inline
isl
::
pw_aff
dim_max
(
int
pos
) const;
3926
inline
isl
::
val
dim_max_val
(
int
pos
) const;
3927
inline
isl
::
pw_aff
dim_min
(
int
pos
) const;
3928
inline
isl
::
val
dim_min_val
(
int
pos
) const;
3929
inline std::
string
dim_name
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3930
inline std::
string
get_dim_name
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3931
inline
isl
::
set
drop_constraints_involving_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
3932
inline
isl
::
set
eliminate
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
3933
static inline
isl
::
set
empty
(
isl
::
space
space
);
3934
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
set
)> &
test
) const;
3935
inline
isl
::
set
extract_set
(const
isl
::
space
&
space
) const;
3936
inline
int
find_dim_by_id
(
isl
::
dim
type
, const
isl
::
id
&
id
) const;
3937
inline
int
find_dim_by_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
3938
inline
isl
::
set
fix_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
3939
inline
isl
::
set
flatten
() const;
3940
inline
stat
foreach_basic_set
(const std::function<
stat
(
isl
::
basic_set
)> &
fn
) const;
3941
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
point
)> &
fn
) const;
3942
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
set
)> &
fn
) const;
3943
inline
isl
::
set
gist
(
isl
::
set
context
) const;
3944
inline
isl
::
union_set
gist
(const
isl
::
union_set
&
context
) const;
3945
inline
isl
::
set
gist
(const
isl
::
basic_set
&
context
) const;
3946
inline
isl
::
set
gist
(const
isl
::
point
&
context
) const;
3947
inline
isl
::
set
gist_params
(
isl
::
set
context
) const;
3948
inline
boolean
has_equal_space
(const
isl
::
set
&
set2
) const;
3949
inline
isl
::
map
identity
() const;
3950
inline
isl
::
union_pw_multi_aff
identity_union_pw_multi_aff
() const;
3951
inline
isl
::
pw_aff
indicator_function
() const;
3952
inline
isl
::
set
insert_dims
(
isl
::
dim
type
,
unsigned
int
pos
,
unsigned
int
n
) const;
3953
inline
isl
::
map
insert_domain
(
isl
::
space
domain
) const;
3954
inline
isl
::
set
intersect
(
isl
::
set
set2
) const;
3955
inline
isl
::
union_set
intersect
(const
isl
::
union_set
&uset2) const;
3956
inline
isl
::
set
intersect
(const
isl
::
basic_set
&
set2
) const;
3957
inline
isl
::
set
intersect
(const
isl
::
point
&
set2
) const;
3958
inline
isl
::
set
intersect_params
(
isl
::
set
params
) const;
3959
inline
boolean
involves_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
3960
inline
boolean
involves_locals
() const;
3961
inline
boolean
is_bounded
() const;
3962
inline
boolean
is_disjoint
(const
isl
::
set
&
set2
) const;
3963
inline
boolean
is_disjoint
(const
isl
::
union_set
&uset2) const;
3964
inline
boolean
is_disjoint
(const
isl
::
basic_set
&
set2
) const;
3965
inline
boolean
is_disjoint
(const
isl
::
point
&
set2
) const;
3966
inline
boolean
is_empty
() const;
3967
inline
boolean
is_equal
(const
isl
::
set
&
set2
) const;
3968
inline
boolean
is_equal
(const
isl
::
union_set
&uset2) const;
3969
inline
boolean
is_equal
(const
isl
::
basic_set
&
set2
) const;
3970
inline
boolean
is_equal
(const
isl
::
point
&
set2
) const;
3971
inline
boolean
is_params
() const;
3972
inline
boolean
is_singleton
() const;
3973
inline
boolean
is_strict_subset
(const
isl
::
set
&
set2
) const;
3974
inline
boolean
is_strict_subset
(const
isl
::
union_set
&uset2) const;
3975
inline
boolean
is_strict_subset
(const
isl
::
basic_set
&
set2
) const;
3976
inline
boolean
is_strict_subset
(const
isl
::
point
&
set2
) const;
3977
inline
boolean
is_subset
(const
isl
::
set
&
set2
) const;
3978
inline
boolean
is_subset
(const
isl
::
union_set
&uset2) const;
3979
inline
boolean
is_subset
(const
isl
::
basic_set
&
set2
) const;
3980
inline
boolean
is_subset
(const
isl
::
point
&
set2
) const;
3981
inline
boolean
is_wrapping
() const;
3982
inline
boolean
isa_set
() const;
3983
inline
isl
::
set
lexmax
() const;
3984
inline
isl
::
pw_multi_aff
lexmax_pw_multi_aff
() const;
3985
inline
isl
::
set
lexmin
() const;
3986
inline
isl
::
pw_multi_aff
lexmin_pw_multi_aff
() const;
3987
inline
isl
::
set
lower_bound
(
isl
::
multi_pw_aff
lower) const;
3988
inline
isl
::
set
lower_bound
(
isl
::
multi_val
lower) const;
3989
inline
isl
::
set
lower_bound_si
(
isl
::
dim
type
,
unsigned
int
pos
,
int
value) const;
3990
inline
isl
::
set
lower_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
isl
::
val
value) const;
3991
inline
isl
::
set
lower_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
value) const;
3992
inline
isl
::
multi_pw_aff
max_multi_pw_aff
() const;
3993
inline
isl
::
val
max_val
(const
isl
::
aff
&
obj
) const;
3994
inline
isl
::
multi_pw_aff
min_multi_pw_aff
() const;
3995
inline
isl
::
val
min_val
(const
isl
::
aff
&
obj
) const;
3996
inline class
size
n_basic_set
() const;
3997
inline
isl
::
set
params
() const;
3998
inline
isl
::
val
plain_get_val_if_fixed
(
isl
::
dim
type
,
unsigned
int
pos
) const;
3999
inline
isl
::
multi_val
plain_multi_val_if_fixed
() const;
4000
inline
isl
::
multi_val
get_plain_multi_val_if_fixed
() const;
4001
inline
isl
::
basic_set
polyhedral_hull
() const;
4002
inline
isl
::
set
preimage
(
isl
::
multi_aff
ma
) const;
4003
inline
isl
::
set
preimage
(
isl
::
multi_pw_aff
mpa) const;
4004
inline
isl
::
set
preimage
(
isl
::
pw_multi_aff
pma
) const;
4005
inline
isl
::
union_set
preimage
(const
isl
::
union_pw_multi_aff
&upma) const;
4006
inline
isl
::
set
product
(
isl
::
set
set2
) const;
4007
inline
isl
::
set
project_out
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
4008
inline
isl
::
set
project_out_all_params
() const;
4009
inline
isl
::
set
project_out_param
(
isl
::
id
id
) const;
4010
inline
isl
::
set
project_out_param
(const std::
string
&
id
) const;
4011
inline
isl
::
set
project_out_param
(
isl
::
id_list
list) const;
4012
inline
isl
::
pw_multi_aff
pw_multi_aff_on_domain
(
isl
::
multi_val
mv) const;
4013
inline
isl
::
set
remove_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
n
) const;
4014
inline
isl
::
set
remove_divs
() const;
4015
inline
isl
::
set
remove_redundancies
() const;
4016
inline
isl
::
set
reset_tuple_id
() const;
4017
inline
isl
::
basic_set
sample
() const;
4018
inline
isl
::
point
sample_point
() const;
4019
inline
isl
::
set
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
,
isl
::
id
id
) const;
4020
inline
isl
::
set
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
, const std::
string
&
id
) const;
4021
inline
isl
::
set_list
set_list
() const;
4022
inline
isl
::
set
set_tuple_id
(
isl
::
id
id
) const;
4023
inline
isl
::
set
set_tuple_id
(const std::
string
&
id
) const;
4024
inline
isl
::
fixed_box
simple_fixed_box_hull
() const;
4025
inline
isl
::
fixed_box
get_simple_fixed_box_hull
() const;
4026
inline
isl
::
basic_set
simple_hull
() const;
4027
inline
isl
::
space
space
() const;
4028
inline
isl
::
space
get_space
() const;
4029
inline
isl
::
val
stride
(
int
pos
) const;
4030
inline
isl
::
val
get_stride
(
int
pos
) const;
4031
inline
isl
::
set
subtract
(
isl
::
set
set2
) const;
4032
inline
isl
::
union_set
subtract
(const
isl
::
union_set
&uset2) const;
4033
inline
isl
::
set
subtract
(const
isl
::
basic_set
&
set2
) const;
4034
inline
isl
::
set
subtract
(const
isl
::
point
&
set2
) const;
4035
inline
isl
::
set_list
to_list
() const;
4036
inline
isl
::
union_set
to_union_set
() const;
4037
inline
isl
::
map
translation
() const;
4038
inline class
size
tuple_dim
() const;
4039
inline
isl
::
id
tuple_id
() const;
4040
inline
isl
::
id
get_tuple_id
() const;
4041
inline std::
string
tuple_name
() const;
4042
inline std::
string
get_tuple_name
() const;
4043
inline
isl
::
set
unbind_params
(
isl
::
multi_id
tuple
) const;
4044
inline
isl
::
map
unbind_params_insert_domain
(
isl
::
multi_id
domain
) const;
4045
inline
isl
::
set
unite
(
isl
::
set
set2
) const;
4046
inline
isl
::
union_set
unite
(const
isl
::
union_set
&uset2) const;
4047
inline
isl
::
set
unite
(const
isl
::
basic_set
&
set2
) const;
4048
inline
isl
::
set
unite
(const
isl
::
point
&
set2
) const;
4049
static inline
isl
::
set
universe
(
isl
::
space
space
);
4050
inline
isl
::
basic_set
unshifted_simple_hull
() const;
4051
inline
isl
::
map
unwrap
() const;
4052
inline
isl
::
set
upper_bound
(
isl
::
multi_pw_aff
upper) const;
4053
inline
isl
::
set
upper_bound
(
isl
::
multi_val
upper) const;
4054
inline
isl
::
set
upper_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
isl
::
val
value) const;
4055
inline
isl
::
set
upper_bound_val
(
isl
::
dim
type
,
unsigned
int
pos
,
long
value) const;
4056
};
4057
4058
// declarations for isl::set_list
4059
inline
set_list
manage
(
__isl_take
isl_set_list
*
ptr
);
4060
inline
set_list
manage_copy
(
__isl_keep
isl_set_list
*
ptr
);
4061
4062
class
set_list
{
4063
friend
inline
set_list
manage
(
__isl_take
isl_set_list
*
ptr
);
4064
friend
inline
set_list
manage_copy
(
__isl_keep
isl_set_list
*
ptr
);
4065
4066
protected
:
4067
isl_set_list
*
ptr
=
nullptr
;
4068
4069
inline
explicit
set_list
(
__isl_take
isl_set_list
*
ptr
);
4070
4071
public
:
4072
inline
/* implicit */
set_list
();
4073
inline
/* implicit */
set_list
(
const
set_list
&
obj
);
4074
inline
explicit
set_list
(
isl::ctx
ctx
,
int
n
);
4075
inline
explicit
set_list
(
isl::set
el);
4076
inline
explicit
set_list
(
isl::ctx
ctx
,
const
std::string &
str
);
4077
inline
set_list
&
operator=
(
set_list
obj
);
4078
inline
~set_list
();
4079
inline
__isl_give
isl_set_list
*
copy
() const &;
4080
inline
__isl_give
isl_set_list
*
copy
() && = delete;
4081
inline
__isl_keep
isl_set_list
*
get
() const;
4082
inline
__isl_give
isl_set_list
*
release
();
4083
inline
bool
is_null
() const;
4084
inline
isl
::
ctx
ctx
() const;
4085
4086
inline
isl
::
set_list
add
(
isl
::
set
el) const;
4087
inline
isl
::
set
at
(
int
index) const;
4088
inline
isl
::
set
get_at
(
int
index) const;
4089
inline
isl
::
set_list
clear
() const;
4090
inline
isl
::
set_list
concat
(
isl
::
set_list
list2) const;
4091
inline
isl
::
set_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4092
inline
stat
foreach
(const std::function<
stat
(
isl
::
set
)> &
fn
) const;
4093
inline
isl
::
set_list
insert
(
unsigned
int
pos
,
isl
::
set
el) const;
4094
inline class
size
size
() const;
4095
};
4096
4097
// declarations for isl::space
4098
inline
space
manage
(
__isl_take
isl_space
*
ptr
);
4099
inline
space
manage_copy
(
__isl_keep
isl_space
*
ptr
);
4100
4101
class
space
{
4102
friend
inline
space
manage
(
__isl_take
isl_space
*
ptr
);
4103
friend
inline
space
manage_copy
(
__isl_keep
isl_space
*
ptr
);
4104
4105
protected
:
4106
isl_space
*
ptr
=
nullptr
;
4107
4108
inline
explicit
space
(
__isl_take
isl_space
*
ptr
);
4109
4110
public
:
4111
inline
/* implicit */
space
();
4112
inline
/* implicit */
space
(
const
space
&
obj
);
4113
inline
explicit
space
(
isl::ctx
ctx
,
unsigned
int
nparam,
unsigned
int
n_in,
unsigned
int
n_out);
4114
inline
explicit
space
(
isl::ctx
ctx
,
unsigned
int
nparam,
unsigned
int
dim
);
4115
inline
space
&
operator=
(
space
obj
);
4116
inline
~space
();
4117
inline
__isl_give
isl_space
*
copy
() const &;
4118
inline
__isl_give
isl_space
*
copy
() && = delete;
4119
inline
__isl_keep
isl_space
*
get
() const;
4120
inline
__isl_give
isl_space
*
release
();
4121
inline
bool
is_null
() const;
4122
inline
isl
::
ctx
ctx
() const;
4123
4124
inline
isl
::
space
add_dims
(
isl
::
dim
type
,
unsigned
int
n
) const;
4125
inline
isl
::
space
add_named_tuple
(
isl
::
id
tuple_id
,
unsigned
int
dim
) const;
4126
inline
isl
::
space
add_named_tuple
(const std::
string
&
tuple_id
,
unsigned
int
dim
) const;
4127
inline
isl
::
space
add_param
(
isl
::
id
id
) const;
4128
inline
isl
::
space
add_param
(const std::
string
&
id
) const;
4129
inline
isl
::
space
add_unnamed_tuple
(
unsigned
int
dim
) const;
4130
inline
isl
::
space
align_params
(
isl
::
space
space2) const;
4131
inline
isl
::
space
curry
() const;
4132
inline class
size
dim
(
isl
::
dim
type
) const;
4133
inline
isl
::
id
dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
4134
inline
isl
::
id
get_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
) const;
4135
inline
isl
::
space
domain
() const;
4136
inline
isl
::
multi_aff
domain_map_multi_aff
() const;
4137
inline
isl
::
pw_multi_aff
domain_map_pw_multi_aff
() const;
4138
inline
isl
::
id
domain_tuple_id
() const;
4139
inline
isl
::
id
get_domain_tuple_id
() const;
4140
inline
isl
::
space
drop_dims
(
isl
::
dim
type
,
unsigned
int
first,
unsigned
int
num) const;
4141
inline
int
find_dim_by_id
(
isl
::
dim
type
, const
isl
::
id
&
id
) const;
4142
inline
int
find_dim_by_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
4143
inline
isl
::
space
flatten_domain
() const;
4144
inline
isl
::
space
flatten_range
() const;
4145
inline
boolean
has_domain_tuple_id
() const;
4146
inline
boolean
has_equal_tuples
(const
isl
::
space
&space2) const;
4147
inline
boolean
has_range_tuple_id
() const;
4148
inline
boolean
has_tuple_id
(
isl
::
dim
type
) const;
4149
inline
boolean
has_tuple_name
(
isl
::
dim
type
) const;
4150
inline
isl
::
multi_aff
identity_multi_aff_on_domain
() const;
4151
inline
isl
::
multi_pw_aff
identity_multi_pw_aff_on_domain
() const;
4152
inline
isl
::
pw_multi_aff
identity_pw_multi_aff_on_domain
() const;
4153
inline
boolean
is_equal
(const
isl
::
space
&space2) const;
4154
inline
boolean
is_params
() const;
4155
inline
boolean
is_set
() const;
4156
inline
boolean
is_wrapping
() const;
4157
inline
isl
::
space
map_from_domain_and_range
(
isl
::
space
range
) const;
4158
inline
isl
::
space
map_from_set
() const;
4159
inline
isl
::
multi_aff
multi_aff
(
isl
::
aff_list
list) const;
4160
inline
isl
::
multi_aff
multi_aff_on_domain
(
isl
::
multi_val
mv) const;
4161
inline
isl
::
multi_id
multi_id
(
isl
::
id_list
list) const;
4162
inline
isl
::
multi_pw_aff
multi_pw_aff
(
isl
::
pw_aff_list
list) const;
4163
inline
isl
::
multi_union_pw_aff
multi_union_pw_aff
(
isl
::
union_pw_aff_list
list) const;
4164
inline
isl
::
multi_val
multi_val
(
isl
::
val_list
list) const;
4165
inline
isl
::
aff
param_aff_on_domain
(
isl
::
id
id
) const;
4166
inline
isl
::
aff
param_aff_on_domain
(const std::
string
&
id
) const;
4167
inline
isl
::
space
params
() const;
4168
static inline
isl
::
space
params_alloc
(
isl
::
ctx
ctx
,
unsigned
int
nparam);
4169
inline
isl
::
space
product
(
isl
::
space
right) const;
4170
inline
isl
::
space
range
() const;
4171
inline
isl
::
multi_aff
range_map_multi_aff
() const;
4172
inline
isl
::
pw_multi_aff
range_map_pw_multi_aff
() const;
4173
inline
isl
::
space
range_reverse
() const;
4174
inline
isl
::
id
range_tuple_id
() const;
4175
inline
isl
::
id
get_range_tuple_id
() const;
4176
inline
isl
::
space
reverse
() const;
4177
inline
isl
::
space
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
,
isl
::
id
id
) const;
4178
inline
isl
::
space
set_dim_id
(
isl
::
dim
type
,
unsigned
int
pos
, const std::
string
&
id
) const;
4179
inline
isl
::
space
set_domain_tuple
(
isl
::
id
id
) const;
4180
inline
isl
::
space
set_domain_tuple
(const std::
string
&
id
) const;
4181
inline
isl
::
space
set_from_params
() const;
4182
inline
isl
::
space
set_range_tuple
(
isl
::
id
id
) const;
4183
inline
isl
::
space
set_range_tuple
(const std::
string
&
id
) const;
4184
inline
isl
::
space
set_tuple_id
(
isl
::
dim
type
,
isl
::
id
id
) const;
4185
inline
isl
::
space
set_tuple_id
(
isl
::
dim
type
, const std::
string
&
id
) const;
4186
inline
isl
::
id
tuple_id
(
isl
::
dim
type
) const;
4187
inline
isl
::
id
get_tuple_id
(
isl
::
dim
type
) const;
4188
inline std::
string
tuple_name
(
isl
::
dim
type
) const;
4189
inline std::
string
get_tuple_name
(
isl
::
dim
type
) const;
4190
inline
isl
::
space
uncurry
() const;
4191
static inline
isl
::
space
unit
(
isl
::
ctx
ctx
);
4192
inline
isl
::
map
universe_map
() const;
4193
inline
isl
::
set
universe_set
() const;
4194
inline
isl
::
space
unwrap
() const;
4195
inline
isl
::
space
wrap
() const;
4196
inline
isl
::
aff
zero_aff_on_domain
() const;
4197
inline
isl
::
multi_aff
zero_multi_aff
() const;
4198
inline
isl
::
multi_pw_aff
zero_multi_pw_aff
() const;
4199
inline
isl
::
multi_union_pw_aff
zero_multi_union_pw_aff
() const;
4200
inline
isl
::
multi_val
zero_multi_val
() const;
4201
};
4202
4203
// declarations for isl::union_access_info
4204
inline
union_access_info
manage
(
__isl_take
isl_union_access_info
*
ptr
);
4205
inline
union_access_info
manage_copy
(
__isl_keep
isl_union_access_info
*
ptr
);
4206
4207
class
union_access_info
{
4208
friend
inline
union_access_info
manage
(
__isl_take
isl_union_access_info
*
ptr
);
4209
friend
inline
union_access_info
manage_copy
(
__isl_keep
isl_union_access_info
*
ptr
);
4210
4211
protected
:
4212
isl_union_access_info
*
ptr
=
nullptr
;
4213
4214
inline
explicit
union_access_info
(
__isl_take
isl_union_access_info
*
ptr
);
4215
4216
public
:
4217
inline
/* implicit */
union_access_info
();
4218
inline
/* implicit */
union_access_info
(
const
union_access_info
&
obj
);
4219
inline
explicit
union_access_info
(
isl::union_map
sink);
4220
inline
union_access_info
&
operator=
(
union_access_info
obj
);
4221
inline
~union_access_info
();
4222
inline
__isl_give
isl_union_access_info
*
copy
() const &;
4223
inline
__isl_give
isl_union_access_info
*
copy
() && = delete;
4224
inline
__isl_keep
isl_union_access_info
*
get
() const;
4225
inline
__isl_give
isl_union_access_info
*
release
();
4226
inline
bool
is_null
() const;
4227
inline
isl
::
ctx
ctx
() const;
4228
4229
inline
isl
::
union_flow
compute_flow
() const;
4230
inline
isl
::
union_access_info
set_kill
(
isl
::
union_map
kill) const;
4231
inline
isl
::
union_access_info
set_may_source
(
isl
::
union_map
may_source) const;
4232
inline
isl
::
union_access_info
set_must_source
(
isl
::
union_map
must_source) const;
4233
inline
isl
::
union_access_info
set_schedule
(
isl
::
schedule
schedule
) const;
4234
inline
isl
::
union_access_info
set_schedule_map
(
isl
::
union_map
schedule_map) const;
4235
};
4236
4237
// declarations for isl::union_flow
4238
inline
union_flow
manage
(
__isl_take
isl_union_flow
*
ptr
);
4239
inline
union_flow
manage_copy
(
__isl_keep
isl_union_flow
*
ptr
);
4240
4241
class
union_flow
{
4242
friend
inline
union_flow
manage
(
__isl_take
isl_union_flow
*
ptr
);
4243
friend
inline
union_flow
manage_copy
(
__isl_keep
isl_union_flow
*
ptr
);
4244
4245
protected
:
4246
isl_union_flow
*
ptr
=
nullptr
;
4247
4248
inline
explicit
union_flow
(
__isl_take
isl_union_flow
*
ptr
);
4249
4250
public
:
4251
inline
/* implicit */
union_flow
();
4252
inline
/* implicit */
union_flow
(
const
union_flow
&
obj
);
4253
inline
union_flow
&
operator=
(
union_flow
obj
);
4254
inline
~union_flow
();
4255
inline
__isl_give
isl_union_flow
*
copy
() const &;
4256
inline
__isl_give
isl_union_flow
*
copy
() && = delete;
4257
inline
__isl_keep
isl_union_flow
*
get
() const;
4258
inline
__isl_give
isl_union_flow
*
release
();
4259
inline
bool
is_null
() const;
4260
inline
isl
::
ctx
ctx
() const;
4261
4262
inline
isl
::
union_map
full_may_dependence
() const;
4263
inline
isl
::
union_map
get_full_may_dependence
() const;
4264
inline
isl
::
union_map
full_must_dependence
() const;
4265
inline
isl
::
union_map
get_full_must_dependence
() const;
4266
inline
isl
::
union_map
may_dependence
() const;
4267
inline
isl
::
union_map
get_may_dependence
() const;
4268
inline
isl
::
union_map
may_no_source
() const;
4269
inline
isl
::
union_map
get_may_no_source
() const;
4270
inline
isl
::
union_map
must_dependence
() const;
4271
inline
isl
::
union_map
get_must_dependence
() const;
4272
inline
isl
::
union_map
must_no_source
() const;
4273
inline
isl
::
union_map
get_must_no_source
() const;
4274
};
4275
4276
// declarations for isl::union_map
4277
inline
union_map
manage
(
__isl_take
isl_union_map
*
ptr
);
4278
inline
union_map
manage_copy
(
__isl_keep
isl_union_map
*
ptr
);
4279
4280
class
union_map
{
4281
friend
inline
union_map
manage
(
__isl_take
isl_union_map
*
ptr
);
4282
friend
inline
union_map
manage_copy
(
__isl_keep
isl_union_map
*
ptr
);
4283
4284
protected
:
4285
isl_union_map
*
ptr
=
nullptr
;
4286
4287
inline
explicit
union_map
(
__isl_take
isl_union_map
*
ptr
);
4288
4289
public
:
4290
inline
/* implicit */
union_map
();
4291
inline
/* implicit */
union_map
(
const
union_map
&
obj
);
4292
inline
/* implicit */
union_map
(
isl::basic_map
bmap);
4293
inline
/* implicit */
union_map
(
isl::map
map
);
4294
inline
explicit
union_map
(
isl::ctx
ctx
,
const
std::string &
str
);
4295
inline
union_map
&
operator=
(
union_map
obj
);
4296
inline
~union_map
();
4297
inline
__isl_give
isl_union_map
*
copy
() const &;
4298
inline
__isl_give
isl_union_map
*
copy
() && = delete;
4299
inline
__isl_keep
isl_union_map
*
get
() const;
4300
inline
__isl_give
isl_union_map
*
release
();
4301
inline
bool
is_null
() const;
4302
inline
isl
::
ctx
ctx
() const;
4303
4304
inline
isl
::
union_map
affine_hull
() const;
4305
inline
isl
::
union_map
apply_domain
(
isl
::
union_map
umap2) const;
4306
inline
isl
::
union_map
apply_range
(
isl
::
union_map
umap2) const;
4307
inline
isl
::
map
as_map
() const;
4308
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
4309
inline
isl
::
union_pw_multi_aff
as_union_pw_multi_aff
() const;
4310
inline
isl
::
union_set
bind_range
(
isl
::
multi_id
tuple
) const;
4311
inline
isl
::
union_map
coalesce
() const;
4312
inline
isl
::
union_map
compute_divs
() const;
4313
inline
isl
::
union_map
curry
() const;
4314
inline
isl
::
union_set
deltas
() const;
4315
inline
isl
::
union_map
detect_equalities
() const;
4316
inline
isl
::
union_set
domain
() const;
4317
inline
isl
::
union_map
domain_factor_domain
() const;
4318
inline
isl
::
union_map
domain_factor_range
() const;
4319
inline
isl
::
union_map
domain_map
() const;
4320
inline
isl
::
union_pw_multi_aff
domain_map_union_pw_multi_aff
() const;
4321
inline
isl
::
union_map
domain_product
(
isl
::
union_map
umap2) const;
4322
static inline
isl
::
union_map
empty
(
isl
::
ctx
ctx
);
4323
inline
isl
::
union_map
eq_at
(
isl
::
multi_union_pw_aff
mupa
) const;
4324
inline
boolean
every_map
(const std::function<
boolean
(
isl
::
map
)> &
test
) const;
4325
inline
isl
::
map
extract_map
(
isl
::
space
space
) const;
4326
inline
isl
::
union_map
factor_domain
() const;
4327
inline
isl
::
union_map
factor_range
() const;
4328
inline
isl
::
union_map
fixed_power
(
isl
::
val
exp) const;
4329
inline
isl
::
union_map
fixed_power
(
long
exp) const;
4330
inline
isl
::
union_map
flat_range_product
(
isl
::
union_map
umap2) const;
4331
inline
stat
foreach_map
(const std::function<
stat
(
isl
::
map
)> &
fn
) const;
4332
static inline
isl
::
union_map
from
(
isl
::
multi_union_pw_aff
mupa
);
4333
static inline
isl
::
union_map
from
(
isl
::
union_pw_multi_aff
upma);
4334
static inline
isl
::
union_map
from_domain
(
isl
::
union_set
uset);
4335
static inline
isl
::
union_map
from_domain_and_range
(
isl
::
union_set
domain
,
isl
::
union_set
range
);
4336
static inline
isl
::
union_map
from_range
(
isl
::
union_set
uset);
4337
inline
isl
::
union_map
gist
(
isl
::
union_map
context
) const;
4338
inline
isl
::
union_map
gist_domain
(
isl
::
union_set
uset) const;
4339
inline
isl
::
union_map
gist_params
(
isl
::
set
set
) const;
4340
inline
isl
::
union_map
gist_range
(
isl
::
union_set
uset) const;
4341
inline
isl
::
union_map
intersect
(
isl
::
union_map
umap2) const;
4342
inline
isl
::
union_map
intersect_domain
(
isl
::
space
space
) const;
4343
inline
isl
::
union_map
intersect_domain
(
isl
::
union_set
uset) const;
4344
inline
isl
::
union_map
intersect_domain_factor_domain
(
isl
::
union_map
factor) const;
4345
inline
isl
::
union_map
intersect_domain_factor_range
(
isl
::
union_map
factor) const;
4346
inline
isl
::
union_map
intersect_params
(
isl
::
set
set
) const;
4347
inline
isl
::
union_map
intersect_range
(
isl
::
space
space
) const;
4348
inline
isl
::
union_map
intersect_range
(
isl
::
union_set
uset) const;
4349
inline
isl
::
union_map
intersect_range_factor_domain
(
isl
::
union_map
factor) const;
4350
inline
isl
::
union_map
intersect_range_factor_range
(
isl
::
union_map
factor) const;
4351
inline
boolean
is_bijective
() const;
4352
inline
boolean
is_disjoint
(const
isl
::
union_map
&umap2) const;
4353
inline
boolean
is_empty
() const;
4354
inline
boolean
is_equal
(const
isl
::
union_map
&umap2) const;
4355
inline
boolean
is_injective
() const;
4356
inline
boolean
is_single_valued
() const;
4357
inline
boolean
is_strict_subset
(const
isl
::
union_map
&umap2) const;
4358
inline
boolean
is_subset
(const
isl
::
union_map
&umap2) const;
4359
inline
boolean
isa_map
() const;
4360
inline
isl
::
union_map
lexmax
() const;
4361
inline
isl
::
union_map
lexmin
() const;
4362
inline
isl
::
map_list
map_list
() const;
4363
inline
isl
::
map_list
get_map_list
() const;
4364
inline
isl
::
set
params
() const;
4365
inline
isl
::
union_map
polyhedral_hull
() const;
4366
inline
isl
::
union_map
preimage_domain
(
isl
::
multi_aff
ma
) const;
4367
inline
isl
::
union_map
preimage_domain
(
isl
::
multi_pw_aff
mpa) const;
4368
inline
isl
::
union_map
preimage_domain
(
isl
::
pw_multi_aff
pma
) const;
4369
inline
isl
::
union_map
preimage_domain
(
isl
::
union_pw_multi_aff
upma) const;
4370
inline
isl
::
union_map
preimage_range
(
isl
::
multi_aff
ma
) const;
4371
inline
isl
::
union_map
preimage_range
(
isl
::
pw_multi_aff
pma
) const;
4372
inline
isl
::
union_map
preimage_range
(
isl
::
union_pw_multi_aff
upma) const;
4373
inline
isl
::
union_map
product
(
isl
::
union_map
umap2) const;
4374
inline
isl
::
union_map
project_out_all_params
() const;
4375
inline
isl
::
union_set
range
() const;
4376
inline
isl
::
union_map
range_factor_domain
() const;
4377
inline
isl
::
union_map
range_factor_range
() const;
4378
inline
isl
::
union_map
range_map
() const;
4379
inline
isl
::
union_map
range_product
(
isl
::
union_map
umap2) const;
4380
inline
isl
::
union_map
range_reverse
() const;
4381
inline
isl
::
union_map
reverse
() const;
4382
inline
isl
::
space
space
() const;
4383
inline
isl
::
space
get_space
() const;
4384
inline
isl
::
union_map
subtract
(
isl
::
union_map
umap2) const;
4385
inline
isl
::
union_map
subtract_domain
(
isl
::
union_set
dom) const;
4386
inline
isl
::
union_map
subtract_range
(
isl
::
union_set
dom) const;
4387
inline
isl
::
union_map
uncurry
() const;
4388
inline
isl
::
union_map
unite
(
isl
::
union_map
umap2) const;
4389
inline
isl
::
union_map
universe
() const;
4390
inline
isl
::
union_set
wrap
() const;
4391
inline
isl
::
union_map
zip
() const;
4392
};
4393
4394
// declarations for isl::union_pw_aff
4395
inline
union_pw_aff
manage
(
__isl_take
isl_union_pw_aff
*
ptr
);
4396
inline
union_pw_aff
manage_copy
(
__isl_keep
isl_union_pw_aff
*
ptr
);
4397
4398
class
union_pw_aff
{
4399
friend
inline
union_pw_aff
manage
(
__isl_take
isl_union_pw_aff
*
ptr
);
4400
friend
inline
union_pw_aff
manage_copy
(
__isl_keep
isl_union_pw_aff
*
ptr
);
4401
4402
protected
:
4403
isl_union_pw_aff
*
ptr
=
nullptr
;
4404
4405
inline
explicit
union_pw_aff
(
__isl_take
isl_union_pw_aff
*
ptr
);
4406
4407
public
:
4408
inline
/* implicit */
union_pw_aff
();
4409
inline
/* implicit */
union_pw_aff
(
const
union_pw_aff
&
obj
);
4410
inline
/* implicit */
union_pw_aff
(
isl::aff
aff
);
4411
inline
/* implicit */
union_pw_aff
(
isl::pw_aff
pa
);
4412
inline
explicit
union_pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
4413
inline
explicit
union_pw_aff
(
isl::union_set
domain
,
isl::val
v);
4414
inline
union_pw_aff
&
operator=
(
union_pw_aff
obj
);
4415
inline
~union_pw_aff
();
4416
inline
__isl_give
isl_union_pw_aff
*
copy
() const &;
4417
inline
__isl_give
isl_union_pw_aff
*
copy
() && = delete;
4418
inline
__isl_keep
isl_union_pw_aff
*
get
() const;
4419
inline
__isl_give
isl_union_pw_aff
*
release
();
4420
inline
bool
is_null
() const;
4421
inline
isl
::
ctx
ctx
() const;
4422
4423
inline
isl
::
multi_union_pw_aff
add
(const
isl
::
multi_union_pw_aff
&multi2) const;
4424
inline
isl
::
union_pw_aff
add
(
isl
::
union_pw_aff
upa2) const;
4425
inline
isl
::
union_pw_multi_aff
add
(const
isl
::
union_pw_multi_aff
&upma2) const;
4426
inline
isl
::
union_pw_aff
add
(const
isl
::
aff
&upa2) const;
4427
inline
isl
::
union_pw_aff
add
(const
isl
::
pw_aff
&upa2) const;
4428
inline
isl
::
union_pw_multi_aff
add_pw_multi_aff
(const
isl
::
pw_multi_aff
&
pma
) const;
4429
inline
isl
::
union_pw_multi_aff
apply
(const
isl
::
union_pw_multi_aff
&upma2) const;
4430
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
4431
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
4432
inline
isl
::
union_map
as_union_map
() const;
4433
inline
isl
::
union_pw_aff
at
(
int
pos
) const;
4434
inline
isl
::
union_set
bind
(const
isl
::
multi_id
&
tuple
) const;
4435
inline
isl
::
union_set
bind
(
isl
::
id
id
) const;
4436
inline
isl
::
union_set
bind
(const std::
string
&
id
) const;
4437
inline
isl
::
union_pw_aff
coalesce
() const;
4438
inline class
size
dim
(
isl
::
dim
type
) const;
4439
inline
isl
::
union_set
domain
() const;
4440
static inline
isl
::
union_pw_aff
empty
(
isl
::
space
space
);
4441
inline
isl
::
pw_multi_aff
extract_pw_multi_aff
(const
isl
::
space
&
space
) const;
4442
inline
isl
::
multi_union_pw_aff
flat_range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
4443
inline
isl
::
union_pw_multi_aff
flat_range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
4444
inline
stat
foreach_pw_aff
(const std::function<
stat
(
isl
::
pw_aff
)> &
fn
) const;
4445
inline
isl
::
union_pw_aff
gist
(
isl
::
union_set
context
) const;
4446
inline
boolean
has_range_tuple_id
() const;
4447
inline
isl
::
union_pw_aff
intersect_domain
(
isl
::
space
space
) const;
4448
inline
isl
::
union_pw_aff
intersect_domain
(
isl
::
union_set
uset) const;
4449
inline
isl
::
union_pw_aff
intersect_domain_wrapped_domain
(
isl
::
union_set
uset) const;
4450
inline
isl
::
union_pw_aff
intersect_domain_wrapped_range
(
isl
::
union_set
uset) const;
4451
inline
isl
::
union_pw_aff
intersect_params
(
isl
::
set
set
) const;
4452
inline
boolean
involves_locals
() const;
4453
inline
boolean
involves_nan
() const;
4454
inline
boolean
isa_pw_multi_aff
() const;
4455
inline
isl
::
union_pw_aff_list
list
() const;
4456
inline
isl
::
multi_union_pw_aff
neg
() const;
4457
inline
boolean
plain_is_empty
() const;
4458
inline
boolean
plain_is_equal
(const
isl
::
multi_union_pw_aff
&multi2) const;
4459
inline
isl
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(const
isl
::
union_pw_multi_aff
&upma2) const;
4460
inline
isl
::
union_pw_aff
pullback
(
isl
::
union_pw_multi_aff
upma) const;
4461
inline
isl
::
pw_multi_aff_list
pw_multi_aff_list
() const;
4462
inline
isl
::
union_pw_multi_aff
range_factor_domain
() const;
4463
inline
isl
::
union_pw_multi_aff
range_factor_range
() const;
4464
inline
isl
::
multi_union_pw_aff
range_product
(const
isl
::
multi_union_pw_aff
&multi2) const;
4465
inline
isl
::
union_pw_multi_aff
range_product
(const
isl
::
union_pw_multi_aff
&upma2) const;
4466
inline
isl
::
id
range_tuple_id
() const;
4467
inline
isl
::
multi_union_pw_aff
reset_range_tuple_id
() const;
4468
inline
isl
::
multi_union_pw_aff
reset_tuple_id
(
isl
::
dim
type
) const;
4469
inline
isl
::
multi_union_pw_aff
scale
(const
isl
::
multi_val
&mv) const;
4470
inline
isl
::
multi_union_pw_aff
scale
(const
isl
::
val
&v) const;
4471
inline
isl
::
multi_union_pw_aff
scale
(
long
v) const;
4472
inline
isl
::
multi_union_pw_aff
scale_down
(const
isl
::
multi_val
&mv) const;
4473
inline
isl
::
multi_union_pw_aff
scale_down
(const
isl
::
val
&v) const;
4474
inline
isl
::
multi_union_pw_aff
scale_down
(
long
v) const;
4475
inline
isl
::
multi_union_pw_aff
set_at
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
4476
inline
isl
::
multi_union_pw_aff
set_range_tuple
(const
isl
::
id
&
id
) const;
4477
inline
isl
::
multi_union_pw_aff
set_range_tuple
(const std::
string
&
id
) const;
4478
inline
isl
::
multi_union_pw_aff
set_union_pw_aff
(
int
pos
, const
isl
::
union_pw_aff
&el) const;
4479
inline class
size
size
() const;
4480
inline
isl
::
space
space
() const;
4481
inline
isl
::
space
get_space
() const;
4482
inline
isl
::
multi_union_pw_aff
sub
(const
isl
::
multi_union_pw_aff
&multi2) const;
4483
inline
isl
::
union_pw_aff
sub
(
isl
::
union_pw_aff
upa2) const;
4484
inline
isl
::
union_pw_multi_aff
sub
(const
isl
::
union_pw_multi_aff
&upma2) const;
4485
inline
isl
::
union_pw_aff
sub
(const
isl
::
aff
&upa2) const;
4486
inline
isl
::
union_pw_aff
sub
(const
isl
::
pw_aff
&upa2) const;
4487
inline
isl
::
union_pw_aff
subtract_domain
(
isl
::
space
space
) const;
4488
inline
isl
::
union_pw_aff
subtract_domain
(
isl
::
union_set
uset) const;
4489
inline
isl
::
union_pw_aff_list
to_list
() const;
4490
inline
isl
::
multi_union_pw_aff
union_add
(const
isl
::
multi_union_pw_aff
&mupa2) const;
4491
inline
isl
::
union_pw_aff
union_add
(
isl
::
union_pw_aff
upa2) const;
4492
inline
isl
::
union_pw_multi_aff
union_add
(const
isl
::
union_pw_multi_aff
&upma2) const;
4493
inline
isl
::
union_pw_aff
union_add
(const
isl
::
aff
&upa2) const;
4494
inline
isl
::
union_pw_aff
union_add
(const
isl
::
pw_aff
&upa2) const;
4495
};
4496
4497
// declarations for isl::union_pw_aff_list
4498
inline
union_pw_aff_list
manage
(
__isl_take
isl_union_pw_aff_list *
ptr
);
4499
inline
union_pw_aff_list
manage_copy
(
__isl_keep
isl_union_pw_aff_list *
ptr
);
4500
4501
class
union_pw_aff_list
{
4502
friend
inline
union_pw_aff_list
manage
(
__isl_take
isl_union_pw_aff_list *
ptr
);
4503
friend
inline
union_pw_aff_list
manage_copy
(
__isl_keep
isl_union_pw_aff_list *
ptr
);
4504
4505
protected
:
4506
isl_union_pw_aff_list *
ptr
=
nullptr
;
4507
4508
inline
explicit
union_pw_aff_list
(
__isl_take
isl_union_pw_aff_list *
ptr
);
4509
4510
public
:
4511
inline
/* implicit */
union_pw_aff_list
();
4512
inline
/* implicit */
union_pw_aff_list
(
const
union_pw_aff_list
&
obj
);
4513
inline
explicit
union_pw_aff_list
(
isl::ctx
ctx
,
int
n
);
4514
inline
explicit
union_pw_aff_list
(
isl::union_pw_aff
el);
4515
inline
explicit
union_pw_aff_list
(
isl::ctx
ctx
,
const
std::string &
str
);
4516
inline
union_pw_aff_list
&
operator=
(
union_pw_aff_list
obj
);
4517
inline
~union_pw_aff_list
();
4518
inline
__isl_give
isl_union_pw_aff_list *
copy
() const &;
4519
inline
__isl_give
isl_union_pw_aff_list *
copy
() && = delete;
4520
inline
__isl_keep
isl_union_pw_aff_list *
get
() const;
4521
inline
__isl_give
isl_union_pw_aff_list *
release
();
4522
inline
bool
is_null
() const;
4523
inline
isl
::
ctx
ctx
() const;
4524
4525
inline
isl
::
union_pw_aff_list
add
(
isl
::
union_pw_aff
el) const;
4526
inline
isl
::
union_pw_aff
at
(
int
index) const;
4527
inline
isl
::
union_pw_aff
get_at
(
int
index) const;
4528
inline
isl
::
union_pw_aff_list
clear
() const;
4529
inline
isl
::
union_pw_aff_list
concat
(
isl
::
union_pw_aff_list
list2) const;
4530
inline
isl
::
union_pw_aff_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4531
inline
stat
foreach
(const std::function<
stat
(
isl
::
union_pw_aff
)> &
fn
) const;
4532
inline
isl
::
union_pw_aff_list
insert
(
unsigned
int
pos
,
isl
::
union_pw_aff
el) const;
4533
inline class
size
size
() const;
4534
};
4535
4536
// declarations for isl::union_pw_multi_aff
4537
inline
union_pw_multi_aff
manage
(
__isl_take
isl_union_pw_multi_aff
*
ptr
);
4538
inline
union_pw_multi_aff
manage_copy
(
__isl_keep
isl_union_pw_multi_aff
*
ptr
);
4539
4540
class
union_pw_multi_aff
{
4541
friend
inline
union_pw_multi_aff
manage
(
__isl_take
isl_union_pw_multi_aff
*
ptr
);
4542
friend
inline
union_pw_multi_aff
manage_copy
(
__isl_keep
isl_union_pw_multi_aff
*
ptr
);
4543
4544
protected
:
4545
isl_union_pw_multi_aff
*
ptr
=
nullptr
;
4546
4547
inline
explicit
union_pw_multi_aff
(
__isl_take
isl_union_pw_multi_aff
*
ptr
);
4548
4549
public
:
4550
inline
/* implicit */
union_pw_multi_aff
();
4551
inline
/* implicit */
union_pw_multi_aff
(
const
union_pw_multi_aff
&
obj
);
4552
inline
explicit
union_pw_multi_aff
(
isl::union_set
uset);
4553
inline
/* implicit */
union_pw_multi_aff
(
isl::multi_aff
ma
);
4554
inline
/* implicit */
union_pw_multi_aff
(
isl::pw_multi_aff
pma
);
4555
inline
explicit
union_pw_multi_aff
(
isl::union_map
umap);
4556
inline
/* implicit */
union_pw_multi_aff
(
isl::union_pw_aff
upa);
4557
inline
explicit
union_pw_multi_aff
(
isl::ctx
ctx
,
const
std::string &
str
);
4558
inline
union_pw_multi_aff
&
operator=
(
union_pw_multi_aff
obj
);
4559
inline
~union_pw_multi_aff
();
4560
inline
__isl_give
isl_union_pw_multi_aff
*
copy
() const &;
4561
inline
__isl_give
isl_union_pw_multi_aff
*
copy
() && = delete;
4562
inline
__isl_keep
isl_union_pw_multi_aff
*
get
() const;
4563
inline
__isl_give
isl_union_pw_multi_aff
*
release
();
4564
inline
bool
is_null
() const;
4565
inline
isl
::
ctx
ctx
() const;
4566
4567
inline
isl
::
union_pw_multi_aff
add
(
isl
::
union_pw_multi_aff
upma2) const;
4568
inline
isl
::
union_pw_multi_aff
add_pw_multi_aff
(
isl
::
pw_multi_aff
pma
) const;
4569
inline
isl
::
union_pw_multi_aff
apply
(
isl
::
union_pw_multi_aff
upma2) const;
4570
inline
isl
::
multi_union_pw_aff
as_multi_union_pw_aff
() const;
4571
inline
isl
::
pw_multi_aff
as_pw_multi_aff
() const;
4572
inline
isl
::
union_map
as_union_map
() const;
4573
inline
isl
::
union_pw_multi_aff
coalesce
() const;
4574
inline
isl
::
union_set
domain
() const;
4575
static inline
isl
::
union_pw_multi_aff
empty
(
isl
::
space
space
);
4576
static inline
isl
::
union_pw_multi_aff
empty
(
isl
::
ctx
ctx
);
4577
inline
isl
::
pw_multi_aff
extract_pw_multi_aff
(
isl
::
space
space
) const;
4578
inline
isl
::
union_pw_multi_aff
flat_range_product
(
isl
::
union_pw_multi_aff
upma2) const;
4579
inline
isl
::
union_pw_multi_aff
gist
(
isl
::
union_set
context
) const;
4580
inline
isl
::
union_pw_multi_aff
intersect_domain
(
isl
::
space
space
) const;
4581
inline
isl
::
union_pw_multi_aff
intersect_domain
(
isl
::
union_set
uset) const;
4582
inline
isl
::
union_pw_multi_aff
intersect_domain_wrapped_domain
(
isl
::
union_set
uset) const;
4583
inline
isl
::
union_pw_multi_aff
intersect_domain_wrapped_range
(
isl
::
union_set
uset) const;
4584
inline
isl
::
union_pw_multi_aff
intersect_params
(
isl
::
set
set
) const;
4585
inline
boolean
involves_locals
() const;
4586
inline
boolean
isa_pw_multi_aff
() const;
4587
inline
boolean
plain_is_empty
() const;
4588
inline
isl
::
union_pw_multi_aff
preimage_domain_wrapped_domain
(
isl
::
union_pw_multi_aff
upma2) const;
4589
inline
isl
::
union_pw_multi_aff
pullback
(
isl
::
union_pw_multi_aff
upma2) const;
4590
inline
isl
::
pw_multi_aff_list
pw_multi_aff_list
() const;
4591
inline
isl
::
pw_multi_aff_list
get_pw_multi_aff_list
() const;
4592
inline
isl
::
union_pw_multi_aff
range_factor_domain
() const;
4593
inline
isl
::
union_pw_multi_aff
range_factor_range
() const;
4594
inline
isl
::
union_pw_multi_aff
range_product
(
isl
::
union_pw_multi_aff
upma2) const;
4595
inline
isl
::
space
space
() const;
4596
inline
isl
::
space
get_space
() const;
4597
inline
isl
::
union_pw_multi_aff
sub
(
isl
::
union_pw_multi_aff
upma2) const;
4598
inline
isl
::
union_pw_multi_aff
subtract_domain
(
isl
::
space
space
) const;
4599
inline
isl
::
union_pw_multi_aff
subtract_domain
(
isl
::
union_set
uset) const;
4600
inline
isl
::
union_pw_multi_aff
union_add
(
isl
::
union_pw_multi_aff
upma2) const;
4601
};
4602
4603
// declarations for isl::union_set
4604
inline
union_set
manage
(
__isl_take
isl_union_set
*
ptr
);
4605
inline
union_set
manage_copy
(
__isl_keep
isl_union_set
*
ptr
);
4606
4607
class
union_set
{
4608
friend
inline
union_set
manage
(
__isl_take
isl_union_set
*
ptr
);
4609
friend
inline
union_set
manage_copy
(
__isl_keep
isl_union_set
*
ptr
);
4610
4611
protected
:
4612
isl_union_set
*
ptr
=
nullptr
;
4613
4614
inline
explicit
union_set
(
__isl_take
isl_union_set
*
ptr
);
4615
4616
public
:
4617
inline
/* implicit */
union_set
();
4618
inline
/* implicit */
union_set
(
const
union_set
&
obj
);
4619
inline
/* implicit */
union_set
(
isl::basic_set
bset);
4620
inline
/* implicit */
union_set
(
isl::point
pnt);
4621
inline
/* implicit */
union_set
(
isl::set
set
);
4622
inline
explicit
union_set
(
isl::ctx
ctx
,
const
std::string &
str
);
4623
inline
union_set
&
operator=
(
union_set
obj
);
4624
inline
~union_set
();
4625
inline
__isl_give
isl_union_set
*
copy
() const &;
4626
inline
__isl_give
isl_union_set
*
copy
() && = delete;
4627
inline
__isl_keep
isl_union_set
*
get
() const;
4628
inline
__isl_give
isl_union_set
*
release
();
4629
inline
bool
is_null
() const;
4630
inline
isl
::
ctx
ctx
() const;
4631
4632
inline
isl
::
union_set
affine_hull
() const;
4633
inline
isl
::
union_set
apply
(
isl
::
union_map
umap) const;
4634
inline
isl
::
set
as_set
() const;
4635
inline
isl
::
union_set
coalesce
() const;
4636
inline
isl
::
union_set
compute_divs
() const;
4637
inline
boolean
contains
(const
isl
::
space
&
space
) const;
4638
inline
isl
::
union_set
detect_equalities
() const;
4639
static inline
isl
::
union_set
empty
(
isl
::
ctx
ctx
);
4640
inline
boolean
every_set
(const std::function<
boolean
(
isl
::
set
)> &
test
) const;
4641
inline
isl
::
set
extract_set
(
isl
::
space
space
) const;
4642
inline
stat
foreach_point
(const std::function<
stat
(
isl
::
point
)> &
fn
) const;
4643
inline
stat
foreach_set
(const std::function<
stat
(
isl
::
set
)> &
fn
) const;
4644
inline
isl
::
union_set
gist
(
isl
::
union_set
context
) const;
4645
inline
isl
::
union_set
gist_params
(
isl
::
set
set
) const;
4646
inline
isl
::
union_map
identity
() const;
4647
inline
isl
::
union_pw_multi_aff
identity_union_pw_multi_aff
() const;
4648
inline
isl
::
union_set
intersect
(
isl
::
union_set
uset2) const;
4649
inline
isl
::
union_set
intersect_params
(
isl
::
set
set
) const;
4650
inline
boolean
is_disjoint
(const
isl
::
union_set
&uset2) const;
4651
inline
boolean
is_empty
() const;
4652
inline
boolean
is_equal
(const
isl
::
union_set
&uset2) const;
4653
inline
boolean
is_strict_subset
(const
isl
::
union_set
&uset2) const;
4654
inline
boolean
is_subset
(const
isl
::
union_set
&uset2) const;
4655
inline
boolean
isa_set
() const;
4656
inline
isl
::
union_set
lexmax
() const;
4657
inline
isl
::
union_set
lexmin
() const;
4658
inline
isl
::
set
params
() const;
4659
inline
isl
::
union_set
polyhedral_hull
() const;
4660
inline
isl
::
union_set
preimage
(
isl
::
multi_aff
ma
) const;
4661
inline
isl
::
union_set
preimage
(
isl
::
pw_multi_aff
pma
) const;
4662
inline
isl
::
union_set
preimage
(
isl
::
union_pw_multi_aff
upma) const;
4663
inline
isl
::
point
sample_point
() const;
4664
inline
isl
::
set_list
set_list
() const;
4665
inline
isl
::
set_list
get_set_list
() const;
4666
inline
isl
::
space
space
() const;
4667
inline
isl
::
space
get_space
() const;
4668
inline
isl
::
union_set
subtract
(
isl
::
union_set
uset2) const;
4669
inline
isl
::
union_set_list
to_list
() const;
4670
inline
isl
::
union_set
unite
(
isl
::
union_set
uset2) const;
4671
inline
isl
::
union_set
universe
() const;
4672
inline
isl
::
union_map
unwrap
() const;
4673
};
4674
4675
// declarations for isl::union_set_list
4676
inline
union_set_list
manage
(
__isl_take
isl_union_set_list
*
ptr
);
4677
inline
union_set_list
manage_copy
(
__isl_keep
isl_union_set_list
*
ptr
);
4678
4679
class
union_set_list
{
4680
friend
inline
union_set_list
manage
(
__isl_take
isl_union_set_list
*
ptr
);
4681
friend
inline
union_set_list
manage_copy
(
__isl_keep
isl_union_set_list
*
ptr
);
4682
4683
protected
:
4684
isl_union_set_list
*
ptr
=
nullptr
;
4685
4686
inline
explicit
union_set_list
(
__isl_take
isl_union_set_list
*
ptr
);
4687
4688
public
:
4689
inline
/* implicit */
union_set_list
();
4690
inline
/* implicit */
union_set_list
(
const
union_set_list
&
obj
);
4691
inline
explicit
union_set_list
(
isl::ctx
ctx
,
int
n
);
4692
inline
explicit
union_set_list
(
isl::union_set
el);
4693
inline
explicit
union_set_list
(
isl::ctx
ctx
,
const
std::string &
str
);
4694
inline
union_set_list
&
operator=
(
union_set_list
obj
);
4695
inline
~union_set_list
();
4696
inline
__isl_give
isl_union_set_list
*
copy
() const &;
4697
inline
__isl_give
isl_union_set_list
*
copy
() && = delete;
4698
inline
__isl_keep
isl_union_set_list
*
get
() const;
4699
inline
__isl_give
isl_union_set_list
*
release
();
4700
inline
bool
is_null
() const;
4701
inline
isl
::
ctx
ctx
() const;
4702
4703
inline
isl
::
union_set_list
add
(
isl
::
union_set
el) const;
4704
inline
isl
::
union_set
at
(
int
index) const;
4705
inline
isl
::
union_set
get_at
(
int
index) const;
4706
inline
isl
::
union_set_list
clear
() const;
4707
inline
isl
::
union_set_list
concat
(
isl
::
union_set_list
list2) const;
4708
inline
isl
::
union_set_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4709
inline
stat
foreach
(const std::function<
stat
(
isl
::
union_set
)> &
fn
) const;
4710
inline
isl
::
union_set_list
insert
(
unsigned
int
pos
,
isl
::
union_set
el) const;
4711
inline class
size
size
() const;
4712
};
4713
4714
// declarations for isl::val
4715
inline
val
manage
(
__isl_take
isl_val
*
ptr
);
4716
inline
val
manage_copy
(
__isl_keep
isl_val
*
ptr
);
4717
4718
class
val
{
4719
friend
inline
val
manage
(
__isl_take
isl_val
*
ptr
);
4720
friend
inline
val
manage_copy
(
__isl_keep
isl_val
*
ptr
);
4721
4722
protected
:
4723
isl_val
*
ptr
=
nullptr
;
4724
4725
inline
explicit
val
(
__isl_take
isl_val
*
ptr
);
4726
4727
public
:
4728
inline
/* implicit */
val
();
4729
inline
/* implicit */
val
(
const
val
&
obj
);
4730
inline
explicit
val
(
isl::ctx
ctx
,
long
i);
4731
inline
explicit
val
(
isl::ctx
ctx
,
const
std::string &
str
);
4732
inline
val
&
operator=
(
val
obj
);
4733
inline
~val
();
4734
inline
__isl_give
isl_val
*
copy
() const &;
4735
inline
__isl_give
isl_val
*
copy
() && = delete;
4736
inline
__isl_keep
isl_val
*
get
() const;
4737
inline
__isl_give
isl_val
*
release
();
4738
inline
bool
is_null
() const;
4739
inline
isl
::
ctx
ctx
() const;
4740
4741
inline
isl
::
val
abs
() const;
4742
inline
boolean
abs_eq
(const
isl
::
val
&v2) const;
4743
inline
boolean
abs_eq
(
long
v2) const;
4744
inline
isl
::
val
add
(
isl
::
val
v2) const;
4745
inline
isl
::
val
add
(
long
v2) const;
4746
inline
isl
::
val
ceil
() const;
4747
inline
int
cmp_si
(
long
i) const;
4748
inline
long
den_si
() const;
4749
inline
long
get_den_si
() const;
4750
inline
isl
::
val
div
(
isl
::
val
v2) const;
4751
inline
isl
::
val
div
(
long
v2) const;
4752
inline
boolean
eq
(const
isl
::
val
&v2) const;
4753
inline
boolean
eq
(
long
v2) const;
4754
inline
isl
::
val
floor
() const;
4755
inline
isl
::
val
gcd
(
isl
::
val
v2) const;
4756
inline
isl
::
val
gcd
(
long
v2) const;
4757
inline
boolean
ge
(const
isl
::
val
&v2) const;
4758
inline
boolean
ge
(
long
v2) const;
4759
inline
boolean
gt
(const
isl
::
val
&v2) const;
4760
inline
boolean
gt
(
long
v2) const;
4761
static inline
isl
::
val
infty
(
isl
::
ctx
ctx
);
4762
static inline
isl
::
val
int_from_ui
(
isl
::
ctx
ctx
,
unsigned
long
u);
4763
inline
isl
::
val
inv
() const;
4764
inline
boolean
is_divisible_by
(const
isl
::
val
&v2) const;
4765
inline
boolean
is_divisible_by
(
long
v2) const;
4766
inline
boolean
is_infty
() const;
4767
inline
boolean
is_int
() const;
4768
inline
boolean
is_nan
() const;
4769
inline
boolean
is_neg
() const;
4770
inline
boolean
is_neginfty
() const;
4771
inline
boolean
is_negone
() const;
4772
inline
boolean
is_nonneg
() const;
4773
inline
boolean
is_nonpos
() const;
4774
inline
boolean
is_one
() const;
4775
inline
boolean
is_pos
() const;
4776
inline
boolean
is_rat
() const;
4777
inline
boolean
is_zero
() const;
4778
inline
boolean
le
(const
isl
::
val
&v2) const;
4779
inline
boolean
le
(
long
v2) const;
4780
inline
boolean
lt
(const
isl
::
val
&v2) const;
4781
inline
boolean
lt
(
long
v2) const;
4782
inline
isl
::
val
max
(
isl
::
val
v2) const;
4783
inline
isl
::
val
max
(
long
v2) const;
4784
inline
isl
::
val
min
(
isl
::
val
v2) const;
4785
inline
isl
::
val
min
(
long
v2) const;
4786
inline
isl
::
val
mod
(
isl
::
val
v2) const;
4787
inline
isl
::
val
mod
(
long
v2) const;
4788
inline
isl
::
val
mul
(
isl
::
val
v2) const;
4789
inline
isl
::
val
mul
(
long
v2) const;
4790
static inline
isl
::
val
nan
(
isl
::
ctx
ctx
);
4791
inline
boolean
ne
(const
isl
::
val
&v2) const;
4792
inline
boolean
ne
(
long
v2) const;
4793
inline
isl
::
val
neg
() const;
4794
static inline
isl
::
val
neginfty
(
isl
::
ctx
ctx
);
4795
static inline
isl
::
val
negone
(
isl
::
ctx
ctx
);
4796
inline
long
num_si
() const;
4797
inline
long
get_num_si
() const;
4798
static inline
isl
::
val
one
(
isl
::
ctx
ctx
);
4799
inline
isl
::
val
pow2
() const;
4800
inline
int
sgn
() const;
4801
inline
isl
::
val
sub
(
isl
::
val
v2) const;
4802
inline
isl
::
val
sub
(
long
v2) const;
4803
inline
isl
::
val_list
to_list
() const;
4804
inline
isl
::
val
trunc
() const;
4805
static inline
isl
::
val
zero
(
isl
::
ctx
ctx
);
4806
};
4807
4808
// declarations for isl::val_list
4809
inline
val_list
manage
(
__isl_take
isl_val_list *
ptr
);
4810
inline
val_list
manage_copy
(
__isl_keep
isl_val_list *
ptr
);
4811
4812
class
val_list
{
4813
friend
inline
val_list
manage
(
__isl_take
isl_val_list *
ptr
);
4814
friend
inline
val_list
manage_copy
(
__isl_keep
isl_val_list *
ptr
);
4815
4816
protected
:
4817
isl_val_list *
ptr
=
nullptr
;
4818
4819
inline
explicit
val_list
(
__isl_take
isl_val_list *
ptr
);
4820
4821
public
:
4822
inline
/* implicit */
val_list
();
4823
inline
/* implicit */
val_list
(
const
val_list
&
obj
);
4824
inline
explicit
val_list
(
isl::ctx
ctx
,
int
n
);
4825
inline
explicit
val_list
(
isl::val
el);
4826
inline
explicit
val_list
(
isl::ctx
ctx
,
const
std::string &
str
);
4827
inline
val_list
&
operator=
(
val_list
obj
);
4828
inline
~val_list
();
4829
inline
__isl_give
isl_val_list *
copy
() const &;
4830
inline
__isl_give
isl_val_list *
copy
() && = delete;
4831
inline
__isl_keep
isl_val_list *
get
() const;
4832
inline
__isl_give
isl_val_list *
release
();
4833
inline
bool
is_null
() const;
4834
inline
isl
::
ctx
ctx
() const;
4835
4836
inline
isl
::
val_list
add
(
isl
::
val
el) const;
4837
inline
isl
::
val_list
add
(
long
el) const;
4838
inline
isl
::
val
at
(
int
index) const;
4839
inline
isl
::
val
get_at
(
int
index) const;
4840
inline
isl
::
val_list
clear
() const;
4841
inline
isl
::
val_list
concat
(
isl
::
val_list
list2) const;
4842
inline
isl
::
val_list
drop
(
unsigned
int
first,
unsigned
int
n
) const;
4843
inline
stat
foreach
(const std::function<
stat
(
isl
::
val
)> &
fn
) const;
4844
inline
isl
::
val_list
insert
(
unsigned
int
pos
,
isl
::
val
el) const;
4845
inline
isl
::
val_list
insert
(
unsigned
int
pos
,
long
el) const;
4846
inline class
size
size
() const;
4847
};
4848
4849
// implementations for isl::aff
4850
aff
manage
(
__isl_take
isl_aff
*
ptr
) {
4851
return
aff
(
ptr
);
4852
}
4853
aff
manage_copy
(
__isl_keep
isl_aff
*
ptr
) {
4854
ptr
=
isl_aff_copy
(
ptr
);
4855
return
aff
(
ptr
);
4856
}
4857
4858
aff::aff
()
4859
:
ptr
(nullptr) {}
4860
4861
aff::aff
(
const
aff
&
obj
)
4862
:
ptr
(nullptr)
4863
{
4864
ptr
=
obj
.copy();
4865
}
4866
4867
aff::aff
(
__isl_take
isl_aff
*
ptr
)
4868
:
ptr
(
ptr
) {}
4869
4870
aff::aff
(
isl::ctx
ctx
,
const
std::string &
str
)
4871
{
4872
auto
res
=
isl_aff_read_from_str
(
ctx
.release(),
str
.c_str());
4873
ptr
=
res
;
4874
}
4875
4876
aff::aff
(
isl::local_space
ls,
isl::val
val
)
4877
{
4878
auto
res
=
isl_aff_val_on_domain
(ls.
release
(),
val
.
release
());
4879
ptr
=
res
;
4880
}
4881
4882
aff::aff
(
isl::local_space
ls)
4883
{
4884
auto
res
=
isl_aff_zero_on_domain
(ls.
release
());
4885
ptr
=
res
;
4886
}
4887
4888
aff
&
aff::operator=
(
aff
obj
) {
4889
std::swap(this->ptr,
obj
.ptr);
4890
return
*
this
;
4891
}
4892
4893
aff::~aff
() {
4894
if
(
ptr
)
4895
isl_aff_free
(
ptr
);
4896
}
4897
4898
__isl_give
isl_aff
*
aff::copy
() const & {
4899
return
isl_aff_copy
(
ptr
);
4900
}
4901
4902
__isl_keep
isl_aff
*
aff::get
()
const
{
4903
return
ptr
;
4904
}
4905
4906
__isl_give
isl_aff
*
aff::release
() {
4907
isl_aff
*tmp =
ptr
;
4908
ptr
=
nullptr
;
4909
return
tmp;
4910
}
4911
4912
bool
aff::is_null
()
const
{
4913
return
ptr
==
nullptr
;
4914
}
4915
4916
isl::ctx
aff::ctx
()
const
{
4917
return
isl::ctx
(
isl_aff_get_ctx
(
ptr
));
4918
}
4919
4920
isl::aff
aff::add
(
isl::aff
aff2)
const
4921
{
4922
auto
res
=
isl_aff_add
(
copy
(), aff2.
release
());
4923
return
manage
(
res
);
4924
}
4925
4926
isl::multi_aff
aff::add
(
const
isl::multi_aff
&multi2)
const
4927
{
4928
return
isl::multi_aff
(*this).
add
(multi2);
4929
}
4930
4931
isl::multi_pw_aff
aff::add
(
const
isl::multi_pw_aff
&multi2)
const
4932
{
4933
return
isl::pw_aff
(*this).
add
(multi2);
4934
}
4935
4936
isl::multi_union_pw_aff
aff::add
(
const
isl::multi_union_pw_aff
&multi2)
const
4937
{
4938
return
isl::pw_aff
(*this).
add
(multi2);
4939
}
4940
4941
isl::pw_aff
aff::add
(
const
isl::pw_aff
&pwaff2)
const
4942
{
4943
return
isl::pw_aff
(*this).
add
(pwaff2);
4944
}
4945
4946
isl::pw_multi_aff
aff::add
(
const
isl::pw_multi_aff
&pma2)
const
4947
{
4948
return
isl::pw_aff
(*this).
add
(pma2);
4949
}
4950
4951
isl::union_pw_aff
aff::add
(
const
isl::union_pw_aff
&upa2)
const
4952
{
4953
return
isl::pw_aff
(*this).
add
(upa2);
4954
}
4955
4956
isl::union_pw_multi_aff
aff::add
(
const
isl::union_pw_multi_aff
&upma2)
const
4957
{
4958
return
isl::pw_aff
(*this).
add
(upma2);
4959
}
4960
4961
isl::aff
aff::add_constant
(
isl::val
v)
const
4962
{
4963
auto
res
=
isl_aff_add_constant_val
(
copy
(), v.
release
());
4964
return
manage
(
res
);
4965
}
4966
4967
isl::aff
aff::add_constant
(
long
v)
const
4968
{
4969
return
this->
add_constant
(
isl::val
(
ctx
(), v));
4970
}
4971
4972
isl::multi_aff
aff::add_constant
(
const
isl::multi_val
&mv)
const
4973
{
4974
return
isl::multi_aff
(*this).
add_constant
(mv);
4975
}
4976
4977
isl::aff
aff::add_constant_si
(
int
v)
const
4978
{
4979
auto
res
=
isl_aff_add_constant_si
(
copy
(), v);
4980
return
manage
(
res
);
4981
}
4982
4983
isl::pw_aff
aff::add_dims
(
isl::dim
type
,
unsigned
int
n
)
const
4984
{
4985
return
isl::pw_aff
(*this).
add_dims
(
type
,
n
);
4986
}
4987
4988
isl::union_pw_multi_aff
aff::add_pw_multi_aff
(
const
isl::pw_multi_aff
&
pma
)
const
4989
{
4990
return
isl::pw_aff
(*this).
add_pw_multi_aff
(
pma
);
4991
}
4992
4993
isl::union_pw_multi_aff
aff::apply
(
const
isl::union_pw_multi_aff
&upma2)
const
4994
{
4995
return
isl::pw_aff
(*this).
apply
(upma2);
4996
}
4997
4998
isl::aff
aff::as_aff
()
const
4999
{
5000
return
isl::pw_aff
(*this).
as_aff
();
5001
}
5002
5003
isl::map
aff::as_map
()
const
5004
{
5005
return
isl::pw_aff
(*this).
as_map
();
5006
}
5007
5008
isl::multi_aff
aff::as_multi_aff
()
const
5009
{
5010
return
isl::pw_aff
(*this).
as_multi_aff
();
5011
}
5012
5013
isl::multi_union_pw_aff
aff::as_multi_union_pw_aff
()
const
5014
{
5015
return
isl::pw_aff
(*this).
as_multi_union_pw_aff
();
5016
}
5017
5018
isl::pw_multi_aff
aff::as_pw_multi_aff
()
const
5019
{
5020
return
isl::pw_aff
(*this).
as_pw_multi_aff
();
5021
}
5022
5023
isl::set
aff::as_set
()
const
5024
{
5025
return
isl::multi_aff
(*this).
as_set
();
5026
}
5027
5028
isl::union_map
aff::as_union_map
()
const
5029
{
5030
return
isl::pw_aff
(*this).
as_union_map
();
5031
}
5032
5033
isl::aff
aff::at
(
int
pos
)
const
5034
{
5035
return
isl::multi_aff
(*this).
at
(
pos
);
5036
}
5037
5038
isl::basic_set
aff::bind
(
isl::id
id
)
const
5039
{
5040
auto
res
=
isl_aff_bind_id
(
copy
(),
id
.
release
());
5041
return
manage
(
res
);
5042
}
5043
5044
isl::basic_set
aff::bind
(
const
std::string &
id
)
const
5045
{
5046
return
this->
bind
(
isl::id
(
ctx
(),
id
));
5047
}
5048
5049
isl::basic_set
aff::bind
(
const
isl::multi_id
&
tuple
)
const
5050
{
5051
return
isl::multi_aff
(*this).
bind
(
tuple
);
5052
}
5053
5054
isl::pw_aff
aff::bind_domain
(
const
isl::multi_id
&
tuple
)
const
5055
{
5056
return
isl::pw_aff
(*this).
bind_domain
(
tuple
);
5057
}
5058
5059
isl::pw_aff
aff::bind_domain_wrapped_domain
(
const
isl::multi_id
&
tuple
)
const
5060
{
5061
return
isl::pw_aff
(*this).
bind_domain_wrapped_domain
(
tuple
);
5062
}
5063
5064
isl::aff
aff::ceil
()
const
5065
{
5066
auto
res
=
isl_aff_ceil
(
copy
());
5067
return
manage
(
res
);
5068
}
5069
5070
isl::pw_aff
aff::coalesce
()
const
5071
{
5072
return
isl::pw_aff
(*this).
coalesce
();
5073
}
5074
5075
isl::pw_aff
aff::cond
(
const
isl::pw_aff
&pwaff_true,
const
isl::pw_aff
&pwaff_false)
const
5076
{
5077
return
isl::pw_aff
(*this).
cond
(pwaff_true, pwaff_false);
5078
}
5079
5080
isl::multi_val
aff::constant_multi_val
()
const
5081
{
5082
return
isl::multi_aff
(*this).
constant_multi_val
();
5083
}
5084
5085
isl::val
aff::constant_val
()
const
5086
{
5087
auto
res
=
isl_aff_get_constant_val
(
get
());
5088
return
manage
(
res
);
5089
}
5090
5091
isl::val
aff::get_constant_val
()
const
5092
{
5093
return
constant_val
();
5094
}
5095
5096
isl::val
aff::denominator_val
()
const
5097
{
5098
auto
res
=
isl_aff_get_denominator_val
(
get
());
5099
return
manage
(
res
);
5100
}
5101
5102
isl::val
aff::get_denominator_val
()
const
5103
{
5104
return
denominator_val
();
5105
}
5106
5107
class
size
aff::dim
(
isl::dim
type
)
const
5108
{
5109
return
isl::multi_aff
(*this).
dim
(
type
);
5110
}
5111
5112
isl::id
aff::dim_id
(
isl::dim
type
,
unsigned
int
pos
)
const
5113
{
5114
return
isl::pw_aff
(*this).
dim_id
(
type
,
pos
);
5115
}
5116
5117
isl::aff
aff::div
(
isl::aff
aff2)
const
5118
{
5119
auto
res
=
isl_aff_div
(
copy
(), aff2.
release
());
5120
return
manage
(
res
);
5121
}
5122
5123
isl::pw_aff
aff::div
(
const
isl::pw_aff
&pa2)
const
5124
{
5125
return
isl::pw_aff
(*this).
div
(pa2);
5126
}
5127
5128
isl::set
aff::domain
()
const
5129
{
5130
return
isl::pw_aff
(*this).
domain
();
5131
}
5132
5133
isl::space
aff::domain_space
()
const
5134
{
5135
return
isl::pw_aff
(*this).
domain_space
();
5136
}
5137
5138
isl::pw_multi_aff
aff::drop_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
5139
{
5140
return
isl::pw_aff
(*this).
drop_dims
(
type
, first,
n
);
5141
}
5142
5143
isl::set
aff::eq_set
(
isl::aff
aff2)
const
5144
{
5145
auto
res
=
isl_aff_eq_set
(
copy
(), aff2.
release
());
5146
return
manage
(
res
);
5147
}
5148
5149
isl::set
aff::eq_set
(
const
isl::pw_aff
&pwaff2)
const
5150
{
5151
return
isl::pw_aff
(*this).
eq_set
(pwaff2);
5152
}
5153
5154
isl::val
aff::eval
(
isl::point
pnt)
const
5155
{
5156
auto
res
=
isl_aff_eval
(
copy
(), pnt.
release
());
5157
return
manage
(
res
);
5158
}
5159
5160
isl::pw_multi_aff
aff::extract_pw_multi_aff
(
const
isl::space
&
space
)
const
5161
{
5162
return
isl::pw_aff
(*this).
extract_pw_multi_aff
(
space
);
5163
}
5164
5165
isl::multi_aff
aff::flat_range_product
(
const
isl::multi_aff
&multi2)
const
5166
{
5167
return
isl::multi_aff
(*this).
flat_range_product
(multi2);
5168
}
5169
5170
isl::multi_pw_aff
aff::flat_range_product
(
const
isl::multi_pw_aff
&multi2)
const
5171
{
5172
return
isl::pw_aff
(*this).
flat_range_product
(multi2);
5173
}
5174
5175
isl::multi_union_pw_aff
aff::flat_range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
5176
{
5177
return
isl::pw_aff
(*this).
flat_range_product
(multi2);
5178
}
5179
5180
isl::pw_multi_aff
aff::flat_range_product
(
const
isl::pw_multi_aff
&pma2)
const
5181
{
5182
return
isl::pw_aff
(*this).
flat_range_product
(pma2);
5183
}
5184
5185
isl::union_pw_multi_aff
aff::flat_range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
5186
{
5187
return
isl::pw_aff
(*this).
flat_range_product
(upma2);
5188
}
5189
5190
isl::aff
aff::floor
()
const
5191
{
5192
auto
res
=
isl_aff_floor
(
copy
());
5193
return
manage
(
res
);
5194
}
5195
5196
stat
aff::foreach_piece
(
const
std::function<
stat
(
isl::set
,
isl::aff
)> &
fn
)
const
5197
{
5198
return
isl::pw_aff
(*this).
foreach_piece
(
fn
);
5199
}
5200
5201
stat
aff::foreach_piece
(
const
std::function<
stat
(
isl::set
,
isl::multi_aff
)> &
fn
)
const
5202
{
5203
return
isl::pw_aff
(*this).
foreach_piece
(
fn
);
5204
}
5205
5206
stat
aff::foreach_pw_aff
(
const
std::function<
stat
(
isl::pw_aff
)> &
fn
)
const
5207
{
5208
return
isl::pw_aff
(*this).
foreach_pw_aff
(
fn
);
5209
}
5210
5211
isl::set
aff::ge_set
(
isl::aff
aff2)
const
5212
{
5213
auto
res
=
isl_aff_ge_set
(
copy
(), aff2.
release
());
5214
return
manage
(
res
);
5215
}
5216
5217
isl::set
aff::ge_set
(
const
isl::pw_aff
&pwaff2)
const
5218
{
5219
return
isl::pw_aff
(*this).
ge_set
(pwaff2);
5220
}
5221
5222
isl::aff
aff::gist
(
isl::set
context
)
const
5223
{
5224
auto
res
=
isl_aff_gist
(
copy
(),
context
.release());
5225
return
manage
(
res
);
5226
}
5227
5228
isl::union_pw_aff
aff::gist
(
const
isl::union_set
&
context
)
const
5229
{
5230
return
isl::pw_aff
(*this).
gist
(
context
);
5231
}
5232
5233
isl::aff
aff::gist
(
const
isl::basic_set
&
context
)
const
5234
{
5235
return
this->
gist
(
isl::set
(
context
));
5236
}
5237
5238
isl::aff
aff::gist
(
const
isl::point
&
context
)
const
5239
{
5240
return
this->
gist
(
isl::set
(
context
));
5241
}
5242
5243
isl::set
aff::gt_set
(
isl::aff
aff2)
const
5244
{
5245
auto
res
=
isl_aff_gt_set
(
copy
(), aff2.
release
());
5246
return
manage
(
res
);
5247
}
5248
5249
isl::set
aff::gt_set
(
const
isl::pw_aff
&pwaff2)
const
5250
{
5251
return
isl::pw_aff
(*this).
gt_set
(pwaff2);
5252
}
5253
5254
boolean
aff::has_range_tuple_id
()
const
5255
{
5256
return
isl::multi_aff
(*this).
has_range_tuple_id
();
5257
}
5258
5259
isl::multi_aff
aff::identity
()
const
5260
{
5261
return
isl::multi_aff
(*this).
identity
();
5262
}
5263
5264
isl::pw_aff
aff::insert_domain
(
const
isl::space
&
domain
)
const
5265
{
5266
return
isl::pw_aff
(*this).
insert_domain
(
domain
);
5267
}
5268
5269
isl::pw_aff
aff::intersect_domain
(
const
isl::set
&
set
)
const
5270
{
5271
return
isl::pw_aff
(*this).
intersect_domain
(
set
);
5272
}
5273
5274
isl::union_pw_aff
aff::intersect_domain
(
const
isl::space
&
space
)
const
5275
{
5276
return
isl::pw_aff
(*this).
intersect_domain
(
space
);
5277
}
5278
5279
isl::union_pw_aff
aff::intersect_domain
(
const
isl::union_set
&uset)
const
5280
{
5281
return
isl::pw_aff
(*this).
intersect_domain
(uset);
5282
}
5283
5284
isl::union_pw_aff
aff::intersect_domain_wrapped_domain
(
const
isl::union_set
&uset)
const
5285
{
5286
return
isl::pw_aff
(*this).
intersect_domain_wrapped_domain
(uset);
5287
}
5288
5289
isl::union_pw_aff
aff::intersect_domain_wrapped_range
(
const
isl::union_set
&uset)
const
5290
{
5291
return
isl::pw_aff
(*this).
intersect_domain_wrapped_range
(uset);
5292
}
5293
5294
isl::pw_aff
aff::intersect_params
(
const
isl::set
&
set
)
const
5295
{
5296
return
isl::pw_aff
(*this).
intersect_params
(
set
);
5297
}
5298
5299
boolean
aff::involves_locals
()
const
5300
{
5301
return
isl::multi_aff
(*this).
involves_locals
();
5302
}
5303
5304
boolean
aff::involves_nan
()
const
5305
{
5306
return
isl::multi_aff
(*this).
involves_nan
();
5307
}
5308
5309
boolean
aff::involves_param
(
const
isl::id
&
id
)
const
5310
{
5311
return
isl::pw_aff
(*this).
involves_param
(
id
);
5312
}
5313
5314
boolean
aff::involves_param
(
const
std::string &
id
)
const
5315
{
5316
return
this->
involves_param
(
isl::id
(
ctx
(),
id
));
5317
}
5318
5319
boolean
aff::involves_param
(
const
isl::id_list
&
list
)
const
5320
{
5321
return
isl::pw_aff
(*this).
involves_param
(
list
);
5322
}
5323
5324
boolean
aff::is_cst
()
const
5325
{
5326
auto
res
=
isl_aff_is_cst
(
get
());
5327
return
manage
(
res
);
5328
}
5329
5330
boolean
aff::is_equal
(
const
isl::pw_aff
&pa2)
const
5331
{
5332
return
isl::pw_aff
(*this).
is_equal
(pa2);
5333
}
5334
5335
boolean
aff::isa_aff
()
const
5336
{
5337
return
isl::pw_aff
(*this).
isa_aff
();
5338
}
5339
5340
boolean
aff::isa_multi_aff
()
const
5341
{
5342
return
isl::pw_aff
(*this).
isa_multi_aff
();
5343
}
5344
5345
boolean
aff::isa_pw_multi_aff
()
const
5346
{
5347
return
isl::pw_aff
(*this).
isa_pw_multi_aff
();
5348
}
5349
5350
isl::set
aff::le_set
(
isl::aff
aff2)
const
5351
{
5352
auto
res
=
isl_aff_le_set
(
copy
(), aff2.
release
());
5353
return
manage
(
res
);
5354
}
5355
5356
isl::set
aff::le_set
(
const
isl::pw_aff
&pwaff2)
const
5357
{
5358
return
isl::pw_aff
(*this).
le_set
(pwaff2);
5359
}
5360
5361
isl::aff_list
aff::list
()
const
5362
{
5363
return
isl::multi_aff
(*this).
list
();
5364
}
5365
5366
isl::set
aff::lt_set
(
isl::aff
aff2)
const
5367
{
5368
auto
res
=
isl_aff_lt_set
(
copy
(), aff2.
release
());
5369
return
manage
(
res
);
5370
}
5371
5372
isl::set
aff::lt_set
(
const
isl::pw_aff
&pwaff2)
const
5373
{
5374
return
isl::pw_aff
(*this).
lt_set
(pwaff2);
5375
}
5376
5377
isl::multi_pw_aff
aff::max
(
const
isl::multi_pw_aff
&multi2)
const
5378
{
5379
return
isl::pw_aff
(*this).
max
(multi2);
5380
}
5381
5382
isl::pw_aff
aff::max
(
const
isl::pw_aff
&pwaff2)
const
5383
{
5384
return
isl::pw_aff
(*this).
max
(pwaff2);
5385
}
5386
5387
isl::multi_val
aff::max_multi_val
()
const
5388
{
5389
return
isl::pw_aff
(*this).
max_multi_val
();
5390
}
5391
5392
isl::multi_pw_aff
aff::min
(
const
isl::multi_pw_aff
&multi2)
const
5393
{
5394
return
isl::pw_aff
(*this).
min
(multi2);
5395
}
5396
5397
isl::pw_aff
aff::min
(
const
isl::pw_aff
&pwaff2)
const
5398
{
5399
return
isl::pw_aff
(*this).
min
(pwaff2);
5400
}
5401
5402
isl::multi_val
aff::min_multi_val
()
const
5403
{
5404
return
isl::pw_aff
(*this).
min_multi_val
();
5405
}
5406
5407
isl::aff
aff::mod
(
isl::val
mod
)
const
5408
{
5409
auto
res
=
isl_aff_mod_val
(
copy
(),
mod
.release());
5410
return
manage
(
res
);
5411
}
5412
5413
isl::aff
aff::mod
(
long
mod
)
const
5414
{
5415
return
this->
mod
(
isl::val
(
ctx
(),
mod
));
5416
}
5417
5418
isl::aff
aff::mul
(
isl::aff
aff2)
const
5419
{
5420
auto
res
=
isl_aff_mul
(
copy
(), aff2.
release
());
5421
return
manage
(
res
);
5422
}
5423
5424
isl::pw_aff
aff::mul
(
const
isl::pw_aff
&pwaff2)
const
5425
{
5426
return
isl::pw_aff
(*this).
mul
(pwaff2);
5427
}
5428
5429
class
size
aff::n_piece
()
const
5430
{
5431
return
isl::pw_aff
(*this).
n_piece
();
5432
}
5433
5434
isl::set
aff::ne_set
(
isl::aff
aff2)
const
5435
{
5436
auto
res
=
isl_aff_ne_set
(
copy
(), aff2.
release
());
5437
return
manage
(
res
);
5438
}
5439
5440
isl::set
aff::ne_set
(
const
isl::pw_aff
&pwaff2)
const
5441
{
5442
return
isl::pw_aff
(*this).
ne_set
(pwaff2);
5443
}
5444
5445
isl::aff
aff::neg
()
const
5446
{
5447
auto
res
=
isl_aff_neg
(
copy
());
5448
return
manage
(
res
);
5449
}
5450
5451
boolean
aff::plain_is_empty
()
const
5452
{
5453
return
isl::pw_aff
(*this).
plain_is_empty
();
5454
}
5455
5456
boolean
aff::plain_is_equal
(
const
isl::multi_aff
&multi2)
const
5457
{
5458
return
isl::multi_aff
(*this).
plain_is_equal
(multi2);
5459
}
5460
5461
boolean
aff::plain_is_equal
(
const
isl::multi_pw_aff
&multi2)
const
5462
{
5463
return
isl::pw_aff
(*this).
plain_is_equal
(multi2);
5464
}
5465
5466
boolean
aff::plain_is_equal
(
const
isl::multi_union_pw_aff
&multi2)
const
5467
{
5468
return
isl::pw_aff
(*this).
plain_is_equal
(multi2);
5469
}
5470
5471
isl::pw_multi_aff
aff::preimage_domain_wrapped_domain
(
const
isl::pw_multi_aff
&pma2)
const
5472
{
5473
return
isl::pw_aff
(*this).
preimage_domain_wrapped_domain
(pma2);
5474
}
5475
5476
isl::union_pw_multi_aff
aff::preimage_domain_wrapped_domain
(
const
isl::union_pw_multi_aff
&upma2)
const
5477
{
5478
return
isl::pw_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
5479
}
5480
5481
isl::multi_aff
aff::product
(
const
isl::multi_aff
&multi2)
const
5482
{
5483
return
isl::multi_aff
(*this).
product
(multi2);
5484
}
5485
5486
isl::multi_pw_aff
aff::product
(
const
isl::multi_pw_aff
&multi2)
const
5487
{
5488
return
isl::pw_aff
(*this).
product
(multi2);
5489
}
5490
5491
isl::pw_multi_aff
aff::product
(
const
isl::pw_multi_aff
&pma2)
const
5492
{
5493
return
isl::pw_aff
(*this).
product
(pma2);
5494
}
5495
5496
isl::aff
aff::pullback
(
isl::multi_aff
ma
)
const
5497
{
5498
auto
res
=
isl_aff_pullback_multi_aff
(
copy
(),
ma
.release());
5499
return
manage
(
res
);
5500
}
5501
5502
isl::pw_aff
aff::pullback
(
const
isl::multi_pw_aff
&mpa)
const
5503
{
5504
return
isl::pw_aff
(*this).
pullback
(mpa);
5505
}
5506
5507
isl::pw_aff
aff::pullback
(
const
isl::pw_multi_aff
&
pma
)
const
5508
{
5509
return
isl::pw_aff
(*this).
pullback
(
pma
);
5510
}
5511
5512
isl::union_pw_aff
aff::pullback
(
const
isl::union_pw_multi_aff
&upma)
const
5513
{
5514
return
isl::pw_aff
(*this).
pullback
(upma);
5515
}
5516
5517
isl::aff
aff::pullback
(
const
isl::aff
&
ma
)
const
5518
{
5519
return
this->
pullback
(
isl::multi_aff
(
ma
));
5520
}
5521
5522
isl::pw_multi_aff_list
aff::pw_multi_aff_list
()
const
5523
{
5524
return
isl::pw_aff
(*this).
pw_multi_aff_list
();
5525
}
5526
5527
isl::pw_multi_aff
aff::range_factor_domain
()
const
5528
{
5529
return
isl::pw_aff
(*this).
range_factor_domain
();
5530
}
5531
5532
isl::pw_multi_aff
aff::range_factor_range
()
const
5533
{
5534
return
isl::pw_aff
(*this).
range_factor_range
();
5535
}
5536
5537
isl::multi_aff
aff::range_product
(
const
isl::multi_aff
&multi2)
const
5538
{
5539
return
isl::multi_aff
(*this).
range_product
(multi2);
5540
}
5541
5542
isl::multi_pw_aff
aff::range_product
(
const
isl::multi_pw_aff
&multi2)
const
5543
{
5544
return
isl::pw_aff
(*this).
range_product
(multi2);
5545
}
5546
5547
isl::multi_union_pw_aff
aff::range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
5548
{
5549
return
isl::pw_aff
(*this).
range_product
(multi2);
5550
}
5551
5552
isl::pw_multi_aff
aff::range_product
(
const
isl::pw_multi_aff
&pma2)
const
5553
{
5554
return
isl::pw_aff
(*this).
range_product
(pma2);
5555
}
5556
5557
isl::union_pw_multi_aff
aff::range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
5558
{
5559
return
isl::pw_aff
(*this).
range_product
(upma2);
5560
}
5561
5562
isl::id
aff::range_tuple_id
()
const
5563
{
5564
return
isl::multi_aff
(*this).
range_tuple_id
();
5565
}
5566
5567
isl::multi_aff
aff::reset_range_tuple_id
()
const
5568
{
5569
return
isl::multi_aff
(*this).
reset_range_tuple_id
();
5570
}
5571
5572
isl::multi_aff
aff::reset_tuple_id
(
isl::dim
type
)
const
5573
{
5574
return
isl::multi_aff
(*this).
reset_tuple_id
(
type
);
5575
}
5576
5577
isl::aff
aff::scale
(
isl::val
v)
const
5578
{
5579
auto
res
=
isl_aff_scale_val
(
copy
(), v.
release
());
5580
return
manage
(
res
);
5581
}
5582
5583
isl::aff
aff::scale
(
long
v)
const
5584
{
5585
return
this->
scale
(
isl::val
(
ctx
(), v));
5586
}
5587
5588
isl::multi_aff
aff::scale
(
const
isl::multi_val
&mv)
const
5589
{
5590
return
isl::multi_aff
(*this).
scale
(mv);
5591
}
5592
5593
isl::aff
aff::scale_down
(
isl::val
v)
const
5594
{
5595
auto
res
=
isl_aff_scale_down_val
(
copy
(), v.
release
());
5596
return
manage
(
res
);
5597
}
5598
5599
isl::aff
aff::scale_down
(
long
v)
const
5600
{
5601
return
this->
scale_down
(
isl::val
(
ctx
(), v));
5602
}
5603
5604
isl::multi_aff
aff::scale_down
(
const
isl::multi_val
&mv)
const
5605
{
5606
return
isl::multi_aff
(*this).
scale_down
(mv);
5607
}
5608
5609
isl::multi_aff
aff::set_aff
(
int
pos
,
const
isl::aff
&el)
const
5610
{
5611
return
isl::multi_aff
(*this).
set_aff
(
pos
, el);
5612
}
5613
5614
isl::multi_aff
aff::set_at
(
int
pos
,
const
isl::aff
&el)
const
5615
{
5616
return
isl::multi_aff
(*this).
set_at
(
pos
, el);
5617
}
5618
5619
isl::multi_pw_aff
aff::set_at
(
int
pos
,
const
isl::pw_aff
&el)
const
5620
{
5621
return
isl::pw_aff
(*this).
set_at
(
pos
, el);
5622
}
5623
5624
isl::multi_union_pw_aff
aff::set_at
(
int
pos
,
const
isl::union_pw_aff
&el)
const
5625
{
5626
return
isl::pw_aff
(*this).
set_at
(
pos
, el);
5627
}
5628
5629
isl::aff
aff::set_constant_si
(
int
v)
const
5630
{
5631
auto
res
=
isl_aff_set_constant_si
(
copy
(), v);
5632
return
manage
(
res
);
5633
}
5634
5635
isl::multi_pw_aff
aff::set_pw_aff
(
int
pos
,
const
isl::pw_aff
&el)
const
5636
{
5637
return
isl::pw_aff
(*this).
set_pw_aff
(
pos
, el);
5638
}
5639
5640
isl::pw_multi_aff
aff::set_pw_aff
(
unsigned
int
pos
,
const
isl::pw_aff
&
pa
)
const
5641
{
5642
return
isl::pw_aff
(*this).
set_pw_aff
(
pos
,
pa
);
5643
}
5644
5645
isl::multi_aff
aff::set_range_tuple
(
const
isl::id
&
id
)
const
5646
{
5647
return
isl::multi_aff
(*this).
set_range_tuple
(
id
);
5648
}
5649
5650
isl::multi_aff
aff::set_range_tuple
(
const
std::string &
id
)
const
5651
{
5652
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
5653
}
5654
5655
isl::pw_aff
aff::set_tuple_id
(
isl::dim
type
,
const
isl::id
&
id
)
const
5656
{
5657
return
isl::pw_aff
(*this).
set_tuple_id
(
type
,
id
);
5658
}
5659
5660
isl::pw_aff
aff::set_tuple_id
(
isl::dim
type
,
const
std::string &
id
)
const
5661
{
5662
return
this->
set_tuple_id
(type,
isl::id
(
ctx
(),
id
));
5663
}
5664
5665
isl::multi_union_pw_aff
aff::set_union_pw_aff
(
int
pos
,
const
isl::union_pw_aff
&el)
const
5666
{
5667
return
isl::pw_aff
(*this).
set_union_pw_aff
(
pos
, el);
5668
}
5669
5670
class
size
aff::size
()
const
5671
{
5672
return
isl::multi_aff
(*this).
size
();
5673
}
5674
5675
isl::space
aff::space
()
const
5676
{
5677
return
isl::pw_aff
(*this).
space
();
5678
}
5679
5680
isl::aff
aff::sub
(
isl::aff
aff2)
const
5681
{
5682
auto
res
=
isl_aff_sub
(
copy
(), aff2.
release
());
5683
return
manage
(
res
);
5684
}
5685
5686
isl::multi_aff
aff::sub
(
const
isl::multi_aff
&multi2)
const
5687
{
5688
return
isl::multi_aff
(*this).
sub
(multi2);
5689
}
5690
5691
isl::multi_pw_aff
aff::sub
(
const
isl::multi_pw_aff
&multi2)
const
5692
{
5693
return
isl::pw_aff
(*this).
sub
(multi2);
5694
}
5695
5696
isl::multi_union_pw_aff
aff::sub
(
const
isl::multi_union_pw_aff
&multi2)
const
5697
{
5698
return
isl::pw_aff
(*this).
sub
(multi2);
5699
}
5700
5701
isl::pw_aff
aff::sub
(
const
isl::pw_aff
&pwaff2)
const
5702
{
5703
return
isl::pw_aff
(*this).
sub
(pwaff2);
5704
}
5705
5706
isl::pw_multi_aff
aff::sub
(
const
isl::pw_multi_aff
&pma2)
const
5707
{
5708
return
isl::pw_aff
(*this).
sub
(pma2);
5709
}
5710
5711
isl::union_pw_aff
aff::sub
(
const
isl::union_pw_aff
&upa2)
const
5712
{
5713
return
isl::pw_aff
(*this).
sub
(upa2);
5714
}
5715
5716
isl::union_pw_multi_aff
aff::sub
(
const
isl::union_pw_multi_aff
&upma2)
const
5717
{
5718
return
isl::pw_aff
(*this).
sub
(upma2);
5719
}
5720
5721
isl::pw_aff
aff::subtract_domain
(
const
isl::set
&
set
)
const
5722
{
5723
return
isl::pw_aff
(*this).
subtract_domain
(
set
);
5724
}
5725
5726
isl::union_pw_aff
aff::subtract_domain
(
const
isl::space
&
space
)
const
5727
{
5728
return
isl::pw_aff
(*this).
subtract_domain
(
space
);
5729
}
5730
5731
isl::union_pw_aff
aff::subtract_domain
(
const
isl::union_set
&uset)
const
5732
{
5733
return
isl::pw_aff
(*this).
subtract_domain
(uset);
5734
}
5735
5736
isl::pw_aff
aff::tdiv_q
(
const
isl::pw_aff
&pa2)
const
5737
{
5738
return
isl::pw_aff
(*this).
tdiv_q
(pa2);
5739
}
5740
5741
isl::pw_aff
aff::tdiv_r
(
const
isl::pw_aff
&pa2)
const
5742
{
5743
return
isl::pw_aff
(*this).
tdiv_r
(pa2);
5744
}
5745
5746
isl::aff_list
aff::to_list
()
const
5747
{
5748
auto
res
= isl_aff_to_list(
copy
());
5749
return
manage
(
res
);
5750
}
5751
5752
isl::multi_pw_aff
aff::to_multi_pw_aff
()
const
5753
{
5754
return
isl::multi_aff
(*this).
to_multi_pw_aff
();
5755
}
5756
5757
isl::multi_union_pw_aff
aff::to_multi_union_pw_aff
()
const
5758
{
5759
return
isl::multi_aff
(*this).
to_multi_union_pw_aff
();
5760
}
5761
5762
isl::pw_multi_aff
aff::to_pw_multi_aff
()
const
5763
{
5764
return
isl::multi_aff
(*this).
to_pw_multi_aff
();
5765
}
5766
5767
isl::union_pw_aff
aff::to_union_pw_aff
()
const
5768
{
5769
return
isl::pw_aff
(*this).
to_union_pw_aff
();
5770
}
5771
5772
isl::union_pw_multi_aff
aff::to_union_pw_multi_aff
()
const
5773
{
5774
return
isl::pw_aff
(*this).
to_union_pw_multi_aff
();
5775
}
5776
5777
isl::id
aff::tuple_id
(
isl::dim
type
)
const
5778
{
5779
return
isl::pw_aff
(*this).
tuple_id
(
type
);
5780
}
5781
5782
isl::aff
aff::unbind_params_insert_domain
(
isl::multi_id
domain
)
const
5783
{
5784
auto
res
=
isl_aff_unbind_params_insert_domain
(
copy
(),
domain
.release());
5785
return
manage
(
res
);
5786
}
5787
5788
isl::multi_pw_aff
aff::union_add
(
const
isl::multi_pw_aff
&mpa2)
const
5789
{
5790
return
isl::pw_aff
(*this).
union_add
(mpa2);
5791
}
5792
5793
isl::multi_union_pw_aff
aff::union_add
(
const
isl::multi_union_pw_aff
&mupa2)
const
5794
{
5795
return
isl::pw_aff
(*this).
union_add
(mupa2);
5796
}
5797
5798
isl::pw_aff
aff::union_add
(
const
isl::pw_aff
&pwaff2)
const
5799
{
5800
return
isl::pw_aff
(*this).
union_add
(pwaff2);
5801
}
5802
5803
isl::pw_multi_aff
aff::union_add
(
const
isl::pw_multi_aff
&pma2)
const
5804
{
5805
return
isl::pw_aff
(*this).
union_add
(pma2);
5806
}
5807
5808
isl::union_pw_aff
aff::union_add
(
const
isl::union_pw_aff
&upa2)
const
5809
{
5810
return
isl::pw_aff
(*this).
union_add
(upa2);
5811
}
5812
5813
isl::union_pw_multi_aff
aff::union_add
(
const
isl::union_pw_multi_aff
&upma2)
const
5814
{
5815
return
isl::pw_aff
(*this).
union_add
(upma2);
5816
}
5817
5818
isl::aff
aff::var_on_domain
(
isl::local_space
ls,
isl::dim
type
,
unsigned
int
pos
)
5819
{
5820
auto
res
=
isl_aff_var_on_domain
(ls.
release
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
);
5821
return
manage
(
res
);
5822
}
5823
5824
isl::aff
aff::zero_on_domain
(
isl::space
space
)
5825
{
5826
auto
res
=
isl_aff_zero_on_domain_space
(
space
.release());
5827
return
manage
(
res
);
5828
}
5829
5830
inline
std::ostream &
operator<<
(std::ostream &os,
const
aff
&
obj
)
5831
{
5832
char
*
str
=
isl_aff_to_str
(
obj
.get());
5833
if
(!
str
) {
5834
os.setstate(std::ios_base::badbit);
5835
return
os;
5836
}
5837
os <<
str
;
5838
free(
str
);
5839
return
os;
5840
}
5841
5842
// implementations for isl::aff_list
5843
aff_list
manage
(
__isl_take
isl_aff_list *
ptr
) {
5844
return
aff_list
(
ptr
);
5845
}
5846
aff_list
manage_copy
(
__isl_keep
isl_aff_list *
ptr
) {
5847
ptr
= isl_aff_list_copy(
ptr
);
5848
return
aff_list
(
ptr
);
5849
}
5850
5851
aff_list::aff_list
()
5852
:
ptr
(nullptr) {}
5853
5854
aff_list::aff_list
(
const
aff_list
&
obj
)
5855
:
ptr
(nullptr)
5856
{
5857
ptr
=
obj
.copy();
5858
}
5859
5860
aff_list::aff_list
(
__isl_take
isl_aff_list *
ptr
)
5861
:
ptr
(
ptr
) {}
5862
5863
aff_list::aff_list
(
isl::ctx
ctx
,
int
n
)
5864
{
5865
auto
res
= isl_aff_list_alloc(
ctx
.release(),
n
);
5866
ptr
=
res
;
5867
}
5868
5869
aff_list::aff_list
(
isl::aff
el)
5870
{
5871
auto
res
= isl_aff_list_from_aff(el.
release
());
5872
ptr
=
res
;
5873
}
5874
5875
aff_list::aff_list
(
isl::ctx
ctx
,
const
std::string &
str
)
5876
{
5877
auto
res
= isl_aff_list_read_from_str(
ctx
.release(),
str
.c_str());
5878
ptr
=
res
;
5879
}
5880
5881
aff_list
&
aff_list::operator=
(
aff_list
obj
) {
5882
std::swap(this->ptr,
obj
.ptr);
5883
return
*
this
;
5884
}
5885
5886
aff_list::~aff_list
() {
5887
if
(
ptr
)
5888
isl_aff_list_free(
ptr
);
5889
}
5890
5891
__isl_give
isl_aff_list *
aff_list::copy
() const & {
5892
return
isl_aff_list_copy(
ptr
);
5893
}
5894
5895
__isl_keep
isl_aff_list *
aff_list::get
()
const
{
5896
return
ptr
;
5897
}
5898
5899
__isl_give
isl_aff_list *
aff_list::release
() {
5900
isl_aff_list *tmp =
ptr
;
5901
ptr
=
nullptr
;
5902
return
tmp;
5903
}
5904
5905
bool
aff_list::is_null
()
const
{
5906
return
ptr
==
nullptr
;
5907
}
5908
5909
isl::ctx
aff_list::ctx
()
const
{
5910
return
isl::ctx
(isl_aff_list_get_ctx(
ptr
));
5911
}
5912
5913
isl::aff_list
aff_list::add
(
isl::aff
el)
const
5914
{
5915
auto
res
= isl_aff_list_add(
copy
(), el.
release
());
5916
return
manage
(
res
);
5917
}
5918
5919
isl::aff
aff_list::at
(
int
index)
const
5920
{
5921
auto
res
= isl_aff_list_get_at(
get
(), index);
5922
return
manage
(
res
);
5923
}
5924
5925
isl::aff
aff_list::get_at
(
int
index)
const
5926
{
5927
return
at
(index);
5928
}
5929
5930
isl::aff_list
aff_list::clear
()
const
5931
{
5932
auto
res
= isl_aff_list_clear(
copy
());
5933
return
manage
(
res
);
5934
}
5935
5936
isl::aff_list
aff_list::concat
(
isl::aff_list
list2)
const
5937
{
5938
auto
res
= isl_aff_list_concat(
copy
(), list2.
release
());
5939
return
manage
(
res
);
5940
}
5941
5942
isl::aff_list
aff_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
5943
{
5944
auto
res
= isl_aff_list_drop(
copy
(), first,
n
);
5945
return
manage
(
res
);
5946
}
5947
5948
stat
aff_list::foreach
(
const
std::function<
stat
(
isl::aff
)> &
fn
)
const
5949
{
5950
struct
fn_data {
5951
std::function<
stat
(
isl::aff
)> func;
5952
} fn_data = {
fn
};
5953
auto
fn_lambda = [](
isl_aff
*arg_0,
void
*arg_1) ->
isl_stat
{
5954
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
5955
auto
ret = (data->func)(
manage
(arg_0));
5956
return
ret.release();
5957
};
5958
auto
res
= isl_aff_list_foreach(
get
(), fn_lambda, &fn_data);
5959
return
manage
(
res
);
5960
}
5961
5962
isl::aff_list
aff_list::insert
(
unsigned
int
pos
,
isl::aff
el)
const
5963
{
5964
auto
res
= isl_aff_list_insert(
copy
(),
pos
, el.
release
());
5965
return
manage
(
res
);
5966
}
5967
5968
class
size
aff_list::size
()
const
5969
{
5970
auto
res
= isl_aff_list_size(
get
());
5971
return
manage
(
res
);
5972
}
5973
5974
inline
std::ostream &
operator<<
(std::ostream &os,
const
aff_list
&
obj
)
5975
{
5976
char
*
str
= isl_aff_list_to_str(
obj
.get());
5977
if
(!
str
) {
5978
os.setstate(std::ios_base::badbit);
5979
return
os;
5980
}
5981
os <<
str
;
5982
free(
str
);
5983
return
os;
5984
}
5985
5986
// implementations for isl::ast_build
5987
ast_build
manage
(
__isl_take
isl_ast_build
*
ptr
) {
5988
return
ast_build
(
ptr
);
5989
}
5990
ast_build
manage_copy
(
__isl_keep
isl_ast_build
*
ptr
) {
5991
ptr
=
isl_ast_build_copy
(
ptr
);
5992
return
ast_build
(
ptr
);
5993
}
5994
5995
ast_build::ast_build
()
5996
:
ptr
(nullptr) {}
5997
5998
ast_build::ast_build
(
const
ast_build
&
obj
)
5999
:
ptr
(nullptr)
6000
{
6001
ptr
=
obj
.copy();
6002
copy_callbacks
(
obj
);
6003
}
6004
6005
ast_build::ast_build
(
__isl_take
isl_ast_build
*
ptr
)
6006
:
ptr
(
ptr
) {}
6007
6008
ast_build::ast_build
(
isl::ctx
ctx
)
6009
{
6010
auto
res
=
isl_ast_build_alloc
(
ctx
.release());
6011
ptr
=
res
;
6012
}
6013
6014
ast_build
&
ast_build::operator=
(
ast_build
obj
) {
6015
std::swap(this->ptr,
obj
.ptr);
6016
copy_callbacks
(
obj
);
6017
return
*
this
;
6018
}
6019
6020
ast_build::~ast_build
() {
6021
if
(
ptr
)
6022
isl_ast_build_free
(
ptr
);
6023
}
6024
6025
__isl_give
isl_ast_build
*
ast_build::copy
() const & {
6026
return
isl_ast_build_copy
(
ptr
);
6027
}
6028
6029
__isl_keep
isl_ast_build
*
ast_build::get
()
const
{
6030
return
ptr
;
6031
}
6032
6033
__isl_give
isl_ast_build
*
ast_build::release
() {
6034
if
(
at_each_domain_data
)
6035
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"cannot release object with persistent callbacks"
,
return
nullptr
);
6036
isl_ast_build
*tmp =
ptr
;
6037
ptr
=
nullptr
;
6038
return
tmp;
6039
}
6040
6041
bool
ast_build::is_null
()
const
{
6042
return
ptr
==
nullptr
;
6043
}
6044
6045
isl::ctx
ast_build::ctx
()
const
{
6046
return
isl::ctx
(
isl_ast_build_get_ctx
(
ptr
));
6047
}
6048
6049
ast_build
&
ast_build::copy_callbacks
(
const
ast_build
&
obj
)
6050
{
6051
at_each_domain_data
=
obj
.at_each_domain_data;
6052
return
*
this
;
6053
}
6054
6055
isl_ast_node
*
ast_build::at_each_domain
(
isl_ast_node
*arg_0,
isl_ast_build
*arg_1,
void
*arg_2)
6056
{
6057
auto
*data =
static_cast<
struct
at_each_domain_data
*
>
(arg_2);
6058
auto
ret = (data->func)(
manage
(arg_0),
manage_copy
(arg_1));
6059
return
ret.release();
6060
}
6061
6062
void
ast_build::set_at_each_domain_data
(
const
std::function<
isl::ast_node
(
isl::ast_node
,
isl::ast_build
)> &
fn
)
6063
{
6064
at_each_domain_data
= std::make_shared<struct at_each_domain_data>();
6065
at_each_domain_data
->
func
=
fn
;
6066
ptr
=
isl_ast_build_set_at_each_domain
(
ptr
, &
at_each_domain
,
at_each_domain_data
.get());
6067
}
6068
6069
isl::ast_build
ast_build::set_at_each_domain
(
const
std::function<
isl::ast_node
(
isl::ast_node
,
isl::ast_build
)> &
fn
)
const
6070
{
6071
auto
copy
= *
this
;
6072
copy
.set_at_each_domain_data(
fn
);
6073
return
copy
;
6074
}
6075
6076
isl::ast_expr
ast_build::access_from
(
isl::multi_pw_aff
mpa)
const
6077
{
6078
auto
res
=
isl_ast_build_access_from_multi_pw_aff
(
get
(), mpa.
release
());
6079
return
manage
(
res
);
6080
}
6081
6082
isl::ast_expr
ast_build::access_from
(
isl::pw_multi_aff
pma
)
const
6083
{
6084
auto
res
=
isl_ast_build_access_from_pw_multi_aff
(
get
(),
pma
.release());
6085
return
manage
(
res
);
6086
}
6087
6088
isl::ast_expr
ast_build::call_from
(
isl::multi_pw_aff
mpa)
const
6089
{
6090
auto
res
=
isl_ast_build_call_from_multi_pw_aff
(
get
(), mpa.
release
());
6091
return
manage
(
res
);
6092
}
6093
6094
isl::ast_expr
ast_build::call_from
(
isl::pw_multi_aff
pma
)
const
6095
{
6096
auto
res
=
isl_ast_build_call_from_pw_multi_aff
(
get
(),
pma
.release());
6097
return
manage
(
res
);
6098
}
6099
6100
isl::ast_expr
ast_build::expr_from
(
isl::pw_aff
pa
)
const
6101
{
6102
auto
res
=
isl_ast_build_expr_from_pw_aff
(
get
(),
pa
.release());
6103
return
manage
(
res
);
6104
}
6105
6106
isl::ast_expr
ast_build::expr_from
(
isl::set
set
)
const
6107
{
6108
auto
res
=
isl_ast_build_expr_from_set
(
get
(),
set
.
release
());
6109
return
manage
(
res
);
6110
}
6111
6112
isl::ast_build
ast_build::from_context
(
isl::set
set
)
6113
{
6114
auto
res
=
isl_ast_build_from_context
(
set
.
release
());
6115
return
manage
(
res
);
6116
}
6117
6118
isl::ast_node
ast_build::node_from
(
isl::schedule
schedule
)
const
6119
{
6120
auto
res
=
isl_ast_build_node_from_schedule
(
get
(),
schedule
.release());
6121
return
manage
(
res
);
6122
}
6123
6124
isl::ast_node
ast_build::node_from_schedule_map
(
isl::union_map
schedule
)
const
6125
{
6126
auto
res
=
isl_ast_build_node_from_schedule_map
(
get
(),
schedule
.release());
6127
return
manage
(
res
);
6128
}
6129
6130
isl::ast_build
ast_build::restrict
(
isl::set
set
)
const
6131
{
6132
auto
res
=
isl_ast_build_restrict
(
copy
(),
set
.
release
());
6133
return
manage
(
res
).
copy_callbacks
(*
this
);
6134
}
6135
6136
isl::union_map
ast_build::schedule
()
const
6137
{
6138
auto
res
=
isl_ast_build_get_schedule
(
get
());
6139
return
manage
(
res
);
6140
}
6141
6142
isl::union_map
ast_build::get_schedule
()
const
6143
{
6144
return
schedule
();
6145
}
6146
6147
// implementations for isl::ast_expr
6148
ast_expr
manage
(
__isl_take
isl_ast_expr
*
ptr
) {
6149
return
ast_expr
(
ptr
);
6150
}
6151
ast_expr
manage_copy
(
__isl_keep
isl_ast_expr
*
ptr
) {
6152
ptr
=
isl_ast_expr_copy
(
ptr
);
6153
return
ast_expr
(
ptr
);
6154
}
6155
6156
ast_expr::ast_expr
()
6157
:
ptr
(nullptr) {}
6158
6159
ast_expr::ast_expr
(
const
ast_expr
&
obj
)
6160
:
ptr
(nullptr)
6161
{
6162
ptr
=
obj
.copy();
6163
}
6164
6165
ast_expr::ast_expr
(
__isl_take
isl_ast_expr
*
ptr
)
6166
:
ptr
(
ptr
) {}
6167
6168
ast_expr
&
ast_expr::operator=
(
ast_expr
obj
) {
6169
std::swap(this->ptr,
obj
.ptr);
6170
return
*
this
;
6171
}
6172
6173
ast_expr::~ast_expr
() {
6174
if
(
ptr
)
6175
isl_ast_expr_free
(
ptr
);
6176
}
6177
6178
__isl_give
isl_ast_expr
*
ast_expr::copy
() const & {
6179
return
isl_ast_expr_copy
(
ptr
);
6180
}
6181
6182
__isl_keep
isl_ast_expr
*
ast_expr::get
()
const
{
6183
return
ptr
;
6184
}
6185
6186
__isl_give
isl_ast_expr
*
ast_expr::release
() {
6187
isl_ast_expr
*tmp =
ptr
;
6188
ptr
=
nullptr
;
6189
return
tmp;
6190
}
6191
6192
bool
ast_expr::is_null
()
const
{
6193
return
ptr
==
nullptr
;
6194
}
6195
6196
template
<
typename
T,
typename
>
6197
boolean
ast_expr::isa_type
(T subtype)
const
6198
{
6199
if
(
is_null
())
6200
return
boolean
();
6201
return
isl_ast_expr_get_type
(
get
()) == subtype;
6202
}
6203
template
<
class
T>
6204
boolean
ast_expr::isa
()
const
6205
{
6206
return
isa_type<decltype(T::type)>
(T::type);
6207
}
6208
template
<
class
T>
6209
T
ast_expr::as
()
const
6210
{
6211
if
(
isa<T>
().is_false())
6212
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
6213
return
T(
copy
());
6214
}
6215
6216
isl::ctx
ast_expr::ctx
()
const
{
6217
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6218
}
6219
6220
isl::ast_expr
ast_expr::add
(
isl::ast_expr
expr2)
const
6221
{
6222
auto
res
=
isl_ast_expr_add
(
copy
(), expr2.
release
());
6223
return
manage
(
res
);
6224
}
6225
6226
isl::ast_expr
ast_expr::address_of
()
const
6227
{
6228
auto
res
=
isl_ast_expr_address_of
(
copy
());
6229
return
manage
(
res
);
6230
}
6231
6232
isl::ast_expr
ast_expr::eq
(
isl::ast_expr
expr2)
const
6233
{
6234
auto
res
=
isl_ast_expr_eq
(
copy
(), expr2.
release
());
6235
return
manage
(
res
);
6236
}
6237
6238
isl::ast_expr
ast_expr::from_val
(
isl::val
v)
6239
{
6240
auto
res
=
isl_ast_expr_from_val
(v.
release
());
6241
return
manage
(
res
);
6242
}
6243
6244
isl::id
ast_expr::id
()
const
6245
{
6246
auto
res
=
isl_ast_expr_get_id
(
get
());
6247
return
manage
(
res
);
6248
}
6249
6250
isl::id
ast_expr::get_id
()
const
6251
{
6252
return
id
();
6253
}
6254
6255
isl::ast_expr
ast_expr::le
(
isl::ast_expr
expr2)
const
6256
{
6257
auto
res
=
isl_ast_expr_le
(
copy
(), expr2.
release
());
6258
return
manage
(
res
);
6259
}
6260
6261
isl::ast_expr
ast_expr::mul
(
isl::ast_expr
expr2)
const
6262
{
6263
auto
res
=
isl_ast_expr_mul
(
copy
(), expr2.
release
());
6264
return
manage
(
res
);
6265
}
6266
6267
isl::ast_expr
ast_expr::op_arg
(
int
pos
)
const
6268
{
6269
auto
res
=
isl_ast_expr_get_op_arg
(
get
(),
pos
);
6270
return
manage
(
res
);
6271
}
6272
6273
isl::ast_expr
ast_expr::get_op_arg
(
int
pos
)
const
6274
{
6275
return
op_arg
(
pos
);
6276
}
6277
6278
std::string
ast_expr::to_C_str
()
const
6279
{
6280
auto
res
=
isl_ast_expr_to_C_str
(
get
());
6281
std::string tmp(
res
);
6282
free(
res
);
6283
return
tmp;
6284
}
6285
6286
isl::val
ast_expr::val
()
const
6287
{
6288
auto
res
=
isl_ast_expr_get_val
(
get
());
6289
return
manage
(
res
);
6290
}
6291
6292
isl::val
ast_expr::get_val
()
const
6293
{
6294
return
val
();
6295
}
6296
6297
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr
&
obj
)
6298
{
6299
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6300
if
(!
str
) {
6301
os.setstate(std::ios_base::badbit);
6302
return
os;
6303
}
6304
os <<
str
;
6305
free(
str
);
6306
return
os;
6307
}
6308
6309
// implementations for isl::ast_expr_id
6310
ast_expr_id::ast_expr_id
()
6311
:
ast_expr
() {}
6312
6313
ast_expr_id::ast_expr_id
(
const
ast_expr_id
&
obj
)
6314
:
ast_expr
(
obj
)
6315
{
6316
}
6317
6318
ast_expr_id::ast_expr_id
(
__isl_take
isl_ast_expr
*
ptr
)
6319
:
ast_expr
(
ptr
) {}
6320
6321
ast_expr_id
&
ast_expr_id::operator=
(
ast_expr_id
obj
) {
6322
std::swap(this->ptr,
obj
.ptr);
6323
return
*
this
;
6324
}
6325
6326
isl::ctx
ast_expr_id::ctx
()
const
{
6327
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6328
}
6329
6330
isl::id
ast_expr_id::id
()
const
6331
{
6332
auto
res
=
isl_ast_expr_id_get_id
(
get
());
6333
return
manage
(
res
);
6334
}
6335
6336
isl::id
ast_expr_id::get_id
()
const
6337
{
6338
return
id
();
6339
}
6340
6341
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_id
&
obj
)
6342
{
6343
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6344
if
(!
str
) {
6345
os.setstate(std::ios_base::badbit);
6346
return
os;
6347
}
6348
os <<
str
;
6349
free(
str
);
6350
return
os;
6351
}
6352
6353
// implementations for isl::ast_expr_int
6354
ast_expr_int::ast_expr_int
()
6355
:
ast_expr
() {}
6356
6357
ast_expr_int::ast_expr_int
(
const
ast_expr_int
&
obj
)
6358
:
ast_expr
(
obj
)
6359
{
6360
}
6361
6362
ast_expr_int::ast_expr_int
(
__isl_take
isl_ast_expr
*
ptr
)
6363
:
ast_expr
(
ptr
) {}
6364
6365
ast_expr_int
&
ast_expr_int::operator=
(
ast_expr_int
obj
) {
6366
std::swap(this->ptr,
obj
.ptr);
6367
return
*
this
;
6368
}
6369
6370
isl::ctx
ast_expr_int::ctx
()
const
{
6371
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6372
}
6373
6374
isl::val
ast_expr_int::val
()
const
6375
{
6376
auto
res
=
isl_ast_expr_int_get_val
(
get
());
6377
return
manage
(
res
);
6378
}
6379
6380
isl::val
ast_expr_int::get_val
()
const
6381
{
6382
return
val
();
6383
}
6384
6385
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_int
&
obj
)
6386
{
6387
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6388
if
(!
str
) {
6389
os.setstate(std::ios_base::badbit);
6390
return
os;
6391
}
6392
os <<
str
;
6393
free(
str
);
6394
return
os;
6395
}
6396
6397
// implementations for isl::ast_expr_op
6398
ast_expr_op::ast_expr_op
()
6399
:
ast_expr
() {}
6400
6401
ast_expr_op::ast_expr_op
(
const
ast_expr_op
&
obj
)
6402
:
ast_expr
(
obj
)
6403
{
6404
}
6405
6406
ast_expr_op::ast_expr_op
(
__isl_take
isl_ast_expr
*
ptr
)
6407
:
ast_expr
(
ptr
) {}
6408
6409
ast_expr_op
&
ast_expr_op::operator=
(
ast_expr_op
obj
) {
6410
std::swap(this->ptr,
obj
.ptr);
6411
return
*
this
;
6412
}
6413
6414
template
<
typename
T,
typename
>
6415
boolean
ast_expr_op::isa_type
(T subtype)
const
6416
{
6417
if
(
is_null
())
6418
return
boolean
();
6419
return
isl_ast_expr_op_get_type
(
get
()) == subtype;
6420
}
6421
template
<
class
T>
6422
boolean
ast_expr_op::isa
()
const
6423
{
6424
return
isa_type<decltype(T::type)>
(T::type);
6425
}
6426
template
<
class
T>
6427
T
ast_expr_op::as
()
const
6428
{
6429
if
(
isa<T>
().is_false())
6430
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
6431
return
T(
copy
());
6432
}
6433
6434
isl::ctx
ast_expr_op::ctx
()
const
{
6435
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6436
}
6437
6438
isl::ast_expr
ast_expr_op::arg
(
int
pos
)
const
6439
{
6440
auto
res
=
isl_ast_expr_op_get_arg
(
get
(),
pos
);
6441
return
manage
(
res
);
6442
}
6443
6444
isl::ast_expr
ast_expr_op::get_arg
(
int
pos
)
const
6445
{
6446
return
arg
(
pos
);
6447
}
6448
6449
class
size
ast_expr_op::n_arg
()
const
6450
{
6451
auto
res
=
isl_ast_expr_op_get_n_arg
(
get
());
6452
return
manage
(
res
);
6453
}
6454
6455
class
size
ast_expr_op::get_n_arg
()
const
6456
{
6457
return
n_arg
();
6458
}
6459
6460
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op
&
obj
)
6461
{
6462
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6463
if
(!
str
) {
6464
os.setstate(std::ios_base::badbit);
6465
return
os;
6466
}
6467
os <<
str
;
6468
free(
str
);
6469
return
os;
6470
}
6471
6472
// implementations for isl::ast_expr_op_access
6473
ast_expr_op_access::ast_expr_op_access
()
6474
:
ast_expr_op
() {}
6475
6476
ast_expr_op_access::ast_expr_op_access
(
const
ast_expr_op_access
&
obj
)
6477
:
ast_expr_op
(
obj
)
6478
{
6479
}
6480
6481
ast_expr_op_access::ast_expr_op_access
(
__isl_take
isl_ast_expr
*
ptr
)
6482
:
ast_expr_op
(
ptr
) {}
6483
6484
ast_expr_op_access
&
ast_expr_op_access::operator=
(
ast_expr_op_access
obj
) {
6485
std::swap(this->ptr,
obj
.ptr);
6486
return
*
this
;
6487
}
6488
6489
isl::ctx
ast_expr_op_access::ctx
()
const
{
6490
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6491
}
6492
6493
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_access
&
obj
)
6494
{
6495
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6496
if
(!
str
) {
6497
os.setstate(std::ios_base::badbit);
6498
return
os;
6499
}
6500
os <<
str
;
6501
free(
str
);
6502
return
os;
6503
}
6504
6505
// implementations for isl::ast_expr_op_add
6506
ast_expr_op_add::ast_expr_op_add
()
6507
:
ast_expr_op
() {}
6508
6509
ast_expr_op_add::ast_expr_op_add
(
const
ast_expr_op_add
&
obj
)
6510
:
ast_expr_op
(
obj
)
6511
{
6512
}
6513
6514
ast_expr_op_add::ast_expr_op_add
(
__isl_take
isl_ast_expr
*
ptr
)
6515
:
ast_expr_op
(
ptr
) {}
6516
6517
ast_expr_op_add
&
ast_expr_op_add::operator=
(
ast_expr_op_add
obj
) {
6518
std::swap(this->ptr,
obj
.ptr);
6519
return
*
this
;
6520
}
6521
6522
isl::ctx
ast_expr_op_add::ctx
()
const
{
6523
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6524
}
6525
6526
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_add
&
obj
)
6527
{
6528
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6529
if
(!
str
) {
6530
os.setstate(std::ios_base::badbit);
6531
return
os;
6532
}
6533
os <<
str
;
6534
free(
str
);
6535
return
os;
6536
}
6537
6538
// implementations for isl::ast_expr_op_address_of
6539
ast_expr_op_address_of::ast_expr_op_address_of
()
6540
:
ast_expr_op
() {}
6541
6542
ast_expr_op_address_of::ast_expr_op_address_of
(
const
ast_expr_op_address_of
&
obj
)
6543
:
ast_expr_op
(
obj
)
6544
{
6545
}
6546
6547
ast_expr_op_address_of::ast_expr_op_address_of
(
__isl_take
isl_ast_expr
*
ptr
)
6548
:
ast_expr_op
(
ptr
) {}
6549
6550
ast_expr_op_address_of
&
ast_expr_op_address_of::operator=
(
ast_expr_op_address_of
obj
) {
6551
std::swap(this->ptr,
obj
.ptr);
6552
return
*
this
;
6553
}
6554
6555
isl::ctx
ast_expr_op_address_of::ctx
()
const
{
6556
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6557
}
6558
6559
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_address_of
&
obj
)
6560
{
6561
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6562
if
(!
str
) {
6563
os.setstate(std::ios_base::badbit);
6564
return
os;
6565
}
6566
os <<
str
;
6567
free(
str
);
6568
return
os;
6569
}
6570
6571
// implementations for isl::ast_expr_op_and
6572
ast_expr_op_and::ast_expr_op_and
()
6573
:
ast_expr_op
() {}
6574
6575
ast_expr_op_and::ast_expr_op_and
(
const
ast_expr_op_and
&
obj
)
6576
:
ast_expr_op
(
obj
)
6577
{
6578
}
6579
6580
ast_expr_op_and::ast_expr_op_and
(
__isl_take
isl_ast_expr
*
ptr
)
6581
:
ast_expr_op
(
ptr
) {}
6582
6583
ast_expr_op_and
&
ast_expr_op_and::operator=
(
ast_expr_op_and
obj
) {
6584
std::swap(this->ptr,
obj
.ptr);
6585
return
*
this
;
6586
}
6587
6588
isl::ctx
ast_expr_op_and::ctx
()
const
{
6589
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6590
}
6591
6592
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_and
&
obj
)
6593
{
6594
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6595
if
(!
str
) {
6596
os.setstate(std::ios_base::badbit);
6597
return
os;
6598
}
6599
os <<
str
;
6600
free(
str
);
6601
return
os;
6602
}
6603
6604
// implementations for isl::ast_expr_op_and_then
6605
ast_expr_op_and_then::ast_expr_op_and_then
()
6606
:
ast_expr_op
() {}
6607
6608
ast_expr_op_and_then::ast_expr_op_and_then
(
const
ast_expr_op_and_then
&
obj
)
6609
:
ast_expr_op
(
obj
)
6610
{
6611
}
6612
6613
ast_expr_op_and_then::ast_expr_op_and_then
(
__isl_take
isl_ast_expr
*
ptr
)
6614
:
ast_expr_op
(
ptr
) {}
6615
6616
ast_expr_op_and_then
&
ast_expr_op_and_then::operator=
(
ast_expr_op_and_then
obj
) {
6617
std::swap(this->ptr,
obj
.ptr);
6618
return
*
this
;
6619
}
6620
6621
isl::ctx
ast_expr_op_and_then::ctx
()
const
{
6622
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6623
}
6624
6625
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_and_then
&
obj
)
6626
{
6627
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6628
if
(!
str
) {
6629
os.setstate(std::ios_base::badbit);
6630
return
os;
6631
}
6632
os <<
str
;
6633
free(
str
);
6634
return
os;
6635
}
6636
6637
// implementations for isl::ast_expr_op_call
6638
ast_expr_op_call::ast_expr_op_call
()
6639
:
ast_expr_op
() {}
6640
6641
ast_expr_op_call::ast_expr_op_call
(
const
ast_expr_op_call
&
obj
)
6642
:
ast_expr_op
(
obj
)
6643
{
6644
}
6645
6646
ast_expr_op_call::ast_expr_op_call
(
__isl_take
isl_ast_expr
*
ptr
)
6647
:
ast_expr_op
(
ptr
) {}
6648
6649
ast_expr_op_call
&
ast_expr_op_call::operator=
(
ast_expr_op_call
obj
) {
6650
std::swap(this->ptr,
obj
.ptr);
6651
return
*
this
;
6652
}
6653
6654
isl::ctx
ast_expr_op_call::ctx
()
const
{
6655
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6656
}
6657
6658
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_call
&
obj
)
6659
{
6660
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6661
if
(!
str
) {
6662
os.setstate(std::ios_base::badbit);
6663
return
os;
6664
}
6665
os <<
str
;
6666
free(
str
);
6667
return
os;
6668
}
6669
6670
// implementations for isl::ast_expr_op_cond
6671
ast_expr_op_cond::ast_expr_op_cond
()
6672
:
ast_expr_op
() {}
6673
6674
ast_expr_op_cond::ast_expr_op_cond
(
const
ast_expr_op_cond
&
obj
)
6675
:
ast_expr_op
(
obj
)
6676
{
6677
}
6678
6679
ast_expr_op_cond::ast_expr_op_cond
(
__isl_take
isl_ast_expr
*
ptr
)
6680
:
ast_expr_op
(
ptr
) {}
6681
6682
ast_expr_op_cond
&
ast_expr_op_cond::operator=
(
ast_expr_op_cond
obj
) {
6683
std::swap(this->ptr,
obj
.ptr);
6684
return
*
this
;
6685
}
6686
6687
isl::ctx
ast_expr_op_cond::ctx
()
const
{
6688
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6689
}
6690
6691
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_cond
&
obj
)
6692
{
6693
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6694
if
(!
str
) {
6695
os.setstate(std::ios_base::badbit);
6696
return
os;
6697
}
6698
os <<
str
;
6699
free(
str
);
6700
return
os;
6701
}
6702
6703
// implementations for isl::ast_expr_op_div
6704
ast_expr_op_div::ast_expr_op_div
()
6705
:
ast_expr_op
() {}
6706
6707
ast_expr_op_div::ast_expr_op_div
(
const
ast_expr_op_div
&
obj
)
6708
:
ast_expr_op
(
obj
)
6709
{
6710
}
6711
6712
ast_expr_op_div::ast_expr_op_div
(
__isl_take
isl_ast_expr
*
ptr
)
6713
:
ast_expr_op
(
ptr
) {}
6714
6715
ast_expr_op_div
&
ast_expr_op_div::operator=
(
ast_expr_op_div
obj
) {
6716
std::swap(this->ptr,
obj
.ptr);
6717
return
*
this
;
6718
}
6719
6720
isl::ctx
ast_expr_op_div::ctx
()
const
{
6721
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6722
}
6723
6724
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_div
&
obj
)
6725
{
6726
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6727
if
(!
str
) {
6728
os.setstate(std::ios_base::badbit);
6729
return
os;
6730
}
6731
os <<
str
;
6732
free(
str
);
6733
return
os;
6734
}
6735
6736
// implementations for isl::ast_expr_op_eq
6737
ast_expr_op_eq::ast_expr_op_eq
()
6738
:
ast_expr_op
() {}
6739
6740
ast_expr_op_eq::ast_expr_op_eq
(
const
ast_expr_op_eq
&
obj
)
6741
:
ast_expr_op
(
obj
)
6742
{
6743
}
6744
6745
ast_expr_op_eq::ast_expr_op_eq
(
__isl_take
isl_ast_expr
*
ptr
)
6746
:
ast_expr_op
(
ptr
) {}
6747
6748
ast_expr_op_eq
&
ast_expr_op_eq::operator=
(
ast_expr_op_eq
obj
) {
6749
std::swap(this->ptr,
obj
.ptr);
6750
return
*
this
;
6751
}
6752
6753
isl::ctx
ast_expr_op_eq::ctx
()
const
{
6754
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6755
}
6756
6757
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_eq
&
obj
)
6758
{
6759
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6760
if
(!
str
) {
6761
os.setstate(std::ios_base::badbit);
6762
return
os;
6763
}
6764
os <<
str
;
6765
free(
str
);
6766
return
os;
6767
}
6768
6769
// implementations for isl::ast_expr_op_fdiv_q
6770
ast_expr_op_fdiv_q::ast_expr_op_fdiv_q
()
6771
:
ast_expr_op
() {}
6772
6773
ast_expr_op_fdiv_q::ast_expr_op_fdiv_q
(
const
ast_expr_op_fdiv_q
&
obj
)
6774
:
ast_expr_op
(
obj
)
6775
{
6776
}
6777
6778
ast_expr_op_fdiv_q::ast_expr_op_fdiv_q
(
__isl_take
isl_ast_expr
*
ptr
)
6779
:
ast_expr_op
(
ptr
) {}
6780
6781
ast_expr_op_fdiv_q
&
ast_expr_op_fdiv_q::operator=
(
ast_expr_op_fdiv_q
obj
) {
6782
std::swap(this->ptr,
obj
.ptr);
6783
return
*
this
;
6784
}
6785
6786
isl::ctx
ast_expr_op_fdiv_q::ctx
()
const
{
6787
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6788
}
6789
6790
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_fdiv_q
&
obj
)
6791
{
6792
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6793
if
(!
str
) {
6794
os.setstate(std::ios_base::badbit);
6795
return
os;
6796
}
6797
os <<
str
;
6798
free(
str
);
6799
return
os;
6800
}
6801
6802
// implementations for isl::ast_expr_op_ge
6803
ast_expr_op_ge::ast_expr_op_ge
()
6804
:
ast_expr_op
() {}
6805
6806
ast_expr_op_ge::ast_expr_op_ge
(
const
ast_expr_op_ge
&
obj
)
6807
:
ast_expr_op
(
obj
)
6808
{
6809
}
6810
6811
ast_expr_op_ge::ast_expr_op_ge
(
__isl_take
isl_ast_expr
*
ptr
)
6812
:
ast_expr_op
(
ptr
) {}
6813
6814
ast_expr_op_ge
&
ast_expr_op_ge::operator=
(
ast_expr_op_ge
obj
) {
6815
std::swap(this->ptr,
obj
.ptr);
6816
return
*
this
;
6817
}
6818
6819
isl::ctx
ast_expr_op_ge::ctx
()
const
{
6820
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6821
}
6822
6823
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_ge
&
obj
)
6824
{
6825
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6826
if
(!
str
) {
6827
os.setstate(std::ios_base::badbit);
6828
return
os;
6829
}
6830
os <<
str
;
6831
free(
str
);
6832
return
os;
6833
}
6834
6835
// implementations for isl::ast_expr_op_gt
6836
ast_expr_op_gt::ast_expr_op_gt
()
6837
:
ast_expr_op
() {}
6838
6839
ast_expr_op_gt::ast_expr_op_gt
(
const
ast_expr_op_gt
&
obj
)
6840
:
ast_expr_op
(
obj
)
6841
{
6842
}
6843
6844
ast_expr_op_gt::ast_expr_op_gt
(
__isl_take
isl_ast_expr
*
ptr
)
6845
:
ast_expr_op
(
ptr
) {}
6846
6847
ast_expr_op_gt
&
ast_expr_op_gt::operator=
(
ast_expr_op_gt
obj
) {
6848
std::swap(this->ptr,
obj
.ptr);
6849
return
*
this
;
6850
}
6851
6852
isl::ctx
ast_expr_op_gt::ctx
()
const
{
6853
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6854
}
6855
6856
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_gt
&
obj
)
6857
{
6858
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6859
if
(!
str
) {
6860
os.setstate(std::ios_base::badbit);
6861
return
os;
6862
}
6863
os <<
str
;
6864
free(
str
);
6865
return
os;
6866
}
6867
6868
// implementations for isl::ast_expr_op_le
6869
ast_expr_op_le::ast_expr_op_le
()
6870
:
ast_expr_op
() {}
6871
6872
ast_expr_op_le::ast_expr_op_le
(
const
ast_expr_op_le
&
obj
)
6873
:
ast_expr_op
(
obj
)
6874
{
6875
}
6876
6877
ast_expr_op_le::ast_expr_op_le
(
__isl_take
isl_ast_expr
*
ptr
)
6878
:
ast_expr_op
(
ptr
) {}
6879
6880
ast_expr_op_le
&
ast_expr_op_le::operator=
(
ast_expr_op_le
obj
) {
6881
std::swap(this->ptr,
obj
.ptr);
6882
return
*
this
;
6883
}
6884
6885
isl::ctx
ast_expr_op_le::ctx
()
const
{
6886
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6887
}
6888
6889
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_le
&
obj
)
6890
{
6891
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6892
if
(!
str
) {
6893
os.setstate(std::ios_base::badbit);
6894
return
os;
6895
}
6896
os <<
str
;
6897
free(
str
);
6898
return
os;
6899
}
6900
6901
// implementations for isl::ast_expr_op_lt
6902
ast_expr_op_lt::ast_expr_op_lt
()
6903
:
ast_expr_op
() {}
6904
6905
ast_expr_op_lt::ast_expr_op_lt
(
const
ast_expr_op_lt
&
obj
)
6906
:
ast_expr_op
(
obj
)
6907
{
6908
}
6909
6910
ast_expr_op_lt::ast_expr_op_lt
(
__isl_take
isl_ast_expr
*
ptr
)
6911
:
ast_expr_op
(
ptr
) {}
6912
6913
ast_expr_op_lt
&
ast_expr_op_lt::operator=
(
ast_expr_op_lt
obj
) {
6914
std::swap(this->ptr,
obj
.ptr);
6915
return
*
this
;
6916
}
6917
6918
isl::ctx
ast_expr_op_lt::ctx
()
const
{
6919
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6920
}
6921
6922
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_lt
&
obj
)
6923
{
6924
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6925
if
(!
str
) {
6926
os.setstate(std::ios_base::badbit);
6927
return
os;
6928
}
6929
os <<
str
;
6930
free(
str
);
6931
return
os;
6932
}
6933
6934
// implementations for isl::ast_expr_op_max
6935
ast_expr_op_max::ast_expr_op_max
()
6936
:
ast_expr_op
() {}
6937
6938
ast_expr_op_max::ast_expr_op_max
(
const
ast_expr_op_max
&
obj
)
6939
:
ast_expr_op
(
obj
)
6940
{
6941
}
6942
6943
ast_expr_op_max::ast_expr_op_max
(
__isl_take
isl_ast_expr
*
ptr
)
6944
:
ast_expr_op
(
ptr
) {}
6945
6946
ast_expr_op_max
&
ast_expr_op_max::operator=
(
ast_expr_op_max
obj
) {
6947
std::swap(this->ptr,
obj
.ptr);
6948
return
*
this
;
6949
}
6950
6951
isl::ctx
ast_expr_op_max::ctx
()
const
{
6952
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6953
}
6954
6955
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_max
&
obj
)
6956
{
6957
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6958
if
(!
str
) {
6959
os.setstate(std::ios_base::badbit);
6960
return
os;
6961
}
6962
os <<
str
;
6963
free(
str
);
6964
return
os;
6965
}
6966
6967
// implementations for isl::ast_expr_op_member
6968
ast_expr_op_member::ast_expr_op_member
()
6969
:
ast_expr_op
() {}
6970
6971
ast_expr_op_member::ast_expr_op_member
(
const
ast_expr_op_member
&
obj
)
6972
:
ast_expr_op
(
obj
)
6973
{
6974
}
6975
6976
ast_expr_op_member::ast_expr_op_member
(
__isl_take
isl_ast_expr
*
ptr
)
6977
:
ast_expr_op
(
ptr
) {}
6978
6979
ast_expr_op_member
&
ast_expr_op_member::operator=
(
ast_expr_op_member
obj
) {
6980
std::swap(this->ptr,
obj
.ptr);
6981
return
*
this
;
6982
}
6983
6984
isl::ctx
ast_expr_op_member::ctx
()
const
{
6985
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
6986
}
6987
6988
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_member
&
obj
)
6989
{
6990
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
6991
if
(!
str
) {
6992
os.setstate(std::ios_base::badbit);
6993
return
os;
6994
}
6995
os <<
str
;
6996
free(
str
);
6997
return
os;
6998
}
6999
7000
// implementations for isl::ast_expr_op_min
7001
ast_expr_op_min::ast_expr_op_min
()
7002
:
ast_expr_op
() {}
7003
7004
ast_expr_op_min::ast_expr_op_min
(
const
ast_expr_op_min
&
obj
)
7005
:
ast_expr_op
(
obj
)
7006
{
7007
}
7008
7009
ast_expr_op_min::ast_expr_op_min
(
__isl_take
isl_ast_expr
*
ptr
)
7010
:
ast_expr_op
(
ptr
) {}
7011
7012
ast_expr_op_min
&
ast_expr_op_min::operator=
(
ast_expr_op_min
obj
) {
7013
std::swap(this->ptr,
obj
.ptr);
7014
return
*
this
;
7015
}
7016
7017
isl::ctx
ast_expr_op_min::ctx
()
const
{
7018
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7019
}
7020
7021
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_min
&
obj
)
7022
{
7023
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7024
if
(!
str
) {
7025
os.setstate(std::ios_base::badbit);
7026
return
os;
7027
}
7028
os <<
str
;
7029
free(
str
);
7030
return
os;
7031
}
7032
7033
// implementations for isl::ast_expr_op_minus
7034
ast_expr_op_minus::ast_expr_op_minus
()
7035
:
ast_expr_op
() {}
7036
7037
ast_expr_op_minus::ast_expr_op_minus
(
const
ast_expr_op_minus
&
obj
)
7038
:
ast_expr_op
(
obj
)
7039
{
7040
}
7041
7042
ast_expr_op_minus::ast_expr_op_minus
(
__isl_take
isl_ast_expr
*
ptr
)
7043
:
ast_expr_op
(
ptr
) {}
7044
7045
ast_expr_op_minus
&
ast_expr_op_minus::operator=
(
ast_expr_op_minus
obj
) {
7046
std::swap(this->ptr,
obj
.ptr);
7047
return
*
this
;
7048
}
7049
7050
isl::ctx
ast_expr_op_minus::ctx
()
const
{
7051
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7052
}
7053
7054
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_minus
&
obj
)
7055
{
7056
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7057
if
(!
str
) {
7058
os.setstate(std::ios_base::badbit);
7059
return
os;
7060
}
7061
os <<
str
;
7062
free(
str
);
7063
return
os;
7064
}
7065
7066
// implementations for isl::ast_expr_op_mul
7067
ast_expr_op_mul::ast_expr_op_mul
()
7068
:
ast_expr_op
() {}
7069
7070
ast_expr_op_mul::ast_expr_op_mul
(
const
ast_expr_op_mul
&
obj
)
7071
:
ast_expr_op
(
obj
)
7072
{
7073
}
7074
7075
ast_expr_op_mul::ast_expr_op_mul
(
__isl_take
isl_ast_expr
*
ptr
)
7076
:
ast_expr_op
(
ptr
) {}
7077
7078
ast_expr_op_mul
&
ast_expr_op_mul::operator=
(
ast_expr_op_mul
obj
) {
7079
std::swap(this->ptr,
obj
.ptr);
7080
return
*
this
;
7081
}
7082
7083
isl::ctx
ast_expr_op_mul::ctx
()
const
{
7084
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7085
}
7086
7087
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_mul
&
obj
)
7088
{
7089
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7090
if
(!
str
) {
7091
os.setstate(std::ios_base::badbit);
7092
return
os;
7093
}
7094
os <<
str
;
7095
free(
str
);
7096
return
os;
7097
}
7098
7099
// implementations for isl::ast_expr_op_or
7100
ast_expr_op_or::ast_expr_op_or
()
7101
:
ast_expr_op
() {}
7102
7103
ast_expr_op_or::ast_expr_op_or
(
const
ast_expr_op_or
&
obj
)
7104
:
ast_expr_op
(
obj
)
7105
{
7106
}
7107
7108
ast_expr_op_or::ast_expr_op_or
(
__isl_take
isl_ast_expr
*
ptr
)
7109
:
ast_expr_op
(
ptr
) {}
7110
7111
ast_expr_op_or
&
ast_expr_op_or::operator=
(
ast_expr_op_or
obj
) {
7112
std::swap(this->ptr,
obj
.ptr);
7113
return
*
this
;
7114
}
7115
7116
isl::ctx
ast_expr_op_or::ctx
()
const
{
7117
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7118
}
7119
7120
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_or
&
obj
)
7121
{
7122
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7123
if
(!
str
) {
7124
os.setstate(std::ios_base::badbit);
7125
return
os;
7126
}
7127
os <<
str
;
7128
free(
str
);
7129
return
os;
7130
}
7131
7132
// implementations for isl::ast_expr_op_or_else
7133
ast_expr_op_or_else::ast_expr_op_or_else
()
7134
:
ast_expr_op
() {}
7135
7136
ast_expr_op_or_else::ast_expr_op_or_else
(
const
ast_expr_op_or_else
&
obj
)
7137
:
ast_expr_op
(
obj
)
7138
{
7139
}
7140
7141
ast_expr_op_or_else::ast_expr_op_or_else
(
__isl_take
isl_ast_expr
*
ptr
)
7142
:
ast_expr_op
(
ptr
) {}
7143
7144
ast_expr_op_or_else
&
ast_expr_op_or_else::operator=
(
ast_expr_op_or_else
obj
) {
7145
std::swap(this->ptr,
obj
.ptr);
7146
return
*
this
;
7147
}
7148
7149
isl::ctx
ast_expr_op_or_else::ctx
()
const
{
7150
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7151
}
7152
7153
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_or_else
&
obj
)
7154
{
7155
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7156
if
(!
str
) {
7157
os.setstate(std::ios_base::badbit);
7158
return
os;
7159
}
7160
os <<
str
;
7161
free(
str
);
7162
return
os;
7163
}
7164
7165
// implementations for isl::ast_expr_op_pdiv_q
7166
ast_expr_op_pdiv_q::ast_expr_op_pdiv_q
()
7167
:
ast_expr_op
() {}
7168
7169
ast_expr_op_pdiv_q::ast_expr_op_pdiv_q
(
const
ast_expr_op_pdiv_q
&
obj
)
7170
:
ast_expr_op
(
obj
)
7171
{
7172
}
7173
7174
ast_expr_op_pdiv_q::ast_expr_op_pdiv_q
(
__isl_take
isl_ast_expr
*
ptr
)
7175
:
ast_expr_op
(
ptr
) {}
7176
7177
ast_expr_op_pdiv_q
&
ast_expr_op_pdiv_q::operator=
(
ast_expr_op_pdiv_q
obj
) {
7178
std::swap(this->ptr,
obj
.ptr);
7179
return
*
this
;
7180
}
7181
7182
isl::ctx
ast_expr_op_pdiv_q::ctx
()
const
{
7183
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7184
}
7185
7186
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_pdiv_q
&
obj
)
7187
{
7188
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7189
if
(!
str
) {
7190
os.setstate(std::ios_base::badbit);
7191
return
os;
7192
}
7193
os <<
str
;
7194
free(
str
);
7195
return
os;
7196
}
7197
7198
// implementations for isl::ast_expr_op_pdiv_r
7199
ast_expr_op_pdiv_r::ast_expr_op_pdiv_r
()
7200
:
ast_expr_op
() {}
7201
7202
ast_expr_op_pdiv_r::ast_expr_op_pdiv_r
(
const
ast_expr_op_pdiv_r
&
obj
)
7203
:
ast_expr_op
(
obj
)
7204
{
7205
}
7206
7207
ast_expr_op_pdiv_r::ast_expr_op_pdiv_r
(
__isl_take
isl_ast_expr
*
ptr
)
7208
:
ast_expr_op
(
ptr
) {}
7209
7210
ast_expr_op_pdiv_r
&
ast_expr_op_pdiv_r::operator=
(
ast_expr_op_pdiv_r
obj
) {
7211
std::swap(this->ptr,
obj
.ptr);
7212
return
*
this
;
7213
}
7214
7215
isl::ctx
ast_expr_op_pdiv_r::ctx
()
const
{
7216
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7217
}
7218
7219
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_pdiv_r
&
obj
)
7220
{
7221
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7222
if
(!
str
) {
7223
os.setstate(std::ios_base::badbit);
7224
return
os;
7225
}
7226
os <<
str
;
7227
free(
str
);
7228
return
os;
7229
}
7230
7231
// implementations for isl::ast_expr_op_select
7232
ast_expr_op_select::ast_expr_op_select
()
7233
:
ast_expr_op
() {}
7234
7235
ast_expr_op_select::ast_expr_op_select
(
const
ast_expr_op_select
&
obj
)
7236
:
ast_expr_op
(
obj
)
7237
{
7238
}
7239
7240
ast_expr_op_select::ast_expr_op_select
(
__isl_take
isl_ast_expr
*
ptr
)
7241
:
ast_expr_op
(
ptr
) {}
7242
7243
ast_expr_op_select
&
ast_expr_op_select::operator=
(
ast_expr_op_select
obj
) {
7244
std::swap(this->ptr,
obj
.ptr);
7245
return
*
this
;
7246
}
7247
7248
isl::ctx
ast_expr_op_select::ctx
()
const
{
7249
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7250
}
7251
7252
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_select
&
obj
)
7253
{
7254
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7255
if
(!
str
) {
7256
os.setstate(std::ios_base::badbit);
7257
return
os;
7258
}
7259
os <<
str
;
7260
free(
str
);
7261
return
os;
7262
}
7263
7264
// implementations for isl::ast_expr_op_sub
7265
ast_expr_op_sub::ast_expr_op_sub
()
7266
:
ast_expr_op
() {}
7267
7268
ast_expr_op_sub::ast_expr_op_sub
(
const
ast_expr_op_sub
&
obj
)
7269
:
ast_expr_op
(
obj
)
7270
{
7271
}
7272
7273
ast_expr_op_sub::ast_expr_op_sub
(
__isl_take
isl_ast_expr
*
ptr
)
7274
:
ast_expr_op
(
ptr
) {}
7275
7276
ast_expr_op_sub
&
ast_expr_op_sub::operator=
(
ast_expr_op_sub
obj
) {
7277
std::swap(this->ptr,
obj
.ptr);
7278
return
*
this
;
7279
}
7280
7281
isl::ctx
ast_expr_op_sub::ctx
()
const
{
7282
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7283
}
7284
7285
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_sub
&
obj
)
7286
{
7287
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7288
if
(!
str
) {
7289
os.setstate(std::ios_base::badbit);
7290
return
os;
7291
}
7292
os <<
str
;
7293
free(
str
);
7294
return
os;
7295
}
7296
7297
// implementations for isl::ast_expr_op_zdiv_r
7298
ast_expr_op_zdiv_r::ast_expr_op_zdiv_r
()
7299
:
ast_expr_op
() {}
7300
7301
ast_expr_op_zdiv_r::ast_expr_op_zdiv_r
(
const
ast_expr_op_zdiv_r
&
obj
)
7302
:
ast_expr_op
(
obj
)
7303
{
7304
}
7305
7306
ast_expr_op_zdiv_r::ast_expr_op_zdiv_r
(
__isl_take
isl_ast_expr
*
ptr
)
7307
:
ast_expr_op
(
ptr
) {}
7308
7309
ast_expr_op_zdiv_r
&
ast_expr_op_zdiv_r::operator=
(
ast_expr_op_zdiv_r
obj
) {
7310
std::swap(this->ptr,
obj
.ptr);
7311
return
*
this
;
7312
}
7313
7314
isl::ctx
ast_expr_op_zdiv_r::ctx
()
const
{
7315
return
isl::ctx
(
isl_ast_expr_get_ctx
(
ptr
));
7316
}
7317
7318
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_expr_op_zdiv_r
&
obj
)
7319
{
7320
char
*
str
=
isl_ast_expr_to_str
(
obj
.get());
7321
if
(!
str
) {
7322
os.setstate(std::ios_base::badbit);
7323
return
os;
7324
}
7325
os <<
str
;
7326
free(
str
);
7327
return
os;
7328
}
7329
7330
// implementations for isl::ast_node
7331
ast_node
manage
(
__isl_take
isl_ast_node
*
ptr
) {
7332
return
ast_node
(
ptr
);
7333
}
7334
ast_node
manage_copy
(
__isl_keep
isl_ast_node
*
ptr
) {
7335
ptr
=
isl_ast_node_copy
(
ptr
);
7336
return
ast_node
(
ptr
);
7337
}
7338
7339
ast_node::ast_node
()
7340
:
ptr
(nullptr) {}
7341
7342
ast_node::ast_node
(
const
ast_node
&
obj
)
7343
:
ptr
(nullptr)
7344
{
7345
ptr
=
obj
.copy();
7346
}
7347
7348
ast_node::ast_node
(
__isl_take
isl_ast_node
*
ptr
)
7349
:
ptr
(
ptr
) {}
7350
7351
ast_node
&
ast_node::operator=
(
ast_node
obj
) {
7352
std::swap(this->ptr,
obj
.ptr);
7353
return
*
this
;
7354
}
7355
7356
ast_node::~ast_node
() {
7357
if
(
ptr
)
7358
isl_ast_node_free
(
ptr
);
7359
}
7360
7361
__isl_give
isl_ast_node
*
ast_node::copy
() const & {
7362
return
isl_ast_node_copy
(
ptr
);
7363
}
7364
7365
__isl_keep
isl_ast_node
*
ast_node::get
()
const
{
7366
return
ptr
;
7367
}
7368
7369
__isl_give
isl_ast_node
*
ast_node::release
() {
7370
isl_ast_node
*tmp =
ptr
;
7371
ptr
=
nullptr
;
7372
return
tmp;
7373
}
7374
7375
bool
ast_node::is_null
()
const
{
7376
return
ptr
==
nullptr
;
7377
}
7378
7379
template
<
typename
T,
typename
>
7380
boolean
ast_node::isa_type
(T subtype)
const
7381
{
7382
if
(
is_null
())
7383
return
boolean
();
7384
return
isl_ast_node_get_type
(
get
()) == subtype;
7385
}
7386
template
<
class
T>
7387
boolean
ast_node::isa
()
const
7388
{
7389
return
isa_type<decltype(T::type)>
(T::type);
7390
}
7391
template
<
class
T>
7392
T
ast_node::as
()
const
7393
{
7394
if
(
isa<T>
().is_false())
7395
isl_die
(
ctx
().
get
(),
isl_error_invalid
,
"not an object of the requested subtype"
,
return
T());
7396
return
T(
copy
());
7397
}
7398
7399
isl::ctx
ast_node::ctx
()
const
{
7400
return
isl::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7401
}
7402
7403
isl::id
ast_node::annotation
()
const
7404
{
7405
auto
res
=
isl_ast_node_get_annotation
(
get
());
7406
return
manage
(
res
);
7407
}
7408
7409
isl::id
ast_node::get_annotation
()
const
7410
{
7411
return
annotation
();
7412
}
7413
7414
std::string
ast_node::to_C_str
()
const
7415
{
7416
auto
res
=
isl_ast_node_to_C_str
(
get
());
7417
std::string tmp(
res
);
7418
free(
res
);
7419
return
tmp;
7420
}
7421
7422
isl::ast_node_list
ast_node::to_list
()
const
7423
{
7424
auto
res
= isl_ast_node_to_list(
copy
());
7425
return
manage
(
res
);
7426
}
7427
7428
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node
&
obj
)
7429
{
7430
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7431
if
(!
str
) {
7432
os.setstate(std::ios_base::badbit);
7433
return
os;
7434
}
7435
os <<
str
;
7436
free(
str
);
7437
return
os;
7438
}
7439
7440
// implementations for isl::ast_node_block
7441
ast_node_block::ast_node_block
()
7442
:
ast_node
() {}
7443
7444
ast_node_block::ast_node_block
(
const
ast_node_block
&
obj
)
7445
:
ast_node
(
obj
)
7446
{
7447
}
7448
7449
ast_node_block::ast_node_block
(
__isl_take
isl_ast_node
*
ptr
)
7450
:
ast_node
(
ptr
) {}
7451
7452
ast_node_block
&
ast_node_block::operator=
(
ast_node_block
obj
) {
7453
std::swap(this->ptr,
obj
.ptr);
7454
return
*
this
;
7455
}
7456
7457
isl::ctx
ast_node_block::ctx
()
const
{
7458
return
isl::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7459
}
7460
7461
isl::ast_node_list
ast_node_block::children
()
const
7462
{
7463
auto
res
=
isl_ast_node_block_get_children
(
get
());
7464
return
manage
(
res
);
7465
}
7466
7467
isl::ast_node_list
ast_node_block::get_children
()
const
7468
{
7469
return
children
();
7470
}
7471
7472
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_block
&
obj
)
7473
{
7474
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7475
if
(!
str
) {
7476
os.setstate(std::ios_base::badbit);
7477
return
os;
7478
}
7479
os <<
str
;
7480
free(
str
);
7481
return
os;
7482
}
7483
7484
// implementations for isl::ast_node_for
7485
ast_node_for::ast_node_for
()
7486
:
ast_node
() {}
7487
7488
ast_node_for::ast_node_for
(
const
ast_node_for
&
obj
)
7489
:
ast_node
(
obj
)
7490
{
7491
}
7492
7493
ast_node_for::ast_node_for
(
__isl_take
isl_ast_node
*
ptr
)
7494
:
ast_node
(
ptr
) {}
7495
7496
ast_node_for
&
ast_node_for::operator=
(
ast_node_for
obj
) {
7497
std::swap(this->ptr,
obj
.ptr);
7498
return
*
this
;
7499
}
7500
7501
isl::ctx
ast_node_for::ctx
()
const
{
7502
return
isl::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7503
}
7504
7505
isl::ast_node
ast_node_for::body
()
const
7506
{
7507
auto
res
=
isl_ast_node_for_get_body
(
get
());
7508
return
manage
(
res
);
7509
}
7510
7511
isl::ast_node
ast_node_for::get_body
()
const
7512
{
7513
return
body
();
7514
}
7515
7516
isl::ast_expr
ast_node_for::cond
()
const
7517
{
7518
auto
res
=
isl_ast_node_for_get_cond
(
get
());
7519
return
manage
(
res
);
7520
}
7521
7522
isl::ast_expr
ast_node_for::get_cond
()
const
7523
{
7524
return
cond
();
7525
}
7526
7527
isl::ast_expr
ast_node_for::inc
()
const
7528
{
7529
auto
res
=
isl_ast_node_for_get_inc
(
get
());
7530
return
manage
(
res
);
7531
}
7532
7533
isl::ast_expr
ast_node_for::get_inc
()
const
7534
{
7535
return
inc
();
7536
}
7537
7538
isl::ast_expr
ast_node_for::init
()
const
7539
{
7540
auto
res
=
isl_ast_node_for_get_init
(
get
());
7541
return
manage
(
res
);
7542
}
7543
7544
isl::ast_expr
ast_node_for::get_init
()
const
7545
{
7546
return
init
();
7547
}
7548
7549
boolean
ast_node_for::is_degenerate
()
const
7550
{
7551
auto
res
=
isl_ast_node_for_is_degenerate
(
get
());
7552
return
manage
(
res
);
7553
}
7554
7555
isl::ast_expr
ast_node_for::iterator
()
const
7556
{
7557
auto
res
=
isl_ast_node_for_get_iterator
(
get
());
7558
return
manage
(
res
);
7559
}
7560
7561
isl::ast_expr
ast_node_for::get_iterator
()
const
7562
{
7563
return
iterator
();
7564
}
7565
7566
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_for
&
obj
)
7567
{
7568
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7569
if
(!
str
) {
7570
os.setstate(std::ios_base::badbit);
7571
return
os;
7572
}
7573
os <<
str
;
7574
free(
str
);
7575
return
os;
7576
}
7577
7578
// implementations for isl::ast_node_if
7579
ast_node_if::ast_node_if
()
7580
:
ast_node
() {}
7581
7582
ast_node_if::ast_node_if
(
const
ast_node_if
&
obj
)
7583
:
ast_node
(
obj
)
7584
{
7585
}
7586
7587
ast_node_if::ast_node_if
(
__isl_take
isl_ast_node
*
ptr
)
7588
:
ast_node
(
ptr
) {}
7589
7590
ast_node_if
&
ast_node_if::operator=
(
ast_node_if
obj
) {
7591
std::swap(this->ptr,
obj
.ptr);
7592
return
*
this
;
7593
}
7594
7595
isl::ctx
ast_node_if::ctx
()
const
{
7596
return
isl::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7597
}
7598
7599
isl::ast_expr
ast_node_if::cond
()
const
7600
{
7601
auto
res
=
isl_ast_node_if_get_cond
(
get
());
7602
return
manage
(
res
);
7603
}
7604
7605
isl::ast_expr
ast_node_if::get_cond
()
const
7606
{
7607
return
cond
();
7608
}
7609
7610
isl::ast_node
ast_node_if::else_node
()
const
7611
{
7612
auto
res
=
isl_ast_node_if_get_else_node
(
get
());
7613
return
manage
(
res
);
7614
}
7615
7616
isl::ast_node
ast_node_if::get_else_node
()
const
7617
{
7618
return
else_node
();
7619
}
7620
7621
boolean
ast_node_if::has_else_node
()
const
7622
{
7623
auto
res
=
isl_ast_node_if_has_else_node
(
get
());
7624
return
manage
(
res
);
7625
}
7626
7627
isl::ast_node
ast_node_if::then_node
()
const
7628
{
7629
auto
res
=
isl_ast_node_if_get_then_node
(
get
());
7630
return
manage
(
res
);
7631
}
7632
7633
isl::ast_node
ast_node_if::get_then_node
()
const
7634
{
7635
return
then_node
();
7636
}
7637
7638
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_if
&
obj
)
7639
{
7640
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7641
if
(!
str
) {
7642
os.setstate(std::ios_base::badbit);
7643
return
os;
7644
}
7645
os <<
str
;
7646
free(
str
);
7647
return
os;
7648
}
7649
7650
// implementations for isl::ast_node_list
7651
ast_node_list
manage
(
__isl_take
isl_ast_node_list *
ptr
) {
7652
return
ast_node_list
(
ptr
);
7653
}
7654
ast_node_list
manage_copy
(
__isl_keep
isl_ast_node_list *
ptr
) {
7655
ptr
= isl_ast_node_list_copy(
ptr
);
7656
return
ast_node_list
(
ptr
);
7657
}
7658
7659
ast_node_list::ast_node_list
()
7660
:
ptr
(nullptr) {}
7661
7662
ast_node_list::ast_node_list
(
const
ast_node_list
&
obj
)
7663
:
ptr
(nullptr)
7664
{
7665
ptr
=
obj
.copy();
7666
}
7667
7668
ast_node_list::ast_node_list
(
__isl_take
isl_ast_node_list *
ptr
)
7669
:
ptr
(
ptr
) {}
7670
7671
ast_node_list::ast_node_list
(
isl::ctx
ctx
,
int
n
)
7672
{
7673
auto
res
= isl_ast_node_list_alloc(
ctx
.release(),
n
);
7674
ptr
=
res
;
7675
}
7676
7677
ast_node_list::ast_node_list
(
isl::ast_node
el)
7678
{
7679
auto
res
= isl_ast_node_list_from_ast_node(el.
release
());
7680
ptr
=
res
;
7681
}
7682
7683
ast_node_list
&
ast_node_list::operator=
(
ast_node_list
obj
) {
7684
std::swap(this->ptr,
obj
.ptr);
7685
return
*
this
;
7686
}
7687
7688
ast_node_list::~ast_node_list
() {
7689
if
(
ptr
)
7690
isl_ast_node_list_free(
ptr
);
7691
}
7692
7693
__isl_give
isl_ast_node_list *
ast_node_list::copy
() const & {
7694
return
isl_ast_node_list_copy(
ptr
);
7695
}
7696
7697
__isl_keep
isl_ast_node_list *
ast_node_list::get
()
const
{
7698
return
ptr
;
7699
}
7700
7701
__isl_give
isl_ast_node_list *
ast_node_list::release
() {
7702
isl_ast_node_list *tmp =
ptr
;
7703
ptr
=
nullptr
;
7704
return
tmp;
7705
}
7706
7707
bool
ast_node_list::is_null
()
const
{
7708
return
ptr
==
nullptr
;
7709
}
7710
7711
isl::ctx
ast_node_list::ctx
()
const
{
7712
return
isl::ctx
(isl_ast_node_list_get_ctx(
ptr
));
7713
}
7714
7715
isl::ast_node_list
ast_node_list::add
(
isl::ast_node
el)
const
7716
{
7717
auto
res
= isl_ast_node_list_add(
copy
(), el.
release
());
7718
return
manage
(
res
);
7719
}
7720
7721
isl::ast_node
ast_node_list::at
(
int
index)
const
7722
{
7723
auto
res
= isl_ast_node_list_get_at(
get
(), index);
7724
return
manage
(
res
);
7725
}
7726
7727
isl::ast_node
ast_node_list::get_at
(
int
index)
const
7728
{
7729
return
at
(index);
7730
}
7731
7732
isl::ast_node_list
ast_node_list::clear
()
const
7733
{
7734
auto
res
= isl_ast_node_list_clear(
copy
());
7735
return
manage
(
res
);
7736
}
7737
7738
isl::ast_node_list
ast_node_list::concat
(
isl::ast_node_list
list2)
const
7739
{
7740
auto
res
= isl_ast_node_list_concat(
copy
(), list2.
release
());
7741
return
manage
(
res
);
7742
}
7743
7744
isl::ast_node_list
ast_node_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
7745
{
7746
auto
res
= isl_ast_node_list_drop(
copy
(), first,
n
);
7747
return
manage
(
res
);
7748
}
7749
7750
stat
ast_node_list::foreach
(
const
std::function<
stat
(
isl::ast_node
)> &
fn
)
const
7751
{
7752
struct
fn_data {
7753
std::function<
stat
(
isl::ast_node
)> func;
7754
} fn_data = {
fn
};
7755
auto
fn_lambda = [](
isl_ast_node
*arg_0,
void
*arg_1) ->
isl_stat
{
7756
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
7757
auto
ret = (data->func)(
manage
(arg_0));
7758
return
ret.release();
7759
};
7760
auto
res
= isl_ast_node_list_foreach(
get
(), fn_lambda, &fn_data);
7761
return
manage
(
res
);
7762
}
7763
7764
isl::ast_node_list
ast_node_list::insert
(
unsigned
int
pos
,
isl::ast_node
el)
const
7765
{
7766
auto
res
= isl_ast_node_list_insert(
copy
(),
pos
, el.
release
());
7767
return
manage
(
res
);
7768
}
7769
7770
class
size
ast_node_list::size
()
const
7771
{
7772
auto
res
= isl_ast_node_list_size(
get
());
7773
return
manage
(
res
);
7774
}
7775
7776
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_list
&
obj
)
7777
{
7778
char
*
str
= isl_ast_node_list_to_str(
obj
.get());
7779
if
(!
str
) {
7780
os.setstate(std::ios_base::badbit);
7781
return
os;
7782
}
7783
os <<
str
;
7784
free(
str
);
7785
return
os;
7786
}
7787
7788
// implementations for isl::ast_node_mark
7789
ast_node_mark::ast_node_mark
()
7790
:
ast_node
() {}
7791
7792
ast_node_mark::ast_node_mark
(
const
ast_node_mark
&
obj
)
7793
:
ast_node
(
obj
)
7794
{
7795
}
7796
7797
ast_node_mark::ast_node_mark
(
__isl_take
isl_ast_node
*
ptr
)
7798
:
ast_node
(
ptr
) {}
7799
7800
ast_node_mark
&
ast_node_mark::operator=
(
ast_node_mark
obj
) {
7801
std::swap(this->ptr,
obj
.ptr);
7802
return
*
this
;
7803
}
7804
7805
isl::ctx
ast_node_mark::ctx
()
const
{
7806
return
isl::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7807
}
7808
7809
isl::id
ast_node_mark::id
()
const
7810
{
7811
auto
res
=
isl_ast_node_mark_get_id
(
get
());
7812
return
manage
(
res
);
7813
}
7814
7815
isl::id
ast_node_mark::get_id
()
const
7816
{
7817
return
id
();
7818
}
7819
7820
isl::ast_node
ast_node_mark::node
()
const
7821
{
7822
auto
res
=
isl_ast_node_mark_get_node
(
get
());
7823
return
manage
(
res
);
7824
}
7825
7826
isl::ast_node
ast_node_mark::get_node
()
const
7827
{
7828
return
node
();
7829
}
7830
7831
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_mark
&
obj
)
7832
{
7833
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7834
if
(!
str
) {
7835
os.setstate(std::ios_base::badbit);
7836
return
os;
7837
}
7838
os <<
str
;
7839
free(
str
);
7840
return
os;
7841
}
7842
7843
// implementations for isl::ast_node_user
7844
ast_node_user::ast_node_user
()
7845
:
ast_node
() {}
7846
7847
ast_node_user::ast_node_user
(
const
ast_node_user
&
obj
)
7848
:
ast_node
(
obj
)
7849
{
7850
}
7851
7852
ast_node_user::ast_node_user
(
__isl_take
isl_ast_node
*
ptr
)
7853
:
ast_node
(
ptr
) {}
7854
7855
ast_node_user
&
ast_node_user::operator=
(
ast_node_user
obj
) {
7856
std::swap(this->ptr,
obj
.ptr);
7857
return
*
this
;
7858
}
7859
7860
isl::ctx
ast_node_user::ctx
()
const
{
7861
return
isl::ctx
(
isl_ast_node_get_ctx
(
ptr
));
7862
}
7863
7864
isl::ast_expr
ast_node_user::expr
()
const
7865
{
7866
auto
res
=
isl_ast_node_user_get_expr
(
get
());
7867
return
manage
(
res
);
7868
}
7869
7870
isl::ast_expr
ast_node_user::get_expr
()
const
7871
{
7872
return
expr
();
7873
}
7874
7875
inline
std::ostream &
operator<<
(std::ostream &os,
const
ast_node_user
&
obj
)
7876
{
7877
char
*
str
=
isl_ast_node_to_str
(
obj
.get());
7878
if
(!
str
) {
7879
os.setstate(std::ios_base::badbit);
7880
return
os;
7881
}
7882
os <<
str
;
7883
free(
str
);
7884
return
os;
7885
}
7886
7887
// implementations for isl::basic_map
7888
basic_map
manage
(
__isl_take
isl_basic_map
*
ptr
) {
7889
return
basic_map
(
ptr
);
7890
}
7891
basic_map
manage_copy
(
__isl_keep
isl_basic_map
*
ptr
) {
7892
ptr
=
isl_basic_map_copy
(
ptr
);
7893
return
basic_map
(
ptr
);
7894
}
7895
7896
basic_map::basic_map
()
7897
:
ptr
(nullptr) {}
7898
7899
basic_map::basic_map
(
const
basic_map
&
obj
)
7900
:
ptr
(nullptr)
7901
{
7902
ptr
=
obj
.copy();
7903
}
7904
7905
basic_map::basic_map
(
__isl_take
isl_basic_map
*
ptr
)
7906
:
ptr
(
ptr
) {}
7907
7908
basic_map::basic_map
(
isl::ctx
ctx
,
const
std::string &
str
)
7909
{
7910
auto
res
=
isl_basic_map_read_from_str
(
ctx
.release(),
str
.c_str());
7911
ptr
=
res
;
7912
}
7913
7914
basic_map
&
basic_map::operator=
(
basic_map
obj
) {
7915
std::swap(this->ptr,
obj
.ptr);
7916
return
*
this
;
7917
}
7918
7919
basic_map::~basic_map
() {
7920
if
(
ptr
)
7921
isl_basic_map_free
(
ptr
);
7922
}
7923
7924
__isl_give
isl_basic_map
*
basic_map::copy
() const & {
7925
return
isl_basic_map_copy
(
ptr
);
7926
}
7927
7928
__isl_keep
isl_basic_map
*
basic_map::get
()
const
{
7929
return
ptr
;
7930
}
7931
7932
__isl_give
isl_basic_map
*
basic_map::release
() {
7933
isl_basic_map
*tmp =
ptr
;
7934
ptr
=
nullptr
;
7935
return
tmp;
7936
}
7937
7938
bool
basic_map::is_null
()
const
{
7939
return
ptr
==
nullptr
;
7940
}
7941
7942
isl::ctx
basic_map::ctx
()
const
{
7943
return
isl::ctx
(
isl_basic_map_get_ctx
(
ptr
));
7944
}
7945
7946
isl::map
basic_map::add_constraint
(
const
isl::constraint
&
constraint
)
const
7947
{
7948
return
isl::map
(*this).
add_constraint
(
constraint
);
7949
}
7950
7951
isl::map
basic_map::add_dims
(
isl::dim
type
,
unsigned
int
n
)
const
7952
{
7953
return
isl::map
(*this).
add_dims
(
type
,
n
);
7954
}
7955
7956
isl::basic_map
basic_map::affine_hull
()
const
7957
{
7958
auto
res
=
isl_basic_map_affine_hull
(
copy
());
7959
return
manage
(
res
);
7960
}
7961
7962
isl::map
basic_map::align_params
(
const
isl::space
&model)
const
7963
{
7964
return
isl::map
(*this).
align_params
(model);
7965
}
7966
7967
isl::basic_map
basic_map::apply_domain
(
isl::basic_map
bmap2)
const
7968
{
7969
auto
res
=
isl_basic_map_apply_domain
(
copy
(), bmap2.
release
());
7970
return
manage
(
res
);
7971
}
7972
7973
isl::map
basic_map::apply_domain
(
const
isl::map
&
map2
)
const
7974
{
7975
return
isl::map
(*this).
apply_domain
(
map2
);
7976
}
7977
7978
isl::union_map
basic_map::apply_domain
(
const
isl::union_map
&umap2)
const
7979
{
7980
return
isl::map
(*this).
apply_domain
(umap2);
7981
}
7982
7983
isl::basic_map
basic_map::apply_range
(
isl::basic_map
bmap2)
const
7984
{
7985
auto
res
=
isl_basic_map_apply_range
(
copy
(), bmap2.
release
());
7986
return
manage
(
res
);
7987
}
7988
7989
isl::map
basic_map::apply_range
(
const
isl::map
&
map2
)
const
7990
{
7991
return
isl::map
(*this).
apply_range
(
map2
);
7992
}
7993
7994
isl::union_map
basic_map::apply_range
(
const
isl::union_map
&umap2)
const
7995
{
7996
return
isl::map
(*this).
apply_range
(umap2);
7997
}
7998
7999
isl::map
basic_map::as_map
()
const
8000
{
8001
return
isl::map
(*this).
as_map
();
8002
}
8003
8004
isl::multi_union_pw_aff
basic_map::as_multi_union_pw_aff
()
const
8005
{
8006
return
isl::map
(*this).
as_multi_union_pw_aff
();
8007
}
8008
8009
isl::pw_multi_aff
basic_map::as_pw_multi_aff
()
const
8010
{
8011
return
isl::map
(*this).
as_pw_multi_aff
();
8012
}
8013
8014
isl::union_pw_multi_aff
basic_map::as_union_pw_multi_aff
()
const
8015
{
8016
return
isl::map
(*this).
as_union_pw_multi_aff
();
8017
}
8018
8019
isl::basic_map_list
basic_map::basic_map_list
()
const
8020
{
8021
return
isl::map
(*this).
basic_map_list
();
8022
}
8023
8024
isl::set
basic_map::bind_domain
(
const
isl::multi_id
&
tuple
)
const
8025
{
8026
return
isl::map
(*this).
bind_domain
(
tuple
);
8027
}
8028
8029
isl::set
basic_map::bind_range
(
const
isl::multi_id
&
tuple
)
const
8030
{
8031
return
isl::map
(*this).
bind_range
(
tuple
);
8032
}
8033
8034
boolean
basic_map::can_curry
()
const
8035
{
8036
return
isl::map
(*this).
can_curry
();
8037
}
8038
8039
isl::map
basic_map::coalesce
()
const
8040
{
8041
return
isl::map
(*this).
coalesce
();
8042
}
8043
8044
isl::map
basic_map::complement
()
const
8045
{
8046
return
isl::map
(*this).
complement
();
8047
}
8048
8049
isl::union_map
basic_map::compute_divs
()
const
8050
{
8051
return
isl::map
(*this).
compute_divs
();
8052
}
8053
8054
isl::map
basic_map::curry
()
const
8055
{
8056
return
isl::map
(*this).
curry
();
8057
}
8058
8059
isl::basic_set
basic_map::deltas
()
const
8060
{
8061
auto
res
=
isl_basic_map_deltas
(
copy
());
8062
return
manage
(
res
);
8063
}
8064
8065
isl::basic_map
basic_map::detect_equalities
()
const
8066
{
8067
auto
res
=
isl_basic_map_detect_equalities
(
copy
());
8068
return
manage
(
res
);
8069
}
8070
8071
class
size
basic_map::dim
(
isl::dim
type
)
const
8072
{
8073
return
isl::map
(*this).
dim
(
type
);
8074
}
8075
8076
isl::pw_aff
basic_map::dim_max
(
int
pos
)
const
8077
{
8078
return
isl::map
(*this).
dim_max
(
pos
);
8079
}
8080
8081
isl::pw_aff
basic_map::dim_min
(
int
pos
)
const
8082
{
8083
return
isl::map
(*this).
dim_min
(
pos
);
8084
}
8085
8086
isl::basic_set
basic_map::domain
()
const
8087
{
8088
auto
res
=
isl_basic_map_domain
(
copy
());
8089
return
manage
(
res
);
8090
}
8091
8092
isl::map
basic_map::domain_factor_domain
()
const
8093
{
8094
return
isl::map
(*this).
domain_factor_domain
();
8095
}
8096
8097
isl::map
basic_map::domain_factor_range
()
const
8098
{
8099
return
isl::map
(*this).
domain_factor_range
();
8100
}
8101
8102
isl::map
basic_map::domain_map
()
const
8103
{
8104
return
isl::map
(*this).
domain_map
();
8105
}
8106
8107
isl::union_pw_multi_aff
basic_map::domain_map_union_pw_multi_aff
()
const
8108
{
8109
return
isl::map
(*this).
domain_map_union_pw_multi_aff
();
8110
}
8111
8112
isl::map
basic_map::domain_product
(
const
isl::map
&
map2
)
const
8113
{
8114
return
isl::map
(*this).
domain_product
(
map2
);
8115
}
8116
8117
isl::union_map
basic_map::domain_product
(
const
isl::union_map
&umap2)
const
8118
{
8119
return
isl::map
(*this).
domain_product
(umap2);
8120
}
8121
8122
class
size
basic_map::domain_tuple_dim
()
const
8123
{
8124
return
isl::map
(*this).
domain_tuple_dim
();
8125
}
8126
8127
isl::id
basic_map::domain_tuple_id
()
const
8128
{
8129
return
isl::map
(*this).
domain_tuple_id
();
8130
}
8131
8132
isl::map
basic_map::eq_at
(
const
isl::multi_pw_aff
&mpa)
const
8133
{
8134
return
isl::map
(*this).
eq_at
(mpa);
8135
}
8136
8137
isl::union_map
basic_map::eq_at
(
const
isl::multi_union_pw_aff
&
mupa
)
const
8138
{
8139
return
isl::map
(*this).
eq_at
(
mupa
);
8140
}
8141
8142
isl::basic_map
basic_map::equal
(
isl::space
space
,
unsigned
int
n_equal)
8143
{
8144
auto
res
=
isl_basic_map_equal
(
space
.release(), n_equal);
8145
return
manage
(
res
);
8146
}
8147
8148
isl::basic_map
basic_map::equate
(
isl::dim
type1,
int
pos1,
isl::dim
type2,
int
pos2)
const
8149
{
8150
auto
res
=
isl_basic_map_equate
(
copy
(),
static_cast<
enum
isl_dim_type
>
(type1), pos1,
static_cast<
enum
isl_dim_type
>
(type2), pos2);
8151
return
manage
(
res
);
8152
}
8153
8154
boolean
basic_map::every_map
(
const
std::function<
boolean
(
isl::map
)> &
test
)
const
8155
{
8156
return
isl::map
(*this).
every_map
(
test
);
8157
}
8158
8159
isl::map
basic_map::extract_map
(
const
isl::space
&
space
)
const
8160
{
8161
return
isl::map
(*this).
extract_map
(
space
);
8162
}
8163
8164
isl::map
basic_map::factor_domain
()
const
8165
{
8166
return
isl::map
(*this).
factor_domain
();
8167
}
8168
8169
isl::map
basic_map::factor_range
()
const
8170
{
8171
return
isl::map
(*this).
factor_range
();
8172
}
8173
8174
isl::basic_map
basic_map::fix_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
8175
{
8176
auto
res
=
isl_basic_map_fix_si
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, value);
8177
return
manage
(
res
);
8178
}
8179
8180
isl::basic_map
basic_map::fix_val
(
isl::dim
type
,
unsigned
int
pos
,
isl::val
v)
const
8181
{
8182
auto
res
=
isl_basic_map_fix_val
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, v.
release
());
8183
return
manage
(
res
);
8184
}
8185
8186
isl::basic_map
basic_map::fix_val
(
isl::dim
type
,
unsigned
int
pos
,
long
v)
const
8187
{
8188
return
this->
fix_val
(type,
pos
,
isl::val
(
ctx
(), v));
8189
}
8190
8191
isl::union_map
basic_map::fixed_power
(
const
isl::val
&exp)
const
8192
{
8193
return
isl::map
(*this).
fixed_power
(exp);
8194
}
8195
8196
isl::union_map
basic_map::fixed_power
(
long
exp)
const
8197
{
8198
return
this->
fixed_power
(
isl::val
(
ctx
(), exp));
8199
}
8200
8201
isl::map
basic_map::flat_range_product
(
const
isl::map
&
map2
)
const
8202
{
8203
return
isl::map
(*this).
flat_range_product
(
map2
);
8204
}
8205
8206
isl::union_map
basic_map::flat_range_product
(
const
isl::union_map
&umap2)
const
8207
{
8208
return
isl::map
(*this).
flat_range_product
(umap2);
8209
}
8210
8211
isl::basic_map
basic_map::flatten
()
const
8212
{
8213
auto
res
=
isl_basic_map_flatten
(
copy
());
8214
return
manage
(
res
);
8215
}
8216
8217
isl::basic_map
basic_map::flatten_domain
()
const
8218
{
8219
auto
res
=
isl_basic_map_flatten_domain
(
copy
());
8220
return
manage
(
res
);
8221
}
8222
8223
isl::basic_map
basic_map::flatten_range
()
const
8224
{
8225
auto
res
=
isl_basic_map_flatten_range
(
copy
());
8226
return
manage
(
res
);
8227
}
8228
8229
isl::map
basic_map::floordiv_val
(
const
isl::val
&d)
const
8230
{
8231
return
isl::map
(*this).
floordiv_val
(d);
8232
}
8233
8234
isl::map
basic_map::floordiv_val
(
long
d)
const
8235
{
8236
return
this->
floordiv_val
(
isl::val
(
ctx
(), d));
8237
}
8238
8239
stat
basic_map::foreach_basic_map
(
const
std::function<
stat
(
isl::basic_map
)> &
fn
)
const
8240
{
8241
return
isl::map
(*this).
foreach_basic_map
(
fn
);
8242
}
8243
8244
stat
basic_map::foreach_map
(
const
std::function<
stat
(
isl::map
)> &
fn
)
const
8245
{
8246
return
isl::map
(*this).
foreach_map
(
fn
);
8247
}
8248
8249
isl::basic_map
basic_map::from_aff
(
isl::aff
aff
)
8250
{
8251
auto
res
=
isl_basic_map_from_aff
(
aff
.
release
());
8252
return
manage
(
res
);
8253
}
8254
8255
isl::basic_map
basic_map::from_domain_and_range
(
isl::basic_set
domain
,
isl::basic_set
range
)
8256
{
8257
auto
res
=
isl_basic_map_from_domain_and_range
(
domain
.release(),
range
.release());
8258
return
manage
(
res
);
8259
}
8260
8261
isl::basic_map
basic_map::gist
(
isl::basic_map
context
)
const
8262
{
8263
auto
res
=
isl_basic_map_gist
(
copy
(),
context
.release());
8264
return
manage
(
res
);
8265
}
8266
8267
isl::map
basic_map::gist
(
const
isl::map
&
context
)
const
8268
{
8269
return
isl::map
(*this).
gist
(
context
);
8270
}
8271
8272
isl::union_map
basic_map::gist
(
const
isl::union_map
&
context
)
const
8273
{
8274
return
isl::map
(*this).
gist
(
context
);
8275
}
8276
8277
isl::map
basic_map::gist_domain
(
const
isl::set
&
context
)
const
8278
{
8279
return
isl::map
(*this).
gist_domain
(
context
);
8280
}
8281
8282
isl::union_map
basic_map::gist_domain
(
const
isl::union_set
&uset)
const
8283
{
8284
return
isl::map
(*this).
gist_domain
(uset);
8285
}
8286
8287
isl::map
basic_map::gist_params
(
const
isl::set
&
context
)
const
8288
{
8289
return
isl::map
(*this).
gist_params
(
context
);
8290
}
8291
8292
isl::union_map
basic_map::gist_range
(
const
isl::union_set
&uset)
const
8293
{
8294
return
isl::map
(*this).
gist_range
(uset);
8295
}
8296
8297
boolean
basic_map::has_domain_tuple_id
()
const
8298
{
8299
return
isl::map
(*this).
has_domain_tuple_id
();
8300
}
8301
8302
boolean
basic_map::has_equal_space
(
const
isl::map
&
map2
)
const
8303
{
8304
return
isl::map
(*this).
has_equal_space
(
map2
);
8305
}
8306
8307
boolean
basic_map::has_range_tuple_id
()
const
8308
{
8309
return
isl::map
(*this).
has_range_tuple_id
();
8310
}
8311
8312
boolean
basic_map::has_tuple_id
(
isl::dim
type
)
const
8313
{
8314
return
isl::map
(*this).
has_tuple_id
(
type
);
8315
}
8316
8317
boolean
basic_map::has_tuple_name
(
isl::dim
type
)
const
8318
{
8319
return
isl::map
(*this).
has_tuple_name
(
type
);
8320
}
8321
8322
isl::basic_map
basic_map::intersect
(
isl::basic_map
bmap2)
const
8323
{
8324
auto
res
=
isl_basic_map_intersect
(
copy
(), bmap2.
release
());
8325
return
manage
(
res
);
8326
}
8327
8328
isl::map
basic_map::intersect
(
const
isl::map
&
map2
)
const
8329
{
8330
return
isl::map
(*this).
intersect
(
map2
);
8331
}
8332
8333
isl::union_map
basic_map::intersect
(
const
isl::union_map
&umap2)
const
8334
{
8335
return
isl::map
(*this).
intersect
(umap2);
8336
}
8337
8338
isl::basic_map
basic_map::intersect_domain
(
isl::basic_set
bset)
const
8339
{
8340
auto
res
=
isl_basic_map_intersect_domain
(
copy
(), bset.
release
());
8341
return
manage
(
res
);
8342
}
8343
8344
isl::map
basic_map::intersect_domain
(
const
isl::set
&
set
)
const
8345
{
8346
return
isl::map
(*this).
intersect_domain
(
set
);
8347
}
8348
8349
isl::union_map
basic_map::intersect_domain
(
const
isl::space
&
space
)
const
8350
{
8351
return
isl::map
(*this).
intersect_domain
(
space
);
8352
}
8353
8354
isl::union_map
basic_map::intersect_domain
(
const
isl::union_set
&uset)
const
8355
{
8356
return
isl::map
(*this).
intersect_domain
(uset);
8357
}
8358
8359
isl::basic_map
basic_map::intersect_domain
(
const
isl::point
&bset)
const
8360
{
8361
return
this->
intersect_domain
(
isl::basic_set
(bset));
8362
}
8363
8364
isl::map
basic_map::intersect_domain_factor_domain
(
const
isl::map
&factor)
const
8365
{
8366
return
isl::map
(*this).
intersect_domain_factor_domain
(factor);
8367
}
8368
8369
isl::union_map
basic_map::intersect_domain_factor_domain
(
const
isl::union_map
&factor)
const
8370
{
8371
return
isl::map
(*this).
intersect_domain_factor_domain
(factor);
8372
}
8373
8374
isl::map
basic_map::intersect_domain_factor_range
(
const
isl::map
&factor)
const
8375
{
8376
return
isl::map
(*this).
intersect_domain_factor_range
(factor);
8377
}
8378
8379
isl::union_map
basic_map::intersect_domain_factor_range
(
const
isl::union_map
&factor)
const
8380
{
8381
return
isl::map
(*this).
intersect_domain_factor_range
(factor);
8382
}
8383
8384
isl::map
basic_map::intersect_params
(
const
isl::set
&
params
)
const
8385
{
8386
return
isl::map
(*this).
intersect_params
(
params
);
8387
}
8388
8389
isl::basic_map
basic_map::intersect_range
(
isl::basic_set
bset)
const
8390
{
8391
auto
res
=
isl_basic_map_intersect_range
(
copy
(), bset.
release
());
8392
return
manage
(
res
);
8393
}
8394
8395
isl::map
basic_map::intersect_range
(
const
isl::set
&
set
)
const
8396
{
8397
return
isl::map
(*this).
intersect_range
(
set
);
8398
}
8399
8400
isl::union_map
basic_map::intersect_range
(
const
isl::space
&
space
)
const
8401
{
8402
return
isl::map
(*this).
intersect_range
(
space
);
8403
}
8404
8405
isl::union_map
basic_map::intersect_range
(
const
isl::union_set
&uset)
const
8406
{
8407
return
isl::map
(*this).
intersect_range
(uset);
8408
}
8409
8410
isl::basic_map
basic_map::intersect_range
(
const
isl::point
&bset)
const
8411
{
8412
return
this->
intersect_range
(
isl::basic_set
(bset));
8413
}
8414
8415
isl::map
basic_map::intersect_range_factor_domain
(
const
isl::map
&factor)
const
8416
{
8417
return
isl::map
(*this).
intersect_range_factor_domain
(factor);
8418
}
8419
8420
isl::union_map
basic_map::intersect_range_factor_domain
(
const
isl::union_map
&factor)
const
8421
{
8422
return
isl::map
(*this).
intersect_range_factor_domain
(factor);
8423
}
8424
8425
isl::map
basic_map::intersect_range_factor_range
(
const
isl::map
&factor)
const
8426
{
8427
return
isl::map
(*this).
intersect_range_factor_range
(factor);
8428
}
8429
8430
isl::union_map
basic_map::intersect_range_factor_range
(
const
isl::union_map
&factor)
const
8431
{
8432
return
isl::map
(*this).
intersect_range_factor_range
(factor);
8433
}
8434
8435
boolean
basic_map::involves_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
8436
{
8437
return
isl::map
(*this).
involves_dims
(
type
, first,
n
);
8438
}
8439
8440
boolean
basic_map::is_bijective
()
const
8441
{
8442
return
isl::map
(*this).
is_bijective
();
8443
}
8444
8445
boolean
basic_map::is_disjoint
(
const
isl::map
&
map2
)
const
8446
{
8447
return
isl::map
(*this).
is_disjoint
(
map2
);
8448
}
8449
8450
boolean
basic_map::is_disjoint
(
const
isl::union_map
&umap2)
const
8451
{
8452
return
isl::map
(*this).
is_disjoint
(umap2);
8453
}
8454
8455
boolean
basic_map::is_empty
()
const
8456
{
8457
auto
res
=
isl_basic_map_is_empty
(
get
());
8458
return
manage
(
res
);
8459
}
8460
8461
boolean
basic_map::is_equal
(
const
isl::basic_map
&bmap2)
const
8462
{
8463
auto
res
=
isl_basic_map_is_equal
(
get
(), bmap2.
get
());
8464
return
manage
(
res
);
8465
}
8466
8467
boolean
basic_map::is_equal
(
const
isl::map
&
map2
)
const
8468
{
8469
return
isl::map
(*this).
is_equal
(
map2
);
8470
}
8471
8472
boolean
basic_map::is_equal
(
const
isl::union_map
&umap2)
const
8473
{
8474
return
isl::map
(*this).
is_equal
(umap2);
8475
}
8476
8477
boolean
basic_map::is_injective
()
const
8478
{
8479
return
isl::map
(*this).
is_injective
();
8480
}
8481
8482
boolean
basic_map::is_single_valued
()
const
8483
{
8484
return
isl::map
(*this).
is_single_valued
();
8485
}
8486
8487
boolean
basic_map::is_strict_subset
(
const
isl::map
&
map2
)
const
8488
{
8489
return
isl::map
(*this).
is_strict_subset
(
map2
);
8490
}
8491
8492
boolean
basic_map::is_strict_subset
(
const
isl::union_map
&umap2)
const
8493
{
8494
return
isl::map
(*this).
is_strict_subset
(umap2);
8495
}
8496
8497
boolean
basic_map::is_subset
(
const
isl::basic_map
&bmap2)
const
8498
{
8499
auto
res
=
isl_basic_map_is_subset
(
get
(), bmap2.
get
());
8500
return
manage
(
res
);
8501
}
8502
8503
boolean
basic_map::is_subset
(
const
isl::map
&
map2
)
const
8504
{
8505
return
isl::map
(*this).
is_subset
(
map2
);
8506
}
8507
8508
boolean
basic_map::is_subset
(
const
isl::union_map
&umap2)
const
8509
{
8510
return
isl::map
(*this).
is_subset
(umap2);
8511
}
8512
8513
boolean
basic_map::isa_map
()
const
8514
{
8515
return
isl::map
(*this).
isa_map
();
8516
}
8517
8518
isl::map
basic_map::lex_ge_at
(
const
isl::multi_pw_aff
&mpa)
const
8519
{
8520
return
isl::map
(*this).
lex_ge_at
(mpa);
8521
}
8522
8523
isl::map
basic_map::lex_gt_at
(
const
isl::multi_pw_aff
&mpa)
const
8524
{
8525
return
isl::map
(*this).
lex_gt_at
(mpa);
8526
}
8527
8528
isl::map
basic_map::lex_le_at
(
const
isl::multi_pw_aff
&mpa)
const
8529
{
8530
return
isl::map
(*this).
lex_le_at
(mpa);
8531
}
8532
8533
isl::map
basic_map::lex_lt_at
(
const
isl::multi_pw_aff
&mpa)
const
8534
{
8535
return
isl::map
(*this).
lex_lt_at
(mpa);
8536
}
8537
8538
isl::map
basic_map::lexmax
()
const
8539
{
8540
auto
res
=
isl_basic_map_lexmax
(
copy
());
8541
return
manage
(
res
);
8542
}
8543
8544
isl::pw_multi_aff
basic_map::lexmax_pw_multi_aff
()
const
8545
{
8546
return
isl::map
(*this).
lexmax_pw_multi_aff
();
8547
}
8548
8549
isl::map
basic_map::lexmin
()
const
8550
{
8551
auto
res
=
isl_basic_map_lexmin
(
copy
());
8552
return
manage
(
res
);
8553
}
8554
8555
isl::pw_multi_aff
basic_map::lexmin_pw_multi_aff
()
const
8556
{
8557
return
isl::map
(*this).
lexmin_pw_multi_aff
();
8558
}
8559
8560
isl::map
basic_map::lower_bound
(
const
isl::multi_pw_aff
&lower)
const
8561
{
8562
return
isl::map
(*this).
lower_bound
(lower);
8563
}
8564
8565
isl::map
basic_map::lower_bound_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
8566
{
8567
return
isl::map
(*this).
lower_bound_si
(
type
,
pos
, value);
8568
}
8569
8570
isl::map_list
basic_map::map_list
()
const
8571
{
8572
return
isl::map
(*this).
map_list
();
8573
}
8574
8575
isl::multi_pw_aff
basic_map::max_multi_pw_aff
()
const
8576
{
8577
return
isl::map
(*this).
max_multi_pw_aff
();
8578
}
8579
8580
isl::multi_pw_aff
basic_map::min_multi_pw_aff
()
const
8581
{
8582
return
isl::map
(*this).
min_multi_pw_aff
();
8583
}
8584
8585
isl::map
basic_map::move_dims
(
isl::dim
dst_type,
unsigned
int
dst_pos,
isl::dim
src_type,
unsigned
int
src_pos,
unsigned
int
n
)
const
8586
{
8587
return
isl::map
(*this).
move_dims
(dst_type, dst_pos, src_type, src_pos,
n
);
8588
}
8589
8590
class
size
basic_map::n_basic_map
()
const
8591
{
8592
return
isl::map
(*this).
n_basic_map
();
8593
}
8594
8595
isl::map
basic_map::order_lt
(
isl::dim
type1,
int
pos1,
isl::dim
type2,
int
pos2)
const
8596
{
8597
return
isl::map
(*this).
order_lt
(type1, pos1, type2, pos2);
8598
}
8599
8600
isl::set
basic_map::params
()
const
8601
{
8602
return
isl::map
(*this).
params
();
8603
}
8604
8605
isl::val
basic_map::plain_get_val_if_fixed
(
isl::dim
type
,
unsigned
int
pos
)
const
8606
{
8607
auto
res
=
isl_basic_map_plain_get_val_if_fixed
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
);
8608
return
manage
(
res
);
8609
}
8610
8611
isl::basic_map
basic_map::polyhedral_hull
()
const
8612
{
8613
return
isl::map
(*this).
polyhedral_hull
();
8614
}
8615
8616
isl::map
basic_map::preimage_domain
(
const
isl::multi_aff
&
ma
)
const
8617
{
8618
return
isl::map
(*this).
preimage_domain
(
ma
);
8619
}
8620
8621
isl::map
basic_map::preimage_domain
(
const
isl::multi_pw_aff
&mpa)
const
8622
{
8623
return
isl::map
(*this).
preimage_domain
(mpa);
8624
}
8625
8626
isl::map
basic_map::preimage_domain
(
const
isl::pw_multi_aff
&
pma
)
const
8627
{
8628
return
isl::map
(*this).
preimage_domain
(
pma
);
8629
}
8630
8631
isl::union_map
basic_map::preimage_domain
(
const
isl::union_pw_multi_aff
&upma)
const
8632
{
8633
return
isl::map
(*this).
preimage_domain
(upma);
8634
}
8635
8636
isl::map
basic_map::preimage_range
(
const
isl::multi_aff
&
ma
)
const
8637
{
8638
return
isl::map
(*this).
preimage_range
(
ma
);
8639
}
8640
8641
isl::map
basic_map::preimage_range
(
const
isl::pw_multi_aff
&
pma
)
const
8642
{
8643
return
isl::map
(*this).
preimage_range
(
pma
);
8644
}
8645
8646
isl::union_map
basic_map::preimage_range
(
const
isl::union_pw_multi_aff
&upma)
const
8647
{
8648
return
isl::map
(*this).
preimage_range
(upma);
8649
}
8650
8651
isl::map
basic_map::product
(
const
isl::map
&
map2
)
const
8652
{
8653
return
isl::map
(*this).
product
(
map2
);
8654
}
8655
8656
isl::union_map
basic_map::product
(
const
isl::union_map
&umap2)
const
8657
{
8658
return
isl::map
(*this).
product
(umap2);
8659
}
8660
8661
isl::map
basic_map::project_out
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
8662
{
8663
return
isl::map
(*this).
project_out
(
type
, first,
n
);
8664
}
8665
8666
isl::map
basic_map::project_out_all_params
()
const
8667
{
8668
return
isl::map
(*this).
project_out_all_params
();
8669
}
8670
8671
isl::set
basic_map::range
()
const
8672
{
8673
return
isl::map
(*this).
range
();
8674
}
8675
8676
isl::map
basic_map::range_factor_domain
()
const
8677
{
8678
return
isl::map
(*this).
range_factor_domain
();
8679
}
8680
8681
isl::map
basic_map::range_factor_range
()
const
8682
{
8683
return
isl::map
(*this).
range_factor_range
();
8684
}
8685
8686
isl::fixed_box
basic_map::range_lattice_tile
()
const
8687
{
8688
return
isl::map
(*this).
range_lattice_tile
();
8689
}
8690
8691
isl::map
basic_map::range_map
()
const
8692
{
8693
return
isl::map
(*this).
range_map
();
8694
}
8695
8696
isl::map
basic_map::range_product
(
const
isl::map
&
map2
)
const
8697
{
8698
return
isl::map
(*this).
range_product
(
map2
);
8699
}
8700
8701
isl::union_map
basic_map::range_product
(
const
isl::union_map
&umap2)
const
8702
{
8703
return
isl::map
(*this).
range_product
(umap2);
8704
}
8705
8706
isl::map
basic_map::range_reverse
()
const
8707
{
8708
return
isl::map
(*this).
range_reverse
();
8709
}
8710
8711
isl::fixed_box
basic_map::range_simple_fixed_box_hull
()
const
8712
{
8713
return
isl::map
(*this).
range_simple_fixed_box_hull
();
8714
}
8715
8716
class
size
basic_map::range_tuple_dim
()
const
8717
{
8718
return
isl::map
(*this).
range_tuple_dim
();
8719
}
8720
8721
isl::id
basic_map::range_tuple_id
()
const
8722
{
8723
return
isl::map
(*this).
range_tuple_id
();
8724
}
8725
8726
isl::basic_map
basic_map::reverse
()
const
8727
{
8728
auto
res
=
isl_basic_map_reverse
(
copy
());
8729
return
manage
(
res
);
8730
}
8731
8732
isl::basic_map
basic_map::sample
()
const
8733
{
8734
auto
res
=
isl_basic_map_sample
(
copy
());
8735
return
manage
(
res
);
8736
}
8737
8738
isl::map
basic_map::set_domain_tuple
(
const
isl::id
&
id
)
const
8739
{
8740
return
isl::map
(*this).
set_domain_tuple
(
id
);
8741
}
8742
8743
isl::map
basic_map::set_domain_tuple
(
const
std::string &
id
)
const
8744
{
8745
return
this->
set_domain_tuple
(
isl::id
(
ctx
(),
id
));
8746
}
8747
8748
isl::map
basic_map::set_range_tuple
(
const
isl::id
&
id
)
const
8749
{
8750
return
isl::map
(*this).
set_range_tuple
(
id
);
8751
}
8752
8753
isl::map
basic_map::set_range_tuple
(
const
std::string &
id
)
const
8754
{
8755
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
8756
}
8757
8758
isl::map
basic_map::set_tuple_id
(
isl::dim
type
,
const
isl::id
&
id
)
const
8759
{
8760
return
isl::map
(*this).
set_tuple_id
(
type
,
id
);
8761
}
8762
8763
isl::map
basic_map::set_tuple_id
(
isl::dim
type
,
const
std::string &
id
)
const
8764
{
8765
return
this->
set_tuple_id
(type,
isl::id
(
ctx
(),
id
));
8766
}
8767
8768
isl::space
basic_map::space
()
const
8769
{
8770
return
isl::map
(*this).
space
();
8771
}
8772
8773
isl::map
basic_map::subtract
(
const
isl::map
&
map2
)
const
8774
{
8775
return
isl::map
(*this).
subtract
(
map2
);
8776
}
8777
8778
isl::union_map
basic_map::subtract
(
const
isl::union_map
&umap2)
const
8779
{
8780
return
isl::map
(*this).
subtract
(umap2);
8781
}
8782
8783
isl::union_map
basic_map::subtract_domain
(
const
isl::union_set
&dom)
const
8784
{
8785
return
isl::map
(*this).
subtract_domain
(dom);
8786
}
8787
8788
isl::union_map
basic_map::subtract_range
(
const
isl::union_set
&dom)
const
8789
{
8790
return
isl::map
(*this).
subtract_range
(dom);
8791
}
8792
8793
isl::map
basic_map::sum
(
const
isl::map
&
map2
)
const
8794
{
8795
return
isl::map
(*this).
sum
(
map2
);
8796
}
8797
8798
isl::basic_map_list
basic_map::to_list
()
const
8799
{
8800
auto
res
= isl_basic_map_to_list(
copy
());
8801
return
manage
(
res
);
8802
}
8803
8804
isl::union_map
basic_map::to_union_map
()
const
8805
{
8806
return
isl::map
(*this).
to_union_map
();
8807
}
8808
8809
isl::id
basic_map::tuple_id
(
isl::dim
type
)
const
8810
{
8811
return
isl::map
(*this).
tuple_id
(
type
);
8812
}
8813
8814
isl::map
basic_map::uncurry
()
const
8815
{
8816
return
isl::map
(*this).
uncurry
();
8817
}
8818
8819
isl::map
basic_map::unite
(
isl::basic_map
bmap2)
const
8820
{
8821
auto
res
=
isl_basic_map_union
(
copy
(), bmap2.
release
());
8822
return
manage
(
res
);
8823
}
8824
8825
isl::map
basic_map::unite
(
const
isl::map
&
map2
)
const
8826
{
8827
return
isl::map
(*this).
unite
(
map2
);
8828
}
8829
8830
isl::union_map
basic_map::unite
(
const
isl::union_map
&umap2)
const
8831
{
8832
return
isl::map
(*this).
unite
(umap2);
8833
}
8834
8835
isl::basic_map
basic_map::universe
(
isl::space
space
)
8836
{
8837
auto
res
=
isl_basic_map_universe
(
space
.release());
8838
return
manage
(
res
);
8839
}
8840
8841
isl::basic_map
basic_map::unshifted_simple_hull
()
const
8842
{
8843
return
isl::map
(*this).
unshifted_simple_hull
();
8844
}
8845
8846
isl::map
basic_map::upper_bound
(
const
isl::multi_pw_aff
&upper)
const
8847
{
8848
return
isl::map
(*this).
upper_bound
(upper);
8849
}
8850
8851
isl::map
basic_map::upper_bound_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
8852
{
8853
return
isl::map
(*this).
upper_bound_si
(
type
,
pos
, value);
8854
}
8855
8856
isl::set
basic_map::wrap
()
const
8857
{
8858
return
isl::map
(*this).
wrap
();
8859
}
8860
8861
isl::map
basic_map::zip
()
const
8862
{
8863
return
isl::map
(*this).
zip
();
8864
}
8865
8866
inline
std::ostream &
operator<<
(std::ostream &os,
const
basic_map
&
obj
)
8867
{
8868
char
*
str
=
isl_basic_map_to_str
(
obj
.get());
8869
if
(!
str
) {
8870
os.setstate(std::ios_base::badbit);
8871
return
os;
8872
}
8873
os <<
str
;
8874
free(
str
);
8875
return
os;
8876
}
8877
8878
// implementations for isl::basic_map_list
8879
basic_map_list
manage
(
__isl_take
isl_basic_map_list *
ptr
) {
8880
return
basic_map_list
(
ptr
);
8881
}
8882
basic_map_list
manage_copy
(
__isl_keep
isl_basic_map_list *
ptr
) {
8883
ptr
= isl_basic_map_list_copy(
ptr
);
8884
return
basic_map_list
(
ptr
);
8885
}
8886
8887
basic_map_list::basic_map_list
()
8888
:
ptr
(nullptr) {}
8889
8890
basic_map_list::basic_map_list
(
const
basic_map_list
&
obj
)
8891
:
ptr
(nullptr)
8892
{
8893
ptr
=
obj
.copy();
8894
}
8895
8896
basic_map_list::basic_map_list
(
__isl_take
isl_basic_map_list *
ptr
)
8897
:
ptr
(
ptr
) {}
8898
8899
basic_map_list::basic_map_list
(
isl::ctx
ctx
,
int
n
)
8900
{
8901
auto
res
= isl_basic_map_list_alloc(
ctx
.release(),
n
);
8902
ptr
=
res
;
8903
}
8904
8905
basic_map_list::basic_map_list
(
isl::basic_map
el)
8906
{
8907
auto
res
= isl_basic_map_list_from_basic_map(el.
release
());
8908
ptr
=
res
;
8909
}
8910
8911
basic_map_list
&
basic_map_list::operator=
(
basic_map_list
obj
) {
8912
std::swap(this->ptr,
obj
.ptr);
8913
return
*
this
;
8914
}
8915
8916
basic_map_list::~basic_map_list
() {
8917
if
(
ptr
)
8918
isl_basic_map_list_free(
ptr
);
8919
}
8920
8921
__isl_give
isl_basic_map_list *
basic_map_list::copy
() const & {
8922
return
isl_basic_map_list_copy(
ptr
);
8923
}
8924
8925
__isl_keep
isl_basic_map_list *
basic_map_list::get
()
const
{
8926
return
ptr
;
8927
}
8928
8929
__isl_give
isl_basic_map_list *
basic_map_list::release
() {
8930
isl_basic_map_list *tmp =
ptr
;
8931
ptr
=
nullptr
;
8932
return
tmp;
8933
}
8934
8935
bool
basic_map_list::is_null
()
const
{
8936
return
ptr
==
nullptr
;
8937
}
8938
8939
isl::ctx
basic_map_list::ctx
()
const
{
8940
return
isl::ctx
(isl_basic_map_list_get_ctx(
ptr
));
8941
}
8942
8943
isl::basic_map_list
basic_map_list::add
(
isl::basic_map
el)
const
8944
{
8945
auto
res
= isl_basic_map_list_add(
copy
(), el.
release
());
8946
return
manage
(
res
);
8947
}
8948
8949
isl::basic_map
basic_map_list::at
(
int
index)
const
8950
{
8951
auto
res
= isl_basic_map_list_get_at(
get
(), index);
8952
return
manage
(
res
);
8953
}
8954
8955
isl::basic_map
basic_map_list::get_at
(
int
index)
const
8956
{
8957
return
at
(index);
8958
}
8959
8960
isl::basic_map_list
basic_map_list::clear
()
const
8961
{
8962
auto
res
= isl_basic_map_list_clear(
copy
());
8963
return
manage
(
res
);
8964
}
8965
8966
isl::basic_map_list
basic_map_list::concat
(
isl::basic_map_list
list2)
const
8967
{
8968
auto
res
= isl_basic_map_list_concat(
copy
(), list2.
release
());
8969
return
manage
(
res
);
8970
}
8971
8972
isl::basic_map_list
basic_map_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
8973
{
8974
auto
res
= isl_basic_map_list_drop(
copy
(), first,
n
);
8975
return
manage
(
res
);
8976
}
8977
8978
stat
basic_map_list::foreach
(
const
std::function<
stat
(
isl::basic_map
)> &
fn
)
const
8979
{
8980
struct
fn_data {
8981
std::function<
stat
(
isl::basic_map
)> func;
8982
} fn_data = {
fn
};
8983
auto
fn_lambda = [](
isl_basic_map
*arg_0,
void
*arg_1) ->
isl_stat
{
8984
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
8985
auto
ret = (data->func)(
manage
(arg_0));
8986
return
ret.release();
8987
};
8988
auto
res
= isl_basic_map_list_foreach(
get
(), fn_lambda, &fn_data);
8989
return
manage
(
res
);
8990
}
8991
8992
isl::basic_map_list
basic_map_list::insert
(
unsigned
int
pos
,
isl::basic_map
el)
const
8993
{
8994
auto
res
= isl_basic_map_list_insert(
copy
(),
pos
, el.
release
());
8995
return
manage
(
res
);
8996
}
8997
8998
class
size
basic_map_list::size
()
const
8999
{
9000
auto
res
= isl_basic_map_list_size(
get
());
9001
return
manage
(
res
);
9002
}
9003
9004
inline
std::ostream &
operator<<
(std::ostream &os,
const
basic_map_list
&
obj
)
9005
{
9006
char
*
str
= isl_basic_map_list_to_str(
obj
.get());
9007
if
(!
str
) {
9008
os.setstate(std::ios_base::badbit);
9009
return
os;
9010
}
9011
os <<
str
;
9012
free(
str
);
9013
return
os;
9014
}
9015
9016
// implementations for isl::basic_set
9017
basic_set
manage
(
__isl_take
isl_basic_set
*
ptr
) {
9018
return
basic_set
(
ptr
);
9019
}
9020
basic_set
manage_copy
(
__isl_keep
isl_basic_set
*
ptr
) {
9021
ptr
=
isl_basic_set_copy
(
ptr
);
9022
return
basic_set
(
ptr
);
9023
}
9024
9025
basic_set::basic_set
()
9026
:
ptr
(nullptr) {}
9027
9028
basic_set::basic_set
(
const
basic_set
&
obj
)
9029
:
ptr
(nullptr)
9030
{
9031
ptr
=
obj
.copy();
9032
}
9033
9034
basic_set::basic_set
(
__isl_take
isl_basic_set
*
ptr
)
9035
:
ptr
(
ptr
) {}
9036
9037
basic_set::basic_set
(
isl::point
pnt)
9038
{
9039
auto
res
=
isl_basic_set_from_point
(pnt.
release
());
9040
ptr
=
res
;
9041
}
9042
9043
basic_set::basic_set
(
isl::ctx
ctx
,
const
std::string &
str
)
9044
{
9045
auto
res
=
isl_basic_set_read_from_str
(
ctx
.release(),
str
.c_str());
9046
ptr
=
res
;
9047
}
9048
9049
basic_set
&
basic_set::operator=
(
basic_set
obj
) {
9050
std::swap(this->ptr,
obj
.ptr);
9051
return
*
this
;
9052
}
9053
9054
basic_set::~basic_set
() {
9055
if
(
ptr
)
9056
isl_basic_set_free
(
ptr
);
9057
}
9058
9059
__isl_give
isl_basic_set
*
basic_set::copy
() const & {
9060
return
isl_basic_set_copy
(
ptr
);
9061
}
9062
9063
__isl_keep
isl_basic_set
*
basic_set::get
()
const
{
9064
return
ptr
;
9065
}
9066
9067
__isl_give
isl_basic_set
*
basic_set::release
() {
9068
isl_basic_set
*tmp =
ptr
;
9069
ptr
=
nullptr
;
9070
return
tmp;
9071
}
9072
9073
bool
basic_set::is_null
()
const
{
9074
return
ptr
==
nullptr
;
9075
}
9076
9077
isl::ctx
basic_set::ctx
()
const
{
9078
return
isl::ctx
(
isl_basic_set_get_ctx
(
ptr
));
9079
}
9080
9081
isl::set
basic_set::add_constraint
(
const
isl::constraint
&
constraint
)
const
9082
{
9083
return
isl::set
(*this).
add_constraint
(
constraint
);
9084
}
9085
9086
isl::set
basic_set::add_dims
(
isl::dim
type
,
unsigned
int
n
)
const
9087
{
9088
return
isl::set
(*this).
add_dims
(
type
,
n
);
9089
}
9090
9091
isl::basic_set
basic_set::affine_hull
()
const
9092
{
9093
auto
res
=
isl_basic_set_affine_hull
(
copy
());
9094
return
manage
(
res
);
9095
}
9096
9097
isl::set
basic_set::align_params
(
const
isl::space
&model)
const
9098
{
9099
return
isl::set
(*this).
align_params
(model);
9100
}
9101
9102
isl::basic_set
basic_set::apply
(
isl::basic_map
bmap)
const
9103
{
9104
auto
res
=
isl_basic_set_apply
(
copy
(), bmap.
release
());
9105
return
manage
(
res
);
9106
}
9107
9108
isl::set
basic_set::apply
(
const
isl::map
&
map
)
const
9109
{
9110
return
isl::set
(*this).
apply
(
map
);
9111
}
9112
9113
isl::union_set
basic_set::apply
(
const
isl::union_map
&umap)
const
9114
{
9115
return
isl::set
(*this).
apply
(umap);
9116
}
9117
9118
isl::pw_multi_aff
basic_set::as_pw_multi_aff
()
const
9119
{
9120
return
isl::set
(*this).
as_pw_multi_aff
();
9121
}
9122
9123
isl::set
basic_set::as_set
()
const
9124
{
9125
return
isl::set
(*this).
as_set
();
9126
}
9127
9128
isl::basic_set_list
basic_set::basic_set_list
()
const
9129
{
9130
return
isl::set
(*this).
basic_set_list
();
9131
}
9132
9133
isl::set
basic_set::bind
(
const
isl::multi_id
&
tuple
)
const
9134
{
9135
return
isl::set
(*this).
bind
(
tuple
);
9136
}
9137
9138
isl::set
basic_set::coalesce
()
const
9139
{
9140
return
isl::set
(*this).
coalesce
();
9141
}
9142
9143
isl::set
basic_set::complement
()
const
9144
{
9145
return
isl::set
(*this).
complement
();
9146
}
9147
9148
isl::union_set
basic_set::compute_divs
()
const
9149
{
9150
return
isl::set
(*this).
compute_divs
();
9151
}
9152
9153
boolean
basic_set::contains
(
const
isl::space
&
space
)
const
9154
{
9155
return
isl::set
(*this).contains(
space
);
9156
}
9157
9158
isl::basic_set
basic_set::convex_hull
()
const
9159
{
9160
return
isl::set
(*this).
convex_hull
();
9161
}
9162
9163
isl::basic_set
basic_set::detect_equalities
()
const
9164
{
9165
auto
res
=
isl_basic_set_detect_equalities
(
copy
());
9166
return
manage
(
res
);
9167
}
9168
9169
class
size
basic_set::dim
(
isl::dim
type
)
const
9170
{
9171
auto
res
=
isl_basic_set_dim
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
9172
return
manage
(
res
);
9173
}
9174
9175
boolean
basic_set::dim_has_any_lower_bound
(
isl::dim
type
,
unsigned
int
pos
)
const
9176
{
9177
return
isl::set
(*this).dim_has_any_lower_bound(
type
,
pos
);
9178
}
9179
9180
isl::id
basic_set::dim_id
(
isl::dim
type
,
unsigned
int
pos
)
const
9181
{
9182
return
isl::set
(*this).dim_id(
type
,
pos
);
9183
}
9184
9185
isl::pw_aff
basic_set::dim_max
(
int
pos
)
const
9186
{
9187
return
isl::set
(*this).dim_max(
pos
);
9188
}
9189
9190
isl::val
basic_set::dim_max_val
(
int
pos
)
const
9191
{
9192
auto
res
=
isl_basic_set_dim_max_val
(
copy
(),
pos
);
9193
return
manage
(
res
);
9194
}
9195
9196
isl::pw_aff
basic_set::dim_min
(
int
pos
)
const
9197
{
9198
return
isl::set
(*this).dim_min(
pos
);
9199
}
9200
9201
isl::val
basic_set::dim_min_val
(
int
pos
)
const
9202
{
9203
return
isl::set
(*this).dim_min_val(
pos
);
9204
}
9205
9206
std::string
basic_set::dim_name
(
isl::dim
type
,
unsigned
int
pos
)
const
9207
{
9208
return
isl::set
(*this).dim_name(
type
,
pos
);
9209
}
9210
9211
isl::aff
basic_set::div
(
int
pos
)
const
9212
{
9213
auto
res
=
isl_basic_set_get_div
(
get
(),
pos
);
9214
return
manage
(
res
);
9215
}
9216
9217
isl::aff
basic_set::get_div
(
int
pos
)
const
9218
{
9219
return
div
(
pos
);
9220
}
9221
9222
isl::set
basic_set::drop_constraints_involving_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
9223
{
9224
return
isl::set
(*this).
drop_constraints_involving_dims
(
type
, first,
n
);
9225
}
9226
9227
isl::set
basic_set::eliminate
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
9228
{
9229
return
isl::set
(*this).
eliminate
(
type
, first,
n
);
9230
}
9231
9232
boolean
basic_set::every_set
(
const
std::function<
boolean
(
isl::set
)> &
test
)
const
9233
{
9234
return
isl::set
(*this).every_set(
test
);
9235
}
9236
9237
isl::set
basic_set::extract_set
(
const
isl::space
&
space
)
const
9238
{
9239
return
isl::set
(*this).
extract_set
(
space
);
9240
}
9241
9242
int
basic_set::find_dim_by_id
(
isl::dim
type
,
const
isl::id
&
id
)
const
9243
{
9244
return
isl::set
(*this).find_dim_by_id(
type
,
id
);
9245
}
9246
9247
int
basic_set::find_dim_by_id
(
isl::dim
type
,
const
std::string &
id
)
const
9248
{
9249
return
this->
find_dim_by_id
(type,
isl::id
(
ctx
(),
id
));
9250
}
9251
9252
isl::basic_set
basic_set::fix_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
9253
{
9254
auto
res
=
isl_basic_set_fix_si
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, value);
9255
return
manage
(
res
);
9256
}
9257
9258
isl::basic_set
basic_set::fix_val
(
isl::dim
type
,
unsigned
int
pos
,
isl::val
v)
const
9259
{
9260
auto
res
=
isl_basic_set_fix_val
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, v.
release
());
9261
return
manage
(
res
);
9262
}
9263
9264
isl::basic_set
basic_set::fix_val
(
isl::dim
type
,
unsigned
int
pos
,
long
v)
const
9265
{
9266
return
this->
fix_val
(type,
pos
,
isl::val
(
ctx
(), v));
9267
}
9268
9269
isl::basic_set
basic_set::flatten
()
const
9270
{
9271
auto
res
=
isl_basic_set_flatten
(
copy
());
9272
return
manage
(
res
);
9273
}
9274
9275
stat
basic_set::foreach_basic_set
(
const
std::function<
stat
(
isl::basic_set
)> &
fn
)
const
9276
{
9277
return
isl::set
(*this).foreach_basic_set(
fn
);
9278
}
9279
9280
stat
basic_set::foreach_point
(
const
std::function<
stat
(
isl::point
)> &
fn
)
const
9281
{
9282
return
isl::set
(*this).foreach_point(
fn
);
9283
}
9284
9285
stat
basic_set::foreach_set
(
const
std::function<
stat
(
isl::set
)> &
fn
)
const
9286
{
9287
return
isl::set
(*this).foreach_set(
fn
);
9288
}
9289
9290
isl::basic_set
basic_set::gist
(
isl::basic_set
context
)
const
9291
{
9292
auto
res
=
isl_basic_set_gist
(
copy
(),
context
.release());
9293
return
manage
(
res
);
9294
}
9295
9296
isl::set
basic_set::gist
(
const
isl::set
&
context
)
const
9297
{
9298
return
isl::set
(*this).
gist
(
context
);
9299
}
9300
9301
isl::union_set
basic_set::gist
(
const
isl::union_set
&
context
)
const
9302
{
9303
return
isl::set
(*this).
gist
(
context
);
9304
}
9305
9306
isl::basic_set
basic_set::gist
(
const
isl::point
&
context
)
const
9307
{
9308
return
this->
gist
(
isl::basic_set
(
context
));
9309
}
9310
9311
isl::set
basic_set::gist_params
(
const
isl::set
&
context
)
const
9312
{
9313
return
isl::set
(*this).
gist_params
(
context
);
9314
}
9315
9316
boolean
basic_set::has_equal_space
(
const
isl::set
&
set2
)
const
9317
{
9318
return
isl::set
(*this).has_equal_space(
set2
);
9319
}
9320
9321
isl::map
basic_set::identity
()
const
9322
{
9323
return
isl::set
(*this).
identity
();
9324
}
9325
9326
isl::union_pw_multi_aff
basic_set::identity_union_pw_multi_aff
()
const
9327
{
9328
return
isl::set
(*this).identity_union_pw_multi_aff();
9329
}
9330
9331
isl::pw_aff
basic_set::indicator_function
()
const
9332
{
9333
return
isl::set
(*this).indicator_function();
9334
}
9335
9336
isl::set
basic_set::insert_dims
(
isl::dim
type
,
unsigned
int
pos
,
unsigned
int
n
)
const
9337
{
9338
return
isl::set
(*this).
insert_dims
(
type
,
pos
,
n
);
9339
}
9340
9341
isl::map
basic_set::insert_domain
(
const
isl::space
&
domain
)
const
9342
{
9343
return
isl::set
(*this).insert_domain(
domain
);
9344
}
9345
9346
isl::basic_set
basic_set::intersect
(
isl::basic_set
bset2)
const
9347
{
9348
auto
res
=
isl_basic_set_intersect
(
copy
(), bset2.
release
());
9349
return
manage
(
res
);
9350
}
9351
9352
isl::set
basic_set::intersect
(
const
isl::set
&
set2
)
const
9353
{
9354
return
isl::set
(*this).
intersect
(
set2
);
9355
}
9356
9357
isl::union_set
basic_set::intersect
(
const
isl::union_set
&uset2)
const
9358
{
9359
return
isl::set
(*this).
intersect
(uset2);
9360
}
9361
9362
isl::basic_set
basic_set::intersect
(
const
isl::point
&bset2)
const
9363
{
9364
return
this->
intersect
(
isl::basic_set
(bset2));
9365
}
9366
9367
isl::basic_set
basic_set::intersect_params
(
isl::basic_set
bset2)
const
9368
{
9369
auto
res
=
isl_basic_set_intersect_params
(
copy
(), bset2.
release
());
9370
return
manage
(
res
);
9371
}
9372
9373
isl::set
basic_set::intersect_params
(
const
isl::set
&
params
)
const
9374
{
9375
return
isl::set
(*this).
intersect_params
(
params
);
9376
}
9377
9378
isl::basic_set
basic_set::intersect_params
(
const
isl::point
&bset2)
const
9379
{
9380
return
this->
intersect_params
(
isl::basic_set
(bset2));
9381
}
9382
9383
boolean
basic_set::involves_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
9384
{
9385
return
isl::set
(*this).involves_dims(
type
, first,
n
);
9386
}
9387
9388
boolean
basic_set::involves_locals
()
const
9389
{
9390
return
isl::set
(*this).involves_locals();
9391
}
9392
9393
boolean
basic_set::is_bounded
()
const
9394
{
9395
auto
res
=
isl_basic_set_is_bounded
(
get
());
9396
return
manage
(
res
);
9397
}
9398
9399
boolean
basic_set::is_disjoint
(
const
isl::set
&
set2
)
const
9400
{
9401
return
isl::set
(*this).is_disjoint(
set2
);
9402
}
9403
9404
boolean
basic_set::is_disjoint
(
const
isl::union_set
&uset2)
const
9405
{
9406
return
isl::set
(*this).is_disjoint(uset2);
9407
}
9408
9409
boolean
basic_set::is_empty
()
const
9410
{
9411
auto
res
=
isl_basic_set_is_empty
(
get
());
9412
return
manage
(
res
);
9413
}
9414
9415
boolean
basic_set::is_equal
(
const
isl::basic_set
&bset2)
const
9416
{
9417
auto
res
=
isl_basic_set_is_equal
(
get
(), bset2.
get
());
9418
return
manage
(
res
);
9419
}
9420
9421
boolean
basic_set::is_equal
(
const
isl::set
&
set2
)
const
9422
{
9423
return
isl::set
(*this).is_equal(
set2
);
9424
}
9425
9426
boolean
basic_set::is_equal
(
const
isl::union_set
&uset2)
const
9427
{
9428
return
isl::set
(*this).is_equal(uset2);
9429
}
9430
9431
boolean
basic_set::is_equal
(
const
isl::point
&bset2)
const
9432
{
9433
return
this->
is_equal
(
isl::basic_set
(bset2));
9434
}
9435
9436
boolean
basic_set::is_params
()
const
9437
{
9438
return
isl::set
(*this).is_params();
9439
}
9440
9441
boolean
basic_set::is_singleton
()
const
9442
{
9443
return
isl::set
(*this).is_singleton();
9444
}
9445
9446
boolean
basic_set::is_strict_subset
(
const
isl::set
&
set2
)
const
9447
{
9448
return
isl::set
(*this).is_strict_subset(
set2
);
9449
}
9450
9451
boolean
basic_set::is_strict_subset
(
const
isl::union_set
&uset2)
const
9452
{
9453
return
isl::set
(*this).is_strict_subset(uset2);
9454
}
9455
9456
boolean
basic_set::is_subset
(
const
isl::basic_set
&bset2)
const
9457
{
9458
auto
res
=
isl_basic_set_is_subset
(
get
(), bset2.
get
());
9459
return
manage
(
res
);
9460
}
9461
9462
boolean
basic_set::is_subset
(
const
isl::set
&
set2
)
const
9463
{
9464
return
isl::set
(*this).is_subset(
set2
);
9465
}
9466
9467
boolean
basic_set::is_subset
(
const
isl::union_set
&uset2)
const
9468
{
9469
return
isl::set
(*this).is_subset(uset2);
9470
}
9471
9472
boolean
basic_set::is_subset
(
const
isl::point
&bset2)
const
9473
{
9474
return
this->
is_subset
(
isl::basic_set
(bset2));
9475
}
9476
9477
boolean
basic_set::is_wrapping
()
const
9478
{
9479
auto
res
=
isl_basic_set_is_wrapping
(
get
());
9480
return
manage
(
res
);
9481
}
9482
9483
boolean
basic_set::isa_set
()
const
9484
{
9485
return
isl::set
(*this).isa_set();
9486
}
9487
9488
isl::set
basic_set::lexmax
()
const
9489
{
9490
auto
res
=
isl_basic_set_lexmax
(
copy
());
9491
return
manage
(
res
);
9492
}
9493
9494
isl::pw_multi_aff
basic_set::lexmax_pw_multi_aff
()
const
9495
{
9496
return
isl::set
(*this).lexmax_pw_multi_aff();
9497
}
9498
9499
isl::set
basic_set::lexmin
()
const
9500
{
9501
auto
res
=
isl_basic_set_lexmin
(
copy
());
9502
return
manage
(
res
);
9503
}
9504
9505
isl::pw_multi_aff
basic_set::lexmin_pw_multi_aff
()
const
9506
{
9507
return
isl::set
(*this).lexmin_pw_multi_aff();
9508
}
9509
9510
isl::set
basic_set::lower_bound
(
const
isl::multi_pw_aff
&lower)
const
9511
{
9512
return
isl::set
(*this).
lower_bound
(lower);
9513
}
9514
9515
isl::set
basic_set::lower_bound
(
const
isl::multi_val
&lower)
const
9516
{
9517
return
isl::set
(*this).
lower_bound
(lower);
9518
}
9519
9520
isl::set
basic_set::lower_bound_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
9521
{
9522
return
isl::set
(*this).
lower_bound_si
(
type
,
pos
, value);
9523
}
9524
9525
isl::set
basic_set::lower_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::val
&value)
const
9526
{
9527
return
isl::set
(*this).
lower_bound_val
(
type
,
pos
, value);
9528
}
9529
9530
isl::set
basic_set::lower_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
long
value)
const
9531
{
9532
return
this->
lower_bound_val
(type,
pos
,
isl::val
(
ctx
(), value));
9533
}
9534
9535
isl::multi_pw_aff
basic_set::max_multi_pw_aff
()
const
9536
{
9537
return
isl::set
(*this).max_multi_pw_aff();
9538
}
9539
9540
isl::val
basic_set::max_val
(
const
isl::aff
&
obj
)
const
9541
{
9542
return
isl::set
(*this).max_val(
obj
);
9543
}
9544
9545
isl::multi_pw_aff
basic_set::min_multi_pw_aff
()
const
9546
{
9547
return
isl::set
(*this).min_multi_pw_aff();
9548
}
9549
9550
isl::val
basic_set::min_val
(
const
isl::aff
&
obj
)
const
9551
{
9552
return
isl::set
(*this).min_val(
obj
);
9553
}
9554
9555
class
size
basic_set::n_basic_set
()
const
9556
{
9557
return
isl::set
(*this).n_basic_set();
9558
}
9559
9560
isl::basic_set
basic_set::params
()
const
9561
{
9562
auto
res
=
isl_basic_set_params
(
copy
());
9563
return
manage
(
res
);
9564
}
9565
9566
isl::val
basic_set::plain_get_val_if_fixed
(
isl::dim
type
,
unsigned
int
pos
)
const
9567
{
9568
return
isl::set
(*this).plain_get_val_if_fixed(
type
,
pos
);
9569
}
9570
9571
isl::multi_val
basic_set::plain_multi_val_if_fixed
()
const
9572
{
9573
return
isl::set
(*this).plain_multi_val_if_fixed();
9574
}
9575
9576
isl::basic_set
basic_set::polyhedral_hull
()
const
9577
{
9578
return
isl::set
(*this).
polyhedral_hull
();
9579
}
9580
9581
isl::set
basic_set::preimage
(
const
isl::multi_aff
&
ma
)
const
9582
{
9583
return
isl::set
(*this).
preimage
(
ma
);
9584
}
9585
9586
isl::set
basic_set::preimage
(
const
isl::multi_pw_aff
&mpa)
const
9587
{
9588
return
isl::set
(*this).
preimage
(mpa);
9589
}
9590
9591
isl::set
basic_set::preimage
(
const
isl::pw_multi_aff
&
pma
)
const
9592
{
9593
return
isl::set
(*this).
preimage
(
pma
);
9594
}
9595
9596
isl::union_set
basic_set::preimage
(
const
isl::union_pw_multi_aff
&upma)
const
9597
{
9598
return
isl::set
(*this).
preimage
(upma);
9599
}
9600
9601
isl::set
basic_set::product
(
const
isl::set
&
set2
)
const
9602
{
9603
return
isl::set
(*this).
product
(
set2
);
9604
}
9605
9606
isl::basic_set
basic_set::project_out
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
9607
{
9608
auto
res
=
isl_basic_set_project_out
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
), first,
n
);
9609
return
manage
(
res
);
9610
}
9611
9612
isl::set
basic_set::project_out_all_params
()
const
9613
{
9614
return
isl::set
(*this).
project_out_all_params
();
9615
}
9616
9617
isl::set
basic_set::project_out_param
(
const
isl::id
&
id
)
const
9618
{
9619
return
isl::set
(*this).
project_out_param
(
id
);
9620
}
9621
9622
isl::set
basic_set::project_out_param
(
const
std::string &
id
)
const
9623
{
9624
return
this->
project_out_param
(
isl::id
(
ctx
(),
id
));
9625
}
9626
9627
isl::set
basic_set::project_out_param
(
const
isl::id_list
&list)
const
9628
{
9629
return
isl::set
(*this).
project_out_param
(list);
9630
}
9631
9632
isl::pw_multi_aff
basic_set::pw_multi_aff_on_domain
(
const
isl::multi_val
&mv)
const
9633
{
9634
return
isl::set
(*this).pw_multi_aff_on_domain(mv);
9635
}
9636
9637
isl::set
basic_set::remove_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
9638
{
9639
return
isl::set
(*this).
remove_dims
(
type
, first,
n
);
9640
}
9641
9642
isl::set
basic_set::remove_divs
()
const
9643
{
9644
return
isl::set
(*this).
remove_divs
();
9645
}
9646
9647
isl::set
basic_set::remove_redundancies
()
const
9648
{
9649
return
isl::set
(*this).
remove_redundancies
();
9650
}
9651
9652
isl::set
basic_set::reset_tuple_id
()
const
9653
{
9654
return
isl::set
(*this).
reset_tuple_id
();
9655
}
9656
9657
isl::basic_set
basic_set::sample
()
const
9658
{
9659
auto
res
=
isl_basic_set_sample
(
copy
());
9660
return
manage
(
res
);
9661
}
9662
9663
isl::point
basic_set::sample_point
()
const
9664
{
9665
auto
res
=
isl_basic_set_sample_point
(
copy
());
9666
return
manage
(
res
);
9667
}
9668
9669
isl::set
basic_set::set_dim_id
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::id
&
id
)
const
9670
{
9671
return
isl::set
(*this).
set_dim_id
(
type
,
pos
,
id
);
9672
}
9673
9674
isl::set
basic_set::set_dim_id
(
isl::dim
type
,
unsigned
int
pos
,
const
std::string &
id
)
const
9675
{
9676
return
this->
set_dim_id
(type,
pos
,
isl::id
(
ctx
(),
id
));
9677
}
9678
9679
isl::set_list
basic_set::set_list
()
const
9680
{
9681
return
isl::set
(*this).
set_list
();
9682
}
9683
9684
isl::set
basic_set::set_tuple_id
(
const
isl::id
&
id
)
const
9685
{
9686
return
isl::set
(*this).
set_tuple_id
(
id
);
9687
}
9688
9689
isl::set
basic_set::set_tuple_id
(
const
std::string &
id
)
const
9690
{
9691
return
this->
set_tuple_id
(
isl::id
(
ctx
(),
id
));
9692
}
9693
9694
isl::fixed_box
basic_set::simple_fixed_box_hull
()
const
9695
{
9696
return
isl::set
(*this).simple_fixed_box_hull();
9697
}
9698
9699
isl::basic_set
basic_set::simple_hull
()
const
9700
{
9701
return
isl::set
(*this).
simple_hull
();
9702
}
9703
9704
isl::space
basic_set::space
()
const
9705
{
9706
auto
res
=
isl_basic_set_get_space
(
get
());
9707
return
manage
(
res
);
9708
}
9709
9710
isl::space
basic_set::get_space
()
const
9711
{
9712
return
space
();
9713
}
9714
9715
isl::val
basic_set::stride
(
int
pos
)
const
9716
{
9717
return
isl::set
(*this).stride(
pos
);
9718
}
9719
9720
isl::set
basic_set::subtract
(
const
isl::set
&
set2
)
const
9721
{
9722
return
isl::set
(*this).
subtract
(
set2
);
9723
}
9724
9725
isl::union_set
basic_set::subtract
(
const
isl::union_set
&uset2)
const
9726
{
9727
return
isl::set
(*this).
subtract
(uset2);
9728
}
9729
9730
isl::basic_set_list
basic_set::to_list
()
const
9731
{
9732
auto
res
= isl_basic_set_to_list(
copy
());
9733
return
manage
(
res
);
9734
}
9735
9736
isl::set
basic_set::to_set
()
const
9737
{
9738
auto
res
=
isl_basic_set_to_set
(
copy
());
9739
return
manage
(
res
);
9740
}
9741
9742
isl::union_set
basic_set::to_union_set
()
const
9743
{
9744
return
isl::set
(*this).to_union_set();
9745
}
9746
9747
isl::map
basic_set::translation
()
const
9748
{
9749
return
isl::set
(*this).translation();
9750
}
9751
9752
class
size
basic_set::tuple_dim
()
const
9753
{
9754
return
isl::set
(*this).tuple_dim();
9755
}
9756
9757
isl::id
basic_set::tuple_id
()
const
9758
{
9759
return
isl::set
(*this).tuple_id();
9760
}
9761
9762
std::string
basic_set::tuple_name
()
const
9763
{
9764
return
isl::set
(*this).tuple_name();
9765
}
9766
9767
isl::set
basic_set::unbind_params
(
const
isl::multi_id
&
tuple
)
const
9768
{
9769
return
isl::set
(*this).
unbind_params
(
tuple
);
9770
}
9771
9772
isl::map
basic_set::unbind_params_insert_domain
(
const
isl::multi_id
&
domain
)
const
9773
{
9774
return
isl::set
(*this).unbind_params_insert_domain(
domain
);
9775
}
9776
9777
isl::set
basic_set::unite
(
isl::basic_set
bset2)
const
9778
{
9779
auto
res
=
isl_basic_set_union
(
copy
(), bset2.
release
());
9780
return
manage
(
res
);
9781
}
9782
9783
isl::set
basic_set::unite
(
const
isl::set
&
set2
)
const
9784
{
9785
return
isl::set
(*this).
unite
(
set2
);
9786
}
9787
9788
isl::union_set
basic_set::unite
(
const
isl::union_set
&uset2)
const
9789
{
9790
return
isl::set
(*this).
unite
(uset2);
9791
}
9792
9793
isl::set
basic_set::unite
(
const
isl::point
&bset2)
const
9794
{
9795
return
this->
unite
(
isl::basic_set
(bset2));
9796
}
9797
9798
isl::basic_set
basic_set::universe
(
isl::space
space
)
9799
{
9800
auto
res
=
isl_basic_set_universe
(
space
.release());
9801
return
manage
(
res
);
9802
}
9803
9804
isl::basic_set
basic_set::unshifted_simple_hull
()
const
9805
{
9806
return
isl::set
(*this).
unshifted_simple_hull
();
9807
}
9808
9809
isl::map
basic_set::unwrap
()
const
9810
{
9811
return
isl::set
(*this).unwrap();
9812
}
9813
9814
isl::set
basic_set::upper_bound
(
const
isl::multi_pw_aff
&upper)
const
9815
{
9816
return
isl::set
(*this).
upper_bound
(upper);
9817
}
9818
9819
isl::set
basic_set::upper_bound
(
const
isl::multi_val
&upper)
const
9820
{
9821
return
isl::set
(*this).
upper_bound
(upper);
9822
}
9823
9824
isl::set
basic_set::upper_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::val
&value)
const
9825
{
9826
return
isl::set
(*this).
upper_bound_val
(
type
,
pos
, value);
9827
}
9828
9829
isl::set
basic_set::upper_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
long
value)
const
9830
{
9831
return
this->
upper_bound_val
(type,
pos
,
isl::val
(
ctx
(), value));
9832
}
9833
9834
inline
std::ostream &
operator<<
(std::ostream &os,
const
basic_set
&
obj
)
9835
{
9836
char
*
str
=
isl_basic_set_to_str
(
obj
.get());
9837
if
(!
str
) {
9838
os.setstate(std::ios_base::badbit);
9839
return
os;
9840
}
9841
os <<
str
;
9842
free(
str
);
9843
return
os;
9844
}
9845
9846
// implementations for isl::basic_set_list
9847
basic_set_list
manage
(
__isl_take
isl_basic_set_list
*
ptr
) {
9848
return
basic_set_list
(
ptr
);
9849
}
9850
basic_set_list
manage_copy
(
__isl_keep
isl_basic_set_list
*
ptr
) {
9851
ptr
= isl_basic_set_list_copy(
ptr
);
9852
return
basic_set_list
(
ptr
);
9853
}
9854
9855
basic_set_list::basic_set_list
()
9856
:
ptr
(nullptr) {}
9857
9858
basic_set_list::basic_set_list
(
const
basic_set_list
&
obj
)
9859
:
ptr
(nullptr)
9860
{
9861
ptr
=
obj
.copy();
9862
}
9863
9864
basic_set_list::basic_set_list
(
__isl_take
isl_basic_set_list
*
ptr
)
9865
:
ptr
(
ptr
) {}
9866
9867
basic_set_list::basic_set_list
(
isl::ctx
ctx
,
int
n
)
9868
{
9869
auto
res
= isl_basic_set_list_alloc(
ctx
.release(),
n
);
9870
ptr
=
res
;
9871
}
9872
9873
basic_set_list::basic_set_list
(
isl::basic_set
el)
9874
{
9875
auto
res
= isl_basic_set_list_from_basic_set(el.
release
());
9876
ptr
=
res
;
9877
}
9878
9879
basic_set_list
&
basic_set_list::operator=
(
basic_set_list
obj
) {
9880
std::swap(this->ptr,
obj
.ptr);
9881
return
*
this
;
9882
}
9883
9884
basic_set_list::~basic_set_list
() {
9885
if
(
ptr
)
9886
isl_basic_set_list_free(
ptr
);
9887
}
9888
9889
__isl_give
isl_basic_set_list
*
basic_set_list::copy
() const & {
9890
return
isl_basic_set_list_copy(
ptr
);
9891
}
9892
9893
__isl_keep
isl_basic_set_list
*
basic_set_list::get
()
const
{
9894
return
ptr
;
9895
}
9896
9897
__isl_give
isl_basic_set_list
*
basic_set_list::release
() {
9898
isl_basic_set_list
*tmp =
ptr
;
9899
ptr
=
nullptr
;
9900
return
tmp;
9901
}
9902
9903
bool
basic_set_list::is_null
()
const
{
9904
return
ptr
==
nullptr
;
9905
}
9906
9907
isl::ctx
basic_set_list::ctx
()
const
{
9908
return
isl::ctx
(isl_basic_set_list_get_ctx(
ptr
));
9909
}
9910
9911
isl::basic_set_list
basic_set_list::add
(
isl::basic_set
el)
const
9912
{
9913
auto
res
= isl_basic_set_list_add(
copy
(), el.
release
());
9914
return
manage
(
res
);
9915
}
9916
9917
isl::basic_set
basic_set_list::at
(
int
index)
const
9918
{
9919
auto
res
= isl_basic_set_list_get_at(
get
(), index);
9920
return
manage
(
res
);
9921
}
9922
9923
isl::basic_set
basic_set_list::get_at
(
int
index)
const
9924
{
9925
return
at
(index);
9926
}
9927
9928
isl::basic_set_list
basic_set_list::clear
()
const
9929
{
9930
auto
res
= isl_basic_set_list_clear(
copy
());
9931
return
manage
(
res
);
9932
}
9933
9934
isl::basic_set_list
basic_set_list::concat
(
isl::basic_set_list
list2)
const
9935
{
9936
auto
res
= isl_basic_set_list_concat(
copy
(), list2.
release
());
9937
return
manage
(
res
);
9938
}
9939
9940
isl::basic_set_list
basic_set_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
9941
{
9942
auto
res
= isl_basic_set_list_drop(
copy
(), first,
n
);
9943
return
manage
(
res
);
9944
}
9945
9946
stat
basic_set_list::foreach
(
const
std::function<
stat
(
isl::basic_set
)> &
fn
)
const
9947
{
9948
struct
fn_data {
9949
std::function<
stat
(
isl::basic_set
)> func;
9950
} fn_data = {
fn
};
9951
auto
fn_lambda = [](
isl_basic_set
*arg_0,
void
*arg_1) ->
isl_stat
{
9952
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
9953
auto
ret = (data->func)(
manage
(arg_0));
9954
return
ret.release();
9955
};
9956
auto
res
= isl_basic_set_list_foreach(
get
(), fn_lambda, &fn_data);
9957
return
manage
(
res
);
9958
}
9959
9960
isl::basic_set_list
basic_set_list::insert
(
unsigned
int
pos
,
isl::basic_set
el)
const
9961
{
9962
auto
res
= isl_basic_set_list_insert(
copy
(),
pos
, el.
release
());
9963
return
manage
(
res
);
9964
}
9965
9966
class
size
basic_set_list::size
()
const
9967
{
9968
auto
res
= isl_basic_set_list_size(
get
());
9969
return
manage
(
res
);
9970
}
9971
9972
inline
std::ostream &
operator<<
(std::ostream &os,
const
basic_set_list
&
obj
)
9973
{
9974
char
*
str
= isl_basic_set_list_to_str(
obj
.get());
9975
if
(!
str
) {
9976
os.setstate(std::ios_base::badbit);
9977
return
os;
9978
}
9979
os <<
str
;
9980
free(
str
);
9981
return
os;
9982
}
9983
9984
// implementations for isl::constraint
9985
constraint
manage
(
__isl_take
isl_constraint
*
ptr
) {
9986
return
constraint
(
ptr
);
9987
}
9988
constraint
manage_copy
(
__isl_keep
isl_constraint
*
ptr
) {
9989
ptr
=
isl_constraint_copy
(
ptr
);
9990
return
constraint
(
ptr
);
9991
}
9992
9993
constraint::constraint
()
9994
:
ptr
(nullptr) {}
9995
9996
constraint::constraint
(
const
constraint
&
obj
)
9997
:
ptr
(nullptr)
9998
{
9999
ptr
=
obj
.copy();
10000
}
10001
10002
constraint::constraint
(
__isl_take
isl_constraint
*
ptr
)
10003
:
ptr
(
ptr
) {}
10004
10005
constraint
&
constraint::operator=
(
constraint
obj
) {
10006
std::swap(this->ptr,
obj
.ptr);
10007
return
*
this
;
10008
}
10009
10010
constraint::~constraint
() {
10011
if
(
ptr
)
10012
isl_constraint_free
(
ptr
);
10013
}
10014
10015
__isl_give
isl_constraint
*
constraint::copy
() const & {
10016
return
isl_constraint_copy
(
ptr
);
10017
}
10018
10019
__isl_keep
isl_constraint
*
constraint::get
()
const
{
10020
return
ptr
;
10021
}
10022
10023
__isl_give
isl_constraint
*
constraint::release
() {
10024
isl_constraint
*tmp =
ptr
;
10025
ptr
=
nullptr
;
10026
return
tmp;
10027
}
10028
10029
bool
constraint::is_null
()
const
{
10030
return
ptr
==
nullptr
;
10031
}
10032
10033
isl::ctx
constraint::ctx
()
const
{
10034
return
isl::ctx
(
isl_constraint_get_ctx
(
ptr
));
10035
}
10036
10037
isl::constraint
constraint::alloc_equality
(
isl::local_space
ls)
10038
{
10039
auto
res
=
isl_constraint_alloc_equality
(ls.
release
());
10040
return
manage
(
res
);
10041
}
10042
10043
isl::constraint
constraint::alloc_inequality
(
isl::local_space
ls)
10044
{
10045
auto
res
=
isl_constraint_alloc_inequality
(ls.
release
());
10046
return
manage
(
res
);
10047
}
10048
10049
isl::constraint
constraint::set_coefficient_si
(
isl::dim
type
,
int
pos
,
int
v)
const
10050
{
10051
auto
res
=
isl_constraint_set_coefficient_si
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, v);
10052
return
manage
(
res
);
10053
}
10054
10055
isl::constraint
constraint::set_constant_si
(
int
v)
const
10056
{
10057
auto
res
=
isl_constraint_set_constant_si
(
copy
(), v);
10058
return
manage
(
res
);
10059
}
10060
10061
isl::constraint
constraint::set_constant_val
(
isl::val
v)
const
10062
{
10063
auto
res
=
isl_constraint_set_constant_val
(
copy
(), v.
release
());
10064
return
manage
(
res
);
10065
}
10066
10067
isl::constraint
constraint::set_constant_val
(
long
v)
const
10068
{
10069
return
this->
set_constant_val
(
isl::val
(
ctx
(), v));
10070
}
10071
10072
// implementations for isl::fixed_box
10073
fixed_box
manage
(
__isl_take
isl_fixed_box
*
ptr
) {
10074
return
fixed_box
(
ptr
);
10075
}
10076
fixed_box
manage_copy
(
__isl_keep
isl_fixed_box
*
ptr
) {
10077
ptr
=
isl_fixed_box_copy
(
ptr
);
10078
return
fixed_box
(
ptr
);
10079
}
10080
10081
fixed_box::fixed_box
()
10082
:
ptr
(nullptr) {}
10083
10084
fixed_box::fixed_box
(
const
fixed_box
&
obj
)
10085
:
ptr
(nullptr)
10086
{
10087
ptr
=
obj
.copy();
10088
}
10089
10090
fixed_box::fixed_box
(
__isl_take
isl_fixed_box
*
ptr
)
10091
:
ptr
(
ptr
) {}
10092
10093
fixed_box
&
fixed_box::operator=
(
fixed_box
obj
) {
10094
std::swap(this->ptr,
obj
.ptr);
10095
return
*
this
;
10096
}
10097
10098
fixed_box::~fixed_box
() {
10099
if
(
ptr
)
10100
isl_fixed_box_free
(
ptr
);
10101
}
10102
10103
__isl_give
isl_fixed_box
*
fixed_box::copy
() const & {
10104
return
isl_fixed_box_copy
(
ptr
);
10105
}
10106
10107
__isl_keep
isl_fixed_box
*
fixed_box::get
()
const
{
10108
return
ptr
;
10109
}
10110
10111
__isl_give
isl_fixed_box
*
fixed_box::release
() {
10112
isl_fixed_box
*tmp =
ptr
;
10113
ptr
=
nullptr
;
10114
return
tmp;
10115
}
10116
10117
bool
fixed_box::is_null
()
const
{
10118
return
ptr
==
nullptr
;
10119
}
10120
10121
isl::ctx
fixed_box::ctx
()
const
{
10122
return
isl::ctx
(
isl_fixed_box_get_ctx
(
ptr
));
10123
}
10124
10125
boolean
fixed_box::is_valid
()
const
10126
{
10127
auto
res
=
isl_fixed_box_is_valid
(
get
());
10128
return
manage
(
res
);
10129
}
10130
10131
isl::multi_aff
fixed_box::offset
()
const
10132
{
10133
auto
res
=
isl_fixed_box_get_offset
(
get
());
10134
return
manage
(
res
);
10135
}
10136
10137
isl::multi_aff
fixed_box::get_offset
()
const
10138
{
10139
return
offset
();
10140
}
10141
10142
isl::multi_val
fixed_box::size
()
const
10143
{
10144
auto
res
=
isl_fixed_box_get_size
(
get
());
10145
return
manage
(
res
);
10146
}
10147
10148
isl::multi_val
fixed_box::get_size
()
const
10149
{
10150
return
size
();
10151
}
10152
10153
isl::space
fixed_box::space
()
const
10154
{
10155
auto
res
=
isl_fixed_box_get_space
(
get
());
10156
return
manage
(
res
);
10157
}
10158
10159
isl::space
fixed_box::get_space
()
const
10160
{
10161
return
space
();
10162
}
10163
10164
inline
std::ostream &
operator<<
(std::ostream &os,
const
fixed_box
&
obj
)
10165
{
10166
char
*
str
=
isl_fixed_box_to_str
(
obj
.get());
10167
if
(!
str
) {
10168
os.setstate(std::ios_base::badbit);
10169
return
os;
10170
}
10171
os <<
str
;
10172
free(
str
);
10173
return
os;
10174
}
10175
10176
// implementations for isl::id
10177
id
manage
(
__isl_take
isl_id
*
ptr
) {
10178
return
id
(
ptr
);
10179
}
10180
id
manage_copy
(
__isl_keep
isl_id
*
ptr
) {
10181
ptr
=
isl_id_copy
(
ptr
);
10182
return
id
(
ptr
);
10183
}
10184
10185
id::id
()
10186
:
ptr
(nullptr) {}
10187
10188
id::id
(
const
id
&
obj
)
10189
:
ptr
(nullptr)
10190
{
10191
ptr
=
obj
.copy();
10192
}
10193
10194
id::id
(
__isl_take
isl_id
*
ptr
)
10195
:
ptr
(
ptr
) {}
10196
10197
id::id
(
isl::ctx
ctx
,
const
std::string &
str
)
10198
{
10199
auto
res
=
isl_id_read_from_str
(
ctx
.release(),
str
.c_str());
10200
ptr
=
res
;
10201
}
10202
10203
id
&
id::operator=
(
id
obj
) {
10204
std::swap(this->ptr,
obj
.ptr);
10205
return
*
this
;
10206
}
10207
10208
id::~id
() {
10209
if
(
ptr
)
10210
isl_id_free
(
ptr
);
10211
}
10212
10213
__isl_give
isl_id
*
id::copy
() const & {
10214
return
isl_id_copy
(
ptr
);
10215
}
10216
10217
__isl_keep
isl_id
*
id::get
()
const
{
10218
return
ptr
;
10219
}
10220
10221
__isl_give
isl_id
*
id::release
() {
10222
isl_id
*tmp =
ptr
;
10223
ptr
=
nullptr
;
10224
return
tmp;
10225
}
10226
10227
bool
id::is_null
()
const
{
10228
return
ptr
==
nullptr
;
10229
}
10230
10231
isl::ctx
id::ctx
()
const
{
10232
return
isl::ctx
(
isl_id_get_ctx
(
ptr
));
10233
}
10234
10235
isl::id
id::alloc
(
isl::ctx
ctx
,
const
std::string &
name
,
void
*
user
)
10236
{
10237
auto
res
=
isl_id_alloc
(
ctx
.release(),
name
.c_str(),
user
);
10238
return
manage
(
res
);
10239
}
10240
10241
std::string
id::name
()
const
10242
{
10243
auto
res
=
isl_id_get_name
(
get
());
10244
std::string tmp(
res
);
10245
return
tmp;
10246
}
10247
10248
std::string
id::get_name
()
const
10249
{
10250
return
name
();
10251
}
10252
10253
isl::id_list
id::to_list
()
const
10254
{
10255
auto
res
= isl_id_to_list(
copy
());
10256
return
manage
(
res
);
10257
}
10258
10259
void
*
id::user
()
const
10260
{
10261
auto
res
=
isl_id_get_user
(
get
());
10262
return
res
;
10263
}
10264
10265
void
*
id::get_user
()
const
10266
{
10267
return
user
();
10268
}
10269
10270
inline
std::ostream &
operator<<
(std::ostream &os,
const
id
&
obj
)
10271
{
10272
char
*
str
=
isl_id_to_str
(
obj
.get());
10273
if
(!
str
) {
10274
os.setstate(std::ios_base::badbit);
10275
return
os;
10276
}
10277
os <<
str
;
10278
free(
str
);
10279
return
os;
10280
}
10281
10282
// implementations for isl::id_list
10283
id_list
manage
(
__isl_take
isl_id_list *
ptr
) {
10284
return
id_list
(
ptr
);
10285
}
10286
id_list
manage_copy
(
__isl_keep
isl_id_list *
ptr
) {
10287
ptr
= isl_id_list_copy(
ptr
);
10288
return
id_list
(
ptr
);
10289
}
10290
10291
id_list::id_list
()
10292
:
ptr
(nullptr) {}
10293
10294
id_list::id_list
(
const
id_list
&
obj
)
10295
:
ptr
(nullptr)
10296
{
10297
ptr
=
obj
.copy();
10298
}
10299
10300
id_list::id_list
(
__isl_take
isl_id_list *
ptr
)
10301
:
ptr
(
ptr
) {}
10302
10303
id_list::id_list
(
isl::ctx
ctx
,
int
n
)
10304
{
10305
auto
res
= isl_id_list_alloc(
ctx
.release(),
n
);
10306
ptr
=
res
;
10307
}
10308
10309
id_list::id_list
(
isl::id
el)
10310
{
10311
auto
res
= isl_id_list_from_id(el.
release
());
10312
ptr
=
res
;
10313
}
10314
10315
id_list::id_list
(
isl::ctx
ctx
,
const
std::string &
str
)
10316
{
10317
auto
res
= isl_id_list_read_from_str(
ctx
.release(),
str
.c_str());
10318
ptr
=
res
;
10319
}
10320
10321
id_list
&
id_list::operator=
(
id_list
obj
) {
10322
std::swap(this->ptr,
obj
.ptr);
10323
return
*
this
;
10324
}
10325
10326
id_list::~id_list
() {
10327
if
(
ptr
)
10328
isl_id_list_free(
ptr
);
10329
}
10330
10331
__isl_give
isl_id_list *
id_list::copy
() const & {
10332
return
isl_id_list_copy(
ptr
);
10333
}
10334
10335
__isl_keep
isl_id_list *
id_list::get
()
const
{
10336
return
ptr
;
10337
}
10338
10339
__isl_give
isl_id_list *
id_list::release
() {
10340
isl_id_list *tmp =
ptr
;
10341
ptr
=
nullptr
;
10342
return
tmp;
10343
}
10344
10345
bool
id_list::is_null
()
const
{
10346
return
ptr
==
nullptr
;
10347
}
10348
10349
isl::ctx
id_list::ctx
()
const
{
10350
return
isl::ctx
(isl_id_list_get_ctx(
ptr
));
10351
}
10352
10353
isl::id_list
id_list::add
(
isl::id
el)
const
10354
{
10355
auto
res
= isl_id_list_add(
copy
(), el.
release
());
10356
return
manage
(
res
);
10357
}
10358
10359
isl::id_list
id_list::add
(
const
std::string &el)
const
10360
{
10361
return
this->
add
(
isl::id
(
ctx
(), el));
10362
}
10363
10364
isl::id
id_list::at
(
int
index)
const
10365
{
10366
auto
res
= isl_id_list_get_at(
get
(), index);
10367
return
manage
(
res
);
10368
}
10369
10370
isl::id
id_list::get_at
(
int
index)
const
10371
{
10372
return
at
(index);
10373
}
10374
10375
isl::id_list
id_list::clear
()
const
10376
{
10377
auto
res
= isl_id_list_clear(
copy
());
10378
return
manage
(
res
);
10379
}
10380
10381
isl::id_list
id_list::concat
(
isl::id_list
list2)
const
10382
{
10383
auto
res
= isl_id_list_concat(
copy
(), list2.
release
());
10384
return
manage
(
res
);
10385
}
10386
10387
isl::id_list
id_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
10388
{
10389
auto
res
= isl_id_list_drop(
copy
(), first,
n
);
10390
return
manage
(
res
);
10391
}
10392
10393
stat
id_list::foreach
(
const
std::function<
stat
(
isl::id
)> &
fn
)
const
10394
{
10395
struct
fn_data {
10396
std::function<
stat
(
isl::id
)> func;
10397
} fn_data = {
fn
};
10398
auto
fn_lambda = [](
isl_id
*arg_0,
void
*arg_1) ->
isl_stat
{
10399
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
10400
auto
ret = (data->func)(
manage
(arg_0));
10401
return
ret.release();
10402
};
10403
auto
res
= isl_id_list_foreach(
get
(), fn_lambda, &fn_data);
10404
return
manage
(
res
);
10405
}
10406
10407
isl::id_list
id_list::insert
(
unsigned
int
pos
,
isl::id
el)
const
10408
{
10409
auto
res
= isl_id_list_insert(
copy
(),
pos
, el.
release
());
10410
return
manage
(
res
);
10411
}
10412
10413
isl::id_list
id_list::insert
(
unsigned
int
pos
,
const
std::string &el)
const
10414
{
10415
return
this->
insert
(pos,
isl::id
(
ctx
(), el));
10416
}
10417
10418
class
size
id_list::size
()
const
10419
{
10420
auto
res
= isl_id_list_size(
get
());
10421
return
manage
(
res
);
10422
}
10423
10424
inline
std::ostream &
operator<<
(std::ostream &os,
const
id_list
&
obj
)
10425
{
10426
char
*
str
= isl_id_list_to_str(
obj
.get());
10427
if
(!
str
) {
10428
os.setstate(std::ios_base::badbit);
10429
return
os;
10430
}
10431
os <<
str
;
10432
free(
str
);
10433
return
os;
10434
}
10435
10436
// implementations for isl::id_to_ast_expr
10437
id_to_ast_expr
manage
(
__isl_take
isl_id_to_ast_expr *
ptr
) {
10438
return
id_to_ast_expr
(
ptr
);
10439
}
10440
id_to_ast_expr
manage_copy
(
__isl_keep
isl_id_to_ast_expr *
ptr
) {
10441
ptr
= isl_id_to_ast_expr_copy(
ptr
);
10442
return
id_to_ast_expr
(
ptr
);
10443
}
10444
10445
id_to_ast_expr::id_to_ast_expr
()
10446
:
ptr
(nullptr) {}
10447
10448
id_to_ast_expr::id_to_ast_expr
(
const
id_to_ast_expr
&
obj
)
10449
:
ptr
(nullptr)
10450
{
10451
ptr
=
obj
.copy();
10452
}
10453
10454
id_to_ast_expr::id_to_ast_expr
(
__isl_take
isl_id_to_ast_expr *
ptr
)
10455
:
ptr
(
ptr
) {}
10456
10457
id_to_ast_expr
&
id_to_ast_expr::operator=
(
id_to_ast_expr
obj
) {
10458
std::swap(this->ptr,
obj
.ptr);
10459
return
*
this
;
10460
}
10461
10462
id_to_ast_expr::~id_to_ast_expr
() {
10463
if
(
ptr
)
10464
isl_id_to_ast_expr_free(
ptr
);
10465
}
10466
10467
__isl_give
isl_id_to_ast_expr *
id_to_ast_expr::copy
() const & {
10468
return
isl_id_to_ast_expr_copy(
ptr
);
10469
}
10470
10471
__isl_keep
isl_id_to_ast_expr *
id_to_ast_expr::get
()
const
{
10472
return
ptr
;
10473
}
10474
10475
__isl_give
isl_id_to_ast_expr *
id_to_ast_expr::release
() {
10476
isl_id_to_ast_expr *tmp =
ptr
;
10477
ptr
=
nullptr
;
10478
return
tmp;
10479
}
10480
10481
bool
id_to_ast_expr::is_null
()
const
{
10482
return
ptr
==
nullptr
;
10483
}
10484
10485
isl::ctx
id_to_ast_expr::ctx
()
const
{
10486
return
isl::ctx
(isl_id_to_ast_expr_get_ctx(
ptr
));
10487
}
10488
10489
isl::id_to_ast_expr
id_to_ast_expr::alloc
(
isl::ctx
ctx
,
int
min_size
)
10490
{
10491
auto
res
= isl_id_to_ast_expr_alloc(
ctx
.release(),
min_size
);
10492
return
manage
(
res
);
10493
}
10494
10495
isl::id_to_ast_expr
id_to_ast_expr::set
(
isl::id
key
,
isl::ast_expr
val
)
const
10496
{
10497
auto
res
= isl_id_to_ast_expr_set(
copy
(),
key
.release(),
val
.
release
());
10498
return
manage
(
res
);
10499
}
10500
10501
isl::id_to_ast_expr
id_to_ast_expr::set
(
const
std::string &
key
,
const
isl::ast_expr
&
val
)
const
10502
{
10503
return
this->
set
(
isl::id
(
ctx
(),
key
),
val
);
10504
}
10505
10506
// implementations for isl::local_space
10507
local_space
manage
(
__isl_take
isl_local_space
*
ptr
) {
10508
return
local_space
(
ptr
);
10509
}
10510
local_space
manage_copy
(
__isl_keep
isl_local_space
*
ptr
) {
10511
ptr
=
isl_local_space_copy
(
ptr
);
10512
return
local_space
(
ptr
);
10513
}
10514
10515
local_space::local_space
()
10516
:
ptr
(nullptr) {}
10517
10518
local_space::local_space
(
const
local_space
&
obj
)
10519
:
ptr
(nullptr)
10520
{
10521
ptr
=
obj
.copy();
10522
}
10523
10524
local_space::local_space
(
__isl_take
isl_local_space
*
ptr
)
10525
:
ptr
(
ptr
) {}
10526
10527
local_space::local_space
(
isl::space
space
)
10528
{
10529
auto
res
=
isl_local_space_from_space
(
space
.
release
());
10530
ptr
=
res
;
10531
}
10532
10533
local_space
&
local_space::operator=
(
local_space
obj
) {
10534
std::swap(this->ptr,
obj
.ptr);
10535
return
*
this
;
10536
}
10537
10538
local_space::~local_space
() {
10539
if
(
ptr
)
10540
isl_local_space_free
(
ptr
);
10541
}
10542
10543
__isl_give
isl_local_space
*
local_space::copy
() const & {
10544
return
isl_local_space_copy
(
ptr
);
10545
}
10546
10547
__isl_keep
isl_local_space
*
local_space::get
()
const
{
10548
return
ptr
;
10549
}
10550
10551
__isl_give
isl_local_space
*
local_space::release
() {
10552
isl_local_space
*tmp =
ptr
;
10553
ptr
=
nullptr
;
10554
return
tmp;
10555
}
10556
10557
bool
local_space::is_null
()
const
{
10558
return
ptr
==
nullptr
;
10559
}
10560
10561
isl::ctx
local_space::ctx
()
const
{
10562
return
isl::ctx
(
isl_local_space_get_ctx
(
ptr
));
10563
}
10564
10565
// implementations for isl::map
10566
map
manage
(
__isl_take
isl_map
*
ptr
) {
10567
return
map
(
ptr
);
10568
}
10569
map
manage_copy
(
__isl_keep
isl_map
*
ptr
) {
10570
ptr
=
isl_map_copy
(
ptr
);
10571
return
map
(
ptr
);
10572
}
10573
10574
map::map
()
10575
:
ptr
(nullptr) {}
10576
10577
map::map
(
const
map
&
obj
)
10578
:
ptr
(nullptr)
10579
{
10580
ptr
=
obj
.copy();
10581
}
10582
10583
map::map
(
__isl_take
isl_map
*
ptr
)
10584
:
ptr
(
ptr
) {}
10585
10586
map::map
(
isl::basic_map
bmap)
10587
{
10588
auto
res
=
isl_map_from_basic_map
(bmap.
release
());
10589
ptr
=
res
;
10590
}
10591
10592
map::map
(
isl::ctx
ctx
,
const
std::string &
str
)
10593
{
10594
auto
res
=
isl_map_read_from_str
(
ctx
.release(),
str
.c_str());
10595
ptr
=
res
;
10596
}
10597
10598
map
&
map::operator=
(
map
obj
) {
10599
std::swap(this->ptr,
obj
.ptr);
10600
return
*
this
;
10601
}
10602
10603
map::~map
() {
10604
if
(
ptr
)
10605
isl_map_free
(
ptr
);
10606
}
10607
10608
__isl_give
isl_map
*
map::copy
() const & {
10609
return
isl_map_copy
(
ptr
);
10610
}
10611
10612
__isl_keep
isl_map
*
map::get
()
const
{
10613
return
ptr
;
10614
}
10615
10616
__isl_give
isl_map
*
map::release
() {
10617
isl_map
*tmp =
ptr
;
10618
ptr
=
nullptr
;
10619
return
tmp;
10620
}
10621
10622
bool
map::is_null
()
const
{
10623
return
ptr
==
nullptr
;
10624
}
10625
10626
isl::ctx
map::ctx
()
const
{
10627
return
isl::ctx
(
isl_map_get_ctx
(
ptr
));
10628
}
10629
10630
isl::map
map::add_constraint
(
isl::constraint
constraint
)
const
10631
{
10632
auto
res
=
isl_map_add_constraint
(
copy
(),
constraint
.
release
());
10633
return
manage
(
res
);
10634
}
10635
10636
isl::map
map::add_dims
(
isl::dim
type
,
unsigned
int
n
)
const
10637
{
10638
auto
res
=
isl_map_add_dims
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
n
);
10639
return
manage
(
res
);
10640
}
10641
10642
isl::basic_map
map::affine_hull
()
const
10643
{
10644
auto
res
=
isl_map_affine_hull
(
copy
());
10645
return
manage
(
res
);
10646
}
10647
10648
isl::map
map::align_params
(
isl::space
model)
const
10649
{
10650
auto
res
=
isl_map_align_params
(
copy
(), model.
release
());
10651
return
manage
(
res
);
10652
}
10653
10654
isl::map
map::apply_domain
(
isl::map
map2
)
const
10655
{
10656
auto
res
=
isl_map_apply_domain
(
copy
(),
map2
.release());
10657
return
manage
(
res
);
10658
}
10659
10660
isl::union_map
map::apply_domain
(
const
isl::union_map
&umap2)
const
10661
{
10662
return
isl::union_map
(*this).
apply_domain
(umap2);
10663
}
10664
10665
isl::map
map::apply_domain
(
const
isl::basic_map
&
map2
)
const
10666
{
10667
return
this->
apply_domain
(
isl::map
(
map2
));
10668
}
10669
10670
isl::map
map::apply_range
(
isl::map
map2
)
const
10671
{
10672
auto
res
=
isl_map_apply_range
(
copy
(),
map2
.release());
10673
return
manage
(
res
);
10674
}
10675
10676
isl::union_map
map::apply_range
(
const
isl::union_map
&umap2)
const
10677
{
10678
return
isl::union_map
(*this).
apply_range
(umap2);
10679
}
10680
10681
isl::map
map::apply_range
(
const
isl::basic_map
&
map2
)
const
10682
{
10683
return
this->
apply_range
(
isl::map
(
map2
));
10684
}
10685
10686
isl::map
map::as_map
()
const
10687
{
10688
return
isl::union_map
(*this).
as_map
();
10689
}
10690
10691
isl::multi_union_pw_aff
map::as_multi_union_pw_aff
()
const
10692
{
10693
return
isl::union_map
(*this).
as_multi_union_pw_aff
();
10694
}
10695
10696
isl::pw_multi_aff
map::as_pw_multi_aff
()
const
10697
{
10698
auto
res
=
isl_map_as_pw_multi_aff
(
copy
());
10699
return
manage
(
res
);
10700
}
10701
10702
isl::union_pw_multi_aff
map::as_union_pw_multi_aff
()
const
10703
{
10704
return
isl::union_map
(*this).
as_union_pw_multi_aff
();
10705
}
10706
10707
isl::basic_map_list
map::basic_map_list
()
const
10708
{
10709
auto
res
=
isl_map_get_basic_map_list
(
get
());
10710
return
manage
(
res
);
10711
}
10712
10713
isl::basic_map_list
map::get_basic_map_list
()
const
10714
{
10715
return
basic_map_list
();
10716
}
10717
10718
isl::set
map::bind_domain
(
isl::multi_id
tuple
)
const
10719
{
10720
auto
res
=
isl_map_bind_domain
(
copy
(),
tuple
.release());
10721
return
manage
(
res
);
10722
}
10723
10724
isl::set
map::bind_range
(
isl::multi_id
tuple
)
const
10725
{
10726
auto
res
=
isl_map_bind_range
(
copy
(),
tuple
.release());
10727
return
manage
(
res
);
10728
}
10729
10730
boolean
map::can_curry
()
const
10731
{
10732
auto
res
=
isl_map_can_curry
(
get
());
10733
return
manage
(
res
);
10734
}
10735
10736
isl::map
map::coalesce
()
const
10737
{
10738
auto
res
=
isl_map_coalesce
(
copy
());
10739
return
manage
(
res
);
10740
}
10741
10742
isl::map
map::complement
()
const
10743
{
10744
auto
res
=
isl_map_complement
(
copy
());
10745
return
manage
(
res
);
10746
}
10747
10748
isl::union_map
map::compute_divs
()
const
10749
{
10750
return
isl::union_map
(*this).
compute_divs
();
10751
}
10752
10753
isl::map
map::curry
()
const
10754
{
10755
auto
res
=
isl_map_curry
(
copy
());
10756
return
manage
(
res
);
10757
}
10758
10759
isl::set
map::deltas
()
const
10760
{
10761
auto
res
=
isl_map_deltas
(
copy
());
10762
return
manage
(
res
);
10763
}
10764
10765
isl::map
map::detect_equalities
()
const
10766
{
10767
auto
res
=
isl_map_detect_equalities
(
copy
());
10768
return
manage
(
res
);
10769
}
10770
10771
class
size
map::dim
(
isl::dim
type
)
const
10772
{
10773
auto
res
=
isl_map_dim
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
10774
return
manage
(
res
);
10775
}
10776
10777
isl::pw_aff
map::dim_max
(
int
pos
)
const
10778
{
10779
auto
res
=
isl_map_dim_max
(
copy
(),
pos
);
10780
return
manage
(
res
);
10781
}
10782
10783
isl::pw_aff
map::dim_min
(
int
pos
)
const
10784
{
10785
auto
res
=
isl_map_dim_min
(
copy
(),
pos
);
10786
return
manage
(
res
);
10787
}
10788
10789
isl::set
map::domain
()
const
10790
{
10791
auto
res
=
isl_map_domain
(
copy
());
10792
return
manage
(
res
);
10793
}
10794
10795
isl::map
map::domain_factor_domain
()
const
10796
{
10797
auto
res
=
isl_map_domain_factor_domain
(
copy
());
10798
return
manage
(
res
);
10799
}
10800
10801
isl::map
map::domain_factor_range
()
const
10802
{
10803
auto
res
=
isl_map_domain_factor_range
(
copy
());
10804
return
manage
(
res
);
10805
}
10806
10807
isl::map
map::domain_map
()
const
10808
{
10809
auto
res
=
isl_map_domain_map
(
copy
());
10810
return
manage
(
res
);
10811
}
10812
10813
isl::union_pw_multi_aff
map::domain_map_union_pw_multi_aff
()
const
10814
{
10815
return
isl::union_map
(*this).
domain_map_union_pw_multi_aff
();
10816
}
10817
10818
isl::map
map::domain_product
(
isl::map
map2
)
const
10819
{
10820
auto
res
=
isl_map_domain_product
(
copy
(),
map2
.release());
10821
return
manage
(
res
);
10822
}
10823
10824
isl::union_map
map::domain_product
(
const
isl::union_map
&umap2)
const
10825
{
10826
return
isl::union_map
(*this).
domain_product
(umap2);
10827
}
10828
10829
isl::map
map::domain_product
(
const
isl::basic_map
&
map2
)
const
10830
{
10831
return
this->
domain_product
(
isl::map
(
map2
));
10832
}
10833
10834
class
size
map::domain_tuple_dim
()
const
10835
{
10836
auto
res
=
isl_map_domain_tuple_dim
(
get
());
10837
return
manage
(
res
);
10838
}
10839
10840
isl::id
map::domain_tuple_id
()
const
10841
{
10842
auto
res
=
isl_map_get_domain_tuple_id
(
get
());
10843
return
manage
(
res
);
10844
}
10845
10846
isl::id
map::get_domain_tuple_id
()
const
10847
{
10848
return
domain_tuple_id
();
10849
}
10850
10851
isl::map
map::empty
(
isl::space
space
)
10852
{
10853
auto
res
=
isl_map_empty
(
space
.release());
10854
return
manage
(
res
);
10855
}
10856
10857
isl::map
map::eq_at
(
isl::multi_pw_aff
mpa)
const
10858
{
10859
auto
res
=
isl_map_eq_at_multi_pw_aff
(
copy
(), mpa.
release
());
10860
return
manage
(
res
);
10861
}
10862
10863
isl::union_map
map::eq_at
(
const
isl::multi_union_pw_aff
&
mupa
)
const
10864
{
10865
return
isl::union_map
(*this).
eq_at
(
mupa
);
10866
}
10867
10868
isl::map
map::eq_at
(
const
isl::aff
&mpa)
const
10869
{
10870
return
this->
eq_at
(
isl::multi_pw_aff
(mpa));
10871
}
10872
10873
isl::map
map::eq_at
(
const
isl::multi_aff
&mpa)
const
10874
{
10875
return
this->
eq_at
(
isl::multi_pw_aff
(mpa));
10876
}
10877
10878
isl::map
map::eq_at
(
const
isl::pw_aff
&mpa)
const
10879
{
10880
return
this->
eq_at
(
isl::multi_pw_aff
(mpa));
10881
}
10882
10883
isl::map
map::eq_at
(
const
isl::pw_multi_aff
&mpa)
const
10884
{
10885
return
this->
eq_at
(
isl::multi_pw_aff
(mpa));
10886
}
10887
10888
isl::map
map::equate
(
isl::dim
type1,
int
pos1,
isl::dim
type2,
int
pos2)
const
10889
{
10890
auto
res
=
isl_map_equate
(
copy
(),
static_cast<
enum
isl_dim_type
>
(type1), pos1,
static_cast<
enum
isl_dim_type
>
(type2), pos2);
10891
return
manage
(
res
);
10892
}
10893
10894
boolean
map::every_map
(
const
std::function<
boolean
(
isl::map
)> &
test
)
const
10895
{
10896
return
isl::union_map
(*this).
every_map
(
test
);
10897
}
10898
10899
isl::map
map::extract_map
(
const
isl::space
&
space
)
const
10900
{
10901
return
isl::union_map
(*this).
extract_map
(
space
);
10902
}
10903
10904
isl::map
map::factor_domain
()
const
10905
{
10906
auto
res
=
isl_map_factor_domain
(
copy
());
10907
return
manage
(
res
);
10908
}
10909
10910
isl::map
map::factor_range
()
const
10911
{
10912
auto
res
=
isl_map_factor_range
(
copy
());
10913
return
manage
(
res
);
10914
}
10915
10916
isl::map
map::fix_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
10917
{
10918
auto
res
=
isl_map_fix_si
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, value);
10919
return
manage
(
res
);
10920
}
10921
10922
isl::union_map
map::fixed_power
(
const
isl::val
&exp)
const
10923
{
10924
return
isl::union_map
(*this).
fixed_power
(exp);
10925
}
10926
10927
isl::union_map
map::fixed_power
(
long
exp)
const
10928
{
10929
return
this->
fixed_power
(
isl::val
(
ctx
(), exp));
10930
}
10931
10932
isl::map
map::flat_range_product
(
isl::map
map2
)
const
10933
{
10934
auto
res
=
isl_map_flat_range_product
(
copy
(),
map2
.release());
10935
return
manage
(
res
);
10936
}
10937
10938
isl::union_map
map::flat_range_product
(
const
isl::union_map
&umap2)
const
10939
{
10940
return
isl::union_map
(*this).
flat_range_product
(umap2);
10941
}
10942
10943
isl::map
map::flat_range_product
(
const
isl::basic_map
&
map2
)
const
10944
{
10945
return
this->
flat_range_product
(
isl::map
(
map2
));
10946
}
10947
10948
isl::map
map::flatten
()
const
10949
{
10950
auto
res
=
isl_map_flatten
(
copy
());
10951
return
manage
(
res
);
10952
}
10953
10954
isl::map
map::flatten_domain
()
const
10955
{
10956
auto
res
=
isl_map_flatten_domain
(
copy
());
10957
return
manage
(
res
);
10958
}
10959
10960
isl::map
map::flatten_range
()
const
10961
{
10962
auto
res
=
isl_map_flatten_range
(
copy
());
10963
return
manage
(
res
);
10964
}
10965
10966
isl::map
map::floordiv_val
(
isl::val
d)
const
10967
{
10968
auto
res
=
isl_map_floordiv_val
(
copy
(), d.
release
());
10969
return
manage
(
res
);
10970
}
10971
10972
isl::map
map::floordiv_val
(
long
d)
const
10973
{
10974
return
this->
floordiv_val
(
isl::val
(
ctx
(), d));
10975
}
10976
10977
stat
map::foreach_basic_map
(
const
std::function<
stat
(
isl::basic_map
)> &
fn
)
const
10978
{
10979
struct
fn_data {
10980
std::function<
stat
(
isl::basic_map
)> func;
10981
} fn_data = {
fn
};
10982
auto
fn_lambda = [](
isl_basic_map
*arg_0,
void
*arg_1) ->
isl_stat
{
10983
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
10984
auto
ret = (data->func)(
manage
(arg_0));
10985
return
ret.release();
10986
};
10987
auto
res
=
isl_map_foreach_basic_map
(
get
(), fn_lambda, &fn_data);
10988
return
manage
(
res
);
10989
}
10990
10991
stat
map::foreach_map
(
const
std::function<
stat
(
isl::map
)> &
fn
)
const
10992
{
10993
return
isl::union_map
(*this).
foreach_map
(
fn
);
10994
}
10995
10996
isl::map
map::from_aff
(
isl::aff
aff
)
10997
{
10998
auto
res
=
isl_map_from_aff
(
aff
.
release
());
10999
return
manage
(
res
);
11000
}
11001
11002
isl::map
map::from_domain
(
isl::set
set
)
11003
{
11004
auto
res
=
isl_map_from_domain
(
set
.
release
());
11005
return
manage
(
res
);
11006
}
11007
11008
isl::map
map::from_domain_and_range
(
isl::set
domain
,
isl::set
range
)
11009
{
11010
auto
res
=
isl_map_from_domain_and_range
(
domain
.release(),
range
.release());
11011
return
manage
(
res
);
11012
}
11013
11014
isl::map
map::from_multi_aff
(
isl::multi_aff
maff)
11015
{
11016
auto
res
=
isl_map_from_multi_aff
(maff.
release
());
11017
return
manage
(
res
);
11018
}
11019
11020
isl::map
map::from_pw_aff
(
isl::pw_aff
pwaff)
11021
{
11022
auto
res
=
isl_map_from_pw_aff
(pwaff.
release
());
11023
return
manage
(
res
);
11024
}
11025
11026
isl::map
map::from_range
(
isl::set
set
)
11027
{
11028
auto
res
=
isl_map_from_range
(
set
.
release
());
11029
return
manage
(
res
);
11030
}
11031
11032
isl::map
map::from_union_map
(
isl::union_map
umap)
11033
{
11034
auto
res
=
isl_map_from_union_map
(umap.
release
());
11035
return
manage
(
res
);
11036
}
11037
11038
isl::map
map::gist
(
isl::map
context
)
const
11039
{
11040
auto
res
=
isl_map_gist
(
copy
(),
context
.release());
11041
return
manage
(
res
);
11042
}
11043
11044
isl::union_map
map::gist
(
const
isl::union_map
&
context
)
const
11045
{
11046
return
isl::union_map
(*this).
gist
(
context
);
11047
}
11048
11049
isl::map
map::gist
(
const
isl::basic_map
&
context
)
const
11050
{
11051
return
this->
gist
(
isl::map
(
context
));
11052
}
11053
11054
isl::map
map::gist_domain
(
isl::set
context
)
const
11055
{
11056
auto
res
=
isl_map_gist_domain
(
copy
(),
context
.release());
11057
return
manage
(
res
);
11058
}
11059
11060
isl::union_map
map::gist_domain
(
const
isl::union_set
&uset)
const
11061
{
11062
return
isl::union_map
(*this).
gist_domain
(uset);
11063
}
11064
11065
isl::map
map::gist_domain
(
const
isl::basic_set
&
context
)
const
11066
{
11067
return
this->
gist_domain
(
isl::set
(
context
));
11068
}
11069
11070
isl::map
map::gist_domain
(
const
isl::point
&
context
)
const
11071
{
11072
return
this->
gist_domain
(
isl::set
(
context
));
11073
}
11074
11075
isl::map
map::gist_params
(
isl::set
context
)
const
11076
{
11077
auto
res
=
isl_map_gist_params
(
copy
(),
context
.release());
11078
return
manage
(
res
);
11079
}
11080
11081
isl::union_map
map::gist_range
(
const
isl::union_set
&uset)
const
11082
{
11083
return
isl::union_map
(*this).
gist_range
(uset);
11084
}
11085
11086
boolean
map::has_domain_tuple_id
()
const
11087
{
11088
auto
res
=
isl_map_has_domain_tuple_id
(
get
());
11089
return
manage
(
res
);
11090
}
11091
11092
boolean
map::has_equal_space
(
const
isl::map
&
map2
)
const
11093
{
11094
auto
res
=
isl_map_has_equal_space
(
get
(),
map2
.get());
11095
return
manage
(
res
);
11096
}
11097
11098
boolean
map::has_range_tuple_id
()
const
11099
{
11100
auto
res
=
isl_map_has_range_tuple_id
(
get
());
11101
return
manage
(
res
);
11102
}
11103
11104
boolean
map::has_tuple_id
(
isl::dim
type
)
const
11105
{
11106
auto
res
=
isl_map_has_tuple_id
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
11107
return
manage
(
res
);
11108
}
11109
11110
boolean
map::has_tuple_name
(
isl::dim
type
)
const
11111
{
11112
auto
res
=
isl_map_has_tuple_name
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
11113
return
manage
(
res
);
11114
}
11115
11116
isl::map
map::identity
(
isl::space
space
)
11117
{
11118
auto
res
=
isl_map_identity
(
space
.release());
11119
return
manage
(
res
);
11120
}
11121
11122
isl::map
map::intersect
(
isl::map
map2
)
const
11123
{
11124
auto
res
=
isl_map_intersect
(
copy
(),
map2
.release());
11125
return
manage
(
res
);
11126
}
11127
11128
isl::union_map
map::intersect
(
const
isl::union_map
&umap2)
const
11129
{
11130
return
isl::union_map
(*this).
intersect
(umap2);
11131
}
11132
11133
isl::map
map::intersect
(
const
isl::basic_map
&
map2
)
const
11134
{
11135
return
this->
intersect
(
isl::map
(
map2
));
11136
}
11137
11138
isl::map
map::intersect_domain
(
isl::set
set
)
const
11139
{
11140
auto
res
=
isl_map_intersect_domain
(
copy
(),
set
.
release
());
11141
return
manage
(
res
);
11142
}
11143
11144
isl::union_map
map::intersect_domain
(
const
isl::space
&
space
)
const
11145
{
11146
return
isl::union_map
(*this).
intersect_domain
(
space
);
11147
}
11148
11149
isl::union_map
map::intersect_domain
(
const
isl::union_set
&uset)
const
11150
{
11151
return
isl::union_map
(*this).
intersect_domain
(uset);
11152
}
11153
11154
isl::map
map::intersect_domain
(
const
isl::basic_set
&
set
)
const
11155
{
11156
return
this->
intersect_domain
(
isl::set
(
set
));
11157
}
11158
11159
isl::map
map::intersect_domain
(
const
isl::point
&
set
)
const
11160
{
11161
return
this->
intersect_domain
(
isl::set
(
set
));
11162
}
11163
11164
isl::map
map::intersect_domain_factor_domain
(
isl::map
factor)
const
11165
{
11166
auto
res
=
isl_map_intersect_domain_factor_domain
(
copy
(), factor.
release
());
11167
return
manage
(
res
);
11168
}
11169
11170
isl::union_map
map::intersect_domain_factor_domain
(
const
isl::union_map
&factor)
const
11171
{
11172
return
isl::union_map
(*this).
intersect_domain_factor_domain
(factor);
11173
}
11174
11175
isl::map
map::intersect_domain_factor_domain
(
const
isl::basic_map
&factor)
const
11176
{
11177
return
this->
intersect_domain_factor_domain
(
isl::map
(factor));
11178
}
11179
11180
isl::map
map::intersect_domain_factor_range
(
isl::map
factor)
const
11181
{
11182
auto
res
=
isl_map_intersect_domain_factor_range
(
copy
(), factor.
release
());
11183
return
manage
(
res
);
11184
}
11185
11186
isl::union_map
map::intersect_domain_factor_range
(
const
isl::union_map
&factor)
const
11187
{
11188
return
isl::union_map
(*this).
intersect_domain_factor_range
(factor);
11189
}
11190
11191
isl::map
map::intersect_domain_factor_range
(
const
isl::basic_map
&factor)
const
11192
{
11193
return
this->
intersect_domain_factor_range
(
isl::map
(factor));
11194
}
11195
11196
isl::map
map::intersect_params
(
isl::set
params
)
const
11197
{
11198
auto
res
=
isl_map_intersect_params
(
copy
(),
params
.release());
11199
return
manage
(
res
);
11200
}
11201
11202
isl::map
map::intersect_range
(
isl::set
set
)
const
11203
{
11204
auto
res
=
isl_map_intersect_range
(
copy
(),
set
.
release
());
11205
return
manage
(
res
);
11206
}
11207
11208
isl::union_map
map::intersect_range
(
const
isl::space
&
space
)
const
11209
{
11210
return
isl::union_map
(*this).
intersect_range
(
space
);
11211
}
11212
11213
isl::union_map
map::intersect_range
(
const
isl::union_set
&uset)
const
11214
{
11215
return
isl::union_map
(*this).
intersect_range
(uset);
11216
}
11217
11218
isl::map
map::intersect_range
(
const
isl::basic_set
&
set
)
const
11219
{
11220
return
this->
intersect_range
(
isl::set
(
set
));
11221
}
11222
11223
isl::map
map::intersect_range
(
const
isl::point
&
set
)
const
11224
{
11225
return
this->
intersect_range
(
isl::set
(
set
));
11226
}
11227
11228
isl::map
map::intersect_range_factor_domain
(
isl::map
factor)
const
11229
{
11230
auto
res
=
isl_map_intersect_range_factor_domain
(
copy
(), factor.
release
());
11231
return
manage
(
res
);
11232
}
11233
11234
isl::union_map
map::intersect_range_factor_domain
(
const
isl::union_map
&factor)
const
11235
{
11236
return
isl::union_map
(*this).
intersect_range_factor_domain
(factor);
11237
}
11238
11239
isl::map
map::intersect_range_factor_domain
(
const
isl::basic_map
&factor)
const
11240
{
11241
return
this->
intersect_range_factor_domain
(
isl::map
(factor));
11242
}
11243
11244
isl::map
map::intersect_range_factor_range
(
isl::map
factor)
const
11245
{
11246
auto
res
=
isl_map_intersect_range_factor_range
(
copy
(), factor.
release
());
11247
return
manage
(
res
);
11248
}
11249
11250
isl::union_map
map::intersect_range_factor_range
(
const
isl::union_map
&factor)
const
11251
{
11252
return
isl::union_map
(*this).
intersect_range_factor_range
(factor);
11253
}
11254
11255
isl::map
map::intersect_range_factor_range
(
const
isl::basic_map
&factor)
const
11256
{
11257
return
this->
intersect_range_factor_range
(
isl::map
(factor));
11258
}
11259
11260
boolean
map::involves_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
11261
{
11262
auto
res
=
isl_map_involves_dims
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
), first,
n
);
11263
return
manage
(
res
);
11264
}
11265
11266
boolean
map::is_bijective
()
const
11267
{
11268
auto
res
=
isl_map_is_bijective
(
get
());
11269
return
manage
(
res
);
11270
}
11271
11272
boolean
map::is_disjoint
(
const
isl::map
&
map2
)
const
11273
{
11274
auto
res
=
isl_map_is_disjoint
(
get
(),
map2
.get());
11275
return
manage
(
res
);
11276
}
11277
11278
boolean
map::is_disjoint
(
const
isl::union_map
&umap2)
const
11279
{
11280
return
isl::union_map
(*this).
is_disjoint
(umap2);
11281
}
11282
11283
boolean
map::is_disjoint
(
const
isl::basic_map
&
map2
)
const
11284
{
11285
return
this->
is_disjoint
(
isl::map
(
map2
));
11286
}
11287
11288
boolean
map::is_empty
()
const
11289
{
11290
auto
res
=
isl_map_is_empty
(
get
());
11291
return
manage
(
res
);
11292
}
11293
11294
boolean
map::is_equal
(
const
isl::map
&
map2
)
const
11295
{
11296
auto
res
=
isl_map_is_equal
(
get
(),
map2
.get());
11297
return
manage
(
res
);
11298
}
11299
11300
boolean
map::is_equal
(
const
isl::union_map
&umap2)
const
11301
{
11302
return
isl::union_map
(*this).
is_equal
(umap2);
11303
}
11304
11305
boolean
map::is_equal
(
const
isl::basic_map
&
map2
)
const
11306
{
11307
return
this->
is_equal
(
isl::map
(
map2
));
11308
}
11309
11310
boolean
map::is_injective
()
const
11311
{
11312
auto
res
=
isl_map_is_injective
(
get
());
11313
return
manage
(
res
);
11314
}
11315
11316
boolean
map::is_single_valued
()
const
11317
{
11318
auto
res
=
isl_map_is_single_valued
(
get
());
11319
return
manage
(
res
);
11320
}
11321
11322
boolean
map::is_strict_subset
(
const
isl::map
&
map2
)
const
11323
{
11324
auto
res
=
isl_map_is_strict_subset
(
get
(),
map2
.get());
11325
return
manage
(
res
);
11326
}
11327
11328
boolean
map::is_strict_subset
(
const
isl::union_map
&umap2)
const
11329
{
11330
return
isl::union_map
(*this).
is_strict_subset
(umap2);
11331
}
11332
11333
boolean
map::is_strict_subset
(
const
isl::basic_map
&
map2
)
const
11334
{
11335
return
this->
is_strict_subset
(
isl::map
(
map2
));
11336
}
11337
11338
boolean
map::is_subset
(
const
isl::map
&
map2
)
const
11339
{
11340
auto
res
=
isl_map_is_subset
(
get
(),
map2
.get());
11341
return
manage
(
res
);
11342
}
11343
11344
boolean
map::is_subset
(
const
isl::union_map
&umap2)
const
11345
{
11346
return
isl::union_map
(*this).
is_subset
(umap2);
11347
}
11348
11349
boolean
map::is_subset
(
const
isl::basic_map
&
map2
)
const
11350
{
11351
return
this->
is_subset
(
isl::map
(
map2
));
11352
}
11353
11354
boolean
map::isa_map
()
const
11355
{
11356
return
isl::union_map
(*this).
isa_map
();
11357
}
11358
11359
isl::map
map::lex_ge
(
isl::space
set_space)
11360
{
11361
auto
res
=
isl_map_lex_ge
(set_space.
release
());
11362
return
manage
(
res
);
11363
}
11364
11365
isl::map
map::lex_ge_at
(
isl::multi_pw_aff
mpa)
const
11366
{
11367
auto
res
=
isl_map_lex_ge_at_multi_pw_aff
(
copy
(), mpa.
release
());
11368
return
manage
(
res
);
11369
}
11370
11371
isl::map
map::lex_gt
(
isl::space
set_space)
11372
{
11373
auto
res
=
isl_map_lex_gt
(set_space.
release
());
11374
return
manage
(
res
);
11375
}
11376
11377
isl::map
map::lex_gt_at
(
isl::multi_pw_aff
mpa)
const
11378
{
11379
auto
res
=
isl_map_lex_gt_at_multi_pw_aff
(
copy
(), mpa.
release
());
11380
return
manage
(
res
);
11381
}
11382
11383
isl::map
map::lex_le
(
isl::space
set_space)
11384
{
11385
auto
res
=
isl_map_lex_le
(set_space.
release
());
11386
return
manage
(
res
);
11387
}
11388
11389
isl::map
map::lex_le_at
(
isl::multi_pw_aff
mpa)
const
11390
{
11391
auto
res
=
isl_map_lex_le_at_multi_pw_aff
(
copy
(), mpa.
release
());
11392
return
manage
(
res
);
11393
}
11394
11395
isl::map
map::lex_lt
(
isl::space
set_space)
11396
{
11397
auto
res
=
isl_map_lex_lt
(set_space.
release
());
11398
return
manage
(
res
);
11399
}
11400
11401
isl::map
map::lex_lt_at
(
isl::multi_pw_aff
mpa)
const
11402
{
11403
auto
res
=
isl_map_lex_lt_at_multi_pw_aff
(
copy
(), mpa.
release
());
11404
return
manage
(
res
);
11405
}
11406
11407
isl::map
map::lexmax
()
const
11408
{
11409
auto
res
=
isl_map_lexmax
(
copy
());
11410
return
manage
(
res
);
11411
}
11412
11413
isl::pw_multi_aff
map::lexmax_pw_multi_aff
()
const
11414
{
11415
auto
res
=
isl_map_lexmax_pw_multi_aff
(
copy
());
11416
return
manage
(
res
);
11417
}
11418
11419
isl::map
map::lexmin
()
const
11420
{
11421
auto
res
=
isl_map_lexmin
(
copy
());
11422
return
manage
(
res
);
11423
}
11424
11425
isl::pw_multi_aff
map::lexmin_pw_multi_aff
()
const
11426
{
11427
auto
res
=
isl_map_lexmin_pw_multi_aff
(
copy
());
11428
return
manage
(
res
);
11429
}
11430
11431
isl::map
map::lower_bound
(
isl::multi_pw_aff
lower)
const
11432
{
11433
auto
res
=
isl_map_lower_bound_multi_pw_aff
(
copy
(), lower.
release
());
11434
return
manage
(
res
);
11435
}
11436
11437
isl::map
map::lower_bound_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
11438
{
11439
auto
res
=
isl_map_lower_bound_si
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, value);
11440
return
manage
(
res
);
11441
}
11442
11443
isl::map_list
map::map_list
()
const
11444
{
11445
return
isl::union_map
(*this).
map_list
();
11446
}
11447
11448
isl::multi_pw_aff
map::max_multi_pw_aff
()
const
11449
{
11450
auto
res
=
isl_map_max_multi_pw_aff
(
copy
());
11451
return
manage
(
res
);
11452
}
11453
11454
isl::multi_pw_aff
map::min_multi_pw_aff
()
const
11455
{
11456
auto
res
=
isl_map_min_multi_pw_aff
(
copy
());
11457
return
manage
(
res
);
11458
}
11459
11460
isl::map
map::move_dims
(
isl::dim
dst_type,
unsigned
int
dst_pos,
isl::dim
src_type,
unsigned
int
src_pos,
unsigned
int
n
)
const
11461
{
11462
auto
res
=
isl_map_move_dims
(
copy
(),
static_cast<
enum
isl_dim_type
>
(dst_type), dst_pos,
static_cast<
enum
isl_dim_type
>
(src_type), src_pos,
n
);
11463
return
manage
(
res
);
11464
}
11465
11466
class
size
map::n_basic_map
()
const
11467
{
11468
auto
res
=
isl_map_n_basic_map
(
get
());
11469
return
manage
(
res
);
11470
}
11471
11472
isl::map
map::order_lt
(
isl::dim
type1,
int
pos1,
isl::dim
type2,
int
pos2)
const
11473
{
11474
auto
res
=
isl_map_order_lt
(
copy
(),
static_cast<
enum
isl_dim_type
>
(type1), pos1,
static_cast<
enum
isl_dim_type
>
(type2), pos2);
11475
return
manage
(
res
);
11476
}
11477
11478
isl::set
map::params
()
const
11479
{
11480
return
isl::union_map
(*this).
params
();
11481
}
11482
11483
isl::basic_map
map::polyhedral_hull
()
const
11484
{
11485
auto
res
=
isl_map_polyhedral_hull
(
copy
());
11486
return
manage
(
res
);
11487
}
11488
11489
isl::map
map::preimage_domain
(
isl::multi_aff
ma
)
const
11490
{
11491
auto
res
=
isl_map_preimage_domain_multi_aff
(
copy
(),
ma
.release());
11492
return
manage
(
res
);
11493
}
11494
11495
isl::map
map::preimage_domain
(
isl::multi_pw_aff
mpa)
const
11496
{
11497
auto
res
=
isl_map_preimage_domain_multi_pw_aff
(
copy
(), mpa.
release
());
11498
return
manage
(
res
);
11499
}
11500
11501
isl::map
map::preimage_domain
(
isl::pw_multi_aff
pma
)
const
11502
{
11503
auto
res
=
isl_map_preimage_domain_pw_multi_aff
(
copy
(),
pma
.release());
11504
return
manage
(
res
);
11505
}
11506
11507
isl::union_map
map::preimage_domain
(
const
isl::union_pw_multi_aff
&upma)
const
11508
{
11509
return
isl::union_map
(*this).
preimage_domain
(upma);
11510
}
11511
11512
isl::map
map::preimage_range
(
isl::multi_aff
ma
)
const
11513
{
11514
auto
res
=
isl_map_preimage_range_multi_aff
(
copy
(),
ma
.release());
11515
return
manage
(
res
);
11516
}
11517
11518
isl::map
map::preimage_range
(
isl::pw_multi_aff
pma
)
const
11519
{
11520
auto
res
=
isl_map_preimage_range_pw_multi_aff
(
copy
(),
pma
.release());
11521
return
manage
(
res
);
11522
}
11523
11524
isl::union_map
map::preimage_range
(
const
isl::union_pw_multi_aff
&upma)
const
11525
{
11526
return
isl::union_map
(*this).
preimage_range
(upma);
11527
}
11528
11529
isl::map
map::product
(
isl::map
map2
)
const
11530
{
11531
auto
res
=
isl_map_product
(
copy
(),
map2
.release());
11532
return
manage
(
res
);
11533
}
11534
11535
isl::union_map
map::product
(
const
isl::union_map
&umap2)
const
11536
{
11537
return
isl::union_map
(*this).
product
(umap2);
11538
}
11539
11540
isl::map
map::product
(
const
isl::basic_map
&
map2
)
const
11541
{
11542
return
this->
product
(
isl::map
(
map2
));
11543
}
11544
11545
isl::map
map::project_out
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
11546
{
11547
auto
res
=
isl_map_project_out
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
), first,
n
);
11548
return
manage
(
res
);
11549
}
11550
11551
isl::map
map::project_out_all_params
()
const
11552
{
11553
auto
res
=
isl_map_project_out_all_params
(
copy
());
11554
return
manage
(
res
);
11555
}
11556
11557
isl::set
map::range
()
const
11558
{
11559
auto
res
=
isl_map_range
(
copy
());
11560
return
manage
(
res
);
11561
}
11562
11563
isl::map
map::range_factor_domain
()
const
11564
{
11565
auto
res
=
isl_map_range_factor_domain
(
copy
());
11566
return
manage
(
res
);
11567
}
11568
11569
isl::map
map::range_factor_range
()
const
11570
{
11571
auto
res
=
isl_map_range_factor_range
(
copy
());
11572
return
manage
(
res
);
11573
}
11574
11575
isl::fixed_box
map::range_lattice_tile
()
const
11576
{
11577
auto
res
=
isl_map_get_range_lattice_tile
(
get
());
11578
return
manage
(
res
);
11579
}
11580
11581
isl::fixed_box
map::get_range_lattice_tile
()
const
11582
{
11583
return
range_lattice_tile
();
11584
}
11585
11586
isl::map
map::range_map
()
const
11587
{
11588
auto
res
=
isl_map_range_map
(
copy
());
11589
return
manage
(
res
);
11590
}
11591
11592
isl::map
map::range_product
(
isl::map
map2
)
const
11593
{
11594
auto
res
=
isl_map_range_product
(
copy
(),
map2
.release());
11595
return
manage
(
res
);
11596
}
11597
11598
isl::union_map
map::range_product
(
const
isl::union_map
&umap2)
const
11599
{
11600
return
isl::union_map
(*this).
range_product
(umap2);
11601
}
11602
11603
isl::map
map::range_product
(
const
isl::basic_map
&
map2
)
const
11604
{
11605
return
this->
range_product
(
isl::map
(
map2
));
11606
}
11607
11608
isl::map
map::range_reverse
()
const
11609
{
11610
auto
res
=
isl_map_range_reverse
(
copy
());
11611
return
manage
(
res
);
11612
}
11613
11614
isl::fixed_box
map::range_simple_fixed_box_hull
()
const
11615
{
11616
auto
res
=
isl_map_get_range_simple_fixed_box_hull
(
get
());
11617
return
manage
(
res
);
11618
}
11619
11620
isl::fixed_box
map::get_range_simple_fixed_box_hull
()
const
11621
{
11622
return
range_simple_fixed_box_hull
();
11623
}
11624
11625
class
size
map::range_tuple_dim
()
const
11626
{
11627
auto
res
=
isl_map_range_tuple_dim
(
get
());
11628
return
manage
(
res
);
11629
}
11630
11631
isl::id
map::range_tuple_id
()
const
11632
{
11633
auto
res
=
isl_map_get_range_tuple_id
(
get
());
11634
return
manage
(
res
);
11635
}
11636
11637
isl::id
map::get_range_tuple_id
()
const
11638
{
11639
return
range_tuple_id
();
11640
}
11641
11642
isl::map
map::reverse
()
const
11643
{
11644
auto
res
=
isl_map_reverse
(
copy
());
11645
return
manage
(
res
);
11646
}
11647
11648
isl::basic_map
map::sample
()
const
11649
{
11650
auto
res
=
isl_map_sample
(
copy
());
11651
return
manage
(
res
);
11652
}
11653
11654
isl::map
map::set_domain_tuple
(
isl::id
id
)
const
11655
{
11656
auto
res
=
isl_map_set_domain_tuple_id
(
copy
(),
id
.
release
());
11657
return
manage
(
res
);
11658
}
11659
11660
isl::map
map::set_domain_tuple
(
const
std::string &
id
)
const
11661
{
11662
return
this->
set_domain_tuple
(
isl::id
(
ctx
(),
id
));
11663
}
11664
11665
isl::map
map::set_range_tuple
(
isl::id
id
)
const
11666
{
11667
auto
res
=
isl_map_set_range_tuple_id
(
copy
(),
id
.
release
());
11668
return
manage
(
res
);
11669
}
11670
11671
isl::map
map::set_range_tuple
(
const
std::string &
id
)
const
11672
{
11673
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
11674
}
11675
11676
isl::map
map::set_tuple_id
(
isl::dim
type
,
isl::id
id
)
const
11677
{
11678
auto
res
=
isl_map_set_tuple_id
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
id
.
release
());
11679
return
manage
(
res
);
11680
}
11681
11682
isl::map
map::set_tuple_id
(
isl::dim
type
,
const
std::string &
id
)
const
11683
{
11684
return
this->
set_tuple_id
(type,
isl::id
(
ctx
(),
id
));
11685
}
11686
11687
isl::space
map::space
()
const
11688
{
11689
auto
res
=
isl_map_get_space
(
get
());
11690
return
manage
(
res
);
11691
}
11692
11693
isl::space
map::get_space
()
const
11694
{
11695
return
space
();
11696
}
11697
11698
isl::map
map::subtract
(
isl::map
map2
)
const
11699
{
11700
auto
res
=
isl_map_subtract
(
copy
(),
map2
.release());
11701
return
manage
(
res
);
11702
}
11703
11704
isl::union_map
map::subtract
(
const
isl::union_map
&umap2)
const
11705
{
11706
return
isl::union_map
(*this).
subtract
(umap2);
11707
}
11708
11709
isl::map
map::subtract
(
const
isl::basic_map
&
map2
)
const
11710
{
11711
return
this->
subtract
(
isl::map
(
map2
));
11712
}
11713
11714
isl::union_map
map::subtract_domain
(
const
isl::union_set
&dom)
const
11715
{
11716
return
isl::union_map
(*this).
subtract_domain
(dom);
11717
}
11718
11719
isl::union_map
map::subtract_range
(
const
isl::union_set
&dom)
const
11720
{
11721
return
isl::union_map
(*this).
subtract_range
(dom);
11722
}
11723
11724
isl::map
map::sum
(
isl::map
map2
)
const
11725
{
11726
auto
res
=
isl_map_sum
(
copy
(),
map2
.release());
11727
return
manage
(
res
);
11728
}
11729
11730
isl::map_list
map::to_list
()
const
11731
{
11732
auto
res
= isl_map_to_list(
copy
());
11733
return
manage
(
res
);
11734
}
11735
11736
isl::union_map
map::to_union_map
()
const
11737
{
11738
auto
res
=
isl_map_to_union_map
(
copy
());
11739
return
manage
(
res
);
11740
}
11741
11742
isl::id
map::tuple_id
(
isl::dim
type
)
const
11743
{
11744
auto
res
=
isl_map_get_tuple_id
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
11745
return
manage
(
res
);
11746
}
11747
11748
isl::id
map::get_tuple_id
(
isl::dim
type
)
const
11749
{
11750
return
tuple_id
(
type
);
11751
}
11752
11753
isl::map
map::uncurry
()
const
11754
{
11755
auto
res
=
isl_map_uncurry
(
copy
());
11756
return
manage
(
res
);
11757
}
11758
11759
isl::map
map::unite
(
isl::map
map2
)
const
11760
{
11761
auto
res
=
isl_map_union
(
copy
(),
map2
.release());
11762
return
manage
(
res
);
11763
}
11764
11765
isl::union_map
map::unite
(
const
isl::union_map
&umap2)
const
11766
{
11767
return
isl::union_map
(*this).
unite
(umap2);
11768
}
11769
11770
isl::map
map::unite
(
const
isl::basic_map
&
map2
)
const
11771
{
11772
return
this->
unite
(
isl::map
(
map2
));
11773
}
11774
11775
isl::map
map::universe
(
isl::space
space
)
11776
{
11777
auto
res
=
isl_map_universe
(
space
.release());
11778
return
manage
(
res
);
11779
}
11780
11781
isl::basic_map
map::unshifted_simple_hull
()
const
11782
{
11783
auto
res
=
isl_map_unshifted_simple_hull
(
copy
());
11784
return
manage
(
res
);
11785
}
11786
11787
isl::map
map::upper_bound
(
isl::multi_pw_aff
upper)
const
11788
{
11789
auto
res
=
isl_map_upper_bound_multi_pw_aff
(
copy
(), upper.
release
());
11790
return
manage
(
res
);
11791
}
11792
11793
isl::map
map::upper_bound_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
11794
{
11795
auto
res
=
isl_map_upper_bound_si
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
, value);
11796
return
manage
(
res
);
11797
}
11798
11799
isl::set
map::wrap
()
const
11800
{
11801
auto
res
=
isl_map_wrap
(
copy
());
11802
return
manage
(
res
);
11803
}
11804
11805
isl::map
map::zip
()
const
11806
{
11807
auto
res
=
isl_map_zip
(
copy
());
11808
return
manage
(
res
);
11809
}
11810
11811
inline
std::ostream &
operator<<
(std::ostream &os,
const
map
&
obj
)
11812
{
11813
char
*
str
=
isl_map_to_str
(
obj
.get());
11814
if
(!
str
) {
11815
os.setstate(std::ios_base::badbit);
11816
return
os;
11817
}
11818
os <<
str
;
11819
free(
str
);
11820
return
os;
11821
}
11822
11823
// implementations for isl::map_list
11824
map_list
manage
(
__isl_take
isl_map_list *
ptr
) {
11825
return
map_list
(
ptr
);
11826
}
11827
map_list
manage_copy
(
__isl_keep
isl_map_list *
ptr
) {
11828
ptr
= isl_map_list_copy(
ptr
);
11829
return
map_list
(
ptr
);
11830
}
11831
11832
map_list::map_list
()
11833
:
ptr
(nullptr) {}
11834
11835
map_list::map_list
(
const
map_list
&
obj
)
11836
:
ptr
(nullptr)
11837
{
11838
ptr
=
obj
.copy();
11839
}
11840
11841
map_list::map_list
(
__isl_take
isl_map_list *
ptr
)
11842
:
ptr
(
ptr
) {}
11843
11844
map_list::map_list
(
isl::ctx
ctx
,
int
n
)
11845
{
11846
auto
res
= isl_map_list_alloc(
ctx
.release(),
n
);
11847
ptr
=
res
;
11848
}
11849
11850
map_list::map_list
(
isl::map
el)
11851
{
11852
auto
res
= isl_map_list_from_map(el.
release
());
11853
ptr
=
res
;
11854
}
11855
11856
map_list::map_list
(
isl::ctx
ctx
,
const
std::string &
str
)
11857
{
11858
auto
res
= isl_map_list_read_from_str(
ctx
.release(),
str
.c_str());
11859
ptr
=
res
;
11860
}
11861
11862
map_list
&
map_list::operator=
(
map_list
obj
) {
11863
std::swap(this->ptr,
obj
.ptr);
11864
return
*
this
;
11865
}
11866
11867
map_list::~map_list
() {
11868
if
(
ptr
)
11869
isl_map_list_free(
ptr
);
11870
}
11871
11872
__isl_give
isl_map_list *
map_list::copy
() const & {
11873
return
isl_map_list_copy(
ptr
);
11874
}
11875
11876
__isl_keep
isl_map_list *
map_list::get
()
const
{
11877
return
ptr
;
11878
}
11879
11880
__isl_give
isl_map_list *
map_list::release
() {
11881
isl_map_list *tmp =
ptr
;
11882
ptr
=
nullptr
;
11883
return
tmp;
11884
}
11885
11886
bool
map_list::is_null
()
const
{
11887
return
ptr
==
nullptr
;
11888
}
11889
11890
isl::ctx
map_list::ctx
()
const
{
11891
return
isl::ctx
(isl_map_list_get_ctx(
ptr
));
11892
}
11893
11894
isl::map_list
map_list::add
(
isl::map
el)
const
11895
{
11896
auto
res
= isl_map_list_add(
copy
(), el.
release
());
11897
return
manage
(
res
);
11898
}
11899
11900
isl::map
map_list::at
(
int
index)
const
11901
{
11902
auto
res
= isl_map_list_get_at(
get
(), index);
11903
return
manage
(
res
);
11904
}
11905
11906
isl::map
map_list::get_at
(
int
index)
const
11907
{
11908
return
at
(index);
11909
}
11910
11911
isl::map_list
map_list::clear
()
const
11912
{
11913
auto
res
= isl_map_list_clear(
copy
());
11914
return
manage
(
res
);
11915
}
11916
11917
isl::map_list
map_list::concat
(
isl::map_list
list2)
const
11918
{
11919
auto
res
= isl_map_list_concat(
copy
(), list2.
release
());
11920
return
manage
(
res
);
11921
}
11922
11923
isl::map_list
map_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
11924
{
11925
auto
res
= isl_map_list_drop(
copy
(), first,
n
);
11926
return
manage
(
res
);
11927
}
11928
11929
stat
map_list::foreach
(
const
std::function<
stat
(
isl::map
)> &
fn
)
const
11930
{
11931
struct
fn_data {
11932
std::function<
stat
(
isl::map
)> func;
11933
} fn_data = {
fn
};
11934
auto
fn_lambda = [](
isl_map
*arg_0,
void
*arg_1) ->
isl_stat
{
11935
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
11936
auto
ret = (data->func)(
manage
(arg_0));
11937
return
ret.release();
11938
};
11939
auto
res
= isl_map_list_foreach(
get
(), fn_lambda, &fn_data);
11940
return
manage
(
res
);
11941
}
11942
11943
isl::map_list
map_list::insert
(
unsigned
int
pos
,
isl::map
el)
const
11944
{
11945
auto
res
= isl_map_list_insert(
copy
(),
pos
, el.
release
());
11946
return
manage
(
res
);
11947
}
11948
11949
class
size
map_list::size
()
const
11950
{
11951
auto
res
= isl_map_list_size(
get
());
11952
return
manage
(
res
);
11953
}
11954
11955
inline
std::ostream &
operator<<
(std::ostream &os,
const
map_list
&
obj
)
11956
{
11957
char
*
str
= isl_map_list_to_str(
obj
.get());
11958
if
(!
str
) {
11959
os.setstate(std::ios_base::badbit);
11960
return
os;
11961
}
11962
os <<
str
;
11963
free(
str
);
11964
return
os;
11965
}
11966
11967
// implementations for isl::multi_aff
11968
multi_aff
manage
(
__isl_take
isl_multi_aff
*
ptr
) {
11969
return
multi_aff
(
ptr
);
11970
}
11971
multi_aff
manage_copy
(
__isl_keep
isl_multi_aff
*
ptr
) {
11972
ptr
= isl_multi_aff_copy(
ptr
);
11973
return
multi_aff
(
ptr
);
11974
}
11975
11976
multi_aff::multi_aff
()
11977
:
ptr
(nullptr) {}
11978
11979
multi_aff::multi_aff
(
const
multi_aff
&
obj
)
11980
:
ptr
(nullptr)
11981
{
11982
ptr
=
obj
.copy();
11983
}
11984
11985
multi_aff::multi_aff
(
__isl_take
isl_multi_aff
*
ptr
)
11986
:
ptr
(
ptr
) {}
11987
11988
multi_aff::multi_aff
(
isl::aff
aff
)
11989
{
11990
auto
res
=
isl_multi_aff_from_aff
(
aff
.
release
());
11991
ptr
=
res
;
11992
}
11993
11994
multi_aff::multi_aff
(
isl::space
space
,
isl::aff_list
list
)
11995
{
11996
auto
res
= isl_multi_aff_from_aff_list(
space
.release(),
list
.release());
11997
ptr
=
res
;
11998
}
11999
12000
multi_aff::multi_aff
(
isl::ctx
ctx
,
const
std::string &
str
)
12001
{
12002
auto
res
=
isl_multi_aff_read_from_str
(
ctx
.release(),
str
.c_str());
12003
ptr
=
res
;
12004
}
12005
12006
multi_aff
&
multi_aff::operator=
(
multi_aff
obj
) {
12007
std::swap(this->ptr,
obj
.ptr);
12008
return
*
this
;
12009
}
12010
12011
multi_aff::~multi_aff
() {
12012
if
(
ptr
)
12013
isl_multi_aff_free(
ptr
);
12014
}
12015
12016
__isl_give
isl_multi_aff
*
multi_aff::copy
() const & {
12017
return
isl_multi_aff_copy(
ptr
);
12018
}
12019
12020
__isl_keep
isl_multi_aff
*
multi_aff::get
()
const
{
12021
return
ptr
;
12022
}
12023
12024
__isl_give
isl_multi_aff
*
multi_aff::release
() {
12025
isl_multi_aff
*tmp =
ptr
;
12026
ptr
=
nullptr
;
12027
return
tmp;
12028
}
12029
12030
bool
multi_aff::is_null
()
const
{
12031
return
ptr
==
nullptr
;
12032
}
12033
12034
isl::ctx
multi_aff::ctx
()
const
{
12035
return
isl::ctx
(isl_multi_aff_get_ctx(
ptr
));
12036
}
12037
12038
isl::multi_aff
multi_aff::add
(
isl::multi_aff
multi2)
const
12039
{
12040
auto
res
= isl_multi_aff_add(
copy
(), multi2.
release
());
12041
return
manage
(
res
);
12042
}
12043
12044
isl::multi_pw_aff
multi_aff::add
(
const
isl::multi_pw_aff
&multi2)
const
12045
{
12046
return
isl::pw_multi_aff
(*this).
add
(multi2);
12047
}
12048
12049
isl::multi_union_pw_aff
multi_aff::add
(
const
isl::multi_union_pw_aff
&multi2)
const
12050
{
12051
return
isl::pw_multi_aff
(*this).
add
(multi2);
12052
}
12053
12054
isl::pw_multi_aff
multi_aff::add
(
const
isl::pw_multi_aff
&pma2)
const
12055
{
12056
return
isl::pw_multi_aff
(*this).
add
(pma2);
12057
}
12058
12059
isl::union_pw_multi_aff
multi_aff::add
(
const
isl::union_pw_multi_aff
&upma2)
const
12060
{
12061
return
isl::pw_multi_aff
(*this).
add
(upma2);
12062
}
12063
12064
isl::multi_aff
multi_aff::add
(
const
isl::aff
&multi2)
const
12065
{
12066
return
this->
add
(
isl::multi_aff
(multi2));
12067
}
12068
12069
isl::multi_aff
multi_aff::add_constant
(
isl::multi_val
mv)
const
12070
{
12071
auto
res
= isl_multi_aff_add_constant_multi_val(
copy
(), mv.
release
());
12072
return
manage
(
res
);
12073
}
12074
12075
isl::multi_aff
multi_aff::add_constant
(
isl::val
v)
const
12076
{
12077
auto
res
= isl_multi_aff_add_constant_val(
copy
(), v.
release
());
12078
return
manage
(
res
);
12079
}
12080
12081
isl::multi_aff
multi_aff::add_constant
(
long
v)
const
12082
{
12083
return
this->
add_constant
(
isl::val
(
ctx
(), v));
12084
}
12085
12086
isl::union_pw_multi_aff
multi_aff::add_pw_multi_aff
(
const
isl::pw_multi_aff
&
pma
)
const
12087
{
12088
return
isl::pw_multi_aff
(*this).
add_pw_multi_aff
(
pma
);
12089
}
12090
12091
isl::union_pw_multi_aff
multi_aff::apply
(
const
isl::union_pw_multi_aff
&upma2)
const
12092
{
12093
return
isl::pw_multi_aff
(*this).
apply
(upma2);
12094
}
12095
12096
isl::map
multi_aff::as_map
()
const
12097
{
12098
auto
res
=
isl_multi_aff_as_map
(
copy
());
12099
return
manage
(
res
);
12100
}
12101
12102
isl::multi_aff
multi_aff::as_multi_aff
()
const
12103
{
12104
return
isl::pw_multi_aff
(*this).
as_multi_aff
();
12105
}
12106
12107
isl::multi_union_pw_aff
multi_aff::as_multi_union_pw_aff
()
const
12108
{
12109
return
isl::pw_multi_aff
(*this).
as_multi_union_pw_aff
();
12110
}
12111
12112
isl::pw_multi_aff
multi_aff::as_pw_multi_aff
()
const
12113
{
12114
return
isl::pw_multi_aff
(*this).
as_pw_multi_aff
();
12115
}
12116
12117
isl::set
multi_aff::as_set
()
const
12118
{
12119
auto
res
=
isl_multi_aff_as_set
(
copy
());
12120
return
manage
(
res
);
12121
}
12122
12123
isl::union_map
multi_aff::as_union_map
()
const
12124
{
12125
return
isl::pw_multi_aff
(*this).
as_union_map
();
12126
}
12127
12128
isl::aff
multi_aff::at
(
int
pos
)
const
12129
{
12130
auto
res
= isl_multi_aff_get_at(
get
(),
pos
);
12131
return
manage
(
res
);
12132
}
12133
12134
isl::aff
multi_aff::get_at
(
int
pos
)
const
12135
{
12136
return
at
(
pos
);
12137
}
12138
12139
isl::basic_set
multi_aff::bind
(
isl::multi_id
tuple
)
const
12140
{
12141
auto
res
=
isl_multi_aff_bind
(
copy
(),
tuple
.release());
12142
return
manage
(
res
);
12143
}
12144
12145
isl::multi_aff
multi_aff::bind_domain
(
isl::multi_id
tuple
)
const
12146
{
12147
auto
res
= isl_multi_aff_bind_domain(
copy
(),
tuple
.release());
12148
return
manage
(
res
);
12149
}
12150
12151
isl::multi_aff
multi_aff::bind_domain_wrapped_domain
(
isl::multi_id
tuple
)
const
12152
{
12153
auto
res
= isl_multi_aff_bind_domain_wrapped_domain(
copy
(),
tuple
.release());
12154
return
manage
(
res
);
12155
}
12156
12157
isl::pw_multi_aff
multi_aff::coalesce
()
const
12158
{
12159
return
isl::pw_multi_aff
(*this).
coalesce
();
12160
}
12161
12162
isl::multi_val
multi_aff::constant_multi_val
()
const
12163
{
12164
auto
res
=
isl_multi_aff_get_constant_multi_val
(
get
());
12165
return
manage
(
res
);
12166
}
12167
12168
isl::multi_val
multi_aff::get_constant_multi_val
()
const
12169
{
12170
return
constant_multi_val
();
12171
}
12172
12173
class
size
multi_aff::dim
(
isl::dim
type
)
const
12174
{
12175
auto
res
= isl_multi_aff_dim(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
12176
return
manage
(
res
);
12177
}
12178
12179
isl::set
multi_aff::domain
()
const
12180
{
12181
return
isl::pw_multi_aff
(*this).
domain
();
12182
}
12183
12184
isl::multi_aff
multi_aff::domain_map
(
isl::space
space
)
12185
{
12186
auto
res
=
isl_multi_aff_domain_map
(
space
.release());
12187
return
manage
(
res
);
12188
}
12189
12190
isl::pw_multi_aff
multi_aff::drop_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
12191
{
12192
return
isl::pw_multi_aff
(*this).
drop_dims
(
type
, first,
n
);
12193
}
12194
12195
isl::pw_multi_aff
multi_aff::extract_pw_multi_aff
(
const
isl::space
&
space
)
const
12196
{
12197
return
isl::pw_multi_aff
(*this).
extract_pw_multi_aff
(
space
);
12198
}
12199
12200
isl::multi_aff
multi_aff::flat_range_product
(
isl::multi_aff
multi2)
const
12201
{
12202
auto
res
= isl_multi_aff_flat_range_product(
copy
(), multi2.
release
());
12203
return
manage
(
res
);
12204
}
12205
12206
isl::multi_pw_aff
multi_aff::flat_range_product
(
const
isl::multi_pw_aff
&multi2)
const
12207
{
12208
return
isl::pw_multi_aff
(*this).
flat_range_product
(multi2);
12209
}
12210
12211
isl::multi_union_pw_aff
multi_aff::flat_range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
12212
{
12213
return
isl::pw_multi_aff
(*this).
flat_range_product
(multi2);
12214
}
12215
12216
isl::pw_multi_aff
multi_aff::flat_range_product
(
const
isl::pw_multi_aff
&pma2)
const
12217
{
12218
return
isl::pw_multi_aff
(*this).
flat_range_product
(pma2);
12219
}
12220
12221
isl::union_pw_multi_aff
multi_aff::flat_range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
12222
{
12223
return
isl::pw_multi_aff
(*this).
flat_range_product
(upma2);
12224
}
12225
12226
isl::multi_aff
multi_aff::flat_range_product
(
const
isl::aff
&multi2)
const
12227
{
12228
return
this->
flat_range_product
(
isl::multi_aff
(multi2));
12229
}
12230
12231
isl::multi_aff
multi_aff::floor
()
const
12232
{
12233
auto
res
=
isl_multi_aff_floor
(
copy
());
12234
return
manage
(
res
);
12235
}
12236
12237
stat
multi_aff::foreach_piece
(
const
std::function<
stat
(
isl::set
,
isl::multi_aff
)> &
fn
)
const
12238
{
12239
return
isl::pw_multi_aff
(*this).
foreach_piece
(
fn
);
12240
}
12241
12242
isl::multi_aff
multi_aff::gist
(
isl::set
context
)
const
12243
{
12244
auto
res
=
isl_multi_aff_gist
(
copy
(),
context
.release());
12245
return
manage
(
res
);
12246
}
12247
12248
isl::union_pw_multi_aff
multi_aff::gist
(
const
isl::union_set
&
context
)
const
12249
{
12250
return
isl::pw_multi_aff
(*this).
gist
(
context
);
12251
}
12252
12253
isl::multi_aff
multi_aff::gist
(
const
isl::basic_set
&
context
)
const
12254
{
12255
return
this->
gist
(
isl::set
(
context
));
12256
}
12257
12258
isl::multi_aff
multi_aff::gist
(
const
isl::point
&
context
)
const
12259
{
12260
return
this->
gist
(
isl::set
(
context
));
12261
}
12262
12263
boolean
multi_aff::has_range_tuple_id
()
const
12264
{
12265
auto
res
= isl_multi_aff_has_range_tuple_id(
get
());
12266
return
manage
(
res
);
12267
}
12268
12269
isl::multi_aff
multi_aff::identity
(
isl::space
space
)
12270
{
12271
auto
res
= isl_multi_aff_identity(
space
.release());
12272
return
manage
(
res
);
12273
}
12274
12275
isl::multi_aff
multi_aff::identity
()
const
12276
{
12277
auto
res
= isl_multi_aff_identity_multi_aff(
copy
());
12278
return
manage
(
res
);
12279
}
12280
12281
isl::multi_aff
multi_aff::identity_on_domain
(
isl::space
space
)
12282
{
12283
auto
res
= isl_multi_aff_identity_on_domain_space(
space
.release());
12284
return
manage
(
res
);
12285
}
12286
12287
isl::multi_aff
multi_aff::insert_domain
(
isl::space
domain
)
const
12288
{
12289
auto
res
= isl_multi_aff_insert_domain(
copy
(),
domain
.release());
12290
return
manage
(
res
);
12291
}
12292
12293
isl::pw_multi_aff
multi_aff::intersect_domain
(
const
isl::set
&
set
)
const
12294
{
12295
return
isl::pw_multi_aff
(*this).
intersect_domain
(
set
);
12296
}
12297
12298
isl::union_pw_multi_aff
multi_aff::intersect_domain
(
const
isl::space
&
space
)
const
12299
{
12300
return
isl::pw_multi_aff
(*this).
intersect_domain
(
space
);
12301
}
12302
12303
isl::union_pw_multi_aff
multi_aff::intersect_domain
(
const
isl::union_set
&uset)
const
12304
{
12305
return
isl::pw_multi_aff
(*this).
intersect_domain
(uset);
12306
}
12307
12308
isl::union_pw_multi_aff
multi_aff::intersect_domain_wrapped_domain
(
const
isl::union_set
&uset)
const
12309
{
12310
return
isl::pw_multi_aff
(*this).
intersect_domain_wrapped_domain
(uset);
12311
}
12312
12313
isl::union_pw_multi_aff
multi_aff::intersect_domain_wrapped_range
(
const
isl::union_set
&uset)
const
12314
{
12315
return
isl::pw_multi_aff
(*this).
intersect_domain_wrapped_range
(uset);
12316
}
12317
12318
isl::pw_multi_aff
multi_aff::intersect_params
(
const
isl::set
&
set
)
const
12319
{
12320
return
isl::pw_multi_aff
(*this).
intersect_params
(
set
);
12321
}
12322
12323
boolean
multi_aff::involves_locals
()
const
12324
{
12325
auto
res
= isl_multi_aff_involves_locals(
get
());
12326
return
manage
(
res
);
12327
}
12328
12329
boolean
multi_aff::involves_nan
()
const
12330
{
12331
auto
res
= isl_multi_aff_involves_nan(
get
());
12332
return
manage
(
res
);
12333
}
12334
12335
boolean
multi_aff::involves_param
(
const
isl::id
&
id
)
const
12336
{
12337
return
isl::pw_multi_aff
(*this).
involves_param
(
id
);
12338
}
12339
12340
boolean
multi_aff::involves_param
(
const
std::string &
id
)
const
12341
{
12342
return
this->
involves_param
(
isl::id
(
ctx
(),
id
));
12343
}
12344
12345
boolean
multi_aff::involves_param
(
const
isl::id_list
&
list
)
const
12346
{
12347
return
isl::pw_multi_aff
(*this).
involves_param
(
list
);
12348
}
12349
12350
boolean
multi_aff::isa_multi_aff
()
const
12351
{
12352
return
isl::pw_multi_aff
(*this).
isa_multi_aff
();
12353
}
12354
12355
boolean
multi_aff::isa_pw_multi_aff
()
const
12356
{
12357
return
isl::pw_multi_aff
(*this).
isa_pw_multi_aff
();
12358
}
12359
12360
isl::aff_list
multi_aff::list
()
const
12361
{
12362
auto
res
= isl_multi_aff_get_list(
get
());
12363
return
manage
(
res
);
12364
}
12365
12366
isl::aff_list
multi_aff::get_list
()
const
12367
{
12368
return
list
();
12369
}
12370
12371
isl::multi_pw_aff
multi_aff::max
(
const
isl::multi_pw_aff
&multi2)
const
12372
{
12373
return
isl::pw_multi_aff
(*this).
max
(multi2);
12374
}
12375
12376
isl::multi_val
multi_aff::max_multi_val
()
const
12377
{
12378
return
isl::pw_multi_aff
(*this).
max_multi_val
();
12379
}
12380
12381
isl::multi_pw_aff
multi_aff::min
(
const
isl::multi_pw_aff
&multi2)
const
12382
{
12383
return
isl::pw_multi_aff
(*this).
min
(multi2);
12384
}
12385
12386
isl::multi_val
multi_aff::min_multi_val
()
const
12387
{
12388
return
isl::pw_multi_aff
(*this).
min_multi_val
();
12389
}
12390
12391
isl::multi_aff
multi_aff::multi_val_on_domain
(
isl::space
space
,
isl::multi_val
mv)
12392
{
12393
auto
res
=
isl_multi_aff_multi_val_on_domain_space
(
space
.release(), mv.
release
());
12394
return
manage
(
res
);
12395
}
12396
12397
class
size
multi_aff::n_piece
()
const
12398
{
12399
return
isl::pw_multi_aff
(*this).
n_piece
();
12400
}
12401
12402
isl::multi_aff
multi_aff::neg
()
const
12403
{
12404
auto
res
= isl_multi_aff_neg(
copy
());
12405
return
manage
(
res
);
12406
}
12407
12408
boolean
multi_aff::plain_is_empty
()
const
12409
{
12410
return
isl::pw_multi_aff
(*this).
plain_is_empty
();
12411
}
12412
12413
boolean
multi_aff::plain_is_equal
(
const
isl::multi_aff
&multi2)
const
12414
{
12415
auto
res
= isl_multi_aff_plain_is_equal(
get
(), multi2.
get
());
12416
return
manage
(
res
);
12417
}
12418
12419
boolean
multi_aff::plain_is_equal
(
const
isl::multi_pw_aff
&multi2)
const
12420
{
12421
return
isl::pw_multi_aff
(*this).
plain_is_equal
(multi2);
12422
}
12423
12424
boolean
multi_aff::plain_is_equal
(
const
isl::multi_union_pw_aff
&multi2)
const
12425
{
12426
return
isl::pw_multi_aff
(*this).
plain_is_equal
(multi2);
12427
}
12428
12429
boolean
multi_aff::plain_is_equal
(
const
isl::aff
&multi2)
const
12430
{
12431
return
this->
plain_is_equal
(
isl::multi_aff
(multi2));
12432
}
12433
12434
isl::pw_multi_aff
multi_aff::preimage_domain_wrapped_domain
(
const
isl::pw_multi_aff
&pma2)
const
12435
{
12436
return
isl::pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(pma2);
12437
}
12438
12439
isl::union_pw_multi_aff
multi_aff::preimage_domain_wrapped_domain
(
const
isl::union_pw_multi_aff
&upma2)
const
12440
{
12441
return
isl::pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
12442
}
12443
12444
isl::multi_aff
multi_aff::product
(
isl::multi_aff
multi2)
const
12445
{
12446
auto
res
= isl_multi_aff_product(
copy
(), multi2.
release
());
12447
return
manage
(
res
);
12448
}
12449
12450
isl::multi_pw_aff
multi_aff::product
(
const
isl::multi_pw_aff
&multi2)
const
12451
{
12452
return
isl::pw_multi_aff
(*this).
product
(multi2);
12453
}
12454
12455
isl::pw_multi_aff
multi_aff::product
(
const
isl::pw_multi_aff
&pma2)
const
12456
{
12457
return
isl::pw_multi_aff
(*this).
product
(pma2);
12458
}
12459
12460
isl::multi_aff
multi_aff::product
(
const
isl::aff
&multi2)
const
12461
{
12462
return
this->
product
(
isl::multi_aff
(multi2));
12463
}
12464
12465
isl::multi_aff
multi_aff::pullback
(
isl::multi_aff
ma2)
const
12466
{
12467
auto
res
=
isl_multi_aff_pullback_multi_aff
(
copy
(), ma2.
release
());
12468
return
manage
(
res
);
12469
}
12470
12471
isl::multi_pw_aff
multi_aff::pullback
(
const
isl::multi_pw_aff
&mpa2)
const
12472
{
12473
return
isl::pw_multi_aff
(*this).
pullback
(mpa2);
12474
}
12475
12476
isl::pw_multi_aff
multi_aff::pullback
(
const
isl::pw_multi_aff
&pma2)
const
12477
{
12478
return
isl::pw_multi_aff
(*this).
pullback
(pma2);
12479
}
12480
12481
isl::union_pw_multi_aff
multi_aff::pullback
(
const
isl::union_pw_multi_aff
&upma2)
const
12482
{
12483
return
isl::pw_multi_aff
(*this).
pullback
(upma2);
12484
}
12485
12486
isl::multi_aff
multi_aff::pullback
(
const
isl::aff
&ma2)
const
12487
{
12488
return
this->
pullback
(
isl::multi_aff
(ma2));
12489
}
12490
12491
isl::pw_multi_aff_list
multi_aff::pw_multi_aff_list
()
const
12492
{
12493
return
isl::pw_multi_aff
(*this).
pw_multi_aff_list
();
12494
}
12495
12496
isl::pw_multi_aff
multi_aff::range_factor_domain
()
const
12497
{
12498
return
isl::pw_multi_aff
(*this).
range_factor_domain
();
12499
}
12500
12501
isl::pw_multi_aff
multi_aff::range_factor_range
()
const
12502
{
12503
return
isl::pw_multi_aff
(*this).
range_factor_range
();
12504
}
12505
12506
isl::multi_aff
multi_aff::range_map
(
isl::space
space
)
12507
{
12508
auto
res
=
isl_multi_aff_range_map
(
space
.release());
12509
return
manage
(
res
);
12510
}
12511
12512
isl::multi_aff
multi_aff::range_product
(
isl::multi_aff
multi2)
const
12513
{
12514
auto
res
= isl_multi_aff_range_product(
copy
(), multi2.
release
());
12515
return
manage
(
res
);
12516
}
12517
12518
isl::multi_pw_aff
multi_aff::range_product
(
const
isl::multi_pw_aff
&multi2)
const
12519
{
12520
return
isl::pw_multi_aff
(*this).
range_product
(multi2);
12521
}
12522
12523
isl::multi_union_pw_aff
multi_aff::range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
12524
{
12525
return
isl::pw_multi_aff
(*this).
range_product
(multi2);
12526
}
12527
12528
isl::pw_multi_aff
multi_aff::range_product
(
const
isl::pw_multi_aff
&pma2)
const
12529
{
12530
return
isl::pw_multi_aff
(*this).
range_product
(pma2);
12531
}
12532
12533
isl::union_pw_multi_aff
multi_aff::range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
12534
{
12535
return
isl::pw_multi_aff
(*this).
range_product
(upma2);
12536
}
12537
12538
isl::multi_aff
multi_aff::range_product
(
const
isl::aff
&multi2)
const
12539
{
12540
return
this->
range_product
(
isl::multi_aff
(multi2));
12541
}
12542
12543
isl::id
multi_aff::range_tuple_id
()
const
12544
{
12545
auto
res
= isl_multi_aff_get_range_tuple_id(
get
());
12546
return
manage
(
res
);
12547
}
12548
12549
isl::id
multi_aff::get_range_tuple_id
()
const
12550
{
12551
return
range_tuple_id
();
12552
}
12553
12554
isl::multi_aff
multi_aff::reset_range_tuple_id
()
const
12555
{
12556
auto
res
= isl_multi_aff_reset_range_tuple_id(
copy
());
12557
return
manage
(
res
);
12558
}
12559
12560
isl::multi_aff
multi_aff::reset_tuple_id
(
isl::dim
type
)
const
12561
{
12562
auto
res
= isl_multi_aff_reset_tuple_id(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
));
12563
return
manage
(
res
);
12564
}
12565
12566
isl::multi_aff
multi_aff::scale
(
isl::multi_val
mv)
const
12567
{
12568
auto
res
= isl_multi_aff_scale_multi_val(
copy
(), mv.
release
());
12569
return
manage
(
res
);
12570
}
12571
12572
isl::multi_aff
multi_aff::scale
(
isl::val
v)
const
12573
{
12574
auto
res
= isl_multi_aff_scale_val(
copy
(), v.
release
());
12575
return
manage
(
res
);
12576
}
12577
12578
isl::multi_aff
multi_aff::scale
(
long
v)
const
12579
{
12580
return
this->
scale
(
isl::val
(
ctx
(), v));
12581
}
12582
12583
isl::multi_aff
multi_aff::scale_down
(
isl::multi_val
mv)
const
12584
{
12585
auto
res
= isl_multi_aff_scale_down_multi_val(
copy
(), mv.
release
());
12586
return
manage
(
res
);
12587
}
12588
12589
isl::multi_aff
multi_aff::scale_down
(
isl::val
v)
const
12590
{
12591
auto
res
= isl_multi_aff_scale_down_val(
copy
(), v.
release
());
12592
return
manage
(
res
);
12593
}
12594
12595
isl::multi_aff
multi_aff::scale_down
(
long
v)
const
12596
{
12597
return
this->
scale_down
(
isl::val
(
ctx
(), v));
12598
}
12599
12600
isl::multi_aff
multi_aff::set_aff
(
int
pos
,
isl::aff
el)
const
12601
{
12602
auto
res
= isl_multi_aff_set_aff(
copy
(),
pos
, el.
release
());
12603
return
manage
(
res
);
12604
}
12605
12606
isl::multi_aff
multi_aff::set_at
(
int
pos
,
isl::aff
el)
const
12607
{
12608
auto
res
= isl_multi_aff_set_at(
copy
(),
pos
, el.
release
());
12609
return
manage
(
res
);
12610
}
12611
12612
isl::multi_pw_aff
multi_aff::set_at
(
int
pos
,
const
isl::pw_aff
&el)
const
12613
{
12614
return
isl::pw_multi_aff
(*this).
set_at
(
pos
, el);
12615
}
12616
12617
isl::multi_union_pw_aff
multi_aff::set_at
(
int
pos
,
const
isl::union_pw_aff
&el)
const
12618
{
12619
return
isl::pw_multi_aff
(*this).
set_at
(
pos
, el);
12620
}
12621
12622
isl::multi_pw_aff
multi_aff::set_pw_aff
(
int
pos
,
const
isl::pw_aff
&el)
const
12623
{
12624
return
isl::pw_multi_aff
(*this).
set_pw_aff
(
pos
, el);
12625
}
12626
12627
isl::pw_multi_aff
multi_aff::set_pw_aff
(
unsigned
int
pos
,
const
isl::pw_aff
&
pa
)
const
12628
{
12629
return
isl::pw_multi_aff
(*this).
set_pw_aff
(
pos
,
pa
);
12630
}
12631
12632
isl::multi_aff
multi_aff::set_range_tuple
(
isl::id
id
)
const
12633
{
12634
auto
res
= isl_multi_aff_set_range_tuple_id(
copy
(),
id
.
release
());
12635
return
manage
(
res
);
12636
}
12637
12638
isl::multi_aff
multi_aff::set_range_tuple
(
const
std::string &
id
)
const
12639
{
12640
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
12641
}
12642
12643
isl::multi_union_pw_aff
multi_aff::set_union_pw_aff
(
int
pos
,
const
isl::union_pw_aff
&el)
const
12644
{
12645
return
isl::pw_multi_aff
(*this).
set_union_pw_aff
(
pos
, el);
12646
}
12647
12648
class
size
multi_aff::size
()
const
12649
{
12650
auto
res
= isl_multi_aff_size(
get
());
12651
return
manage
(
res
);
12652
}
12653
12654
isl::space
multi_aff::space
()
const
12655
{
12656
auto
res
= isl_multi_aff_get_space(
get
());
12657
return
manage
(
res
);
12658
}
12659
12660
isl::space
multi_aff::get_space
()
const
12661
{
12662
return
space
();
12663
}
12664
12665
isl::multi_aff
multi_aff::sub
(
isl::multi_aff
multi2)
const
12666
{
12667
auto
res
= isl_multi_aff_sub(
copy
(), multi2.
release
());
12668
return
manage
(
res
);
12669
}
12670
12671
isl::multi_pw_aff
multi_aff::sub
(
const
isl::multi_pw_aff
&multi2)
const
12672
{
12673
return
isl::pw_multi_aff
(*this).
sub
(multi2);
12674
}
12675
12676
isl::multi_union_pw_aff
multi_aff::sub
(
const
isl::multi_union_pw_aff
&multi2)
const
12677
{
12678
return
isl::pw_multi_aff
(*this).
sub
(multi2);
12679
}
12680
12681
isl::pw_multi_aff
multi_aff::sub
(
const
isl::pw_multi_aff
&pma2)
const
12682
{
12683
return
isl::pw_multi_aff
(*this).
sub
(pma2);
12684
}
12685
12686
isl::union_pw_multi_aff
multi_aff::sub
(
const
isl::union_pw_multi_aff
&upma2)
const
12687
{
12688
return
isl::pw_multi_aff
(*this).
sub
(upma2);
12689
}
12690
12691
isl::multi_aff
multi_aff::sub
(
const
isl::aff
&multi2)
const
12692
{
12693
return
this->
sub
(
isl::multi_aff
(multi2));
12694
}
12695
12696
isl::pw_multi_aff
multi_aff::subtract_domain
(
const
isl::set
&
set
)
const
12697
{
12698
return
isl::pw_multi_aff
(*this).
subtract_domain
(
set
);
12699
}
12700
12701
isl::union_pw_multi_aff
multi_aff::subtract_domain
(
const
isl::space
&
space
)
const
12702
{
12703
return
isl::pw_multi_aff
(*this).
subtract_domain
(
space
);
12704
}
12705
12706
isl::union_pw_multi_aff
multi_aff::subtract_domain
(
const
isl::union_set
&uset)
const
12707
{
12708
return
isl::pw_multi_aff
(*this).
subtract_domain
(uset);
12709
}
12710
12711
isl::pw_multi_aff_list
multi_aff::to_list
()
const
12712
{
12713
return
isl::pw_multi_aff
(*this).
to_list
();
12714
}
12715
12716
isl::multi_pw_aff
multi_aff::to_multi_pw_aff
()
const
12717
{
12718
auto
res
=
isl_multi_aff_to_multi_pw_aff
(
copy
());
12719
return
manage
(
res
);
12720
}
12721
12722
isl::multi_union_pw_aff
multi_aff::to_multi_union_pw_aff
()
const
12723
{
12724
auto
res
=
isl_multi_aff_to_multi_union_pw_aff
(
copy
());
12725
return
manage
(
res
);
12726
}
12727
12728
isl::pw_multi_aff
multi_aff::to_pw_multi_aff
()
const
12729
{
12730
auto
res
=
isl_multi_aff_to_pw_multi_aff
(
copy
());
12731
return
manage
(
res
);
12732
}
12733
12734
isl::union_pw_multi_aff
multi_aff::to_union_pw_multi_aff
()
const
12735
{
12736
return
isl::pw_multi_aff
(*this).
to_union_pw_multi_aff
();
12737
}
12738
12739
isl::id
multi_aff::tuple_id
(
isl::dim
type
)
const
12740
{
12741
return
isl::pw_multi_aff
(*this).
tuple_id
(
type
);
12742
}
12743
12744
isl::multi_aff
multi_aff::unbind_params_insert_domain
(
isl::multi_id
domain
)
const
12745
{
12746
auto
res
= isl_multi_aff_unbind_params_insert_domain(
copy
(),
domain
.release());
12747
return
manage
(
res
);
12748
}
12749
12750
isl::multi_pw_aff
multi_aff::union_add
(
const
isl::multi_pw_aff
&mpa2)
const
12751
{
12752
return
isl::pw_multi_aff
(*this).
union_add
(mpa2);
12753
}
12754
12755
isl::multi_union_pw_aff
multi_aff::union_add
(
const
isl::multi_union_pw_aff
&mupa2)
const
12756
{
12757
return
isl::pw_multi_aff
(*this).
union_add
(mupa2);
12758
}
12759
12760
isl::pw_multi_aff
multi_aff::union_add
(
const
isl::pw_multi_aff
&pma2)
const
12761
{
12762
return
isl::pw_multi_aff
(*this).
union_add
(pma2);
12763
}
12764
12765
isl::union_pw_multi_aff
multi_aff::union_add
(
const
isl::union_pw_multi_aff
&upma2)
const
12766
{
12767
return
isl::pw_multi_aff
(*this).
union_add
(upma2);
12768
}
12769
12770
isl::multi_aff
multi_aff::zero
(
isl::space
space
)
12771
{
12772
auto
res
= isl_multi_aff_zero(
space
.release());
12773
return
manage
(
res
);
12774
}
12775
12776
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_aff
&
obj
)
12777
{
12778
char
*
str
=
isl_multi_aff_to_str
(
obj
.get());
12779
if
(!
str
) {
12780
os.setstate(std::ios_base::badbit);
12781
return
os;
12782
}
12783
os <<
str
;
12784
free(
str
);
12785
return
os;
12786
}
12787
12788
// implementations for isl::multi_id
12789
multi_id
manage
(
__isl_take
isl_multi_id
*
ptr
) {
12790
return
multi_id
(
ptr
);
12791
}
12792
multi_id
manage_copy
(
__isl_keep
isl_multi_id
*
ptr
) {
12793
ptr
= isl_multi_id_copy(
ptr
);
12794
return
multi_id
(
ptr
);
12795
}
12796
12797
multi_id::multi_id
()
12798
:
ptr
(nullptr) {}
12799
12800
multi_id::multi_id
(
const
multi_id
&
obj
)
12801
:
ptr
(nullptr)
12802
{
12803
ptr
=
obj
.copy();
12804
}
12805
12806
multi_id::multi_id
(
__isl_take
isl_multi_id
*
ptr
)
12807
:
ptr
(
ptr
) {}
12808
12809
multi_id::multi_id
(
isl::space
space
,
isl::id_list
list
)
12810
{
12811
auto
res
= isl_multi_id_from_id_list(
space
.release(),
list
.release());
12812
ptr
=
res
;
12813
}
12814
12815
multi_id::multi_id
(
isl::ctx
ctx
,
const
std::string &
str
)
12816
{
12817
auto
res
=
isl_multi_id_read_from_str
(
ctx
.release(),
str
.c_str());
12818
ptr
=
res
;
12819
}
12820
12821
multi_id
&
multi_id::operator=
(
multi_id
obj
) {
12822
std::swap(this->ptr,
obj
.ptr);
12823
return
*
this
;
12824
}
12825
12826
multi_id::~multi_id
() {
12827
if
(
ptr
)
12828
isl_multi_id_free(
ptr
);
12829
}
12830
12831
__isl_give
isl_multi_id
*
multi_id::copy
() const & {
12832
return
isl_multi_id_copy(
ptr
);
12833
}
12834
12835
__isl_keep
isl_multi_id
*
multi_id::get
()
const
{
12836
return
ptr
;
12837
}
12838
12839
__isl_give
isl_multi_id
*
multi_id::release
() {
12840
isl_multi_id
*tmp =
ptr
;
12841
ptr
=
nullptr
;
12842
return
tmp;
12843
}
12844
12845
bool
multi_id::is_null
()
const
{
12846
return
ptr
==
nullptr
;
12847
}
12848
12849
isl::ctx
multi_id::ctx
()
const
{
12850
return
isl::ctx
(isl_multi_id_get_ctx(
ptr
));
12851
}
12852
12853
isl::id
multi_id::at
(
int
pos
)
const
12854
{
12855
auto
res
= isl_multi_id_get_at(
get
(),
pos
);
12856
return
manage
(
res
);
12857
}
12858
12859
isl::id
multi_id::get_at
(
int
pos
)
const
12860
{
12861
return
at
(
pos
);
12862
}
12863
12864
isl::multi_id
multi_id::flat_range_product
(
isl::multi_id
multi2)
const
12865
{
12866
auto
res
= isl_multi_id_flat_range_product(
copy
(), multi2.
release
());
12867
return
manage
(
res
);
12868
}
12869
12870
isl::id_list
multi_id::list
()
const
12871
{
12872
auto
res
= isl_multi_id_get_list(
get
());
12873
return
manage
(
res
);
12874
}
12875
12876
isl::id_list
multi_id::get_list
()
const
12877
{
12878
return
list
();
12879
}
12880
12881
boolean
multi_id::plain_is_equal
(
const
isl::multi_id
&multi2)
const
12882
{
12883
auto
res
= isl_multi_id_plain_is_equal(
get
(), multi2.
get
());
12884
return
manage
(
res
);
12885
}
12886
12887
isl::multi_id
multi_id::range_product
(
isl::multi_id
multi2)
const
12888
{
12889
auto
res
= isl_multi_id_range_product(
copy
(), multi2.
release
());
12890
return
manage
(
res
);
12891
}
12892
12893
isl::multi_id
multi_id::set_at
(
int
pos
,
isl::id
el)
const
12894
{
12895
auto
res
= isl_multi_id_set_at(
copy
(),
pos
, el.
release
());
12896
return
manage
(
res
);
12897
}
12898
12899
isl::multi_id
multi_id::set_at
(
int
pos
,
const
std::string &el)
const
12900
{
12901
return
this->
set_at
(pos,
isl::id
(
ctx
(), el));
12902
}
12903
12904
isl::multi_id
multi_id::set_id
(
int
pos
,
isl::id
el)
const
12905
{
12906
auto
res
= isl_multi_id_set_id(
copy
(),
pos
, el.
release
());
12907
return
manage
(
res
);
12908
}
12909
12910
isl::multi_id
multi_id::set_id
(
int
pos
,
const
std::string &el)
const
12911
{
12912
return
this->
set_id
(pos,
isl::id
(
ctx
(), el));
12913
}
12914
12915
class
size
multi_id::size
()
const
12916
{
12917
auto
res
= isl_multi_id_size(
get
());
12918
return
manage
(
res
);
12919
}
12920
12921
isl::space
multi_id::space
()
const
12922
{
12923
auto
res
= isl_multi_id_get_space(
get
());
12924
return
manage
(
res
);
12925
}
12926
12927
isl::space
multi_id::get_space
()
const
12928
{
12929
return
space
();
12930
}
12931
12932
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_id
&
obj
)
12933
{
12934
char
*
str
=
isl_multi_id_to_str
(
obj
.get());
12935
if
(!
str
) {
12936
os.setstate(std::ios_base::badbit);
12937
return
os;
12938
}
12939
os <<
str
;
12940
free(
str
);
12941
return
os;
12942
}
12943
12944
// implementations for isl::multi_pw_aff
12945
multi_pw_aff
manage
(
__isl_take
isl_multi_pw_aff
*
ptr
) {
12946
return
multi_pw_aff
(
ptr
);
12947
}
12948
multi_pw_aff
manage_copy
(
__isl_keep
isl_multi_pw_aff
*
ptr
) {
12949
ptr
= isl_multi_pw_aff_copy(
ptr
);
12950
return
multi_pw_aff
(
ptr
);
12951
}
12952
12953
multi_pw_aff::multi_pw_aff
()
12954
:
ptr
(nullptr) {}
12955
12956
multi_pw_aff::multi_pw_aff
(
const
multi_pw_aff
&
obj
)
12957
:
ptr
(nullptr)
12958
{
12959
ptr
=
obj
.copy();
12960
}
12961
12962
multi_pw_aff::multi_pw_aff
(
__isl_take
isl_multi_pw_aff
*
ptr
)
12963
:
ptr
(
ptr
) {}
12964
12965
multi_pw_aff::multi_pw_aff
(
isl::aff
aff
)
12966
{
12967
auto
res
=
isl_multi_pw_aff_from_aff
(
aff
.
release
());
12968
ptr
=
res
;
12969
}
12970
12971
multi_pw_aff::multi_pw_aff
(
isl::multi_aff
ma
)
12972
{
12973
auto
res
=
isl_multi_pw_aff_from_multi_aff
(
ma
.release());
12974
ptr
=
res
;
12975
}
12976
12977
multi_pw_aff::multi_pw_aff
(
isl::pw_aff
pa
)
12978
{
12979
auto
res
=
isl_multi_pw_aff_from_pw_aff
(
pa
.release());
12980
ptr
=
res
;
12981
}
12982
12983
multi_pw_aff::multi_pw_aff
(
isl::space
space
,
isl::pw_aff_list
list
)
12984
{
12985
auto
res
= isl_multi_pw_aff_from_pw_aff_list(
space
.release(),
list
.release());
12986
ptr
=
res
;
12987
}
12988
12989
multi_pw_aff::multi_pw_aff
(
isl::pw_multi_aff
pma
)
12990
{
12991
auto
res
=
isl_multi_pw_aff_from_pw_multi_aff
(
pma
.release());
12992
ptr
=
res
;
12993
}
12994
12995
multi_pw_aff::multi_pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
)
12996
{
12997
auto
res
=
isl_multi_pw_aff_read_from_str
(
ctx
.release(),
str
.c_str());
12998
ptr
=
res
;
12999
}
13000
13001
multi_pw_aff
&
multi_pw_aff::operator=
(
multi_pw_aff
obj
) {
13002
std::swap(this->ptr,
obj
.ptr);
13003
return
*
this
;
13004
}
13005
13006
multi_pw_aff::~multi_pw_aff
() {
13007
if
(
ptr
)
13008
isl_multi_pw_aff_free(
ptr
);
13009
}
13010
13011
__isl_give
isl_multi_pw_aff
*
multi_pw_aff::copy
() const & {
13012
return
isl_multi_pw_aff_copy(
ptr
);
13013
}
13014
13015
__isl_keep
isl_multi_pw_aff
*
multi_pw_aff::get
()
const
{
13016
return
ptr
;
13017
}
13018
13019
__isl_give
isl_multi_pw_aff
*
multi_pw_aff::release
() {
13020
isl_multi_pw_aff
*tmp =
ptr
;
13021
ptr
=
nullptr
;
13022
return
tmp;
13023
}
13024
13025
bool
multi_pw_aff::is_null
()
const
{
13026
return
ptr
==
nullptr
;
13027
}
13028
13029
isl::ctx
multi_pw_aff::ctx
()
const
{
13030
return
isl::ctx
(isl_multi_pw_aff_get_ctx(
ptr
));
13031
}
13032
13033
isl::multi_pw_aff
multi_pw_aff::add
(
isl::multi_pw_aff
multi2)
const
13034
{
13035
auto
res
= isl_multi_pw_aff_add(
copy
(), multi2.
release
());
13036
return
manage
(
res
);
13037
}
13038
13039
isl::multi_union_pw_aff
multi_pw_aff::add
(
const
isl::multi_union_pw_aff
&multi2)
const
13040
{
13041
return
isl::multi_union_pw_aff
(*this).
add
(multi2);
13042
}
13043
13044
isl::multi_pw_aff
multi_pw_aff::add
(
const
isl::aff
&multi2)
const
13045
{
13046
return
this->
add
(
isl::multi_pw_aff
(multi2));
13047
}
13048
13049
isl::multi_pw_aff
multi_pw_aff::add
(
const
isl::multi_aff
&multi2)
const
13050
{
13051
return
this->
add
(
isl::multi_pw_aff
(multi2));
13052
}
13053
13054
isl::multi_pw_aff
multi_pw_aff::add
(
const
isl::pw_aff
&multi2)
const
13055
{
13056
return
this->
add
(
isl::multi_pw_aff
(multi2));
13057
}
13058
13059
isl::multi_pw_aff
multi_pw_aff::add
(
const
isl::pw_multi_aff
&multi2)
const
13060
{
13061
return
this->
add
(
isl::multi_pw_aff
(multi2));
13062
}
13063
13064
isl::multi_pw_aff
multi_pw_aff::add_constant
(
isl::multi_val
mv)
const
13065
{
13066
auto
res
= isl_multi_pw_aff_add_constant_multi_val(
copy
(), mv.
release
());
13067
return
manage
(
res
);
13068
}
13069
13070
isl::multi_pw_aff
multi_pw_aff::add_constant
(
isl::val
v)
const
13071
{
13072
auto
res
= isl_multi_pw_aff_add_constant_val(
copy
(), v.
release
());
13073
return
manage
(
res
);
13074
}
13075
13076
isl::multi_pw_aff
multi_pw_aff::add_constant
(
long
v)
const
13077
{
13078
return
this->
add_constant
(
isl::val
(
ctx
(), v));
13079
}
13080
13081
isl::map
multi_pw_aff::as_map
()
const
13082
{
13083
auto
res
=
isl_multi_pw_aff_as_map
(
copy
());
13084
return
manage
(
res
);
13085
}
13086
13087
isl::multi_aff
multi_pw_aff::as_multi_aff
()
const
13088
{
13089
auto
res
=
isl_multi_pw_aff_as_multi_aff
(
copy
());
13090
return
manage
(
res
);
13091
}
13092
13093
isl::set
multi_pw_aff::as_set
()
const
13094
{
13095
auto
res
=
isl_multi_pw_aff_as_set
(
copy
());
13096
return
manage
(
res
);
13097
}
13098
13099
isl::pw_aff
multi_pw_aff::at
(
int
pos
)
const
13100
{
13101
auto
res
= isl_multi_pw_aff_get_at(
get
(),
pos
);
13102
return
manage
(
res
);
13103
}
13104
13105
isl::pw_aff
multi_pw_aff::get_at
(
int
pos
)
const
13106
{
13107
return
at
(
pos
);
13108
}
13109
13110
isl::set
multi_pw_aff::bind
(
isl::multi_id
tuple
)
const
13111
{
13112
auto
res
=
isl_multi_pw_aff_bind
(
copy
(),
tuple
.release());
13113
return
manage
(
res
);
13114
}
13115
13116
isl::multi_pw_aff
multi_pw_aff::bind_domain
(
isl::multi_id
tuple
)
const
13117
{
13118
auto
res
= isl_multi_pw_aff_bind_domain(
copy
(),
tuple
.release());
13119
return
manage
(
res
);
13120
}
13121
13122
isl::multi_pw_aff
multi_pw_aff::bind_domain_wrapped_domain
(
isl::multi_id
tuple
)
const
13123
{
13124
auto
res
= isl_multi_pw_aff_bind_domain_wrapped_domain(
copy
(),
tuple
.release());
13125
return
manage
(
res
);
13126
}
13127
13128
isl::multi_pw_aff
multi_pw_aff::coalesce
()
const
13129
{
13130
auto
res
=
isl_multi_pw_aff_coalesce
(
copy
());
13131
return
manage
(
res
);
13132
}
13133
13134
class
size
multi_pw_aff::dim
(
isl::dim
type
)
const
13135
{
13136
auto
res
= isl_multi_pw_aff_dim(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
13137
return
manage
(
res
);
13138
}
13139
13140
isl::set
multi_pw_aff::domain
()
const
13141
{
13142
auto
res
=
isl_multi_pw_aff_domain
(
copy
());
13143
return
manage
(
res
);
13144
}
13145
13146
isl::multi_pw_aff
multi_pw_aff::flat_range_product
(
isl::multi_pw_aff
multi2)
const
13147
{
13148
auto
res
= isl_multi_pw_aff_flat_range_product(
copy
(), multi2.
release
());
13149
return
manage
(
res
);
13150
}
13151
13152
isl::multi_union_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
13153
{
13154
return
isl::multi_union_pw_aff
(*this).
flat_range_product
(multi2);
13155
}
13156
13157
isl::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::aff
&multi2)
const
13158
{
13159
return
this->
flat_range_product
(
isl::multi_pw_aff
(multi2));
13160
}
13161
13162
isl::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::multi_aff
&multi2)
const
13163
{
13164
return
this->
flat_range_product
(
isl::multi_pw_aff
(multi2));
13165
}
13166
13167
isl::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::pw_aff
&multi2)
const
13168
{
13169
return
this->
flat_range_product
(
isl::multi_pw_aff
(multi2));
13170
}
13171
13172
isl::multi_pw_aff
multi_pw_aff::flat_range_product
(
const
isl::pw_multi_aff
&multi2)
const
13173
{
13174
return
this->
flat_range_product
(
isl::multi_pw_aff
(multi2));
13175
}
13176
13177
isl::multi_pw_aff
multi_pw_aff::gist
(
isl::set
set
)
const
13178
{
13179
auto
res
=
isl_multi_pw_aff_gist
(
copy
(),
set
.
release
());
13180
return
manage
(
res
);
13181
}
13182
13183
isl::multi_union_pw_aff
multi_pw_aff::gist
(
const
isl::union_set
&
context
)
const
13184
{
13185
return
isl::multi_union_pw_aff
(*this).
gist
(
context
);
13186
}
13187
13188
isl::multi_pw_aff
multi_pw_aff::gist
(
const
isl::basic_set
&
set
)
const
13189
{
13190
return
this->
gist
(
isl::set
(
set
));
13191
}
13192
13193
isl::multi_pw_aff
multi_pw_aff::gist
(
const
isl::point
&
set
)
const
13194
{
13195
return
this->
gist
(
isl::set
(
set
));
13196
}
13197
13198
boolean
multi_pw_aff::has_range_tuple_id
()
const
13199
{
13200
auto
res
= isl_multi_pw_aff_has_range_tuple_id(
get
());
13201
return
manage
(
res
);
13202
}
13203
13204
isl::multi_pw_aff
multi_pw_aff::identity
(
isl::space
space
)
13205
{
13206
auto
res
= isl_multi_pw_aff_identity(
space
.release());
13207
return
manage
(
res
);
13208
}
13209
13210
isl::multi_pw_aff
multi_pw_aff::identity
()
const
13211
{
13212
auto
res
= isl_multi_pw_aff_identity_multi_pw_aff(
copy
());
13213
return
manage
(
res
);
13214
}
13215
13216
isl::multi_pw_aff
multi_pw_aff::identity_on_domain
(
isl::space
space
)
13217
{
13218
auto
res
= isl_multi_pw_aff_identity_on_domain_space(
space
.release());
13219
return
manage
(
res
);
13220
}
13221
13222
isl::multi_pw_aff
multi_pw_aff::insert_domain
(
isl::space
domain
)
const
13223
{
13224
auto
res
= isl_multi_pw_aff_insert_domain(
copy
(),
domain
.release());
13225
return
manage
(
res
);
13226
}
13227
13228
isl::multi_pw_aff
multi_pw_aff::intersect_domain
(
isl::set
domain
)
const
13229
{
13230
auto
res
=
isl_multi_pw_aff_intersect_domain
(
copy
(),
domain
.release());
13231
return
manage
(
res
);
13232
}
13233
13234
isl::multi_union_pw_aff
multi_pw_aff::intersect_domain
(
const
isl::union_set
&uset)
const
13235
{
13236
return
isl::multi_union_pw_aff
(*this).
intersect_domain
(uset);
13237
}
13238
13239
isl::multi_pw_aff
multi_pw_aff::intersect_domain
(
const
isl::basic_set
&
domain
)
const
13240
{
13241
return
this->
intersect_domain
(
isl::set
(
domain
));
13242
}
13243
13244
isl::multi_pw_aff
multi_pw_aff::intersect_domain
(
const
isl::point
&
domain
)
const
13245
{
13246
return
this->
intersect_domain
(
isl::set
(
domain
));
13247
}
13248
13249
isl::multi_pw_aff
multi_pw_aff::intersect_params
(
isl::set
set
)
const
13250
{
13251
auto
res
=
isl_multi_pw_aff_intersect_params
(
copy
(),
set
.
release
());
13252
return
manage
(
res
);
13253
}
13254
13255
boolean
multi_pw_aff::involves_nan
()
const
13256
{
13257
auto
res
= isl_multi_pw_aff_involves_nan(
get
());
13258
return
manage
(
res
);
13259
}
13260
13261
boolean
multi_pw_aff::involves_param
(
const
isl::id
&
id
)
const
13262
{
13263
auto
res
= isl_multi_pw_aff_involves_param_id(
get
(),
id
.
get
());
13264
return
manage
(
res
);
13265
}
13266
13267
boolean
multi_pw_aff::involves_param
(
const
std::string &
id
)
const
13268
{
13269
return
this->
involves_param
(
isl::id
(
ctx
(),
id
));
13270
}
13271
13272
boolean
multi_pw_aff::involves_param
(
const
isl::id_list
&
list
)
const
13273
{
13274
auto
res
= isl_multi_pw_aff_involves_param_id_list(
get
(),
list
.get());
13275
return
manage
(
res
);
13276
}
13277
13278
boolean
multi_pw_aff::isa_multi_aff
()
const
13279
{
13280
auto
res
=
isl_multi_pw_aff_isa_multi_aff
(
get
());
13281
return
manage
(
res
);
13282
}
13283
13284
isl::pw_aff_list
multi_pw_aff::list
()
const
13285
{
13286
auto
res
= isl_multi_pw_aff_get_list(
get
());
13287
return
manage
(
res
);
13288
}
13289
13290
isl::pw_aff_list
multi_pw_aff::get_list
()
const
13291
{
13292
return
list
();
13293
}
13294
13295
isl::multi_pw_aff
multi_pw_aff::max
(
isl::multi_pw_aff
multi2)
const
13296
{
13297
auto
res
= isl_multi_pw_aff_max(
copy
(), multi2.
release
());
13298
return
manage
(
res
);
13299
}
13300
13301
isl::multi_val
multi_pw_aff::max_multi_val
()
const
13302
{
13303
auto
res
=
isl_multi_pw_aff_max_multi_val
(
copy
());
13304
return
manage
(
res
);
13305
}
13306
13307
isl::multi_pw_aff
multi_pw_aff::min
(
isl::multi_pw_aff
multi2)
const
13308
{
13309
auto
res
= isl_multi_pw_aff_min(
copy
(), multi2.
release
());
13310
return
manage
(
res
);
13311
}
13312
13313
isl::multi_val
multi_pw_aff::min_multi_val
()
const
13314
{
13315
auto
res
=
isl_multi_pw_aff_min_multi_val
(
copy
());
13316
return
manage
(
res
);
13317
}
13318
13319
isl::multi_pw_aff
multi_pw_aff::neg
()
const
13320
{
13321
auto
res
= isl_multi_pw_aff_neg(
copy
());
13322
return
manage
(
res
);
13323
}
13324
13325
boolean
multi_pw_aff::plain_is_equal
(
const
isl::multi_pw_aff
&multi2)
const
13326
{
13327
auto
res
= isl_multi_pw_aff_plain_is_equal(
get
(), multi2.
get
());
13328
return
manage
(
res
);
13329
}
13330
13331
boolean
multi_pw_aff::plain_is_equal
(
const
isl::multi_union_pw_aff
&multi2)
const
13332
{
13333
return
isl::multi_union_pw_aff
(*this).
plain_is_equal
(multi2);
13334
}
13335
13336
boolean
multi_pw_aff::plain_is_equal
(
const
isl::aff
&multi2)
const
13337
{
13338
return
this->
plain_is_equal
(
isl::multi_pw_aff
(multi2));
13339
}
13340
13341
boolean
multi_pw_aff::plain_is_equal
(
const
isl::multi_aff
&multi2)
const
13342
{
13343
return
this->
plain_is_equal
(
isl::multi_pw_aff
(multi2));
13344
}
13345
13346
boolean
multi_pw_aff::plain_is_equal
(
const
isl::pw_aff
&multi2)
const
13347
{
13348
return
this->
plain_is_equal
(
isl::multi_pw_aff
(multi2));
13349
}
13350
13351
boolean
multi_pw_aff::plain_is_equal
(
const
isl::pw_multi_aff
&multi2)
const
13352
{
13353
return
this->
plain_is_equal
(
isl::multi_pw_aff
(multi2));
13354
}
13355
13356
isl::multi_pw_aff
multi_pw_aff::product
(
isl::multi_pw_aff
multi2)
const
13357
{
13358
auto
res
= isl_multi_pw_aff_product(
copy
(), multi2.
release
());
13359
return
manage
(
res
);
13360
}
13361
13362
isl::multi_pw_aff
multi_pw_aff::pullback
(
isl::multi_aff
ma
)
const
13363
{
13364
auto
res
=
isl_multi_pw_aff_pullback_multi_aff
(
copy
(),
ma
.release());
13365
return
manage
(
res
);
13366
}
13367
13368
isl::multi_pw_aff
multi_pw_aff::pullback
(
isl::multi_pw_aff
mpa2)
const
13369
{
13370
auto
res
=
isl_multi_pw_aff_pullback_multi_pw_aff
(
copy
(), mpa2.
release
());
13371
return
manage
(
res
);
13372
}
13373
13374
isl::multi_pw_aff
multi_pw_aff::pullback
(
isl::pw_multi_aff
pma
)
const
13375
{
13376
auto
res
=
isl_multi_pw_aff_pullback_pw_multi_aff
(
copy
(),
pma
.release());
13377
return
manage
(
res
);
13378
}
13379
13380
isl::multi_union_pw_aff
multi_pw_aff::pullback
(
const
isl::union_pw_multi_aff
&upma)
const
13381
{
13382
return
isl::multi_union_pw_aff
(*this).
pullback
(upma);
13383
}
13384
13385
isl::multi_pw_aff
multi_pw_aff::range_product
(
isl::multi_pw_aff
multi2)
const
13386
{
13387
auto
res
= isl_multi_pw_aff_range_product(
copy
(), multi2.
release
());
13388
return
manage
(
res
);
13389
}
13390
13391
isl::multi_union_pw_aff
multi_pw_aff::range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
13392
{
13393
return
isl::multi_union_pw_aff
(*this).
range_product
(multi2);
13394
}
13395
13396
isl::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::aff
&multi2)
const
13397
{
13398
return
this->
range_product
(
isl::multi_pw_aff
(multi2));
13399
}
13400
13401
isl::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::multi_aff
&multi2)
const
13402
{
13403
return
this->
range_product
(
isl::multi_pw_aff
(multi2));
13404
}
13405
13406
isl::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::pw_aff
&multi2)
const
13407
{
13408
return
this->
range_product
(
isl::multi_pw_aff
(multi2));
13409
}
13410
13411
isl::multi_pw_aff
multi_pw_aff::range_product
(
const
isl::pw_multi_aff
&multi2)
const
13412
{
13413
return
this->
range_product
(
isl::multi_pw_aff
(multi2));
13414
}
13415
13416
isl::id
multi_pw_aff::range_tuple_id
()
const
13417
{
13418
auto
res
= isl_multi_pw_aff_get_range_tuple_id(
get
());
13419
return
manage
(
res
);
13420
}
13421
13422
isl::id
multi_pw_aff::get_range_tuple_id
()
const
13423
{
13424
return
range_tuple_id
();
13425
}
13426
13427
isl::multi_pw_aff
multi_pw_aff::reset_range_tuple_id
()
const
13428
{
13429
auto
res
= isl_multi_pw_aff_reset_range_tuple_id(
copy
());
13430
return
manage
(
res
);
13431
}
13432
13433
isl::multi_pw_aff
multi_pw_aff::reset_tuple_id
(
isl::dim
type
)
const
13434
{
13435
auto
res
= isl_multi_pw_aff_reset_tuple_id(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
));
13436
return
manage
(
res
);
13437
}
13438
13439
isl::multi_pw_aff
multi_pw_aff::scale
(
isl::multi_val
mv)
const
13440
{
13441
auto
res
= isl_multi_pw_aff_scale_multi_val(
copy
(), mv.
release
());
13442
return
manage
(
res
);
13443
}
13444
13445
isl::multi_pw_aff
multi_pw_aff::scale
(
isl::val
v)
const
13446
{
13447
auto
res
= isl_multi_pw_aff_scale_val(
copy
(), v.
release
());
13448
return
manage
(
res
);
13449
}
13450
13451
isl::multi_pw_aff
multi_pw_aff::scale
(
long
v)
const
13452
{
13453
return
this->
scale
(
isl::val
(
ctx
(), v));
13454
}
13455
13456
isl::multi_pw_aff
multi_pw_aff::scale_down
(
isl::multi_val
mv)
const
13457
{
13458
auto
res
= isl_multi_pw_aff_scale_down_multi_val(
copy
(), mv.
release
());
13459
return
manage
(
res
);
13460
}
13461
13462
isl::multi_pw_aff
multi_pw_aff::scale_down
(
isl::val
v)
const
13463
{
13464
auto
res
= isl_multi_pw_aff_scale_down_val(
copy
(), v.
release
());
13465
return
manage
(
res
);
13466
}
13467
13468
isl::multi_pw_aff
multi_pw_aff::scale_down
(
long
v)
const
13469
{
13470
return
this->
scale_down
(
isl::val
(
ctx
(), v));
13471
}
13472
13473
isl::multi_pw_aff
multi_pw_aff::set_at
(
int
pos
,
isl::pw_aff
el)
const
13474
{
13475
auto
res
= isl_multi_pw_aff_set_at(
copy
(),
pos
, el.
release
());
13476
return
manage
(
res
);
13477
}
13478
13479
isl::multi_union_pw_aff
multi_pw_aff::set_at
(
int
pos
,
const
isl::union_pw_aff
&el)
const
13480
{
13481
return
isl::multi_union_pw_aff
(*this).
set_at
(
pos
, el);
13482
}
13483
13484
isl::multi_pw_aff
multi_pw_aff::set_pw_aff
(
int
pos
,
isl::pw_aff
el)
const
13485
{
13486
auto
res
= isl_multi_pw_aff_set_pw_aff(
copy
(),
pos
, el.
release
());
13487
return
manage
(
res
);
13488
}
13489
13490
isl::multi_pw_aff
multi_pw_aff::set_range_tuple
(
isl::id
id
)
const
13491
{
13492
auto
res
= isl_multi_pw_aff_set_range_tuple_id(
copy
(),
id
.
release
());
13493
return
manage
(
res
);
13494
}
13495
13496
isl::multi_pw_aff
multi_pw_aff::set_range_tuple
(
const
std::string &
id
)
const
13497
{
13498
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
13499
}
13500
13501
isl::multi_union_pw_aff
multi_pw_aff::set_union_pw_aff
(
int
pos
,
const
isl::union_pw_aff
&el)
const
13502
{
13503
return
isl::multi_union_pw_aff
(*this).
set_union_pw_aff
(
pos
, el);
13504
}
13505
13506
class
size
multi_pw_aff::size
()
const
13507
{
13508
auto
res
= isl_multi_pw_aff_size(
get
());
13509
return
manage
(
res
);
13510
}
13511
13512
isl::space
multi_pw_aff::space
()
const
13513
{
13514
auto
res
= isl_multi_pw_aff_get_space(
get
());
13515
return
manage
(
res
);
13516
}
13517
13518
isl::space
multi_pw_aff::get_space
()
const
13519
{
13520
return
space
();
13521
}
13522
13523
isl::multi_pw_aff
multi_pw_aff::sub
(
isl::multi_pw_aff
multi2)
const
13524
{
13525
auto
res
= isl_multi_pw_aff_sub(
copy
(), multi2.
release
());
13526
return
manage
(
res
);
13527
}
13528
13529
isl::multi_union_pw_aff
multi_pw_aff::sub
(
const
isl::multi_union_pw_aff
&multi2)
const
13530
{
13531
return
isl::multi_union_pw_aff
(*this).
sub
(multi2);
13532
}
13533
13534
isl::multi_pw_aff
multi_pw_aff::sub
(
const
isl::aff
&multi2)
const
13535
{
13536
return
this->
sub
(
isl::multi_pw_aff
(multi2));
13537
}
13538
13539
isl::multi_pw_aff
multi_pw_aff::sub
(
const
isl::multi_aff
&multi2)
const
13540
{
13541
return
this->
sub
(
isl::multi_pw_aff
(multi2));
13542
}
13543
13544
isl::multi_pw_aff
multi_pw_aff::sub
(
const
isl::pw_aff
&multi2)
const
13545
{
13546
return
this->
sub
(
isl::multi_pw_aff
(multi2));
13547
}
13548
13549
isl::multi_pw_aff
multi_pw_aff::sub
(
const
isl::pw_multi_aff
&multi2)
const
13550
{
13551
return
this->
sub
(
isl::multi_pw_aff
(multi2));
13552
}
13553
13554
isl::multi_pw_aff
multi_pw_aff::unbind_params_insert_domain
(
isl::multi_id
domain
)
const
13555
{
13556
auto
res
= isl_multi_pw_aff_unbind_params_insert_domain(
copy
(),
domain
.release());
13557
return
manage
(
res
);
13558
}
13559
13560
isl::multi_pw_aff
multi_pw_aff::union_add
(
isl::multi_pw_aff
mpa2)
const
13561
{
13562
auto
res
=
isl_multi_pw_aff_union_add
(
copy
(), mpa2.
release
());
13563
return
manage
(
res
);
13564
}
13565
13566
isl::multi_union_pw_aff
multi_pw_aff::union_add
(
const
isl::multi_union_pw_aff
&mupa2)
const
13567
{
13568
return
isl::multi_union_pw_aff
(*this).
union_add
(mupa2);
13569
}
13570
13571
isl::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::aff
&mpa2)
const
13572
{
13573
return
this->
union_add
(
isl::multi_pw_aff
(mpa2));
13574
}
13575
13576
isl::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::multi_aff
&mpa2)
const
13577
{
13578
return
this->
union_add
(
isl::multi_pw_aff
(mpa2));
13579
}
13580
13581
isl::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::pw_aff
&mpa2)
const
13582
{
13583
return
this->
union_add
(
isl::multi_pw_aff
(mpa2));
13584
}
13585
13586
isl::multi_pw_aff
multi_pw_aff::union_add
(
const
isl::pw_multi_aff
&mpa2)
const
13587
{
13588
return
this->
union_add
(
isl::multi_pw_aff
(mpa2));
13589
}
13590
13591
isl::multi_pw_aff
multi_pw_aff::zero
(
isl::space
space
)
13592
{
13593
auto
res
= isl_multi_pw_aff_zero(
space
.release());
13594
return
manage
(
res
);
13595
}
13596
13597
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_pw_aff
&
obj
)
13598
{
13599
char
*
str
=
isl_multi_pw_aff_to_str
(
obj
.get());
13600
if
(!
str
) {
13601
os.setstate(std::ios_base::badbit);
13602
return
os;
13603
}
13604
os <<
str
;
13605
free(
str
);
13606
return
os;
13607
}
13608
13609
// implementations for isl::multi_union_pw_aff
13610
multi_union_pw_aff
manage
(
__isl_take
isl_multi_union_pw_aff
*
ptr
) {
13611
return
multi_union_pw_aff
(
ptr
);
13612
}
13613
multi_union_pw_aff
manage_copy
(
__isl_keep
isl_multi_union_pw_aff
*
ptr
) {
13614
ptr
= isl_multi_union_pw_aff_copy(
ptr
);
13615
return
multi_union_pw_aff
(
ptr
);
13616
}
13617
13618
multi_union_pw_aff::multi_union_pw_aff
()
13619
:
ptr
(nullptr) {}
13620
13621
multi_union_pw_aff::multi_union_pw_aff
(
const
multi_union_pw_aff
&
obj
)
13622
:
ptr
(nullptr)
13623
{
13624
ptr
=
obj
.copy();
13625
}
13626
13627
multi_union_pw_aff::multi_union_pw_aff
(
__isl_take
isl_multi_union_pw_aff
*
ptr
)
13628
:
ptr
(
ptr
) {}
13629
13630
multi_union_pw_aff::multi_union_pw_aff
(
isl::multi_pw_aff
mpa)
13631
{
13632
auto
res
=
isl_multi_union_pw_aff_from_multi_pw_aff
(mpa.
release
());
13633
ptr
=
res
;
13634
}
13635
13636
multi_union_pw_aff::multi_union_pw_aff
(
isl::union_pw_aff
upa)
13637
{
13638
auto
res
=
isl_multi_union_pw_aff_from_union_pw_aff
(upa.
release
());
13639
ptr
=
res
;
13640
}
13641
13642
multi_union_pw_aff::multi_union_pw_aff
(
isl::space
space
,
isl::union_pw_aff_list
list
)
13643
{
13644
auto
res
= isl_multi_union_pw_aff_from_union_pw_aff_list(
space
.release(),
list
.release());
13645
ptr
=
res
;
13646
}
13647
13648
multi_union_pw_aff::multi_union_pw_aff
(
isl::union_pw_multi_aff
upma)
13649
{
13650
auto
res
=
isl_multi_union_pw_aff_from_union_pw_multi_aff
(upma.
release
());
13651
ptr
=
res
;
13652
}
13653
13654
multi_union_pw_aff::multi_union_pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
)
13655
{
13656
auto
res
=
isl_multi_union_pw_aff_read_from_str
(
ctx
.release(),
str
.c_str());
13657
ptr
=
res
;
13658
}
13659
13660
multi_union_pw_aff
&
multi_union_pw_aff::operator=
(
multi_union_pw_aff
obj
) {
13661
std::swap(this->ptr,
obj
.ptr);
13662
return
*
this
;
13663
}
13664
13665
multi_union_pw_aff::~multi_union_pw_aff
() {
13666
if
(
ptr
)
13667
isl_multi_union_pw_aff_free(
ptr
);
13668
}
13669
13670
__isl_give
isl_multi_union_pw_aff
*
multi_union_pw_aff::copy
() const & {
13671
return
isl_multi_union_pw_aff_copy(
ptr
);
13672
}
13673
13674
__isl_keep
isl_multi_union_pw_aff
*
multi_union_pw_aff::get
()
const
{
13675
return
ptr
;
13676
}
13677
13678
__isl_give
isl_multi_union_pw_aff
*
multi_union_pw_aff::release
() {
13679
isl_multi_union_pw_aff
*tmp =
ptr
;
13680
ptr
=
nullptr
;
13681
return
tmp;
13682
}
13683
13684
bool
multi_union_pw_aff::is_null
()
const
{
13685
return
ptr
==
nullptr
;
13686
}
13687
13688
isl::ctx
multi_union_pw_aff::ctx
()
const
{
13689
return
isl::ctx
(isl_multi_union_pw_aff_get_ctx(
ptr
));
13690
}
13691
13692
isl::multi_union_pw_aff
multi_union_pw_aff::add
(
isl::multi_union_pw_aff
multi2)
const
13693
{
13694
auto
res
= isl_multi_union_pw_aff_add(
copy
(), multi2.
release
());
13695
return
manage
(
res
);
13696
}
13697
13698
isl::union_pw_aff
multi_union_pw_aff::at
(
int
pos
)
const
13699
{
13700
auto
res
= isl_multi_union_pw_aff_get_at(
get
(),
pos
);
13701
return
manage
(
res
);
13702
}
13703
13704
isl::union_pw_aff
multi_union_pw_aff::get_at
(
int
pos
)
const
13705
{
13706
return
at
(
pos
);
13707
}
13708
13709
isl::union_set
multi_union_pw_aff::bind
(
isl::multi_id
tuple
)
const
13710
{
13711
auto
res
=
isl_multi_union_pw_aff_bind
(
copy
(),
tuple
.release());
13712
return
manage
(
res
);
13713
}
13714
13715
isl::multi_union_pw_aff
multi_union_pw_aff::coalesce
()
const
13716
{
13717
auto
res
=
isl_multi_union_pw_aff_coalesce
(
copy
());
13718
return
manage
(
res
);
13719
}
13720
13721
class
size
multi_union_pw_aff::dim
(
isl::dim
type
)
const
13722
{
13723
auto
res
= isl_multi_union_pw_aff_dim(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
13724
return
manage
(
res
);
13725
}
13726
13727
isl::union_set
multi_union_pw_aff::domain
()
const
13728
{
13729
auto
res
=
isl_multi_union_pw_aff_domain
(
copy
());
13730
return
manage
(
res
);
13731
}
13732
13733
isl::multi_union_pw_aff
multi_union_pw_aff::flat_range_product
(
isl::multi_union_pw_aff
multi2)
const
13734
{
13735
auto
res
= isl_multi_union_pw_aff_flat_range_product(
copy
(), multi2.
release
());
13736
return
manage
(
res
);
13737
}
13738
13739
isl::multi_union_pw_aff
multi_union_pw_aff::from_union_map
(
isl::union_map
umap)
13740
{
13741
auto
res
=
isl_multi_union_pw_aff_from_union_map
(umap.
release
());
13742
return
manage
(
res
);
13743
}
13744
13745
isl::multi_union_pw_aff
multi_union_pw_aff::gist
(
isl::union_set
context
)
const
13746
{
13747
auto
res
=
isl_multi_union_pw_aff_gist
(
copy
(),
context
.release());
13748
return
manage
(
res
);
13749
}
13750
13751
boolean
multi_union_pw_aff::has_range_tuple_id
()
const
13752
{
13753
auto
res
= isl_multi_union_pw_aff_has_range_tuple_id(
get
());
13754
return
manage
(
res
);
13755
}
13756
13757
isl::multi_union_pw_aff
multi_union_pw_aff::intersect_domain
(
isl::union_set
uset)
const
13758
{
13759
auto
res
=
isl_multi_union_pw_aff_intersect_domain
(
copy
(), uset.
release
());
13760
return
manage
(
res
);
13761
}
13762
13763
isl::multi_union_pw_aff
multi_union_pw_aff::intersect_params
(
isl::set
params
)
const
13764
{
13765
auto
res
=
isl_multi_union_pw_aff_intersect_params
(
copy
(),
params
.release());
13766
return
manage
(
res
);
13767
}
13768
13769
boolean
multi_union_pw_aff::involves_nan
()
const
13770
{
13771
auto
res
= isl_multi_union_pw_aff_involves_nan(
get
());
13772
return
manage
(
res
);
13773
}
13774
13775
isl::union_pw_aff_list
multi_union_pw_aff::list
()
const
13776
{
13777
auto
res
= isl_multi_union_pw_aff_get_list(
get
());
13778
return
manage
(
res
);
13779
}
13780
13781
isl::union_pw_aff_list
multi_union_pw_aff::get_list
()
const
13782
{
13783
return
list
();
13784
}
13785
13786
isl::multi_union_pw_aff
multi_union_pw_aff::neg
()
const
13787
{
13788
auto
res
= isl_multi_union_pw_aff_neg(
copy
());
13789
return
manage
(
res
);
13790
}
13791
13792
boolean
multi_union_pw_aff::plain_is_equal
(
const
isl::multi_union_pw_aff
&multi2)
const
13793
{
13794
auto
res
= isl_multi_union_pw_aff_plain_is_equal(
get
(), multi2.
get
());
13795
return
manage
(
res
);
13796
}
13797
13798
isl::multi_union_pw_aff
multi_union_pw_aff::pullback
(
isl::union_pw_multi_aff
upma)
const
13799
{
13800
auto
res
=
isl_multi_union_pw_aff_pullback_union_pw_multi_aff
(
copy
(), upma.
release
());
13801
return
manage
(
res
);
13802
}
13803
13804
isl::multi_union_pw_aff
multi_union_pw_aff::range_product
(
isl::multi_union_pw_aff
multi2)
const
13805
{
13806
auto
res
= isl_multi_union_pw_aff_range_product(
copy
(), multi2.
release
());
13807
return
manage
(
res
);
13808
}
13809
13810
isl::id
multi_union_pw_aff::range_tuple_id
()
const
13811
{
13812
auto
res
= isl_multi_union_pw_aff_get_range_tuple_id(
get
());
13813
return
manage
(
res
);
13814
}
13815
13816
isl::id
multi_union_pw_aff::get_range_tuple_id
()
const
13817
{
13818
return
range_tuple_id
();
13819
}
13820
13821
isl::multi_union_pw_aff
multi_union_pw_aff::reset_range_tuple_id
()
const
13822
{
13823
auto
res
= isl_multi_union_pw_aff_reset_range_tuple_id(
copy
());
13824
return
manage
(
res
);
13825
}
13826
13827
isl::multi_union_pw_aff
multi_union_pw_aff::reset_tuple_id
(
isl::dim
type
)
const
13828
{
13829
auto
res
= isl_multi_union_pw_aff_reset_tuple_id(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
));
13830
return
manage
(
res
);
13831
}
13832
13833
isl::multi_union_pw_aff
multi_union_pw_aff::scale
(
isl::multi_val
mv)
const
13834
{
13835
auto
res
= isl_multi_union_pw_aff_scale_multi_val(
copy
(), mv.
release
());
13836
return
manage
(
res
);
13837
}
13838
13839
isl::multi_union_pw_aff
multi_union_pw_aff::scale
(
isl::val
v)
const
13840
{
13841
auto
res
= isl_multi_union_pw_aff_scale_val(
copy
(), v.
release
());
13842
return
manage
(
res
);
13843
}
13844
13845
isl::multi_union_pw_aff
multi_union_pw_aff::scale
(
long
v)
const
13846
{
13847
return
this->
scale
(
isl::val
(
ctx
(), v));
13848
}
13849
13850
isl::multi_union_pw_aff
multi_union_pw_aff::scale_down
(
isl::multi_val
mv)
const
13851
{
13852
auto
res
= isl_multi_union_pw_aff_scale_down_multi_val(
copy
(), mv.
release
());
13853
return
manage
(
res
);
13854
}
13855
13856
isl::multi_union_pw_aff
multi_union_pw_aff::scale_down
(
isl::val
v)
const
13857
{
13858
auto
res
= isl_multi_union_pw_aff_scale_down_val(
copy
(), v.
release
());
13859
return
manage
(
res
);
13860
}
13861
13862
isl::multi_union_pw_aff
multi_union_pw_aff::scale_down
(
long
v)
const
13863
{
13864
return
this->
scale_down
(
isl::val
(
ctx
(), v));
13865
}
13866
13867
isl::multi_union_pw_aff
multi_union_pw_aff::set_at
(
int
pos
,
isl::union_pw_aff
el)
const
13868
{
13869
auto
res
= isl_multi_union_pw_aff_set_at(
copy
(),
pos
, el.
release
());
13870
return
manage
(
res
);
13871
}
13872
13873
isl::multi_union_pw_aff
multi_union_pw_aff::set_range_tuple
(
isl::id
id
)
const
13874
{
13875
auto
res
= isl_multi_union_pw_aff_set_range_tuple_id(
copy
(),
id
.
release
());
13876
return
manage
(
res
);
13877
}
13878
13879
isl::multi_union_pw_aff
multi_union_pw_aff::set_range_tuple
(
const
std::string &
id
)
const
13880
{
13881
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
13882
}
13883
13884
isl::multi_union_pw_aff
multi_union_pw_aff::set_union_pw_aff
(
int
pos
,
isl::union_pw_aff
el)
const
13885
{
13886
auto
res
= isl_multi_union_pw_aff_set_union_pw_aff(
copy
(),
pos
, el.
release
());
13887
return
manage
(
res
);
13888
}
13889
13890
class
size
multi_union_pw_aff::size
()
const
13891
{
13892
auto
res
= isl_multi_union_pw_aff_size(
get
());
13893
return
manage
(
res
);
13894
}
13895
13896
isl::space
multi_union_pw_aff::space
()
const
13897
{
13898
auto
res
= isl_multi_union_pw_aff_get_space(
get
());
13899
return
manage
(
res
);
13900
}
13901
13902
isl::space
multi_union_pw_aff::get_space
()
const
13903
{
13904
return
space
();
13905
}
13906
13907
isl::multi_union_pw_aff
multi_union_pw_aff::sub
(
isl::multi_union_pw_aff
multi2)
const
13908
{
13909
auto
res
= isl_multi_union_pw_aff_sub(
copy
(), multi2.
release
());
13910
return
manage
(
res
);
13911
}
13912
13913
isl::multi_union_pw_aff
multi_union_pw_aff::union_add
(
isl::multi_union_pw_aff
mupa2)
const
13914
{
13915
auto
res
=
isl_multi_union_pw_aff_union_add
(
copy
(), mupa2.
release
());
13916
return
manage
(
res
);
13917
}
13918
13919
isl::multi_union_pw_aff
multi_union_pw_aff::zero
(
isl::space
space
)
13920
{
13921
auto
res
=
isl_multi_union_pw_aff_zero
(
space
.release());
13922
return
manage
(
res
);
13923
}
13924
13925
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_union_pw_aff
&
obj
)
13926
{
13927
char
*
str
=
isl_multi_union_pw_aff_to_str
(
obj
.get());
13928
if
(!
str
) {
13929
os.setstate(std::ios_base::badbit);
13930
return
os;
13931
}
13932
os <<
str
;
13933
free(
str
);
13934
return
os;
13935
}
13936
13937
// implementations for isl::multi_val
13938
multi_val
manage
(
__isl_take
isl_multi_val
*
ptr
) {
13939
return
multi_val
(
ptr
);
13940
}
13941
multi_val
manage_copy
(
__isl_keep
isl_multi_val
*
ptr
) {
13942
ptr
= isl_multi_val_copy(
ptr
);
13943
return
multi_val
(
ptr
);
13944
}
13945
13946
multi_val::multi_val
()
13947
:
ptr
(nullptr) {}
13948
13949
multi_val::multi_val
(
const
multi_val
&
obj
)
13950
:
ptr
(nullptr)
13951
{
13952
ptr
=
obj
.copy();
13953
}
13954
13955
multi_val::multi_val
(
__isl_take
isl_multi_val
*
ptr
)
13956
:
ptr
(
ptr
) {}
13957
13958
multi_val::multi_val
(
isl::space
space
,
isl::val_list
list
)
13959
{
13960
auto
res
= isl_multi_val_from_val_list(
space
.release(),
list
.release());
13961
ptr
=
res
;
13962
}
13963
13964
multi_val::multi_val
(
isl::ctx
ctx
,
const
std::string &
str
)
13965
{
13966
auto
res
=
isl_multi_val_read_from_str
(
ctx
.release(),
str
.c_str());
13967
ptr
=
res
;
13968
}
13969
13970
multi_val
&
multi_val::operator=
(
multi_val
obj
) {
13971
std::swap(this->ptr,
obj
.ptr);
13972
return
*
this
;
13973
}
13974
13975
multi_val::~multi_val
() {
13976
if
(
ptr
)
13977
isl_multi_val_free(
ptr
);
13978
}
13979
13980
__isl_give
isl_multi_val
*
multi_val::copy
() const & {
13981
return
isl_multi_val_copy(
ptr
);
13982
}
13983
13984
__isl_keep
isl_multi_val
*
multi_val::get
()
const
{
13985
return
ptr
;
13986
}
13987
13988
__isl_give
isl_multi_val
*
multi_val::release
() {
13989
isl_multi_val
*tmp =
ptr
;
13990
ptr
=
nullptr
;
13991
return
tmp;
13992
}
13993
13994
bool
multi_val::is_null
()
const
{
13995
return
ptr
==
nullptr
;
13996
}
13997
13998
isl::ctx
multi_val::ctx
()
const
{
13999
return
isl::ctx
(isl_multi_val_get_ctx(
ptr
));
14000
}
14001
14002
isl::multi_val
multi_val::add
(
isl::multi_val
multi2)
const
14003
{
14004
auto
res
= isl_multi_val_add(
copy
(), multi2.
release
());
14005
return
manage
(
res
);
14006
}
14007
14008
isl::multi_val
multi_val::add
(
isl::val
v)
const
14009
{
14010
auto
res
=
isl_multi_val_add_val
(
copy
(), v.
release
());
14011
return
manage
(
res
);
14012
}
14013
14014
isl::multi_val
multi_val::add
(
long
v)
const
14015
{
14016
return
this->
add
(
isl::val
(
ctx
(), v));
14017
}
14018
14019
isl::val
multi_val::at
(
int
pos
)
const
14020
{
14021
auto
res
= isl_multi_val_get_at(
get
(),
pos
);
14022
return
manage
(
res
);
14023
}
14024
14025
isl::val
multi_val::get_at
(
int
pos
)
const
14026
{
14027
return
at
(
pos
);
14028
}
14029
14030
class
size
multi_val::dim
(
isl::dim
type
)
const
14031
{
14032
auto
res
= isl_multi_val_dim(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
14033
return
manage
(
res
);
14034
}
14035
14036
isl::multi_val
multi_val::flat_range_product
(
isl::multi_val
multi2)
const
14037
{
14038
auto
res
= isl_multi_val_flat_range_product(
copy
(), multi2.
release
());
14039
return
manage
(
res
);
14040
}
14041
14042
boolean
multi_val::has_range_tuple_id
()
const
14043
{
14044
auto
res
= isl_multi_val_has_range_tuple_id(
get
());
14045
return
manage
(
res
);
14046
}
14047
14048
boolean
multi_val::involves_nan
()
const
14049
{
14050
auto
res
= isl_multi_val_involves_nan(
get
());
14051
return
manage
(
res
);
14052
}
14053
14054
isl::val_list
multi_val::list
()
const
14055
{
14056
auto
res
= isl_multi_val_get_list(
get
());
14057
return
manage
(
res
);
14058
}
14059
14060
isl::val_list
multi_val::get_list
()
const
14061
{
14062
return
list
();
14063
}
14064
14065
isl::multi_val
multi_val::max
(
isl::multi_val
multi2)
const
14066
{
14067
auto
res
= isl_multi_val_max(
copy
(), multi2.
release
());
14068
return
manage
(
res
);
14069
}
14070
14071
isl::multi_val
multi_val::min
(
isl::multi_val
multi2)
const
14072
{
14073
auto
res
= isl_multi_val_min(
copy
(), multi2.
release
());
14074
return
manage
(
res
);
14075
}
14076
14077
isl::multi_val
multi_val::neg
()
const
14078
{
14079
auto
res
= isl_multi_val_neg(
copy
());
14080
return
manage
(
res
);
14081
}
14082
14083
boolean
multi_val::plain_is_equal
(
const
isl::multi_val
&multi2)
const
14084
{
14085
auto
res
= isl_multi_val_plain_is_equal(
get
(), multi2.
get
());
14086
return
manage
(
res
);
14087
}
14088
14089
isl::multi_val
multi_val::product
(
isl::multi_val
multi2)
const
14090
{
14091
auto
res
= isl_multi_val_product(
copy
(), multi2.
release
());
14092
return
manage
(
res
);
14093
}
14094
14095
isl::multi_val
multi_val::range_product
(
isl::multi_val
multi2)
const
14096
{
14097
auto
res
= isl_multi_val_range_product(
copy
(), multi2.
release
());
14098
return
manage
(
res
);
14099
}
14100
14101
isl::id
multi_val::range_tuple_id
()
const
14102
{
14103
auto
res
= isl_multi_val_get_range_tuple_id(
get
());
14104
return
manage
(
res
);
14105
}
14106
14107
isl::id
multi_val::get_range_tuple_id
()
const
14108
{
14109
return
range_tuple_id
();
14110
}
14111
14112
isl::multi_val
multi_val::reset_range_tuple_id
()
const
14113
{
14114
auto
res
= isl_multi_val_reset_range_tuple_id(
copy
());
14115
return
manage
(
res
);
14116
}
14117
14118
isl::multi_val
multi_val::reset_tuple_id
(
isl::dim
type
)
const
14119
{
14120
auto
res
= isl_multi_val_reset_tuple_id(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
));
14121
return
manage
(
res
);
14122
}
14123
14124
isl::multi_val
multi_val::scale
(
isl::multi_val
mv)
const
14125
{
14126
auto
res
= isl_multi_val_scale_multi_val(
copy
(), mv.
release
());
14127
return
manage
(
res
);
14128
}
14129
14130
isl::multi_val
multi_val::scale
(
isl::val
v)
const
14131
{
14132
auto
res
= isl_multi_val_scale_val(
copy
(), v.
release
());
14133
return
manage
(
res
);
14134
}
14135
14136
isl::multi_val
multi_val::scale
(
long
v)
const
14137
{
14138
return
this->
scale
(
isl::val
(
ctx
(), v));
14139
}
14140
14141
isl::multi_val
multi_val::scale_down
(
isl::multi_val
mv)
const
14142
{
14143
auto
res
= isl_multi_val_scale_down_multi_val(
copy
(), mv.
release
());
14144
return
manage
(
res
);
14145
}
14146
14147
isl::multi_val
multi_val::scale_down
(
isl::val
v)
const
14148
{
14149
auto
res
= isl_multi_val_scale_down_val(
copy
(), v.
release
());
14150
return
manage
(
res
);
14151
}
14152
14153
isl::multi_val
multi_val::scale_down
(
long
v)
const
14154
{
14155
return
this->
scale_down
(
isl::val
(
ctx
(), v));
14156
}
14157
14158
isl::multi_val
multi_val::set_at
(
int
pos
,
isl::val
el)
const
14159
{
14160
auto
res
= isl_multi_val_set_at(
copy
(),
pos
, el.
release
());
14161
return
manage
(
res
);
14162
}
14163
14164
isl::multi_val
multi_val::set_at
(
int
pos
,
long
el)
const
14165
{
14166
return
this->
set_at
(pos,
isl::val
(
ctx
(), el));
14167
}
14168
14169
isl::multi_val
multi_val::set_range_tuple
(
isl::id
id
)
const
14170
{
14171
auto
res
= isl_multi_val_set_range_tuple_id(
copy
(),
id
.
release
());
14172
return
manage
(
res
);
14173
}
14174
14175
isl::multi_val
multi_val::set_range_tuple
(
const
std::string &
id
)
const
14176
{
14177
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
14178
}
14179
14180
isl::multi_val
multi_val::set_val
(
int
pos
,
isl::val
el)
const
14181
{
14182
auto
res
= isl_multi_val_set_val(
copy
(),
pos
, el.
release
());
14183
return
manage
(
res
);
14184
}
14185
14186
isl::multi_val
multi_val::set_val
(
int
pos
,
long
el)
const
14187
{
14188
return
this->
set_val
(pos,
isl::val
(
ctx
(), el));
14189
}
14190
14191
class
size
multi_val::size
()
const
14192
{
14193
auto
res
= isl_multi_val_size(
get
());
14194
return
manage
(
res
);
14195
}
14196
14197
isl::space
multi_val::space
()
const
14198
{
14199
auto
res
= isl_multi_val_get_space(
get
());
14200
return
manage
(
res
);
14201
}
14202
14203
isl::space
multi_val::get_space
()
const
14204
{
14205
return
space
();
14206
}
14207
14208
isl::multi_val
multi_val::sub
(
isl::multi_val
multi2)
const
14209
{
14210
auto
res
= isl_multi_val_sub(
copy
(), multi2.
release
());
14211
return
manage
(
res
);
14212
}
14213
14214
isl::multi_val
multi_val::zero
(
isl::space
space
)
14215
{
14216
auto
res
= isl_multi_val_zero(
space
.release());
14217
return
manage
(
res
);
14218
}
14219
14220
inline
std::ostream &
operator<<
(std::ostream &os,
const
multi_val
&
obj
)
14221
{
14222
char
*
str
=
isl_multi_val_to_str
(
obj
.get());
14223
if
(!
str
) {
14224
os.setstate(std::ios_base::badbit);
14225
return
os;
14226
}
14227
os <<
str
;
14228
free(
str
);
14229
return
os;
14230
}
14231
14232
// implementations for isl::point
14233
point
manage
(
__isl_take
isl_point
*
ptr
) {
14234
return
point
(
ptr
);
14235
}
14236
point
manage_copy
(
__isl_keep
isl_point
*
ptr
) {
14237
ptr
=
isl_point_copy
(
ptr
);
14238
return
point
(
ptr
);
14239
}
14240
14241
point::point
()
14242
:
ptr
(nullptr) {}
14243
14244
point::point
(
const
point
&
obj
)
14245
:
ptr
(nullptr)
14246
{
14247
ptr
=
obj
.copy();
14248
}
14249
14250
point::point
(
__isl_take
isl_point
*
ptr
)
14251
:
ptr
(
ptr
) {}
14252
14253
point::point
(
isl::space
space
)
14254
{
14255
auto
res
=
isl_point_zero
(
space
.release());
14256
ptr
=
res
;
14257
}
14258
14259
point
&
point::operator=
(
point
obj
) {
14260
std::swap(this->ptr,
obj
.ptr);
14261
return
*
this
;
14262
}
14263
14264
point::~point
() {
14265
if
(
ptr
)
14266
isl_point_free
(
ptr
);
14267
}
14268
14269
__isl_give
isl_point
*
point::copy
() const & {
14270
return
isl_point_copy
(
ptr
);
14271
}
14272
14273
__isl_keep
isl_point
*
point::get
()
const
{
14274
return
ptr
;
14275
}
14276
14277
__isl_give
isl_point
*
point::release
() {
14278
isl_point
*tmp =
ptr
;
14279
ptr
=
nullptr
;
14280
return
tmp;
14281
}
14282
14283
bool
point::is_null
()
const
{
14284
return
ptr
==
nullptr
;
14285
}
14286
14287
isl::ctx
point::ctx
()
const
{
14288
return
isl::ctx
(
isl_point_get_ctx
(
ptr
));
14289
}
14290
14291
isl::set
point::add_constraint
(
const
isl::constraint
&
constraint
)
const
14292
{
14293
return
isl::basic_set
(*this).
add_constraint
(
constraint
);
14294
}
14295
14296
isl::set
point::add_dims
(
isl::dim
type
,
unsigned
int
n
)
const
14297
{
14298
return
isl::basic_set
(*this).
add_dims
(
type
,
n
);
14299
}
14300
14301
isl::basic_set
point::affine_hull
()
const
14302
{
14303
return
isl::basic_set
(*this).
affine_hull
();
14304
}
14305
14306
isl::set
point::align_params
(
const
isl::space
&model)
const
14307
{
14308
return
isl::basic_set
(*this).
align_params
(model);
14309
}
14310
14311
isl::basic_set
point::apply
(
const
isl::basic_map
&bmap)
const
14312
{
14313
return
isl::basic_set
(*this).
apply
(bmap);
14314
}
14315
14316
isl::set
point::apply
(
const
isl::map
&
map
)
const
14317
{
14318
return
isl::basic_set
(*this).
apply
(
map
);
14319
}
14320
14321
isl::union_set
point::apply
(
const
isl::union_map
&umap)
const
14322
{
14323
return
isl::basic_set
(*this).
apply
(umap);
14324
}
14325
14326
isl::pw_multi_aff
point::as_pw_multi_aff
()
const
14327
{
14328
return
isl::basic_set
(*this).
as_pw_multi_aff
();
14329
}
14330
14331
isl::set
point::as_set
()
const
14332
{
14333
return
isl::basic_set
(*this).
as_set
();
14334
}
14335
14336
isl::basic_set_list
point::basic_set_list
()
const
14337
{
14338
return
isl::basic_set
(*this).
basic_set_list
();
14339
}
14340
14341
isl::set
point::bind
(
const
isl::multi_id
&
tuple
)
const
14342
{
14343
return
isl::basic_set
(*this).
bind
(
tuple
);
14344
}
14345
14346
isl::set
point::coalesce
()
const
14347
{
14348
return
isl::basic_set
(*this).
coalesce
();
14349
}
14350
14351
isl::set
point::complement
()
const
14352
{
14353
return
isl::basic_set
(*this).
complement
();
14354
}
14355
14356
isl::union_set
point::compute_divs
()
const
14357
{
14358
return
isl::basic_set
(*this).
compute_divs
();
14359
}
14360
14361
boolean
point::contains
(
const
isl::space
&
space
)
const
14362
{
14363
return
isl::basic_set
(*this).
contains
(
space
);
14364
}
14365
14366
isl::basic_set
point::convex_hull
()
const
14367
{
14368
return
isl::basic_set
(*this).
convex_hull
();
14369
}
14370
14371
isl::val
point::coordinate_val
(
isl::dim
type
,
int
pos
)
const
14372
{
14373
auto
res
=
isl_point_get_coordinate_val
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
);
14374
return
manage
(
res
);
14375
}
14376
14377
isl::val
point::get_coordinate_val
(
isl::dim
type
,
int
pos
)
const
14378
{
14379
return
coordinate_val
(
type
,
pos
);
14380
}
14381
14382
isl::basic_set
point::detect_equalities
()
const
14383
{
14384
return
isl::basic_set
(*this).
detect_equalities
();
14385
}
14386
14387
class
size
point::dim
(
isl::dim
type
)
const
14388
{
14389
return
isl::basic_set
(*this).
dim
(
type
);
14390
}
14391
14392
boolean
point::dim_has_any_lower_bound
(
isl::dim
type
,
unsigned
int
pos
)
const
14393
{
14394
return
isl::basic_set
(*this).
dim_has_any_lower_bound
(
type
,
pos
);
14395
}
14396
14397
isl::id
point::dim_id
(
isl::dim
type
,
unsigned
int
pos
)
const
14398
{
14399
return
isl::basic_set
(*this).
dim_id
(
type
,
pos
);
14400
}
14401
14402
isl::pw_aff
point::dim_max
(
int
pos
)
const
14403
{
14404
return
isl::basic_set
(*this).
dim_max
(
pos
);
14405
}
14406
14407
isl::val
point::dim_max_val
(
int
pos
)
const
14408
{
14409
return
isl::basic_set
(*this).
dim_max_val
(
pos
);
14410
}
14411
14412
isl::pw_aff
point::dim_min
(
int
pos
)
const
14413
{
14414
return
isl::basic_set
(*this).
dim_min
(
pos
);
14415
}
14416
14417
isl::val
point::dim_min_val
(
int
pos
)
const
14418
{
14419
return
isl::basic_set
(*this).
dim_min_val
(
pos
);
14420
}
14421
14422
std::string
point::dim_name
(
isl::dim
type
,
unsigned
int
pos
)
const
14423
{
14424
return
isl::basic_set
(*this).
dim_name
(
type
,
pos
);
14425
}
14426
14427
isl::aff
point::div
(
int
pos
)
const
14428
{
14429
return
isl::basic_set
(*this).
div
(
pos
);
14430
}
14431
14432
isl::set
point::drop_constraints_involving_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
14433
{
14434
return
isl::basic_set
(*this).
drop_constraints_involving_dims
(
type
, first,
n
);
14435
}
14436
14437
isl::set
point::eliminate
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
14438
{
14439
return
isl::basic_set
(*this).
eliminate
(
type
, first,
n
);
14440
}
14441
14442
boolean
point::every_set
(
const
std::function<
boolean
(
isl::set
)> &
test
)
const
14443
{
14444
return
isl::basic_set
(*this).
every_set
(
test
);
14445
}
14446
14447
isl::set
point::extract_set
(
const
isl::space
&
space
)
const
14448
{
14449
return
isl::basic_set
(*this).
extract_set
(
space
);
14450
}
14451
14452
int
point::find_dim_by_id
(
isl::dim
type
,
const
isl::id
&
id
)
const
14453
{
14454
return
isl::basic_set
(*this).
find_dim_by_id
(
type
,
id
);
14455
}
14456
14457
int
point::find_dim_by_id
(
isl::dim
type
,
const
std::string &
id
)
const
14458
{
14459
return
this->
find_dim_by_id
(type,
isl::id
(
ctx
(),
id
));
14460
}
14461
14462
isl::basic_set
point::fix_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
14463
{
14464
return
isl::basic_set
(*this).
fix_si
(
type
,
pos
, value);
14465
}
14466
14467
isl::basic_set
point::fix_val
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::val
&v)
const
14468
{
14469
return
isl::basic_set
(*this).
fix_val
(
type
,
pos
, v);
14470
}
14471
14472
isl::basic_set
point::fix_val
(
isl::dim
type
,
unsigned
int
pos
,
long
v)
const
14473
{
14474
return
this->
fix_val
(type,
pos
,
isl::val
(
ctx
(), v));
14475
}
14476
14477
isl::basic_set
point::flatten
()
const
14478
{
14479
return
isl::basic_set
(*this).
flatten
();
14480
}
14481
14482
stat
point::foreach_basic_set
(
const
std::function<
stat
(
isl::basic_set
)> &
fn
)
const
14483
{
14484
return
isl::basic_set
(*this).
foreach_basic_set
(
fn
);
14485
}
14486
14487
stat
point::foreach_point
(
const
std::function<
stat
(
isl::point
)> &
fn
)
const
14488
{
14489
return
isl::basic_set
(*this).
foreach_point
(
fn
);
14490
}
14491
14492
stat
point::foreach_set
(
const
std::function<
stat
(
isl::set
)> &
fn
)
const
14493
{
14494
return
isl::basic_set
(*this).
foreach_set
(
fn
);
14495
}
14496
14497
isl::basic_set
point::gist
(
const
isl::basic_set
&
context
)
const
14498
{
14499
return
isl::basic_set
(*this).
gist
(
context
);
14500
}
14501
14502
isl::set
point::gist
(
const
isl::set
&
context
)
const
14503
{
14504
return
isl::basic_set
(*this).
gist
(
context
);
14505
}
14506
14507
isl::union_set
point::gist
(
const
isl::union_set
&
context
)
const
14508
{
14509
return
isl::basic_set
(*this).
gist
(
context
);
14510
}
14511
14512
isl::set
point::gist_params
(
const
isl::set
&
context
)
const
14513
{
14514
return
isl::basic_set
(*this).
gist_params
(
context
);
14515
}
14516
14517
boolean
point::has_equal_space
(
const
isl::set
&
set2
)
const
14518
{
14519
return
isl::basic_set
(*this).
has_equal_space
(
set2
);
14520
}
14521
14522
isl::map
point::identity
()
const
14523
{
14524
return
isl::basic_set
(*this).
identity
();
14525
}
14526
14527
isl::union_pw_multi_aff
point::identity_union_pw_multi_aff
()
const
14528
{
14529
return
isl::basic_set
(*this).
identity_union_pw_multi_aff
();
14530
}
14531
14532
isl::pw_aff
point::indicator_function
()
const
14533
{
14534
return
isl::basic_set
(*this).
indicator_function
();
14535
}
14536
14537
isl::set
point::insert_dims
(
isl::dim
type
,
unsigned
int
pos
,
unsigned
int
n
)
const
14538
{
14539
return
isl::basic_set
(*this).
insert_dims
(
type
,
pos
,
n
);
14540
}
14541
14542
isl::map
point::insert_domain
(
const
isl::space
&
domain
)
const
14543
{
14544
return
isl::basic_set
(*this).
insert_domain
(
domain
);
14545
}
14546
14547
isl::basic_set
point::intersect
(
const
isl::basic_set
&bset2)
const
14548
{
14549
return
isl::basic_set
(*this).
intersect
(bset2);
14550
}
14551
14552
isl::set
point::intersect
(
const
isl::set
&
set2
)
const
14553
{
14554
return
isl::basic_set
(*this).
intersect
(
set2
);
14555
}
14556
14557
isl::union_set
point::intersect
(
const
isl::union_set
&uset2)
const
14558
{
14559
return
isl::basic_set
(*this).
intersect
(uset2);
14560
}
14561
14562
isl::basic_set
point::intersect_params
(
const
isl::basic_set
&bset2)
const
14563
{
14564
return
isl::basic_set
(*this).
intersect_params
(bset2);
14565
}
14566
14567
isl::set
point::intersect_params
(
const
isl::set
&
params
)
const
14568
{
14569
return
isl::basic_set
(*this).
intersect_params
(
params
);
14570
}
14571
14572
boolean
point::involves_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
14573
{
14574
return
isl::basic_set
(*this).
involves_dims
(
type
, first,
n
);
14575
}
14576
14577
boolean
point::involves_locals
()
const
14578
{
14579
return
isl::basic_set
(*this).
involves_locals
();
14580
}
14581
14582
boolean
point::is_bounded
()
const
14583
{
14584
return
isl::basic_set
(*this).
is_bounded
();
14585
}
14586
14587
boolean
point::is_disjoint
(
const
isl::set
&
set2
)
const
14588
{
14589
return
isl::basic_set
(*this).
is_disjoint
(
set2
);
14590
}
14591
14592
boolean
point::is_disjoint
(
const
isl::union_set
&uset2)
const
14593
{
14594
return
isl::basic_set
(*this).
is_disjoint
(uset2);
14595
}
14596
14597
boolean
point::is_empty
()
const
14598
{
14599
return
isl::basic_set
(*this).
is_empty
();
14600
}
14601
14602
boolean
point::is_equal
(
const
isl::basic_set
&bset2)
const
14603
{
14604
return
isl::basic_set
(*this).
is_equal
(bset2);
14605
}
14606
14607
boolean
point::is_equal
(
const
isl::set
&
set2
)
const
14608
{
14609
return
isl::basic_set
(*this).
is_equal
(
set2
);
14610
}
14611
14612
boolean
point::is_equal
(
const
isl::union_set
&uset2)
const
14613
{
14614
return
isl::basic_set
(*this).
is_equal
(uset2);
14615
}
14616
14617
boolean
point::is_params
()
const
14618
{
14619
return
isl::basic_set
(*this).
is_params
();
14620
}
14621
14622
boolean
point::is_singleton
()
const
14623
{
14624
return
isl::basic_set
(*this).
is_singleton
();
14625
}
14626
14627
boolean
point::is_strict_subset
(
const
isl::set
&
set2
)
const
14628
{
14629
return
isl::basic_set
(*this).
is_strict_subset
(
set2
);
14630
}
14631
14632
boolean
point::is_strict_subset
(
const
isl::union_set
&uset2)
const
14633
{
14634
return
isl::basic_set
(*this).
is_strict_subset
(uset2);
14635
}
14636
14637
boolean
point::is_subset
(
const
isl::basic_set
&bset2)
const
14638
{
14639
return
isl::basic_set
(*this).
is_subset
(bset2);
14640
}
14641
14642
boolean
point::is_subset
(
const
isl::set
&
set2
)
const
14643
{
14644
return
isl::basic_set
(*this).
is_subset
(
set2
);
14645
}
14646
14647
boolean
point::is_subset
(
const
isl::union_set
&uset2)
const
14648
{
14649
return
isl::basic_set
(*this).
is_subset
(uset2);
14650
}
14651
14652
boolean
point::is_wrapping
()
const
14653
{
14654
return
isl::basic_set
(*this).
is_wrapping
();
14655
}
14656
14657
boolean
point::isa_set
()
const
14658
{
14659
return
isl::basic_set
(*this).
isa_set
();
14660
}
14661
14662
isl::set
point::lexmax
()
const
14663
{
14664
return
isl::basic_set
(*this).
lexmax
();
14665
}
14666
14667
isl::pw_multi_aff
point::lexmax_pw_multi_aff
()
const
14668
{
14669
return
isl::basic_set
(*this).
lexmax_pw_multi_aff
();
14670
}
14671
14672
isl::set
point::lexmin
()
const
14673
{
14674
return
isl::basic_set
(*this).
lexmin
();
14675
}
14676
14677
isl::pw_multi_aff
point::lexmin_pw_multi_aff
()
const
14678
{
14679
return
isl::basic_set
(*this).
lexmin_pw_multi_aff
();
14680
}
14681
14682
isl::set
point::lower_bound
(
const
isl::multi_pw_aff
&lower)
const
14683
{
14684
return
isl::basic_set
(*this).
lower_bound
(lower);
14685
}
14686
14687
isl::set
point::lower_bound
(
const
isl::multi_val
&lower)
const
14688
{
14689
return
isl::basic_set
(*this).
lower_bound
(lower);
14690
}
14691
14692
isl::set
point::lower_bound_si
(
isl::dim
type
,
unsigned
int
pos
,
int
value)
const
14693
{
14694
return
isl::basic_set
(*this).
lower_bound_si
(
type
,
pos
, value);
14695
}
14696
14697
isl::set
point::lower_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::val
&value)
const
14698
{
14699
return
isl::basic_set
(*this).
lower_bound_val
(
type
,
pos
, value);
14700
}
14701
14702
isl::set
point::lower_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
long
value)
const
14703
{
14704
return
this->
lower_bound_val
(type,
pos
,
isl::val
(
ctx
(), value));
14705
}
14706
14707
isl::multi_pw_aff
point::max_multi_pw_aff
()
const
14708
{
14709
return
isl::basic_set
(*this).
max_multi_pw_aff
();
14710
}
14711
14712
isl::val
point::max_val
(
const
isl::aff
&
obj
)
const
14713
{
14714
return
isl::basic_set
(*this).
max_val
(
obj
);
14715
}
14716
14717
isl::multi_pw_aff
point::min_multi_pw_aff
()
const
14718
{
14719
return
isl::basic_set
(*this).
min_multi_pw_aff
();
14720
}
14721
14722
isl::val
point::min_val
(
const
isl::aff
&
obj
)
const
14723
{
14724
return
isl::basic_set
(*this).
min_val
(
obj
);
14725
}
14726
14727
isl::multi_val
point::multi_val
()
const
14728
{
14729
auto
res
=
isl_point_get_multi_val
(
get
());
14730
return
manage
(
res
);
14731
}
14732
14733
isl::multi_val
point::get_multi_val
()
const
14734
{
14735
return
multi_val
();
14736
}
14737
14738
class
size
point::n_basic_set
()
const
14739
{
14740
return
isl::basic_set
(*this).
n_basic_set
();
14741
}
14742
14743
isl::basic_set
point::params
()
const
14744
{
14745
return
isl::basic_set
(*this).
params
();
14746
}
14747
14748
isl::val
point::plain_get_val_if_fixed
(
isl::dim
type
,
unsigned
int
pos
)
const
14749
{
14750
return
isl::basic_set
(*this).
plain_get_val_if_fixed
(
type
,
pos
);
14751
}
14752
14753
isl::multi_val
point::plain_multi_val_if_fixed
()
const
14754
{
14755
return
isl::basic_set
(*this).
plain_multi_val_if_fixed
();
14756
}
14757
14758
isl::basic_set
point::polyhedral_hull
()
const
14759
{
14760
return
isl::basic_set
(*this).
polyhedral_hull
();
14761
}
14762
14763
isl::set
point::preimage
(
const
isl::multi_aff
&
ma
)
const
14764
{
14765
return
isl::basic_set
(*this).
preimage
(
ma
);
14766
}
14767
14768
isl::set
point::preimage
(
const
isl::multi_pw_aff
&mpa)
const
14769
{
14770
return
isl::basic_set
(*this).
preimage
(mpa);
14771
}
14772
14773
isl::set
point::preimage
(
const
isl::pw_multi_aff
&
pma
)
const
14774
{
14775
return
isl::basic_set
(*this).
preimage
(
pma
);
14776
}
14777
14778
isl::union_set
point::preimage
(
const
isl::union_pw_multi_aff
&upma)
const
14779
{
14780
return
isl::basic_set
(*this).
preimage
(upma);
14781
}
14782
14783
isl::set
point::product
(
const
isl::set
&
set2
)
const
14784
{
14785
return
isl::basic_set
(*this).
product
(
set2
);
14786
}
14787
14788
isl::basic_set
point::project_out
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
14789
{
14790
return
isl::basic_set
(*this).
project_out
(
type
, first,
n
);
14791
}
14792
14793
isl::set
point::project_out_all_params
()
const
14794
{
14795
return
isl::basic_set
(*this).
project_out_all_params
();
14796
}
14797
14798
isl::set
point::project_out_param
(
const
isl::id
&
id
)
const
14799
{
14800
return
isl::basic_set
(*this).
project_out_param
(
id
);
14801
}
14802
14803
isl::set
point::project_out_param
(
const
std::string &
id
)
const
14804
{
14805
return
this->
project_out_param
(
isl::id
(
ctx
(),
id
));
14806
}
14807
14808
isl::set
point::project_out_param
(
const
isl::id_list
&list)
const
14809
{
14810
return
isl::basic_set
(*this).
project_out_param
(list);
14811
}
14812
14813
isl::pw_multi_aff
point::pw_multi_aff_on_domain
(
const
isl::multi_val
&mv)
const
14814
{
14815
return
isl::basic_set
(*this).
pw_multi_aff_on_domain
(mv);
14816
}
14817
14818
isl::set
point::remove_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
14819
{
14820
return
isl::basic_set
(*this).
remove_dims
(
type
, first,
n
);
14821
}
14822
14823
isl::set
point::remove_divs
()
const
14824
{
14825
return
isl::basic_set
(*this).
remove_divs
();
14826
}
14827
14828
isl::set
point::remove_redundancies
()
const
14829
{
14830
return
isl::basic_set
(*this).
remove_redundancies
();
14831
}
14832
14833
isl::set
point::reset_tuple_id
()
const
14834
{
14835
return
isl::basic_set
(*this).
reset_tuple_id
();
14836
}
14837
14838
isl::basic_set
point::sample
()
const
14839
{
14840
return
isl::basic_set
(*this).
sample
();
14841
}
14842
14843
isl::point
point::sample_point
()
const
14844
{
14845
return
isl::basic_set
(*this).
sample_point
();
14846
}
14847
14848
isl::set
point::set_dim_id
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::id
&
id
)
const
14849
{
14850
return
isl::basic_set
(*this).
set_dim_id
(
type
,
pos
,
id
);
14851
}
14852
14853
isl::set
point::set_dim_id
(
isl::dim
type
,
unsigned
int
pos
,
const
std::string &
id
)
const
14854
{
14855
return
this->
set_dim_id
(type,
pos
,
isl::id
(
ctx
(),
id
));
14856
}
14857
14858
isl::set_list
point::set_list
()
const
14859
{
14860
return
isl::basic_set
(*this).
set_list
();
14861
}
14862
14863
isl::set
point::set_tuple_id
(
const
isl::id
&
id
)
const
14864
{
14865
return
isl::basic_set
(*this).
set_tuple_id
(
id
);
14866
}
14867
14868
isl::set
point::set_tuple_id
(
const
std::string &
id
)
const
14869
{
14870
return
this->
set_tuple_id
(
isl::id
(
ctx
(),
id
));
14871
}
14872
14873
isl::fixed_box
point::simple_fixed_box_hull
()
const
14874
{
14875
return
isl::basic_set
(*this).
simple_fixed_box_hull
();
14876
}
14877
14878
isl::basic_set
point::simple_hull
()
const
14879
{
14880
return
isl::basic_set
(*this).
simple_hull
();
14881
}
14882
14883
isl::space
point::space
()
const
14884
{
14885
return
isl::basic_set
(*this).
space
();
14886
}
14887
14888
isl::val
point::stride
(
int
pos
)
const
14889
{
14890
return
isl::basic_set
(*this).
stride
(
pos
);
14891
}
14892
14893
isl::set
point::subtract
(
const
isl::set
&
set2
)
const
14894
{
14895
return
isl::basic_set
(*this).
subtract
(
set2
);
14896
}
14897
14898
isl::union_set
point::subtract
(
const
isl::union_set
&uset2)
const
14899
{
14900
return
isl::basic_set
(*this).
subtract
(uset2);
14901
}
14902
14903
isl::basic_set_list
point::to_list
()
const
14904
{
14905
return
isl::basic_set
(*this).
to_list
();
14906
}
14907
14908
isl::set
point::to_set
()
const
14909
{
14910
auto
res
=
isl_point_to_set
(
copy
());
14911
return
manage
(
res
);
14912
}
14913
14914
isl::union_set
point::to_union_set
()
const
14915
{
14916
return
isl::basic_set
(*this).
to_union_set
();
14917
}
14918
14919
isl::map
point::translation
()
const
14920
{
14921
return
isl::basic_set
(*this).
translation
();
14922
}
14923
14924
class
size
point::tuple_dim
()
const
14925
{
14926
return
isl::basic_set
(*this).
tuple_dim
();
14927
}
14928
14929
isl::id
point::tuple_id
()
const
14930
{
14931
return
isl::basic_set
(*this).
tuple_id
();
14932
}
14933
14934
std::string
point::tuple_name
()
const
14935
{
14936
return
isl::basic_set
(*this).
tuple_name
();
14937
}
14938
14939
isl::set
point::unbind_params
(
const
isl::multi_id
&
tuple
)
const
14940
{
14941
return
isl::basic_set
(*this).
unbind_params
(
tuple
);
14942
}
14943
14944
isl::map
point::unbind_params_insert_domain
(
const
isl::multi_id
&
domain
)
const
14945
{
14946
return
isl::basic_set
(*this).
unbind_params_insert_domain
(
domain
);
14947
}
14948
14949
isl::set
point::unite
(
const
isl::basic_set
&bset2)
const
14950
{
14951
return
isl::basic_set
(*this).
unite
(bset2);
14952
}
14953
14954
isl::set
point::unite
(
const
isl::set
&
set2
)
const
14955
{
14956
return
isl::basic_set
(*this).
unite
(
set2
);
14957
}
14958
14959
isl::union_set
point::unite
(
const
isl::union_set
&uset2)
const
14960
{
14961
return
isl::basic_set
(*this).
unite
(uset2);
14962
}
14963
14964
isl::basic_set
point::unshifted_simple_hull
()
const
14965
{
14966
return
isl::basic_set
(*this).
unshifted_simple_hull
();
14967
}
14968
14969
isl::map
point::unwrap
()
const
14970
{
14971
return
isl::basic_set
(*this).
unwrap
();
14972
}
14973
14974
isl::set
point::upper_bound
(
const
isl::multi_pw_aff
&upper)
const
14975
{
14976
return
isl::basic_set
(*this).
upper_bound
(upper);
14977
}
14978
14979
isl::set
point::upper_bound
(
const
isl::multi_val
&upper)
const
14980
{
14981
return
isl::basic_set
(*this).
upper_bound
(upper);
14982
}
14983
14984
isl::set
point::upper_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
const
isl::val
&value)
const
14985
{
14986
return
isl::basic_set
(*this).
upper_bound_val
(
type
,
pos
, value);
14987
}
14988
14989
isl::set
point::upper_bound_val
(
isl::dim
type
,
unsigned
int
pos
,
long
value)
const
14990
{
14991
return
this->
upper_bound_val
(type,
pos
,
isl::val
(
ctx
(), value));
14992
}
14993
14994
inline
std::ostream &
operator<<
(std::ostream &os,
const
point
&
obj
)
14995
{
14996
char
*
str
=
isl_point_to_str
(
obj
.get());
14997
if
(!
str
) {
14998
os.setstate(std::ios_base::badbit);
14999
return
os;
15000
}
15001
os <<
str
;
15002
free(
str
);
15003
return
os;
15004
}
15005
15006
// implementations for isl::pw_aff
15007
pw_aff
manage
(
__isl_take
isl_pw_aff
*
ptr
) {
15008
return
pw_aff
(
ptr
);
15009
}
15010
pw_aff
manage_copy
(
__isl_keep
isl_pw_aff
*
ptr
) {
15011
ptr
=
isl_pw_aff_copy
(
ptr
);
15012
return
pw_aff
(
ptr
);
15013
}
15014
15015
pw_aff::pw_aff
()
15016
:
ptr
(nullptr) {}
15017
15018
pw_aff::pw_aff
(
const
pw_aff
&
obj
)
15019
:
ptr
(nullptr)
15020
{
15021
ptr
=
obj
.copy();
15022
}
15023
15024
pw_aff::pw_aff
(
__isl_take
isl_pw_aff
*
ptr
)
15025
:
ptr
(
ptr
) {}
15026
15027
pw_aff::pw_aff
(
isl::aff
aff
)
15028
{
15029
auto
res
=
isl_pw_aff_from_aff
(
aff
.
release
());
15030
ptr
=
res
;
15031
}
15032
15033
pw_aff::pw_aff
(
isl::ctx
ctx
,
const
std::string &
str
)
15034
{
15035
auto
res
=
isl_pw_aff_read_from_str
(
ctx
.release(),
str
.c_str());
15036
ptr
=
res
;
15037
}
15038
15039
pw_aff::pw_aff
(
isl::set
domain
,
isl::val
v)
15040
{
15041
auto
res
=
isl_pw_aff_val_on_domain
(
domain
.release(), v.
release
());
15042
ptr
=
res
;
15043
}
15044
15045
pw_aff::pw_aff
(
isl::local_space
ls)
15046
{
15047
auto
res
=
isl_pw_aff_zero_on_domain
(ls.
release
());
15048
ptr
=
res
;
15049
}
15050
15051
pw_aff
&
pw_aff::operator=
(
pw_aff
obj
) {
15052
std::swap(this->ptr,
obj
.ptr);
15053
return
*
this
;
15054
}
15055
15056
pw_aff::~pw_aff
() {
15057
if
(
ptr
)
15058
isl_pw_aff_free
(
ptr
);
15059
}
15060
15061
__isl_give
isl_pw_aff
*
pw_aff::copy
() const & {
15062
return
isl_pw_aff_copy
(
ptr
);
15063
}
15064
15065
__isl_keep
isl_pw_aff
*
pw_aff::get
()
const
{
15066
return
ptr
;
15067
}
15068
15069
__isl_give
isl_pw_aff
*
pw_aff::release
() {
15070
isl_pw_aff
*tmp =
ptr
;
15071
ptr
=
nullptr
;
15072
return
tmp;
15073
}
15074
15075
bool
pw_aff::is_null
()
const
{
15076
return
ptr
==
nullptr
;
15077
}
15078
15079
isl::ctx
pw_aff::ctx
()
const
{
15080
return
isl::ctx
(
isl_pw_aff_get_ctx
(
ptr
));
15081
}
15082
15083
isl::multi_pw_aff
pw_aff::add
(
const
isl::multi_pw_aff
&multi2)
const
15084
{
15085
return
isl::pw_multi_aff
(*this).
add
(multi2);
15086
}
15087
15088
isl::multi_union_pw_aff
pw_aff::add
(
const
isl::multi_union_pw_aff
&multi2)
const
15089
{
15090
return
isl::union_pw_aff
(*this).
add
(multi2);
15091
}
15092
15093
isl::pw_aff
pw_aff::add
(
isl::pw_aff
pwaff2)
const
15094
{
15095
auto
res
=
isl_pw_aff_add
(
copy
(), pwaff2.
release
());
15096
return
manage
(
res
);
15097
}
15098
15099
isl::pw_multi_aff
pw_aff::add
(
const
isl::pw_multi_aff
&pma2)
const
15100
{
15101
return
isl::pw_multi_aff
(*this).
add
(pma2);
15102
}
15103
15104
isl::union_pw_aff
pw_aff::add
(
const
isl::union_pw_aff
&upa2)
const
15105
{
15106
return
isl::union_pw_aff
(*this).
add
(upa2);
15107
}
15108
15109
isl::union_pw_multi_aff
pw_aff::add
(
const
isl::union_pw_multi_aff
&upma2)
const
15110
{
15111
return
isl::union_pw_aff
(*this).
add
(upma2);
15112
}
15113
15114
isl::pw_aff
pw_aff::add
(
const
isl::aff
&pwaff2)
const
15115
{
15116
return
this->
add
(
isl::pw_aff
(pwaff2));
15117
}
15118
15119
isl::pw_aff
pw_aff::add_constant
(
isl::val
v)
const
15120
{
15121
auto
res
=
isl_pw_aff_add_constant_val
(
copy
(), v.
release
());
15122
return
manage
(
res
);
15123
}
15124
15125
isl::pw_aff
pw_aff::add_constant
(
long
v)
const
15126
{
15127
return
this->
add_constant
(
isl::val
(
ctx
(), v));
15128
}
15129
15130
isl::pw_multi_aff
pw_aff::add_constant
(
const
isl::multi_val
&mv)
const
15131
{
15132
return
isl::pw_multi_aff
(*this).
add_constant
(mv);
15133
}
15134
15135
isl::pw_aff
pw_aff::add_dims
(
isl::dim
type
,
unsigned
int
n
)
const
15136
{
15137
auto
res
=
isl_pw_aff_add_dims
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
n
);
15138
return
manage
(
res
);
15139
}
15140
15141
isl::union_pw_multi_aff
pw_aff::add_pw_multi_aff
(
const
isl::pw_multi_aff
&
pma
)
const
15142
{
15143
return
isl::union_pw_aff
(*this).
add_pw_multi_aff
(
pma
);
15144
}
15145
15146
isl::union_pw_multi_aff
pw_aff::apply
(
const
isl::union_pw_multi_aff
&upma2)
const
15147
{
15148
return
isl::union_pw_aff
(*this).
apply
(upma2);
15149
}
15150
15151
isl::aff
pw_aff::as_aff
()
const
15152
{
15153
auto
res
=
isl_pw_aff_as_aff
(
copy
());
15154
return
manage
(
res
);
15155
}
15156
15157
isl::map
pw_aff::as_map
()
const
15158
{
15159
auto
res
=
isl_pw_aff_as_map
(
copy
());
15160
return
manage
(
res
);
15161
}
15162
15163
isl::multi_aff
pw_aff::as_multi_aff
()
const
15164
{
15165
return
isl::pw_multi_aff
(*this).
as_multi_aff
();
15166
}
15167
15168
isl::multi_union_pw_aff
pw_aff::as_multi_union_pw_aff
()
const
15169
{
15170
return
isl::union_pw_aff
(*this).
as_multi_union_pw_aff
();
15171
}
15172
15173
isl::pw_multi_aff
pw_aff::as_pw_multi_aff
()
const
15174
{
15175
return
isl::union_pw_aff
(*this).
as_pw_multi_aff
();
15176
}
15177
15178
isl::set
pw_aff::as_set
()
const
15179
{
15180
return
isl::pw_multi_aff
(*this).
as_set
();
15181
}
15182
15183
isl::union_map
pw_aff::as_union_map
()
const
15184
{
15185
return
isl::union_pw_aff
(*this).
as_union_map
();
15186
}
15187
15188
isl::pw_aff
pw_aff::at
(
int
pos
)
const
15189
{
15190
return
isl::pw_multi_aff
(*this).
at
(
pos
);
15191
}
15192
15193
isl::set
pw_aff::bind
(
const
isl::multi_id
&
tuple
)
const
15194
{
15195
return
isl::multi_pw_aff
(*this).
bind
(
tuple
);
15196
}
15197
15198
isl::set
pw_aff::bind
(
isl::id
id
)
const
15199
{
15200
auto
res
=
isl_pw_aff_bind_id
(
copy
(),
id
.
release
());
15201
return
manage
(
res
);
15202
}
15203
15204
isl::set
pw_aff::bind
(
const
std::string &
id
)
const
15205
{
15206
return
this->
bind
(
isl::id
(
ctx
(),
id
));
15207
}
15208
15209
isl::pw_aff
pw_aff::bind_domain
(
isl::multi_id
tuple
)
const
15210
{
15211
auto
res
=
isl_pw_aff_bind_domain
(
copy
(),
tuple
.release());
15212
return
manage
(
res
);
15213
}
15214
15215
isl::pw_aff
pw_aff::bind_domain_wrapped_domain
(
isl::multi_id
tuple
)
const
15216
{
15217
auto
res
=
isl_pw_aff_bind_domain_wrapped_domain
(
copy
(),
tuple
.release());
15218
return
manage
(
res
);
15219
}
15220
15221
isl::pw_aff
pw_aff::ceil
()
const
15222
{
15223
auto
res
=
isl_pw_aff_ceil
(
copy
());
15224
return
manage
(
res
);
15225
}
15226
15227
isl::pw_aff
pw_aff::coalesce
()
const
15228
{
15229
auto
res
=
isl_pw_aff_coalesce
(
copy
());
15230
return
manage
(
res
);
15231
}
15232
15233
isl::pw_aff
pw_aff::cond
(
isl::pw_aff
pwaff_true,
isl::pw_aff
pwaff_false)
const
15234
{
15235
auto
res
=
isl_pw_aff_cond
(
copy
(), pwaff_true.
release
(), pwaff_false.
release
());
15236
return
manage
(
res
);
15237
}
15238
15239
class
size
pw_aff::dim
(
isl::dim
type
)
const
15240
{
15241
return
isl::pw_multi_aff
(*this).
dim
(
type
);
15242
}
15243
15244
isl::id
pw_aff::dim_id
(
isl::dim
type
,
unsigned
int
pos
)
const
15245
{
15246
auto
res
=
isl_pw_aff_get_dim_id
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
);
15247
return
manage
(
res
);
15248
}
15249
15250
isl::id
pw_aff::get_dim_id
(
isl::dim
type
,
unsigned
int
pos
)
const
15251
{
15252
return
dim_id
(
type
,
pos
);
15253
}
15254
15255
isl::pw_aff
pw_aff::div
(
isl::pw_aff
pa2)
const
15256
{
15257
auto
res
=
isl_pw_aff_div
(
copy
(), pa2.
release
());
15258
return
manage
(
res
);
15259
}
15260
15261
isl::set
pw_aff::domain
()
const
15262
{
15263
auto
res
=
isl_pw_aff_domain
(
copy
());
15264
return
manage
(
res
);
15265
}
15266
15267
isl::space
pw_aff::domain_space
()
const
15268
{
15269
auto
res
=
isl_pw_aff_get_domain_space
(
get
());
15270
return
manage
(
res
);
15271
}
15272
15273
isl::space
pw_aff::get_domain_space
()
const
15274
{
15275
return
domain_space
();
15276
}
15277
15278
isl::pw_multi_aff
pw_aff::drop_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
15279
{
15280
return
isl::pw_multi_aff
(*this).
drop_dims
(
type
, first,
n
);
15281
}
15282
15283
isl::set
pw_aff::eq_set
(
isl::pw_aff
pwaff2)
const
15284
{
15285
auto
res
=
isl_pw_aff_eq_set
(
copy
(), pwaff2.
release
());
15286
return
manage
(
res
);
15287
}
15288
15289
isl::val
pw_aff::eval
(
isl::point
pnt)
const
15290
{
15291
auto
res
=
isl_pw_aff_eval
(
copy
(), pnt.
release
());
15292
return
manage
(
res
);
15293
}
15294
15295
isl::pw_multi_aff
pw_aff::extract_pw_multi_aff
(
const
isl::space
&
space
)
const
15296
{
15297
return
isl::union_pw_aff
(*this).
extract_pw_multi_aff
(
space
);
15298
}
15299
15300
isl::multi_pw_aff
pw_aff::flat_range_product
(
const
isl::multi_pw_aff
&multi2)
const
15301
{
15302
return
isl::pw_multi_aff
(*this).
flat_range_product
(multi2);
15303
}
15304
15305
isl::multi_union_pw_aff
pw_aff::flat_range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
15306
{
15307
return
isl::union_pw_aff
(*this).
flat_range_product
(multi2);
15308
}
15309
15310
isl::pw_multi_aff
pw_aff::flat_range_product
(
const
isl::pw_multi_aff
&pma2)
const
15311
{
15312
return
isl::pw_multi_aff
(*this).
flat_range_product
(pma2);
15313
}
15314
15315
isl::union_pw_multi_aff
pw_aff::flat_range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
15316
{
15317
return
isl::union_pw_aff
(*this).
flat_range_product
(upma2);
15318
}
15319
15320
isl::pw_aff
pw_aff::floor
()
const
15321
{
15322
auto
res
=
isl_pw_aff_floor
(
copy
());
15323
return
manage
(
res
);
15324
}
15325
15326
stat
pw_aff::foreach_piece
(
const
std::function<
stat
(
isl::set
,
isl::aff
)> &
fn
)
const
15327
{
15328
struct
fn_data {
15329
std::function<
stat
(
isl::set
,
isl::aff
)> func;
15330
} fn_data = {
fn
};
15331
auto
fn_lambda = [](
isl_set
*arg_0,
isl_aff
*arg_1,
void
*arg_2) ->
isl_stat
{
15332
auto
*data =
static_cast<
struct fn_data *
>
(arg_2);
15333
auto
ret = (data->func)(
manage
(arg_0),
manage
(arg_1));
15334
return
ret.release();
15335
};
15336
auto
res
=
isl_pw_aff_foreach_piece
(
get
(), fn_lambda, &fn_data);
15337
return
manage
(
res
);
15338
}
15339
15340
stat
pw_aff::foreach_piece
(
const
std::function<
stat
(
isl::set
,
isl::multi_aff
)> &
fn
)
const
15341
{
15342
return
isl::pw_multi_aff
(*this).
foreach_piece
(
fn
);
15343
}
15344
15345
stat
pw_aff::foreach_pw_aff
(
const
std::function<
stat
(
isl::pw_aff
)> &
fn
)
const
15346
{
15347
return
isl::union_pw_aff
(*this).
foreach_pw_aff
(
fn
);
15348
}
15349
15350
isl::set
pw_aff::ge_set
(
isl::pw_aff
pwaff2)
const
15351
{
15352
auto
res
=
isl_pw_aff_ge_set
(
copy
(), pwaff2.
release
());
15353
return
manage
(
res
);
15354
}
15355
15356
isl::pw_aff
pw_aff::gist
(
isl::set
context
)
const
15357
{
15358
auto
res
=
isl_pw_aff_gist
(
copy
(),
context
.release());
15359
return
manage
(
res
);
15360
}
15361
15362
isl::union_pw_aff
pw_aff::gist
(
const
isl::union_set
&
context
)
const
15363
{
15364
return
isl::union_pw_aff
(*this).
gist
(
context
);
15365
}
15366
15367
isl::pw_aff
pw_aff::gist
(
const
isl::basic_set
&
context
)
const
15368
{
15369
return
this->
gist
(
isl::set
(
context
));
15370
}
15371
15372
isl::pw_aff
pw_aff::gist
(
const
isl::point
&
context
)
const
15373
{
15374
return
this->
gist
(
isl::set
(
context
));
15375
}
15376
15377
isl::set
pw_aff::gt_set
(
isl::pw_aff
pwaff2)
const
15378
{
15379
auto
res
=
isl_pw_aff_gt_set
(
copy
(), pwaff2.
release
());
15380
return
manage
(
res
);
15381
}
15382
15383
boolean
pw_aff::has_range_tuple_id
()
const
15384
{
15385
return
isl::pw_multi_aff
(*this).
has_range_tuple_id
();
15386
}
15387
15388
isl::multi_pw_aff
pw_aff::identity
()
const
15389
{
15390
return
isl::pw_multi_aff
(*this).
identity
();
15391
}
15392
15393
isl::pw_aff
pw_aff::insert_domain
(
isl::space
domain
)
const
15394
{
15395
auto
res
=
isl_pw_aff_insert_domain
(
copy
(),
domain
.release());
15396
return
manage
(
res
);
15397
}
15398
15399
isl::pw_aff
pw_aff::intersect_domain
(
isl::set
set
)
const
15400
{
15401
auto
res
=
isl_pw_aff_intersect_domain
(
copy
(),
set
.
release
());
15402
return
manage
(
res
);
15403
}
15404
15405
isl::union_pw_aff
pw_aff::intersect_domain
(
const
isl::space
&
space
)
const
15406
{
15407
return
isl::union_pw_aff
(*this).
intersect_domain
(
space
);
15408
}
15409
15410
isl::union_pw_aff
pw_aff::intersect_domain
(
const
isl::union_set
&uset)
const
15411
{
15412
return
isl::union_pw_aff
(*this).
intersect_domain
(uset);
15413
}
15414
15415
isl::pw_aff
pw_aff::intersect_domain
(
const
isl::basic_set
&
set
)
const
15416
{
15417
return
this->
intersect_domain
(
isl::set
(
set
));
15418
}
15419
15420
isl::pw_aff
pw_aff::intersect_domain
(
const
isl::point
&
set
)
const
15421
{
15422
return
this->
intersect_domain
(
isl::set
(
set
));
15423
}
15424
15425
isl::union_pw_aff
pw_aff::intersect_domain_wrapped_domain
(
const
isl::union_set
&uset)
const
15426
{
15427
return
isl::union_pw_aff
(*this).
intersect_domain_wrapped_domain
(uset);
15428
}
15429
15430
isl::union_pw_aff
pw_aff::intersect_domain_wrapped_range
(
const
isl::union_set
&uset)
const
15431
{
15432
return
isl::union_pw_aff
(*this).
intersect_domain_wrapped_range
(uset);
15433
}
15434
15435
isl::pw_aff
pw_aff::intersect_params
(
isl::set
set
)
const
15436
{
15437
auto
res
=
isl_pw_aff_intersect_params
(
copy
(),
set
.
release
());
15438
return
manage
(
res
);
15439
}
15440
15441
boolean
pw_aff::involves_locals
()
const
15442
{
15443
return
isl::pw_multi_aff
(*this).
involves_locals
();
15444
}
15445
15446
boolean
pw_aff::involves_nan
()
const
15447
{
15448
return
isl::multi_pw_aff
(*this).
involves_nan
();
15449
}
15450
15451
boolean
pw_aff::involves_param
(
const
isl::id
&
id
)
const
15452
{
15453
return
isl::pw_multi_aff
(*this).
involves_param
(
id
);
15454
}
15455
15456
boolean
pw_aff::involves_param
(
const
std::string &
id
)
const
15457
{
15458
return
this->
involves_param
(
isl::id
(
ctx
(),
id
));
15459
}
15460
15461
boolean
pw_aff::involves_param
(
const
isl::id_list
&
list
)
const
15462
{
15463
return
isl::pw_multi_aff
(*this).
involves_param
(
list
);
15464
}
15465
15466
boolean
pw_aff::is_cst
()
const
15467
{
15468
auto
res
=
isl_pw_aff_is_cst
(
get
());
15469
return
manage
(
res
);
15470
}
15471
15472
boolean
pw_aff::is_equal
(
const
isl::pw_aff
&pa2)
const
15473
{
15474
auto
res
=
isl_pw_aff_is_equal
(
get
(), pa2.
get
());
15475
return
manage
(
res
);
15476
}
15477
15478
boolean
pw_aff::isa_aff
()
const
15479
{
15480
auto
res
=
isl_pw_aff_isa_aff
(
get
());
15481
return
manage
(
res
);
15482
}
15483
15484
boolean
pw_aff::isa_multi_aff
()
const
15485
{
15486
return
isl::pw_multi_aff
(*this).
isa_multi_aff
();
15487
}
15488
15489
boolean
pw_aff::isa_pw_multi_aff
()
const
15490
{
15491
return
isl::union_pw_aff
(*this).
isa_pw_multi_aff
();
15492
}
15493
15494
isl::set
pw_aff::le_set
(
isl::pw_aff
pwaff2)
const
15495
{
15496
auto
res
=
isl_pw_aff_le_set
(
copy
(), pwaff2.
release
());
15497
return
manage
(
res
);
15498
}
15499
15500
isl::pw_aff_list
pw_aff::list
()
const
15501
{
15502
return
isl::multi_pw_aff
(*this).
list
();
15503
}
15504
15505
isl::set
pw_aff::lt_set
(
isl::pw_aff
pwaff2)
const
15506
{
15507
auto
res
=
isl_pw_aff_lt_set
(
copy
(), pwaff2.
release
());
15508
return
manage
(
res
);
15509
}
15510
15511
isl::multi_pw_aff
pw_aff::max
(
const
isl::multi_pw_aff
&multi2)
const
15512
{
15513
return
isl::pw_multi_aff
(*this).
max
(multi2);
15514
}
15515
15516
isl::pw_aff
pw_aff::max
(
isl::pw_aff
pwaff2)
const
15517
{
15518
auto
res
=
isl_pw_aff_max
(
copy
(), pwaff2.
release
());
15519
return
manage
(
res
);
15520
}
15521
15522
isl::pw_aff
pw_aff::max
(
const
isl::aff
&pwaff2)
const
15523
{
15524
return
this->
max
(
isl::pw_aff
(pwaff2));
15525
}
15526
15527
isl::multi_val
pw_aff::max_multi_val
()
const
15528
{
15529
return
isl::pw_multi_aff
(*this).
max_multi_val
();
15530
}
15531
15532
isl::multi_pw_aff
pw_aff::min
(
const
isl::multi_pw_aff
&multi2)
const
15533
{
15534
return
isl::pw_multi_aff
(*this).
min
(multi2);
15535
}
15536
15537
isl::pw_aff
pw_aff::min
(
isl::pw_aff
pwaff2)
const
15538
{
15539
auto
res
=
isl_pw_aff_min
(
copy
(), pwaff2.
release
());
15540
return
manage
(
res
);
15541
}
15542
15543
isl::pw_aff
pw_aff::min
(
const
isl::aff
&pwaff2)
const
15544
{
15545
return
this->
min
(
isl::pw_aff
(pwaff2));
15546
}
15547
15548
isl::multi_val
pw_aff::min_multi_val
()
const
15549
{
15550
return
isl::pw_multi_aff
(*this).
min_multi_val
();
15551
}
15552
15553
isl::pw_aff
pw_aff::mod
(
isl::val
mod
)
const
15554
{
15555
auto
res
=
isl_pw_aff_mod_val
(
copy
(),
mod
.release());
15556
return
manage
(
res
);
15557
}
15558
15559
isl::pw_aff
pw_aff::mod
(
long
mod
)
const
15560
{
15561
return
this->
mod
(
isl::val
(
ctx
(),
mod
));
15562
}
15563
15564
isl::pw_aff
pw_aff::mul
(
isl::pw_aff
pwaff2)
const
15565
{
15566
auto
res
=
isl_pw_aff_mul
(
copy
(), pwaff2.
release
());
15567
return
manage
(
res
);
15568
}
15569
15570
class
size
pw_aff::n_piece
()
const
15571
{
15572
return
isl::pw_multi_aff
(*this).
n_piece
();
15573
}
15574
15575
isl::set
pw_aff::ne_set
(
isl::pw_aff
pwaff2)
const
15576
{
15577
auto
res
=
isl_pw_aff_ne_set
(
copy
(), pwaff2.
release
());
15578
return
manage
(
res
);
15579
}
15580
15581
isl::pw_aff
pw_aff::neg
()
const
15582
{
15583
auto
res
=
isl_pw_aff_neg
(
copy
());
15584
return
manage
(
res
);
15585
}
15586
15587
isl::pw_aff
pw_aff::param_on_domain
(
isl::set
domain
,
isl::id
id
)
15588
{
15589
auto
res
=
isl_pw_aff_param_on_domain_id
(
domain
.release(),
id
.release());
15590
return
manage
(
res
);
15591
}
15592
15593
boolean
pw_aff::plain_is_empty
()
const
15594
{
15595
return
isl::union_pw_aff
(*this).
plain_is_empty
();
15596
}
15597
15598
boolean
pw_aff::plain_is_equal
(
const
isl::multi_pw_aff
&multi2)
const
15599
{
15600
return
isl::pw_multi_aff
(*this).
plain_is_equal
(multi2);
15601
}
15602
15603
boolean
pw_aff::plain_is_equal
(
const
isl::multi_union_pw_aff
&multi2)
const
15604
{
15605
return
isl::union_pw_aff
(*this).
plain_is_equal
(multi2);
15606
}
15607
15608
isl::pw_multi_aff
pw_aff::preimage_domain_wrapped_domain
(
const
isl::pw_multi_aff
&pma2)
const
15609
{
15610
return
isl::pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(pma2);
15611
}
15612
15613
isl::union_pw_multi_aff
pw_aff::preimage_domain_wrapped_domain
(
const
isl::union_pw_multi_aff
&upma2)
const
15614
{
15615
return
isl::union_pw_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
15616
}
15617
15618
isl::multi_pw_aff
pw_aff::product
(
const
isl::multi_pw_aff
&multi2)
const
15619
{
15620
return
isl::pw_multi_aff
(*this).
product
(multi2);
15621
}
15622
15623
isl::pw_multi_aff
pw_aff::product
(
const
isl::pw_multi_aff
&pma2)
const
15624
{
15625
return
isl::pw_multi_aff
(*this).
product
(pma2);
15626
}
15627
15628
isl::pw_aff
pw_aff::pullback
(
isl::multi_aff
ma
)
const
15629
{
15630
auto
res
=
isl_pw_aff_pullback_multi_aff
(
copy
(),
ma
.release());
15631
return
manage
(
res
);
15632
}
15633
15634
isl::pw_aff
pw_aff::pullback
(
isl::multi_pw_aff
mpa)
const
15635
{
15636
auto
res
=
isl_pw_aff_pullback_multi_pw_aff
(
copy
(), mpa.
release
());
15637
return
manage
(
res
);
15638
}
15639
15640
isl::pw_aff
pw_aff::pullback
(
isl::pw_multi_aff
pma
)
const
15641
{
15642
auto
res
=
isl_pw_aff_pullback_pw_multi_aff
(
copy
(),
pma
.release());
15643
return
manage
(
res
);
15644
}
15645
15646
isl::union_pw_aff
pw_aff::pullback
(
const
isl::union_pw_multi_aff
&upma)
const
15647
{
15648
return
isl::union_pw_aff
(*this).
pullback
(upma);
15649
}
15650
15651
isl::pw_multi_aff_list
pw_aff::pw_multi_aff_list
()
const
15652
{
15653
return
isl::union_pw_aff
(*this).
pw_multi_aff_list
();
15654
}
15655
15656
isl::pw_multi_aff
pw_aff::range_factor_domain
()
const
15657
{
15658
return
isl::pw_multi_aff
(*this).
range_factor_domain
();
15659
}
15660
15661
isl::pw_multi_aff
pw_aff::range_factor_range
()
const
15662
{
15663
return
isl::pw_multi_aff
(*this).
range_factor_range
();
15664
}
15665
15666
isl::multi_pw_aff
pw_aff::range_product
(
const
isl::multi_pw_aff
&multi2)
const
15667
{
15668
return
isl::pw_multi_aff
(*this).
range_product
(multi2);
15669
}
15670
15671
isl::multi_union_pw_aff
pw_aff::range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
15672
{
15673
return
isl::union_pw_aff
(*this).
range_product
(multi2);
15674
}
15675
15676
isl::pw_multi_aff
pw_aff::range_product
(
const
isl::pw_multi_aff
&pma2)
const
15677
{
15678
return
isl::pw_multi_aff
(*this).
range_product
(pma2);
15679
}
15680
15681
isl::union_pw_multi_aff
pw_aff::range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
15682
{
15683
return
isl::union_pw_aff
(*this).
range_product
(upma2);
15684
}
15685
15686
isl::id
pw_aff::range_tuple_id
()
const
15687
{
15688
return
isl::pw_multi_aff
(*this).
range_tuple_id
();
15689
}
15690
15691
isl::multi_pw_aff
pw_aff::reset_range_tuple_id
()
const
15692
{
15693
return
isl::multi_pw_aff
(*this).
reset_range_tuple_id
();
15694
}
15695
15696
isl::multi_pw_aff
pw_aff::reset_tuple_id
(
isl::dim
type
)
const
15697
{
15698
return
isl::multi_pw_aff
(*this).
reset_tuple_id
(
type
);
15699
}
15700
15701
isl::multi_pw_aff
pw_aff::scale
(
const
isl::multi_val
&mv)
const
15702
{
15703
return
isl::multi_pw_aff
(*this).
scale
(mv);
15704
}
15705
15706
isl::pw_aff
pw_aff::scale
(
isl::val
v)
const
15707
{
15708
auto
res
=
isl_pw_aff_scale_val
(
copy
(), v.
release
());
15709
return
manage
(
res
);
15710
}
15711
15712
isl::pw_aff
pw_aff::scale
(
long
v)
const
15713
{
15714
return
this->
scale
(
isl::val
(
ctx
(), v));
15715
}
15716
15717
isl::multi_pw_aff
pw_aff::scale_down
(
const
isl::multi_val
&mv)
const
15718
{
15719
return
isl::multi_pw_aff
(*this).
scale_down
(mv);
15720
}
15721
15722
isl::pw_aff
pw_aff::scale_down
(
isl::val
f
)
const
15723
{
15724
auto
res
=
isl_pw_aff_scale_down_val
(
copy
(),
f
.release());
15725
return
manage
(
res
);
15726
}
15727
15728
isl::pw_aff
pw_aff::scale_down
(
long
f
)
const
15729
{
15730
return
this->
scale_down
(
isl::val
(
ctx
(),
f
));
15731
}
15732
15733
isl::multi_pw_aff
pw_aff::set_at
(
int
pos
,
const
isl::pw_aff
&el)
const
15734
{
15735
return
isl::pw_multi_aff
(*this).
set_at
(
pos
, el);
15736
}
15737
15738
isl::multi_union_pw_aff
pw_aff::set_at
(
int
pos
,
const
isl::union_pw_aff
&el)
const
15739
{
15740
return
isl::union_pw_aff
(*this).
set_at
(
pos
, el);
15741
}
15742
15743
isl::multi_pw_aff
pw_aff::set_pw_aff
(
int
pos
,
const
isl::pw_aff
&el)
const
15744
{
15745
return
isl::pw_multi_aff
(*this).
set_pw_aff
(
pos
, el);
15746
}
15747
15748
isl::pw_multi_aff
pw_aff::set_pw_aff
(
unsigned
int
pos
,
const
isl::pw_aff
&
pa
)
const
15749
{
15750
return
isl::pw_multi_aff
(*this).
set_pw_aff
(
pos
,
pa
);
15751
}
15752
15753
isl::pw_multi_aff
pw_aff::set_range_tuple
(
const
isl::id
&
id
)
const
15754
{
15755
return
isl::pw_multi_aff
(*this).
set_range_tuple
(
id
);
15756
}
15757
15758
isl::pw_multi_aff
pw_aff::set_range_tuple
(
const
std::string &
id
)
const
15759
{
15760
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
15761
}
15762
15763
isl::pw_aff
pw_aff::set_tuple_id
(
isl::dim
type
,
isl::id
id
)
const
15764
{
15765
auto
res
=
isl_pw_aff_set_tuple_id
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
),
id
.
release
());
15766
return
manage
(
res
);
15767
}
15768
15769
isl::pw_aff
pw_aff::set_tuple_id
(
isl::dim
type
,
const
std::string &
id
)
const
15770
{
15771
return
this->
set_tuple_id
(type,
isl::id
(
ctx
(),
id
));
15772
}
15773
15774
isl::multi_union_pw_aff
pw_aff::set_union_pw_aff
(
int
pos
,
const
isl::union_pw_aff
&el)
const
15775
{
15776
return
isl::union_pw_aff
(*this).
set_union_pw_aff
(
pos
, el);
15777
}
15778
15779
class
size
pw_aff::size
()
const
15780
{
15781
return
isl::multi_pw_aff
(*this).
size
();
15782
}
15783
15784
isl::space
pw_aff::space
()
const
15785
{
15786
auto
res
=
isl_pw_aff_get_space
(
get
());
15787
return
manage
(
res
);
15788
}
15789
15790
isl::space
pw_aff::get_space
()
const
15791
{
15792
return
space
();
15793
}
15794
15795
isl::multi_pw_aff
pw_aff::sub
(
const
isl::multi_pw_aff
&multi2)
const
15796
{
15797
return
isl::pw_multi_aff
(*this).
sub
(multi2);
15798
}
15799
15800
isl::multi_union_pw_aff
pw_aff::sub
(
const
isl::multi_union_pw_aff
&multi2)
const
15801
{
15802
return
isl::union_pw_aff
(*this).
sub
(multi2);
15803
}
15804
15805
isl::pw_aff
pw_aff::sub
(
isl::pw_aff
pwaff2)
const
15806
{
15807
auto
res
=
isl_pw_aff_sub
(
copy
(), pwaff2.
release
());
15808
return
manage
(
res
);
15809
}
15810
15811
isl::pw_multi_aff
pw_aff::sub
(
const
isl::pw_multi_aff
&pma2)
const
15812
{
15813
return
isl::pw_multi_aff
(*this).
sub
(pma2);
15814
}
15815
15816
isl::union_pw_aff
pw_aff::sub
(
const
isl::union_pw_aff
&upa2)
const
15817
{
15818
return
isl::union_pw_aff
(*this).
sub
(upa2);
15819
}
15820
15821
isl::union_pw_multi_aff
pw_aff::sub
(
const
isl::union_pw_multi_aff
&upma2)
const
15822
{
15823
return
isl::union_pw_aff
(*this).
sub
(upma2);
15824
}
15825
15826
isl::pw_aff
pw_aff::sub
(
const
isl::aff
&pwaff2)
const
15827
{
15828
return
this->
sub
(
isl::pw_aff
(pwaff2));
15829
}
15830
15831
isl::pw_aff
pw_aff::subtract_domain
(
isl::set
set
)
const
15832
{
15833
auto
res
=
isl_pw_aff_subtract_domain
(
copy
(),
set
.
release
());
15834
return
manage
(
res
);
15835
}
15836
15837
isl::union_pw_aff
pw_aff::subtract_domain
(
const
isl::space
&
space
)
const
15838
{
15839
return
isl::union_pw_aff
(*this).
subtract_domain
(
space
);
15840
}
15841
15842
isl::union_pw_aff
pw_aff::subtract_domain
(
const
isl::union_set
&uset)
const
15843
{
15844
return
isl::union_pw_aff
(*this).
subtract_domain
(uset);
15845
}
15846
15847
isl::pw_aff
pw_aff::subtract_domain
(
const
isl::basic_set
&
set
)
const
15848
{
15849
return
this->
subtract_domain
(
isl::set
(
set
));
15850
}
15851
15852
isl::pw_aff
pw_aff::subtract_domain
(
const
isl::point
&
set
)
const
15853
{
15854
return
this->
subtract_domain
(
isl::set
(
set
));
15855
}
15856
15857
isl::pw_aff
pw_aff::tdiv_q
(
isl::pw_aff
pa2)
const
15858
{
15859
auto
res
=
isl_pw_aff_tdiv_q
(
copy
(), pa2.
release
());
15860
return
manage
(
res
);
15861
}
15862
15863
isl::pw_aff
pw_aff::tdiv_r
(
isl::pw_aff
pa2)
const
15864
{
15865
auto
res
=
isl_pw_aff_tdiv_r
(
copy
(), pa2.
release
());
15866
return
manage
(
res
);
15867
}
15868
15869
isl::pw_aff_list
pw_aff::to_list
()
const
15870
{
15871
auto
res
= isl_pw_aff_to_list(
copy
());
15872
return
manage
(
res
);
15873
}
15874
15875
isl::multi_pw_aff
pw_aff::to_multi_pw_aff
()
const
15876
{
15877
return
isl::pw_multi_aff
(*this).
to_multi_pw_aff
();
15878
}
15879
15880
isl::union_pw_aff
pw_aff::to_union_pw_aff
()
const
15881
{
15882
auto
res
=
isl_pw_aff_to_union_pw_aff
(
copy
());
15883
return
manage
(
res
);
15884
}
15885
15886
isl::union_pw_multi_aff
pw_aff::to_union_pw_multi_aff
()
const
15887
{
15888
return
isl::pw_multi_aff
(*this).
to_union_pw_multi_aff
();
15889
}
15890
15891
isl::id
pw_aff::tuple_id
(
isl::dim
type
)
const
15892
{
15893
auto
res
=
isl_pw_aff_get_tuple_id
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
15894
return
manage
(
res
);
15895
}
15896
15897
isl::id
pw_aff::get_tuple_id
(
isl::dim
type
)
const
15898
{
15899
return
tuple_id
(
type
);
15900
}
15901
15902
isl::multi_pw_aff
pw_aff::unbind_params_insert_domain
(
const
isl::multi_id
&
domain
)
const
15903
{
15904
return
isl::pw_multi_aff
(*this).
unbind_params_insert_domain
(
domain
);
15905
}
15906
15907
isl::multi_pw_aff
pw_aff::union_add
(
const
isl::multi_pw_aff
&mpa2)
const
15908
{
15909
return
isl::pw_multi_aff
(*this).
union_add
(mpa2);
15910
}
15911
15912
isl::multi_union_pw_aff
pw_aff::union_add
(
const
isl::multi_union_pw_aff
&mupa2)
const
15913
{
15914
return
isl::union_pw_aff
(*this).
union_add
(mupa2);
15915
}
15916
15917
isl::pw_aff
pw_aff::union_add
(
isl::pw_aff
pwaff2)
const
15918
{
15919
auto
res
=
isl_pw_aff_union_add
(
copy
(), pwaff2.
release
());
15920
return
manage
(
res
);
15921
}
15922
15923
isl::pw_multi_aff
pw_aff::union_add
(
const
isl::pw_multi_aff
&pma2)
const
15924
{
15925
return
isl::pw_multi_aff
(*this).
union_add
(pma2);
15926
}
15927
15928
isl::union_pw_aff
pw_aff::union_add
(
const
isl::union_pw_aff
&upa2)
const
15929
{
15930
return
isl::union_pw_aff
(*this).
union_add
(upa2);
15931
}
15932
15933
isl::union_pw_multi_aff
pw_aff::union_add
(
const
isl::union_pw_multi_aff
&upma2)
const
15934
{
15935
return
isl::union_pw_aff
(*this).
union_add
(upma2);
15936
}
15937
15938
isl::pw_aff
pw_aff::union_add
(
const
isl::aff
&pwaff2)
const
15939
{
15940
return
this->
union_add
(
isl::pw_aff
(pwaff2));
15941
}
15942
15943
isl::pw_aff
pw_aff::var_on_domain
(
isl::local_space
ls,
isl::dim
type
,
unsigned
int
pos
)
15944
{
15945
auto
res
=
isl_pw_aff_var_on_domain
(ls.
release
(),
static_cast<
enum
isl_dim_type
>
(
type
),
pos
);
15946
return
manage
(
res
);
15947
}
15948
15949
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_aff
&
obj
)
15950
{
15951
char
*
str
=
isl_pw_aff_to_str
(
obj
.get());
15952
if
(!
str
) {
15953
os.setstate(std::ios_base::badbit);
15954
return
os;
15955
}
15956
os <<
str
;
15957
free(
str
);
15958
return
os;
15959
}
15960
15961
// implementations for isl::pw_aff_list
15962
pw_aff_list
manage
(
__isl_take
isl_pw_aff_list *
ptr
) {
15963
return
pw_aff_list
(
ptr
);
15964
}
15965
pw_aff_list
manage_copy
(
__isl_keep
isl_pw_aff_list *
ptr
) {
15966
ptr
= isl_pw_aff_list_copy(
ptr
);
15967
return
pw_aff_list
(
ptr
);
15968
}
15969
15970
pw_aff_list::pw_aff_list
()
15971
:
ptr
(nullptr) {}
15972
15973
pw_aff_list::pw_aff_list
(
const
pw_aff_list
&
obj
)
15974
:
ptr
(nullptr)
15975
{
15976
ptr
=
obj
.copy();
15977
}
15978
15979
pw_aff_list::pw_aff_list
(
__isl_take
isl_pw_aff_list *
ptr
)
15980
:
ptr
(
ptr
) {}
15981
15982
pw_aff_list::pw_aff_list
(
isl::ctx
ctx
,
int
n
)
15983
{
15984
auto
res
= isl_pw_aff_list_alloc(
ctx
.release(),
n
);
15985
ptr
=
res
;
15986
}
15987
15988
pw_aff_list::pw_aff_list
(
isl::pw_aff
el)
15989
{
15990
auto
res
= isl_pw_aff_list_from_pw_aff(el.
release
());
15991
ptr
=
res
;
15992
}
15993
15994
pw_aff_list::pw_aff_list
(
isl::ctx
ctx
,
const
std::string &
str
)
15995
{
15996
auto
res
= isl_pw_aff_list_read_from_str(
ctx
.release(),
str
.c_str());
15997
ptr
=
res
;
15998
}
15999
16000
pw_aff_list
&
pw_aff_list::operator=
(
pw_aff_list
obj
) {
16001
std::swap(this->ptr,
obj
.ptr);
16002
return
*
this
;
16003
}
16004
16005
pw_aff_list::~pw_aff_list
() {
16006
if
(
ptr
)
16007
isl_pw_aff_list_free(
ptr
);
16008
}
16009
16010
__isl_give
isl_pw_aff_list *
pw_aff_list::copy
() const & {
16011
return
isl_pw_aff_list_copy(
ptr
);
16012
}
16013
16014
__isl_keep
isl_pw_aff_list *
pw_aff_list::get
()
const
{
16015
return
ptr
;
16016
}
16017
16018
__isl_give
isl_pw_aff_list *
pw_aff_list::release
() {
16019
isl_pw_aff_list *tmp =
ptr
;
16020
ptr
=
nullptr
;
16021
return
tmp;
16022
}
16023
16024
bool
pw_aff_list::is_null
()
const
{
16025
return
ptr
==
nullptr
;
16026
}
16027
16028
isl::ctx
pw_aff_list::ctx
()
const
{
16029
return
isl::ctx
(isl_pw_aff_list_get_ctx(
ptr
));
16030
}
16031
16032
isl::pw_aff_list
pw_aff_list::add
(
isl::pw_aff
el)
const
16033
{
16034
auto
res
= isl_pw_aff_list_add(
copy
(), el.
release
());
16035
return
manage
(
res
);
16036
}
16037
16038
isl::pw_aff
pw_aff_list::at
(
int
index)
const
16039
{
16040
auto
res
= isl_pw_aff_list_get_at(
get
(), index);
16041
return
manage
(
res
);
16042
}
16043
16044
isl::pw_aff
pw_aff_list::get_at
(
int
index)
const
16045
{
16046
return
at
(index);
16047
}
16048
16049
isl::pw_aff_list
pw_aff_list::clear
()
const
16050
{
16051
auto
res
= isl_pw_aff_list_clear(
copy
());
16052
return
manage
(
res
);
16053
}
16054
16055
isl::pw_aff_list
pw_aff_list::concat
(
isl::pw_aff_list
list2)
const
16056
{
16057
auto
res
= isl_pw_aff_list_concat(
copy
(), list2.
release
());
16058
return
manage
(
res
);
16059
}
16060
16061
isl::pw_aff_list
pw_aff_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
16062
{
16063
auto
res
= isl_pw_aff_list_drop(
copy
(), first,
n
);
16064
return
manage
(
res
);
16065
}
16066
16067
stat
pw_aff_list::foreach
(
const
std::function<
stat
(
isl::pw_aff
)> &
fn
)
const
16068
{
16069
struct
fn_data {
16070
std::function<
stat
(
isl::pw_aff
)> func;
16071
} fn_data = {
fn
};
16072
auto
fn_lambda = [](
isl_pw_aff
*arg_0,
void
*arg_1) ->
isl_stat
{
16073
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
16074
auto
ret = (data->func)(
manage
(arg_0));
16075
return
ret.release();
16076
};
16077
auto
res
= isl_pw_aff_list_foreach(
get
(), fn_lambda, &fn_data);
16078
return
manage
(
res
);
16079
}
16080
16081
isl::pw_aff_list
pw_aff_list::insert
(
unsigned
int
pos
,
isl::pw_aff
el)
const
16082
{
16083
auto
res
= isl_pw_aff_list_insert(
copy
(),
pos
, el.
release
());
16084
return
manage
(
res
);
16085
}
16086
16087
class
size
pw_aff_list::size
()
const
16088
{
16089
auto
res
= isl_pw_aff_list_size(
get
());
16090
return
manage
(
res
);
16091
}
16092
16093
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_aff_list
&
obj
)
16094
{
16095
char
*
str
= isl_pw_aff_list_to_str(
obj
.get());
16096
if
(!
str
) {
16097
os.setstate(std::ios_base::badbit);
16098
return
os;
16099
}
16100
os <<
str
;
16101
free(
str
);
16102
return
os;
16103
}
16104
16105
// implementations for isl::pw_multi_aff
16106
pw_multi_aff
manage
(
__isl_take
isl_pw_multi_aff
*
ptr
) {
16107
return
pw_multi_aff
(
ptr
);
16108
}
16109
pw_multi_aff
manage_copy
(
__isl_keep
isl_pw_multi_aff
*
ptr
) {
16110
ptr
=
isl_pw_multi_aff_copy
(
ptr
);
16111
return
pw_multi_aff
(
ptr
);
16112
}
16113
16114
pw_multi_aff::pw_multi_aff
()
16115
:
ptr
(nullptr) {}
16116
16117
pw_multi_aff::pw_multi_aff
(
const
pw_multi_aff
&
obj
)
16118
:
ptr
(nullptr)
16119
{
16120
ptr
=
obj
.copy();
16121
}
16122
16123
pw_multi_aff::pw_multi_aff
(
__isl_take
isl_pw_multi_aff
*
ptr
)
16124
:
ptr
(
ptr
) {}
16125
16126
pw_multi_aff::pw_multi_aff
(
isl::multi_aff
ma
)
16127
{
16128
auto
res
=
isl_pw_multi_aff_from_multi_aff
(
ma
.release());
16129
ptr
=
res
;
16130
}
16131
16132
pw_multi_aff::pw_multi_aff
(
isl::pw_aff
pa
)
16133
{
16134
auto
res
=
isl_pw_multi_aff_from_pw_aff
(
pa
.release());
16135
ptr
=
res
;
16136
}
16137
16138
pw_multi_aff::pw_multi_aff
(
isl::ctx
ctx
,
const
std::string &
str
)
16139
{
16140
auto
res
=
isl_pw_multi_aff_read_from_str
(
ctx
.release(),
str
.c_str());
16141
ptr
=
res
;
16142
}
16143
16144
pw_multi_aff
&
pw_multi_aff::operator=
(
pw_multi_aff
obj
) {
16145
std::swap(this->ptr,
obj
.ptr);
16146
return
*
this
;
16147
}
16148
16149
pw_multi_aff::~pw_multi_aff
() {
16150
if
(
ptr
)
16151
isl_pw_multi_aff_free
(
ptr
);
16152
}
16153
16154
__isl_give
isl_pw_multi_aff
*
pw_multi_aff::copy
() const & {
16155
return
isl_pw_multi_aff_copy
(
ptr
);
16156
}
16157
16158
__isl_keep
isl_pw_multi_aff
*
pw_multi_aff::get
()
const
{
16159
return
ptr
;
16160
}
16161
16162
__isl_give
isl_pw_multi_aff
*
pw_multi_aff::release
() {
16163
isl_pw_multi_aff
*tmp =
ptr
;
16164
ptr
=
nullptr
;
16165
return
tmp;
16166
}
16167
16168
bool
pw_multi_aff::is_null
()
const
{
16169
return
ptr
==
nullptr
;
16170
}
16171
16172
isl::ctx
pw_multi_aff::ctx
()
const
{
16173
return
isl::ctx
(
isl_pw_multi_aff_get_ctx
(
ptr
));
16174
}
16175
16176
isl::multi_pw_aff
pw_multi_aff::add
(
const
isl::multi_pw_aff
&multi2)
const
16177
{
16178
return
isl::multi_pw_aff
(*this).
add
(multi2);
16179
}
16180
16181
isl::multi_union_pw_aff
pw_multi_aff::add
(
const
isl::multi_union_pw_aff
&multi2)
const
16182
{
16183
return
isl::multi_pw_aff
(*this).
add
(multi2);
16184
}
16185
16186
isl::pw_multi_aff
pw_multi_aff::add
(
isl::pw_multi_aff
pma2)
const
16187
{
16188
auto
res
=
isl_pw_multi_aff_add
(
copy
(), pma2.
release
());
16189
return
manage
(
res
);
16190
}
16191
16192
isl::union_pw_multi_aff
pw_multi_aff::add
(
const
isl::union_pw_multi_aff
&upma2)
const
16193
{
16194
return
isl::union_pw_multi_aff
(*this).
add
(upma2);
16195
}
16196
16197
isl::pw_multi_aff
pw_multi_aff::add
(
const
isl::multi_aff
&pma2)
const
16198
{
16199
return
this->
add
(
isl::pw_multi_aff
(pma2));
16200
}
16201
16202
isl::pw_multi_aff
pw_multi_aff::add
(
const
isl::pw_aff
&pma2)
const
16203
{
16204
return
this->
add
(
isl::pw_multi_aff
(pma2));
16205
}
16206
16207
isl::pw_multi_aff
pw_multi_aff::add_constant
(
isl::multi_val
mv)
const
16208
{
16209
auto
res
=
isl_pw_multi_aff_add_constant_multi_val
(
copy
(), mv.
release
());
16210
return
manage
(
res
);
16211
}
16212
16213
isl::pw_multi_aff
pw_multi_aff::add_constant
(
isl::val
v)
const
16214
{
16215
auto
res
=
isl_pw_multi_aff_add_constant_val
(
copy
(), v.
release
());
16216
return
manage
(
res
);
16217
}
16218
16219
isl::pw_multi_aff
pw_multi_aff::add_constant
(
long
v)
const
16220
{
16221
return
this->
add_constant
(
isl::val
(
ctx
(), v));
16222
}
16223
16224
isl::union_pw_multi_aff
pw_multi_aff::add_pw_multi_aff
(
const
isl::pw_multi_aff
&
pma
)
const
16225
{
16226
return
isl::union_pw_multi_aff
(*this).
add_pw_multi_aff
(
pma
);
16227
}
16228
16229
isl::union_pw_multi_aff
pw_multi_aff::apply
(
const
isl::union_pw_multi_aff
&upma2)
const
16230
{
16231
return
isl::union_pw_multi_aff
(*this).
apply
(upma2);
16232
}
16233
16234
isl::map
pw_multi_aff::as_map
()
const
16235
{
16236
auto
res
=
isl_pw_multi_aff_as_map
(
copy
());
16237
return
manage
(
res
);
16238
}
16239
16240
isl::multi_aff
pw_multi_aff::as_multi_aff
()
const
16241
{
16242
auto
res
=
isl_pw_multi_aff_as_multi_aff
(
copy
());
16243
return
manage
(
res
);
16244
}
16245
16246
isl::multi_union_pw_aff
pw_multi_aff::as_multi_union_pw_aff
()
const
16247
{
16248
return
isl::union_pw_multi_aff
(*this).
as_multi_union_pw_aff
();
16249
}
16250
16251
isl::pw_multi_aff
pw_multi_aff::as_pw_multi_aff
()
const
16252
{
16253
return
isl::union_pw_multi_aff
(*this).
as_pw_multi_aff
();
16254
}
16255
16256
isl::set
pw_multi_aff::as_set
()
const
16257
{
16258
auto
res
=
isl_pw_multi_aff_as_set
(
copy
());
16259
return
manage
(
res
);
16260
}
16261
16262
isl::union_map
pw_multi_aff::as_union_map
()
const
16263
{
16264
return
isl::union_pw_multi_aff
(*this).
as_union_map
();
16265
}
16266
16267
isl::pw_aff
pw_multi_aff::at
(
int
pos
)
const
16268
{
16269
auto
res
=
isl_pw_multi_aff_get_at
(
get
(),
pos
);
16270
return
manage
(
res
);
16271
}
16272
16273
isl::pw_aff
pw_multi_aff::get_at
(
int
pos
)
const
16274
{
16275
return
at
(
pos
);
16276
}
16277
16278
isl::set
pw_multi_aff::bind
(
const
isl::multi_id
&
tuple
)
const
16279
{
16280
return
isl::multi_pw_aff
(*this).
bind
(
tuple
);
16281
}
16282
16283
isl::pw_multi_aff
pw_multi_aff::bind_domain
(
isl::multi_id
tuple
)
const
16284
{
16285
auto
res
=
isl_pw_multi_aff_bind_domain
(
copy
(),
tuple
.release());
16286
return
manage
(
res
);
16287
}
16288
16289
isl::pw_multi_aff
pw_multi_aff::bind_domain_wrapped_domain
(
isl::multi_id
tuple
)
const
16290
{
16291
auto
res
=
isl_pw_multi_aff_bind_domain_wrapped_domain
(
copy
(),
tuple
.release());
16292
return
manage
(
res
);
16293
}
16294
16295
isl::pw_multi_aff
pw_multi_aff::coalesce
()
const
16296
{
16297
auto
res
=
isl_pw_multi_aff_coalesce
(
copy
());
16298
return
manage
(
res
);
16299
}
16300
16301
class
size
pw_multi_aff::dim
(
isl::dim
type
)
const
16302
{
16303
auto
res
=
isl_pw_multi_aff_dim
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
16304
return
manage
(
res
);
16305
}
16306
16307
isl::set
pw_multi_aff::domain
()
const
16308
{
16309
auto
res
=
isl_pw_multi_aff_domain
(
copy
());
16310
return
manage
(
res
);
16311
}
16312
16313
isl::pw_multi_aff
pw_multi_aff::domain_map
(
isl::space
space
)
16314
{
16315
auto
res
=
isl_pw_multi_aff_domain_map
(
space
.release());
16316
return
manage
(
res
);
16317
}
16318
16319
isl::pw_multi_aff
pw_multi_aff::drop_dims
(
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
const
16320
{
16321
auto
res
=
isl_pw_multi_aff_drop_dims
(
copy
(),
static_cast<
enum
isl_dim_type
>
(
type
), first,
n
);
16322
return
manage
(
res
);
16323
}
16324
16325
isl::pw_multi_aff
pw_multi_aff::extract_pw_multi_aff
(
const
isl::space
&
space
)
const
16326
{
16327
return
isl::union_pw_multi_aff
(*this).
extract_pw_multi_aff
(
space
);
16328
}
16329
16330
isl::multi_pw_aff
pw_multi_aff::flat_range_product
(
const
isl::multi_pw_aff
&multi2)
const
16331
{
16332
return
isl::multi_pw_aff
(*this).
flat_range_product
(multi2);
16333
}
16334
16335
isl::multi_union_pw_aff
pw_multi_aff::flat_range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
16336
{
16337
return
isl::multi_pw_aff
(*this).
flat_range_product
(multi2);
16338
}
16339
16340
isl::pw_multi_aff
pw_multi_aff::flat_range_product
(
isl::pw_multi_aff
pma2)
const
16341
{
16342
auto
res
=
isl_pw_multi_aff_flat_range_product
(
copy
(), pma2.
release
());
16343
return
manage
(
res
);
16344
}
16345
16346
isl::union_pw_multi_aff
pw_multi_aff::flat_range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
16347
{
16348
return
isl::union_pw_multi_aff
(*this).
flat_range_product
(upma2);
16349
}
16350
16351
isl::pw_multi_aff
pw_multi_aff::flat_range_product
(
const
isl::multi_aff
&pma2)
const
16352
{
16353
return
this->
flat_range_product
(
isl::pw_multi_aff
(pma2));
16354
}
16355
16356
isl::pw_multi_aff
pw_multi_aff::flat_range_product
(
const
isl::pw_aff
&pma2)
const
16357
{
16358
return
this->
flat_range_product
(
isl::pw_multi_aff
(pma2));
16359
}
16360
16361
stat
pw_multi_aff::foreach_piece
(
const
std::function<
stat
(
isl::set
,
isl::multi_aff
)> &
fn
)
const
16362
{
16363
struct
fn_data {
16364
std::function<
stat
(
isl::set
,
isl::multi_aff
)> func;
16365
} fn_data = {
fn
};
16366
auto
fn_lambda = [](
isl_set
*arg_0,
isl_multi_aff
*arg_1,
void
*arg_2) ->
isl_stat
{
16367
auto
*data =
static_cast<
struct fn_data *
>
(arg_2);
16368
auto
ret = (data->func)(
manage
(arg_0),
manage
(arg_1));
16369
return
ret.release();
16370
};
16371
auto
res
=
isl_pw_multi_aff_foreach_piece
(
get
(), fn_lambda, &fn_data);
16372
return
manage
(
res
);
16373
}
16374
16375
isl::pw_multi_aff
pw_multi_aff::from_map
(
isl::map
map
)
16376
{
16377
auto
res
=
isl_pw_multi_aff_from_map
(
map
.
release
());
16378
return
manage
(
res
);
16379
}
16380
16381
isl::pw_multi_aff
pw_multi_aff::gist
(
isl::set
set
)
const
16382
{
16383
auto
res
=
isl_pw_multi_aff_gist
(
copy
(),
set
.
release
());
16384
return
manage
(
res
);
16385
}
16386
16387
isl::union_pw_multi_aff
pw_multi_aff::gist
(
const
isl::union_set
&
context
)
const
16388
{
16389
return
isl::union_pw_multi_aff
(*this).
gist
(
context
);
16390
}
16391
16392
isl::pw_multi_aff
pw_multi_aff::gist
(
const
isl::basic_set
&
set
)
const
16393
{
16394
return
this->
gist
(
isl::set
(
set
));
16395
}
16396
16397
isl::pw_multi_aff
pw_multi_aff::gist
(
const
isl::point
&
set
)
const
16398
{
16399
return
this->
gist
(
isl::set
(
set
));
16400
}
16401
16402
boolean
pw_multi_aff::has_range_tuple_id
()
const
16403
{
16404
auto
res
=
isl_pw_multi_aff_has_range_tuple_id
(
get
());
16405
return
manage
(
res
);
16406
}
16407
16408
isl::multi_pw_aff
pw_multi_aff::identity
()
const
16409
{
16410
return
isl::multi_pw_aff
(*this).
identity
();
16411
}
16412
16413
isl::pw_multi_aff
pw_multi_aff::identity_on_domain
(
isl::space
space
)
16414
{
16415
auto
res
=
isl_pw_multi_aff_identity_on_domain_space
(
space
.release());
16416
return
manage
(
res
);
16417
}
16418
16419
isl::pw_multi_aff
pw_multi_aff::insert_domain
(
isl::space
domain
)
const
16420
{
16421
auto
res
=
isl_pw_multi_aff_insert_domain
(
copy
(),
domain
.release());
16422
return
manage
(
res
);
16423
}
16424
16425
isl::pw_multi_aff
pw_multi_aff::intersect_domain
(
isl::set
set
)
const
16426
{
16427
auto
res
=
isl_pw_multi_aff_intersect_domain
(
copy
(),
set
.
release
());
16428
return
manage
(
res
);
16429
}
16430
16431
isl::union_pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::space
&
space
)
const
16432
{
16433
return
isl::union_pw_multi_aff
(*this).
intersect_domain
(
space
);
16434
}
16435
16436
isl::union_pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::union_set
&uset)
const
16437
{
16438
return
isl::union_pw_multi_aff
(*this).
intersect_domain
(uset);
16439
}
16440
16441
isl::pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::basic_set
&
set
)
const
16442
{
16443
return
this->
intersect_domain
(
isl::set
(
set
));
16444
}
16445
16446
isl::pw_multi_aff
pw_multi_aff::intersect_domain
(
const
isl::point
&
set
)
const
16447
{
16448
return
this->
intersect_domain
(
isl::set
(
set
));
16449
}
16450
16451
isl::union_pw_multi_aff
pw_multi_aff::intersect_domain_wrapped_domain
(
const
isl::union_set
&uset)
const
16452
{
16453
return
isl::union_pw_multi_aff
(*this).
intersect_domain_wrapped_domain
(uset);
16454
}
16455
16456
isl::union_pw_multi_aff
pw_multi_aff::intersect_domain_wrapped_range
(
const
isl::union_set
&uset)
const
16457
{
16458
return
isl::union_pw_multi_aff
(*this).
intersect_domain_wrapped_range
(uset);
16459
}
16460
16461
isl::pw_multi_aff
pw_multi_aff::intersect_params
(
isl::set
set
)
const
16462
{
16463
auto
res
=
isl_pw_multi_aff_intersect_params
(
copy
(),
set
.
release
());
16464
return
manage
(
res
);
16465
}
16466
16467
boolean
pw_multi_aff::involves_locals
()
const
16468
{
16469
auto
res
=
isl_pw_multi_aff_involves_locals
(
get
());
16470
return
manage
(
res
);
16471
}
16472
16473
boolean
pw_multi_aff::involves_nan
()
const
16474
{
16475
return
isl::multi_pw_aff
(*this).
involves_nan
();
16476
}
16477
16478
boolean
pw_multi_aff::involves_param
(
const
isl::id
&
id
)
const
16479
{
16480
return
isl::multi_pw_aff
(*this).
involves_param
(
id
);
16481
}
16482
16483
boolean
pw_multi_aff::involves_param
(
const
std::string &
id
)
const
16484
{
16485
return
this->
involves_param
(
isl::id
(
ctx
(),
id
));
16486
}
16487
16488
boolean
pw_multi_aff::involves_param
(
const
isl::id_list
&
list
)
const
16489
{
16490
return
isl::multi_pw_aff
(*this).
involves_param
(
list
);
16491
}
16492
16493
boolean
pw_multi_aff::isa_multi_aff
()
const
16494
{
16495
auto
res
=
isl_pw_multi_aff_isa_multi_aff
(
get
());
16496
return
manage
(
res
);
16497
}
16498
16499
boolean
pw_multi_aff::isa_pw_multi_aff
()
const
16500
{
16501
return
isl::union_pw_multi_aff
(*this).
isa_pw_multi_aff
();
16502
}
16503
16504
isl::pw_aff_list
pw_multi_aff::list
()
const
16505
{
16506
return
isl::multi_pw_aff
(*this).
list
();
16507
}
16508
16509
isl::multi_pw_aff
pw_multi_aff::max
(
const
isl::multi_pw_aff
&multi2)
const
16510
{
16511
return
isl::multi_pw_aff
(*this).
max
(multi2);
16512
}
16513
16514
isl::multi_val
pw_multi_aff::max_multi_val
()
const
16515
{
16516
auto
res
=
isl_pw_multi_aff_max_multi_val
(
copy
());
16517
return
manage
(
res
);
16518
}
16519
16520
isl::multi_pw_aff
pw_multi_aff::min
(
const
isl::multi_pw_aff
&multi2)
const
16521
{
16522
return
isl::multi_pw_aff
(*this).
min
(multi2);
16523
}
16524
16525
isl::multi_val
pw_multi_aff::min_multi_val
()
const
16526
{
16527
auto
res
=
isl_pw_multi_aff_min_multi_val
(
copy
());
16528
return
manage
(
res
);
16529
}
16530
16531
isl::pw_multi_aff
pw_multi_aff::multi_val_on_domain
(
isl::set
domain
,
isl::multi_val
mv)
16532
{
16533
auto
res
=
isl_pw_multi_aff_multi_val_on_domain
(
domain
.release(), mv.
release
());
16534
return
manage
(
res
);
16535
}
16536
16537
class
size
pw_multi_aff::n_piece
()
const
16538
{
16539
auto
res
=
isl_pw_multi_aff_n_piece
(
get
());
16540
return
manage
(
res
);
16541
}
16542
16543
isl::multi_pw_aff
pw_multi_aff::neg
()
const
16544
{
16545
return
isl::multi_pw_aff
(*this).
neg
();
16546
}
16547
16548
boolean
pw_multi_aff::plain_is_empty
()
const
16549
{
16550
return
isl::union_pw_multi_aff
(*this).
plain_is_empty
();
16551
}
16552
16553
boolean
pw_multi_aff::plain_is_equal
(
const
isl::multi_pw_aff
&multi2)
const
16554
{
16555
return
isl::multi_pw_aff
(*this).
plain_is_equal
(multi2);
16556
}
16557
16558
boolean
pw_multi_aff::plain_is_equal
(
const
isl::multi_union_pw_aff
&multi2)
const
16559
{
16560
return
isl::multi_pw_aff
(*this).
plain_is_equal
(multi2);
16561
}
16562
16563
isl::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
isl::pw_multi_aff
pma2)
const
16564
{
16565
auto
res
=
isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff
(
copy
(), pma2.
release
());
16566
return
manage
(
res
);
16567
}
16568
16569
isl::union_pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
const
isl::union_pw_multi_aff
&upma2)
const
16570
{
16571
return
isl::union_pw_multi_aff
(*this).
preimage_domain_wrapped_domain
(upma2);
16572
}
16573
16574
isl::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
const
isl::multi_aff
&pma2)
const
16575
{
16576
return
this->
preimage_domain_wrapped_domain
(
isl::pw_multi_aff
(pma2));
16577
}
16578
16579
isl::pw_multi_aff
pw_multi_aff::preimage_domain_wrapped_domain
(
const
isl::pw_aff
&pma2)
const
16580
{
16581
return
this->
preimage_domain_wrapped_domain
(
isl::pw_multi_aff
(pma2));
16582
}
16583
16584
isl::multi_pw_aff
pw_multi_aff::product
(
const
isl::multi_pw_aff
&multi2)
const
16585
{
16586
return
isl::multi_pw_aff
(*this).
product
(multi2);
16587
}
16588
16589
isl::pw_multi_aff
pw_multi_aff::product
(
isl::pw_multi_aff
pma2)
const
16590
{
16591
auto
res
=
isl_pw_multi_aff_product
(
copy
(), pma2.
release
());
16592
return
manage
(
res
);
16593
}
16594
16595
isl::pw_multi_aff
pw_multi_aff::product
(
const
isl::multi_aff
&pma2)
const
16596
{
16597
return
this->
product
(
isl::pw_multi_aff
(pma2));
16598
}
16599
16600
isl::pw_multi_aff
pw_multi_aff::product
(
const
isl::pw_aff
&pma2)
const
16601
{
16602
return
this->
product
(
isl::pw_multi_aff
(pma2));
16603
}
16604
16605
isl::pw_multi_aff
pw_multi_aff::project_out_map
(
isl::space
space
,
isl::dim
type
,
unsigned
int
first,
unsigned
int
n
)
16606
{
16607
auto
res
=
isl_pw_multi_aff_project_out_map
(
space
.release(),
static_cast<
enum
isl_dim_type
>
(
type
), first,
n
);
16608
return
manage
(
res
);
16609
}
16610
16611
isl::multi_pw_aff
pw_multi_aff::pullback
(
const
isl::multi_pw_aff
&mpa2)
const
16612
{
16613
return
isl::multi_pw_aff
(*this).
pullback
(mpa2);
16614
}
16615
16616
isl::pw_multi_aff
pw_multi_aff::pullback
(
isl::multi_aff
ma
)
const
16617
{
16618
auto
res
=
isl_pw_multi_aff_pullback_multi_aff
(
copy
(),
ma
.release());
16619
return
manage
(
res
);
16620
}
16621
16622
isl::pw_multi_aff
pw_multi_aff::pullback
(
isl::pw_multi_aff
pma2)
const
16623
{
16624
auto
res
=
isl_pw_multi_aff_pullback_pw_multi_aff
(
copy
(), pma2.
release
());
16625
return
manage
(
res
);
16626
}
16627
16628
isl::union_pw_multi_aff
pw_multi_aff::pullback
(
const
isl::union_pw_multi_aff
&upma2)
const
16629
{
16630
return
isl::union_pw_multi_aff
(*this).
pullback
(upma2);
16631
}
16632
16633
isl::pw_multi_aff_list
pw_multi_aff::pw_multi_aff_list
()
const
16634
{
16635
return
isl::union_pw_multi_aff
(*this).
pw_multi_aff_list
();
16636
}
16637
16638
isl::pw_multi_aff
pw_multi_aff::range_factor_domain
()
const
16639
{
16640
auto
res
=
isl_pw_multi_aff_range_factor_domain
(
copy
());
16641
return
manage
(
res
);
16642
}
16643
16644
isl::pw_multi_aff
pw_multi_aff::range_factor_range
()
const
16645
{
16646
auto
res
=
isl_pw_multi_aff_range_factor_range
(
copy
());
16647
return
manage
(
res
);
16648
}
16649
16650
isl::pw_multi_aff
pw_multi_aff::range_map
(
isl::space
space
)
16651
{
16652
auto
res
=
isl_pw_multi_aff_range_map
(
space
.release());
16653
return
manage
(
res
);
16654
}
16655
16656
isl::multi_pw_aff
pw_multi_aff::range_product
(
const
isl::multi_pw_aff
&multi2)
const
16657
{
16658
return
isl::multi_pw_aff
(*this).
range_product
(multi2);
16659
}
16660
16661
isl::multi_union_pw_aff
pw_multi_aff::range_product
(
const
isl::multi_union_pw_aff
&multi2)
const
16662
{
16663
return
isl::multi_pw_aff
(*this).
range_product
(multi2);
16664
}
16665
16666
isl::pw_multi_aff
pw_multi_aff::range_product
(
isl::pw_multi_aff
pma2)
const
16667
{
16668
auto
res
=
isl_pw_multi_aff_range_product
(
copy
(), pma2.
release
());
16669
return
manage
(
res
);
16670
}
16671
16672
isl::union_pw_multi_aff
pw_multi_aff::range_product
(
const
isl::union_pw_multi_aff
&upma2)
const
16673
{
16674
return
isl::union_pw_multi_aff
(*this).
range_product
(upma2);
16675
}
16676
16677
isl::pw_multi_aff
pw_multi_aff::range_product
(
const
isl::multi_aff
&pma2)
const
16678
{
16679
return
this->
range_product
(
isl::pw_multi_aff
(pma2));
16680
}
16681
16682
isl::pw_multi_aff
pw_multi_aff::range_product
(
const
isl::pw_aff
&pma2)
const
16683
{
16684
return
this->
range_product
(
isl::pw_multi_aff
(pma2));
16685
}
16686
16687
isl::id
pw_multi_aff::range_tuple_id
()
const
16688
{
16689
auto
res
=
isl_pw_multi_aff_get_range_tuple_id
(
get
());
16690
return
manage
(
res
);
16691
}
16692
16693
isl::id
pw_multi_aff::get_range_tuple_id
()
const
16694
{
16695
return
range_tuple_id
();
16696
}
16697
16698
isl::multi_pw_aff
pw_multi_aff::reset_range_tuple_id
()
const
16699
{
16700
return
isl::multi_pw_aff
(*this).
reset_range_tuple_id
();
16701
}
16702
16703
isl::multi_pw_aff
pw_multi_aff::reset_tuple_id
(
isl::dim
type
)
const
16704
{
16705
return
isl::multi_pw_aff
(*this).
reset_tuple_id
(
type
);
16706
}
16707
16708
isl::multi_pw_aff
pw_multi_aff::scale
(
const
isl::multi_val
&mv)
const
16709
{
16710
return
isl::multi_pw_aff
(*this).
scale
(mv);
16711
}
16712
16713
isl::pw_multi_aff
pw_multi_aff::scale
(
isl::val
v)
const
16714
{
16715
auto
res
=
isl_pw_multi_aff_scale_val
(
copy
(), v.
release
());
16716
return
manage
(
res
);
16717
}
16718
16719
isl::pw_multi_aff
pw_multi_aff::scale
(
long
v)
const
16720
{
16721
return
this->
scale
(
isl::val
(
ctx
(), v));
16722
}
16723
16724
isl::multi_pw_aff
pw_multi_aff::scale_down
(
const
isl::multi_val
&mv)
const
16725
{
16726
return
isl::multi_pw_aff
(*this).
scale_down
(mv);
16727
}
16728
16729
isl::pw_multi_aff
pw_multi_aff::scale_down
(
isl::val
v)
const
16730
{
16731
auto
res
=
isl_pw_multi_aff_scale_down_val
(
copy
(), v.
release
());
16732
return
manage
(
res
);
16733
}
16734
16735
isl::pw_multi_aff
pw_multi_aff::scale_down
(
long
v)
const
16736
{
16737
return
this->
scale_down
(
isl::val
(
ctx
(), v));
16738
}
16739
16740
isl::multi_pw_aff
pw_multi_aff::set_at
(
int
pos
,
const
isl::pw_aff
&el)
const
16741
{
16742
return
isl::multi_pw_aff
(*this).
set_at
(
pos
, el);
16743
}
16744
16745
isl::multi_union_pw_aff
pw_multi_aff::set_at
(
int
pos
,
const
isl::union_pw_aff
&el)
const
16746
{
16747
return
isl::multi_pw_aff
(*this).
set_at
(
pos
, el);
16748
}
16749
16750
isl::multi_pw_aff
pw_multi_aff::set_pw_aff
(
int
pos
,
const
isl::pw_aff
&el)
const
16751
{
16752
return
isl::multi_pw_aff
(*this).
set_pw_aff
(
pos
, el);
16753
}
16754
16755
isl::pw_multi_aff
pw_multi_aff::set_pw_aff
(
unsigned
int
pos
,
isl::pw_aff
pa
)
const
16756
{
16757
auto
res
=
isl_pw_multi_aff_set_pw_aff
(
copy
(),
pos
,
pa
.release());
16758
return
manage
(
res
);
16759
}
16760
16761
isl::pw_multi_aff
pw_multi_aff::set_range_tuple
(
isl::id
id
)
const
16762
{
16763
auto
res
=
isl_pw_multi_aff_set_range_tuple_id
(
copy
(),
id
.
release
());
16764
return
manage
(
res
);
16765
}
16766
16767
isl::pw_multi_aff
pw_multi_aff::set_range_tuple
(
const
std::string &
id
)
const
16768
{
16769
return
this->
set_range_tuple
(
isl::id
(
ctx
(),
id
));
16770
}
16771
16772
isl::multi_union_pw_aff
pw_multi_aff::set_union_pw_aff
(
int
pos
,
const
isl::union_pw_aff
&el)
const
16773
{
16774
return
isl::multi_pw_aff
(*this).
set_union_pw_aff
(
pos
, el);
16775
}
16776
16777
class
size
pw_multi_aff::size
()
const
16778
{
16779
return
isl::multi_pw_aff
(*this).
size
();
16780
}
16781
16782
isl::space
pw_multi_aff::space
()
const
16783
{
16784
auto
res
=
isl_pw_multi_aff_get_space
(
get
());
16785
return
manage
(
res
);
16786
}
16787
16788
isl::space
pw_multi_aff::get_space
()
const
16789
{
16790
return
space
();
16791
}
16792
16793
isl::multi_pw_aff
pw_multi_aff::sub
(
const
isl::multi_pw_aff
&multi2)
const
16794
{
16795
return
isl::multi_pw_aff
(*this).
sub
(multi2);
16796
}
16797
16798
isl::multi_union_pw_aff
pw_multi_aff::sub
(
const
isl::multi_union_pw_aff
&multi2)
const
16799
{
16800
return
isl::multi_pw_aff
(*this).
sub
(multi2);
16801
}
16802
16803
isl::pw_multi_aff
pw_multi_aff::sub
(
isl::pw_multi_aff
pma2)
const
16804
{
16805
auto
res
=
isl_pw_multi_aff_sub
(
copy
(), pma2.
release
());
16806
return
manage
(
res
);
16807
}
16808
16809
isl::union_pw_multi_aff
pw_multi_aff::sub
(
const
isl::union_pw_multi_aff
&upma2)
const
16810
{
16811
return
isl::union_pw_multi_aff
(*this).
sub
(upma2);
16812
}
16813
16814
isl::pw_multi_aff
pw_multi_aff::sub
(
const
isl::multi_aff
&pma2)
const
16815
{
16816
return
this->
sub
(
isl::pw_multi_aff
(pma2));
16817
}
16818
16819
isl::pw_multi_aff
pw_multi_aff::sub
(
const
isl::pw_aff
&pma2)
const
16820
{
16821
return
this->
sub
(
isl::pw_multi_aff
(pma2));
16822
}
16823
16824
isl::pw_multi_aff
pw_multi_aff::subtract_domain
(
isl::set
set
)
const
16825
{
16826
auto
res
=
isl_pw_multi_aff_subtract_domain
(
copy
(),
set
.
release
());
16827
return
manage
(
res
);
16828
}
16829
16830
isl::union_pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::space
&
space
)
const
16831
{
16832
return
isl::union_pw_multi_aff
(*this).
subtract_domain
(
space
);
16833
}
16834
16835
isl::union_pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::union_set
&uset)
const
16836
{
16837
return
isl::union_pw_multi_aff
(*this).
subtract_domain
(uset);
16838
}
16839
16840
isl::pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::basic_set
&
set
)
const
16841
{
16842
return
this->
subtract_domain
(
isl::set
(
set
));
16843
}
16844
16845
isl::pw_multi_aff
pw_multi_aff::subtract_domain
(
const
isl::point
&
set
)
const
16846
{
16847
return
this->
subtract_domain
(
isl::set
(
set
));
16848
}
16849
16850
isl::pw_multi_aff_list
pw_multi_aff::to_list
()
const
16851
{
16852
auto
res
= isl_pw_multi_aff_to_list(
copy
());
16853
return
manage
(
res
);
16854
}
16855
16856
isl::multi_pw_aff
pw_multi_aff::to_multi_pw_aff
()
const
16857
{
16858
auto
res
=
isl_pw_multi_aff_to_multi_pw_aff
(
copy
());
16859
return
manage
(
res
);
16860
}
16861
16862
isl::union_pw_multi_aff
pw_multi_aff::to_union_pw_multi_aff
()
const
16863
{
16864
auto
res
=
isl_pw_multi_aff_to_union_pw_multi_aff
(
copy
());
16865
return
manage
(
res
);
16866
}
16867
16868
isl::id
pw_multi_aff::tuple_id
(
isl::dim
type
)
const
16869
{
16870
auto
res
=
isl_pw_multi_aff_get_tuple_id
(
get
(),
static_cast<
enum
isl_dim_type
>
(
type
));
16871
return
manage
(
res
);
16872
}
16873
16874
isl::id
pw_multi_aff::get_tuple_id
(
isl::dim
type
)
const
16875
{
16876
return
tuple_id
(
type
);
16877
}
16878
16879
isl::multi_pw_aff
pw_multi_aff::unbind_params_insert_domain
(
const
isl::multi_id
&
domain
)
const
16880
{
16881
return
isl::multi_pw_aff
(*this).
unbind_params_insert_domain
(
domain
);
16882
}
16883
16884
isl::multi_pw_aff
pw_multi_aff::union_add
(
const
isl::multi_pw_aff
&mpa2)
const
16885
{
16886
return
isl::multi_pw_aff
(*this).
union_add
(mpa2);
16887
}
16888
16889
isl::multi_union_pw_aff
pw_multi_aff::union_add
(
const
isl::multi_union_pw_aff
&mupa2)
const
16890
{
16891
return
isl::multi_pw_aff
(*this).
union_add
(mupa2);
16892
}
16893
16894
isl::pw_multi_aff
pw_multi_aff::union_add
(
isl::pw_multi_aff
pma2)
const
16895
{
16896
auto
res
=
isl_pw_multi_aff_union_add
(
copy
(), pma2.
release
());
16897
return
manage
(
res
);
16898
}
16899
16900
isl::union_pw_multi_aff
pw_multi_aff::union_add
(
const
isl::union_pw_multi_aff
&upma2)
const
16901
{
16902
return
isl::union_pw_multi_aff
(*this).
union_add
(upma2);
16903
}
16904
16905
isl::pw_multi_aff
pw_multi_aff::union_add
(
const
isl::multi_aff
&pma2)
const
16906
{
16907
return
this->
union_add
(
isl::pw_multi_aff
(pma2));
16908
}
16909
16910
isl::pw_multi_aff
pw_multi_aff::union_add
(
const
isl::pw_aff
&pma2)
const
16911
{
16912
return
this->
union_add
(
isl::pw_multi_aff
(pma2));
16913
}
16914
16915
isl::pw_multi_aff
pw_multi_aff::zero
(
isl::space
space
)
16916
{
16917
auto
res
=
isl_pw_multi_aff_zero
(
space
.release());
16918
return
manage
(
res
);
16919
}
16920
16921
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_multi_aff
&
obj
)
16922
{
16923
char
*
str
=
isl_pw_multi_aff_to_str
(
obj
.get());
16924
if
(!
str
) {
16925
os.setstate(std::ios_base::badbit);
16926
return
os;
16927
}
16928
os <<
str
;
16929
free(
str
);
16930
return
os;
16931
}
16932
16933
// implementations for isl::pw_multi_aff_list
16934
pw_multi_aff_list
manage
(
__isl_take
isl_pw_multi_aff_list *
ptr
) {
16935
return
pw_multi_aff_list
(
ptr
);
16936
}
16937
pw_multi_aff_list
manage_copy
(
__isl_keep
isl_pw_multi_aff_list *
ptr
) {
16938
ptr
= isl_pw_multi_aff_list_copy(
ptr
);
16939
return
pw_multi_aff_list
(
ptr
);
16940
}
16941
16942
pw_multi_aff_list::pw_multi_aff_list
()
16943
:
ptr
(nullptr) {}
16944
16945
pw_multi_aff_list::pw_multi_aff_list
(
const
pw_multi_aff_list
&
obj
)
16946
:
ptr
(nullptr)
16947
{
16948
ptr
=
obj
.copy();
16949
}
16950
16951
pw_multi_aff_list::pw_multi_aff_list
(
__isl_take
isl_pw_multi_aff_list *
ptr
)
16952
:
ptr
(
ptr
) {}
16953
16954
pw_multi_aff_list::pw_multi_aff_list
(
isl::ctx
ctx
,
int
n
)
16955
{
16956
auto
res
= isl_pw_multi_aff_list_alloc(
ctx
.release(),
n
);
16957
ptr
=
res
;
16958
}
16959
16960
pw_multi_aff_list::pw_multi_aff_list
(
isl::pw_multi_aff
el)
16961
{
16962
auto
res
= isl_pw_multi_aff_list_from_pw_multi_aff(el.
release
());
16963
ptr
=
res
;
16964
}
16965
16966
pw_multi_aff_list::pw_multi_aff_list
(
isl::ctx
ctx
,
const
std::string &
str
)
16967
{
16968
auto
res
= isl_pw_multi_aff_list_read_from_str(
ctx
.release(),
str
.c_str());
16969
ptr
=
res
;
16970
}
16971
16972
pw_multi_aff_list
&
pw_multi_aff_list::operator=
(
pw_multi_aff_list
obj
) {
16973
std::swap(this->ptr,
obj
.ptr);
16974
return
*
this
;
16975
}
16976
16977
pw_multi_aff_list::~pw_multi_aff_list
() {
16978
if
(
ptr
)
16979
isl_pw_multi_aff_list_free(
ptr
);
16980
}
16981
16982
__isl_give
isl_pw_multi_aff_list *
pw_multi_aff_list::copy
() const & {
16983
return
isl_pw_multi_aff_list_copy(
ptr
);
16984
}
16985
16986
__isl_keep
isl_pw_multi_aff_list *
pw_multi_aff_list::get
()
const
{
16987
return
ptr
;
16988
}
16989
16990
__isl_give
isl_pw_multi_aff_list *
pw_multi_aff_list::release
() {
16991
isl_pw_multi_aff_list *tmp =
ptr
;
16992
ptr
=
nullptr
;
16993
return
tmp;
16994
}
16995
16996
bool
pw_multi_aff_list::is_null
()
const
{
16997
return
ptr
==
nullptr
;
16998
}
16999
17000
isl::ctx
pw_multi_aff_list::ctx
()
const
{
17001
return
isl::ctx
(isl_pw_multi_aff_list_get_ctx(
ptr
));
17002
}
17003
17004
isl::pw_multi_aff_list
pw_multi_aff_list::add
(
isl::pw_multi_aff
el)
const
17005
{
17006
auto
res
= isl_pw_multi_aff_list_add(
copy
(), el.
release
());
17007
return
manage
(
res
);
17008
}
17009
17010
isl::pw_multi_aff
pw_multi_aff_list::at
(
int
index)
const
17011
{
17012
auto
res
= isl_pw_multi_aff_list_get_at(
get
(), index);
17013
return
manage
(
res
);
17014
}
17015
17016
isl::pw_multi_aff
pw_multi_aff_list::get_at
(
int
index)
const
17017
{
17018
return
at
(index);
17019
}
17020
17021
isl::pw_multi_aff_list
pw_multi_aff_list::clear
()
const
17022
{
17023
auto
res
= isl_pw_multi_aff_list_clear(
copy
());
17024
return
manage
(
res
);
17025
}
17026
17027
isl::pw_multi_aff_list
pw_multi_aff_list::concat
(
isl::pw_multi_aff_list
list2)
const
17028
{
17029
auto
res
= isl_pw_multi_aff_list_concat(
copy
(), list2.
release
());
17030
return
manage
(
res
);
17031
}
17032
17033
isl::pw_multi_aff_list
pw_multi_aff_list::drop
(
unsigned
int
first,
unsigned
int
n
)
const
17034
{
17035
auto
res
= isl_pw_multi_aff_list_drop(
copy
(), first,
n
);
17036
return
manage
(
res
);
17037
}
17038
17039
stat
pw_multi_aff_list::foreach
(
const
std::function<
stat
(
isl::pw_multi_aff
)> &
fn
)
const
17040
{
17041
struct
fn_data {
17042
std::function<
stat
(
isl::pw_multi_aff
)> func;
17043
} fn_data = {
fn
};
17044
auto
fn_lambda = [](
isl_pw_multi_aff
*arg_0,
void
*arg_1) ->
isl_stat
{
17045
auto
*data =
static_cast<
struct fn_data *
>
(arg_1);
17046
auto
ret = (data->func)(
manage
(arg_0));
17047
return
ret.release();
17048
};
17049
auto
res
= isl_pw_multi_aff_list_foreach(
get
(), fn_lambda, &fn_data);
17050
return
manage
(
res
);
17051
}
17052
17053
isl::pw_multi_aff_list
pw_multi_aff_list::insert
(
unsigned
int
pos
,
isl::pw_multi_aff
el)
const
17054
{
17055
auto
res
= isl_pw_multi_aff_list_insert(
copy
(),
pos
, el.
release
());
17056
return
manage
(
res
);
17057
}
17058
17059
class
size
pw_multi_aff_list::size
()
const
17060
{
17061
auto
res
= isl_pw_multi_aff_list_size(
get
());
17062
return
manage
(
res
);
17063
}
17064
17065
inline
std::ostream &
operator<<
(std::ostream &os,
const
pw_multi_aff_list
&
obj
)
17066
{
17067
char
*
str
= isl_pw_multi_aff_list_to_str(
obj
.get());
17068
if
(!
str
) {
17069
os.setstate(std::ios_base::badbit);
17070
return
os;
17071
}
17072
os <<
str
;
17073
free(
str
);
17074
return
os;
17075
}
17076
17077
// implementations for isl::schedule
17078
schedule
manage
(
__isl_take
isl_schedule
*
ptr
) {
17079
return
schedule
(
ptr
);
17080
}
17081
schedule
manage_copy
(
__isl_keep
isl_schedule
*
ptr
) {
17082
ptr
=
isl_schedule_copy
(
ptr
);
17083
return
schedule
(
ptr
);
17084
}
17085
17086
schedule::schedule
()
17087
:
ptr
(nullptr) {}
17088
17089
schedule::schedule
(
const
schedule
&
obj
)
17090
:
ptr
(nullptr)
17091
{
17092
ptr
=
obj
.copy();
17093
}
17094
17095
schedule::schedule
(
__isl_take
isl_schedule
*
ptr
)
17096
:
ptr
(
ptr
) {}
17097
17098
schedule::schedule
(
isl::ctx
ctx
,
const
std::string &
str
)
17099
{
17100
auto
res
=
isl_schedule_read_from_str
(
ctx
.release(),
str
.c_str());
17101
ptr
=
res
;
17102
}
17103
17104
schedule
&
schedule::operator=
(
schedule
obj
) {
17105
std::swap(this->ptr,
obj
.ptr);
17106
return
*
this
;
17107
}
17108
17109
schedule::~schedule
() {
17110
if
(
ptr
)
17111
isl_schedule_free
(
ptr
);
17112
}
17113
17114
__isl_give
isl_schedule
*
schedule::copy
() const & {
17115
return
isl_schedule_copy
(
ptr
);
17116
}
17117
17118
__isl_keep
isl_schedule
*
schedule::get
()
const
{
17119
return
ptr
;
17120
}
17121
17122
__isl_give
isl_schedule
*
schedule::release
() {
17123
isl_schedule
*tmp =
ptr
;
17124
ptr
=
nullptr
;
17125
return
tmp;
17126
}
17127
17128
bool
schedule::is_null
()
const
{
17129
return
ptr
==
nullptr
;
17130
}
17131
17132
isl::ctx
schedule::ctx
()
const
{
17133
return
isl::ctx
(
isl_schedule_get_ctx
(
ptr
));
17134
}
17135
17136
isl::schedule
schedule::align_params
(
isl::space
space
)
const
17137
{
17138
auto
res
=
isl_schedule_align_params
(
copy
(),
space
.
release
());
17139
return
manage
(
res
);
17140
}
17141
17142
isl::union_set
schedule::domain
()
const
17143
{
17144
auto
res
=
isl_schedule_get_domain
(
get
());
17145
return
manage
(
res
);
17146
}
17147
17148
isl::union_set
schedule::get_domain
()
const
17149
{
17150
return
domain
();
17151
}
17152
17153
isl::schedule
schedule::from_domain
(
isl::union_set
domain
)
17154
{
17155
auto
res
=
isl_schedule_from_domain
(
domain
.release());
17156
return
manage
(
res
);
17157
}
17158
17159
isl::schedule
schedule::gist_domain_params
(
isl::set
context
)
const
17160
{
17161
auto
res
=
isl_schedule_gist_domain_params
(
copy
(),
context
.release());
17162
return
manage
(
res
);
17163
}
17164
17165
isl::schedule
schedule::insert_partial_schedule
(
isl::multi_union_pw_aff
partial)
const
17166
{
17167
auto
res
=
isl_schedule_insert_partial_schedule
(
copy
(), partial.
release
());
17168
return
manage
(
res
);
17169
}
17170
17171
isl::schedule
schedule::intersect_domain
(
isl::union_set
domain
)
const
17172
{
17173
auto
res
=
isl_schedule_intersect_domain
(
copy
(),
domain
.release());
17174
return
manage
(
res
);
17175
}
17176
17177
isl::union_map
schedule::map
()
const
17178
{
17179
auto
res
=
isl_schedule_get_map
(
get
());
17180
return
manage
(
res
);
17181
}
17182
17183
isl::union_map
schedule::get_map
()
const
17184
{
17185
return
map
();
17186
}
17187
17188
isl::schedule
schedule::pullback
(
isl::union_pw_multi_aff
upma)
const
17189
{
17190
auto
res
=
isl_schedule_pullback_union_pw_multi_aff
(
copy
(), upma.
release
());
17191
return
manage
(
res
);
17192
}
17193
17194
isl::schedule_node
schedule::root
()
const
17195
{
17196
auto
res
=
isl_schedule_get_root
(
get
());
17197
return
manage
(
res
);
17198
}
17199
17200
isl::schedule_node
schedule::get_root
()
const
17201
{
17202
return
root
();
17203
}
17204
17205
isl::schedule
schedule::sequence
(
isl::schedule
schedule2)
const
17206
{
17207
auto
res
=
isl_schedule_sequence
(
copy
(), schedule2.
release
());
17208
return
manage
(
res
);
17209
}
17210
17211
inline
std::ostream &
operator<<
(std::ostream &os,
const
schedule
&
obj
)
17212
{
17213
char
*
str
=
isl_schedule_to_str
(
obj
.get());
17214
if
(!
str
) {
17215
os.setstate(std::ios_base::badbit);
17216
return
os;
17217
}
17218
os <<
str
;
17219
free(
str
);
17220
return
os;
17221
}
17222
17223
// implementations for isl::schedule_constraints
17224
schedule_constraints
manage
(
__isl_take
isl_schedule_constraints
*
ptr
) {
17225
return
schedule_constraints
(
ptr
);
17226
}
17227
schedule_constraints
manage_copy
(
__isl_keep
isl_schedule_constraints
*
ptr
) {
17228
ptr
=
isl_schedule_constraints_copy
(
ptr
);
17229
return
schedule_constraints
(
ptr
);
17230
}
17231
17232
schedule_constraints::schedule_constraints
()
17233
:
ptr
(nullptr) {}
17234
17235
schedule_constraints::schedule_constraints
(
const
schedule_constraints
&
obj
)
17236
:
ptr
(nullptr)
17237
{
17238
ptr
=
obj
.copy();
17239
}
17240
17241
schedule_constraints::schedule_constraints
(
__isl_take
isl_schedule_constraints
*
ptr
)
17242
:
ptr
(
ptr
) {}
17243
17244
schedule_constraints::schedule_constraints
(
isl::ctx
ctx
,
const
std::string &
str
)
17245
{
17246
auto
res
=
isl_schedule_constraints_read_from_str
(
ctx
.release(),
str
.c_str());
17247
ptr
=
res
;
17248
}
17249
17250
schedule_constraints
&
schedule_constraints::operator=
(
schedule_constraints
obj
) {
17251
std::swap(this->ptr,
obj
.ptr);
17252
return
*
this
;
17253
}
17254
17255
schedule_constraints::~schedule_constraints
() {
17256
if
(
ptr
)
17257
isl_schedule_constraints_free
(
ptr
);
17258
}
17259
17260
__isl_give
isl_schedule_constraints
*
schedule_constraints::copy
() const & {
17261
return
isl_schedule_constraints_copy
(
ptr
);
17262
}
17263
17264
__isl_keep
isl_schedule_constraints
*
schedule_constraints::get
()
const
{
17265
return
ptr
;
17266
}
17267
17268
__isl_give
isl_schedule_constraints
*
schedule_constraints::release
() {
17269
isl_schedule_constraints
*tmp =
ptr
;
17270
ptr
=
nullptr
;
17271
return
tmp;
17272
}
17273
17274
bool
schedule_constraints::is_null
()
const
{
17275
return
ptr
==
nullptr
;
17276
}
17277
17278
isl::ctx
schedule_constraints::ctx
()
const
{
17279
return
isl::ctx
(
isl_schedule_constraints_get_ctx
(
ptr
));
17280
}
17281
17282
isl::union_map
schedule_constraints::coincidence
()
const
17283
{
17284
auto
res
=
isl_schedule_constraints_get_coincidence
(
get
());
17285
return
manage
(
res
);
17286
}
17287
17288
isl::union_map
schedule_constraints::get_coincidence
()
const
17289
{
17290
return
coincidence
();
17291
}
17292
17293
isl::schedule
schedule_constraints::compute_schedule
()
const
17294
{
17295
auto
res
=
isl_schedule_constraints_compute_schedule
(
copy
());
17296
return
manage
(
res
);
17297
}
17298
17299
isl::union_map
schedule_constraints::conditional_validity
()
const
17300
{
17301
auto
res
=
isl_schedule_constraints_get_conditional_validity
(
get
());
17302
return
manage
(
res
);
17303
}
17304
17305
isl::union_map
schedule_constraints::get_conditional_validity
()
const
17306
{
17307
return
conditional_validity
();
17308
}
17309
17310
isl::union_map
schedule_constraints::conditional_validity_condition
()
const
17311
{
17312
auto
res
=