Polly
24.0.0git
llvm-project
polly
lib
External
isl
include
isl
typed_cpp.h
Go to the documentation of this file.
1
/// These are automatically generated templated C++ bindings for isl.
2
///
3
/// isl is a library for computing with integer sets and maps described by
4
/// Presburger formulas. On top of this, isl provides various tools for
5
/// polyhedral compilation, ranging from dependence analysis over scheduling
6
/// to AST generation.
7
8
#ifndef ISL_TYPED_CPP
9
#define ISL_TYPED_CPP
10
11
#include <type_traits>
12
13
#include <
isl/cpp.h
>
14
15
namespace
isl
{
16
namespace
typed
{
17
18
template
<
typename
Domain,
typename
Range>
19
struct
pair
{};
20
21
struct
Anonymous
;
22
23
24
template
<
typename
...>
25
struct
aff
;
26
27
template
<
typename
...Ts>
28
using
aff_on
=
aff
<Ts...,
Anonymous
>;
29
30
template
<
typename
...>
31
struct
aff_list
;
32
33
template
<
typename
...Ts>
34
using
aff_list_on
=
aff_list
<Ts...,
Anonymous
>;
35
36
template
<
typename
...>
37
struct
basic_map
;
38
39
template
<
typename
...>
40
struct
basic_set
;
41
42
template
<
typename
...>
43
struct
fixed_box
;
44
45
template
<
typename
...>
46
struct
id
;
47
48
template
<
typename
...>
49
struct
id_list
;
50
51
template
<
typename
...>
52
struct
map
;
53
54
template
<
typename
...>
55
struct
map_list
;
56
57
template
<
typename
...>
58
struct
multi_aff
;
59
60
template
<
typename
...>
61
struct
multi_id
;
62
63
template
<
typename
...>
64
struct
multi_pw_aff
;
65
66
template
<
typename
...>
67
struct
multi_union_pw_aff
;
68
69
template
<
typename
...>
70
struct
multi_val
;
71
72
template
<
typename
...>
73
struct
point
;
74
75
template
<
typename
...>
76
struct
pw_aff
;
77
78
template
<
typename
...Ts>
79
using
pw_aff_on
=
pw_aff
<Ts...,
Anonymous
>;
80
81
template
<
typename
...>
82
struct
pw_aff_list
;
83
84
template
<
typename
...Ts>
85
using
pw_aff_list_on
=
pw_aff_list
<Ts...,
Anonymous
>;
86
87
template
<
typename
...>
88
struct
pw_multi_aff
;
89
90
template
<
typename
...>
91
struct
pw_multi_aff_list
;
92
93
template
<
typename
...>
94
struct
set
;
95
96
template
<
typename
...>
97
struct
set_list
;
98
99
template
<
typename
...>
100
struct
space
;
101
102
template
<
typename
...>
103
struct
union_map
;
104
105
template
<
typename
...>
106
struct
union_pw_aff
;
107
108
template
<
typename
...Ts>
109
using
union_pw_aff_on
=
union_pw_aff
<Ts...,
Anonymous
>;
110
111
template
<
typename
...>
112
struct
union_pw_aff_list
;
113
114
template
<
typename
...Ts>
115
using
union_pw_aff_list_on
=
union_pw_aff_list
<Ts...,
Anonymous
>;
116
117
template
<
typename
...>
118
struct
union_pw_multi_aff
;
119
120
template
<
typename
...>
121
struct
union_set
;
122
123
template
<
typename
...>
124
struct
union_set_list
;
125
126
template
<
typename
...>
127
struct
val
;
128
129
template
<
typename
...>
130
struct
val_list
;
131
132
template
<>
133
struct
aff<Anonymous>
:
public
isl::aff
{
134
template
<
typename
...>
135
friend
struct
aff
;
136
template
<
typename
...>
137
friend
struct
aff_list
;
138
template
<
typename
...>
139
friend
struct
basic_map
;
140
template
<
typename
...>
141
friend
struct
basic_set
;
142
template
<
typename
...>
143
friend
struct
fixed_box
;
144
template
<
typename
...>
145
friend
struct
id
;
146
template
<
typename
...>
147
friend
struct
id_list
;
148
template
<
typename
...>
149
friend
struct
map
;
150
template
<
typename
...>
151
friend
struct
map_list
;
152
template
<
typename
...>
153
friend
struct
multi_aff
;
154
template
<
typename
...>
155
friend
struct
multi_id
;
156
template
<
typename
...>
157
friend
struct
multi_pw_aff
;
158
template
<
typename
...>
159
friend
struct
multi_union_pw_aff
;
160
template
<
typename
...>
161
friend
struct
multi_val
;
162
template
<
typename
...>
163
friend
struct
point
;
164
template
<
typename
...>
165
friend
struct
pw_aff
;
166
template
<
typename
...>
167
friend
struct
pw_aff_list
;
168
template
<
typename
...>
169
friend
struct
pw_multi_aff
;
170
template
<
typename
...>
171
friend
struct
pw_multi_aff_list
;
172
template
<
typename
...>
173
friend
struct
set
;
174
template
<
typename
...>
175
friend
struct
set_list
;
176
template
<
typename
...>
177
friend
struct
space
;
178
template
<
typename
...>
179
friend
struct
union_map
;
180
template
<
typename
...>
181
friend
struct
union_pw_aff
;
182
template
<
typename
...>
183
friend
struct
union_pw_aff_list
;
184
template
<
typename
...>
185
friend
struct
union_pw_multi_aff
;
186
template
<
typename
...>
187
friend
struct
union_set
;
188
template
<
typename
...>
189
friend
struct
union_set_list
;
190
template
<
typename
...>
191
friend
struct
val
;
192
template
<
typename
...>
193
friend
struct
val_list
;
194
195
aff
() =
default
;
196
aff
(
const
isl::aff
&
obj
) :
isl
::
aff
(
obj
) {}
197
static
aff
from
(
const
isl::aff
&
obj
) {
198
return
aff
(
obj
);
199
}
200
inline
explicit
aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
201
inline
typed::aff<Anonymous>
add
(
const
typed::aff<Anonymous>
&aff2)
const
;
202
inline
typed::multi_aff<Anonymous>
add
(
const
typed::multi_aff<Anonymous>
&multi2)
const
;
203
inline
typed::multi_pw_aff<Anonymous>
add
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
204
inline
typed::multi_union_pw_aff<Anonymous>
add
(
const
typed::multi_union_pw_aff<Anonymous>
&multi2)
const
;
205
inline
typed::pw_aff<Anonymous>
add
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
206
inline
typed::pw_multi_aff<Anonymous>
add
(
const
typed::pw_multi_aff<Anonymous>
&pma2)
const
;
207
inline
typed::union_pw_aff<Anonymous>
add
(
const
typed::union_pw_aff<Anonymous>
&upa2)
const
;
208
inline
typed::union_pw_multi_aff<Anonymous>
add
(
const
typed::union_pw_multi_aff<Anonymous>
&upma2)
const
;
209
inline
typed::aff<Anonymous>
add_constant
(
const
typed::val<Anonymous>
&v)
const
;
210
inline
typed::aff<Anonymous>
add_constant
(
long
v)
const
;
211
inline
typed::multi_aff<Anonymous>
add_constant
(
const
typed::multi_val<Anonymous>
&mv)
const
;
212
template
<
typename
Range>
213
inline
typed::union_pw_multi_aff<Range>
apply
(
const
typed::union_pw_multi_aff<Anonymous, Range>
&upma2)
const
;
214
inline
typed::aff<Anonymous>
as_aff
()
const
;
215
inline
typed::map<Anonymous>
as_map
()
const
=
delete
;
216
inline
typed::multi_aff<Anonymous>
as_multi_aff
()
const
;
217
inline
typed::multi_union_pw_aff<Anonymous>
as_multi_union_pw_aff
()
const
;
218
inline
typed::pw_multi_aff<Anonymous>
as_pw_multi_aff
()
const
;
219
inline
typed::set<Anonymous>
as_set
()
const
;
220
inline
typed::union_map<Anonymous>
as_union_map
()
const
=
delete
;
221
inline
typed::aff<Anonymous>
at
(
int
pos
)
const
;
222
inline
typed::basic_set<>
bind
(
const
typed::id<Anonymous>
&
id
)
const
;
223
inline
typed::basic_set<>
bind
(
const
std::string &
id
)
const
;
224
inline
typed::basic_set<>
bind
(
const
typed::multi_id<Anonymous>
&
tuple
)
const
;
225
inline
typed::pw_aff<Anonymous>
bind_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
226
inline
typed::pw_aff<Anonymous>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
227
inline
typed::aff<Anonymous>
ceil
()
const
;
228
inline
typed::pw_aff<Anonymous>
coalesce
()
const
;
229
inline
typed::pw_aff<Anonymous>
cond
(
const
typed::pw_aff<Anonymous>
&pwaff_true,
const
typed::pw_aff<Anonymous>
&pwaff_false)
const
;
230
inline
typed::multi_val<Anonymous>
constant_multi_val
()
const
;
231
inline
typed::val<Anonymous>
constant_val
()
const
;
232
inline
typed::val<Anonymous>
get_constant_val
()
const
=
delete
;
233
inline
typed::set<>
domain
()
const
;
234
inline
typed::aff<Anonymous>
domain_reverse
()
const
=
delete
;
235
inline
typed::pw_aff<Anonymous>
drop_unused_params
()
const
;
236
inline
typed::pw_multi_aff<Anonymous>
extract_pw_multi_aff
(
const
typed::space<Anonymous>
&
space
)
const
;
237
inline
typed::aff<Anonymous>
floor
()
const
;
238
inline
typed::set<Anonymous>
ge_set
(
const
typed::aff<>
&aff2)
const
=
delete
;
239
inline
typed::set<Anonymous>
ge_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
240
inline
typed::aff<Anonymous>
gist
(
const
typed::set<>
&
context
)
const
;
241
inline
typed::union_pw_aff<Anonymous>
gist
(
const
typed::union_set<>
&
context
)
const
;
242
inline
typed::aff<Anonymous>
gist
(
const
typed::basic_set<>
&
context
)
const
;
243
inline
typed::aff<Anonymous>
gist
(
const
typed::point<>
&
context
)
const
;
244
inline
typed::aff<Anonymous>
gist_params
(
const
typed::set<>
&
context
)
const
;
245
inline
typed::aff<Anonymous>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
246
inline
typed::aff<Anonymous>
gist_params
(
const
typed::point<>
&
context
)
const
;
247
inline
typed::set<Anonymous>
gt_set
(
const
typed::aff<>
&aff2)
const
=
delete
;
248
inline
typed::set<Anonymous>
gt_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
249
inline
typed::multi_aff<Anonymous, Anonymous>
identity
()
const
;
250
template
<
typename
Domain>
251
inline
typed::pw_aff<Domain, Anonymous>
insert_domain
(
const
typed::space<Domain>
&
domain
)
const
;
252
inline
typed::pw_aff<Anonymous>
intersect_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
253
inline
typed::union_pw_aff<Anonymous>
intersect_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
254
inline
typed::union_pw_aff<Anonymous>
intersect_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
255
inline
typed::union_pw_aff<Anonymous>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
256
inline
typed::pw_aff<Anonymous>
intersect_params
(
const
typed::set<>
&
set
)
const
;
257
inline
typed::set<Anonymous>
le_set
(
const
typed::aff<>
&aff2)
const
=
delete
;
258
inline
typed::set<Anonymous>
le_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
259
inline
typed::aff_list<Anonymous>
list
()
const
;
260
inline
typed::set<Anonymous>
lt_set
(
const
typed::aff<>
&aff2)
const
=
delete
;
261
inline
typed::set<Anonymous>
lt_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
262
inline
typed::multi_pw_aff<Anonymous>
max
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
263
inline
typed::pw_aff<Anonymous>
max
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
264
inline
typed::multi_val<Anonymous>
max_multi_val
()
const
;
265
inline
typed::val<Anonymous>
max_val
()
const
;
266
inline
typed::multi_pw_aff<Anonymous>
min
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
267
inline
typed::pw_aff<Anonymous>
min
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
268
inline
typed::multi_val<Anonymous>
min_multi_val
()
const
;
269
inline
typed::val<Anonymous>
min_val
()
const
;
270
inline
typed::aff<Anonymous>
mod
(
const
typed::val<Anonymous>
&
mod
)
const
;
271
inline
typed::aff<Anonymous>
mod
(
long
mod
)
const
;
272
inline
typed::aff<Anonymous>
neg
()
const
;
273
inline
typed::set<>
params
()
const
;
274
inline
typed::pw_multi_aff<Anonymous>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
275
inline
typed::union_pw_multi_aff<Anonymous>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
276
template
<
typename
Range>
277
inline
typed::multi_aff<pair<Anonymous, Range>
>
product
(
const
typed::multi_aff<Range>
&multi2)
const
;
278
template
<
typename
Range>
279
inline
typed::multi_pw_aff<pair<Anonymous, Range>
>
product
(
const
typed::multi_pw_aff<Range>
&multi2)
const
;
280
template
<
typename
Range>
281
inline
typed::pw_multi_aff<pair<Anonymous, Range>
>
product
(
const
typed::pw_multi_aff<Range>
&pma2)
const
;
282
inline
typed::aff<Anonymous>
pullback
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
283
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
284
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::pw_multi_aff<>
&
pma
)
const
=
delete
;
285
inline
typed::union_pw_aff<Anonymous>
pullback
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
286
inline
typed::aff<Anonymous>
pullback
(
const
typed::aff<>
&
ma
)
const
=
delete
;
287
inline
typed::pw_multi_aff_list<Anonymous>
pw_multi_aff_list
()
const
;
288
inline
typed::pw_multi_aff<Anonymous>
range_factor_domain
()
const
=
delete
;
289
inline
typed::pw_multi_aff<Anonymous>
range_factor_range
()
const
=
delete
;
290
inline
typed::multi_aff<Anonymous>
range_product
(
const
typed::multi_aff<>
&multi2)
const
=
delete
;
291
inline
typed::multi_pw_aff<Anonymous>
range_product
(
const
typed::multi_pw_aff<>
&multi2)
const
=
delete
;
292
inline
typed::multi_union_pw_aff<Anonymous>
range_product
(
const
typed::multi_union_pw_aff<>
&multi2)
const
=
delete
;
293
inline
typed::pw_multi_aff<Anonymous>
range_product
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
294
inline
typed::union_pw_multi_aff<Anonymous>
range_product
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
295
inline
typed::aff<Anonymous>
scale
(
const
typed::val<Anonymous>
&v)
const
;
296
inline
typed::aff<Anonymous>
scale
(
long
v)
const
;
297
inline
typed::multi_aff<Anonymous>
scale
(
const
typed::multi_val<Anonymous>
&mv)
const
;
298
inline
typed::aff<Anonymous>
scale_down
(
const
typed::val<Anonymous>
&v)
const
;
299
inline
typed::aff<Anonymous>
scale_down
(
long
v)
const
;
300
inline
typed::multi_aff<Anonymous>
scale_down
(
const
typed::multi_val<Anonymous>
&mv)
const
;
301
inline
typed::multi_aff<Anonymous>
set_at
(
int
pos
,
const
typed::aff<Anonymous>
&el)
const
;
302
inline
typed::multi_pw_aff<Anonymous>
set_at
(
int
pos
,
const
typed::pw_aff<Anonymous>
&el)
const
;
303
inline
typed::multi_union_pw_aff<Anonymous>
set_at
(
int
pos
,
const
typed::union_pw_aff<Anonymous>
&el)
const
;
304
template
<
typename
Domain2>
305
inline
typed::multi_aff<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
306
template
<
typename
Domain2>
307
inline
typed::multi_aff<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
308
inline
typed::space<Anonymous>
space
()
const
;
309
inline
typed::aff<Anonymous>
sub
(
const
typed::aff<Anonymous>
&aff2)
const
;
310
inline
typed::multi_aff<Anonymous>
sub
(
const
typed::multi_aff<Anonymous>
&multi2)
const
;
311
inline
typed::multi_pw_aff<Anonymous>
sub
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
312
inline
typed::multi_union_pw_aff<Anonymous>
sub
(
const
typed::multi_union_pw_aff<Anonymous>
&multi2)
const
;
313
inline
typed::pw_aff<Anonymous>
sub
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
314
inline
typed::pw_multi_aff<Anonymous>
sub
(
const
typed::pw_multi_aff<Anonymous>
&pma2)
const
;
315
inline
typed::union_pw_aff<Anonymous>
sub
(
const
typed::union_pw_aff<Anonymous>
&upa2)
const
;
316
inline
typed::union_pw_multi_aff<Anonymous>
sub
(
const
typed::union_pw_multi_aff<Anonymous>
&upma2)
const
;
317
inline
typed::pw_aff<Anonymous>
subtract_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
318
inline
typed::union_pw_aff<Anonymous>
subtract_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
319
inline
typed::union_pw_aff<Anonymous>
subtract_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
320
inline
typed::multi_pw_aff<Anonymous>
to_multi_pw_aff
()
const
;
321
inline
typed::multi_union_pw_aff<Anonymous>
to_multi_union_pw_aff
()
const
;
322
inline
typed::pw_multi_aff<Anonymous>
to_pw_multi_aff
()
const
;
323
inline
typed::union_pw_aff<Anonymous>
to_union_pw_aff
()
const
;
324
inline
typed::union_pw_multi_aff<Anonymous>
to_union_pw_multi_aff
()
const
;
325
template
<
typename
Domain>
326
inline
typed::aff<Domain, Anonymous>
unbind_params_insert_domain
(
const
typed::multi_id<Domain>
&
domain
)
const
;
327
inline
typed::multi_pw_aff<Anonymous>
union_add
(
const
typed::multi_pw_aff<Anonymous>
&mpa2)
const
;
328
inline
typed::multi_union_pw_aff<Anonymous>
union_add
(
const
typed::multi_union_pw_aff<Anonymous>
&mupa2)
const
;
329
inline
typed::pw_aff<Anonymous>
union_add
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
330
inline
typed::pw_multi_aff<Anonymous>
union_add
(
const
typed::pw_multi_aff<Anonymous>
&pma2)
const
;
331
inline
typed::union_pw_aff<Anonymous>
union_add
(
const
typed::union_pw_aff<Anonymous>
&upa2)
const
;
332
inline
typed::union_pw_multi_aff<Anonymous>
union_add
(
const
typed::union_pw_multi_aff<Anonymous>
&upma2)
const
;
333
};
334
335
template
<
typename
Domain>
336
struct
aff
<
Domain
,
Anonymous
> :
public
isl::aff
{
337
template
<
typename
...>
338
friend
struct
aff
;
339
template
<
typename
...>
340
friend
struct
aff_list
;
341
template
<
typename
...>
342
friend
struct
basic_map
;
343
template
<
typename
...>
344
friend
struct
basic_set
;
345
template
<
typename
...>
346
friend
struct
fixed_box
;
347
template
<
typename
...>
348
friend
struct
id
;
349
template
<
typename
...>
350
friend
struct
id_list
;
351
template
<
typename
...>
352
friend
struct
map
;
353
template
<
typename
...>
354
friend
struct
map_list
;
355
template
<
typename
...>
356
friend
struct
multi_aff
;
357
template
<
typename
...>
358
friend
struct
multi_id
;
359
template
<
typename
...>
360
friend
struct
multi_pw_aff
;
361
template
<
typename
...>
362
friend
struct
multi_union_pw_aff
;
363
template
<
typename
...>
364
friend
struct
multi_val
;
365
template
<
typename
...>
366
friend
struct
point
;
367
template
<
typename
...>
368
friend
struct
pw_aff
;
369
template
<
typename
...>
370
friend
struct
pw_aff_list
;
371
template
<
typename
...>
372
friend
struct
pw_multi_aff
;
373
template
<
typename
...>
374
friend
struct
pw_multi_aff_list
;
375
template
<
typename
...>
376
friend
struct
set
;
377
template
<
typename
...>
378
friend
struct
set_list
;
379
template
<
typename
...>
380
friend
struct
space
;
381
template
<
typename
...>
382
friend
struct
union_map
;
383
template
<
typename
...>
384
friend
struct
union_pw_aff
;
385
template
<
typename
...>
386
friend
struct
union_pw_aff_list
;
387
template
<
typename
...>
388
friend
struct
union_pw_multi_aff
;
389
template
<
typename
...>
390
friend
struct
union_set
;
391
template
<
typename
...>
392
friend
struct
union_set_list
;
393
template
<
typename
...>
394
friend
struct
val
;
395
template
<
typename
...>
396
friend
struct
val_list
;
397
398
aff
() =
default
;
399
template
<
typename
Arg1,
400
typename
std::enable_if<
401
std::is_base_of<Domain, Arg1>{},
402
bool
>
::type
=
true
>
403
aff
(
const
aff<Arg1, Anonymous>
&
obj
) :
isl
::
aff
(
obj
) {}
404
private
:
405
template
<
typename
base,
406
typename
std::enable_if<
407
std::is_same<base, isl::aff>{},
bool
>
::type
=
true
>
408
aff
(
const
base &
obj
) :
isl
::
aff
(
obj
) {}
409
public
:
410
static
aff
from
(
const
isl::aff
&
obj
) {
411
return
aff
(
obj
);
412
}
413
inline
explicit
aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
414
inline
typed::aff<Domain, Anonymous>
add
(
const
typed::aff<Domain, Anonymous>
&aff2)
const
;
415
inline
typed::multi_aff<Domain, Anonymous>
add
(
const
typed::multi_aff<Domain, Anonymous>
&multi2)
const
;
416
inline
typed::multi_pw_aff<Domain, Anonymous>
add
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
417
inline
typed::multi_union_pw_aff<Domain, Anonymous>
add
(
const
typed::multi_union_pw_aff<Domain, Anonymous>
&multi2)
const
;
418
inline
typed::pw_aff<Domain, Anonymous>
add
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
419
inline
typed::pw_multi_aff<Domain, Anonymous>
add
(
const
typed::pw_multi_aff<Domain, Anonymous>
&pma2)
const
;
420
inline
typed::union_pw_aff<Domain, Anonymous>
add
(
const
typed::union_pw_aff<Domain, Anonymous>
&upa2)
const
;
421
inline
typed::union_pw_multi_aff<Domain, Anonymous>
add
(
const
typed::union_pw_multi_aff<Domain, Anonymous>
&upma2)
const
;
422
inline
typed::aff<Domain, Anonymous>
add_constant
(
const
typed::val<Anonymous>
&v)
const
;
423
inline
typed::aff<Domain, Anonymous>
add_constant
(
long
v)
const
;
424
inline
typed::multi_aff<Domain, Anonymous>
add_constant
(
const
typed::multi_val<Anonymous>
&mv)
const
;
425
template
<
typename
Range2>
426
inline
typed::union_pw_multi_aff<Domain, Range2>
apply
(
const
typed::union_pw_multi_aff<Anonymous, Range2>
&upma2)
const
;
427
inline
typed::aff<Domain, Anonymous>
as_aff
()
const
;
428
inline
typed::map<Domain, Anonymous>
as_map
()
const
;
429
inline
typed::multi_aff<Domain, Anonymous>
as_multi_aff
()
const
;
430
inline
typed::multi_union_pw_aff<Domain, Anonymous>
as_multi_union_pw_aff
()
const
;
431
inline
typed::pw_multi_aff<Domain, Anonymous>
as_pw_multi_aff
()
const
;
432
inline
typed::set<Domain, Anonymous>
as_set
()
const
=
delete
;
433
inline
typed::union_map<Domain, Anonymous>
as_union_map
()
const
;
434
inline
typed::aff<Domain, Anonymous>
at
(
int
pos
)
const
;
435
inline
typed::basic_set<Domain>
bind
(
const
typed::id<Anonymous>
&
id
)
const
;
436
inline
typed::basic_set<Domain>
bind
(
const
std::string &
id
)
const
;
437
inline
typed::basic_set<Domain>
bind
(
const
typed::multi_id<Anonymous>
&
tuple
)
const
;
438
inline
typed::pw_aff<Anonymous>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
439
inline
typed::pw_aff<Domain, Anonymous>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
440
inline
typed::aff<Domain, Anonymous>
ceil
()
const
;
441
inline
typed::pw_aff<Domain, Anonymous>
coalesce
()
const
;
442
inline
typed::pw_aff<Domain, Anonymous>
cond
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff_true,
const
typed::pw_aff<Domain, Anonymous>
&pwaff_false)
const
;
443
inline
typed::multi_val<Anonymous>
constant_multi_val
()
const
;
444
inline
typed::val<Anonymous>
constant_val
()
const
;
445
inline
typed::val<Domain, Anonymous>
get_constant_val
()
const
=
delete
;
446
inline
typed::set<Domain>
domain
()
const
;
447
inline
typed::aff<Domain, Anonymous>
domain_reverse
()
const
=
delete
;
448
inline
typed::pw_aff<Domain, Anonymous>
drop_unused_params
()
const
;
449
inline
typed::pw_multi_aff<Domain, Anonymous>
extract_pw_multi_aff
(
const
typed::space<Domain, Anonymous>
&
space
)
const
;
450
inline
typed::aff<Domain, Anonymous>
floor
()
const
;
451
inline
typed::set<Domain>
ge_set
(
const
typed::aff<Domain, Anonymous>
&aff2)
const
;
452
inline
typed::set<Domain>
ge_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
453
inline
typed::aff<Domain, Anonymous>
gist
(
const
typed::set<Domain>
&
context
)
const
;
454
inline
typed::union_pw_aff<Domain, Anonymous>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
455
inline
typed::aff<Domain, Anonymous>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
456
inline
typed::aff<Domain, Anonymous>
gist
(
const
typed::point<Domain>
&
context
)
const
;
457
inline
typed::aff<Domain, Anonymous>
gist_params
(
const
typed::set<>
&
context
)
const
;
458
inline
typed::aff<Domain, Anonymous>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
459
inline
typed::aff<Domain, Anonymous>
gist_params
(
const
typed::point<>
&
context
)
const
;
460
inline
typed::set<Domain>
gt_set
(
const
typed::aff<Domain, Anonymous>
&aff2)
const
;
461
inline
typed::set<Domain>
gt_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
462
inline
typed::multi_aff<Domain, Anonymous>
identity
()
const
;
463
inline
typed::pw_aff<Domain, Anonymous>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
464
inline
typed::pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
465
inline
typed::union_pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
466
inline
typed::union_pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
467
inline
typed::union_pw_aff<Domain, Anonymous>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
468
inline
typed::pw_aff<Domain, Anonymous>
intersect_params
(
const
typed::set<>
&
set
)
const
;
469
inline
typed::set<Domain>
le_set
(
const
typed::aff<Domain, Anonymous>
&aff2)
const
;
470
inline
typed::set<Domain>
le_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
471
inline
typed::aff_list<Domain, Anonymous>
list
()
const
;
472
inline
typed::set<Domain>
lt_set
(
const
typed::aff<Domain, Anonymous>
&aff2)
const
;
473
inline
typed::set<Domain>
lt_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
474
inline
typed::multi_pw_aff<Domain, Anonymous>
max
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
475
inline
typed::pw_aff<Domain, Anonymous>
max
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
476
inline
typed::multi_val<Anonymous>
max_multi_val
()
const
;
477
inline
typed::val<Anonymous>
max_val
()
const
;
478
inline
typed::multi_pw_aff<Domain, Anonymous>
min
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
479
inline
typed::pw_aff<Domain, Anonymous>
min
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
480
inline
typed::multi_val<Anonymous>
min_multi_val
()
const
;
481
inline
typed::val<Anonymous>
min_val
()
const
;
482
inline
typed::aff<Domain, Anonymous>
mod
(
const
typed::val<Anonymous>
&
mod
)
const
;
483
inline
typed::aff<Domain, Anonymous>
mod
(
long
mod
)
const
;
484
inline
typed::aff<Domain, Anonymous>
neg
()
const
;
485
inline
typed::set<>
params
()
const
;
486
inline
typed::pw_multi_aff<Domain, Anonymous>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
487
inline
typed::union_pw_multi_aff<Domain, Anonymous>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
488
template
<
typename
Domain2,
typename
Range2>
489
inline
typed::multi_aff<pair<Domain, Domain2>
,
pair<Anonymous, Range2>
>
product
(
const
typed::multi_aff<Domain2, Range2>
&multi2)
const
;
490
template
<
typename
Domain2,
typename
Range2>
491
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Anonymous, Range2>
>
product
(
const
typed::multi_pw_aff<Domain2, Range2>
&multi2)
const
;
492
template
<
typename
Domain2,
typename
Range2>
493
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<Anonymous, Range2>
>
product
(
const
typed::pw_multi_aff<Domain2, Range2>
&pma2)
const
;
494
template
<
typename
Domain2>
495
inline
typed::aff<Domain2, Anonymous>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
496
inline
typed::aff<Anonymous>
pullback
(
const
typed::multi_aff<Domain>
&
ma
)
const
;
497
template
<
typename
Domain2>
498
inline
typed::pw_aff<Domain2, Anonymous>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
499
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa)
const
;
500
template
<
typename
Domain2>
501
inline
typed::pw_aff<Domain2, Anonymous>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
502
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::pw_multi_aff<Domain>
&
pma
)
const
;
503
template
<
typename
Domain2>
504
inline
typed::union_pw_aff<Domain2, Anonymous>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
505
inline
typed::union_pw_aff<Anonymous>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma)
const
;
506
template
<
typename
Domain2>
507
inline
typed::aff<Domain2, Anonymous>
pullback
(
const
typed::aff<Domain2, Domain>
&
ma
)
const
;
508
inline
typed::aff<Anonymous>
pullback
(
const
typed::aff<Domain>
&
ma
)
const
;
509
inline
typed::pw_multi_aff_list<Domain, Anonymous>
pw_multi_aff_list
()
const
;
510
inline
typed::pw_multi_aff<Domain, Anonymous>
range_factor_domain
()
const
=
delete
;
511
inline
typed::pw_multi_aff<Domain, Anonymous>
range_factor_range
()
const
=
delete
;
512
template
<
typename
Range2>
513
inline
typed::multi_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::multi_aff<Domain, Range2>
&multi2)
const
;
514
template
<
typename
Range2>
515
inline
typed::multi_pw_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::multi_pw_aff<Domain, Range2>
&multi2)
const
;
516
template
<
typename
Range2>
517
inline
typed::multi_union_pw_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::multi_union_pw_aff<Domain, Range2>
&multi2)
const
;
518
template
<
typename
Range2>
519
inline
typed::pw_multi_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::pw_multi_aff<Domain, Range2>
&pma2)
const
;
520
template
<
typename
Range2>
521
inline
typed::union_pw_multi_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::union_pw_multi_aff<Domain, Range2>
&upma2)
const
;
522
inline
typed::aff<Domain, Anonymous>
scale
(
const
typed::val<Anonymous>
&v)
const
;
523
inline
typed::aff<Domain, Anonymous>
scale
(
long
v)
const
;
524
inline
typed::multi_aff<Domain, Anonymous>
scale
(
const
typed::multi_val<Anonymous>
&mv)
const
;
525
inline
typed::aff<Domain, Anonymous>
scale_down
(
const
typed::val<Anonymous>
&v)
const
;
526
inline
typed::aff<Domain, Anonymous>
scale_down
(
long
v)
const
;
527
inline
typed::multi_aff<Domain, Anonymous>
scale_down
(
const
typed::multi_val<Anonymous>
&mv)
const
;
528
inline
typed::multi_aff<Domain, Anonymous>
set_at
(
int
pos
,
const
typed::aff<Domain, Anonymous>
&el)
const
;
529
inline
typed::multi_pw_aff<Domain, Anonymous>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
530
inline
typed::multi_union_pw_aff<Domain, Anonymous>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
531
template
<
typename
Range2>
532
inline
typed::multi_aff<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
533
template
<
typename
Range2>
534
inline
typed::multi_aff<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
535
inline
typed::space<Domain, Anonymous>
space
()
const
;
536
inline
typed::aff<Domain, Anonymous>
sub
(
const
typed::aff<Domain, Anonymous>
&aff2)
const
;
537
inline
typed::multi_aff<Domain, Anonymous>
sub
(
const
typed::multi_aff<Domain, Anonymous>
&multi2)
const
;
538
inline
typed::multi_pw_aff<Domain, Anonymous>
sub
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
539
inline
typed::multi_union_pw_aff<Domain, Anonymous>
sub
(
const
typed::multi_union_pw_aff<Domain, Anonymous>
&multi2)
const
;
540
inline
typed::pw_aff<Domain, Anonymous>
sub
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
541
inline
typed::pw_multi_aff<Domain, Anonymous>
sub
(
const
typed::pw_multi_aff<Domain, Anonymous>
&pma2)
const
;
542
inline
typed::union_pw_aff<Domain, Anonymous>
sub
(
const
typed::union_pw_aff<Domain, Anonymous>
&upa2)
const
;
543
inline
typed::union_pw_multi_aff<Domain, Anonymous>
sub
(
const
typed::union_pw_multi_aff<Domain, Anonymous>
&upma2)
const
;
544
inline
typed::pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::set<Domain>
&
set
)
const
;
545
inline
typed::union_pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::space<Domain>
&
space
)
const
;
546
inline
typed::union_pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::union_set<Domain>
&uset)
const
;
547
inline
typed::multi_pw_aff<Domain, Anonymous>
to_multi_pw_aff
()
const
;
548
inline
typed::multi_union_pw_aff<Domain, Anonymous>
to_multi_union_pw_aff
()
const
;
549
inline
typed::pw_multi_aff<Domain, Anonymous>
to_pw_multi_aff
()
const
;
550
inline
typed::union_pw_aff<Domain, Anonymous>
to_union_pw_aff
()
const
;
551
inline
typed::union_pw_multi_aff<Domain, Anonymous>
to_union_pw_multi_aff
()
const
;
552
inline
typed::aff<Domain, Anonymous>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
553
inline
typed::multi_pw_aff<Domain, Anonymous>
union_add
(
const
typed::multi_pw_aff<Domain, Anonymous>
&mpa2)
const
;
554
inline
typed::multi_union_pw_aff<Domain, Anonymous>
union_add
(
const
typed::multi_union_pw_aff<Domain, Anonymous>
&mupa2)
const
;
555
inline
typed::pw_aff<Domain, Anonymous>
union_add
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
556
inline
typed::pw_multi_aff<Domain, Anonymous>
union_add
(
const
typed::pw_multi_aff<Domain, Anonymous>
&pma2)
const
;
557
inline
typed::union_pw_aff<Domain, Anonymous>
union_add
(
const
typed::union_pw_aff<Domain, Anonymous>
&upa2)
const
;
558
inline
typed::union_pw_multi_aff<Domain, Anonymous>
union_add
(
const
typed::union_pw_multi_aff<Domain, Anonymous>
&upma2)
const
;
559
};
560
561
template
<
typename
Domain2,
typename
Range2>
562
struct
aff
<
pair
<
Domain2
,
Range2
>,
Anonymous
> :
public
isl::aff
{
563
template
<
typename
...>
564
friend
struct
aff
;
565
template
<
typename
...>
566
friend
struct
aff_list
;
567
template
<
typename
...>
568
friend
struct
basic_map
;
569
template
<
typename
...>
570
friend
struct
basic_set
;
571
template
<
typename
...>
572
friend
struct
fixed_box
;
573
template
<
typename
...>
574
friend
struct
id
;
575
template
<
typename
...>
576
friend
struct
id_list
;
577
template
<
typename
...>
578
friend
struct
map
;
579
template
<
typename
...>
580
friend
struct
map_list
;
581
template
<
typename
...>
582
friend
struct
multi_aff
;
583
template
<
typename
...>
584
friend
struct
multi_id
;
585
template
<
typename
...>
586
friend
struct
multi_pw_aff
;
587
template
<
typename
...>
588
friend
struct
multi_union_pw_aff
;
589
template
<
typename
...>
590
friend
struct
multi_val
;
591
template
<
typename
...>
592
friend
struct
point
;
593
template
<
typename
...>
594
friend
struct
pw_aff
;
595
template
<
typename
...>
596
friend
struct
pw_aff_list
;
597
template
<
typename
...>
598
friend
struct
pw_multi_aff
;
599
template
<
typename
...>
600
friend
struct
pw_multi_aff_list
;
601
template
<
typename
...>
602
friend
struct
set
;
603
template
<
typename
...>
604
friend
struct
set_list
;
605
template
<
typename
...>
606
friend
struct
space
;
607
template
<
typename
...>
608
friend
struct
union_map
;
609
template
<
typename
...>
610
friend
struct
union_pw_aff
;
611
template
<
typename
...>
612
friend
struct
union_pw_aff_list
;
613
template
<
typename
...>
614
friend
struct
union_pw_multi_aff
;
615
template
<
typename
...>
616
friend
struct
union_set
;
617
template
<
typename
...>
618
friend
struct
union_set_list
;
619
template
<
typename
...>
620
friend
struct
val
;
621
template
<
typename
...>
622
friend
struct
val_list
;
623
624
aff
() =
default
;
625
template
<
typename
Arg1,
typename
Arg2,
626
typename
std::enable_if<
627
std::is_base_of<Domain2, Arg1>{} &&
628
std::is_base_of<Range2, Arg2>{},
629
bool
>
::type
=
true
>
630
aff
(
const
aff
<
pair<Arg1, Arg2>
,
Anonymous
> &
obj
) :
isl
::
aff
(
obj
) {}
631
private
:
632
template
<
typename
base,
633
typename
std::enable_if<
634
std::is_same<base, isl::aff>{},
bool
>
::type
=
true
>
635
aff
(
const
base &
obj
) :
isl
::
aff
(
obj
) {}
636
public
:
637
static
aff
from
(
const
isl::aff
&
obj
) {
638
return
aff
(
obj
);
639
}
640
inline
explicit
aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
641
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &aff2)
const
;
642
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
643
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
644
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
645
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
646
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
647
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upa2)
const
;
648
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upma2)
const
;
649
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
add_constant
(
const
typed::val<Anonymous>
&v)
const
;
650
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
add_constant
(
long
v)
const
;
651
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add_constant
(
const
typed::multi_val<Anonymous>
&mv)
const
;
652
template
<
typename
Arg1>
653
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
, Arg1>
apply
(
const
typed::union_pw_multi_aff<Anonymous, Arg1>
&upma2)
const
;
654
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
as_aff
()
const
;
655
inline
typed::map<pair<Domain2, Range2>
,
Anonymous
>
as_map
()
const
;
656
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
as_multi_aff
()
const
;
657
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
as_multi_union_pw_aff
()
const
;
658
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
as_pw_multi_aff
()
const
;
659
inline
typed::set<pair<Domain2, Range2>
,
Anonymous
>
as_set
()
const
=
delete
;
660
inline
typed::union_map<pair<Domain2, Range2>
,
Anonymous
>
as_union_map
()
const
;
661
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
at
(
int
pos
)
const
;
662
inline
typed::basic_set<pair<Domain2, Range2>
>
bind
(
const
typed::id<Anonymous>
&
id
)
const
;
663
inline
typed::basic_set<pair<Domain2, Range2>
>
bind
(
const
std::string &
id
)
const
;
664
inline
typed::basic_set<pair<Domain2, Range2>
>
bind
(
const
typed::multi_id<Anonymous>
&
tuple
)
const
;
665
inline
typed::pw_aff<Anonymous>
bind_domain
(
const
typed::multi_id
<
pair<Domain2, Range2>
> &
tuple
)
const
;
666
inline
typed::pw_aff<Range2, Anonymous>
bind_domain_wrapped_domain
(
const
typed::multi_id<Domain2>
&
tuple
)
const
;
667
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
ceil
()
const
;
668
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
coalesce
()
const
;
669
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
cond
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff_true,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff_false)
const
;
670
inline
typed::multi_val<Anonymous>
constant_multi_val
()
const
;
671
inline
typed::val<Anonymous>
constant_val
()
const
;
672
inline
typed::val<pair<Domain2, Range2>
,
Anonymous
>
get_constant_val
()
const
=
delete
;
673
inline
typed::set<pair<Domain2, Range2>
>
domain
()
const
;
674
inline
typed::aff<pair<Range2, Domain2>
,
Anonymous
>
domain_reverse
()
const
;
675
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
drop_unused_params
()
const
;
676
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
extract_pw_multi_aff
(
const
typed::space
<
pair<Domain2, Range2>
,
Anonymous
> &
space
)
const
;
677
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
floor
()
const
;
678
inline
typed::set<pair<Domain2, Range2>
>
ge_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &aff2)
const
;
679
inline
typed::set<pair<Domain2, Range2>
>
ge_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
680
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::set
<
pair<Domain2, Range2>
> &
context
)
const
;
681
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::union_set
<
pair<Domain2, Range2>
> &
context
)
const
;
682
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
context
)
const
;
683
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::point
<
pair<Domain2, Range2>
> &
context
)
const
;
684
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
gist_params
(
const
typed::set<>
&
context
)
const
;
685
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
686
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
gist_params
(
const
typed::point<>
&
context
)
const
;
687
inline
typed::set<pair<Domain2, Range2>
>
gt_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &aff2)
const
;
688
inline
typed::set<pair<Domain2, Range2>
>
gt_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
689
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
identity
()
const
;
690
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
691
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
692
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
693
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
694
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain_wrapped_domain
(
const
typed::union_set<Domain2>
&uset)
const
;
695
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
696
inline
typed::set<pair<Domain2, Range2>
>
le_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &aff2)
const
;
697
inline
typed::set<pair<Domain2, Range2>
>
le_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
698
inline
typed::aff_list<pair<Domain2, Range2>
,
Anonymous
>
list
()
const
;
699
inline
typed::set<pair<Domain2, Range2>
>
lt_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &aff2)
const
;
700
inline
typed::set<pair<Domain2, Range2>
>
lt_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
701
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
max
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
702
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
max
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
703
inline
typed::multi_val<Anonymous>
max_multi_val
()
const
;
704
inline
typed::val<Anonymous>
max_val
()
const
;
705
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
min
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
706
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
min
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
707
inline
typed::multi_val<Anonymous>
min_multi_val
()
const
;
708
inline
typed::val<Anonymous>
min_val
()
const
;
709
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
mod
(
const
typed::val<Anonymous>
&
mod
)
const
;
710
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
mod
(
long
mod
)
const
;
711
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
neg
()
const
;
712
inline
typed::set<>
params
()
const
;
713
template
<
typename
Domain3>
714
inline
typed::pw_multi_aff<pair<Domain3, Range2>
,
Anonymous
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<Domain3, Domain2>
&pma2)
const
;
715
template
<
typename
Domain3>
716
inline
typed::union_pw_multi_aff<pair<Domain3, Range2>
,
Anonymous
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<Domain3, Domain2>
&upma2)
const
;
717
template
<
typename
Arg1,
typename
Arg2>
718
inline
typed::multi_aff<pair<pair<Domain2, Range2>
, Arg1>,
pair<Anonymous, Arg2>
>
product
(
const
typed::multi_aff<Arg1, Arg2>
&multi2)
const
;
719
template
<
typename
Arg1,
typename
Arg2>
720
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg1>,
pair<Anonymous, Arg2>
>
product
(
const
typed::multi_pw_aff<Arg1, Arg2>
&multi2)
const
;
721
template
<
typename
Arg1,
typename
Arg2>
722
inline
typed::pw_multi_aff<pair<pair<Domain2, Range2>
, Arg1>,
pair<Anonymous, Arg2>
>
product
(
const
typed::pw_multi_aff<Arg1, Arg2>
&pma2)
const
;
723
template
<
typename
Arg1>
724
inline
typed::aff<Arg1, Anonymous>
pullback
(
const
typed::multi_aff
<Arg1,
pair<Domain2, Range2>
> &
ma
)
const
;
725
inline
typed::aff<Anonymous>
pullback
(
const
typed::multi_aff
<
pair<Domain2, Range2>
> &
ma
)
const
;
726
template
<
typename
Arg1>
727
inline
typed::pw_aff<Arg1, Anonymous>
pullback
(
const
typed::multi_pw_aff
<Arg1,
pair<Domain2, Range2>
> &mpa)
const
;
728
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
> &mpa)
const
;
729
template
<
typename
Arg1>
730
inline
typed::pw_aff<Arg1, Anonymous>
pullback
(
const
typed::pw_multi_aff
<Arg1,
pair<Domain2, Range2>
> &
pma
)
const
;
731
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
> &
pma
)
const
;
732
template
<
typename
Arg1>
733
inline
typed::union_pw_aff<Arg1, Anonymous>
pullback
(
const
typed::union_pw_multi_aff
<Arg1,
pair<Domain2, Range2>
> &upma)
const
;
734
inline
typed::union_pw_aff<Anonymous>
pullback
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
> &upma)
const
;
735
template
<
typename
Arg1>
736
inline
typed::aff<Arg1, Anonymous>
pullback
(
const
typed::aff
<Arg1,
pair<Domain2, Range2>
> &
ma
)
const
;
737
inline
typed::aff<Anonymous>
pullback
(
const
typed::aff
<
pair<Domain2, Range2>
> &
ma
)
const
;
738
inline
typed::pw_multi_aff_list<pair<Domain2, Range2>
,
Anonymous
>
pw_multi_aff_list
()
const
;
739
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
range_factor_domain
()
const
=
delete
;
740
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
range_factor_range
()
const
=
delete
;
741
template
<
typename
Arg1>
742
inline
typed::multi_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::multi_aff
<
pair<Domain2, Range2>
, Arg1> &multi2)
const
;
743
template
<
typename
Arg1>
744
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
, Arg1> &multi2)
const
;
745
template
<
typename
Arg1>
746
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
, Arg1> &multi2)
const
;
747
template
<
typename
Arg1>
748
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
, Arg1> &pma2)
const
;
749
template
<
typename
Arg1>
750
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
, Arg1> &upma2)
const
;
751
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
scale
(
const
typed::val<Anonymous>
&v)
const
;
752
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
scale
(
long
v)
const
;
753
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
scale
(
const
typed::multi_val<Anonymous>
&mv)
const
;
754
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
scale_down
(
const
typed::val<Anonymous>
&v)
const
;
755
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
scale_down
(
long
v)
const
;
756
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
scale_down
(
const
typed::multi_val<Anonymous>
&mv)
const
;
757
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
set_at
(
int
pos
,
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
758
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
759
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
760
template
<
typename
Arg1>
761
inline
typed::multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
762
template
<
typename
Arg1>
763
inline
typed::multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
std::string &
id
)
const
;
764
inline
typed::space<pair<Domain2, Range2>
,
Anonymous
>
space
()
const
;
765
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &aff2)
const
;
766
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
767
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
768
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
769
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
770
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
771
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upa2)
const
;
772
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upma2)
const
;
773
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
774
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
775
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
776
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
to_multi_pw_aff
()
const
;
777
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
to_multi_union_pw_aff
()
const
;
778
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
to_pw_multi_aff
()
const
;
779
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
to_union_pw_aff
()
const
;
780
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
to_union_pw_multi_aff
()
const
;
781
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
782
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &mpa2)
const
;
783
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &mupa2)
const
;
784
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
785
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
786
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upa2)
const
;
787
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upma2)
const
;
788
};
789
790
template
<>
791
struct
aff_list
<
Anonymous
> :
public
isl::aff_list
{
792
template
<
typename
...>
793
friend
struct
aff
;
794
template
<
typename
...>
795
friend
struct
aff_list
;
796
template
<
typename
...>
797
friend
struct
basic_map
;
798
template
<
typename
...>
799
friend
struct
basic_set
;
800
template
<
typename
...>
801
friend
struct
fixed_box
;
802
template
<
typename
...>
803
friend
struct
id
;
804
template
<
typename
...>
805
friend
struct
id_list
;
806
template
<
typename
...>
807
friend
struct
map
;
808
template
<
typename
...>
809
friend
struct
map_list
;
810
template
<
typename
...>
811
friend
struct
multi_aff
;
812
template
<
typename
...>
813
friend
struct
multi_id
;
814
template
<
typename
...>
815
friend
struct
multi_pw_aff
;
816
template
<
typename
...>
817
friend
struct
multi_union_pw_aff
;
818
template
<
typename
...>
819
friend
struct
multi_val
;
820
template
<
typename
...>
821
friend
struct
point
;
822
template
<
typename
...>
823
friend
struct
pw_aff
;
824
template
<
typename
...>
825
friend
struct
pw_aff_list
;
826
template
<
typename
...>
827
friend
struct
pw_multi_aff
;
828
template
<
typename
...>
829
friend
struct
pw_multi_aff_list
;
830
template
<
typename
...>
831
friend
struct
set
;
832
template
<
typename
...>
833
friend
struct
set_list
;
834
template
<
typename
...>
835
friend
struct
space
;
836
template
<
typename
...>
837
friend
struct
union_map
;
838
template
<
typename
...>
839
friend
struct
union_pw_aff
;
840
template
<
typename
...>
841
friend
struct
union_pw_aff_list
;
842
template
<
typename
...>
843
friend
struct
union_pw_multi_aff
;
844
template
<
typename
...>
845
friend
struct
union_set
;
846
template
<
typename
...>
847
friend
struct
union_set_list
;
848
template
<
typename
...>
849
friend
struct
val
;
850
template
<
typename
...>
851
friend
struct
val_list
;
852
853
aff_list
() =
default
;
854
aff_list
(
const
isl::aff_list
&
obj
) :
isl
::
aff_list
(
obj
) {}
855
static
aff_list
from
(
const
isl::aff_list
&
obj
) {
856
return
aff_list
(
obj
);
857
}
858
inline
explicit
aff_list
(
const
isl::ctx
&
ctx
,
int
n
);
859
inline
explicit
aff_list
(
const
typed::aff<Anonymous>
&el);
860
inline
explicit
aff_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
861
inline
typed::aff_list<Anonymous>
add
(
const
typed::aff<Anonymous>
&el)
const
;
862
inline
typed::aff<Anonymous>
at
(
int
index)
const
;
863
inline
typed::aff<Anonymous>
get_at
(
int
index)
const
=
delete
;
864
inline
typed::aff_list<Anonymous>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
865
inline
void
foreach
(
const
std::function<
void
(
typed::aff<Anonymous>
)> &
fn
)
const
;
866
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::aff<Anonymous>
,
typed::aff<Anonymous>
)> &follows,
const
std::function<
void
(
typed::aff_list<Anonymous>
)> &
fn
)
const
;
867
inline
typed::aff_list<Anonymous>
set_at
(
int
index,
const
typed::aff<Anonymous>
&el)
const
;
868
};
869
870
template
<
typename
Domain>
871
struct
aff_list<Domain, Anonymous>
:
public
isl::aff_list
{
872
template
<
typename
...>
873
friend
struct
aff
;
874
template
<
typename
...>
875
friend
struct
aff_list
;
876
template
<
typename
...>
877
friend
struct
basic_map
;
878
template
<
typename
...>
879
friend
struct
basic_set
;
880
template
<
typename
...>
881
friend
struct
fixed_box
;
882
template
<
typename
...>
883
friend
struct
id
;
884
template
<
typename
...>
885
friend
struct
id_list
;
886
template
<
typename
...>
887
friend
struct
map
;
888
template
<
typename
...>
889
friend
struct
map_list
;
890
template
<
typename
...>
891
friend
struct
multi_aff
;
892
template
<
typename
...>
893
friend
struct
multi_id
;
894
template
<
typename
...>
895
friend
struct
multi_pw_aff
;
896
template
<
typename
...>
897
friend
struct
multi_union_pw_aff
;
898
template
<
typename
...>
899
friend
struct
multi_val
;
900
template
<
typename
...>
901
friend
struct
point
;
902
template
<
typename
...>
903
friend
struct
pw_aff
;
904
template
<
typename
...>
905
friend
struct
pw_aff_list
;
906
template
<
typename
...>
907
friend
struct
pw_multi_aff
;
908
template
<
typename
...>
909
friend
struct
pw_multi_aff_list
;
910
template
<
typename
...>
911
friend
struct
set
;
912
template
<
typename
...>
913
friend
struct
set_list
;
914
template
<
typename
...>
915
friend
struct
space
;
916
template
<
typename
...>
917
friend
struct
union_map
;
918
template
<
typename
...>
919
friend
struct
union_pw_aff
;
920
template
<
typename
...>
921
friend
struct
union_pw_aff_list
;
922
template
<
typename
...>
923
friend
struct
union_pw_multi_aff
;
924
template
<
typename
...>
925
friend
struct
union_set
;
926
template
<
typename
...>
927
friend
struct
union_set_list
;
928
template
<
typename
...>
929
friend
struct
val
;
930
template
<
typename
...>
931
friend
struct
val_list
;
932
933
aff_list
() =
default
;
934
template
<
typename
Arg1,
935
typename
std::enable_if<
936
std::is_base_of<Domain, Arg1>{},
937
bool
>
::type
=
true
>
938
aff_list
(
const
aff_list<Arg1, Anonymous>
&
obj
) :
isl
::
aff_list
(
obj
) {}
939
private
:
940
template
<
typename
base,
941
typename
std::enable_if<
942
std::is_same<base, isl::aff_list>{},
bool
>
::type
=
true
>
943
aff_list
(
const
base &
obj
) :
isl
::
aff_list
(
obj
) {}
944
public
:
945
static
aff_list
from
(
const
isl::aff_list
&
obj
) {
946
return
aff_list
(
obj
);
947
}
948
inline
explicit
aff_list
(
const
isl::ctx
&
ctx
,
int
n
);
949
inline
explicit
aff_list
(
const
typed::aff<Domain, Anonymous>
&el);
950
inline
explicit
aff_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
951
inline
typed::aff_list<Domain, Anonymous>
add
(
const
typed::aff<Domain, Anonymous>
&el)
const
;
952
inline
typed::aff<Domain, Anonymous>
at
(
int
index)
const
;
953
inline
typed::aff<Domain, Anonymous>
get_at
(
int
index)
const
=
delete
;
954
inline
typed::aff_list<Domain, Anonymous>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
955
inline
void
foreach
(
const
std::function<
void
(
typed::aff<Domain, Anonymous>
)> &
fn
)
const
;
956
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::aff<Domain, Anonymous>
,
typed::aff<Domain, Anonymous>
)> &follows,
const
std::function<
void
(
typed::aff_list<Domain, Anonymous>
)> &
fn
)
const
;
957
inline
typed::aff_list<Domain, Anonymous>
set_at
(
int
index,
const
typed::aff<Domain, Anonymous>
&el)
const
;
958
};
959
960
template
<
typename
Domain,
typename
Range>
961
struct
basic_map
<
Domain
,
Range
> :
public
isl::basic_map
{
962
template
<
typename
...>
963
friend
struct
aff
;
964
template
<
typename
...>
965
friend
struct
aff_list
;
966
template
<
typename
...>
967
friend
struct
basic_map
;
968
template
<
typename
...>
969
friend
struct
basic_set
;
970
template
<
typename
...>
971
friend
struct
fixed_box
;
972
template
<
typename
...>
973
friend
struct
id
;
974
template
<
typename
...>
975
friend
struct
id_list
;
976
template
<
typename
...>
977
friend
struct
map
;
978
template
<
typename
...>
979
friend
struct
map_list
;
980
template
<
typename
...>
981
friend
struct
multi_aff
;
982
template
<
typename
...>
983
friend
struct
multi_id
;
984
template
<
typename
...>
985
friend
struct
multi_pw_aff
;
986
template
<
typename
...>
987
friend
struct
multi_union_pw_aff
;
988
template
<
typename
...>
989
friend
struct
multi_val
;
990
template
<
typename
...>
991
friend
struct
point
;
992
template
<
typename
...>
993
friend
struct
pw_aff
;
994
template
<
typename
...>
995
friend
struct
pw_aff_list
;
996
template
<
typename
...>
997
friend
struct
pw_multi_aff
;
998
template
<
typename
...>
999
friend
struct
pw_multi_aff_list
;
1000
template
<
typename
...>
1001
friend
struct
set
;
1002
template
<
typename
...>
1003
friend
struct
set_list
;
1004
template
<
typename
...>
1005
friend
struct
space
;
1006
template
<
typename
...>
1007
friend
struct
union_map
;
1008
template
<
typename
...>
1009
friend
struct
union_pw_aff
;
1010
template
<
typename
...>
1011
friend
struct
union_pw_aff_list
;
1012
template
<
typename
...>
1013
friend
struct
union_pw_multi_aff
;
1014
template
<
typename
...>
1015
friend
struct
union_set
;
1016
template
<
typename
...>
1017
friend
struct
union_set_list
;
1018
template
<
typename
...>
1019
friend
struct
val
;
1020
template
<
typename
...>
1021
friend
struct
val_list
;
1022
1023
basic_map
() =
default
;
1024
template
<
typename
Arg1,
typename
Arg2,
1025
typename
std::enable_if<
1026
std::is_base_of<Domain, Arg1>{} &&
1027
std::is_base_of<Range, Arg2>{},
1028
bool
>
::type
=
true
>
1029
basic_map
(
const
basic_map<Arg1, Arg2>
&
obj
) :
isl
::
basic_map
(
obj
) {}
1030
private
:
1031
template
<
typename
base,
1032
typename
std::enable_if<
1033
std::is_same<base, isl::basic_map>{},
bool
>
::type
=
true
>
1034
basic_map
(
const
base &
obj
) :
isl
::
basic_map
(
obj
) {}
1035
public
:
1036
static
basic_map
from
(
const
isl::basic_map
&
obj
) {
1037
return
basic_map
(
obj
);
1038
}
1039
inline
explicit
basic_map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
1040
template
<
typename
Domain2>
1041
inline
typed::basic_map<Domain2, Range>
apply_domain
(
const
typed::basic_map<Domain, Domain2>
&bmap2)
const
;
1042
template
<
typename
Domain2>
1043
inline
typed::map<Domain2, Range>
apply_domain
(
const
typed::map<Domain, Domain2>
&
map2
)
const
;
1044
template
<
typename
Domain2>
1045
inline
typed::union_map<Domain2, Range>
apply_domain
(
const
typed::union_map<Domain, Domain2>
&umap2)
const
;
1046
template
<
typename
Range2>
1047
inline
typed::basic_map<Domain, Range2>
apply_range
(
const
typed::basic_map<Range, Range2>
&bmap2)
const
;
1048
template
<
typename
Range2>
1049
inline
typed::map<Domain, Range2>
apply_range
(
const
typed::map<Range, Range2>
&
map2
)
const
;
1050
template
<
typename
Range2>
1051
inline
typed::union_map<Domain, Range2>
apply_range
(
const
typed::union_map<Range, Range2>
&umap2)
const
;
1052
inline
typed::map<Domain, Range>
as_map
()
const
;
1053
inline
typed::multi_union_pw_aff<Domain, Range>
as_multi_union_pw_aff
()
const
;
1054
inline
typed::pw_multi_aff<Domain, Range>
as_pw_multi_aff
()
const
;
1055
inline
typed::union_pw_multi_aff<Domain, Range>
as_union_pw_multi_aff
()
const
;
1056
inline
typed::set<Range>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
1057
inline
typed::set<Domain>
bind_range
(
const
typed::multi_id<Range>
&
tuple
)
const
;
1058
inline
typed::map<Domain, Range>
coalesce
()
const
;
1059
inline
typed::map<Domain, Range>
curry
()
const
=
delete
;
1060
inline
typed::basic_set<Domain, Range>
deltas
()
const
=
delete
;
1061
inline
typed::basic_map<Domain, Range>
detect_equalities
()
const
;
1062
inline
typed::set<Domain>
domain
()
const
;
1063
inline
typed::map<Domain, Range>
domain_factor_domain
()
const
=
delete
;
1064
inline
typed::map<Domain, Range>
domain_factor_range
()
const
=
delete
;
1065
inline
typed::union_map<pair<Domain, Range>
,
Domain
>
domain_map
()
const
;
1066
inline
typed::union_pw_multi_aff<pair<Domain, Range>
,
Domain
>
domain_map_union_pw_multi_aff
()
const
;
1067
template
<
typename
Domain2>
1068
inline
typed::map<pair<Domain, Domain2>
,
Range
>
domain_product
(
const
typed::map<Domain2, Range>
&
map2
)
const
;
1069
template
<
typename
Domain2>
1070
inline
typed::union_map<pair<Domain, Domain2>
,
Range
>
domain_product
(
const
typed::union_map<Domain2, Range>
&umap2)
const
;
1071
inline
typed::map<Domain, Range>
domain_reverse
()
const
=
delete
;
1072
inline
typed::map<Domain, Range>
drop_unused_params
()
const
;
1073
inline
typed::map<Domain, Range>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1074
inline
typed::union_map<Domain, Range>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
1075
inline
bool
every_map
(
const
std::function<
bool
(
typed::map<Domain, Range>
)> &
test
)
const
;
1076
inline
typed::map<Domain, Range>
extract_map
(
const
typed::space<Domain, Range>
&
space
)
const
;
1077
inline
typed::basic_map<Domain, Range>
flatten_domain
()
const
=
delete
;
1078
inline
typed::basic_map<Domain, Range>
flatten_range
()
const
=
delete
;
1079
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map<Domain, Range>
)> &
fn
)
const
;
1080
inline
void
foreach_map
(
const
std::function<
void
(
typed::map<Domain, Range>
)> &
fn
)
const
;
1081
inline
typed::basic_map<Domain, Range>
gist
(
const
typed::basic_map<Domain, Range>
&
context
)
const
;
1082
inline
typed::map<Domain, Range>
gist
(
const
typed::map<Domain, Range>
&
context
)
const
;
1083
inline
typed::union_map<Domain, Range>
gist
(
const
typed::union_map<Domain, Range>
&
context
)
const
;
1084
inline
typed::map<Domain, Range>
gist_domain
(
const
typed::set<Domain>
&
context
)
const
;
1085
inline
typed::union_map<Domain, Range>
gist_domain
(
const
typed::union_set<Domain>
&uset)
const
;
1086
inline
typed::map<Domain, Range>
gist_params
(
const
typed::set<>
&
context
)
const
;
1087
inline
typed::basic_map<Domain, Range>
intersect
(
const
typed::basic_map<Domain, Range>
&bmap2)
const
;
1088
inline
typed::map<Domain, Range>
intersect
(
const
typed::map<Domain, Range>
&
map2
)
const
;
1089
inline
typed::union_map<Domain, Range>
intersect
(
const
typed::union_map<Domain, Range>
&umap2)
const
;
1090
inline
typed::basic_map<Domain, Range>
intersect_domain
(
const
typed::basic_set<Domain>
&bset)
const
;
1091
inline
typed::map<Domain, Range>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
1092
inline
typed::union_map<Domain, Range>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
1093
inline
typed::union_map<Domain, Range>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
1094
inline
typed::basic_map<Domain, Range>
intersect_domain
(
const
typed::point<Domain>
&bset)
const
;
1095
inline
typed::map<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
1096
inline
typed::union_map<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
1097
inline
typed::basic_map<Domain, Range>
intersect_params
(
const
typed::basic_set<>
&bset)
const
;
1098
inline
typed::map<Domain, Range>
intersect_params
(
const
typed::set<>
&
params
)
const
;
1099
inline
typed::basic_map<Domain, Range>
intersect_params
(
const
typed::point<>
&bset)
const
;
1100
inline
typed::basic_map<Domain, Range>
intersect_range
(
const
typed::basic_set<Range>
&bset)
const
;
1101
inline
typed::map<Domain, Range>
intersect_range
(
const
typed::set<Range>
&
set
)
const
;
1102
inline
typed::union_map<Domain, Range>
intersect_range
(
const
typed::space<Range>
&
space
)
const
;
1103
inline
typed::union_map<Domain, Range>
intersect_range
(
const
typed::union_set<Range>
&uset)
const
;
1104
inline
typed::basic_map<Domain, Range>
intersect_range
(
const
typed::point<Range>
&bset)
const
;
1105
inline
typed::map<Domain, Range>
intersect_range_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
1106
inline
typed::union_map<Domain, Range>
intersect_range_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
1107
inline
typed::map<Domain, Range>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1108
inline
typed::map<Domain, Range>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1109
inline
typed::map<Domain, Range>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1110
inline
typed::map<Domain, Range>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1111
inline
typed::map<Domain, Range>
lexmax
()
const
;
1112
inline
typed::pw_multi_aff<Domain, Range>
lexmax_pw_multi_aff
()
const
;
1113
inline
typed::map<Domain, Range>
lexmin
()
const
;
1114
inline
typed::pw_multi_aff<Domain, Range>
lexmin_pw_multi_aff
()
const
;
1115
inline
typed::map<Domain, Range>
lower_bound
(
const
typed::multi_pw_aff<Domain, Range>
&lower)
const
;
1116
inline
typed::map_list<Domain, Range>
map_list
()
const
;
1117
inline
typed::multi_pw_aff<Domain, Range>
max_multi_pw_aff
()
const
;
1118
inline
typed::multi_pw_aff<Domain, Range>
min_multi_pw_aff
()
const
;
1119
inline
typed::set<>
params
()
const
;
1120
template
<
typename
Domain2>
1121
inline
typed::map<Domain2, Range>
preimage_domain
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
1122
template
<
typename
Domain2>
1123
inline
typed::map<Domain2, Range>
preimage_domain
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
1124
template
<
typename
Domain2>
1125
inline
typed::map<Domain2, Range>
preimage_domain
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
1126
template
<
typename
Domain2>
1127
inline
typed::union_map<Domain2, Range>
preimage_domain
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
1128
template
<
typename
Range2>
1129
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::multi_aff<Range2, Range>
&
ma
)
const
;
1130
template
<
typename
Range2>
1131
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::pw_multi_aff<Range2, Range>
&
pma
)
const
;
1132
template
<
typename
Range2>
1133
inline
typed::union_map<Domain, Range2>
preimage_range
(
const
typed::union_pw_multi_aff<Range2, Range>
&upma)
const
;
1134
template
<
typename
Domain2,
typename
Range2>
1135
inline
typed::map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
1136
template
<
typename
Domain2,
typename
Range2>
1137
inline
typed::union_map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
1138
inline
typed::map<Domain, Range>
project_out_all_params
()
const
;
1139
inline
typed::map<Domain, Range>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
1140
inline
typed::map<Domain, Range>
project_out_param
(
const
std::string &
id
)
const
;
1141
inline
typed::map<Domain, Range>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
1142
inline
typed::set<Range>
range
()
const
;
1143
inline
typed::map<Domain, Range>
range_factor_domain
()
const
=
delete
;
1144
inline
typed::map<Domain, Range>
range_factor_range
()
const
=
delete
;
1145
inline
typed::fixed_box<Domain, Range>
range_lattice_tile
()
const
;
1146
inline
typed::union_map<pair<Domain, Range>
,
Range
>
range_map
()
const
;
1147
template
<
typename
Range2>
1148
inline
typed::map<Domain, pair<Range, Range2>
>
range_product
(
const
typed::map<Domain, Range2>
&
map2
)
const
;
1149
template
<
typename
Range2>
1150
inline
typed::union_map<Domain, pair<Range, Range2>
>
range_product
(
const
typed::union_map<Domain, Range2>
&umap2)
const
;
1151
inline
typed::map<Domain, Range>
range_reverse
()
const
=
delete
;
1152
inline
typed::fixed_box<Domain, Range>
range_simple_fixed_box_hull
()
const
;
1153
inline
typed::basic_map<Range, Domain>
reverse
()
const
;
1154
template
<
typename
Domain2>
1155
inline
typed::map<Domain2, Range>
set_domain_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
1156
template
<
typename
Domain2>
1157
inline
typed::map<Domain2, Range>
set_domain_tuple
(
const
std::string &
id
)
const
;
1158
template
<
typename
Range2>
1159
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
1160
template
<
typename
Range2>
1161
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
1162
inline
typed::space<Domain, Range>
space
()
const
;
1163
inline
typed::map<Domain, Range>
subtract
(
const
typed::map<Domain, Range>
&
map2
)
const
;
1164
inline
typed::union_map<Domain, Range>
subtract
(
const
typed::union_map<Domain, Range>
&umap2)
const
;
1165
inline
typed::union_map<Domain, Range>
subtract_domain
(
const
typed::union_set<Domain>
&dom)
const
;
1166
inline
typed::union_map<Domain, Range>
subtract_range
(
const
typed::union_set<Range>
&dom)
const
;
1167
inline
typed::union_map<Domain, Range>
to_union_map
()
const
;
1168
inline
typed::map<Domain, Range>
uncurry
()
const
=
delete
;
1169
inline
typed::map<Domain, Range>
unite
(
const
typed::basic_map<Domain, Range>
&bmap2)
const
;
1170
inline
typed::map<Domain, Range>
unite
(
const
typed::map<Domain, Range>
&
map2
)
const
;
1171
inline
typed::union_map<Domain, Range>
unite
(
const
typed::union_map<Domain, Range>
&umap2)
const
;
1172
inline
typed::map<Domain, Range>
upper_bound
(
const
typed::multi_pw_aff<Domain, Range>
&upper)
const
;
1173
inline
typed::set<pair<Domain, Range>
>
wrap
()
const
;
1174
};
1175
1176
template
<
typename
Domain,
typename
Range,
typename
Range2>
1177
struct
basic_map
<
pair
<
Domain
,
Range
>,
Range2
> :
public
isl::basic_map
{
1178
template
<
typename
...>
1179
friend
struct
aff
;
1180
template
<
typename
...>
1181
friend
struct
aff_list
;
1182
template
<
typename
...>
1183
friend
struct
basic_map
;
1184
template
<
typename
...>
1185
friend
struct
basic_set
;
1186
template
<
typename
...>
1187
friend
struct
fixed_box
;
1188
template
<
typename
...>
1189
friend
struct
id
;
1190
template
<
typename
...>
1191
friend
struct
id_list
;
1192
template
<
typename
...>
1193
friend
struct
map
;
1194
template
<
typename
...>
1195
friend
struct
map_list
;
1196
template
<
typename
...>
1197
friend
struct
multi_aff
;
1198
template
<
typename
...>
1199
friend
struct
multi_id
;
1200
template
<
typename
...>
1201
friend
struct
multi_pw_aff
;
1202
template
<
typename
...>
1203
friend
struct
multi_union_pw_aff
;
1204
template
<
typename
...>
1205
friend
struct
multi_val
;
1206
template
<
typename
...>
1207
friend
struct
point
;
1208
template
<
typename
...>
1209
friend
struct
pw_aff
;
1210
template
<
typename
...>
1211
friend
struct
pw_aff_list
;
1212
template
<
typename
...>
1213
friend
struct
pw_multi_aff
;
1214
template
<
typename
...>
1215
friend
struct
pw_multi_aff_list
;
1216
template
<
typename
...>
1217
friend
struct
set
;
1218
template
<
typename
...>
1219
friend
struct
set_list
;
1220
template
<
typename
...>
1221
friend
struct
space
;
1222
template
<
typename
...>
1223
friend
struct
union_map
;
1224
template
<
typename
...>
1225
friend
struct
union_pw_aff
;
1226
template
<
typename
...>
1227
friend
struct
union_pw_aff_list
;
1228
template
<
typename
...>
1229
friend
struct
union_pw_multi_aff
;
1230
template
<
typename
...>
1231
friend
struct
union_set
;
1232
template
<
typename
...>
1233
friend
struct
union_set_list
;
1234
template
<
typename
...>
1235
friend
struct
val
;
1236
template
<
typename
...>
1237
friend
struct
val_list
;
1238
1239
basic_map
() =
default
;
1240
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
1241
typename
std::enable_if<
1242
std::is_base_of<Domain, Arg1>{} &&
1243
std::is_base_of<Range, Arg2>{} &&
1244
std::is_base_of<Range2, Arg3>{},
1245
bool
>
::type
=
true
>
1246
basic_map
(
const
basic_map
<
pair<Arg1, Arg2>
, Arg3> &
obj
) :
isl
::
basic_map
(
obj
) {}
1247
private
:
1248
template
<
typename
base,
1249
typename
std::enable_if<
1250
std::is_same<base, isl::basic_map>{},
bool
>
::type
=
true
>
1251
basic_map
(
const
base &
obj
) :
isl
::
basic_map
(
obj
) {}
1252
public
:
1253
static
basic_map
from
(
const
isl::basic_map
&
obj
) {
1254
return
basic_map
(
obj
);
1255
}
1256
inline
explicit
basic_map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
1257
template
<
typename
Domain2>
1258
inline
typed::basic_map<Domain2, Range2>
apply_domain
(
const
typed::basic_map
<
pair<Domain, Range>
,
Domain2
> &bmap2)
const
;
1259
template
<
typename
Domain2>
1260
inline
typed::map<Domain2, Range2>
apply_domain
(
const
typed::map
<
pair<Domain, Range>
,
Domain2
> &
map2
)
const
;
1261
template
<
typename
Domain2>
1262
inline
typed::union_map<Domain2, Range2>
apply_domain
(
const
typed::union_map
<
pair<Domain, Range>
,
Domain2
> &umap2)
const
;
1263
template
<
typename
Arg3>
1264
inline
typed::basic_map<pair<Domain, Range>
, Arg3>
apply_range
(
const
typed::basic_map<Range2, Arg3>
&bmap2)
const
;
1265
template
<
typename
Arg3>
1266
inline
typed::map<pair<Domain, Range>
, Arg3>
apply_range
(
const
typed::map<Range2, Arg3>
&
map2
)
const
;
1267
template
<
typename
Arg3>
1268
inline
typed::union_map<pair<Domain, Range>
, Arg3>
apply_range
(
const
typed::union_map<Range2, Arg3>
&umap2)
const
;
1269
inline
typed::map<pair<Domain, Range>
,
Range2
>
as_map
()
const
;
1270
inline
typed::multi_union_pw_aff<pair<Domain, Range>
,
Range2
>
as_multi_union_pw_aff
()
const
;
1271
inline
typed::pw_multi_aff<pair<Domain, Range>
,
Range2
>
as_pw_multi_aff
()
const
;
1272
inline
typed::union_pw_multi_aff<pair<Domain, Range>
,
Range2
>
as_union_pw_multi_aff
()
const
;
1273
inline
typed::set<Range2>
bind_domain
(
const
typed::multi_id
<
pair<Domain, Range>
> &
tuple
)
const
;
1274
inline
typed::set<pair<Domain, Range>
>
bind_range
(
const
typed::multi_id<Range2>
&
tuple
)
const
;
1275
inline
typed::map<pair<Domain, Range>
,
Range2
>
coalesce
()
const
;
1276
inline
typed::map<Domain, pair<Range, Range2>
>
curry
()
const
;
1277
inline
typed::basic_set<pair<Domain, Range>
,
Range2
>
deltas
()
const
=
delete
;
1278
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
detect_equalities
()
const
;
1279
inline
typed::set<pair<Domain, Range>
>
domain
()
const
;
1280
inline
typed::map<Domain, Range2>
domain_factor_domain
()
const
;
1281
inline
typed::map<Range, Range2>
domain_factor_range
()
const
;
1282
inline
typed::union_map<pair<pair<Domain, Range>
,
Range2
>,
pair<Domain, Range>
>
domain_map
()
const
;
1283
inline
typed::union_pw_multi_aff<pair<pair<Domain, Range>
,
Range2
>,
pair<Domain, Range>
>
domain_map_union_pw_multi_aff
()
const
;
1284
template
<
typename
Domain2>
1285
inline
typed::map<pair<pair<Domain, Range>
,
Domain2
>,
Range2
>
domain_product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
1286
template
<
typename
Domain2>
1287
inline
typed::union_map<pair<pair<Domain, Range>
,
Domain2
>,
Range2
>
domain_product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
1288
inline
typed::map<pair<Range, Domain>
,
Range2
>
domain_reverse
()
const
;
1289
inline
typed::map<pair<Domain, Range>
,
Range2
>
drop_unused_params
()
const
;
1290
inline
typed::map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1291
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
1292
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
pair<Domain, Range>
,
Range2
>)> &
test
)
const
;
1293
inline
typed::map<pair<Domain, Range>
,
Range2
>
extract_map
(
const
typed::space
<
pair<Domain, Range>
,
Range2
> &
space
)
const
;
1294
inline
typed::basic_map<Anonymous, Range2>
flatten_domain
()
const
;
1295
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
flatten_range
()
const
=
delete
;
1296
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
pair<Domain, Range>
,
Range2
>)> &
fn
)
const
;
1297
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
pair<Domain, Range>
,
Range2
>)> &
fn
)
const
;
1298
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
gist
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &
context
)
const
;
1299
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
context
)
const
;
1300
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
gist
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &
context
)
const
;
1301
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_domain
(
const
typed::set
<
pair<Domain, Range>
> &
context
)
const
;
1302
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
gist_domain
(
const
typed::union_set
<
pair<Domain, Range>
> &uset)
const
;
1303
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_params
(
const
typed::set<>
&
context
)
const
;
1304
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &bmap2)
const
;
1305
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
1306
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &umap2)
const
;
1307
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::basic_set
<
pair<Domain, Range>
> &bset)
const
;
1308
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::set
<
pair<Domain, Range>
> &
set
)
const
;
1309
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::space
<
pair<Domain, Range>
> &
space
)
const
;
1310
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::union_set
<
pair<Domain, Range>
> &uset)
const
;
1311
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::point
<
pair<Domain, Range>
> &bset)
const
;
1312
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain_wrapped_domain
(
const
typed::set<Domain>
&
domain
)
const
;
1313
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_domain_wrapped_domain
(
const
typed::union_set<Domain>
&
domain
)
const
;
1314
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect_params
(
const
typed::basic_set<>
&bset)
const
;
1315
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
1316
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect_params
(
const
typed::point<>
&bset)
const
;
1317
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::basic_set<Range2>
&bset)
const
;
1318
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::set<Range2>
&
set
)
const
;
1319
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::space<Range2>
&
space
)
const
;
1320
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::union_set<Range2>
&uset)
const
;
1321
inline
typed::basic_map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::point<Range2>
&bset)
const
;
1322
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
1323
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_range_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
1324
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1325
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1326
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1327
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1328
inline
typed::map<pair<Domain, Range>
,
Range2
>
lexmax
()
const
;
1329
inline
typed::pw_multi_aff<pair<Domain, Range>
,
Range2
>
lexmax_pw_multi_aff
()
const
;
1330
inline
typed::map<pair<Domain, Range>
,
Range2
>
lexmin
()
const
;
1331
inline
typed::pw_multi_aff<pair<Domain, Range>
,
Range2
>
lexmin_pw_multi_aff
()
const
;
1332
inline
typed::map<pair<Domain, Range>
,
Range2
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
,
Range2
> &lower)
const
;
1333
inline
typed::map_list<pair<Domain, Range>
,
Range2
>
map_list
()
const
;
1334
inline
typed::multi_pw_aff<pair<Domain, Range>
,
Range2
>
max_multi_pw_aff
()
const
;
1335
inline
typed::multi_pw_aff<pair<Domain, Range>
,
Range2
>
min_multi_pw_aff
()
const
;
1336
inline
typed::set<>
params
()
const
;
1337
template
<
typename
Domain2>
1338
inline
typed::map<Domain2, Range2>
preimage_domain
(
const
typed::multi_aff
<
Domain2
,
pair<Domain, Range>
> &
ma
)
const
;
1339
template
<
typename
Domain2>
1340
inline
typed::map<Domain2, Range2>
preimage_domain
(
const
typed::multi_pw_aff
<
Domain2
,
pair<Domain, Range>
> &mpa)
const
;
1341
template
<
typename
Domain2>
1342
inline
typed::map<Domain2, Range2>
preimage_domain
(
const
typed::pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &
pma
)
const
;
1343
template
<
typename
Domain2>
1344
inline
typed::union_map<Domain2, Range2>
preimage_domain
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &upma)
const
;
1345
template
<
typename
Arg3>
1346
inline
typed::map<pair<Domain, Range>
, Arg3>
preimage_range
(
const
typed::multi_aff<Arg3, Range2>
&
ma
)
const
;
1347
template
<
typename
Arg3>
1348
inline
typed::map<pair<Domain, Range>
, Arg3>
preimage_range
(
const
typed::pw_multi_aff<Arg3, Range2>
&
pma
)
const
;
1349
template
<
typename
Arg3>
1350
inline
typed::union_map<pair<Domain, Range>
, Arg3>
preimage_range
(
const
typed::union_pw_multi_aff<Arg3, Range2>
&upma)
const
;
1351
template
<
typename
Domain2,
typename
Arg3>
1352
inline
typed::map<pair<pair<Domain, Range>
,
Domain2
>,
pair<Range2, Arg3>
>
product
(
const
typed::map<Domain2, Arg3>
&
map2
)
const
;
1353
template
<
typename
Domain2,
typename
Arg3>
1354
inline
typed::union_map<pair<pair<Domain, Range>
,
Domain2
>,
pair<Range2, Arg3>
>
product
(
const
typed::union_map<Domain2, Arg3>
&umap2)
const
;
1355
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_all_params
()
const
;
1356
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
1357
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_param
(
const
std::string &
id
)
const
;
1358
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
1359
inline
typed::set<Range2>
range
()
const
;
1360
inline
typed::map<pair<Domain, Range>
,
Range2
>
range_factor_domain
()
const
=
delete
;
1361
inline
typed::map<pair<Domain, Range>
,
Range2
>
range_factor_range
()
const
=
delete
;
1362
inline
typed::fixed_box<pair<Domain, Range>
,
Range2
>
range_lattice_tile
()
const
;
1363
inline
typed::union_map<pair<pair<Domain, Range>
,
Range2
>,
Range2
>
range_map
()
const
;
1364
template
<
typename
Arg3>
1365
inline
typed::map<pair<Domain, Range>
,
pair<Range2, Arg3>
>
range_product
(
const
typed::map
<
pair<Domain, Range>
, Arg3> &
map2
)
const
;
1366
template
<
typename
Arg3>
1367
inline
typed::union_map<pair<Domain, Range>
,
pair<Range2, Arg3>
>
range_product
(
const
typed::union_map
<
pair<Domain, Range>
, Arg3> &umap2)
const
;
1368
inline
typed::map<pair<Domain, Range>
,
Range2
>
range_reverse
()
const
=
delete
;
1369
inline
typed::fixed_box<pair<Domain, Range>
,
Range2
>
range_simple_fixed_box_hull
()
const
;
1370
inline
typed::basic_map<Range2, pair<Domain, Range>
>
reverse
()
const
;
1371
inline
typed::map<pair<Domain, Range>
,
Range2
>
set_domain_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
1372
inline
typed::map<pair<Domain, Range>
,
Range2
>
set_domain_tuple
(
const
std::string &
id
)
const
=
delete
;
1373
template
<
typename
Arg2>
1374
inline
typed::map<pair<Domain, Range>
, Arg2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
1375
template
<
typename
Arg2>
1376
inline
typed::map<pair<Domain, Range>
, Arg2>
set_range_tuple
(
const
std::string &
id
)
const
;
1377
inline
typed::space<pair<Domain, Range>
,
Range2
>
space
()
const
;
1378
inline
typed::map<pair<Domain, Range>
,
Range2
>
subtract
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
1379
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
subtract
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &umap2)
const
;
1380
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
subtract_domain
(
const
typed::union_set
<
pair<Domain, Range>
> &dom)
const
;
1381
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
subtract_range
(
const
typed::union_set<Range2>
&dom)
const
;
1382
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
to_union_map
()
const
;
1383
inline
typed::map<pair<Domain, Range>
,
Range2
>
uncurry
()
const
=
delete
;
1384
inline
typed::map<pair<Domain, Range>
,
Range2
>
unite
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &bmap2)
const
;
1385
inline
typed::map<pair<Domain, Range>
,
Range2
>
unite
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
1386
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
unite
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &umap2)
const
;
1387
inline
typed::map<pair<Domain, Range>
,
Range2
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
,
Range2
> &upper)
const
;
1388
inline
typed::set<pair<pair<Domain, Range>
,
Range2
>>
wrap
()
const
;
1389
};
1390
1391
template
<
typename
Domain>
1392
struct
basic_map
<
Domain
,
Domain
> :
public
isl::basic_map
{
1393
template
<
typename
...>
1394
friend
struct
aff
;
1395
template
<
typename
...>
1396
friend
struct
aff_list
;
1397
template
<
typename
...>
1398
friend
struct
basic_map
;
1399
template
<
typename
...>
1400
friend
struct
basic_set
;
1401
template
<
typename
...>
1402
friend
struct
fixed_box
;
1403
template
<
typename
...>
1404
friend
struct
id
;
1405
template
<
typename
...>
1406
friend
struct
id_list
;
1407
template
<
typename
...>
1408
friend
struct
map
;
1409
template
<
typename
...>
1410
friend
struct
map_list
;
1411
template
<
typename
...>
1412
friend
struct
multi_aff
;
1413
template
<
typename
...>
1414
friend
struct
multi_id
;
1415
template
<
typename
...>
1416
friend
struct
multi_pw_aff
;
1417
template
<
typename
...>
1418
friend
struct
multi_union_pw_aff
;
1419
template
<
typename
...>
1420
friend
struct
multi_val
;
1421
template
<
typename
...>
1422
friend
struct
point
;
1423
template
<
typename
...>
1424
friend
struct
pw_aff
;
1425
template
<
typename
...>
1426
friend
struct
pw_aff_list
;
1427
template
<
typename
...>
1428
friend
struct
pw_multi_aff
;
1429
template
<
typename
...>
1430
friend
struct
pw_multi_aff_list
;
1431
template
<
typename
...>
1432
friend
struct
set
;
1433
template
<
typename
...>
1434
friend
struct
set_list
;
1435
template
<
typename
...>
1436
friend
struct
space
;
1437
template
<
typename
...>
1438
friend
struct
union_map
;
1439
template
<
typename
...>
1440
friend
struct
union_pw_aff
;
1441
template
<
typename
...>
1442
friend
struct
union_pw_aff_list
;
1443
template
<
typename
...>
1444
friend
struct
union_pw_multi_aff
;
1445
template
<
typename
...>
1446
friend
struct
union_set
;
1447
template
<
typename
...>
1448
friend
struct
union_set_list
;
1449
template
<
typename
...>
1450
friend
struct
val
;
1451
template
<
typename
...>
1452
friend
struct
val_list
;
1453
1454
basic_map
() =
default
;
1455
template
<
typename
Arg1,
1456
typename
std::enable_if<
1457
std::is_base_of<Domain, Arg1>{},
1458
bool
>
::type
=
true
>
1459
basic_map
(
const
basic_map<Arg1, Arg1>
&
obj
) :
isl
::
basic_map
(
obj
) {}
1460
private
:
1461
template
<
typename
base,
1462
typename
std::enable_if<
1463
std::is_same<base, isl::basic_map>{},
bool
>
::type
=
true
>
1464
basic_map
(
const
base &
obj
) :
isl
::
basic_map
(
obj
) {}
1465
public
:
1466
static
basic_map
from
(
const
isl::basic_map
&
obj
) {
1467
return
basic_map
(
obj
);
1468
}
1469
inline
explicit
basic_map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
1470
template
<
typename
Domain2>
1471
inline
typed::basic_map<Domain2, Domain>
apply_domain
(
const
typed::basic_map<Domain, Domain2>
&bmap2)
const
;
1472
template
<
typename
Domain2>
1473
inline
typed::map<Domain2, Domain>
apply_domain
(
const
typed::map<Domain, Domain2>
&
map2
)
const
;
1474
template
<
typename
Domain2>
1475
inline
typed::union_map<Domain2, Domain>
apply_domain
(
const
typed::union_map<Domain, Domain2>
&umap2)
const
;
1476
template
<
typename
Range2>
1477
inline
typed::basic_map<Domain, Range2>
apply_range
(
const
typed::basic_map<Domain, Range2>
&bmap2)
const
;
1478
template
<
typename
Range2>
1479
inline
typed::map<Domain, Range2>
apply_range
(
const
typed::map<Domain, Range2>
&
map2
)
const
;
1480
template
<
typename
Range2>
1481
inline
typed::union_map<Domain, Range2>
apply_range
(
const
typed::union_map<Domain, Range2>
&umap2)
const
;
1482
inline
typed::map<Domain, Domain>
as_map
()
const
;
1483
inline
typed::multi_union_pw_aff<Domain, Domain>
as_multi_union_pw_aff
()
const
;
1484
inline
typed::pw_multi_aff<Domain, Domain>
as_pw_multi_aff
()
const
;
1485
inline
typed::union_pw_multi_aff<Domain, Domain>
as_union_pw_multi_aff
()
const
;
1486
inline
typed::set<Domain>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
1487
inline
typed::set<Domain>
bind_range
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
1488
inline
typed::map<Domain, Domain>
coalesce
()
const
;
1489
inline
typed::map<Domain, Domain>
curry
()
const
=
delete
;
1490
inline
typed::basic_set<Domain>
deltas
()
const
;
1491
inline
typed::basic_map<Domain, Domain>
detect_equalities
()
const
;
1492
inline
typed::set<Domain>
domain
()
const
;
1493
inline
typed::map<Domain, Domain>
domain_factor_domain
()
const
=
delete
;
1494
inline
typed::map<Domain, Domain>
domain_factor_range
()
const
=
delete
;
1495
inline
typed::union_map<pair<Domain, Domain>
,
Domain
>
domain_map
()
const
;
1496
inline
typed::union_pw_multi_aff<pair<Domain, Domain>
,
Domain
>
domain_map_union_pw_multi_aff
()
const
;
1497
template
<
typename
Domain2>
1498
inline
typed::map<pair<Domain, Domain2>
,
Domain
>
domain_product
(
const
typed::map<Domain2, Domain>
&
map2
)
const
;
1499
template
<
typename
Domain2>
1500
inline
typed::union_map<pair<Domain, Domain2>
,
Domain
>
domain_product
(
const
typed::union_map<Domain2, Domain>
&umap2)
const
;
1501
inline
typed::map<Domain, Domain>
domain_reverse
()
const
=
delete
;
1502
inline
typed::map<Domain, Domain>
drop_unused_params
()
const
;
1503
template
<
typename
Range>
1504
inline
typed::map<Domain, Domain>
eq_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
1505
template
<
typename
Range>
1506
inline
typed::union_map<Domain, Domain>
eq_at
(
const
typed::multi_union_pw_aff<Domain, Range>
&
mupa
)
const
;
1507
inline
bool
every_map
(
const
std::function<
bool
(
typed::map<Domain, Domain>
)> &
test
)
const
;
1508
inline
typed::map<Domain, Domain>
extract_map
(
const
typed::space<Domain, Domain>
&
space
)
const
;
1509
inline
typed::basic_map<Domain, Domain>
flatten_domain
()
const
=
delete
;
1510
inline
typed::basic_map<Domain, Domain>
flatten_range
()
const
=
delete
;
1511
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map<Domain, Domain>
)> &
fn
)
const
;
1512
inline
void
foreach_map
(
const
std::function<
void
(
typed::map<Domain, Domain>
)> &
fn
)
const
;
1513
inline
typed::basic_map<Domain, Domain>
gist
(
const
typed::basic_map<Domain, Domain>
&
context
)
const
;
1514
inline
typed::map<Domain, Domain>
gist
(
const
typed::map<Domain, Domain>
&
context
)
const
;
1515
inline
typed::union_map<Domain, Domain>
gist
(
const
typed::union_map<Domain, Domain>
&
context
)
const
;
1516
inline
typed::map<Domain, Domain>
gist_domain
(
const
typed::set<Domain>
&
context
)
const
;
1517
inline
typed::union_map<Domain, Domain>
gist_domain
(
const
typed::union_set<Domain>
&uset)
const
;
1518
inline
typed::map<Domain, Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
1519
inline
typed::basic_map<Domain, Domain>
intersect
(
const
typed::basic_map<Domain, Domain>
&bmap2)
const
;
1520
inline
typed::map<Domain, Domain>
intersect
(
const
typed::map<Domain, Domain>
&
map2
)
const
;
1521
inline
typed::union_map<Domain, Domain>
intersect
(
const
typed::union_map<Domain, Domain>
&umap2)
const
;
1522
inline
typed::basic_map<Domain, Domain>
intersect_domain
(
const
typed::basic_set<Domain>
&bset)
const
;
1523
inline
typed::map<Domain, Domain>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
1524
inline
typed::union_map<Domain, Domain>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
1525
inline
typed::union_map<Domain, Domain>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
1526
inline
typed::basic_map<Domain, Domain>
intersect_domain
(
const
typed::point<Domain>
&bset)
const
;
1527
inline
typed::map<Domain, Domain>
intersect_domain_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
1528
inline
typed::union_map<Domain, Domain>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
1529
inline
typed::basic_map<Domain, Domain>
intersect_params
(
const
typed::basic_set<>
&bset)
const
;
1530
inline
typed::map<Domain, Domain>
intersect_params
(
const
typed::set<>
&
params
)
const
;
1531
inline
typed::basic_map<Domain, Domain>
intersect_params
(
const
typed::point<>
&bset)
const
;
1532
inline
typed::basic_map<Domain, Domain>
intersect_range
(
const
typed::basic_set<Domain>
&bset)
const
;
1533
inline
typed::map<Domain, Domain>
intersect_range
(
const
typed::set<Domain>
&
set
)
const
;
1534
inline
typed::union_map<Domain, Domain>
intersect_range
(
const
typed::space<Domain>
&
space
)
const
;
1535
inline
typed::union_map<Domain, Domain>
intersect_range
(
const
typed::union_set<Domain>
&uset)
const
;
1536
inline
typed::basic_map<Domain, Domain>
intersect_range
(
const
typed::point<Domain>
&bset)
const
;
1537
inline
typed::map<Domain, Domain>
intersect_range_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
1538
inline
typed::union_map<Domain, Domain>
intersect_range_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
1539
template
<
typename
Range>
1540
inline
typed::map<Domain, Domain>
lex_ge_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
1541
template
<
typename
Range>
1542
inline
typed::map<Domain, Domain>
lex_gt_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
1543
template
<
typename
Range>
1544
inline
typed::map<Domain, Domain>
lex_le_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
1545
template
<
typename
Range>
1546
inline
typed::map<Domain, Domain>
lex_lt_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
1547
inline
typed::map<Domain, Domain>
lexmax
()
const
;
1548
inline
typed::pw_multi_aff<Domain, Domain>
lexmax_pw_multi_aff
()
const
;
1549
inline
typed::map<Domain, Domain>
lexmin
()
const
;
1550
inline
typed::pw_multi_aff<Domain, Domain>
lexmin_pw_multi_aff
()
const
;
1551
inline
typed::map<Domain, Domain>
lower_bound
(
const
typed::multi_pw_aff<Domain, Domain>
&lower)
const
;
1552
inline
typed::map_list<Domain, Domain>
map_list
()
const
;
1553
inline
typed::multi_pw_aff<Domain, Domain>
max_multi_pw_aff
()
const
;
1554
inline
typed::multi_pw_aff<Domain, Domain>
min_multi_pw_aff
()
const
;
1555
inline
typed::set<>
params
()
const
;
1556
template
<
typename
Domain2>
1557
inline
typed::map<Domain2, Domain>
preimage_domain
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
1558
template
<
typename
Domain2>
1559
inline
typed::map<Domain2, Domain>
preimage_domain
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
1560
template
<
typename
Domain2>
1561
inline
typed::map<Domain2, Domain>
preimage_domain
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
1562
template
<
typename
Domain2>
1563
inline
typed::union_map<Domain2, Domain>
preimage_domain
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
1564
template
<
typename
Range2>
1565
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::multi_aff<Range2, Domain>
&
ma
)
const
;
1566
template
<
typename
Range2>
1567
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::pw_multi_aff<Range2, Domain>
&
pma
)
const
;
1568
template
<
typename
Range2>
1569
inline
typed::union_map<Domain, Range2>
preimage_range
(
const
typed::union_pw_multi_aff<Range2, Domain>
&upma)
const
;
1570
template
<
typename
Domain2,
typename
Range2>
1571
inline
typed::map<pair<Domain, Domain2>
,
pair<Domain, Range2>
>
product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
1572
template
<
typename
Domain2,
typename
Range2>
1573
inline
typed::union_map<pair<Domain, Domain2>
,
pair<Domain, Range2>
>
product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
1574
inline
typed::map<Domain, Domain>
project_out_all_params
()
const
;
1575
inline
typed::map<Domain, Domain>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
1576
inline
typed::map<Domain, Domain>
project_out_param
(
const
std::string &
id
)
const
;
1577
inline
typed::map<Domain, Domain>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
1578
inline
typed::set<Domain>
range
()
const
;
1579
inline
typed::map<Domain, Domain>
range_factor_domain
()
const
=
delete
;
1580
inline
typed::map<Domain, Domain>
range_factor_range
()
const
=
delete
;
1581
inline
typed::fixed_box<Domain, Domain>
range_lattice_tile
()
const
;
1582
inline
typed::union_map<pair<Domain, Domain>
,
Domain
>
range_map
()
const
;
1583
template
<
typename
Range2>
1584
inline
typed::map<Domain, pair<Domain, Range2>
>
range_product
(
const
typed::map<Domain, Range2>
&
map2
)
const
;
1585
template
<
typename
Range2>
1586
inline
typed::union_map<Domain, pair<Domain, Range2>
>
range_product
(
const
typed::union_map<Domain, Range2>
&umap2)
const
;
1587
inline
typed::map<Domain, Domain>
range_reverse
()
const
=
delete
;
1588
inline
typed::fixed_box<Domain, Domain>
range_simple_fixed_box_hull
()
const
;
1589
inline
typed::basic_map<Domain, Domain>
reverse
()
const
;
1590
template
<
typename
Domain2>
1591
inline
typed::map<Domain2, Domain>
set_domain_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
1592
template
<
typename
Domain2>
1593
inline
typed::map<Domain2, Domain>
set_domain_tuple
(
const
std::string &
id
)
const
;
1594
template
<
typename
Range2>
1595
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
1596
template
<
typename
Range2>
1597
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
1598
inline
typed::space<Domain, Domain>
space
()
const
;
1599
inline
typed::map<Domain, Domain>
subtract
(
const
typed::map<Domain, Domain>
&
map2
)
const
;
1600
inline
typed::union_map<Domain, Domain>
subtract
(
const
typed::union_map<Domain, Domain>
&umap2)
const
;
1601
inline
typed::union_map<Domain, Domain>
subtract_domain
(
const
typed::union_set<Domain>
&dom)
const
;
1602
inline
typed::union_map<Domain, Domain>
subtract_range
(
const
typed::union_set<Domain>
&dom)
const
;
1603
inline
typed::union_map<Domain, Domain>
to_union_map
()
const
;
1604
inline
typed::map<Domain, Domain>
uncurry
()
const
=
delete
;
1605
inline
typed::map<Domain, Domain>
unite
(
const
typed::basic_map<Domain, Domain>
&bmap2)
const
;
1606
inline
typed::map<Domain, Domain>
unite
(
const
typed::map<Domain, Domain>
&
map2
)
const
;
1607
inline
typed::union_map<Domain, Domain>
unite
(
const
typed::union_map<Domain, Domain>
&umap2)
const
;
1608
inline
typed::map<Domain, Domain>
upper_bound
(
const
typed::multi_pw_aff<Domain, Domain>
&upper)
const
;
1609
inline
typed::set<pair<Domain, Domain>
>
wrap
()
const
;
1610
};
1611
1612
template
<
typename
Domain,
typename
Range,
typename
Range2>
1613
struct
basic_map
<
Domain
,
pair
<
Range
,
Range2
>> :
public
isl::basic_map
{
1614
template
<
typename
...>
1615
friend
struct
aff
;
1616
template
<
typename
...>
1617
friend
struct
aff_list
;
1618
template
<
typename
...>
1619
friend
struct
basic_map
;
1620
template
<
typename
...>
1621
friend
struct
basic_set
;
1622
template
<
typename
...>
1623
friend
struct
fixed_box
;
1624
template
<
typename
...>
1625
friend
struct
id
;
1626
template
<
typename
...>
1627
friend
struct
id_list
;
1628
template
<
typename
...>
1629
friend
struct
map
;
1630
template
<
typename
...>
1631
friend
struct
map_list
;
1632
template
<
typename
...>
1633
friend
struct
multi_aff
;
1634
template
<
typename
...>
1635
friend
struct
multi_id
;
1636
template
<
typename
...>
1637
friend
struct
multi_pw_aff
;
1638
template
<
typename
...>
1639
friend
struct
multi_union_pw_aff
;
1640
template
<
typename
...>
1641
friend
struct
multi_val
;
1642
template
<
typename
...>
1643
friend
struct
point
;
1644
template
<
typename
...>
1645
friend
struct
pw_aff
;
1646
template
<
typename
...>
1647
friend
struct
pw_aff_list
;
1648
template
<
typename
...>
1649
friend
struct
pw_multi_aff
;
1650
template
<
typename
...>
1651
friend
struct
pw_multi_aff_list
;
1652
template
<
typename
...>
1653
friend
struct
set
;
1654
template
<
typename
...>
1655
friend
struct
set_list
;
1656
template
<
typename
...>
1657
friend
struct
space
;
1658
template
<
typename
...>
1659
friend
struct
union_map
;
1660
template
<
typename
...>
1661
friend
struct
union_pw_aff
;
1662
template
<
typename
...>
1663
friend
struct
union_pw_aff_list
;
1664
template
<
typename
...>
1665
friend
struct
union_pw_multi_aff
;
1666
template
<
typename
...>
1667
friend
struct
union_set
;
1668
template
<
typename
...>
1669
friend
struct
union_set_list
;
1670
template
<
typename
...>
1671
friend
struct
val
;
1672
template
<
typename
...>
1673
friend
struct
val_list
;
1674
1675
basic_map
() =
default
;
1676
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
1677
typename
std::enable_if<
1678
std::is_base_of<Domain, Arg1>{} &&
1679
std::is_base_of<Range, Arg2>{} &&
1680
std::is_base_of<Range2, Arg3>{},
1681
bool
>
::type
=
true
>
1682
basic_map
(
const
basic_map
<Arg1,
pair<Arg2, Arg3>
> &
obj
) :
isl
::
basic_map
(
obj
) {}
1683
private
:
1684
template
<
typename
base,
1685
typename
std::enable_if<
1686
std::is_same<base, isl::basic_map>{},
bool
>
::type
=
true
>
1687
basic_map
(
const
base &
obj
) :
isl
::
basic_map
(
obj
) {}
1688
public
:
1689
static
basic_map
from
(
const
isl::basic_map
&
obj
) {
1690
return
basic_map
(
obj
);
1691
}
1692
inline
explicit
basic_map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
1693
template
<
typename
Domain2>
1694
inline
typed::basic_map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::basic_map<Domain, Domain2>
&bmap2)
const
;
1695
template
<
typename
Domain2>
1696
inline
typed::map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::map<Domain, Domain2>
&
map2
)
const
;
1697
template
<
typename
Domain2>
1698
inline
typed::union_map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::union_map<Domain, Domain2>
&umap2)
const
;
1699
template
<
typename
Arg3>
1700
inline
typed::basic_map<Domain, Arg3>
apply_range
(
const
typed::basic_map
<
pair<Range, Range2>
, Arg3> &bmap2)
const
;
1701
template
<
typename
Arg3>
1702
inline
typed::map<Domain, Arg3>
apply_range
(
const
typed::map
<
pair<Range, Range2>
, Arg3> &
map2
)
const
;
1703
template
<
typename
Arg3>
1704
inline
typed::union_map<Domain, Arg3>
apply_range
(
const
typed::union_map
<
pair<Range, Range2>
, Arg3> &umap2)
const
;
1705
inline
typed::map<Domain, pair<Range, Range2>
>
as_map
()
const
;
1706
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
1707
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
1708
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
as_union_pw_multi_aff
()
const
;
1709
inline
typed::set<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
1710
inline
typed::set<Domain>
bind_range
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
1711
inline
typed::map<Domain, pair<Range, Range2>
>
coalesce
()
const
;
1712
inline
typed::map<Domain, pair<Range, Range2>
>
curry
()
const
=
delete
;
1713
inline
typed::basic_set<Domain, pair<Range, Range2>
>
deltas
()
const
=
delete
;
1714
inline
typed::basic_map<Domain, pair<Range, Range2>
>
detect_equalities
()
const
;
1715
inline
typed::set<Domain>
domain
()
const
;
1716
inline
typed::map<Domain, pair<Range, Range2>
>
domain_factor_domain
()
const
=
delete
;
1717
inline
typed::map<Domain, pair<Range, Range2>
>
domain_factor_range
()
const
=
delete
;
1718
inline
typed::union_map<pair<Domain, pair<Range, Range2>
>,
Domain
>
domain_map
()
const
;
1719
inline
typed::union_pw_multi_aff<pair<Domain, pair<Range, Range2>
>,
Domain
>
domain_map_union_pw_multi_aff
()
const
;
1720
template
<
typename
Domain2>
1721
inline
typed::map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
domain_product
(
const
typed::map
<
Domain2
,
pair<Range, Range2>
> &
map2
)
const
;
1722
template
<
typename
Domain2>
1723
inline
typed::union_map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
domain_product
(
const
typed::union_map
<
Domain2
,
pair<Range, Range2>
> &umap2)
const
;
1724
inline
typed::map<Domain, pair<Range, Range2>
>
domain_reverse
()
const
=
delete
;
1725
inline
typed::map<Domain, pair<Range, Range2>
>
drop_unused_params
()
const
;
1726
inline
typed::map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1727
inline
typed::union_map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
1728
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
Domain
,
pair<Range, Range2>
>)> &
test
)
const
;
1729
inline
typed::map<Domain, pair<Range, Range2>
>
extract_map
(
const
typed::space
<
Domain
,
pair<Range, Range2>
> &
space
)
const
;
1730
inline
typed::basic_map<Domain, pair<Range, Range2>
>
flatten_domain
()
const
=
delete
;
1731
inline
typed::basic_map<Domain, Anonymous>
flatten_range
()
const
;
1732
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
Domain
,
pair<Range, Range2>
>)> &
fn
)
const
;
1733
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
Domain
,
pair<Range, Range2>
>)> &
fn
)
const
;
1734
inline
typed::basic_map<Domain, pair<Range, Range2>
>
gist
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &
context
)
const
;
1735
inline
typed::map<Domain, pair<Range, Range2>
>
gist
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
context
)
const
;
1736
inline
typed::union_map<Domain, pair<Range, Range2>
>
gist
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &
context
)
const
;
1737
inline
typed::map<Domain, pair<Range, Range2>
>
gist_domain
(
const
typed::set<Domain>
&
context
)
const
;
1738
inline
typed::union_map<Domain, pair<Range, Range2>
>
gist_domain
(
const
typed::union_set<Domain>
&uset)
const
;
1739
inline
typed::map<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
1740
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &bmap2)
const
;
1741
inline
typed::map<Domain, pair<Range, Range2>
>
intersect
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
1742
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &umap2)
const
;
1743
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::basic_set<Domain>
&bset)
const
;
1744
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
1745
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
1746
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
1747
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::point<Domain>
&bset)
const
;
1748
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
1749
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
1750
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::basic_set<>
&bset)
const
;
1751
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
1752
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::point<>
&bset)
const
;
1753
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::basic_set
<
pair<Range, Range2>
> &bset)
const
;
1754
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::set
<
pair<Range, Range2>
> &
set
)
const
;
1755
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::space
<
pair<Range, Range2>
> &
space
)
const
;
1756
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::union_set
<
pair<Range, Range2>
> &uset)
const
;
1757
inline
typed::basic_map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::point
<
pair<Range, Range2>
> &bset)
const
;
1758
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::set<Range>
&
domain
)
const
;
1759
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::union_set<Range>
&
domain
)
const
;
1760
inline
typed::map<Domain, pair<Range, Range2>
>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1761
inline
typed::map<Domain, pair<Range, Range2>
>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1762
inline
typed::map<Domain, pair<Range, Range2>
>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1763
inline
typed::map<Domain, pair<Range, Range2>
>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
1764
inline
typed::map<Domain, pair<Range, Range2>
>
lexmax
()
const
;
1765
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
lexmax_pw_multi_aff
()
const
;
1766
inline
typed::map<Domain, pair<Range, Range2>
>
lexmin
()
const
;
1767
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
lexmin_pw_multi_aff
()
const
;
1768
inline
typed::map<Domain, pair<Range, Range2>
>
lower_bound
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &lower)
const
;
1769
inline
typed::map_list<Domain, pair<Range, Range2>
>
map_list
()
const
;
1770
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
max_multi_pw_aff
()
const
;
1771
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
min_multi_pw_aff
()
const
;
1772
inline
typed::set<>
params
()
const
;
1773
template
<
typename
Domain2>
1774
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
1775
template
<
typename
Domain2>
1776
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
1777
template
<
typename
Domain2>
1778
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
1779
template
<
typename
Domain2>
1780
inline
typed::union_map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
1781
template
<
typename
Arg3>
1782
inline
typed::map<Domain, Arg3>
preimage_range
(
const
typed::multi_aff
<Arg3,
pair<Range, Range2>
> &
ma
)
const
;
1783
template
<
typename
Arg3>
1784
inline
typed::map<Domain, Arg3>
preimage_range
(
const
typed::pw_multi_aff
<Arg3,
pair<Range, Range2>
> &
pma
)
const
;
1785
template
<
typename
Arg3>
1786
inline
typed::union_map<Domain, Arg3>
preimage_range
(
const
typed::union_pw_multi_aff
<Arg3,
pair<Range, Range2>
> &upma)
const
;
1787
template
<
typename
Domain2,
typename
Arg3>
1788
inline
typed::map<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::map<Domain2, Arg3>
&
map2
)
const
;
1789
template
<
typename
Domain2,
typename
Arg3>
1790
inline
typed::union_map<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::union_map<Domain2, Arg3>
&umap2)
const
;
1791
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_all_params
()
const
;
1792
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
1793
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_param
(
const
std::string &
id
)
const
;
1794
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
1795
inline
typed::set<pair<Range, Range2>
>
range
()
const
;
1796
inline
typed::map<Domain, Range>
range_factor_domain
()
const
;
1797
inline
typed::map<Domain, Range2>
range_factor_range
()
const
;
1798
inline
typed::fixed_box<Domain, pair<Range, Range2>
>
range_lattice_tile
()
const
;
1799
inline
typed::union_map<pair<Domain, pair<Range, Range2>
>,
pair<Range, Range2>
>
range_map
()
const
;
1800
template
<
typename
Arg3>
1801
inline
typed::map<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::map<Domain, Arg3>
&
map2
)
const
;
1802
template
<
typename
Arg3>
1803
inline
typed::union_map<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::union_map<Domain, Arg3>
&umap2)
const
;
1804
inline
typed::map<Domain, pair<Range2, Range>
>
range_reverse
()
const
;
1805
inline
typed::fixed_box<Domain, pair<Range, Range2>
>
range_simple_fixed_box_hull
()
const
;
1806
inline
typed::basic_map<pair<Range, Range2>
,
Domain
>
reverse
()
const
;
1807
template
<
typename
Domain2>
1808
inline
typed::map<Domain2, pair<Range, Range2>
>
set_domain_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
1809
template
<
typename
Domain2>
1810
inline
typed::map<Domain2, pair<Range, Range2>
>
set_domain_tuple
(
const
std::string &
id
)
const
;
1811
inline
typed::map<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
1812
inline
typed::map<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
1813
inline
typed::space<Domain, pair<Range, Range2>
>
space
()
const
;
1814
inline
typed::map<Domain, pair<Range, Range2>
>
subtract
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
1815
inline
typed::union_map<Domain, pair<Range, Range2>
>
subtract
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &umap2)
const
;
1816
inline
typed::union_map<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set<Domain>
&dom)
const
;
1817
inline
typed::union_map<Domain, pair<Range, Range2>
>
subtract_range
(
const
typed::union_set
<
pair<Range, Range2>
> &dom)
const
;
1818
inline
typed::union_map<Domain, pair<Range, Range2>
>
to_union_map
()
const
;
1819
inline
typed::map<pair<Domain, Range>
,
Range2
>
uncurry
()
const
;
1820
inline
typed::map<Domain, pair<Range, Range2>
>
unite
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &bmap2)
const
;
1821
inline
typed::map<Domain, pair<Range, Range2>
>
unite
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
1822
inline
typed::union_map<Domain, pair<Range, Range2>
>
unite
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &umap2)
const
;
1823
inline
typed::map<Domain, pair<Range, Range2>
>
upper_bound
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &upper)
const
;
1824
inline
typed::set<pair<Domain, pair<Range, Range2>
>>
wrap
()
const
;
1825
};
1826
1827
template
<
typename
T1,
typename
T2>
1828
struct
basic_map
<
pair
<T1, T2>,
pair
<T1, T2>> :
public
isl::basic_map
{
1829
template
<
typename
...>
1830
friend
struct
aff
;
1831
template
<
typename
...>
1832
friend
struct
aff_list
;
1833
template
<
typename
...>
1834
friend
struct
basic_map
;
1835
template
<
typename
...>
1836
friend
struct
basic_set
;
1837
template
<
typename
...>
1838
friend
struct
fixed_box
;
1839
template
<
typename
...>
1840
friend
struct
id
;
1841
template
<
typename
...>
1842
friend
struct
id_list
;
1843
template
<
typename
...>
1844
friend
struct
map
;
1845
template
<
typename
...>
1846
friend
struct
map_list
;
1847
template
<
typename
...>
1848
friend
struct
multi_aff
;
1849
template
<
typename
...>
1850
friend
struct
multi_id
;
1851
template
<
typename
...>
1852
friend
struct
multi_pw_aff
;
1853
template
<
typename
...>
1854
friend
struct
multi_union_pw_aff
;
1855
template
<
typename
...>
1856
friend
struct
multi_val
;
1857
template
<
typename
...>
1858
friend
struct
point
;
1859
template
<
typename
...>
1860
friend
struct
pw_aff
;
1861
template
<
typename
...>
1862
friend
struct
pw_aff_list
;
1863
template
<
typename
...>
1864
friend
struct
pw_multi_aff
;
1865
template
<
typename
...>
1866
friend
struct
pw_multi_aff_list
;
1867
template
<
typename
...>
1868
friend
struct
set
;
1869
template
<
typename
...>
1870
friend
struct
set_list
;
1871
template
<
typename
...>
1872
friend
struct
space
;
1873
template
<
typename
...>
1874
friend
struct
union_map
;
1875
template
<
typename
...>
1876
friend
struct
union_pw_aff
;
1877
template
<
typename
...>
1878
friend
struct
union_pw_aff_list
;
1879
template
<
typename
...>
1880
friend
struct
union_pw_multi_aff
;
1881
template
<
typename
...>
1882
friend
struct
union_set
;
1883
template
<
typename
...>
1884
friend
struct
union_set_list
;
1885
template
<
typename
...>
1886
friend
struct
val
;
1887
template
<
typename
...>
1888
friend
struct
val_list
;
1889
1890
basic_map
() =
default
;
1891
template
<
typename
Arg1,
typename
Arg2,
1892
typename
std::enable_if<
1893
std::is_base_of<T1, Arg1>{} &&
1894
std::is_base_of<T2, Arg2>{},
1895
bool
>
::type
=
true
>
1896
basic_map
(
const
basic_map
<
pair<Arg1, Arg2>
,
pair<Arg1, Arg2>
> &
obj
) :
isl
::
basic_map
(
obj
) {}
1897
private
:
1898
template
<
typename
base,
1899
typename
std::enable_if<
1900
std::is_same<base, isl::basic_map>{},
bool
>
::type
=
true
>
1901
basic_map
(
const
base &
obj
) :
isl
::
basic_map
(
obj
) {}
1902
public
:
1903
static
basic_map
from
(
const
isl::basic_map
&
obj
) {
1904
return
basic_map
(
obj
);
1905
}
1906
inline
explicit
basic_map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
1907
template
<
typename
Domain2>
1908
inline
typed::basic_map<Domain2, pair<T1, T2>
>
apply_domain
(
const
typed::basic_map
<
pair<T1, T2>
,
Domain2
> &bmap2)
const
;
1909
template
<
typename
Domain2>
1910
inline
typed::map<Domain2, pair<T1, T2>
>
apply_domain
(
const
typed::map
<
pair<T1, T2>
,
Domain2
> &
map2
)
const
;
1911
template
<
typename
Domain2>
1912
inline
typed::union_map<Domain2, pair<T1, T2>
>
apply_domain
(
const
typed::union_map
<
pair<T1, T2>
,
Domain2
> &umap2)
const
;
1913
template
<
typename
Range2>
1914
inline
typed::basic_map<pair<T1, T2>
,
Range2
>
apply_range
(
const
typed::basic_map
<
pair<T1, T2>
,
Range2
> &bmap2)
const
;
1915
template
<
typename
Range2>
1916
inline
typed::map<pair<T1, T2>
,
Range2
>
apply_range
(
const
typed::map
<
pair<T1, T2>
,
Range2
> &
map2
)
const
;
1917
template
<
typename
Range2>
1918
inline
typed::union_map<pair<T1, T2>
,
Range2
>
apply_range
(
const
typed::union_map
<
pair<T1, T2>
,
Range2
> &umap2)
const
;
1919
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
as_map
()
const
;
1920
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<T1, T2>
>
as_multi_union_pw_aff
()
const
;
1921
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
as_pw_multi_aff
()
const
;
1922
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
as_union_pw_multi_aff
()
const
;
1923
inline
typed::set<pair<T1, T2>
>
bind_domain
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
1924
inline
typed::set<pair<T1, T2>
>
bind_range
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
1925
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
coalesce
()
const
;
1926
inline
typed::map<T1, pair<T2, pair<T1, T2>
>>
curry
()
const
;
1927
inline
typed::basic_set<pair<T1, T2>
>
deltas
()
const
;
1928
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
detect_equalities
()
const
;
1929
inline
typed::set<pair<T1, T2>
>
domain
()
const
;
1930
inline
typed::map<T1, pair<T1, T2>
>
domain_factor_domain
()
const
;
1931
inline
typed::map<T2, pair<T1, T2>
>
domain_factor_range
()
const
;
1932
inline
typed::union_map<pair<pair<T1, T2>
,
pair<T1, T2>
>,
pair<T1, T2>
>
domain_map
()
const
;
1933
inline
typed::union_pw_multi_aff<pair<pair<T1, T2>
,
pair<T1, T2>
>,
pair<T1, T2>
>
domain_map_union_pw_multi_aff
()
const
;
1934
template
<
typename
Domain2>
1935
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<T1, T2>
>
domain_product
(
const
typed::map
<
Domain2
,
pair<T1, T2>
> &
map2
)
const
;
1936
template
<
typename
Domain2>
1937
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<T1, T2>
>
domain_product
(
const
typed::union_map
<
Domain2
,
pair<T1, T2>
> &umap2)
const
;
1938
inline
typed::map<pair<T2, T1>
,
pair<T1, T2>
>
domain_reverse
()
const
;
1939
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
drop_unused_params
()
const
;
1940
template
<
typename
Range>
1941
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
1942
template
<
typename
Range>
1943
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
Range
> &
mupa
)
const
;
1944
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
>)> &
test
)
const
;
1945
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
extract_map
(
const
typed::space
<
pair<T1, T2>
,
pair<T1, T2>
> &
space
)
const
;
1946
inline
typed::basic_map<Anonymous, pair<T1, T2>
>
flatten_domain
()
const
;
1947
inline
typed::basic_map<pair<T1, T2>
,
Anonymous
>
flatten_range
()
const
;
1948
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
>)> &
fn
)
const
;
1949
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
>)> &
fn
)
const
;
1950
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
gist
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
context
)
const
;
1951
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
context
)
const
;
1952
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
gist
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
context
)
const
;
1953
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_domain
(
const
typed::set
<
pair<T1, T2>
> &
context
)
const
;
1954
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
gist_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
1955
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
1956
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &bmap2)
const
;
1957
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
1958
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &umap2)
const
;
1959
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &bset)
const
;
1960
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
1961
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
1962
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
1963
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::point
<
pair<T1, T2>
> &bset)
const
;
1964
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain_wrapped_domain
(
const
typed::set<T1>
&
domain
)
const
;
1965
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<T1>
&
domain
)
const
;
1966
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_params
(
const
typed::basic_set<>
&bset)
const
;
1967
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
1968
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_params
(
const
typed::point<>
&bset)
const
;
1969
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::basic_set
<
pair<T1, T2>
> &bset)
const
;
1970
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
1971
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
1972
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
1973
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::point
<
pair<T1, T2>
> &bset)
const
;
1974
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range_wrapped_domain
(
const
typed::set<T1>
&
domain
)
const
;
1975
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range_wrapped_domain
(
const
typed::union_set<T1>
&
domain
)
const
;
1976
template
<
typename
Range>
1977
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_ge_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
1978
template
<
typename
Range>
1979
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_gt_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
1980
template
<
typename
Range>
1981
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_le_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
1982
template
<
typename
Range>
1983
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_lt_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
1984
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lexmax
()
const
;
1985
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
lexmax_pw_multi_aff
()
const
;
1986
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lexmin
()
const
;
1987
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
lexmin_pw_multi_aff
()
const
;
1988
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &lower)
const
;
1989
inline
typed::map_list<pair<T1, T2>
,
pair<T1, T2>
>
map_list
()
const
;
1990
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<T1, T2>
>
max_multi_pw_aff
()
const
;
1991
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<T1, T2>
>
min_multi_pw_aff
()
const
;
1992
inline
typed::set<>
params
()
const
;
1993
template
<
typename
Domain2>
1994
inline
typed::map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::multi_aff
<
Domain2
,
pair<T1, T2>
> &
ma
)
const
;
1995
template
<
typename
Domain2>
1996
inline
typed::map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::multi_pw_aff
<
Domain2
,
pair<T1, T2>
> &mpa)
const
;
1997
template
<
typename
Domain2>
1998
inline
typed::map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &
pma
)
const
;
1999
template
<
typename
Domain2>
2000
inline
typed::union_map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &upma)
const
;
2001
template
<
typename
Range2>
2002
inline
typed::map<pair<T1, T2>
,
Range2
>
preimage_range
(
const
typed::multi_aff
<
Range2
,
pair<T1, T2>
> &
ma
)
const
;
2003
template
<
typename
Range2>
2004
inline
typed::map<pair<T1, T2>
,
Range2
>
preimage_range
(
const
typed::pw_multi_aff
<
Range2
,
pair<T1, T2>
> &
pma
)
const
;
2005
template
<
typename
Range2>
2006
inline
typed::union_map<pair<T1, T2>
,
Range2
>
preimage_range
(
const
typed::union_pw_multi_aff
<
Range2
,
pair<T1, T2>
> &upma)
const
;
2007
template
<
typename
Domain2,
typename
Range2>
2008
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<T1, T2>
,
Range2
>>
product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
2009
template
<
typename
Domain2,
typename
Range2>
2010
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<T1, T2>
,
Range2
>>
product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
2011
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_all_params
()
const
;
2012
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
2013
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_param
(
const
std::string &
id
)
const
;
2014
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
2015
inline
typed::set<pair<T1, T2>
>
range
()
const
;
2016
inline
typed::map<pair<T1, T2>
, T1>
range_factor_domain
()
const
;
2017
inline
typed::map<pair<T1, T2>
, T2>
range_factor_range
()
const
;
2018
inline
typed::fixed_box<pair<T1, T2>
,
pair<T1, T2>
>
range_lattice_tile
()
const
;
2019
inline
typed::union_map<pair<pair<T1, T2>
,
pair<T1, T2>
>,
pair<T1, T2>
>
range_map
()
const
;
2020
template
<
typename
Range2>
2021
inline
typed::map<pair<T1, T2>
,
pair<pair<T1, T2>
,
Range2
>>
range_product
(
const
typed::map
<
pair<T1, T2>
,
Range2
> &
map2
)
const
;
2022
template
<
typename
Range2>
2023
inline
typed::union_map<pair<T1, T2>
,
pair<pair<T1, T2>
,
Range2
>>
range_product
(
const
typed::union_map
<
pair<T1, T2>
,
Range2
> &umap2)
const
;
2024
inline
typed::map<pair<T1, T2>
,
pair<T2, T1>
>
range_reverse
()
const
;
2025
inline
typed::fixed_box<pair<T1, T2>
,
pair<T1, T2>
>
range_simple_fixed_box_hull
()
const
;
2026
inline
typed::basic_map<pair<T1, T2>
,
pair<T1, T2>
>
reverse
()
const
;
2027
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_domain_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
2028
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_domain_tuple
(
const
std::string &
id
)
const
=
delete
;
2029
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
2030
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
2031
inline
typed::space<pair<T1, T2>
,
pair<T1, T2>
>
space
()
const
;
2032
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
subtract
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
2033
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
subtract
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &umap2)
const
;
2034
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
subtract_domain
(
const
typed::union_set
<
pair<T1, T2>
> &dom)
const
;
2035
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
subtract_range
(
const
typed::union_set
<
pair<T1, T2>
> &dom)
const
;
2036
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
to_union_map
()
const
;
2037
inline
typed::map<pair<pair<T1, T2>
, T1>, T2>
uncurry
()
const
;
2038
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
unite
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &bmap2)
const
;
2039
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
unite
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
2040
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
unite
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &umap2)
const
;
2041
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &upper)
const
;
2042
inline
typed::set<pair<pair<T1, T2>
,
pair<T1, T2>
>>
wrap
()
const
;
2043
};
2044
2045
template
<
typename
T1,
typename
T2,
typename
Range,
typename
Range2>
2046
struct
basic_map
<
pair
<T1, T2>,
pair
<
Range
,
Range2
>> :
public
isl::basic_map
{
2047
template
<
typename
...>
2048
friend
struct
aff
;
2049
template
<
typename
...>
2050
friend
struct
aff_list
;
2051
template
<
typename
...>
2052
friend
struct
basic_map
;
2053
template
<
typename
...>
2054
friend
struct
basic_set
;
2055
template
<
typename
...>
2056
friend
struct
fixed_box
;
2057
template
<
typename
...>
2058
friend
struct
id
;
2059
template
<
typename
...>
2060
friend
struct
id_list
;
2061
template
<
typename
...>
2062
friend
struct
map
;
2063
template
<
typename
...>
2064
friend
struct
map_list
;
2065
template
<
typename
...>
2066
friend
struct
multi_aff
;
2067
template
<
typename
...>
2068
friend
struct
multi_id
;
2069
template
<
typename
...>
2070
friend
struct
multi_pw_aff
;
2071
template
<
typename
...>
2072
friend
struct
multi_union_pw_aff
;
2073
template
<
typename
...>
2074
friend
struct
multi_val
;
2075
template
<
typename
...>
2076
friend
struct
point
;
2077
template
<
typename
...>
2078
friend
struct
pw_aff
;
2079
template
<
typename
...>
2080
friend
struct
pw_aff_list
;
2081
template
<
typename
...>
2082
friend
struct
pw_multi_aff
;
2083
template
<
typename
...>
2084
friend
struct
pw_multi_aff_list
;
2085
template
<
typename
...>
2086
friend
struct
set
;
2087
template
<
typename
...>
2088
friend
struct
set_list
;
2089
template
<
typename
...>
2090
friend
struct
space
;
2091
template
<
typename
...>
2092
friend
struct
union_map
;
2093
template
<
typename
...>
2094
friend
struct
union_pw_aff
;
2095
template
<
typename
...>
2096
friend
struct
union_pw_aff_list
;
2097
template
<
typename
...>
2098
friend
struct
union_pw_multi_aff
;
2099
template
<
typename
...>
2100
friend
struct
union_set
;
2101
template
<
typename
...>
2102
friend
struct
union_set_list
;
2103
template
<
typename
...>
2104
friend
struct
val
;
2105
template
<
typename
...>
2106
friend
struct
val_list
;
2107
2108
basic_map
() =
default
;
2109
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
typename
Arg4,
2110
typename
std::enable_if<
2111
std::is_base_of<T1, Arg1>{} &&
2112
std::is_base_of<T2, Arg2>{} &&
2113
std::is_base_of<Range, Arg3>{} &&
2114
std::is_base_of<Range2, Arg4>{},
2115
bool
>
::type
=
true
>
2116
basic_map
(
const
basic_map
<
pair<Arg1, Arg2>
,
pair<Arg3, Arg4>
> &
obj
) :
isl
::
basic_map
(
obj
) {}
2117
private
:
2118
template
<
typename
base,
2119
typename
std::enable_if<
2120
std::is_same<base, isl::basic_map>{},
bool
>
::type
=
true
>
2121
basic_map
(
const
base &
obj
) :
isl
::
basic_map
(
obj
) {}
2122
public
:
2123
static
basic_map
from
(
const
isl::basic_map
&
obj
) {
2124
return
basic_map
(
obj
);
2125
}
2126
inline
explicit
basic_map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2127
template
<
typename
Domain2>
2128
inline
typed::basic_map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::basic_map
<
pair<T1, T2>
,
Domain2
> &bmap2)
const
;
2129
template
<
typename
Domain2>
2130
inline
typed::map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::map
<
pair<T1, T2>
,
Domain2
> &
map2
)
const
;
2131
template
<
typename
Domain2>
2132
inline
typed::union_map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::union_map
<
pair<T1, T2>
,
Domain2
> &umap2)
const
;
2133
template
<
typename
Arg2>
2134
inline
typed::basic_map<pair<T1, T2>
, Arg2>
apply_range
(
const
typed::basic_map
<
pair<Range, Range2>
, Arg2> &bmap2)
const
;
2135
template
<
typename
Arg2>
2136
inline
typed::map<pair<T1, T2>
, Arg2>
apply_range
(
const
typed::map
<
pair<Range, Range2>
, Arg2> &
map2
)
const
;
2137
template
<
typename
Arg2>
2138
inline
typed::union_map<pair<T1, T2>
, Arg2>
apply_range
(
const
typed::union_map
<
pair<Range, Range2>
, Arg2> &umap2)
const
;
2139
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
as_map
()
const
;
2140
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
2141
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
2142
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_union_pw_multi_aff
()
const
;
2143
inline
typed::set<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
2144
inline
typed::set<pair<T1, T2>
>
bind_range
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
2145
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
coalesce
()
const
;
2146
inline
typed::map<T1, pair<T2, pair<Range, Range2>
>>
curry
()
const
;
2147
inline
typed::basic_set<pair<T1, T2>
,
pair<Range, Range2>
>
deltas
()
const
=
delete
;
2148
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
detect_equalities
()
const
;
2149
inline
typed::set<pair<T1, T2>
>
domain
()
const
;
2150
inline
typed::map<T1, pair<Range, Range2>
>
domain_factor_domain
()
const
;
2151
inline
typed::map<T2, pair<Range, Range2>
>
domain_factor_range
()
const
;
2152
inline
typed::union_map<pair<pair<T1, T2>
,
pair<Range, Range2>
>,
pair<T1, T2>
>
domain_map
()
const
;
2153
inline
typed::union_pw_multi_aff<pair<pair<T1, T2>
,
pair<Range, Range2>
>,
pair<T1, T2>
>
domain_map_union_pw_multi_aff
()
const
;
2154
template
<
typename
Domain2>
2155
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<Range, Range2>
>
domain_product
(
const
typed::map
<
Domain2
,
pair<Range, Range2>
> &
map2
)
const
;
2156
template
<
typename
Domain2>
2157
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<Range, Range2>
>
domain_product
(
const
typed::union_map
<
Domain2
,
pair<Range, Range2>
> &umap2)
const
;
2158
inline
typed::map<pair<T2, T1>
,
pair<Range, Range2>
>
domain_reverse
()
const
;
2159
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
drop_unused_params
()
const
;
2160
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
2161
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
2162
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
>)> &
test
)
const
;
2163
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
extract_map
(
const
typed::space
<
pair<T1, T2>
,
pair<Range, Range2>
> &
space
)
const
;
2164
inline
typed::basic_map<Anonymous, pair<Range, Range2>
>
flatten_domain
()
const
;
2165
inline
typed::basic_map<pair<T1, T2>
,
Anonymous
>
flatten_range
()
const
;
2166
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
>)> &
fn
)
const
;
2167
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
>)> &
fn
)
const
;
2168
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
context
)
const
;
2169
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
context
)
const
;
2170
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
context
)
const
;
2171
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_domain
(
const
typed::set
<
pair<T1, T2>
> &
context
)
const
;
2172
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
2173
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
2174
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &bmap2)
const
;
2175
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
2176
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &umap2)
const
;
2177
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &bset)
const
;
2178
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
2179
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
2180
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
2181
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::point
<
pair<T1, T2>
> &bset)
const
;
2182
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::set<T1>
&
domain
)
const
;
2183
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<T1>
&
domain
)
const
;
2184
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::basic_set<>
&bset)
const
;
2185
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
2186
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::point<>
&bset)
const
;
2187
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::basic_set
<
pair<Range, Range2>
> &bset)
const
;
2188
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::set
<
pair<Range, Range2>
> &
set
)
const
;
2189
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::space
<
pair<Range, Range2>
> &
space
)
const
;
2190
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::union_set
<
pair<Range, Range2>
> &uset)
const
;
2191
inline
typed::basic_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::point
<
pair<Range, Range2>
> &bset)
const
;
2192
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::set<Range>
&
domain
)
const
;
2193
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::union_set<Range>
&
domain
)
const
;
2194
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
2195
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
2196
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
2197
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
2198
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lexmax
()
const
;
2199
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
lexmax_pw_multi_aff
()
const
;
2200
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lexmin
()
const
;
2201
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
lexmin_pw_multi_aff
()
const
;
2202
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &lower)
const
;
2203
inline
typed::map_list<pair<T1, T2>
,
pair<Range, Range2>
>
map_list
()
const
;
2204
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
max_multi_pw_aff
()
const
;
2205
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
min_multi_pw_aff
()
const
;
2206
inline
typed::set<>
params
()
const
;
2207
template
<
typename
Domain2>
2208
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_aff
<
Domain2
,
pair<T1, T2>
> &
ma
)
const
;
2209
template
<
typename
Domain2>
2210
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_pw_aff
<
Domain2
,
pair<T1, T2>
> &mpa)
const
;
2211
template
<
typename
Domain2>
2212
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &
pma
)
const
;
2213
template
<
typename
Domain2>
2214
inline
typed::union_map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &upma)
const
;
2215
template
<
typename
Arg2>
2216
inline
typed::map<pair<T1, T2>
, Arg2>
preimage_range
(
const
typed::multi_aff
<Arg2,
pair<Range, Range2>
> &
ma
)
const
;
2217
template
<
typename
Arg2>
2218
inline
typed::map<pair<T1, T2>
, Arg2>
preimage_range
(
const
typed::pw_multi_aff
<Arg2,
pair<Range, Range2>
> &
pma
)
const
;
2219
template
<
typename
Arg2>
2220
inline
typed::union_map<pair<T1, T2>
, Arg2>
preimage_range
(
const
typed::union_pw_multi_aff
<Arg2,
pair<Range, Range2>
> &upma)
const
;
2221
template
<
typename
Domain2,
typename
Arg2>
2222
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::map<Domain2, Arg2>
&
map2
)
const
;
2223
template
<
typename
Domain2,
typename
Arg2>
2224
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::union_map<Domain2, Arg2>
&umap2)
const
;
2225
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_all_params
()
const
;
2226
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
2227
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_param
(
const
std::string &
id
)
const
;
2228
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
2229
inline
typed::set<pair<Range, Range2>
>
range
()
const
;
2230
inline
typed::map<pair<T1, T2>
,
Range
>
range_factor_domain
()
const
;
2231
inline
typed::map<pair<T1, T2>
,
Range2
>
range_factor_range
()
const
;
2232
inline
typed::fixed_box<pair<T1, T2>
,
pair<Range, Range2>
>
range_lattice_tile
()
const
;
2233
inline
typed::union_map<pair<pair<T1, T2>
,
pair<Range, Range2>
>,
pair<Range, Range2>
>
range_map
()
const
;
2234
template
<
typename
Arg2>
2235
inline
typed::map<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::map
<
pair<T1, T2>
, Arg2> &
map2
)
const
;
2236
template
<
typename
Arg2>
2237
inline
typed::union_map<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::union_map
<
pair<T1, T2>
, Arg2> &umap2)
const
;
2238
inline
typed::map<pair<T1, T2>
,
pair<Range2, Range>
>
range_reverse
()
const
;
2239
inline
typed::fixed_box<pair<T1, T2>
,
pair<Range, Range2>
>
range_simple_fixed_box_hull
()
const
;
2240
inline
typed::basic_map<pair<Range, Range2>
,
pair<T1, T2>
>
reverse
()
const
;
2241
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_domain_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
2242
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_domain_tuple
(
const
std::string &
id
)
const
=
delete
;
2243
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
2244
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
2245
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
space
()
const
;
2246
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
2247
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &umap2)
const
;
2248
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set
<
pair<T1, T2>
> &dom)
const
;
2249
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_range
(
const
typed::union_set
<
pair<Range, Range2>
> &dom)
const
;
2250
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
to_union_map
()
const
;
2251
inline
typed::map<pair<pair<T1, T2>
,
Range
>,
Range2
>
uncurry
()
const
;
2252
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
unite
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &bmap2)
const
;
2253
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
unite
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
2254
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
unite
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &umap2)
const
;
2255
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upper)
const
;
2256
inline
typed::set<pair<pair<T1, T2>
,
pair<Range, Range2>
>>
wrap
()
const
;
2257
};
2258
2259
template
<>
2260
struct
basic_set
<> :
public
isl::basic_set
{
2261
template
<
typename
...>
2262
friend
struct
aff
;
2263
template
<
typename
...>
2264
friend
struct
aff_list
;
2265
template
<
typename
...>
2266
friend
struct
basic_map
;
2267
template
<
typename
...>
2268
friend
struct
basic_set
;
2269
template
<
typename
...>
2270
friend
struct
fixed_box
;
2271
template
<
typename
...>
2272
friend
struct
id
;
2273
template
<
typename
...>
2274
friend
struct
id_list
;
2275
template
<
typename
...>
2276
friend
struct
map
;
2277
template
<
typename
...>
2278
friend
struct
map_list
;
2279
template
<
typename
...>
2280
friend
struct
multi_aff
;
2281
template
<
typename
...>
2282
friend
struct
multi_id
;
2283
template
<
typename
...>
2284
friend
struct
multi_pw_aff
;
2285
template
<
typename
...>
2286
friend
struct
multi_union_pw_aff
;
2287
template
<
typename
...>
2288
friend
struct
multi_val
;
2289
template
<
typename
...>
2290
friend
struct
point
;
2291
template
<
typename
...>
2292
friend
struct
pw_aff
;
2293
template
<
typename
...>
2294
friend
struct
pw_aff_list
;
2295
template
<
typename
...>
2296
friend
struct
pw_multi_aff
;
2297
template
<
typename
...>
2298
friend
struct
pw_multi_aff_list
;
2299
template
<
typename
...>
2300
friend
struct
set
;
2301
template
<
typename
...>
2302
friend
struct
set_list
;
2303
template
<
typename
...>
2304
friend
struct
space
;
2305
template
<
typename
...>
2306
friend
struct
union_map
;
2307
template
<
typename
...>
2308
friend
struct
union_pw_aff
;
2309
template
<
typename
...>
2310
friend
struct
union_pw_aff_list
;
2311
template
<
typename
...>
2312
friend
struct
union_pw_multi_aff
;
2313
template
<
typename
...>
2314
friend
struct
union_set
;
2315
template
<
typename
...>
2316
friend
struct
union_set_list
;
2317
template
<
typename
...>
2318
friend
struct
val
;
2319
template
<
typename
...>
2320
friend
struct
val_list
;
2321
2322
basic_set
() =
default
;
2323
private
:
2324
template
<
typename
base,
2325
typename
std::enable_if<
2326
std::is_same<base, isl::basic_set>{},
bool
>
::type
=
true
>
2327
basic_set
(
const
base &
obj
) :
isl
::
basic_set
(
obj
) {}
2328
public
:
2329
static
basic_set
from
(
const
isl::basic_set
&
obj
) {
2330
return
basic_set
(
obj
);
2331
}
2332
inline
/* implicit */
basic_set
(
const
typed::point<>
&pnt);
2333
inline
explicit
basic_set
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2334
inline
typed::basic_set<>
apply
(
const
typed::basic_map<>
&bmap)
const
=
delete
;
2335
inline
typed::set<>
apply
(
const
typed::map<>
&
map
)
const
=
delete
;
2336
inline
typed::union_set<>
apply
(
const
typed::union_map<>
&umap)
const
=
delete
;
2337
inline
typed::pw_multi_aff<>
as_pw_multi_aff
()
const
=
delete
;
2338
inline
typed::set<>
as_set
()
const
=
delete
;
2339
inline
typed::set<>
bind
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
2340
inline
typed::set<>
coalesce
()
const
;
2341
inline
typed::basic_set<>
detect_equalities
()
const
;
2342
inline
typed::set<>
drop_unused_params
()
const
;
2343
inline
bool
every_set
(
const
std::function<
bool
(
typed::set<>
)> &
test
)
const
;
2344
inline
typed::set<>
extract_set
(
const
typed::space<>
&
space
)
const
;
2345
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set<>
)> &
fn
)
const
;
2346
inline
void
foreach_point
(
const
std::function<
void
(
typed::point<>
)> &
fn
)
const
;
2347
inline
void
foreach_set
(
const
std::function<
void
(
typed::set<>
)> &
fn
)
const
;
2348
inline
typed::basic_set<>
gist
(
const
typed::basic_set<>
&
context
)
const
;
2349
inline
typed::set<>
gist
(
const
typed::set<>
&
context
)
const
;
2350
inline
typed::union_set<>
gist
(
const
typed::union_set<>
&
context
)
const
;
2351
inline
typed::basic_set<>
gist
(
const
typed::point<>
&
context
)
const
;
2352
inline
typed::set<>
gist_params
(
const
typed::set<>
&
context
)
const
=
delete
;
2353
inline
typed::map<>
identity
()
const
=
delete
;
2354
inline
typed::pw_aff<Anonymous>
indicator_function
()
const
;
2355
inline
typed::map<>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
2356
inline
typed::basic_set<>
intersect
(
const
typed::basic_set<>
&bset2)
const
;
2357
inline
typed::set<>
intersect
(
const
typed::set<>
&
set2
)
const
;
2358
inline
typed::union_set<>
intersect
(
const
typed::union_set<>
&uset2)
const
;
2359
inline
typed::basic_set<>
intersect
(
const
typed::point<>
&bset2)
const
;
2360
inline
typed::basic_set<>
intersect_params
(
const
typed::basic_set<>
&bset2)
const
=
delete
;
2361
inline
typed::set<>
intersect_params
(
const
typed::set<>
&
params
)
const
=
delete
;
2362
inline
typed::basic_set<>
intersect_params
(
const
typed::point<>
&bset2)
const
=
delete
;
2363
inline
typed::fixed_box<>
lattice_tile
()
const
=
delete
;
2364
inline
typed::set<>
lexmax
()
const
=
delete
;
2365
inline
typed::pw_multi_aff<>
lexmax_pw_multi_aff
()
const
=
delete
;
2366
inline
typed::set<>
lexmin
()
const
=
delete
;
2367
inline
typed::pw_multi_aff<>
lexmin_pw_multi_aff
()
const
=
delete
;
2368
inline
typed::set<>
lower_bound
(
const
typed::multi_pw_aff<>
&lower)
const
=
delete
;
2369
inline
typed::set<>
lower_bound
(
const
typed::multi_val<>
&lower)
const
=
delete
;
2370
inline
typed::multi_pw_aff<>
max_multi_pw_aff
()
const
=
delete
;
2371
inline
typed::val<>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
2372
inline
typed::multi_pw_aff<>
min_multi_pw_aff
()
const
=
delete
;
2373
inline
typed::val<>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
2374
inline
typed::pw_aff<Anonymous>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
2375
inline
typed::pw_aff<Anonymous>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
2376
inline
typed::basic_set<>
params
()
const
=
delete
;
2377
inline
typed::multi_val<>
plain_multi_val_if_fixed
()
const
=
delete
;
2378
inline
typed::set<>
preimage
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
2379
inline
typed::set<>
preimage
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
2380
inline
typed::set<>
preimage
(
const
typed::pw_multi_aff<>
&
pma
)
const
=
delete
;
2381
inline
typed::union_set<>
preimage
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
2382
inline
typed::set<>
product
(
const
typed::set<>
&
set2
)
const
=
delete
;
2383
inline
typed::set<>
project_out_all_params
()
const
;
2384
inline
typed::set<>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
2385
inline
typed::set<>
project_out_param
(
const
std::string &
id
)
const
;
2386
inline
typed::set<>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
2387
inline
typed::pw_aff<Anonymous>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
2388
inline
typed::pw_aff<Anonymous>
pw_aff_on_domain
(
long
v)
const
;
2389
template
<
typename
Domain>
2390
inline
typed::pw_multi_aff<Domain>
pw_multi_aff_on_domain
(
const
typed::multi_val<Domain>
&mv)
const
;
2391
inline
typed::set_list<>
set_list
()
const
;
2392
inline
typed::fixed_box<>
simple_fixed_box_hull
()
const
=
delete
;
2393
inline
typed::space<>
space
()
const
;
2394
inline
typed::set<>
subtract
(
const
typed::set<>
&
set2
)
const
;
2395
inline
typed::union_set<>
subtract
(
const
typed::union_set<>
&uset2)
const
;
2396
inline
typed::set<>
to_set
()
const
;
2397
inline
typed::union_set<>
to_union_set
()
const
;
2398
inline
typed::map<>
translation
()
const
=
delete
;
2399
template
<
typename
Domain>
2400
inline
typed::set<Domain>
unbind_params
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
2401
inline
typed::map<>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
2402
inline
typed::set<>
unite
(
const
typed::basic_set<>
&bset2)
const
;
2403
inline
typed::set<>
unite
(
const
typed::set<>
&
set2
)
const
;
2404
inline
typed::union_set<>
unite
(
const
typed::union_set<>
&uset2)
const
;
2405
inline
typed::set<>
unite
(
const
typed::point<>
&bset2)
const
;
2406
inline
typed::map<>
unwrap
()
const
=
delete
;
2407
inline
typed::set<>
upper_bound
(
const
typed::multi_pw_aff<>
&upper)
const
=
delete
;
2408
inline
typed::set<>
upper_bound
(
const
typed::multi_val<>
&upper)
const
=
delete
;
2409
inline
typed::set<>
wrapped_reverse
()
const
=
delete
;
2410
};
2411
2412
template
<
typename
Domain>
2413
struct
basic_set
<
Domain
> :
public
isl::basic_set
{
2414
template
<
typename
...>
2415
friend
struct
aff
;
2416
template
<
typename
...>
2417
friend
struct
aff_list
;
2418
template
<
typename
...>
2419
friend
struct
basic_map
;
2420
template
<
typename
...>
2421
friend
struct
basic_set
;
2422
template
<
typename
...>
2423
friend
struct
fixed_box
;
2424
template
<
typename
...>
2425
friend
struct
id
;
2426
template
<
typename
...>
2427
friend
struct
id_list
;
2428
template
<
typename
...>
2429
friend
struct
map
;
2430
template
<
typename
...>
2431
friend
struct
map_list
;
2432
template
<
typename
...>
2433
friend
struct
multi_aff
;
2434
template
<
typename
...>
2435
friend
struct
multi_id
;
2436
template
<
typename
...>
2437
friend
struct
multi_pw_aff
;
2438
template
<
typename
...>
2439
friend
struct
multi_union_pw_aff
;
2440
template
<
typename
...>
2441
friend
struct
multi_val
;
2442
template
<
typename
...>
2443
friend
struct
point
;
2444
template
<
typename
...>
2445
friend
struct
pw_aff
;
2446
template
<
typename
...>
2447
friend
struct
pw_aff_list
;
2448
template
<
typename
...>
2449
friend
struct
pw_multi_aff
;
2450
template
<
typename
...>
2451
friend
struct
pw_multi_aff_list
;
2452
template
<
typename
...>
2453
friend
struct
set
;
2454
template
<
typename
...>
2455
friend
struct
set_list
;
2456
template
<
typename
...>
2457
friend
struct
space
;
2458
template
<
typename
...>
2459
friend
struct
union_map
;
2460
template
<
typename
...>
2461
friend
struct
union_pw_aff
;
2462
template
<
typename
...>
2463
friend
struct
union_pw_aff_list
;
2464
template
<
typename
...>
2465
friend
struct
union_pw_multi_aff
;
2466
template
<
typename
...>
2467
friend
struct
union_set
;
2468
template
<
typename
...>
2469
friend
struct
union_set_list
;
2470
template
<
typename
...>
2471
friend
struct
val
;
2472
template
<
typename
...>
2473
friend
struct
val_list
;
2474
2475
basic_set
() =
default
;
2476
template
<
typename
Arg1,
2477
typename
std::enable_if<
2478
std::is_base_of<Domain, Arg1>{},
2479
bool
>
::type
=
true
>
2480
basic_set
(
const
basic_set<Arg1>
&
obj
) :
isl
::
basic_set
(
obj
) {}
2481
private
:
2482
template
<
typename
base,
2483
typename
std::enable_if<
2484
std::is_same<base, isl::basic_set>{},
bool
>
::type
=
true
>
2485
basic_set
(
const
base &
obj
) :
isl
::
basic_set
(
obj
) {}
2486
public
:
2487
static
basic_set
from
(
const
isl::basic_set
&
obj
) {
2488
return
basic_set
(
obj
);
2489
}
2490
inline
/* implicit */
basic_set
(
const
typed::point<Domain>
&pnt);
2491
inline
explicit
basic_set
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2492
template
<
typename
Range>
2493
inline
typed::basic_set<Range>
apply
(
const
typed::basic_map<Domain, Range>
&bmap)
const
;
2494
template
<
typename
Range>
2495
inline
typed::set<Range>
apply
(
const
typed::map<Domain, Range>
&
map
)
const
;
2496
template
<
typename
Range>
2497
inline
typed::union_set<Range>
apply
(
const
typed::union_map<Domain, Range>
&umap)
const
;
2498
inline
typed::pw_multi_aff<Domain>
as_pw_multi_aff
()
const
;
2499
inline
typed::set<Domain>
as_set
()
const
;
2500
inline
typed::set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
2501
inline
typed::set<Domain>
coalesce
()
const
;
2502
inline
typed::basic_set<Domain>
detect_equalities
()
const
;
2503
inline
typed::set<Domain>
drop_unused_params
()
const
;
2504
inline
bool
every_set
(
const
std::function<
bool
(
typed::set<Domain>
)> &
test
)
const
;
2505
inline
typed::set<Domain>
extract_set
(
const
typed::space<Domain>
&
space
)
const
;
2506
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set<Domain>
)> &
fn
)
const
;
2507
inline
void
foreach_point
(
const
std::function<
void
(
typed::point<Domain>
)> &
fn
)
const
;
2508
inline
void
foreach_set
(
const
std::function<
void
(
typed::set<Domain>
)> &
fn
)
const
;
2509
inline
typed::basic_set<Domain>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
2510
inline
typed::set<Domain>
gist
(
const
typed::set<Domain>
&
context
)
const
;
2511
inline
typed::union_set<Domain>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
2512
inline
typed::basic_set<Domain>
gist
(
const
typed::point<Domain>
&
context
)
const
;
2513
inline
typed::set<Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
2514
inline
typed::map<Domain, Domain>
identity
()
const
;
2515
inline
typed::pw_aff<Domain, Anonymous>
indicator_function
()
const
;
2516
template
<
typename
Arg1>
2517
inline
typed::map<Arg1, Domain>
insert_domain
(
const
typed::space<Arg1>
&
domain
)
const
;
2518
inline
typed::basic_set<Domain>
intersect
(
const
typed::basic_set<Domain>
&bset2)
const
;
2519
inline
typed::set<Domain>
intersect
(
const
typed::set<Domain>
&
set2
)
const
;
2520
inline
typed::union_set<Domain>
intersect
(
const
typed::union_set<Domain>
&uset2)
const
;
2521
inline
typed::basic_set<Domain>
intersect
(
const
typed::point<Domain>
&bset2)
const
;
2522
inline
typed::basic_set<Domain>
intersect_params
(
const
typed::basic_set<>
&bset2)
const
;
2523
inline
typed::set<Domain>
intersect_params
(
const
typed::set<>
&
params
)
const
;
2524
inline
typed::basic_set<Domain>
intersect_params
(
const
typed::point<>
&bset2)
const
;
2525
inline
typed::fixed_box<Domain>
lattice_tile
()
const
;
2526
inline
typed::set<Domain>
lexmax
()
const
;
2527
inline
typed::pw_multi_aff<Domain>
lexmax_pw_multi_aff
()
const
;
2528
inline
typed::set<Domain>
lexmin
()
const
;
2529
inline
typed::pw_multi_aff<Domain>
lexmin_pw_multi_aff
()
const
;
2530
inline
typed::set<Domain>
lower_bound
(
const
typed::multi_pw_aff<Domain>
&lower)
const
;
2531
inline
typed::set<Domain>
lower_bound
(
const
typed::multi_val<Domain>
&lower)
const
;
2532
inline
typed::multi_pw_aff<Domain>
max_multi_pw_aff
()
const
;
2533
inline
typed::val<Domain>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
2534
inline
typed::multi_pw_aff<Domain>
min_multi_pw_aff
()
const
;
2535
inline
typed::val<Domain>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
2536
inline
typed::pw_aff<Domain, Anonymous>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
2537
inline
typed::pw_aff<Domain, Anonymous>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
2538
inline
typed::basic_set<>
params
()
const
;
2539
inline
typed::multi_val<Domain>
plain_multi_val_if_fixed
()
const
;
2540
template
<
typename
Domain2>
2541
inline
typed::set<Domain2>
preimage
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
2542
template
<
typename
Domain2>
2543
inline
typed::set<Domain2>
preimage
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
2544
template
<
typename
Domain2>
2545
inline
typed::set<Domain2>
preimage
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
2546
template
<
typename
Domain2>
2547
inline
typed::union_set<Domain2>
preimage
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
2548
template
<
typename
Range>
2549
inline
typed::set<pair<Domain, Range>
>
product
(
const
typed::set<Range>
&
set2
)
const
;
2550
inline
typed::set<Domain>
project_out_all_params
()
const
;
2551
inline
typed::set<Domain>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
2552
inline
typed::set<Domain>
project_out_param
(
const
std::string &
id
)
const
;
2553
inline
typed::set<Domain>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
2554
inline
typed::pw_aff<Domain, Anonymous>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
2555
inline
typed::pw_aff<Domain, Anonymous>
pw_aff_on_domain
(
long
v)
const
;
2556
template
<
typename
Range>
2557
inline
typed::pw_multi_aff<Domain, Range>
pw_multi_aff_on_domain
(
const
typed::multi_val<Range>
&mv)
const
;
2558
inline
typed::set_list<Domain>
set_list
()
const
;
2559
inline
typed::fixed_box<Domain>
simple_fixed_box_hull
()
const
;
2560
inline
typed::space<Domain>
space
()
const
;
2561
inline
typed::set<Domain>
subtract
(
const
typed::set<Domain>
&
set2
)
const
;
2562
inline
typed::union_set<Domain>
subtract
(
const
typed::union_set<Domain>
&uset2)
const
;
2563
inline
typed::set<Domain>
to_set
()
const
;
2564
inline
typed::union_set<Domain>
to_union_set
()
const
;
2565
inline
typed::map<Domain, Domain>
translation
()
const
;
2566
inline
typed::set<Domain>
unbind_params
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
2567
template
<
typename
Arg1>
2568
inline
typed::map<Arg1, Domain>
unbind_params_insert_domain
(
const
typed::multi_id<Arg1>
&
domain
)
const
;
2569
inline
typed::set<Domain>
unite
(
const
typed::basic_set<Domain>
&bset2)
const
;
2570
inline
typed::set<Domain>
unite
(
const
typed::set<Domain>
&
set2
)
const
;
2571
inline
typed::union_set<Domain>
unite
(
const
typed::union_set<Domain>
&uset2)
const
;
2572
inline
typed::set<Domain>
unite
(
const
typed::point<Domain>
&bset2)
const
;
2573
inline
typed::map<Domain>
unwrap
()
const
=
delete
;
2574
inline
typed::set<Domain>
upper_bound
(
const
typed::multi_pw_aff<Domain>
&upper)
const
;
2575
inline
typed::set<Domain>
upper_bound
(
const
typed::multi_val<Domain>
&upper)
const
;
2576
inline
typed::set<Domain>
wrapped_reverse
()
const
=
delete
;
2577
};
2578
2579
template
<
typename
Domain,
typename
Range>
2580
struct
basic_set
<
pair
<
Domain
,
Range
>> :
public
isl::basic_set
{
2581
template
<
typename
...>
2582
friend
struct
aff
;
2583
template
<
typename
...>
2584
friend
struct
aff_list
;
2585
template
<
typename
...>
2586
friend
struct
basic_map
;
2587
template
<
typename
...>
2588
friend
struct
basic_set
;
2589
template
<
typename
...>
2590
friend
struct
fixed_box
;
2591
template
<
typename
...>
2592
friend
struct
id
;
2593
template
<
typename
...>
2594
friend
struct
id_list
;
2595
template
<
typename
...>
2596
friend
struct
map
;
2597
template
<
typename
...>
2598
friend
struct
map_list
;
2599
template
<
typename
...>
2600
friend
struct
multi_aff
;
2601
template
<
typename
...>
2602
friend
struct
multi_id
;
2603
template
<
typename
...>
2604
friend
struct
multi_pw_aff
;
2605
template
<
typename
...>
2606
friend
struct
multi_union_pw_aff
;
2607
template
<
typename
...>
2608
friend
struct
multi_val
;
2609
template
<
typename
...>
2610
friend
struct
point
;
2611
template
<
typename
...>
2612
friend
struct
pw_aff
;
2613
template
<
typename
...>
2614
friend
struct
pw_aff_list
;
2615
template
<
typename
...>
2616
friend
struct
pw_multi_aff
;
2617
template
<
typename
...>
2618
friend
struct
pw_multi_aff_list
;
2619
template
<
typename
...>
2620
friend
struct
set
;
2621
template
<
typename
...>
2622
friend
struct
set_list
;
2623
template
<
typename
...>
2624
friend
struct
space
;
2625
template
<
typename
...>
2626
friend
struct
union_map
;
2627
template
<
typename
...>
2628
friend
struct
union_pw_aff
;
2629
template
<
typename
...>
2630
friend
struct
union_pw_aff_list
;
2631
template
<
typename
...>
2632
friend
struct
union_pw_multi_aff
;
2633
template
<
typename
...>
2634
friend
struct
union_set
;
2635
template
<
typename
...>
2636
friend
struct
union_set_list
;
2637
template
<
typename
...>
2638
friend
struct
val
;
2639
template
<
typename
...>
2640
friend
struct
val_list
;
2641
2642
basic_set
() =
default
;
2643
template
<
typename
Arg1,
typename
Arg2,
2644
typename
std::enable_if<
2645
std::is_base_of<Domain, Arg1>{} &&
2646
std::is_base_of<Range, Arg2>{},
2647
bool
>
::type
=
true
>
2648
basic_set
(
const
basic_set
<
pair<Arg1, Arg2>
> &
obj
) :
isl
::
basic_set
(
obj
) {}
2649
private
:
2650
template
<
typename
base,
2651
typename
std::enable_if<
2652
std::is_same<base, isl::basic_set>{},
bool
>
::type
=
true
>
2653
basic_set
(
const
base &
obj
) :
isl
::
basic_set
(
obj
) {}
2654
public
:
2655
static
basic_set
from
(
const
isl::basic_set
&
obj
) {
2656
return
basic_set
(
obj
);
2657
}
2658
inline
/* implicit */
basic_set
(
const
typed::point
<
pair<Domain, Range>
> &pnt);
2659
inline
explicit
basic_set
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2660
template
<
typename
Arg2>
2661
inline
typed::basic_set<Arg2>
apply
(
const
typed::basic_map
<
pair<Domain, Range>
, Arg2> &bmap)
const
;
2662
template
<
typename
Arg2>
2663
inline
typed::set<Arg2>
apply
(
const
typed::map
<
pair<Domain, Range>
, Arg2> &
map
)
const
;
2664
template
<
typename
Arg2>
2665
inline
typed::union_set<Arg2>
apply
(
const
typed::union_map
<
pair<Domain, Range>
, Arg2> &umap)
const
;
2666
inline
typed::pw_multi_aff<pair<Domain, Range>
>
as_pw_multi_aff
()
const
;
2667
inline
typed::set<pair<Domain, Range>
>
as_set
()
const
;
2668
inline
typed::set<>
bind
(
const
typed::multi_id
<
pair<Domain, Range>
> &
tuple
)
const
;
2669
inline
typed::set<pair<Domain, Range>
>
coalesce
()
const
;
2670
inline
typed::basic_set<pair<Domain, Range>
>
detect_equalities
()
const
;
2671
inline
typed::set<pair<Domain, Range>
>
drop_unused_params
()
const
;
2672
inline
bool
every_set
(
const
std::function<
bool
(
typed::set
<
pair<Domain, Range>
>)> &
test
)
const
;
2673
inline
typed::set<pair<Domain, Range>
>
extract_set
(
const
typed::space
<
pair<Domain, Range>
> &
space
)
const
;
2674
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set
<
pair<Domain, Range>
>)> &
fn
)
const
;
2675
inline
void
foreach_point
(
const
std::function<
void
(
typed::point
<
pair<Domain, Range>
>)> &
fn
)
const
;
2676
inline
void
foreach_set
(
const
std::function<
void
(
typed::set
<
pair<Domain, Range>
>)> &
fn
)
const
;
2677
inline
typed::basic_set<pair<Domain, Range>
>
gist
(
const
typed::basic_set
<
pair<Domain, Range>
> &
context
)
const
;
2678
inline
typed::set<pair<Domain, Range>
>
gist
(
const
typed::set
<
pair<Domain, Range>
> &
context
)
const
;
2679
inline
typed::union_set<pair<Domain, Range>
>
gist
(
const
typed::union_set
<
pair<Domain, Range>
> &
context
)
const
;
2680
inline
typed::basic_set<pair<Domain, Range>
>
gist
(
const
typed::point
<
pair<Domain, Range>
> &
context
)
const
;
2681
inline
typed::set<pair<Domain, Range>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
2682
inline
typed::map<pair<Domain, Range>
,
pair<Domain, Range>
>
identity
()
const
;
2683
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
indicator_function
()
const
;
2684
template
<
typename
Arg2>
2685
inline
typed::map<Arg2, pair<Domain, Range>
>
insert_domain
(
const
typed::space<Arg2>
&
domain
)
const
;
2686
inline
typed::basic_set<pair<Domain, Range>
>
intersect
(
const
typed::basic_set
<
pair<Domain, Range>
> &bset2)
const
;
2687
inline
typed::set<pair<Domain, Range>
>
intersect
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
2688
inline
typed::union_set<pair<Domain, Range>
>
intersect
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
2689
inline
typed::basic_set<pair<Domain, Range>
>
intersect
(
const
typed::point
<
pair<Domain, Range>
> &bset2)
const
;
2690
inline
typed::basic_set<pair<Domain, Range>
>
intersect_params
(
const
typed::basic_set<>
&bset2)
const
;
2691
inline
typed::set<pair<Domain, Range>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
2692
inline
typed::basic_set<pair<Domain, Range>
>
intersect_params
(
const
typed::point<>
&bset2)
const
;
2693
inline
typed::fixed_box<pair<Domain, Range>
>
lattice_tile
()
const
;
2694
inline
typed::set<pair<Domain, Range>
>
lexmax
()
const
;
2695
inline
typed::pw_multi_aff<pair<Domain, Range>
>
lexmax_pw_multi_aff
()
const
;
2696
inline
typed::set<pair<Domain, Range>
>
lexmin
()
const
;
2697
inline
typed::pw_multi_aff<pair<Domain, Range>
>
lexmin_pw_multi_aff
()
const
;
2698
inline
typed::set<pair<Domain, Range>
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
> &lower)
const
;
2699
inline
typed::set<pair<Domain, Range>
>
lower_bound
(
const
typed::multi_val
<
pair<Domain, Range>
> &lower)
const
;
2700
inline
typed::multi_pw_aff<pair<Domain, Range>
>
max_multi_pw_aff
()
const
;
2701
inline
typed::val<pair<Domain, Range>
>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
2702
inline
typed::multi_pw_aff<pair<Domain, Range>
>
min_multi_pw_aff
()
const
;
2703
inline
typed::val<pair<Domain, Range>
>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
2704
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
2705
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
2706
inline
typed::basic_set<>
params
()
const
;
2707
inline
typed::multi_val<pair<Domain, Range>
>
plain_multi_val_if_fixed
()
const
;
2708
template
<
typename
Domain2>
2709
inline
typed::set<Domain2>
preimage
(
const
typed::multi_aff
<
Domain2
,
pair<Domain, Range>
> &
ma
)
const
;
2710
template
<
typename
Domain2>
2711
inline
typed::set<Domain2>
preimage
(
const
typed::multi_pw_aff
<
Domain2
,
pair<Domain, Range>
> &mpa)
const
;
2712
template
<
typename
Domain2>
2713
inline
typed::set<Domain2>
preimage
(
const
typed::pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &
pma
)
const
;
2714
template
<
typename
Domain2>
2715
inline
typed::union_set<Domain2>
preimage
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &upma)
const
;
2716
template
<
typename
Arg2>
2717
inline
typed::set<pair<pair<Domain, Range>
, Arg2>>
product
(
const
typed::set<Arg2>
&
set2
)
const
;
2718
inline
typed::set<pair<Domain, Range>
>
project_out_all_params
()
const
;
2719
inline
typed::set<pair<Domain, Range>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
2720
inline
typed::set<pair<Domain, Range>
>
project_out_param
(
const
std::string &
id
)
const
;
2721
inline
typed::set<pair<Domain, Range>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
2722
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
2723
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
pw_aff_on_domain
(
long
v)
const
;
2724
template
<
typename
Arg2>
2725
inline
typed::pw_multi_aff<pair<Domain, Range>
, Arg2>
pw_multi_aff_on_domain
(
const
typed::multi_val<Arg2>
&mv)
const
;
2726
inline
typed::set_list<pair<Domain, Range>
>
set_list
()
const
;
2727
inline
typed::fixed_box<pair<Domain, Range>
>
simple_fixed_box_hull
()
const
;
2728
inline
typed::space<pair<Domain, Range>
>
space
()
const
;
2729
inline
typed::set<pair<Domain, Range>
>
subtract
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
2730
inline
typed::union_set<pair<Domain, Range>
>
subtract
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
2731
inline
typed::set<pair<Domain, Range>
>
to_set
()
const
;
2732
inline
typed::union_set<pair<Domain, Range>
>
to_union_set
()
const
;
2733
inline
typed::map<pair<Domain, Range>
,
pair<Domain, Range>
>
translation
()
const
;
2734
inline
typed::set<pair<Domain, Range>
>
unbind_params
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
2735
template
<
typename
Arg2>
2736
inline
typed::map<Arg2, pair<Domain, Range>
>
unbind_params_insert_domain
(
const
typed::multi_id<Arg2>
&
domain
)
const
;
2737
inline
typed::set<pair<Domain, Range>
>
unite
(
const
typed::basic_set
<
pair<Domain, Range>
> &bset2)
const
;
2738
inline
typed::set<pair<Domain, Range>
>
unite
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
2739
inline
typed::union_set<pair<Domain, Range>
>
unite
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
2740
inline
typed::set<pair<Domain, Range>
>
unite
(
const
typed::point
<
pair<Domain, Range>
> &bset2)
const
;
2741
inline
typed::map<Domain, Range>
unwrap
()
const
;
2742
inline
typed::set<pair<Domain, Range>
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
> &upper)
const
;
2743
inline
typed::set<pair<Domain, Range>
>
upper_bound
(
const
typed::multi_val
<
pair<Domain, Range>
> &upper)
const
;
2744
inline
typed::set<pair<Range, Domain>
>
wrapped_reverse
()
const
;
2745
};
2746
2747
template
<
typename
Domain>
2748
struct
fixed_box
<
Domain
> :
public
isl::fixed_box
{
2749
template
<
typename
...>
2750
friend
struct
aff
;
2751
template
<
typename
...>
2752
friend
struct
aff_list
;
2753
template
<
typename
...>
2754
friend
struct
basic_map
;
2755
template
<
typename
...>
2756
friend
struct
basic_set
;
2757
template
<
typename
...>
2758
friend
struct
fixed_box
;
2759
template
<
typename
...>
2760
friend
struct
id
;
2761
template
<
typename
...>
2762
friend
struct
id_list
;
2763
template
<
typename
...>
2764
friend
struct
map
;
2765
template
<
typename
...>
2766
friend
struct
map_list
;
2767
template
<
typename
...>
2768
friend
struct
multi_aff
;
2769
template
<
typename
...>
2770
friend
struct
multi_id
;
2771
template
<
typename
...>
2772
friend
struct
multi_pw_aff
;
2773
template
<
typename
...>
2774
friend
struct
multi_union_pw_aff
;
2775
template
<
typename
...>
2776
friend
struct
multi_val
;
2777
template
<
typename
...>
2778
friend
struct
point
;
2779
template
<
typename
...>
2780
friend
struct
pw_aff
;
2781
template
<
typename
...>
2782
friend
struct
pw_aff_list
;
2783
template
<
typename
...>
2784
friend
struct
pw_multi_aff
;
2785
template
<
typename
...>
2786
friend
struct
pw_multi_aff_list
;
2787
template
<
typename
...>
2788
friend
struct
set
;
2789
template
<
typename
...>
2790
friend
struct
set_list
;
2791
template
<
typename
...>
2792
friend
struct
space
;
2793
template
<
typename
...>
2794
friend
struct
union_map
;
2795
template
<
typename
...>
2796
friend
struct
union_pw_aff
;
2797
template
<
typename
...>
2798
friend
struct
union_pw_aff_list
;
2799
template
<
typename
...>
2800
friend
struct
union_pw_multi_aff
;
2801
template
<
typename
...>
2802
friend
struct
union_set
;
2803
template
<
typename
...>
2804
friend
struct
union_set_list
;
2805
template
<
typename
...>
2806
friend
struct
val
;
2807
template
<
typename
...>
2808
friend
struct
val_list
;
2809
2810
fixed_box
() =
default
;
2811
template
<
typename
Arg1,
2812
typename
std::enable_if<
2813
std::is_base_of<Domain, Arg1>{},
2814
bool
>
::type
=
true
>
2815
fixed_box
(
const
fixed_box<Arg1>
&
obj
) :
isl
::
fixed_box
(
obj
) {}
2816
private
:
2817
template
<
typename
base,
2818
typename
std::enable_if<
2819
std::is_same<base, isl::fixed_box>{},
bool
>
::type
=
true
>
2820
fixed_box
(
const
base &
obj
) :
isl
::
fixed_box
(
obj
) {}
2821
public
:
2822
static
fixed_box
from
(
const
isl::fixed_box
&
obj
) {
2823
return
fixed_box
(
obj
);
2824
}
2825
inline
explicit
fixed_box
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2826
inline
typed::multi_aff<Domain>
offset
()
const
;
2827
inline
typed::multi_aff<Domain>
get_offset
()
const
=
delete
;
2828
inline
typed::multi_val<Domain>
size
()
const
;
2829
inline
typed::multi_val<Domain>
get_size
()
const
=
delete
;
2830
inline
typed::space<Domain>
space
()
const
;
2831
inline
typed::space<Domain>
get_space
()
const
=
delete
;
2832
};
2833
2834
template
<
typename
Domain,
typename
Range>
2835
struct
fixed_box
<
Domain
,
Range
> :
public
isl::fixed_box
{
2836
template
<
typename
...>
2837
friend
struct
aff
;
2838
template
<
typename
...>
2839
friend
struct
aff_list
;
2840
template
<
typename
...>
2841
friend
struct
basic_map
;
2842
template
<
typename
...>
2843
friend
struct
basic_set
;
2844
template
<
typename
...>
2845
friend
struct
fixed_box
;
2846
template
<
typename
...>
2847
friend
struct
id
;
2848
template
<
typename
...>
2849
friend
struct
id_list
;
2850
template
<
typename
...>
2851
friend
struct
map
;
2852
template
<
typename
...>
2853
friend
struct
map_list
;
2854
template
<
typename
...>
2855
friend
struct
multi_aff
;
2856
template
<
typename
...>
2857
friend
struct
multi_id
;
2858
template
<
typename
...>
2859
friend
struct
multi_pw_aff
;
2860
template
<
typename
...>
2861
friend
struct
multi_union_pw_aff
;
2862
template
<
typename
...>
2863
friend
struct
multi_val
;
2864
template
<
typename
...>
2865
friend
struct
point
;
2866
template
<
typename
...>
2867
friend
struct
pw_aff
;
2868
template
<
typename
...>
2869
friend
struct
pw_aff_list
;
2870
template
<
typename
...>
2871
friend
struct
pw_multi_aff
;
2872
template
<
typename
...>
2873
friend
struct
pw_multi_aff_list
;
2874
template
<
typename
...>
2875
friend
struct
set
;
2876
template
<
typename
...>
2877
friend
struct
set_list
;
2878
template
<
typename
...>
2879
friend
struct
space
;
2880
template
<
typename
...>
2881
friend
struct
union_map
;
2882
template
<
typename
...>
2883
friend
struct
union_pw_aff
;
2884
template
<
typename
...>
2885
friend
struct
union_pw_aff_list
;
2886
template
<
typename
...>
2887
friend
struct
union_pw_multi_aff
;
2888
template
<
typename
...>
2889
friend
struct
union_set
;
2890
template
<
typename
...>
2891
friend
struct
union_set_list
;
2892
template
<
typename
...>
2893
friend
struct
val
;
2894
template
<
typename
...>
2895
friend
struct
val_list
;
2896
2897
fixed_box
() =
default
;
2898
template
<
typename
Arg1,
typename
Arg2,
2899
typename
std::enable_if<
2900
std::is_base_of<Domain, Arg1>{} &&
2901
std::is_base_of<Range, Arg2>{},
2902
bool
>
::type
=
true
>
2903
fixed_box
(
const
fixed_box<Arg1, Arg2>
&
obj
) :
isl
::
fixed_box
(
obj
) {}
2904
private
:
2905
template
<
typename
base,
2906
typename
std::enable_if<
2907
std::is_same<base, isl::fixed_box>{},
bool
>
::type
=
true
>
2908
fixed_box
(
const
base &
obj
) :
isl
::
fixed_box
(
obj
) {}
2909
public
:
2910
static
fixed_box
from
(
const
isl::fixed_box
&
obj
) {
2911
return
fixed_box
(
obj
);
2912
}
2913
inline
explicit
fixed_box
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2914
inline
typed::multi_aff<Domain, Range>
offset
()
const
;
2915
inline
typed::multi_aff<Domain, Range>
get_offset
()
const
=
delete
;
2916
inline
typed::multi_val<Range>
size
()
const
;
2917
inline
typed::multi_val<Domain, Range>
get_size
()
const
=
delete
;
2918
inline
typed::space<Domain, Range>
space
()
const
;
2919
inline
typed::space<Domain, Range>
get_space
()
const
=
delete
;
2920
};
2921
2922
template
<>
2923
struct
id
<
Anonymous
> :
public
isl::id
{
2924
template
<
typename
...>
2925
friend
struct
aff
;
2926
template
<
typename
...>
2927
friend
struct
aff_list
;
2928
template
<
typename
...>
2929
friend
struct
basic_map
;
2930
template
<
typename
...>
2931
friend
struct
basic_set
;
2932
template
<
typename
...>
2933
friend
struct
fixed_box
;
2934
template
<
typename
...>
2935
friend
struct
id
;
2936
template
<
typename
...>
2937
friend
struct
id_list
;
2938
template
<
typename
...>
2939
friend
struct
map
;
2940
template
<
typename
...>
2941
friend
struct
map_list
;
2942
template
<
typename
...>
2943
friend
struct
multi_aff
;
2944
template
<
typename
...>
2945
friend
struct
multi_id
;
2946
template
<
typename
...>
2947
friend
struct
multi_pw_aff
;
2948
template
<
typename
...>
2949
friend
struct
multi_union_pw_aff
;
2950
template
<
typename
...>
2951
friend
struct
multi_val
;
2952
template
<
typename
...>
2953
friend
struct
point
;
2954
template
<
typename
...>
2955
friend
struct
pw_aff
;
2956
template
<
typename
...>
2957
friend
struct
pw_aff_list
;
2958
template
<
typename
...>
2959
friend
struct
pw_multi_aff
;
2960
template
<
typename
...>
2961
friend
struct
pw_multi_aff_list
;
2962
template
<
typename
...>
2963
friend
struct
set
;
2964
template
<
typename
...>
2965
friend
struct
set_list
;
2966
template
<
typename
...>
2967
friend
struct
space
;
2968
template
<
typename
...>
2969
friend
struct
union_map
;
2970
template
<
typename
...>
2971
friend
struct
union_pw_aff
;
2972
template
<
typename
...>
2973
friend
struct
union_pw_aff_list
;
2974
template
<
typename
...>
2975
friend
struct
union_pw_multi_aff
;
2976
template
<
typename
...>
2977
friend
struct
union_set
;
2978
template
<
typename
...>
2979
friend
struct
union_set_list
;
2980
template
<
typename
...>
2981
friend
struct
val
;
2982
template
<
typename
...>
2983
friend
struct
val_list
;
2984
2985
id
() =
default
;
2986
id
(
const
isl::id
&
obj
) :
isl
::
id
(
obj
) {}
2987
static
id
from
(
const
isl::id
&
obj
) {
2988
return
id
(
obj
);
2989
}
2990
inline
explicit
id
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
2991
inline
std::string
get_name
()
const
=
delete
;
2992
};
2993
2994
template
<>
2995
struct
id_list<Anonymous>
:
public
isl::id_list
{
2996
template
<
typename
...>
2997
friend
struct
aff
;
2998
template
<
typename
...>
2999
friend
struct
aff_list
;
3000
template
<
typename
...>
3001
friend
struct
basic_map
;
3002
template
<
typename
...>
3003
friend
struct
basic_set
;
3004
template
<
typename
...>
3005
friend
struct
fixed_box
;
3006
template
<
typename
...>
3007
friend
struct
id
;
3008
template
<
typename
...>
3009
friend
struct
id_list
;
3010
template
<
typename
...>
3011
friend
struct
map
;
3012
template
<
typename
...>
3013
friend
struct
map_list
;
3014
template
<
typename
...>
3015
friend
struct
multi_aff
;
3016
template
<
typename
...>
3017
friend
struct
multi_id
;
3018
template
<
typename
...>
3019
friend
struct
multi_pw_aff
;
3020
template
<
typename
...>
3021
friend
struct
multi_union_pw_aff
;
3022
template
<
typename
...>
3023
friend
struct
multi_val
;
3024
template
<
typename
...>
3025
friend
struct
point
;
3026
template
<
typename
...>
3027
friend
struct
pw_aff
;
3028
template
<
typename
...>
3029
friend
struct
pw_aff_list
;
3030
template
<
typename
...>
3031
friend
struct
pw_multi_aff
;
3032
template
<
typename
...>
3033
friend
struct
pw_multi_aff_list
;
3034
template
<
typename
...>
3035
friend
struct
set
;
3036
template
<
typename
...>
3037
friend
struct
set_list
;
3038
template
<
typename
...>
3039
friend
struct
space
;
3040
template
<
typename
...>
3041
friend
struct
union_map
;
3042
template
<
typename
...>
3043
friend
struct
union_pw_aff
;
3044
template
<
typename
...>
3045
friend
struct
union_pw_aff_list
;
3046
template
<
typename
...>
3047
friend
struct
union_pw_multi_aff
;
3048
template
<
typename
...>
3049
friend
struct
union_set
;
3050
template
<
typename
...>
3051
friend
struct
union_set_list
;
3052
template
<
typename
...>
3053
friend
struct
val
;
3054
template
<
typename
...>
3055
friend
struct
val_list
;
3056
3057
id_list
() =
default
;
3058
id_list
(
const
isl::id_list
&
obj
) :
isl
::
id_list
(
obj
) {}
3059
static
id_list
from
(
const
isl::id_list
&
obj
) {
3060
return
id_list
(
obj
);
3061
}
3062
inline
explicit
id_list
(
const
isl::ctx
&
ctx
,
int
n
);
3063
inline
explicit
id_list
(
const
typed::id<Anonymous>
&el);
3064
inline
explicit
id_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
3065
inline
typed::id_list<Anonymous>
add
(
const
typed::id<Anonymous>
&el)
const
;
3066
inline
typed::id_list<Anonymous>
add
(
const
std::string &el)
const
;
3067
inline
typed::id<Anonymous>
at
(
int
index)
const
;
3068
inline
typed::id<Anonymous>
get_at
(
int
index)
const
=
delete
;
3069
inline
typed::id_list<Anonymous>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
3070
inline
void
foreach
(
const
std::function<
void
(
typed::id<Anonymous>
)> &
fn
)
const
;
3071
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::id<Anonymous>
,
typed::id<Anonymous>
)> &follows,
const
std::function<
void
(
typed::id_list<Anonymous>
)> &
fn
)
const
;
3072
inline
typed::id_list<Anonymous>
set_at
(
int
index,
const
typed::id<Anonymous>
&el)
const
;
3073
inline
typed::id_list<Anonymous>
set_at
(
int
index,
const
std::string &el)
const
;
3074
};
3075
3076
template
<
typename
Domain,
typename
Range>
3077
struct
map<Domain, Range>
:
public
isl::map
{
3078
template
<
typename
...>
3079
friend
struct
aff
;
3080
template
<
typename
...>
3081
friend
struct
aff_list
;
3082
template
<
typename
...>
3083
friend
struct
basic_map
;
3084
template
<
typename
...>
3085
friend
struct
basic_set
;
3086
template
<
typename
...>
3087
friend
struct
fixed_box
;
3088
template
<
typename
...>
3089
friend
struct
id
;
3090
template
<
typename
...>
3091
friend
struct
id_list
;
3092
template
<
typename
...>
3093
friend
struct
map
;
3094
template
<
typename
...>
3095
friend
struct
map_list
;
3096
template
<
typename
...>
3097
friend
struct
multi_aff
;
3098
template
<
typename
...>
3099
friend
struct
multi_id
;
3100
template
<
typename
...>
3101
friend
struct
multi_pw_aff
;
3102
template
<
typename
...>
3103
friend
struct
multi_union_pw_aff
;
3104
template
<
typename
...>
3105
friend
struct
multi_val
;
3106
template
<
typename
...>
3107
friend
struct
point
;
3108
template
<
typename
...>
3109
friend
struct
pw_aff
;
3110
template
<
typename
...>
3111
friend
struct
pw_aff_list
;
3112
template
<
typename
...>
3113
friend
struct
pw_multi_aff
;
3114
template
<
typename
...>
3115
friend
struct
pw_multi_aff_list
;
3116
template
<
typename
...>
3117
friend
struct
set
;
3118
template
<
typename
...>
3119
friend
struct
set_list
;
3120
template
<
typename
...>
3121
friend
struct
space
;
3122
template
<
typename
...>
3123
friend
struct
union_map
;
3124
template
<
typename
...>
3125
friend
struct
union_pw_aff
;
3126
template
<
typename
...>
3127
friend
struct
union_pw_aff_list
;
3128
template
<
typename
...>
3129
friend
struct
union_pw_multi_aff
;
3130
template
<
typename
...>
3131
friend
struct
union_set
;
3132
template
<
typename
...>
3133
friend
struct
union_set_list
;
3134
template
<
typename
...>
3135
friend
struct
val
;
3136
template
<
typename
...>
3137
friend
struct
val_list
;
3138
3139
map
() =
default
;
3140
template
<
typename
Arg1,
typename
Arg2,
3141
typename
std::enable_if<
3142
std::is_base_of<Domain, Arg1>{} &&
3143
std::is_base_of<Range, Arg2>{},
3144
bool
>
::type
=
true
>
3145
map
(
const
map<Arg1, Arg2>
&
obj
) :
isl
::
map
(
obj
) {}
3146
private
:
3147
template
<
typename
base,
3148
typename
std::enable_if<
3149
std::is_same<base, isl::map>{},
bool
>
::type
=
true
>
3150
map
(
const
base &
obj
) :
isl
::
map
(
obj
) {}
3151
public
:
3152
static
map
from
(
const
isl::map
&
obj
) {
3153
return
map
(
obj
);
3154
}
3155
inline
/* implicit */
map
(
const
typed::basic_map<Domain, Range>
&bmap);
3156
inline
explicit
map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
3157
template
<
typename
Domain2>
3158
inline
typed::map<Domain2, Range>
apply_domain
(
const
typed::map<Domain, Domain2>
&
map2
)
const
;
3159
template
<
typename
Domain2>
3160
inline
typed::union_map<Domain2, Range>
apply_domain
(
const
typed::union_map<Domain, Domain2>
&umap2)
const
;
3161
template
<
typename
Domain2>
3162
inline
typed::map<Domain2, Range>
apply_domain
(
const
typed::basic_map<Domain, Domain2>
&
map2
)
const
;
3163
template
<
typename
Range2>
3164
inline
typed::map<Domain, Range2>
apply_range
(
const
typed::map<Range, Range2>
&
map2
)
const
;
3165
template
<
typename
Range2>
3166
inline
typed::union_map<Domain, Range2>
apply_range
(
const
typed::union_map<Range, Range2>
&umap2)
const
;
3167
template
<
typename
Range2>
3168
inline
typed::map<Domain, Range2>
apply_range
(
const
typed::basic_map<Range, Range2>
&
map2
)
const
;
3169
inline
typed::map<Domain, Range>
as_map
()
const
;
3170
inline
typed::multi_union_pw_aff<Domain, Range>
as_multi_union_pw_aff
()
const
;
3171
inline
typed::pw_multi_aff<Domain, Range>
as_pw_multi_aff
()
const
;
3172
inline
typed::union_pw_multi_aff<Domain, Range>
as_union_pw_multi_aff
()
const
;
3173
inline
typed::set<Range>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
3174
inline
typed::set<Domain>
bind_range
(
const
typed::multi_id<Range>
&
tuple
)
const
;
3175
inline
typed::map<Domain, Range>
coalesce
()
const
;
3176
inline
typed::map<Domain, Range>
curry
()
const
=
delete
;
3177
inline
typed::set<Domain, Range>
deltas
()
const
=
delete
;
3178
inline
typed::map<Domain, Range>
detect_equalities
()
const
;
3179
inline
typed::set<Domain>
domain
()
const
;
3180
inline
typed::map<Domain, Range>
domain_factor_domain
()
const
=
delete
;
3181
inline
typed::map<Domain, Range>
domain_factor_range
()
const
=
delete
;
3182
inline
typed::union_map<pair<Domain, Range>
,
Domain
>
domain_map
()
const
;
3183
inline
typed::union_pw_multi_aff<pair<Domain, Range>
,
Domain
>
domain_map_union_pw_multi_aff
()
const
;
3184
template
<
typename
Domain2>
3185
inline
typed::map<pair<Domain, Domain2>
,
Range
>
domain_product
(
const
typed::map<Domain2, Range>
&
map2
)
const
;
3186
template
<
typename
Domain2>
3187
inline
typed::union_map<pair<Domain, Domain2>
,
Range
>
domain_product
(
const
typed::union_map<Domain2, Range>
&umap2)
const
;
3188
template
<
typename
Domain2>
3189
inline
typed::map<pair<Domain, Domain2>
,
Range
>
domain_product
(
const
typed::basic_map<Domain2, Range>
&
map2
)
const
;
3190
inline
typed::map<Domain, Range>
domain_reverse
()
const
=
delete
;
3191
inline
typed::id<Domain, Range>
get_domain_tuple_id
()
const
=
delete
;
3192
inline
typed::map<Domain, Range>
drop_unused_params
()
const
;
3193
inline
typed::map<Domain, Range>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3194
inline
typed::union_map<Domain, Range>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
3195
inline
typed::map<Domain, Range>
eq_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3196
inline
typed::map<Domain, Range>
eq_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3197
inline
typed::map<Domain, Range>
eq_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3198
inline
typed::map<Domain, Range>
eq_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3199
inline
bool
every_map
(
const
std::function<
bool
(
typed::map<Domain, Range>
)> &
test
)
const
;
3200
inline
typed::map<Domain, Range>
extract_map
(
const
typed::space<Domain, Range>
&
space
)
const
;
3201
inline
typed::map<Domain, Range>
flatten_domain
()
const
=
delete
;
3202
inline
typed::map<Domain, Range>
flatten_range
()
const
=
delete
;
3203
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map<Domain, Range>
)> &
fn
)
const
;
3204
inline
void
foreach_map
(
const
std::function<
void
(
typed::map<Domain, Range>
)> &
fn
)
const
;
3205
inline
typed::map<Domain, Range>
gist
(
const
typed::map<Domain, Range>
&
context
)
const
;
3206
inline
typed::union_map<Domain, Range>
gist
(
const
typed::union_map<Domain, Range>
&
context
)
const
;
3207
inline
typed::map<Domain, Range>
gist
(
const
typed::basic_map<Domain, Range>
&
context
)
const
;
3208
inline
typed::map<Domain, Range>
gist_domain
(
const
typed::set<Domain>
&
context
)
const
;
3209
inline
typed::union_map<Domain, Range>
gist_domain
(
const
typed::union_set<Domain>
&uset)
const
;
3210
inline
typed::map<Domain, Range>
gist_domain
(
const
typed::basic_set<Domain>
&
context
)
const
;
3211
inline
typed::map<Domain, Range>
gist_domain
(
const
typed::point<Domain>
&
context
)
const
;
3212
inline
typed::map<Domain, Range>
gist_params
(
const
typed::set<>
&
context
)
const
;
3213
inline
typed::map<Domain, Range>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
3214
inline
typed::map<Domain, Range>
gist_params
(
const
typed::point<>
&
context
)
const
;
3215
inline
typed::map<Domain, Range>
intersect
(
const
typed::map<Domain, Range>
&
map2
)
const
;
3216
inline
typed::union_map<Domain, Range>
intersect
(
const
typed::union_map<Domain, Range>
&umap2)
const
;
3217
inline
typed::map<Domain, Range>
intersect
(
const
typed::basic_map<Domain, Range>
&
map2
)
const
;
3218
inline
typed::map<Domain, Range>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
3219
inline
typed::union_map<Domain, Range>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
3220
inline
typed::union_map<Domain, Range>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
3221
inline
typed::map<Domain, Range>
intersect_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
3222
inline
typed::map<Domain, Range>
intersect_domain
(
const
typed::point<Domain>
&
set
)
const
;
3223
inline
typed::map<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
3224
inline
typed::union_map<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
3225
inline
typed::map<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
3226
inline
typed::map<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
3227
inline
typed::map<Domain, Range>
intersect_params
(
const
typed::set<>
&
params
)
const
;
3228
inline
typed::map<Domain, Range>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
3229
inline
typed::map<Domain, Range>
intersect_params
(
const
typed::point<>
&
params
)
const
;
3230
inline
typed::map<Domain, Range>
intersect_range
(
const
typed::set<Range>
&
set
)
const
;
3231
inline
typed::union_map<Domain, Range>
intersect_range
(
const
typed::space<Range>
&
space
)
const
;
3232
inline
typed::union_map<Domain, Range>
intersect_range
(
const
typed::union_set<Range>
&uset)
const
;
3233
inline
typed::map<Domain, Range>
intersect_range
(
const
typed::basic_set<Range>
&
set
)
const
;
3234
inline
typed::map<Domain, Range>
intersect_range
(
const
typed::point<Range>
&
set
)
const
;
3235
inline
typed::map<Domain, Range>
intersect_range_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
3236
inline
typed::union_map<Domain, Range>
intersect_range_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
3237
inline
typed::map<Domain, Range>
intersect_range_wrapped_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
3238
inline
typed::map<Domain, Range>
intersect_range_wrapped_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
3239
inline
typed::map<Domain, Range>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3240
inline
typed::map<Domain, Range>
lex_ge_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3241
inline
typed::map<Domain, Range>
lex_ge_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3242
inline
typed::map<Domain, Range>
lex_ge_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3243
inline
typed::map<Domain, Range>
lex_ge_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3244
inline
typed::map<Domain, Range>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3245
inline
typed::map<Domain, Range>
lex_gt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3246
inline
typed::map<Domain, Range>
lex_gt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3247
inline
typed::map<Domain, Range>
lex_gt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3248
inline
typed::map<Domain, Range>
lex_gt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3249
inline
typed::map<Domain, Range>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3250
inline
typed::map<Domain, Range>
lex_le_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3251
inline
typed::map<Domain, Range>
lex_le_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3252
inline
typed::map<Domain, Range>
lex_le_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3253
inline
typed::map<Domain, Range>
lex_le_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3254
inline
typed::map<Domain, Range>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3255
inline
typed::map<Domain, Range>
lex_lt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3256
inline
typed::map<Domain, Range>
lex_lt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3257
inline
typed::map<Domain, Range>
lex_lt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3258
inline
typed::map<Domain, Range>
lex_lt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3259
inline
typed::map<Domain, Range>
lexmax
()
const
;
3260
inline
typed::pw_multi_aff<Domain, Range>
lexmax_pw_multi_aff
()
const
;
3261
inline
typed::map<Domain, Range>
lexmin
()
const
;
3262
inline
typed::pw_multi_aff<Domain, Range>
lexmin_pw_multi_aff
()
const
;
3263
inline
typed::map<Domain, Range>
lower_bound
(
const
typed::multi_pw_aff<Domain, Range>
&lower)
const
;
3264
inline
typed::map<Domain, Range>
lower_bound
(
const
typed::aff<Domain, Range>
&lower)
const
;
3265
inline
typed::map<Domain, Range>
lower_bound
(
const
typed::multi_aff<Domain, Range>
&lower)
const
;
3266
inline
typed::map<Domain, Range>
lower_bound
(
const
typed::pw_aff<Domain, Range>
&lower)
const
;
3267
inline
typed::map<Domain, Range>
lower_bound
(
const
typed::pw_multi_aff<Domain, Range>
&lower)
const
;
3268
inline
typed::map_list<Domain, Range>
map_list
()
const
;
3269
inline
typed::multi_pw_aff<Domain, Range>
max_multi_pw_aff
()
const
;
3270
inline
typed::multi_pw_aff<Domain, Range>
min_multi_pw_aff
()
const
;
3271
inline
typed::set<>
params
()
const
;
3272
template
<
typename
Domain2>
3273
inline
typed::map<Domain2, Range>
preimage_domain
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
3274
template
<
typename
Domain2>
3275
inline
typed::map<Domain2, Range>
preimage_domain
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
3276
template
<
typename
Domain2>
3277
inline
typed::map<Domain2, Range>
preimage_domain
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
3278
template
<
typename
Domain2>
3279
inline
typed::union_map<Domain2, Range>
preimage_domain
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
3280
template
<
typename
Range2>
3281
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::multi_aff<Range2, Range>
&
ma
)
const
;
3282
template
<
typename
Range2>
3283
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::pw_multi_aff<Range2, Range>
&
pma
)
const
;
3284
template
<
typename
Range2>
3285
inline
typed::union_map<Domain, Range2>
preimage_range
(
const
typed::union_pw_multi_aff<Range2, Range>
&upma)
const
;
3286
template
<
typename
Domain2,
typename
Range2>
3287
inline
typed::map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
3288
template
<
typename
Domain2,
typename
Range2>
3289
inline
typed::union_map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
3290
template
<
typename
Domain2,
typename
Range2>
3291
inline
typed::map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::basic_map<Domain2, Range2>
&
map2
)
const
;
3292
inline
typed::map<Domain, Range>
project_out_all_params
()
const
;
3293
inline
typed::map<Domain, Range>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
3294
inline
typed::map<Domain, Range>
project_out_param
(
const
std::string &
id
)
const
;
3295
inline
typed::map<Domain, Range>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
3296
inline
typed::set<Range>
range
()
const
;
3297
inline
typed::map<Domain, Range>
range_factor_domain
()
const
=
delete
;
3298
inline
typed::map<Domain, Range>
range_factor_range
()
const
=
delete
;
3299
inline
typed::fixed_box<Domain, Range>
range_lattice_tile
()
const
;
3300
inline
typed::fixed_box<Domain, Range>
get_range_lattice_tile
()
const
=
delete
;
3301
inline
typed::union_map<pair<Domain, Range>
,
Range
>
range_map
()
const
;
3302
template
<
typename
Range2>
3303
inline
typed::map<Domain, pair<Range, Range2>
>
range_product
(
const
typed::map<Domain, Range2>
&
map2
)
const
;
3304
template
<
typename
Range2>
3305
inline
typed::union_map<Domain, pair<Range, Range2>
>
range_product
(
const
typed::union_map<Domain, Range2>
&umap2)
const
;
3306
template
<
typename
Range2>
3307
inline
typed::map<Domain, pair<Range, Range2>
>
range_product
(
const
typed::basic_map<Domain, Range2>
&
map2
)
const
;
3308
inline
typed::map<Domain, Range>
range_reverse
()
const
=
delete
;
3309
inline
typed::fixed_box<Domain, Range>
range_simple_fixed_box_hull
()
const
;
3310
inline
typed::fixed_box<Domain, Range>
get_range_simple_fixed_box_hull
()
const
=
delete
;
3311
inline
typed::id<Domain, Range>
get_range_tuple_id
()
const
=
delete
;
3312
inline
typed::map<Range, Domain>
reverse
()
const
;
3313
template
<
typename
Domain2>
3314
inline
typed::map<Domain2, Range>
set_domain_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
3315
template
<
typename
Domain2>
3316
inline
typed::map<Domain2, Range>
set_domain_tuple
(
const
std::string &
id
)
const
;
3317
template
<
typename
Range2>
3318
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
3319
template
<
typename
Range2>
3320
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
3321
inline
typed::space<Domain, Range>
space
()
const
;
3322
inline
typed::space<Domain, Range>
get_space
()
const
=
delete
;
3323
inline
typed::map<Domain, Range>
subtract
(
const
typed::map<Domain, Range>
&
map2
)
const
;
3324
inline
typed::union_map<Domain, Range>
subtract
(
const
typed::union_map<Domain, Range>
&umap2)
const
;
3325
inline
typed::map<Domain, Range>
subtract
(
const
typed::basic_map<Domain, Range>
&
map2
)
const
;
3326
inline
typed::union_map<Domain, Range>
subtract_domain
(
const
typed::union_set<Domain>
&dom)
const
;
3327
inline
typed::union_map<Domain, Range>
subtract_range
(
const
typed::union_set<Range>
&dom)
const
;
3328
inline
typed::union_map<Domain, Range>
to_union_map
()
const
;
3329
inline
typed::map<Domain, Range>
uncurry
()
const
=
delete
;
3330
inline
typed::map<Domain, Range>
unite
(
const
typed::map<Domain, Range>
&
map2
)
const
;
3331
inline
typed::union_map<Domain, Range>
unite
(
const
typed::union_map<Domain, Range>
&umap2)
const
;
3332
inline
typed::map<Domain, Range>
unite
(
const
typed::basic_map<Domain, Range>
&
map2
)
const
;
3333
static
inline
typed::map<Domain, Range>
universe
(
const
typed::space<Domain, Range>
&
space
);
3334
inline
typed::map<Domain, Range>
upper_bound
(
const
typed::multi_pw_aff<Domain, Range>
&upper)
const
;
3335
inline
typed::map<Domain, Range>
upper_bound
(
const
typed::aff<Domain, Range>
&upper)
const
;
3336
inline
typed::map<Domain, Range>
upper_bound
(
const
typed::multi_aff<Domain, Range>
&upper)
const
;
3337
inline
typed::map<Domain, Range>
upper_bound
(
const
typed::pw_aff<Domain, Range>
&upper)
const
;
3338
inline
typed::map<Domain, Range>
upper_bound
(
const
typed::pw_multi_aff<Domain, Range>
&upper)
const
;
3339
inline
typed::set<pair<Domain, Range>
>
wrap
()
const
;
3340
};
3341
3342
template
<
typename
Domain,
typename
Range,
typename
Range2>
3343
struct
map
<
pair
<
Domain
,
Range
>,
Range2
> :
public
isl::map
{
3344
template
<
typename
...>
3345
friend
struct
aff
;
3346
template
<
typename
...>
3347
friend
struct
aff_list
;
3348
template
<
typename
...>
3349
friend
struct
basic_map
;
3350
template
<
typename
...>
3351
friend
struct
basic_set
;
3352
template
<
typename
...>
3353
friend
struct
fixed_box
;
3354
template
<
typename
...>
3355
friend
struct
id
;
3356
template
<
typename
...>
3357
friend
struct
id_list
;
3358
template
<
typename
...>
3359
friend
struct
map
;
3360
template
<
typename
...>
3361
friend
struct
map_list
;
3362
template
<
typename
...>
3363
friend
struct
multi_aff
;
3364
template
<
typename
...>
3365
friend
struct
multi_id
;
3366
template
<
typename
...>
3367
friend
struct
multi_pw_aff
;
3368
template
<
typename
...>
3369
friend
struct
multi_union_pw_aff
;
3370
template
<
typename
...>
3371
friend
struct
multi_val
;
3372
template
<
typename
...>
3373
friend
struct
point
;
3374
template
<
typename
...>
3375
friend
struct
pw_aff
;
3376
template
<
typename
...>
3377
friend
struct
pw_aff_list
;
3378
template
<
typename
...>
3379
friend
struct
pw_multi_aff
;
3380
template
<
typename
...>
3381
friend
struct
pw_multi_aff_list
;
3382
template
<
typename
...>
3383
friend
struct
set
;
3384
template
<
typename
...>
3385
friend
struct
set_list
;
3386
template
<
typename
...>
3387
friend
struct
space
;
3388
template
<
typename
...>
3389
friend
struct
union_map
;
3390
template
<
typename
...>
3391
friend
struct
union_pw_aff
;
3392
template
<
typename
...>
3393
friend
struct
union_pw_aff_list
;
3394
template
<
typename
...>
3395
friend
struct
union_pw_multi_aff
;
3396
template
<
typename
...>
3397
friend
struct
union_set
;
3398
template
<
typename
...>
3399
friend
struct
union_set_list
;
3400
template
<
typename
...>
3401
friend
struct
val
;
3402
template
<
typename
...>
3403
friend
struct
val_list
;
3404
3405
map
() =
default
;
3406
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
3407
typename
std::enable_if<
3408
std::is_base_of<Domain, Arg1>{} &&
3409
std::is_base_of<Range, Arg2>{} &&
3410
std::is_base_of<Range2, Arg3>{},
3411
bool
>
::type
=
true
>
3412
map
(
const
map
<
pair<Arg1, Arg2>
, Arg3> &
obj
) :
isl
::
map
(
obj
) {}
3413
private
:
3414
template
<
typename
base,
3415
typename
std::enable_if<
3416
std::is_same<base, isl::map>{},
bool
>
::type
=
true
>
3417
map
(
const
base &
obj
) :
isl
::
map
(
obj
) {}
3418
public
:
3419
static
map
from
(
const
isl::map
&
obj
) {
3420
return
map
(
obj
);
3421
}
3422
inline
/* implicit */
map
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &bmap);
3423
inline
explicit
map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
3424
template
<
typename
Domain2>
3425
inline
typed::map<Domain2, Range2>
apply_domain
(
const
typed::map
<
pair<Domain, Range>
,
Domain2
> &
map2
)
const
;
3426
template
<
typename
Domain2>
3427
inline
typed::union_map<Domain2, Range2>
apply_domain
(
const
typed::union_map
<
pair<Domain, Range>
,
Domain2
> &umap2)
const
;
3428
template
<
typename
Domain2>
3429
inline
typed::map<Domain2, Range2>
apply_domain
(
const
typed::basic_map
<
pair<Domain, Range>
,
Domain2
> &
map2
)
const
;
3430
template
<
typename
Arg3>
3431
inline
typed::map<pair<Domain, Range>
, Arg3>
apply_range
(
const
typed::map<Range2, Arg3>
&
map2
)
const
;
3432
template
<
typename
Arg3>
3433
inline
typed::union_map<pair<Domain, Range>
, Arg3>
apply_range
(
const
typed::union_map<Range2, Arg3>
&umap2)
const
;
3434
template
<
typename
Arg3>
3435
inline
typed::map<pair<Domain, Range>
, Arg3>
apply_range
(
const
typed::basic_map<Range2, Arg3>
&
map2
)
const
;
3436
inline
typed::map<pair<Domain, Range>
,
Range2
>
as_map
()
const
;
3437
inline
typed::multi_union_pw_aff<pair<Domain, Range>
,
Range2
>
as_multi_union_pw_aff
()
const
;
3438
inline
typed::pw_multi_aff<pair<Domain, Range>
,
Range2
>
as_pw_multi_aff
()
const
;
3439
inline
typed::union_pw_multi_aff<pair<Domain, Range>
,
Range2
>
as_union_pw_multi_aff
()
const
;
3440
inline
typed::set<Range2>
bind_domain
(
const
typed::multi_id
<
pair<Domain, Range>
> &
tuple
)
const
;
3441
inline
typed::set<pair<Domain, Range>
>
bind_range
(
const
typed::multi_id<Range2>
&
tuple
)
const
;
3442
inline
typed::map<pair<Domain, Range>
,
Range2
>
coalesce
()
const
;
3443
inline
typed::map<Domain, pair<Range, Range2>
>
curry
()
const
;
3444
inline
typed::set<pair<Domain, Range>
,
Range2
>
deltas
()
const
=
delete
;
3445
inline
typed::map<pair<Domain, Range>
,
Range2
>
detect_equalities
()
const
;
3446
inline
typed::set<pair<Domain, Range>
>
domain
()
const
;
3447
inline
typed::map<Domain, Range2>
domain_factor_domain
()
const
;
3448
inline
typed::map<Range, Range2>
domain_factor_range
()
const
;
3449
inline
typed::union_map<pair<pair<Domain, Range>
,
Range2
>,
pair<Domain, Range>
>
domain_map
()
const
;
3450
inline
typed::union_pw_multi_aff<pair<pair<Domain, Range>
,
Range2
>,
pair<Domain, Range>
>
domain_map_union_pw_multi_aff
()
const
;
3451
template
<
typename
Domain2>
3452
inline
typed::map<pair<pair<Domain, Range>
,
Domain2
>,
Range2
>
domain_product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
3453
template
<
typename
Domain2>
3454
inline
typed::union_map<pair<pair<Domain, Range>
,
Domain2
>,
Range2
>
domain_product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
3455
template
<
typename
Domain2>
3456
inline
typed::map<pair<pair<Domain, Range>
,
Domain2
>,
Range2
>
domain_product
(
const
typed::basic_map<Domain2, Range2>
&
map2
)
const
;
3457
inline
typed::map<pair<Range, Domain>
,
Range2
>
domain_reverse
()
const
;
3458
inline
typed::id<pair<Domain, Range>
,
Range2
>
get_domain_tuple_id
()
const
=
delete
;
3459
inline
typed::map<pair<Domain, Range>
,
Range2
>
drop_unused_params
()
const
;
3460
inline
typed::map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3461
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
3462
inline
typed::map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3463
inline
typed::map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3464
inline
typed::map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3465
inline
typed::map<pair<Domain, Range>
,
Range2
>
eq_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3466
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
pair<Domain, Range>
,
Range2
>)> &
test
)
const
;
3467
inline
typed::map<pair<Domain, Range>
,
Range2
>
extract_map
(
const
typed::space
<
pair<Domain, Range>
,
Range2
> &
space
)
const
;
3468
inline
typed::map<Anonymous, Range2>
flatten_domain
()
const
;
3469
inline
typed::map<pair<Domain, Range>
,
Range2
>
flatten_range
()
const
=
delete
;
3470
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
pair<Domain, Range>
,
Range2
>)> &
fn
)
const
;
3471
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
pair<Domain, Range>
,
Range2
>)> &
fn
)
const
;
3472
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
context
)
const
;
3473
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
gist
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &
context
)
const
;
3474
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &
context
)
const
;
3475
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_domain
(
const
typed::set
<
pair<Domain, Range>
> &
context
)
const
;
3476
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
gist_domain
(
const
typed::union_set
<
pair<Domain, Range>
> &uset)
const
;
3477
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_domain
(
const
typed::basic_set
<
pair<Domain, Range>
> &
context
)
const
;
3478
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_domain
(
const
typed::point
<
pair<Domain, Range>
> &
context
)
const
;
3479
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_params
(
const
typed::set<>
&
context
)
const
;
3480
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
3481
inline
typed::map<pair<Domain, Range>
,
Range2
>
gist_params
(
const
typed::point<>
&
context
)
const
;
3482
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
3483
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &umap2)
const
;
3484
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
3485
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::set
<
pair<Domain, Range>
> &
set
)
const
;
3486
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::space
<
pair<Domain, Range>
> &
space
)
const
;
3487
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::union_set
<
pair<Domain, Range>
> &uset)
const
;
3488
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::basic_set
<
pair<Domain, Range>
> &
set
)
const
;
3489
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain
(
const
typed::point
<
pair<Domain, Range>
> &
set
)
const
;
3490
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain_wrapped_domain
(
const
typed::set<Domain>
&
domain
)
const
;
3491
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_domain_wrapped_domain
(
const
typed::union_set<Domain>
&
domain
)
const
;
3492
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain_wrapped_domain
(
const
typed::basic_set<Domain>
&
domain
)
const
;
3493
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_domain_wrapped_domain
(
const
typed::point<Domain>
&
domain
)
const
;
3494
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
3495
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
3496
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_params
(
const
typed::point<>
&
params
)
const
;
3497
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::set<Range2>
&
set
)
const
;
3498
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::space<Range2>
&
space
)
const
;
3499
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::union_set<Range2>
&uset)
const
;
3500
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::basic_set<Range2>
&
set
)
const
;
3501
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range
(
const
typed::point<Range2>
&
set
)
const
;
3502
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
3503
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
intersect_range_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
3504
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range_wrapped_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
3505
inline
typed::map<pair<Domain, Range>
,
Range2
>
intersect_range_wrapped_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
3506
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3507
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_ge_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3508
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_ge_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3509
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_ge_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3510
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_ge_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3511
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3512
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_gt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3513
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_gt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3514
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_gt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3515
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_gt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3516
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3517
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_le_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3518
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_le_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3519
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_le_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3520
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_le_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3521
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
3522
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_lt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
3523
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_lt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
3524
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_lt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
3525
inline
typed::map<pair<Domain, Range>
,
Range2
>
lex_lt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
3526
inline
typed::map<pair<Domain, Range>
,
Range2
>
lexmax
()
const
;
3527
inline
typed::pw_multi_aff<pair<Domain, Range>
,
Range2
>
lexmax_pw_multi_aff
()
const
;
3528
inline
typed::map<pair<Domain, Range>
,
Range2
>
lexmin
()
const
;
3529
inline
typed::pw_multi_aff<pair<Domain, Range>
,
Range2
>
lexmin_pw_multi_aff
()
const
;
3530
inline
typed::map<pair<Domain, Range>
,
Range2
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
,
Range2
> &lower)
const
;
3531
inline
typed::map<pair<Domain, Range>
,
Range2
>
lower_bound
(
const
typed::aff
<
pair<Domain, Range>
,
Range2
> &lower)
const
;
3532
inline
typed::map<pair<Domain, Range>
,
Range2
>
lower_bound
(
const
typed::multi_aff
<
pair<Domain, Range>
,
Range2
> &lower)
const
;
3533
inline
typed::map<pair<Domain, Range>
,
Range2
>
lower_bound
(
const
typed::pw_aff
<
pair<Domain, Range>
,
Range2
> &lower)
const
;
3534
inline
typed::map<pair<Domain, Range>
,
Range2
>
lower_bound
(
const
typed::pw_multi_aff
<
pair<Domain, Range>
,
Range2
> &lower)
const
;
3535
inline
typed::map_list<pair<Domain, Range>
,
Range2
>
map_list
()
const
;
3536
inline
typed::multi_pw_aff<pair<Domain, Range>
,
Range2
>
max_multi_pw_aff
()
const
;
3537
inline
typed::multi_pw_aff<pair<Domain, Range>
,
Range2
>
min_multi_pw_aff
()
const
;
3538
inline
typed::set<>
params
()
const
;
3539
template
<
typename
Domain2>
3540
inline
typed::map<Domain2, Range2>
preimage_domain
(
const
typed::multi_aff
<
Domain2
,
pair<Domain, Range>
> &
ma
)
const
;
3541
template
<
typename
Domain2>
3542
inline
typed::map<Domain2, Range2>
preimage_domain
(
const
typed::multi_pw_aff
<
Domain2
,
pair<Domain, Range>
> &mpa)
const
;
3543
template
<
typename
Domain2>
3544
inline
typed::map<Domain2, Range2>
preimage_domain
(
const
typed::pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &
pma
)
const
;
3545
template
<
typename
Domain2>
3546
inline
typed::union_map<Domain2, Range2>
preimage_domain
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &upma)
const
;
3547
template
<
typename
Arg3>
3548
inline
typed::map<pair<Domain, Range>
, Arg3>
preimage_range
(
const
typed::multi_aff<Arg3, Range2>
&
ma
)
const
;
3549
template
<
typename
Arg3>
3550
inline
typed::map<pair<Domain, Range>
, Arg3>
preimage_range
(
const
typed::pw_multi_aff<Arg3, Range2>
&
pma
)
const
;
3551
template
<
typename
Arg3>
3552
inline
typed::union_map<pair<Domain, Range>
, Arg3>
preimage_range
(
const
typed::union_pw_multi_aff<Arg3, Range2>
&upma)
const
;
3553
template
<
typename
Domain2,
typename
Arg3>
3554
inline
typed::map<pair<pair<Domain, Range>
,
Domain2
>,
pair<Range2, Arg3>
>
product
(
const
typed::map<Domain2, Arg3>
&
map2
)
const
;
3555
template
<
typename
Domain2,
typename
Arg3>
3556
inline
typed::union_map<pair<pair<Domain, Range>
,
Domain2
>,
pair<Range2, Arg3>
>
product
(
const
typed::union_map<Domain2, Arg3>
&umap2)
const
;
3557
template
<
typename
Domain2,
typename
Arg3>
3558
inline
typed::map<pair<pair<Domain, Range>
,
Domain2
>,
pair<Range2, Arg3>
>
product
(
const
typed::basic_map<Domain2, Arg3>
&
map2
)
const
;
3559
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_all_params
()
const
;
3560
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
3561
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_param
(
const
std::string &
id
)
const
;
3562
inline
typed::map<pair<Domain, Range>
,
Range2
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
3563
inline
typed::set<Range2>
range
()
const
;
3564
inline
typed::map<pair<Domain, Range>
,
Range2
>
range_factor_domain
()
const
=
delete
;
3565
inline
typed::map<pair<Domain, Range>
,
Range2
>
range_factor_range
()
const
=
delete
;
3566
inline
typed::fixed_box<pair<Domain, Range>
,
Range2
>
range_lattice_tile
()
const
;
3567
inline
typed::fixed_box<pair<Domain, Range>
,
Range2
>
get_range_lattice_tile
()
const
=
delete
;
3568
inline
typed::union_map<pair<pair<Domain, Range>
,
Range2
>,
Range2
>
range_map
()
const
;
3569
template
<
typename
Arg3>
3570
inline
typed::map<pair<Domain, Range>
,
pair<Range2, Arg3>
>
range_product
(
const
typed::map
<
pair<Domain, Range>
, Arg3> &
map2
)
const
;
3571
template
<
typename
Arg3>
3572
inline
typed::union_map<pair<Domain, Range>
,
pair<Range2, Arg3>
>
range_product
(
const
typed::union_map
<
pair<Domain, Range>
, Arg3> &umap2)
const
;
3573
template
<
typename
Arg3>
3574
inline
typed::map<pair<Domain, Range>
,
pair<Range2, Arg3>
>
range_product
(
const
typed::basic_map
<
pair<Domain, Range>
, Arg3> &
map2
)
const
;
3575
inline
typed::map<pair<Domain, Range>
,
Range2
>
range_reverse
()
const
=
delete
;
3576
inline
typed::fixed_box<pair<Domain, Range>
,
Range2
>
range_simple_fixed_box_hull
()
const
;
3577
inline
typed::fixed_box<pair<Domain, Range>
,
Range2
>
get_range_simple_fixed_box_hull
()
const
=
delete
;
3578
inline
typed::id<pair<Domain, Range>
,
Range2
>
get_range_tuple_id
()
const
=
delete
;
3579
inline
typed::map<Range2, pair<Domain, Range>
>
reverse
()
const
;
3580
inline
typed::map<pair<Domain, Range>
,
Range2
>
set_domain_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
3581
inline
typed::map<pair<Domain, Range>
,
Range2
>
set_domain_tuple
(
const
std::string &
id
)
const
=
delete
;
3582
template
<
typename
Arg2>
3583
inline
typed::map<pair<Domain, Range>
, Arg2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
3584
template
<
typename
Arg2>
3585
inline
typed::map<pair<Domain, Range>
, Arg2>
set_range_tuple
(
const
std::string &
id
)
const
;
3586
inline
typed::space<pair<Domain, Range>
,
Range2
>
space
()
const
;
3587
inline
typed::space<pair<Domain, Range>
,
Range2
>
get_space
()
const
=
delete
;
3588
inline
typed::map<pair<Domain, Range>
,
Range2
>
subtract
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
3589
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
subtract
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &umap2)
const
;
3590
inline
typed::map<pair<Domain, Range>
,
Range2
>
subtract
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
3591
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
subtract_domain
(
const
typed::union_set
<
pair<Domain, Range>
> &dom)
const
;
3592
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
subtract_range
(
const
typed::union_set<Range2>
&dom)
const
;
3593
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
to_union_map
()
const
;
3594
inline
typed::map<pair<Domain, Range>
,
Range2
>
uncurry
()
const
=
delete
;
3595
inline
typed::map<pair<Domain, Range>
,
Range2
>
unite
(
const
typed::map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
3596
inline
typed::union_map<pair<Domain, Range>
,
Range2
>
unite
(
const
typed::union_map
<
pair<Domain, Range>
,
Range2
> &umap2)
const
;
3597
inline
typed::map<pair<Domain, Range>
,
Range2
>
unite
(
const
typed::basic_map
<
pair<Domain, Range>
,
Range2
> &
map2
)
const
;
3598
static
inline
typed::map<pair<Domain, Range>
,
Range2
>
universe
(
const
typed::space
<
pair<Domain, Range>
,
Range2
> &
space
);
3599
inline
typed::map<pair<Domain, Range>
,
Range2
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
,
Range2
> &upper)
const
;
3600
inline
typed::map<pair<Domain, Range>
,
Range2
>
upper_bound
(
const
typed::aff
<
pair<Domain, Range>
,
Range2
> &upper)
const
;
3601
inline
typed::map<pair<Domain, Range>
,
Range2
>
upper_bound
(
const
typed::multi_aff
<
pair<Domain, Range>
,
Range2
> &upper)
const
;
3602
inline
typed::map<pair<Domain, Range>
,
Range2
>
upper_bound
(
const
typed::pw_aff
<
pair<Domain, Range>
,
Range2
> &upper)
const
;
3603
inline
typed::map<pair<Domain, Range>
,
Range2
>
upper_bound
(
const
typed::pw_multi_aff
<
pair<Domain, Range>
,
Range2
> &upper)
const
;
3604
inline
typed::set<pair<pair<Domain, Range>
,
Range2
>>
wrap
()
const
;
3605
};
3606
3607
template
<
typename
Domain>
3608
struct
map
<
Domain
,
Domain
> :
public
isl::map
{
3609
template
<
typename
...>
3610
friend
struct
aff
;
3611
template
<
typename
...>
3612
friend
struct
aff_list
;
3613
template
<
typename
...>
3614
friend
struct
basic_map
;
3615
template
<
typename
...>
3616
friend
struct
basic_set
;
3617
template
<
typename
...>
3618
friend
struct
fixed_box
;
3619
template
<
typename
...>
3620
friend
struct
id
;
3621
template
<
typename
...>
3622
friend
struct
id_list
;
3623
template
<
typename
...>
3624
friend
struct
map
;
3625
template
<
typename
...>
3626
friend
struct
map_list
;
3627
template
<
typename
...>
3628
friend
struct
multi_aff
;
3629
template
<
typename
...>
3630
friend
struct
multi_id
;
3631
template
<
typename
...>
3632
friend
struct
multi_pw_aff
;
3633
template
<
typename
...>
3634
friend
struct
multi_union_pw_aff
;
3635
template
<
typename
...>
3636
friend
struct
multi_val
;
3637
template
<
typename
...>
3638
friend
struct
point
;
3639
template
<
typename
...>
3640
friend
struct
pw_aff
;
3641
template
<
typename
...>
3642
friend
struct
pw_aff_list
;
3643
template
<
typename
...>
3644
friend
struct
pw_multi_aff
;
3645
template
<
typename
...>
3646
friend
struct
pw_multi_aff_list
;
3647
template
<
typename
...>
3648
friend
struct
set
;
3649
template
<
typename
...>
3650
friend
struct
set_list
;
3651
template
<
typename
...>
3652
friend
struct
space
;
3653
template
<
typename
...>
3654
friend
struct
union_map
;
3655
template
<
typename
...>
3656
friend
struct
union_pw_aff
;
3657
template
<
typename
...>
3658
friend
struct
union_pw_aff_list
;
3659
template
<
typename
...>
3660
friend
struct
union_pw_multi_aff
;
3661
template
<
typename
...>
3662
friend
struct
union_set
;
3663
template
<
typename
...>
3664
friend
struct
union_set_list
;
3665
template
<
typename
...>
3666
friend
struct
val
;
3667
template
<
typename
...>
3668
friend
struct
val_list
;
3669
3670
map
() =
default
;
3671
template
<
typename
Arg1,
3672
typename
std::enable_if<
3673
std::is_base_of<Domain, Arg1>{},
3674
bool
>
::type
=
true
>
3675
map
(
const
map<Arg1, Arg1>
&
obj
) :
isl
::
map
(
obj
) {}
3676
private
:
3677
template
<
typename
base,
3678
typename
std::enable_if<
3679
std::is_same<base, isl::map>{},
bool
>
::type
=
true
>
3680
map
(
const
base &
obj
) :
isl
::
map
(
obj
) {}
3681
public
:
3682
static
map
from
(
const
isl::map
&
obj
) {
3683
return
map
(
obj
);
3684
}
3685
inline
/* implicit */
map
(
const
typed::basic_map<Domain, Domain>
&bmap);
3686
inline
explicit
map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
3687
template
<
typename
Domain2>
3688
inline
typed::map<Domain2, Domain>
apply_domain
(
const
typed::map<Domain, Domain2>
&
map2
)
const
;
3689
template
<
typename
Domain2>
3690
inline
typed::union_map<Domain2, Domain>
apply_domain
(
const
typed::union_map<Domain, Domain2>
&umap2)
const
;
3691
template
<
typename
Domain2>
3692
inline
typed::map<Domain2, Domain>
apply_domain
(
const
typed::basic_map<Domain, Domain2>
&
map2
)
const
;
3693
template
<
typename
Range2>
3694
inline
typed::map<Domain, Range2>
apply_range
(
const
typed::map<Domain, Range2>
&
map2
)
const
;
3695
template
<
typename
Range2>
3696
inline
typed::union_map<Domain, Range2>
apply_range
(
const
typed::union_map<Domain, Range2>
&umap2)
const
;
3697
template
<
typename
Range2>
3698
inline
typed::map<Domain, Range2>
apply_range
(
const
typed::basic_map<Domain, Range2>
&
map2
)
const
;
3699
inline
typed::map<Domain, Domain>
as_map
()
const
;
3700
inline
typed::multi_union_pw_aff<Domain, Domain>
as_multi_union_pw_aff
()
const
;
3701
inline
typed::pw_multi_aff<Domain, Domain>
as_pw_multi_aff
()
const
;
3702
inline
typed::union_pw_multi_aff<Domain, Domain>
as_union_pw_multi_aff
()
const
;
3703
inline
typed::set<Domain>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
3704
inline
typed::set<Domain>
bind_range
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
3705
inline
typed::map<Domain, Domain>
coalesce
()
const
;
3706
inline
typed::map<Domain, Domain>
curry
()
const
=
delete
;
3707
inline
typed::set<Domain>
deltas
()
const
;
3708
inline
typed::map<Domain, Domain>
detect_equalities
()
const
;
3709
inline
typed::set<Domain>
domain
()
const
;
3710
inline
typed::map<Domain, Domain>
domain_factor_domain
()
const
=
delete
;
3711
inline
typed::map<Domain, Domain>
domain_factor_range
()
const
=
delete
;
3712
inline
typed::union_map<pair<Domain, Domain>
,
Domain
>
domain_map
()
const
;
3713
inline
typed::union_pw_multi_aff<pair<Domain, Domain>
,
Domain
>
domain_map_union_pw_multi_aff
()
const
;
3714
template
<
typename
Domain2>
3715
inline
typed::map<pair<Domain, Domain2>
,
Domain
>
domain_product
(
const
typed::map<Domain2, Domain>
&
map2
)
const
;
3716
template
<
typename
Domain2>
3717
inline
typed::union_map<pair<Domain, Domain2>
,
Domain
>
domain_product
(
const
typed::union_map<Domain2, Domain>
&umap2)
const
;
3718
template
<
typename
Domain2>
3719
inline
typed::map<pair<Domain, Domain2>
,
Domain
>
domain_product
(
const
typed::basic_map<Domain2, Domain>
&
map2
)
const
;
3720
inline
typed::map<Domain, Domain>
domain_reverse
()
const
=
delete
;
3721
inline
typed::id<Domain, Domain>
get_domain_tuple_id
()
const
=
delete
;
3722
inline
typed::map<Domain, Domain>
drop_unused_params
()
const
;
3723
template
<
typename
Range>
3724
inline
typed::map<Domain, Domain>
eq_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
3725
template
<
typename
Range>
3726
inline
typed::union_map<Domain, Domain>
eq_at
(
const
typed::multi_union_pw_aff<Domain, Range>
&
mupa
)
const
;
3727
inline
typed::map<Domain, Domain>
eq_at
(
const
typed::aff<Domain, Anonymous>
&mpa)
const
;
3728
template
<
typename
Range>
3729
inline
typed::map<Domain, Domain>
eq_at
(
const
typed::multi_aff<Domain, Range>
&mpa)
const
;
3730
inline
typed::map<Domain, Domain>
eq_at
(
const
typed::pw_aff<Domain, Anonymous>
&mpa)
const
;
3731
template
<
typename
Range>
3732
inline
typed::map<Domain, Domain>
eq_at
(
const
typed::pw_multi_aff<Domain, Range>
&mpa)
const
;
3733
inline
bool
every_map
(
const
std::function<
bool
(
typed::map<Domain, Domain>
)> &
test
)
const
;
3734
inline
typed::map<Domain, Domain>
extract_map
(
const
typed::space<Domain, Domain>
&
space
)
const
;
3735
inline
typed::map<Domain, Domain>
flatten_domain
()
const
=
delete
;
3736
inline
typed::map<Domain, Domain>
flatten_range
()
const
=
delete
;
3737
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map<Domain, Domain>
)> &
fn
)
const
;
3738
inline
void
foreach_map
(
const
std::function<
void
(
typed::map<Domain, Domain>
)> &
fn
)
const
;
3739
inline
typed::map<Domain, Domain>
gist
(
const
typed::map<Domain, Domain>
&
context
)
const
;
3740
inline
typed::union_map<Domain, Domain>
gist
(
const
typed::union_map<Domain, Domain>
&
context
)
const
;
3741
inline
typed::map<Domain, Domain>
gist
(
const
typed::basic_map<Domain, Domain>
&
context
)
const
;
3742
inline
typed::map<Domain, Domain>
gist_domain
(
const
typed::set<Domain>
&
context
)
const
;
3743
inline
typed::union_map<Domain, Domain>
gist_domain
(
const
typed::union_set<Domain>
&uset)
const
;
3744
inline
typed::map<Domain, Domain>
gist_domain
(
const
typed::basic_set<Domain>
&
context
)
const
;
3745
inline
typed::map<Domain, Domain>
gist_domain
(
const
typed::point<Domain>
&
context
)
const
;
3746
inline
typed::map<Domain, Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
3747
inline
typed::map<Domain, Domain>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
3748
inline
typed::map<Domain, Domain>
gist_params
(
const
typed::point<>
&
context
)
const
;
3749
inline
typed::map<Domain, Domain>
intersect
(
const
typed::map<Domain, Domain>
&
map2
)
const
;
3750
inline
typed::union_map<Domain, Domain>
intersect
(
const
typed::union_map<Domain, Domain>
&umap2)
const
;
3751
inline
typed::map<Domain, Domain>
intersect
(
const
typed::basic_map<Domain, Domain>
&
map2
)
const
;
3752
inline
typed::map<Domain, Domain>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
3753
inline
typed::union_map<Domain, Domain>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
3754
inline
typed::union_map<Domain, Domain>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
3755
inline
typed::map<Domain, Domain>
intersect_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
3756
inline
typed::map<Domain, Domain>
intersect_domain
(
const
typed::point<Domain>
&
set
)
const
;
3757
inline
typed::map<Domain, Domain>
intersect_domain_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
3758
inline
typed::union_map<Domain, Domain>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
3759
inline
typed::map<Domain, Domain>
intersect_domain_wrapped_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
3760
inline
typed::map<Domain, Domain>
intersect_domain_wrapped_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
3761
inline
typed::map<Domain, Domain>
intersect_params
(
const
typed::set<>
&
params
)
const
;
3762
inline
typed::map<Domain, Domain>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
3763
inline
typed::map<Domain, Domain>
intersect_params
(
const
typed::point<>
&
params
)
const
;
3764
inline
typed::map<Domain, Domain>
intersect_range
(
const
typed::set<Domain>
&
set
)
const
;
3765
inline
typed::union_map<Domain, Domain>
intersect_range
(
const
typed::space<Domain>
&
space
)
const
;
3766
inline
typed::union_map<Domain, Domain>
intersect_range
(
const
typed::union_set<Domain>
&uset)
const
;
3767
inline
typed::map<Domain, Domain>
intersect_range
(
const
typed::basic_set<Domain>
&
set
)
const
;
3768
inline
typed::map<Domain, Domain>
intersect_range
(
const
typed::point<Domain>
&
set
)
const
;
3769
inline
typed::map<Domain, Domain>
intersect_range_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
3770
inline
typed::union_map<Domain, Domain>
intersect_range_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
3771
inline
typed::map<Domain, Domain>
intersect_range_wrapped_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
3772
inline
typed::map<Domain, Domain>
intersect_range_wrapped_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
3773
template
<
typename
Range>
3774
inline
typed::map<Domain, Domain>
lex_ge_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
3775
inline
typed::map<Domain, Domain>
lex_ge_at
(
const
typed::aff<Domain, Anonymous>
&mpa)
const
;
3776
template
<
typename
Range>
3777
inline
typed::map<Domain, Domain>
lex_ge_at
(
const
typed::multi_aff<Domain, Range>
&mpa)
const
;
3778
inline
typed::map<Domain, Domain>
lex_ge_at
(
const
typed::pw_aff<Domain, Anonymous>
&mpa)
const
;
3779
template
<
typename
Range>
3780
inline
typed::map<Domain, Domain>
lex_ge_at
(
const
typed::pw_multi_aff<Domain, Range>
&mpa)
const
;
3781
template
<
typename
Range>
3782
inline
typed::map<Domain, Domain>
lex_gt_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
3783
inline
typed::map<Domain, Domain>
lex_gt_at
(
const
typed::aff<Domain, Anonymous>
&mpa)
const
;
3784
template
<
typename
Range>
3785
inline
typed::map<Domain, Domain>
lex_gt_at
(
const
typed::multi_aff<Domain, Range>
&mpa)
const
;
3786
inline
typed::map<Domain, Domain>
lex_gt_at
(
const
typed::pw_aff<Domain, Anonymous>
&mpa)
const
;
3787
template
<
typename
Range>
3788
inline
typed::map<Domain, Domain>
lex_gt_at
(
const
typed::pw_multi_aff<Domain, Range>
&mpa)
const
;
3789
template
<
typename
Range>
3790
inline
typed::map<Domain, Domain>
lex_le_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
3791
inline
typed::map<Domain, Domain>
lex_le_at
(
const
typed::aff<Domain, Anonymous>
&mpa)
const
;
3792
template
<
typename
Range>
3793
inline
typed::map<Domain, Domain>
lex_le_at
(
const
typed::multi_aff<Domain, Range>
&mpa)
const
;
3794
inline
typed::map<Domain, Domain>
lex_le_at
(
const
typed::pw_aff<Domain, Anonymous>
&mpa)
const
;
3795
template
<
typename
Range>
3796
inline
typed::map<Domain, Domain>
lex_le_at
(
const
typed::pw_multi_aff<Domain, Range>
&mpa)
const
;
3797
template
<
typename
Range>
3798
inline
typed::map<Domain, Domain>
lex_lt_at
(
const
typed::multi_pw_aff<Domain, Range>
&mpa)
const
;
3799
inline
typed::map<Domain, Domain>
lex_lt_at
(
const
typed::aff<Domain, Anonymous>
&mpa)
const
;
3800
template
<
typename
Range>
3801
inline
typed::map<Domain, Domain>
lex_lt_at
(
const
typed::multi_aff<Domain, Range>
&mpa)
const
;
3802
inline
typed::map<Domain, Domain>
lex_lt_at
(
const
typed::pw_aff<Domain, Anonymous>
&mpa)
const
;
3803
template
<
typename
Range>
3804
inline
typed::map<Domain, Domain>
lex_lt_at
(
const
typed::pw_multi_aff<Domain, Range>
&mpa)
const
;
3805
inline
typed::map<Domain, Domain>
lexmax
()
const
;
3806
inline
typed::pw_multi_aff<Domain, Domain>
lexmax_pw_multi_aff
()
const
;
3807
inline
typed::map<Domain, Domain>
lexmin
()
const
;
3808
inline
typed::pw_multi_aff<Domain, Domain>
lexmin_pw_multi_aff
()
const
;
3809
inline
typed::map<Domain, Domain>
lower_bound
(
const
typed::multi_pw_aff<Domain, Domain>
&lower)
const
;
3810
inline
typed::map<Domain, Domain>
lower_bound
(
const
typed::aff<Domain, Domain>
&lower)
const
;
3811
inline
typed::map<Domain, Domain>
lower_bound
(
const
typed::multi_aff<Domain, Domain>
&lower)
const
;
3812
inline
typed::map<Domain, Domain>
lower_bound
(
const
typed::pw_aff<Domain, Domain>
&lower)
const
;
3813
inline
typed::map<Domain, Domain>
lower_bound
(
const
typed::pw_multi_aff<Domain, Domain>
&lower)
const
;
3814
inline
typed::map_list<Domain, Domain>
map_list
()
const
;
3815
inline
typed::multi_pw_aff<Domain, Domain>
max_multi_pw_aff
()
const
;
3816
inline
typed::multi_pw_aff<Domain, Domain>
min_multi_pw_aff
()
const
;
3817
inline
typed::set<>
params
()
const
;
3818
template
<
typename
Domain2>
3819
inline
typed::map<Domain2, Domain>
preimage_domain
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
3820
template
<
typename
Domain2>
3821
inline
typed::map<Domain2, Domain>
preimage_domain
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
3822
template
<
typename
Domain2>
3823
inline
typed::map<Domain2, Domain>
preimage_domain
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
3824
template
<
typename
Domain2>
3825
inline
typed::union_map<Domain2, Domain>
preimage_domain
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
3826
template
<
typename
Range2>
3827
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::multi_aff<Range2, Domain>
&
ma
)
const
;
3828
template
<
typename
Range2>
3829
inline
typed::map<Domain, Range2>
preimage_range
(
const
typed::pw_multi_aff<Range2, Domain>
&
pma
)
const
;
3830
template
<
typename
Range2>
3831
inline
typed::union_map<Domain, Range2>
preimage_range
(
const
typed::union_pw_multi_aff<Range2, Domain>
&upma)
const
;
3832
template
<
typename
Domain2,
typename
Range2>
3833
inline
typed::map<pair<Domain, Domain2>
,
pair<Domain, Range2>
>
product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
3834
template
<
typename
Domain2,
typename
Range2>
3835
inline
typed::union_map<pair<Domain, Domain2>
,
pair<Domain, Range2>
>
product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
3836
template
<
typename
Domain2,
typename
Range2>
3837
inline
typed::map<pair<Domain, Domain2>
,
pair<Domain, Range2>
>
product
(
const
typed::basic_map<Domain2, Range2>
&
map2
)
const
;
3838
inline
typed::map<Domain, Domain>
project_out_all_params
()
const
;
3839
inline
typed::map<Domain, Domain>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
3840
inline
typed::map<Domain, Domain>
project_out_param
(
const
std::string &
id
)
const
;
3841
inline
typed::map<Domain, Domain>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
3842
inline
typed::set<Domain>
range
()
const
;
3843
inline
typed::map<Domain, Domain>
range_factor_domain
()
const
=
delete
;
3844
inline
typed::map<Domain, Domain>
range_factor_range
()
const
=
delete
;
3845
inline
typed::fixed_box<Domain, Domain>
range_lattice_tile
()
const
;
3846
inline
typed::fixed_box<Domain, Domain>
get_range_lattice_tile
()
const
=
delete
;
3847
inline
typed::union_map<pair<Domain, Domain>
,
Domain
>
range_map
()
const
;
3848
template
<
typename
Range2>
3849
inline
typed::map<Domain, pair<Domain, Range2>
>
range_product
(
const
typed::map<Domain, Range2>
&
map2
)
const
;
3850
template
<
typename
Range2>
3851
inline
typed::union_map<Domain, pair<Domain, Range2>
>
range_product
(
const
typed::union_map<Domain, Range2>
&umap2)
const
;
3852
template
<
typename
Range2>
3853
inline
typed::map<Domain, pair<Domain, Range2>
>
range_product
(
const
typed::basic_map<Domain, Range2>
&
map2
)
const
;
3854
inline
typed::map<Domain, Domain>
range_reverse
()
const
=
delete
;
3855
inline
typed::fixed_box<Domain, Domain>
range_simple_fixed_box_hull
()
const
;
3856
inline
typed::fixed_box<Domain, Domain>
get_range_simple_fixed_box_hull
()
const
=
delete
;
3857
inline
typed::id<Domain, Domain>
get_range_tuple_id
()
const
=
delete
;
3858
inline
typed::map<Domain, Domain>
reverse
()
const
;
3859
template
<
typename
Domain2>
3860
inline
typed::map<Domain2, Domain>
set_domain_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
3861
template
<
typename
Domain2>
3862
inline
typed::map<Domain2, Domain>
set_domain_tuple
(
const
std::string &
id
)
const
;
3863
template
<
typename
Range2>
3864
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
3865
template
<
typename
Range2>
3866
inline
typed::map<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
3867
inline
typed::space<Domain, Domain>
space
()
const
;
3868
inline
typed::space<Domain, Domain>
get_space
()
const
=
delete
;
3869
inline
typed::map<Domain, Domain>
subtract
(
const
typed::map<Domain, Domain>
&
map2
)
const
;
3870
inline
typed::union_map<Domain, Domain>
subtract
(
const
typed::union_map<Domain, Domain>
&umap2)
const
;
3871
inline
typed::map<Domain, Domain>
subtract
(
const
typed::basic_map<Domain, Domain>
&
map2
)
const
;
3872
inline
typed::union_map<Domain, Domain>
subtract_domain
(
const
typed::union_set<Domain>
&dom)
const
;
3873
inline
typed::union_map<Domain, Domain>
subtract_range
(
const
typed::union_set<Domain>
&dom)
const
;
3874
inline
typed::union_map<Domain, Domain>
to_union_map
()
const
;
3875
inline
typed::map<Domain, Domain>
uncurry
()
const
=
delete
;
3876
inline
typed::map<Domain, Domain>
unite
(
const
typed::map<Domain, Domain>
&
map2
)
const
;
3877
inline
typed::union_map<Domain, Domain>
unite
(
const
typed::union_map<Domain, Domain>
&umap2)
const
;
3878
inline
typed::map<Domain, Domain>
unite
(
const
typed::basic_map<Domain, Domain>
&
map2
)
const
;
3879
static
inline
typed::map<Domain, Domain>
universe
(
const
typed::space<Domain, Domain>
&
space
);
3880
inline
typed::map<Domain, Domain>
upper_bound
(
const
typed::multi_pw_aff<Domain, Domain>
&upper)
const
;
3881
inline
typed::map<Domain, Domain>
upper_bound
(
const
typed::aff<Domain, Domain>
&upper)
const
;
3882
inline
typed::map<Domain, Domain>
upper_bound
(
const
typed::multi_aff<Domain, Domain>
&upper)
const
;
3883
inline
typed::map<Domain, Domain>
upper_bound
(
const
typed::pw_aff<Domain, Domain>
&upper)
const
;
3884
inline
typed::map<Domain, Domain>
upper_bound
(
const
typed::pw_multi_aff<Domain, Domain>
&upper)
const
;
3885
inline
typed::set<pair<Domain, Domain>
>
wrap
()
const
;
3886
};
3887
3888
template
<
typename
Domain,
typename
Range,
typename
Range2>
3889
struct
map
<
Domain
,
pair
<
Range
,
Range2
>> :
public
isl::map
{
3890
template
<
typename
...>
3891
friend
struct
aff
;
3892
template
<
typename
...>
3893
friend
struct
aff_list
;
3894
template
<
typename
...>
3895
friend
struct
basic_map
;
3896
template
<
typename
...>
3897
friend
struct
basic_set
;
3898
template
<
typename
...>
3899
friend
struct
fixed_box
;
3900
template
<
typename
...>
3901
friend
struct
id
;
3902
template
<
typename
...>
3903
friend
struct
id_list
;
3904
template
<
typename
...>
3905
friend
struct
map
;
3906
template
<
typename
...>
3907
friend
struct
map_list
;
3908
template
<
typename
...>
3909
friend
struct
multi_aff
;
3910
template
<
typename
...>
3911
friend
struct
multi_id
;
3912
template
<
typename
...>
3913
friend
struct
multi_pw_aff
;
3914
template
<
typename
...>
3915
friend
struct
multi_union_pw_aff
;
3916
template
<
typename
...>
3917
friend
struct
multi_val
;
3918
template
<
typename
...>
3919
friend
struct
point
;
3920
template
<
typename
...>
3921
friend
struct
pw_aff
;
3922
template
<
typename
...>
3923
friend
struct
pw_aff_list
;
3924
template
<
typename
...>
3925
friend
struct
pw_multi_aff
;
3926
template
<
typename
...>
3927
friend
struct
pw_multi_aff_list
;
3928
template
<
typename
...>
3929
friend
struct
set
;
3930
template
<
typename
...>
3931
friend
struct
set_list
;
3932
template
<
typename
...>
3933
friend
struct
space
;
3934
template
<
typename
...>
3935
friend
struct
union_map
;
3936
template
<
typename
...>
3937
friend
struct
union_pw_aff
;
3938
template
<
typename
...>
3939
friend
struct
union_pw_aff_list
;
3940
template
<
typename
...>
3941
friend
struct
union_pw_multi_aff
;
3942
template
<
typename
...>
3943
friend
struct
union_set
;
3944
template
<
typename
...>
3945
friend
struct
union_set_list
;
3946
template
<
typename
...>
3947
friend
struct
val
;
3948
template
<
typename
...>
3949
friend
struct
val_list
;
3950
3951
map
() =
default
;
3952
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
3953
typename
std::enable_if<
3954
std::is_base_of<Domain, Arg1>{} &&
3955
std::is_base_of<Range, Arg2>{} &&
3956
std::is_base_of<Range2, Arg3>{},
3957
bool
>
::type
=
true
>
3958
map
(
const
map
<Arg1,
pair<Arg2, Arg3>
> &
obj
) :
isl
::
map
(
obj
) {}
3959
private
:
3960
template
<
typename
base,
3961
typename
std::enable_if<
3962
std::is_same<base, isl::map>{},
bool
>
::type
=
true
>
3963
map
(
const
base &
obj
) :
isl
::
map
(
obj
) {}
3964
public
:
3965
static
map
from
(
const
isl::map
&
obj
) {
3966
return
map
(
obj
);
3967
}
3968
inline
/* implicit */
map
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &bmap);
3969
inline
explicit
map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
3970
template
<
typename
Domain2>
3971
inline
typed::map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::map<Domain, Domain2>
&
map2
)
const
;
3972
template
<
typename
Domain2>
3973
inline
typed::union_map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::union_map<Domain, Domain2>
&umap2)
const
;
3974
template
<
typename
Domain2>
3975
inline
typed::map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::basic_map<Domain, Domain2>
&
map2
)
const
;
3976
template
<
typename
Arg3>
3977
inline
typed::map<Domain, Arg3>
apply_range
(
const
typed::map
<
pair<Range, Range2>
, Arg3> &
map2
)
const
;
3978
template
<
typename
Arg3>
3979
inline
typed::union_map<Domain, Arg3>
apply_range
(
const
typed::union_map
<
pair<Range, Range2>
, Arg3> &umap2)
const
;
3980
template
<
typename
Arg3>
3981
inline
typed::map<Domain, Arg3>
apply_range
(
const
typed::basic_map
<
pair<Range, Range2>
, Arg3> &
map2
)
const
;
3982
inline
typed::map<Domain, pair<Range, Range2>
>
as_map
()
const
;
3983
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
3984
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
3985
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
as_union_pw_multi_aff
()
const
;
3986
inline
typed::set<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
3987
inline
typed::set<Domain>
bind_range
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
3988
inline
typed::map<Domain, pair<Range, Range2>
>
coalesce
()
const
;
3989
inline
typed::map<Domain, pair<Range, Range2>
>
curry
()
const
=
delete
;
3990
inline
typed::set<Domain, pair<Range, Range2>
>
deltas
()
const
=
delete
;
3991
inline
typed::map<Domain, pair<Range, Range2>
>
detect_equalities
()
const
;
3992
inline
typed::set<Domain>
domain
()
const
;
3993
inline
typed::map<Domain, pair<Range, Range2>
>
domain_factor_domain
()
const
=
delete
;
3994
inline
typed::map<Domain, pair<Range, Range2>
>
domain_factor_range
()
const
=
delete
;
3995
inline
typed::union_map<pair<Domain, pair<Range, Range2>
>,
Domain
>
domain_map
()
const
;
3996
inline
typed::union_pw_multi_aff<pair<Domain, pair<Range, Range2>
>,
Domain
>
domain_map_union_pw_multi_aff
()
const
;
3997
template
<
typename
Domain2>
3998
inline
typed::map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
domain_product
(
const
typed::map
<
Domain2
,
pair<Range, Range2>
> &
map2
)
const
;
3999
template
<
typename
Domain2>
4000
inline
typed::union_map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
domain_product
(
const
typed::union_map
<
Domain2
,
pair<Range, Range2>
> &umap2)
const
;
4001
template
<
typename
Domain2>
4002
inline
typed::map<pair<Domain, Domain2>
,
pair<Range, Range2>
>
domain_product
(
const
typed::basic_map
<
Domain2
,
pair<Range, Range2>
> &
map2
)
const
;
4003
inline
typed::map<Domain, pair<Range, Range2>
>
domain_reverse
()
const
=
delete
;
4004
inline
typed::id<Domain, pair<Range, Range2>
>
get_domain_tuple_id
()
const
=
delete
;
4005
inline
typed::map<Domain, pair<Range, Range2>
>
drop_unused_params
()
const
;
4006
inline
typed::map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4007
inline
typed::union_map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
4008
inline
typed::map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4009
inline
typed::map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4010
inline
typed::map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4011
inline
typed::map<Domain, pair<Range, Range2>
>
eq_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4012
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
Domain
,
pair<Range, Range2>
>)> &
test
)
const
;
4013
inline
typed::map<Domain, pair<Range, Range2>
>
extract_map
(
const
typed::space
<
Domain
,
pair<Range, Range2>
> &
space
)
const
;
4014
inline
typed::map<Domain, pair<Range, Range2>
>
flatten_domain
()
const
=
delete
;
4015
inline
typed::map<Domain, Anonymous>
flatten_range
()
const
;
4016
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
Domain
,
pair<Range, Range2>
>)> &
fn
)
const
;
4017
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
Domain
,
pair<Range, Range2>
>)> &
fn
)
const
;
4018
inline
typed::map<Domain, pair<Range, Range2>
>
gist
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
context
)
const
;
4019
inline
typed::union_map<Domain, pair<Range, Range2>
>
gist
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &
context
)
const
;
4020
inline
typed::map<Domain, pair<Range, Range2>
>
gist
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &
context
)
const
;
4021
inline
typed::map<Domain, pair<Range, Range2>
>
gist_domain
(
const
typed::set<Domain>
&
context
)
const
;
4022
inline
typed::union_map<Domain, pair<Range, Range2>
>
gist_domain
(
const
typed::union_set<Domain>
&uset)
const
;
4023
inline
typed::map<Domain, pair<Range, Range2>
>
gist_domain
(
const
typed::basic_set<Domain>
&
context
)
const
;
4024
inline
typed::map<Domain, pair<Range, Range2>
>
gist_domain
(
const
typed::point<Domain>
&
context
)
const
;
4025
inline
typed::map<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
4026
inline
typed::map<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
4027
inline
typed::map<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::point<>
&
context
)
const
;
4028
inline
typed::map<Domain, pair<Range, Range2>
>
intersect
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
4029
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &umap2)
const
;
4030
inline
typed::map<Domain, pair<Range, Range2>
>
intersect
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
4031
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
4032
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
4033
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
4034
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
4035
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::point<Domain>
&
set
)
const
;
4036
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
4037
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&
domain
)
const
=
delete
;
4038
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
4039
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
4040
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
4041
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
4042
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::point<>
&
params
)
const
;
4043
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::set
<
pair<Range, Range2>
> &
set
)
const
;
4044
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::space
<
pair<Range, Range2>
> &
space
)
const
;
4045
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::union_set
<
pair<Range, Range2>
> &uset)
const
;
4046
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::basic_set
<
pair<Range, Range2>
> &
set
)
const
;
4047
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range
(
const
typed::point
<
pair<Range, Range2>
> &
set
)
const
;
4048
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::set<Range>
&
domain
)
const
;
4049
inline
typed::union_map<Domain, pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::union_set<Range>
&
domain
)
const
;
4050
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::basic_set<Range>
&
domain
)
const
;
4051
inline
typed::map<Domain, pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::point<Range>
&
domain
)
const
;
4052
inline
typed::map<Domain, pair<Range, Range2>
>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4053
inline
typed::map<Domain, pair<Range, Range2>
>
lex_ge_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4054
inline
typed::map<Domain, pair<Range, Range2>
>
lex_ge_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4055
inline
typed::map<Domain, pair<Range, Range2>
>
lex_ge_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4056
inline
typed::map<Domain, pair<Range, Range2>
>
lex_ge_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4057
inline
typed::map<Domain, pair<Range, Range2>
>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4058
inline
typed::map<Domain, pair<Range, Range2>
>
lex_gt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4059
inline
typed::map<Domain, pair<Range, Range2>
>
lex_gt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4060
inline
typed::map<Domain, pair<Range, Range2>
>
lex_gt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4061
inline
typed::map<Domain, pair<Range, Range2>
>
lex_gt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4062
inline
typed::map<Domain, pair<Range, Range2>
>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4063
inline
typed::map<Domain, pair<Range, Range2>
>
lex_le_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4064
inline
typed::map<Domain, pair<Range, Range2>
>
lex_le_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4065
inline
typed::map<Domain, pair<Range, Range2>
>
lex_le_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4066
inline
typed::map<Domain, pair<Range, Range2>
>
lex_le_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4067
inline
typed::map<Domain, pair<Range, Range2>
>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4068
inline
typed::map<Domain, pair<Range, Range2>
>
lex_lt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4069
inline
typed::map<Domain, pair<Range, Range2>
>
lex_lt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4070
inline
typed::map<Domain, pair<Range, Range2>
>
lex_lt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4071
inline
typed::map<Domain, pair<Range, Range2>
>
lex_lt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4072
inline
typed::map<Domain, pair<Range, Range2>
>
lexmax
()
const
;
4073
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
lexmax_pw_multi_aff
()
const
;
4074
inline
typed::map<Domain, pair<Range, Range2>
>
lexmin
()
const
;
4075
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
lexmin_pw_multi_aff
()
const
;
4076
inline
typed::map<Domain, pair<Range, Range2>
>
lower_bound
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &lower)
const
;
4077
inline
typed::map<Domain, pair<Range, Range2>
>
lower_bound
(
const
typed::aff
<
Domain
,
pair<Range, Range2>
> &lower)
const
;
4078
inline
typed::map<Domain, pair<Range, Range2>
>
lower_bound
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &lower)
const
;
4079
inline
typed::map<Domain, pair<Range, Range2>
>
lower_bound
(
const
typed::pw_aff
<
Domain
,
pair<Range, Range2>
> &lower)
const
;
4080
inline
typed::map<Domain, pair<Range, Range2>
>
lower_bound
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &lower)
const
;
4081
inline
typed::map_list<Domain, pair<Range, Range2>
>
map_list
()
const
;
4082
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
max_multi_pw_aff
()
const
;
4083
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
min_multi_pw_aff
()
const
;
4084
inline
typed::set<>
params
()
const
;
4085
template
<
typename
Domain2>
4086
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
4087
template
<
typename
Domain2>
4088
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
4089
template
<
typename
Domain2>
4090
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
4091
template
<
typename
Domain2>
4092
inline
typed::union_map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
4093
template
<
typename
Arg3>
4094
inline
typed::map<Domain, Arg3>
preimage_range
(
const
typed::multi_aff
<Arg3,
pair<Range, Range2>
> &
ma
)
const
;
4095
template
<
typename
Arg3>
4096
inline
typed::map<Domain, Arg3>
preimage_range
(
const
typed::pw_multi_aff
<Arg3,
pair<Range, Range2>
> &
pma
)
const
;
4097
template
<
typename
Arg3>
4098
inline
typed::union_map<Domain, Arg3>
preimage_range
(
const
typed::union_pw_multi_aff
<Arg3,
pair<Range, Range2>
> &upma)
const
;
4099
template
<
typename
Domain2,
typename
Arg3>
4100
inline
typed::map<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::map<Domain2, Arg3>
&
map2
)
const
;
4101
template
<
typename
Domain2,
typename
Arg3>
4102
inline
typed::union_map<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::union_map<Domain2, Arg3>
&umap2)
const
;
4103
template
<
typename
Domain2,
typename
Arg3>
4104
inline
typed::map<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::basic_map<Domain2, Arg3>
&
map2
)
const
;
4105
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_all_params
()
const
;
4106
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
4107
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_param
(
const
std::string &
id
)
const
;
4108
inline
typed::map<Domain, pair<Range, Range2>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
4109
inline
typed::set<pair<Range, Range2>
>
range
()
const
;
4110
inline
typed::map<Domain, Range>
range_factor_domain
()
const
;
4111
inline
typed::map<Domain, Range2>
range_factor_range
()
const
;
4112
inline
typed::fixed_box<Domain, pair<Range, Range2>
>
range_lattice_tile
()
const
;
4113
inline
typed::fixed_box<Domain, pair<Range, Range2>
>
get_range_lattice_tile
()
const
=
delete
;
4114
inline
typed::union_map<pair<Domain, pair<Range, Range2>
>,
pair<Range, Range2>
>
range_map
()
const
;
4115
template
<
typename
Arg3>
4116
inline
typed::map<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::map<Domain, Arg3>
&
map2
)
const
;
4117
template
<
typename
Arg3>
4118
inline
typed::union_map<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::union_map<Domain, Arg3>
&umap2)
const
;
4119
template
<
typename
Arg3>
4120
inline
typed::map<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::basic_map<Domain, Arg3>
&
map2
)
const
;
4121
inline
typed::map<Domain, pair<Range2, Range>
>
range_reverse
()
const
;
4122
inline
typed::fixed_box<Domain, pair<Range, Range2>
>
range_simple_fixed_box_hull
()
const
;
4123
inline
typed::fixed_box<Domain, pair<Range, Range2>
>
get_range_simple_fixed_box_hull
()
const
=
delete
;
4124
inline
typed::id<Domain, pair<Range, Range2>
>
get_range_tuple_id
()
const
=
delete
;
4125
inline
typed::map<pair<Range, Range2>
,
Domain
>
reverse
()
const
;
4126
template
<
typename
Domain2>
4127
inline
typed::map<Domain2, pair<Range, Range2>
>
set_domain_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
4128
template
<
typename
Domain2>
4129
inline
typed::map<Domain2, pair<Range, Range2>
>
set_domain_tuple
(
const
std::string &
id
)
const
;
4130
inline
typed::map<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
4131
inline
typed::map<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
4132
inline
typed::space<Domain, pair<Range, Range2>
>
space
()
const
;
4133
inline
typed::space<Domain, pair<Range, Range2>
>
get_space
()
const
=
delete
;
4134
inline
typed::map<Domain, pair<Range, Range2>
>
subtract
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
4135
inline
typed::union_map<Domain, pair<Range, Range2>
>
subtract
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &umap2)
const
;
4136
inline
typed::map<Domain, pair<Range, Range2>
>
subtract
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
4137
inline
typed::union_map<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set<Domain>
&dom)
const
;
4138
inline
typed::union_map<Domain, pair<Range, Range2>
>
subtract_range
(
const
typed::union_set
<
pair<Range, Range2>
> &dom)
const
;
4139
inline
typed::union_map<Domain, pair<Range, Range2>
>
to_union_map
()
const
;
4140
inline
typed::map<pair<Domain, Range>
,
Range2
>
uncurry
()
const
;
4141
inline
typed::map<Domain, pair<Range, Range2>
>
unite
(
const
typed::map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
4142
inline
typed::union_map<Domain, pair<Range, Range2>
>
unite
(
const
typed::union_map
<
Domain
,
pair<Range, Range2>
> &umap2)
const
;
4143
inline
typed::map<Domain, pair<Range, Range2>
>
unite
(
const
typed::basic_map
<
Domain
,
pair<Range, Range2>
> &
map2
)
const
;
4144
static
inline
typed::map<Domain, pair<Range, Range2>
>
universe
(
const
typed::space
<
Domain
,
pair<Range, Range2>
> &
space
);
4145
inline
typed::map<Domain, pair<Range, Range2>
>
upper_bound
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &upper)
const
;
4146
inline
typed::map<Domain, pair<Range, Range2>
>
upper_bound
(
const
typed::aff
<
Domain
,
pair<Range, Range2>
> &upper)
const
;
4147
inline
typed::map<Domain, pair<Range, Range2>
>
upper_bound
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &upper)
const
;
4148
inline
typed::map<Domain, pair<Range, Range2>
>
upper_bound
(
const
typed::pw_aff
<
Domain
,
pair<Range, Range2>
> &upper)
const
;
4149
inline
typed::map<Domain, pair<Range, Range2>
>
upper_bound
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upper)
const
;
4150
inline
typed::set<pair<Domain, pair<Range, Range2>
>>
wrap
()
const
;
4151
};
4152
4153
template
<
typename
T1,
typename
T2>
4154
struct
map
<
pair
<T1, T2>,
pair
<T1, T2>> :
public
isl::map
{
4155
template
<
typename
...>
4156
friend
struct
aff
;
4157
template
<
typename
...>
4158
friend
struct
aff_list
;
4159
template
<
typename
...>
4160
friend
struct
basic_map
;
4161
template
<
typename
...>
4162
friend
struct
basic_set
;
4163
template
<
typename
...>
4164
friend
struct
fixed_box
;
4165
template
<
typename
...>
4166
friend
struct
id
;
4167
template
<
typename
...>
4168
friend
struct
id_list
;
4169
template
<
typename
...>
4170
friend
struct
map
;
4171
template
<
typename
...>
4172
friend
struct
map_list
;
4173
template
<
typename
...>
4174
friend
struct
multi_aff
;
4175
template
<
typename
...>
4176
friend
struct
multi_id
;
4177
template
<
typename
...>
4178
friend
struct
multi_pw_aff
;
4179
template
<
typename
...>
4180
friend
struct
multi_union_pw_aff
;
4181
template
<
typename
...>
4182
friend
struct
multi_val
;
4183
template
<
typename
...>
4184
friend
struct
point
;
4185
template
<
typename
...>
4186
friend
struct
pw_aff
;
4187
template
<
typename
...>
4188
friend
struct
pw_aff_list
;
4189
template
<
typename
...>
4190
friend
struct
pw_multi_aff
;
4191
template
<
typename
...>
4192
friend
struct
pw_multi_aff_list
;
4193
template
<
typename
...>
4194
friend
struct
set
;
4195
template
<
typename
...>
4196
friend
struct
set_list
;
4197
template
<
typename
...>
4198
friend
struct
space
;
4199
template
<
typename
...>
4200
friend
struct
union_map
;
4201
template
<
typename
...>
4202
friend
struct
union_pw_aff
;
4203
template
<
typename
...>
4204
friend
struct
union_pw_aff_list
;
4205
template
<
typename
...>
4206
friend
struct
union_pw_multi_aff
;
4207
template
<
typename
...>
4208
friend
struct
union_set
;
4209
template
<
typename
...>
4210
friend
struct
union_set_list
;
4211
template
<
typename
...>
4212
friend
struct
val
;
4213
template
<
typename
...>
4214
friend
struct
val_list
;
4215
4216
map
() =
default
;
4217
template
<
typename
Arg1,
typename
Arg2,
4218
typename
std::enable_if<
4219
std::is_base_of<T1, Arg1>{} &&
4220
std::is_base_of<T2, Arg2>{},
4221
bool
>
::type
=
true
>
4222
map
(
const
map
<
pair<Arg1, Arg2>
,
pair<Arg1, Arg2>
> &
obj
) :
isl
::
map
(
obj
) {}
4223
private
:
4224
template
<
typename
base,
4225
typename
std::enable_if<
4226
std::is_same<base, isl::map>{},
bool
>
::type
=
true
>
4227
map
(
const
base &
obj
) :
isl
::
map
(
obj
) {}
4228
public
:
4229
static
map
from
(
const
isl::map
&
obj
) {
4230
return
map
(
obj
);
4231
}
4232
inline
/* implicit */
map
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &bmap);
4233
inline
explicit
map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
4234
template
<
typename
Domain2>
4235
inline
typed::map<Domain2, pair<T1, T2>
>
apply_domain
(
const
typed::map
<
pair<T1, T2>
,
Domain2
> &
map2
)
const
;
4236
template
<
typename
Domain2>
4237
inline
typed::union_map<Domain2, pair<T1, T2>
>
apply_domain
(
const
typed::union_map
<
pair<T1, T2>
,
Domain2
> &umap2)
const
;
4238
template
<
typename
Domain2>
4239
inline
typed::map<Domain2, pair<T1, T2>
>
apply_domain
(
const
typed::basic_map
<
pair<T1, T2>
,
Domain2
> &
map2
)
const
;
4240
template
<
typename
Range2>
4241
inline
typed::map<pair<T1, T2>
,
Range2
>
apply_range
(
const
typed::map
<
pair<T1, T2>
,
Range2
> &
map2
)
const
;
4242
template
<
typename
Range2>
4243
inline
typed::union_map<pair<T1, T2>
,
Range2
>
apply_range
(
const
typed::union_map
<
pair<T1, T2>
,
Range2
> &umap2)
const
;
4244
template
<
typename
Range2>
4245
inline
typed::map<pair<T1, T2>
,
Range2
>
apply_range
(
const
typed::basic_map
<
pair<T1, T2>
,
Range2
> &
map2
)
const
;
4246
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
as_map
()
const
;
4247
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<T1, T2>
>
as_multi_union_pw_aff
()
const
;
4248
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
as_pw_multi_aff
()
const
;
4249
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
as_union_pw_multi_aff
()
const
;
4250
inline
typed::set<pair<T1, T2>
>
bind_domain
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
4251
inline
typed::set<pair<T1, T2>
>
bind_range
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
4252
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
coalesce
()
const
;
4253
inline
typed::map<T1, pair<T2, pair<T1, T2>
>>
curry
()
const
;
4254
inline
typed::set<pair<T1, T2>
>
deltas
()
const
;
4255
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
detect_equalities
()
const
;
4256
inline
typed::set<pair<T1, T2>
>
domain
()
const
;
4257
inline
typed::map<T1, pair<T1, T2>
>
domain_factor_domain
()
const
;
4258
inline
typed::map<T2, pair<T1, T2>
>
domain_factor_range
()
const
;
4259
inline
typed::union_map<pair<pair<T1, T2>
,
pair<T1, T2>
>,
pair<T1, T2>
>
domain_map
()
const
;
4260
inline
typed::union_pw_multi_aff<pair<pair<T1, T2>
,
pair<T1, T2>
>,
pair<T1, T2>
>
domain_map_union_pw_multi_aff
()
const
;
4261
template
<
typename
Domain2>
4262
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<T1, T2>
>
domain_product
(
const
typed::map
<
Domain2
,
pair<T1, T2>
> &
map2
)
const
;
4263
template
<
typename
Domain2>
4264
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<T1, T2>
>
domain_product
(
const
typed::union_map
<
Domain2
,
pair<T1, T2>
> &umap2)
const
;
4265
template
<
typename
Domain2>
4266
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<T1, T2>
>
domain_product
(
const
typed::basic_map
<
Domain2
,
pair<T1, T2>
> &
map2
)
const
;
4267
inline
typed::map<pair<T2, T1>
,
pair<T1, T2>
>
domain_reverse
()
const
;
4268
inline
typed::id<pair<T1, T2>
,
pair<T1, T2>
>
get_domain_tuple_id
()
const
=
delete
;
4269
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
drop_unused_params
()
const
;
4270
template
<
typename
Range>
4271
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4272
template
<
typename
Range>
4273
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
Range
> &
mupa
)
const
;
4274
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4275
template
<
typename
Range>
4276
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4277
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4278
template
<
typename
Range>
4279
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
eq_at
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4280
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
>)> &
test
)
const
;
4281
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
extract_map
(
const
typed::space
<
pair<T1, T2>
,
pair<T1, T2>
> &
space
)
const
;
4282
inline
typed::map<Anonymous, pair<T1, T2>
>
flatten_domain
()
const
;
4283
inline
typed::map<pair<T1, T2>
,
Anonymous
>
flatten_range
()
const
;
4284
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
>)> &
fn
)
const
;
4285
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
>)> &
fn
)
const
;
4286
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
context
)
const
;
4287
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
gist
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
context
)
const
;
4288
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
context
)
const
;
4289
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_domain
(
const
typed::set
<
pair<T1, T2>
> &
context
)
const
;
4290
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
gist_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
4291
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &
context
)
const
;
4292
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_domain
(
const
typed::point
<
pair<T1, T2>
> &
context
)
const
;
4293
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
4294
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
4295
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
gist_params
(
const
typed::point<>
&
context
)
const
;
4296
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
4297
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &umap2)
const
;
4298
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
4299
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
4300
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
4301
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
4302
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &
set
)
const
;
4303
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain
(
const
typed::point
<
pair<T1, T2>
> &
set
)
const
;
4304
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain_wrapped_domain
(
const
typed::set<T1>
&
domain
)
const
;
4305
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<T1>
&
domain
)
const
;
4306
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain_wrapped_domain
(
const
typed::basic_set<T1>
&
domain
)
const
;
4307
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_domain_wrapped_domain
(
const
typed::point<T1>
&
domain
)
const
;
4308
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
4309
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
4310
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_params
(
const
typed::point<>
&
params
)
const
;
4311
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
4312
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
4313
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
4314
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::basic_set
<
pair<T1, T2>
> &
set
)
const
;
4315
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range
(
const
typed::point
<
pair<T1, T2>
> &
set
)
const
;
4316
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range_wrapped_domain
(
const
typed::set<T1>
&
domain
)
const
;
4317
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range_wrapped_domain
(
const
typed::union_set<T1>
&
domain
)
const
;
4318
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range_wrapped_domain
(
const
typed::basic_set<T1>
&
domain
)
const
;
4319
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
intersect_range_wrapped_domain
(
const
typed::point<T1>
&
domain
)
const
;
4320
template
<
typename
Range>
4321
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_ge_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4322
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_ge_at
(
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4323
template
<
typename
Range>
4324
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_ge_at
(
const
typed::multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4325
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_ge_at
(
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4326
template
<
typename
Range>
4327
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_ge_at
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4328
template
<
typename
Range>
4329
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_gt_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4330
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_gt_at
(
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4331
template
<
typename
Range>
4332
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_gt_at
(
const
typed::multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4333
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_gt_at
(
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4334
template
<
typename
Range>
4335
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_gt_at
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4336
template
<
typename
Range>
4337
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_le_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4338
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_le_at
(
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4339
template
<
typename
Range>
4340
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_le_at
(
const
typed::multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4341
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_le_at
(
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4342
template
<
typename
Range>
4343
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_le_at
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4344
template
<
typename
Range>
4345
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_lt_at
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4346
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_lt_at
(
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4347
template
<
typename
Range>
4348
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_lt_at
(
const
typed::multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4349
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_lt_at
(
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &mpa)
const
;
4350
template
<
typename
Range>
4351
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lex_lt_at
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
Range
> &mpa)
const
;
4352
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lexmax
()
const
;
4353
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
lexmax_pw_multi_aff
()
const
;
4354
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lexmin
()
const
;
4355
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<T1, T2>
>
lexmin_pw_multi_aff
()
const
;
4356
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &lower)
const
;
4357
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lower_bound
(
const
typed::aff
<
pair<T1, T2>
,
pair<T1, T2>
> &lower)
const
;
4358
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lower_bound
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &lower)
const
;
4359
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lower_bound
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &lower)
const
;
4360
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
lower_bound
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &lower)
const
;
4361
inline
typed::map_list<pair<T1, T2>
,
pair<T1, T2>
>
map_list
()
const
;
4362
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<T1, T2>
>
max_multi_pw_aff
()
const
;
4363
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<T1, T2>
>
min_multi_pw_aff
()
const
;
4364
inline
typed::set<>
params
()
const
;
4365
template
<
typename
Domain2>
4366
inline
typed::map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::multi_aff
<
Domain2
,
pair<T1, T2>
> &
ma
)
const
;
4367
template
<
typename
Domain2>
4368
inline
typed::map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::multi_pw_aff
<
Domain2
,
pair<T1, T2>
> &mpa)
const
;
4369
template
<
typename
Domain2>
4370
inline
typed::map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &
pma
)
const
;
4371
template
<
typename
Domain2>
4372
inline
typed::union_map<Domain2, pair<T1, T2>
>
preimage_domain
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &upma)
const
;
4373
template
<
typename
Range2>
4374
inline
typed::map<pair<T1, T2>
,
Range2
>
preimage_range
(
const
typed::multi_aff
<
Range2
,
pair<T1, T2>
> &
ma
)
const
;
4375
template
<
typename
Range2>
4376
inline
typed::map<pair<T1, T2>
,
Range2
>
preimage_range
(
const
typed::pw_multi_aff
<
Range2
,
pair<T1, T2>
> &
pma
)
const
;
4377
template
<
typename
Range2>
4378
inline
typed::union_map<pair<T1, T2>
,
Range2
>
preimage_range
(
const
typed::union_pw_multi_aff
<
Range2
,
pair<T1, T2>
> &upma)
const
;
4379
template
<
typename
Domain2,
typename
Range2>
4380
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<T1, T2>
,
Range2
>>
product
(
const
typed::map<Domain2, Range2>
&
map2
)
const
;
4381
template
<
typename
Domain2,
typename
Range2>
4382
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<T1, T2>
,
Range2
>>
product
(
const
typed::union_map<Domain2, Range2>
&umap2)
const
;
4383
template
<
typename
Domain2,
typename
Range2>
4384
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<T1, T2>
,
Range2
>>
product
(
const
typed::basic_map<Domain2, Range2>
&
map2
)
const
;
4385
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_all_params
()
const
;
4386
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
4387
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_param
(
const
std::string &
id
)
const
;
4388
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
4389
inline
typed::set<pair<T1, T2>
>
range
()
const
;
4390
inline
typed::map<pair<T1, T2>
, T1>
range_factor_domain
()
const
;
4391
inline
typed::map<pair<T1, T2>
, T2>
range_factor_range
()
const
;
4392
inline
typed::fixed_box<pair<T1, T2>
,
pair<T1, T2>
>
range_lattice_tile
()
const
;
4393
inline
typed::fixed_box<pair<T1, T2>
,
pair<T1, T2>
>
get_range_lattice_tile
()
const
=
delete
;
4394
inline
typed::union_map<pair<pair<T1, T2>
,
pair<T1, T2>
>,
pair<T1, T2>
>
range_map
()
const
;
4395
template
<
typename
Range2>
4396
inline
typed::map<pair<T1, T2>
,
pair<pair<T1, T2>
,
Range2
>>
range_product
(
const
typed::map
<
pair<T1, T2>
,
Range2
> &
map2
)
const
;
4397
template
<
typename
Range2>
4398
inline
typed::union_map<pair<T1, T2>
,
pair<pair<T1, T2>
,
Range2
>>
range_product
(
const
typed::union_map
<
pair<T1, T2>
,
Range2
> &umap2)
const
;
4399
template
<
typename
Range2>
4400
inline
typed::map<pair<T1, T2>
,
pair<pair<T1, T2>
,
Range2
>>
range_product
(
const
typed::basic_map
<
pair<T1, T2>
,
Range2
> &
map2
)
const
;
4401
inline
typed::map<pair<T1, T2>
,
pair<T2, T1>
>
range_reverse
()
const
;
4402
inline
typed::fixed_box<pair<T1, T2>
,
pair<T1, T2>
>
range_simple_fixed_box_hull
()
const
;
4403
inline
typed::fixed_box<pair<T1, T2>
,
pair<T1, T2>
>
get_range_simple_fixed_box_hull
()
const
=
delete
;
4404
inline
typed::id<pair<T1, T2>
,
pair<T1, T2>
>
get_range_tuple_id
()
const
=
delete
;
4405
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
reverse
()
const
;
4406
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_domain_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
4407
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_domain_tuple
(
const
std::string &
id
)
const
=
delete
;
4408
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
4409
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
4410
inline
typed::space<pair<T1, T2>
,
pair<T1, T2>
>
space
()
const
;
4411
inline
typed::space<pair<T1, T2>
,
pair<T1, T2>
>
get_space
()
const
=
delete
;
4412
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
subtract
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
4413
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
subtract
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &umap2)
const
;
4414
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
subtract
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
4415
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
subtract_domain
(
const
typed::union_set
<
pair<T1, T2>
> &dom)
const
;
4416
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
subtract_range
(
const
typed::union_set
<
pair<T1, T2>
> &dom)
const
;
4417
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
to_union_map
()
const
;
4418
inline
typed::map<pair<pair<T1, T2>
, T1>, T2>
uncurry
()
const
;
4419
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
unite
(
const
typed::map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
4420
inline
typed::union_map<pair<T1, T2>
,
pair<T1, T2>
>
unite
(
const
typed::union_map
<
pair<T1, T2>
,
pair<T1, T2>
> &umap2)
const
;
4421
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
unite
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<T1, T2>
> &
map2
)
const
;
4422
static
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
universe
(
const
typed::space
<
pair<T1, T2>
,
pair<T1, T2>
> &
space
);
4423
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &upper)
const
;
4424
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
upper_bound
(
const
typed::aff
<
pair<T1, T2>
,
pair<T1, T2>
> &upper)
const
;
4425
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
upper_bound
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &upper)
const
;
4426
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
upper_bound
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &upper)
const
;
4427
inline
typed::map<pair<T1, T2>
,
pair<T1, T2>
>
upper_bound
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<T1, T2>
> &upper)
const
;
4428
inline
typed::set<pair<pair<T1, T2>
,
pair<T1, T2>
>>
wrap
()
const
;
4429
};
4430
4431
template
<
typename
T1,
typename
T2,
typename
Range,
typename
Range2>
4432
struct
map
<
pair
<T1, T2>,
pair
<
Range
,
Range2
>> :
public
isl::map
{
4433
template
<
typename
...>
4434
friend
struct
aff
;
4435
template
<
typename
...>
4436
friend
struct
aff_list
;
4437
template
<
typename
...>
4438
friend
struct
basic_map
;
4439
template
<
typename
...>
4440
friend
struct
basic_set
;
4441
template
<
typename
...>
4442
friend
struct
fixed_box
;
4443
template
<
typename
...>
4444
friend
struct
id
;
4445
template
<
typename
...>
4446
friend
struct
id_list
;
4447
template
<
typename
...>
4448
friend
struct
map
;
4449
template
<
typename
...>
4450
friend
struct
map_list
;
4451
template
<
typename
...>
4452
friend
struct
multi_aff
;
4453
template
<
typename
...>
4454
friend
struct
multi_id
;
4455
template
<
typename
...>
4456
friend
struct
multi_pw_aff
;
4457
template
<
typename
...>
4458
friend
struct
multi_union_pw_aff
;
4459
template
<
typename
...>
4460
friend
struct
multi_val
;
4461
template
<
typename
...>
4462
friend
struct
point
;
4463
template
<
typename
...>
4464
friend
struct
pw_aff
;
4465
template
<
typename
...>
4466
friend
struct
pw_aff_list
;
4467
template
<
typename
...>
4468
friend
struct
pw_multi_aff
;
4469
template
<
typename
...>
4470
friend
struct
pw_multi_aff_list
;
4471
template
<
typename
...>
4472
friend
struct
set
;
4473
template
<
typename
...>
4474
friend
struct
set_list
;
4475
template
<
typename
...>
4476
friend
struct
space
;
4477
template
<
typename
...>
4478
friend
struct
union_map
;
4479
template
<
typename
...>
4480
friend
struct
union_pw_aff
;
4481
template
<
typename
...>
4482
friend
struct
union_pw_aff_list
;
4483
template
<
typename
...>
4484
friend
struct
union_pw_multi_aff
;
4485
template
<
typename
...>
4486
friend
struct
union_set
;
4487
template
<
typename
...>
4488
friend
struct
union_set_list
;
4489
template
<
typename
...>
4490
friend
struct
val
;
4491
template
<
typename
...>
4492
friend
struct
val_list
;
4493
4494
map
() =
default
;
4495
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
typename
Arg4,
4496
typename
std::enable_if<
4497
std::is_base_of<T1, Arg1>{} &&
4498
std::is_base_of<T2, Arg2>{} &&
4499
std::is_base_of<Range, Arg3>{} &&
4500
std::is_base_of<Range2, Arg4>{},
4501
bool
>
::type
=
true
>
4502
map
(
const
map
<
pair<Arg1, Arg2>
,
pair<Arg3, Arg4>
> &
obj
) :
isl
::
map
(
obj
) {}
4503
private
:
4504
template
<
typename
base,
4505
typename
std::enable_if<
4506
std::is_same<base, isl::map>{},
bool
>
::type
=
true
>
4507
map
(
const
base &
obj
) :
isl
::
map
(
obj
) {}
4508
public
:
4509
static
map
from
(
const
isl::map
&
obj
) {
4510
return
map
(
obj
);
4511
}
4512
inline
/* implicit */
map
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &bmap);
4513
inline
explicit
map
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
4514
template
<
typename
Domain2>
4515
inline
typed::map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::map
<
pair<T1, T2>
,
Domain2
> &
map2
)
const
;
4516
template
<
typename
Domain2>
4517
inline
typed::union_map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::union_map
<
pair<T1, T2>
,
Domain2
> &umap2)
const
;
4518
template
<
typename
Domain2>
4519
inline
typed::map<Domain2, pair<Range, Range2>
>
apply_domain
(
const
typed::basic_map
<
pair<T1, T2>
,
Domain2
> &
map2
)
const
;
4520
template
<
typename
Arg2>
4521
inline
typed::map<pair<T1, T2>
, Arg2>
apply_range
(
const
typed::map
<
pair<Range, Range2>
, Arg2> &
map2
)
const
;
4522
template
<
typename
Arg2>
4523
inline
typed::union_map<pair<T1, T2>
, Arg2>
apply_range
(
const
typed::union_map
<
pair<Range, Range2>
, Arg2> &umap2)
const
;
4524
template
<
typename
Arg2>
4525
inline
typed::map<pair<T1, T2>
, Arg2>
apply_range
(
const
typed::basic_map
<
pair<Range, Range2>
, Arg2> &
map2
)
const
;
4526
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
as_map
()
const
;
4527
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
4528
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
4529
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_union_pw_multi_aff
()
const
;
4530
inline
typed::set<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
4531
inline
typed::set<pair<T1, T2>
>
bind_range
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
4532
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
coalesce
()
const
;
4533
inline
typed::map<T1, pair<T2, pair<Range, Range2>
>>
curry
()
const
;
4534
inline
typed::set<pair<T1, T2>
,
pair<Range, Range2>
>
deltas
()
const
=
delete
;
4535
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
detect_equalities
()
const
;
4536
inline
typed::set<pair<T1, T2>
>
domain
()
const
;
4537
inline
typed::map<T1, pair<Range, Range2>
>
domain_factor_domain
()
const
;
4538
inline
typed::map<T2, pair<Range, Range2>
>
domain_factor_range
()
const
;
4539
inline
typed::union_map<pair<pair<T1, T2>
,
pair<Range, Range2>
>,
pair<T1, T2>
>
domain_map
()
const
;
4540
inline
typed::union_pw_multi_aff<pair<pair<T1, T2>
,
pair<Range, Range2>
>,
pair<T1, T2>
>
domain_map_union_pw_multi_aff
()
const
;
4541
template
<
typename
Domain2>
4542
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<Range, Range2>
>
domain_product
(
const
typed::map
<
Domain2
,
pair<Range, Range2>
> &
map2
)
const
;
4543
template
<
typename
Domain2>
4544
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<Range, Range2>
>
domain_product
(
const
typed::union_map
<
Domain2
,
pair<Range, Range2>
> &umap2)
const
;
4545
template
<
typename
Domain2>
4546
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<Range, Range2>
>
domain_product
(
const
typed::basic_map
<
Domain2
,
pair<Range, Range2>
> &
map2
)
const
;
4547
inline
typed::map<pair<T2, T1>
,
pair<Range, Range2>
>
domain_reverse
()
const
;
4548
inline
typed::id<pair<T1, T2>
,
pair<Range, Range2>
>
get_domain_tuple_id
()
const
=
delete
;
4549
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
drop_unused_params
()
const
;
4550
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4551
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::multi_union_pw_aff<>
&
mupa
)
const
=
delete
;
4552
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4553
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4554
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4555
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
eq_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4556
inline
bool
every_map
(
const
std::function<
bool
(
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
>)> &
test
)
const
;
4557
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
extract_map
(
const
typed::space
<
pair<T1, T2>
,
pair<Range, Range2>
> &
space
)
const
;
4558
inline
typed::map<Anonymous, pair<Range, Range2>
>
flatten_domain
()
const
;
4559
inline
typed::map<pair<T1, T2>
,
Anonymous
>
flatten_range
()
const
;
4560
inline
void
foreach_basic_map
(
const
std::function<
void
(
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
>)> &
fn
)
const
;
4561
inline
void
foreach_map
(
const
std::function<
void
(
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
>)> &
fn
)
const
;
4562
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
context
)
const
;
4563
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
context
)
const
;
4564
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
context
)
const
;
4565
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_domain
(
const
typed::set
<
pair<T1, T2>
> &
context
)
const
;
4566
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
4567
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &
context
)
const
;
4568
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_domain
(
const
typed::point
<
pair<T1, T2>
> &
context
)
const
;
4569
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
4570
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
4571
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::point<>
&
context
)
const
;
4572
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
4573
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &umap2)
const
;
4574
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
4575
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
4576
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
4577
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
4578
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &
set
)
const
;
4579
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::point
<
pair<T1, T2>
> &
set
)
const
;
4580
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::set<T1>
&
domain
)
const
;
4581
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<T1>
&
domain
)
const
;
4582
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::basic_set<T1>
&
domain
)
const
;
4583
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::point<T1>
&
domain
)
const
;
4584
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
4585
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
4586
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::point<>
&
params
)
const
;
4587
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::set
<
pair<Range, Range2>
> &
set
)
const
;
4588
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::space
<
pair<Range, Range2>
> &
space
)
const
;
4589
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::union_set
<
pair<Range, Range2>
> &uset)
const
;
4590
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::basic_set
<
pair<Range, Range2>
> &
set
)
const
;
4591
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range
(
const
typed::point
<
pair<Range, Range2>
> &
set
)
const
;
4592
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::set<Range>
&
domain
)
const
;
4593
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::union_set<Range>
&
domain
)
const
;
4594
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::basic_set<Range>
&
domain
)
const
;
4595
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_range_wrapped_domain
(
const
typed::point<Range>
&
domain
)
const
;
4596
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_ge_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4597
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_ge_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4598
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_ge_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4599
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_ge_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4600
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_ge_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4601
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_gt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4602
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_gt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4603
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_gt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4604
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_gt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4605
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_gt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4606
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_le_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4607
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_le_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4608
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_le_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4609
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_le_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4610
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_le_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4611
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_lt_at
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
4612
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_lt_at
(
const
typed::aff<>
&mpa)
const
=
delete
;
4613
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_lt_at
(
const
typed::multi_aff<>
&mpa)
const
=
delete
;
4614
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_lt_at
(
const
typed::pw_aff<>
&mpa)
const
=
delete
;
4615
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lex_lt_at
(
const
typed::pw_multi_aff<>
&mpa)
const
=
delete
;
4616
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lexmax
()
const
;
4617
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
lexmax_pw_multi_aff
()
const
;
4618
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lexmin
()
const
;
4619
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
lexmin_pw_multi_aff
()
const
;
4620
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &lower)
const
;
4621
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lower_bound
(
const
typed::aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &lower)
const
;
4622
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lower_bound
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &lower)
const
;
4623
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lower_bound
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &lower)
const
;
4624
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
lower_bound
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &lower)
const
;
4625
inline
typed::map_list<pair<T1, T2>
,
pair<Range, Range2>
>
map_list
()
const
;
4626
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
max_multi_pw_aff
()
const
;
4627
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
min_multi_pw_aff
()
const
;
4628
inline
typed::set<>
params
()
const
;
4629
template
<
typename
Domain2>
4630
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_aff
<
Domain2
,
pair<T1, T2>
> &
ma
)
const
;
4631
template
<
typename
Domain2>
4632
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::multi_pw_aff
<
Domain2
,
pair<T1, T2>
> &mpa)
const
;
4633
template
<
typename
Domain2>
4634
inline
typed::map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &
pma
)
const
;
4635
template
<
typename
Domain2>
4636
inline
typed::union_map<Domain2, pair<Range, Range2>
>
preimage_domain
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &upma)
const
;
4637
template
<
typename
Arg2>
4638
inline
typed::map<pair<T1, T2>
, Arg2>
preimage_range
(
const
typed::multi_aff
<Arg2,
pair<Range, Range2>
> &
ma
)
const
;
4639
template
<
typename
Arg2>
4640
inline
typed::map<pair<T1, T2>
, Arg2>
preimage_range
(
const
typed::pw_multi_aff
<Arg2,
pair<Range, Range2>
> &
pma
)
const
;
4641
template
<
typename
Arg2>
4642
inline
typed::union_map<pair<T1, T2>
, Arg2>
preimage_range
(
const
typed::union_pw_multi_aff
<Arg2,
pair<Range, Range2>
> &upma)
const
;
4643
template
<
typename
Domain2,
typename
Arg2>
4644
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::map<Domain2, Arg2>
&
map2
)
const
;
4645
template
<
typename
Domain2,
typename
Arg2>
4646
inline
typed::union_map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::union_map<Domain2, Arg2>
&umap2)
const
;
4647
template
<
typename
Domain2,
typename
Arg2>
4648
inline
typed::map<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::basic_map<Domain2, Arg2>
&
map2
)
const
;
4649
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_all_params
()
const
;
4650
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
4651
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_param
(
const
std::string &
id
)
const
;
4652
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
4653
inline
typed::set<pair<Range, Range2>
>
range
()
const
;
4654
inline
typed::map<pair<T1, T2>
,
Range
>
range_factor_domain
()
const
;
4655
inline
typed::map<pair<T1, T2>
,
Range2
>
range_factor_range
()
const
;
4656
inline
typed::fixed_box<pair<T1, T2>
,
pair<Range, Range2>
>
range_lattice_tile
()
const
;
4657
inline
typed::fixed_box<pair<T1, T2>
,
pair<Range, Range2>
>
get_range_lattice_tile
()
const
=
delete
;
4658
inline
typed::union_map<pair<pair<T1, T2>
,
pair<Range, Range2>
>,
pair<Range, Range2>
>
range_map
()
const
;
4659
template
<
typename
Arg2>
4660
inline
typed::map<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::map
<
pair<T1, T2>
, Arg2> &
map2
)
const
;
4661
template
<
typename
Arg2>
4662
inline
typed::union_map<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::union_map
<
pair<T1, T2>
, Arg2> &umap2)
const
;
4663
template
<
typename
Arg2>
4664
inline
typed::map<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::basic_map
<
pair<T1, T2>
, Arg2> &
map2
)
const
;
4665
inline
typed::map<pair<T1, T2>
,
pair<Range2, Range>
>
range_reverse
()
const
;
4666
inline
typed::fixed_box<pair<T1, T2>
,
pair<Range, Range2>
>
range_simple_fixed_box_hull
()
const
;
4667
inline
typed::fixed_box<pair<T1, T2>
,
pair<Range, Range2>
>
get_range_simple_fixed_box_hull
()
const
=
delete
;
4668
inline
typed::id<pair<T1, T2>
,
pair<Range, Range2>
>
get_range_tuple_id
()
const
=
delete
;
4669
inline
typed::map<pair<Range, Range2>
,
pair<T1, T2>
>
reverse
()
const
;
4670
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_domain_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
4671
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_domain_tuple
(
const
std::string &
id
)
const
=
delete
;
4672
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
4673
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
4674
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
space
()
const
;
4675
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
get_space
()
const
=
delete
;
4676
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
4677
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &umap2)
const
;
4678
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
4679
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set
<
pair<T1, T2>
> &dom)
const
;
4680
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_range
(
const
typed::union_set
<
pair<Range, Range2>
> &dom)
const
;
4681
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
to_union_map
()
const
;
4682
inline
typed::map<pair<pair<T1, T2>
,
Range
>,
Range2
>
uncurry
()
const
;
4683
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
unite
(
const
typed::map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
4684
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
unite
(
const
typed::union_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &umap2)
const
;
4685
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
unite
(
const
typed::basic_map
<
pair<T1, T2>
,
pair<Range, Range2>
> &
map2
)
const
;
4686
static
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
universe
(
const
typed::space
<
pair<T1, T2>
,
pair<Range, Range2>
> &
space
);
4687
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upper)
const
;
4688
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
upper_bound
(
const
typed::aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upper)
const
;
4689
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
upper_bound
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upper)
const
;
4690
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
upper_bound
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upper)
const
;
4691
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
upper_bound
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upper)
const
;
4692
inline
typed::set<pair<pair<T1, T2>
,
pair<Range, Range2>
>>
wrap
()
const
;
4693
};
4694
4695
template
<
typename
Domain,
typename
Range>
4696
struct
map_list
<
Domain
,
Range
> :
public
isl::map_list
{
4697
template
<
typename
...>
4698
friend
struct
aff
;
4699
template
<
typename
...>
4700
friend
struct
aff_list
;
4701
template
<
typename
...>
4702
friend
struct
basic_map
;
4703
template
<
typename
...>
4704
friend
struct
basic_set
;
4705
template
<
typename
...>
4706
friend
struct
fixed_box
;
4707
template
<
typename
...>
4708
friend
struct
id
;
4709
template
<
typename
...>
4710
friend
struct
id_list
;
4711
template
<
typename
...>
4712
friend
struct
map
;
4713
template
<
typename
...>
4714
friend
struct
map_list
;
4715
template
<
typename
...>
4716
friend
struct
multi_aff
;
4717
template
<
typename
...>
4718
friend
struct
multi_id
;
4719
template
<
typename
...>
4720
friend
struct
multi_pw_aff
;
4721
template
<
typename
...>
4722
friend
struct
multi_union_pw_aff
;
4723
template
<
typename
...>
4724
friend
struct
multi_val
;
4725
template
<
typename
...>
4726
friend
struct
point
;
4727
template
<
typename
...>
4728
friend
struct
pw_aff
;
4729
template
<
typename
...>
4730
friend
struct
pw_aff_list
;
4731
template
<
typename
...>
4732
friend
struct
pw_multi_aff
;
4733
template
<
typename
...>
4734
friend
struct
pw_multi_aff_list
;
4735
template
<
typename
...>
4736
friend
struct
set
;
4737
template
<
typename
...>
4738
friend
struct
set_list
;
4739
template
<
typename
...>
4740
friend
struct
space
;
4741
template
<
typename
...>
4742
friend
struct
union_map
;
4743
template
<
typename
...>
4744
friend
struct
union_pw_aff
;
4745
template
<
typename
...>
4746
friend
struct
union_pw_aff_list
;
4747
template
<
typename
...>
4748
friend
struct
union_pw_multi_aff
;
4749
template
<
typename
...>
4750
friend
struct
union_set
;
4751
template
<
typename
...>
4752
friend
struct
union_set_list
;
4753
template
<
typename
...>
4754
friend
struct
val
;
4755
template
<
typename
...>
4756
friend
struct
val_list
;
4757
4758
map_list
() =
default
;
4759
template
<
typename
Arg1,
typename
Arg2,
4760
typename
std::enable_if<
4761
std::is_base_of<Domain, Arg1>{} &&
4762
std::is_base_of<Range, Arg2>{},
4763
bool
>
::type
=
true
>
4764
map_list
(
const
map_list<Arg1, Arg2>
&
obj
) :
isl
::
map_list
(
obj
) {}
4765
private
:
4766
template
<
typename
base,
4767
typename
std::enable_if<
4768
std::is_same<base, isl::map_list>{},
bool
>
::type
=
true
>
4769
map_list
(
const
base &
obj
) :
isl
::
map_list
(
obj
) {}
4770
public
:
4771
static
map_list
from
(
const
isl::map_list
&
obj
) {
4772
return
map_list
(
obj
);
4773
}
4774
inline
explicit
map_list
(
const
isl::ctx
&
ctx
,
int
n
);
4775
inline
explicit
map_list
(
const
typed::map<Domain, Range>
&el);
4776
inline
explicit
map_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
4777
inline
typed::map_list<Domain, Range>
add
(
const
typed::map<Domain, Range>
&el)
const
;
4778
inline
typed::map_list<Domain, Range>
add
(
const
typed::basic_map<Domain, Range>
&el)
const
;
4779
inline
typed::map<Domain, Range>
at
(
int
index)
const
;
4780
inline
typed::map<Domain, Range>
get_at
(
int
index)
const
=
delete
;
4781
inline
typed::map_list<Domain, Range>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
4782
inline
void
foreach
(
const
std::function<
void
(
typed::map<Domain, Range>
)> &
fn
)
const
;
4783
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::map<Domain, Range>
,
typed::map<Domain, Range>
)> &follows,
const
std::function<
void
(
typed::map_list<Domain, Range>
)> &
fn
)
const
;
4784
inline
typed::map_list<Domain, Range>
set_at
(
int
index,
const
typed::map<Domain, Anonymous>
&el)
const
;
4785
};
4786
4787
template
<
typename
Domain>
4788
struct
multi_aff
<
Domain
> :
public
isl::multi_aff
{
4789
template
<
typename
...>
4790
friend
struct
aff
;
4791
template
<
typename
...>
4792
friend
struct
aff_list
;
4793
template
<
typename
...>
4794
friend
struct
basic_map
;
4795
template
<
typename
...>
4796
friend
struct
basic_set
;
4797
template
<
typename
...>
4798
friend
struct
fixed_box
;
4799
template
<
typename
...>
4800
friend
struct
id
;
4801
template
<
typename
...>
4802
friend
struct
id_list
;
4803
template
<
typename
...>
4804
friend
struct
map
;
4805
template
<
typename
...>
4806
friend
struct
map_list
;
4807
template
<
typename
...>
4808
friend
struct
multi_aff
;
4809
template
<
typename
...>
4810
friend
struct
multi_id
;
4811
template
<
typename
...>
4812
friend
struct
multi_pw_aff
;
4813
template
<
typename
...>
4814
friend
struct
multi_union_pw_aff
;
4815
template
<
typename
...>
4816
friend
struct
multi_val
;
4817
template
<
typename
...>
4818
friend
struct
point
;
4819
template
<
typename
...>
4820
friend
struct
pw_aff
;
4821
template
<
typename
...>
4822
friend
struct
pw_aff_list
;
4823
template
<
typename
...>
4824
friend
struct
pw_multi_aff
;
4825
template
<
typename
...>
4826
friend
struct
pw_multi_aff_list
;
4827
template
<
typename
...>
4828
friend
struct
set
;
4829
template
<
typename
...>
4830
friend
struct
set_list
;
4831
template
<
typename
...>
4832
friend
struct
space
;
4833
template
<
typename
...>
4834
friend
struct
union_map
;
4835
template
<
typename
...>
4836
friend
struct
union_pw_aff
;
4837
template
<
typename
...>
4838
friend
struct
union_pw_aff_list
;
4839
template
<
typename
...>
4840
friend
struct
union_pw_multi_aff
;
4841
template
<
typename
...>
4842
friend
struct
union_set
;
4843
template
<
typename
...>
4844
friend
struct
union_set_list
;
4845
template
<
typename
...>
4846
friend
struct
val
;
4847
template
<
typename
...>
4848
friend
struct
val_list
;
4849
4850
multi_aff
() =
default
;
4851
template
<
typename
Arg1,
4852
typename
std::enable_if<
4853
std::is_base_of<Domain, Arg1>{},
4854
bool
>
::type
=
true
>
4855
multi_aff
(
const
multi_aff<Arg1>
&
obj
) :
isl
::
multi_aff
(
obj
) {}
4856
private
:
4857
template
<
typename
base,
4858
typename
std::enable_if<
4859
std::is_same<base, isl::multi_aff>{},
bool
>
::type
=
true
>
4860
multi_aff
(
const
base &
obj
) :
isl
::
multi_aff
(
obj
) {}
4861
public
:
4862
static
multi_aff
from
(
const
isl::multi_aff
&
obj
) {
4863
return
multi_aff
(
obj
);
4864
}
4865
inline
/* implicit */
multi_aff
(
const
typed::aff<Domain>
&
aff
);
4866
inline
explicit
multi_aff
(
const
typed::space<Domain>
&
space
,
const
typed::aff_list<Anonymous>
&
list
);
4867
inline
explicit
multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
4868
inline
typed::multi_aff<Domain>
add
(
const
typed::multi_aff<Domain>
&multi2)
const
;
4869
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
4870
inline
typed::multi_union_pw_aff<Domain>
add
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
4871
inline
typed::pw_multi_aff<Domain>
add
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
4872
inline
typed::union_pw_multi_aff<Domain>
add
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
4873
inline
typed::multi_aff<Domain>
add
(
const
typed::aff<Domain>
&multi2)
const
;
4874
inline
typed::multi_aff<Domain>
add_constant
(
const
typed::multi_val<Domain>
&mv)
const
;
4875
inline
typed::multi_aff<Domain>
add_constant
(
const
typed::val<Domain>
&v)
const
;
4876
inline
typed::multi_aff<Domain>
add_constant
(
long
v)
const
;
4877
template
<
typename
Range>
4878
inline
typed::union_pw_multi_aff<Range>
apply
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
4879
inline
typed::map<Domain>
as_map
()
const
=
delete
;
4880
inline
typed::multi_aff<Domain>
as_multi_aff
()
const
;
4881
inline
typed::multi_union_pw_aff<Domain>
as_multi_union_pw_aff
()
const
;
4882
inline
typed::pw_multi_aff<Domain>
as_pw_multi_aff
()
const
;
4883
inline
typed::set<Domain>
as_set
()
const
;
4884
inline
typed::union_map<Domain>
as_union_map
()
const
=
delete
;
4885
inline
typed::aff<Anonymous>
at
(
int
pos
)
const
;
4886
inline
typed::aff<Domain>
get_at
(
int
pos
)
const
=
delete
;
4887
inline
typed::basic_set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
4888
inline
typed::multi_aff<Domain>
bind_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
4889
inline
typed::multi_aff<Domain>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
4890
inline
typed::pw_multi_aff<Domain>
coalesce
()
const
;
4891
inline
typed::multi_val<Domain>
constant_multi_val
()
const
;
4892
inline
typed::multi_val<Domain>
get_constant_multi_val
()
const
=
delete
;
4893
inline
typed::set<>
domain
()
const
;
4894
inline
typed::multi_aff<Domain>
domain_reverse
()
const
=
delete
;
4895
inline
typed::pw_multi_aff<Domain>
drop_unused_params
()
const
;
4896
inline
typed::pw_multi_aff<Domain>
extract_pw_multi_aff
(
const
typed::space<Domain>
&
space
)
const
;
4897
inline
typed::multi_aff<Domain>
floor
()
const
;
4898
inline
typed::multi_aff<Domain>
gist
(
const
typed::set<>
&
context
)
const
;
4899
inline
typed::union_pw_multi_aff<Domain>
gist
(
const
typed::union_set<>
&
context
)
const
;
4900
inline
typed::multi_aff<Domain>
gist
(
const
typed::basic_set<>
&
context
)
const
;
4901
inline
typed::multi_aff<Domain>
gist
(
const
typed::point<>
&
context
)
const
;
4902
inline
typed::multi_aff<Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
4903
inline
typed::multi_aff<Domain>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
4904
inline
typed::multi_aff<Domain>
gist_params
(
const
typed::point<>
&
context
)
const
;
4905
inline
typed::multi_aff<Domain, Domain>
identity
()
const
;
4906
template
<
typename
Arg1>
4907
inline
typed::multi_aff<Arg1, Domain>
insert_domain
(
const
typed::space<Arg1>
&
domain
)
const
;
4908
inline
typed::pw_multi_aff<Domain>
intersect_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
4909
inline
typed::union_pw_multi_aff<Domain>
intersect_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
4910
inline
typed::union_pw_multi_aff<Domain>
intersect_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
4911
inline
typed::union_pw_multi_aff<Domain>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
4912
inline
typed::pw_multi_aff<Domain>
intersect_params
(
const
typed::set<>
&
set
)
const
;
4913
inline
typed::aff_list<Anonymous>
list
()
const
;
4914
inline
typed::aff_list<Domain>
get_list
()
const
=
delete
;
4915
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
4916
inline
typed::multi_val<Domain>
max_multi_val
()
const
;
4917
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
4918
inline
typed::multi_val<Domain>
min_multi_val
()
const
;
4919
inline
typed::multi_aff<Domain>
neg
()
const
;
4920
inline
typed::pw_multi_aff<Domain>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
4921
inline
typed::union_pw_multi_aff<Domain>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
4922
template
<
typename
Range>
4923
inline
typed::multi_aff<pair<Domain, Range>
>
product
(
const
typed::multi_aff<Range>
&multi2)
const
;
4924
template
<
typename
Range>
4925
inline
typed::multi_pw_aff<pair<Domain, Range>
>
product
(
const
typed::multi_pw_aff<Range>
&multi2)
const
;
4926
template
<
typename
Range>
4927
inline
typed::pw_multi_aff<pair<Domain, Range>
>
product
(
const
typed::pw_multi_aff<Range>
&pma2)
const
;
4928
inline
typed::multi_aff<pair<Domain, Anonymous>
>
product
(
const
typed::aff<Anonymous>
&multi2)
const
;
4929
inline
typed::multi_aff<Domain>
pullback
(
const
typed::multi_aff<>
&ma2)
const
=
delete
;
4930
inline
typed::multi_pw_aff<Domain>
pullback
(
const
typed::multi_pw_aff<>
&mpa2)
const
=
delete
;
4931
inline
typed::pw_multi_aff<Domain>
pullback
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
4932
inline
typed::union_pw_multi_aff<Domain>
pullback
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
4933
inline
typed::multi_aff<Domain>
pullback
(
const
typed::aff<>
&ma2)
const
=
delete
;
4934
inline
typed::pw_multi_aff_list<Domain>
pw_multi_aff_list
()
const
;
4935
inline
typed::pw_multi_aff<Domain>
range_factor_domain
()
const
=
delete
;
4936
inline
typed::pw_multi_aff<Domain>
range_factor_range
()
const
=
delete
;
4937
inline
typed::multi_aff<Domain>
range_product
(
const
typed::multi_aff<>
&multi2)
const
=
delete
;
4938
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::multi_pw_aff<>
&multi2)
const
=
delete
;
4939
inline
typed::multi_union_pw_aff<Domain>
range_product
(
const
typed::multi_union_pw_aff<>
&multi2)
const
=
delete
;
4940
inline
typed::pw_multi_aff<Domain>
range_product
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
4941
inline
typed::union_pw_multi_aff<Domain>
range_product
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
4942
inline
typed::multi_aff<Domain>
range_product
(
const
typed::aff<>
&multi2)
const
=
delete
;
4943
inline
typed::id<Domain>
get_range_tuple_id
()
const
=
delete
;
4944
inline
typed::multi_aff<Domain>
scale
(
const
typed::multi_val<Domain>
&mv)
const
;
4945
inline
typed::multi_aff<Domain>
scale
(
const
typed::val<Domain>
&v)
const
;
4946
inline
typed::multi_aff<Domain>
scale
(
long
v)
const
;
4947
inline
typed::multi_aff<Domain>
scale_down
(
const
typed::multi_val<Domain>
&mv)
const
;
4948
inline
typed::multi_aff<Domain>
scale_down
(
const
typed::val<Domain>
&v)
const
;
4949
inline
typed::multi_aff<Domain>
scale_down
(
long
v)
const
;
4950
inline
typed::multi_aff<Domain>
set_at
(
int
pos
,
const
typed::aff<Anonymous>
&el)
const
;
4951
inline
typed::multi_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::pw_aff<Anonymous>
&el)
const
;
4952
inline
typed::multi_union_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::union_pw_aff<Anonymous>
&el)
const
;
4953
template
<
typename
Domain2>
4954
inline
typed::multi_aff<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
4955
template
<
typename
Domain2>
4956
inline
typed::multi_aff<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
4957
inline
typed::space<Domain>
space
()
const
;
4958
inline
typed::space<Domain>
get_space
()
const
=
delete
;
4959
inline
typed::multi_aff<Domain>
sub
(
const
typed::multi_aff<Domain>
&multi2)
const
;
4960
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
4961
inline
typed::multi_union_pw_aff<Domain>
sub
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
4962
inline
typed::pw_multi_aff<Domain>
sub
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
4963
inline
typed::union_pw_multi_aff<Domain>
sub
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
4964
inline
typed::multi_aff<Domain>
sub
(
const
typed::aff<Domain>
&multi2)
const
;
4965
inline
typed::pw_multi_aff<Domain>
subtract_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
4966
inline
typed::union_pw_multi_aff<Domain>
subtract_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
4967
inline
typed::union_pw_multi_aff<Domain>
subtract_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
4968
inline
typed::multi_pw_aff<Domain>
to_multi_pw_aff
()
const
;
4969
inline
typed::multi_union_pw_aff<Domain>
to_multi_union_pw_aff
()
const
;
4970
inline
typed::pw_multi_aff<Domain>
to_pw_multi_aff
()
const
;
4971
inline
typed::union_pw_multi_aff<Domain>
to_union_pw_multi_aff
()
const
;
4972
template
<
typename
Arg1>
4973
inline
typed::multi_aff<Arg1, Domain>
unbind_params_insert_domain
(
const
typed::multi_id<Arg1>
&
domain
)
const
;
4974
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
4975
inline
typed::multi_union_pw_aff<Domain>
union_add
(
const
typed::multi_union_pw_aff<Domain>
&mupa2)
const
;
4976
inline
typed::pw_multi_aff<Domain>
union_add
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
4977
inline
typed::union_pw_multi_aff<Domain>
union_add
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
4978
};
4979
4980
template
<
typename
Domain,
typename
Range>
4981
struct
multi_aff
<
Domain
,
Range
> :
public
isl::multi_aff
{
4982
template
<
typename
...>
4983
friend
struct
aff
;
4984
template
<
typename
...>
4985
friend
struct
aff_list
;
4986
template
<
typename
...>
4987
friend
struct
basic_map
;
4988
template
<
typename
...>
4989
friend
struct
basic_set
;
4990
template
<
typename
...>
4991
friend
struct
fixed_box
;
4992
template
<
typename
...>
4993
friend
struct
id
;
4994
template
<
typename
...>
4995
friend
struct
id_list
;
4996
template
<
typename
...>
4997
friend
struct
map
;
4998
template
<
typename
...>
4999
friend
struct
map_list
;
5000
template
<
typename
...>
5001
friend
struct
multi_aff
;
5002
template
<
typename
...>
5003
friend
struct
multi_id
;
5004
template
<
typename
...>
5005
friend
struct
multi_pw_aff
;
5006
template
<
typename
...>
5007
friend
struct
multi_union_pw_aff
;
5008
template
<
typename
...>
5009
friend
struct
multi_val
;
5010
template
<
typename
...>
5011
friend
struct
point
;
5012
template
<
typename
...>
5013
friend
struct
pw_aff
;
5014
template
<
typename
...>
5015
friend
struct
pw_aff_list
;
5016
template
<
typename
...>
5017
friend
struct
pw_multi_aff
;
5018
template
<
typename
...>
5019
friend
struct
pw_multi_aff_list
;
5020
template
<
typename
...>
5021
friend
struct
set
;
5022
template
<
typename
...>
5023
friend
struct
set_list
;
5024
template
<
typename
...>
5025
friend
struct
space
;
5026
template
<
typename
...>
5027
friend
struct
union_map
;
5028
template
<
typename
...>
5029
friend
struct
union_pw_aff
;
5030
template
<
typename
...>
5031
friend
struct
union_pw_aff_list
;
5032
template
<
typename
...>
5033
friend
struct
union_pw_multi_aff
;
5034
template
<
typename
...>
5035
friend
struct
union_set
;
5036
template
<
typename
...>
5037
friend
struct
union_set_list
;
5038
template
<
typename
...>
5039
friend
struct
val
;
5040
template
<
typename
...>
5041
friend
struct
val_list
;
5042
5043
multi_aff
() =
default
;
5044
template
<
typename
Arg1,
typename
Arg2,
5045
typename
std::enable_if<
5046
std::is_base_of<Domain, Arg1>{} &&
5047
std::is_base_of<Range, Arg2>{},
5048
bool
>
::type
=
true
>
5049
multi_aff
(
const
multi_aff<Arg1, Arg2>
&
obj
) :
isl
::
multi_aff
(
obj
) {}
5050
private
:
5051
template
<
typename
base,
5052
typename
std::enable_if<
5053
std::is_same<base, isl::multi_aff>{},
bool
>
::type
=
true
>
5054
multi_aff
(
const
base &
obj
) :
isl
::
multi_aff
(
obj
) {}
5055
public
:
5056
static
multi_aff
from
(
const
isl::multi_aff
&
obj
) {
5057
return
multi_aff
(
obj
);
5058
}
5059
inline
/* implicit */
multi_aff
(
const
typed::aff<Domain, Range>
&
aff
);
5060
inline
explicit
multi_aff
(
const
typed::space<Domain, Range>
&
space
,
const
typed::aff_list<Domain, Anonymous>
&
list
);
5061
inline
explicit
multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
5062
inline
typed::multi_aff<Domain, Range>
add
(
const
typed::multi_aff<Domain, Range>
&multi2)
const
;
5063
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
5064
inline
typed::multi_union_pw_aff<Domain, Range>
add
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
5065
inline
typed::pw_multi_aff<Domain, Range>
add
(
const
typed::pw_multi_aff<Domain, Range>
&pma2)
const
;
5066
inline
typed::union_pw_multi_aff<Domain, Range>
add
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
5067
inline
typed::multi_aff<Domain, Range>
add
(
const
typed::aff<Domain, Range>
&multi2)
const
;
5068
inline
typed::multi_aff<Domain, Range>
add_constant
(
const
typed::multi_val<Range>
&mv)
const
;
5069
inline
typed::multi_aff<Domain, Range>
add_constant
(
const
typed::val<Range>
&v)
const
;
5070
inline
typed::multi_aff<Domain, Range>
add_constant
(
long
v)
const
;
5071
template
<
typename
Range2>
5072
inline
typed::union_pw_multi_aff<Domain, Range2>
apply
(
const
typed::union_pw_multi_aff<Range, Range2>
&upma2)
const
;
5073
inline
typed::map<Domain, Range>
as_map
()
const
;
5074
inline
typed::multi_aff<Domain, Range>
as_multi_aff
()
const
;
5075
inline
typed::multi_union_pw_aff<Domain, Range>
as_multi_union_pw_aff
()
const
;
5076
inline
typed::pw_multi_aff<Domain, Range>
as_pw_multi_aff
()
const
;
5077
inline
typed::set<Domain, Range>
as_set
()
const
=
delete
;
5078
inline
typed::union_map<Domain, Range>
as_union_map
()
const
;
5079
inline
typed::aff<Domain, Anonymous>
at
(
int
pos
)
const
;
5080
inline
typed::aff<Domain, Range>
get_at
(
int
pos
)
const
=
delete
;
5081
inline
typed::basic_set<Domain>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
5082
inline
typed::multi_aff<Range>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
5083
inline
typed::multi_aff<Domain, Range>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
5084
inline
typed::pw_multi_aff<Domain, Range>
coalesce
()
const
;
5085
inline
typed::multi_val<Range>
constant_multi_val
()
const
;
5086
inline
typed::multi_val<Domain, Range>
get_constant_multi_val
()
const
=
delete
;
5087
inline
typed::set<Domain>
domain
()
const
;
5088
inline
typed::multi_aff<Domain, Range>
domain_reverse
()
const
=
delete
;
5089
inline
typed::pw_multi_aff<Domain, Range>
drop_unused_params
()
const
;
5090
inline
typed::pw_multi_aff<Domain, Range>
extract_pw_multi_aff
(
const
typed::space<Domain, Range>
&
space
)
const
;
5091
inline
typed::multi_aff<Domain, Range>
floor
()
const
;
5092
inline
typed::multi_aff<Domain, Range>
gist
(
const
typed::set<Domain>
&
context
)
const
;
5093
inline
typed::union_pw_multi_aff<Domain, Range>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
5094
inline
typed::multi_aff<Domain, Range>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
5095
inline
typed::multi_aff<Domain, Range>
gist
(
const
typed::point<Domain>
&
context
)
const
;
5096
inline
typed::multi_aff<Domain, Range>
gist_params
(
const
typed::set<>
&
context
)
const
;
5097
inline
typed::multi_aff<Domain, Range>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
5098
inline
typed::multi_aff<Domain, Range>
gist_params
(
const
typed::point<>
&
context
)
const
;
5099
inline
typed::multi_aff<Domain, Range>
identity
()
const
;
5100
inline
typed::multi_aff<Domain, Range>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
5101
inline
typed::pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
5102
inline
typed::union_pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
5103
inline
typed::union_pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
5104
inline
typed::union_pw_multi_aff<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
5105
inline
typed::pw_multi_aff<Domain, Range>
intersect_params
(
const
typed::set<>
&
set
)
const
;
5106
inline
typed::aff_list<Domain, Anonymous>
list
()
const
;
5107
inline
typed::aff_list<Domain, Range>
get_list
()
const
=
delete
;
5108
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
5109
inline
typed::multi_val<Range>
max_multi_val
()
const
;
5110
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
5111
inline
typed::multi_val<Range>
min_multi_val
()
const
;
5112
inline
typed::multi_aff<Domain, Range>
neg
()
const
;
5113
inline
typed::pw_multi_aff<Domain, Range>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
5114
inline
typed::union_pw_multi_aff<Domain, Range>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
5115
template
<
typename
Domain2,
typename
Range2>
5116
inline
typed::multi_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::multi_aff<Domain2, Range2>
&multi2)
const
;
5117
template
<
typename
Domain2,
typename
Range2>
5118
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::multi_pw_aff<Domain2, Range2>
&multi2)
const
;
5119
template
<
typename
Domain2,
typename
Range2>
5120
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::pw_multi_aff<Domain2, Range2>
&pma2)
const
;
5121
template
<
typename
Domain2>
5122
inline
typed::multi_aff<pair<Domain, Domain2>
,
pair<Range, Anonymous>
>
product
(
const
typed::aff<Domain2, Anonymous>
&multi2)
const
;
5123
template
<
typename
Domain2>
5124
inline
typed::multi_aff<Domain2, Range>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&ma2)
const
;
5125
inline
typed::multi_aff<Range>
pullback
(
const
typed::multi_aff<Domain>
&ma2)
const
;
5126
template
<
typename
Domain2>
5127
inline
typed::multi_pw_aff<Domain2, Range>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa2)
const
;
5128
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
5129
template
<
typename
Domain2>
5130
inline
typed::pw_multi_aff<Domain2, Range>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&pma2)
const
;
5131
inline
typed::pw_multi_aff<Range>
pullback
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
5132
template
<
typename
Domain2>
5133
inline
typed::union_pw_multi_aff<Domain2, Range>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma2)
const
;
5134
inline
typed::union_pw_multi_aff<Range>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
5135
template
<
typename
Domain2>
5136
inline
typed::multi_aff<Domain2, Range>
pullback
(
const
typed::aff<Domain2, Domain>
&ma2)
const
;
5137
inline
typed::multi_aff<Range>
pullback
(
const
typed::aff<Domain>
&ma2)
const
;
5138
inline
typed::pw_multi_aff_list<Domain, Range>
pw_multi_aff_list
()
const
;
5139
inline
typed::pw_multi_aff<Domain, Range>
range_factor_domain
()
const
=
delete
;
5140
inline
typed::pw_multi_aff<Domain, Range>
range_factor_range
()
const
=
delete
;
5141
template
<
typename
Range2>
5142
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_aff<Domain, Range2>
&multi2)
const
;
5143
template
<
typename
Range2>
5144
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_pw_aff<Domain, Range2>
&multi2)
const
;
5145
template
<
typename
Range2>
5146
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_union_pw_aff<Domain, Range2>
&multi2)
const
;
5147
template
<
typename
Range2>
5148
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::pw_multi_aff<Domain, Range2>
&pma2)
const
;
5149
template
<
typename
Range2>
5150
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::union_pw_multi_aff<Domain, Range2>
&upma2)
const
;
5151
inline
typed::multi_aff<Domain, pair<Range, Anonymous>
>
range_product
(
const
typed::aff<Domain, Anonymous>
&multi2)
const
;
5152
inline
typed::id<Domain, Range>
get_range_tuple_id
()
const
=
delete
;
5153
inline
typed::multi_aff<Domain, Range>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
5154
inline
typed::multi_aff<Domain, Range>
scale
(
const
typed::val<Range>
&v)
const
;
5155
inline
typed::multi_aff<Domain, Range>
scale
(
long
v)
const
;
5156
inline
typed::multi_aff<Domain, Range>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
5157
inline
typed::multi_aff<Domain, Range>
scale_down
(
const
typed::val<Range>
&v)
const
;
5158
inline
typed::multi_aff<Domain, Range>
scale_down
(
long
v)
const
;
5159
inline
typed::multi_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::aff<Domain, Anonymous>
&el)
const
;
5160
inline
typed::multi_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
5161
inline
typed::multi_union_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
5162
template
<
typename
Range2>
5163
inline
typed::multi_aff<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
5164
template
<
typename
Range2>
5165
inline
typed::multi_aff<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
5166
inline
typed::space<Domain, Range>
space
()
const
;
5167
inline
typed::space<Domain, Range>
get_space
()
const
=
delete
;
5168
inline
typed::multi_aff<Domain, Range>
sub
(
const
typed::multi_aff<Domain, Range>
&multi2)
const
;
5169
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
5170
inline
typed::multi_union_pw_aff<Domain, Range>
sub
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
5171
inline
typed::pw_multi_aff<Domain, Range>
sub
(
const
typed::pw_multi_aff<Domain, Range>
&pma2)
const
;
5172
inline
typed::union_pw_multi_aff<Domain, Range>
sub
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
5173
inline
typed::multi_aff<Domain, Range>
sub
(
const
typed::aff<Domain, Range>
&multi2)
const
;
5174
inline
typed::pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::set<Domain>
&
set
)
const
;
5175
inline
typed::union_pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::space<Domain>
&
space
)
const
;
5176
inline
typed::union_pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::union_set<Domain>
&uset)
const
;
5177
inline
typed::multi_pw_aff<Domain, Range>
to_multi_pw_aff
()
const
;
5178
inline
typed::multi_union_pw_aff<Domain, Range>
to_multi_union_pw_aff
()
const
;
5179
inline
typed::pw_multi_aff<Domain, Range>
to_pw_multi_aff
()
const
;
5180
inline
typed::union_pw_multi_aff<Domain, Range>
to_union_pw_multi_aff
()
const
;
5181
inline
typed::multi_aff<Domain, Range>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
5182
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::multi_pw_aff<Domain, Range>
&mpa2)
const
;
5183
inline
typed::multi_union_pw_aff<Domain, Range>
union_add
(
const
typed::multi_union_pw_aff<Domain, Range>
&mupa2)
const
;
5184
inline
typed::pw_multi_aff<Domain, Range>
union_add
(
const
typed::pw_multi_aff<Domain, Range>
&pma2)
const
;
5185
inline
typed::union_pw_multi_aff<Domain, Range>
union_add
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
5186
};
5187
5188
template
<
typename
Domain2,
typename
Range2,
typename
Range>
5189
struct
multi_aff
<
pair
<
Domain2
,
Range2
>,
Range
> :
public
isl::multi_aff
{
5190
template
<
typename
...>
5191
friend
struct
aff
;
5192
template
<
typename
...>
5193
friend
struct
aff_list
;
5194
template
<
typename
...>
5195
friend
struct
basic_map
;
5196
template
<
typename
...>
5197
friend
struct
basic_set
;
5198
template
<
typename
...>
5199
friend
struct
fixed_box
;
5200
template
<
typename
...>
5201
friend
struct
id
;
5202
template
<
typename
...>
5203
friend
struct
id_list
;
5204
template
<
typename
...>
5205
friend
struct
map
;
5206
template
<
typename
...>
5207
friend
struct
map_list
;
5208
template
<
typename
...>
5209
friend
struct
multi_aff
;
5210
template
<
typename
...>
5211
friend
struct
multi_id
;
5212
template
<
typename
...>
5213
friend
struct
multi_pw_aff
;
5214
template
<
typename
...>
5215
friend
struct
multi_union_pw_aff
;
5216
template
<
typename
...>
5217
friend
struct
multi_val
;
5218
template
<
typename
...>
5219
friend
struct
point
;
5220
template
<
typename
...>
5221
friend
struct
pw_aff
;
5222
template
<
typename
...>
5223
friend
struct
pw_aff_list
;
5224
template
<
typename
...>
5225
friend
struct
pw_multi_aff
;
5226
template
<
typename
...>
5227
friend
struct
pw_multi_aff_list
;
5228
template
<
typename
...>
5229
friend
struct
set
;
5230
template
<
typename
...>
5231
friend
struct
set_list
;
5232
template
<
typename
...>
5233
friend
struct
space
;
5234
template
<
typename
...>
5235
friend
struct
union_map
;
5236
template
<
typename
...>
5237
friend
struct
union_pw_aff
;
5238
template
<
typename
...>
5239
friend
struct
union_pw_aff_list
;
5240
template
<
typename
...>
5241
friend
struct
union_pw_multi_aff
;
5242
template
<
typename
...>
5243
friend
struct
union_set
;
5244
template
<
typename
...>
5245
friend
struct
union_set_list
;
5246
template
<
typename
...>
5247
friend
struct
val
;
5248
template
<
typename
...>
5249
friend
struct
val_list
;
5250
5251
multi_aff
() =
default
;
5252
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
5253
typename
std::enable_if<
5254
std::is_base_of<Domain2, Arg1>{} &&
5255
std::is_base_of<Range2, Arg2>{} &&
5256
std::is_base_of<Range, Arg3>{},
5257
bool
>
::type
=
true
>
5258
multi_aff
(
const
multi_aff
<
pair<Arg1, Arg2>
, Arg3> &
obj
) :
isl
::
multi_aff
(
obj
) {}
5259
private
:
5260
template
<
typename
base,
5261
typename
std::enable_if<
5262
std::is_same<base, isl::multi_aff>{},
bool
>
::type
=
true
>
5263
multi_aff
(
const
base &
obj
) :
isl
::
multi_aff
(
obj
) {}
5264
public
:
5265
static
multi_aff
from
(
const
isl::multi_aff
&
obj
) {
5266
return
multi_aff
(
obj
);
5267
}
5268
inline
/* implicit */
multi_aff
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &
aff
);
5269
inline
explicit
multi_aff
(
const
typed::space
<
pair<Domain2, Range2>
,
Range
> &
space
,
const
typed::aff_list
<
pair<Domain2, Range2>
,
Anonymous
> &
list
);
5270
inline
explicit
multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
5271
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5272
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5273
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5274
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
5275
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &upma2)
const
;
5276
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5277
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
const
typed::multi_val<Range>
&mv)
const
;
5278
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
const
typed::val<Range>
&v)
const
;
5279
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
long
v)
const
;
5280
template
<
typename
Arg2>
5281
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
, Arg2>
apply
(
const
typed::union_pw_multi_aff<Range, Arg2>
&upma2)
const
;
5282
inline
typed::map<pair<Domain2, Range2>
,
Range
>
as_map
()
const
;
5283
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
as_multi_aff
()
const
;
5284
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
as_multi_union_pw_aff
()
const
;
5285
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
as_pw_multi_aff
()
const
;
5286
inline
typed::set<pair<Domain2, Range2>
,
Range
>
as_set
()
const
=
delete
;
5287
inline
typed::union_map<pair<Domain2, Range2>
,
Range
>
as_union_map
()
const
;
5288
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
at
(
int
pos
)
const
;
5289
inline
typed::aff<pair<Domain2, Range2>
,
Range
>
get_at
(
int
pos
)
const
=
delete
;
5290
inline
typed::basic_set<pair<Domain2, Range2>
>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
5291
inline
typed::multi_aff<Range>
bind_domain
(
const
typed::multi_id
<
pair<Domain2, Range2>
> &
tuple
)
const
;
5292
inline
typed::multi_aff<Range2, Range>
bind_domain_wrapped_domain
(
const
typed::multi_id<Domain2>
&
tuple
)
const
;
5293
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
coalesce
()
const
;
5294
inline
typed::multi_val<Range>
constant_multi_val
()
const
;
5295
inline
typed::multi_val<pair<Domain2, Range2>
,
Range
>
get_constant_multi_val
()
const
=
delete
;
5296
inline
typed::set<pair<Domain2, Range2>
>
domain
()
const
;
5297
inline
typed::multi_aff<pair<Range2, Domain2>
,
Range
>
domain_reverse
()
const
;
5298
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
drop_unused_params
()
const
;
5299
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
extract_pw_multi_aff
(
const
typed::space
<
pair<Domain2, Range2>
,
Range
> &
space
)
const
;
5300
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
floor
()
const
;
5301
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::set
<
pair<Domain2, Range2>
> &
context
)
const
;
5302
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::union_set
<
pair<Domain2, Range2>
> &
context
)
const
;
5303
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
context
)
const
;
5304
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::point
<
pair<Domain2, Range2>
> &
context
)
const
;
5305
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::set<>
&
context
)
const
;
5306
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
5307
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::point<>
&
context
)
const
;
5308
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
identity
()
const
;
5309
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
5310
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
5311
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
5312
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
5313
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain_wrapped_domain
(
const
typed::union_set<Domain2>
&uset)
const
;
5314
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
5315
inline
typed::aff_list<pair<Domain2, Range2>
,
Anonymous
>
list
()
const
;
5316
inline
typed::aff_list<pair<Domain2, Range2>
,
Range
>
get_list
()
const
=
delete
;
5317
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5318
inline
typed::multi_val<Range>
max_multi_val
()
const
;
5319
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5320
inline
typed::multi_val<Range>
min_multi_val
()
const
;
5321
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
neg
()
const
;
5322
template
<
typename
Domain3>
5323
inline
typed::pw_multi_aff<pair<Domain3, Range2>
,
Range
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<Domain3, Domain2>
&pma2)
const
;
5324
template
<
typename
Domain3>
5325
inline
typed::union_pw_multi_aff<pair<Domain3, Range2>
,
Range
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<Domain3, Domain2>
&upma2)
const
;
5326
template
<
typename
Arg2,
typename
Arg3>
5327
inline
typed::multi_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::multi_aff<Arg2, Arg3>
&multi2)
const
;
5328
template
<
typename
Arg2,
typename
Arg3>
5329
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::multi_pw_aff<Arg2, Arg3>
&multi2)
const
;
5330
template
<
typename
Arg2,
typename
Arg3>
5331
inline
typed::pw_multi_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::pw_multi_aff<Arg2, Arg3>
&pma2)
const
;
5332
template
<
typename
Arg2>
5333
inline
typed::multi_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Anonymous>
>
product
(
const
typed::aff<Arg2, Anonymous>
&multi2)
const
;
5334
template
<
typename
Arg2>
5335
inline
typed::multi_aff<Arg2, Range>
pullback
(
const
typed::multi_aff
<Arg2,
pair<Domain2, Range2>
> &ma2)
const
;
5336
inline
typed::multi_aff<Range>
pullback
(
const
typed::multi_aff
<
pair<Domain2, Range2>
> &ma2)
const
;
5337
template
<
typename
Arg2>
5338
inline
typed::multi_pw_aff<Arg2, Range>
pullback
(
const
typed::multi_pw_aff
<Arg2,
pair<Domain2, Range2>
> &mpa2)
const
;
5339
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
> &mpa2)
const
;
5340
template
<
typename
Arg2>
5341
inline
typed::pw_multi_aff<Arg2, Range>
pullback
(
const
typed::pw_multi_aff
<Arg2,
pair<Domain2, Range2>
> &pma2)
const
;
5342
inline
typed::pw_multi_aff<Range>
pullback
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
> &pma2)
const
;
5343
template
<
typename
Arg2>
5344
inline
typed::union_pw_multi_aff<Arg2, Range>
pullback
(
const
typed::union_pw_multi_aff
<Arg2,
pair<Domain2, Range2>
> &upma2)
const
;
5345
inline
typed::union_pw_multi_aff<Range>
pullback
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
> &upma2)
const
;
5346
template
<
typename
Arg2>
5347
inline
typed::multi_aff<Arg2, Range>
pullback
(
const
typed::aff
<Arg2,
pair<Domain2, Range2>
> &ma2)
const
;
5348
inline
typed::multi_aff<Range>
pullback
(
const
typed::aff
<
pair<Domain2, Range2>
> &ma2)
const
;
5349
inline
typed::pw_multi_aff_list<pair<Domain2, Range2>
,
Range
>
pw_multi_aff_list
()
const
;
5350
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
range_factor_domain
()
const
=
delete
;
5351
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
range_factor_range
()
const
=
delete
;
5352
template
<
typename
Arg2>
5353
inline
typed::multi_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
5354
template
<
typename
Arg2>
5355
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
5356
template
<
typename
Arg2>
5357
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
5358
template
<
typename
Arg2>
5359
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
, Arg2> &pma2)
const
;
5360
template
<
typename
Arg2>
5361
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
, Arg2> &upma2)
const
;
5362
inline
typed::multi_aff<pair<Domain2, Range2>
,
pair<Range, Anonymous>
>
range_product
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
5363
inline
typed::id<pair<Domain2, Range2>
,
Range
>
get_range_tuple_id
()
const
=
delete
;
5364
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
5365
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
scale
(
const
typed::val<Range>
&v)
const
;
5366
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
scale
(
long
v)
const
;
5367
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
5368
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
const
typed::val<Range>
&v)
const
;
5369
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
long
v)
const
;
5370
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
5371
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
5372
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
5373
template
<
typename
Arg1>
5374
inline
typed::multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
5375
template
<
typename
Arg1>
5376
inline
typed::multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
std::string &
id
)
const
;
5377
inline
typed::space<pair<Domain2, Range2>
,
Range
>
space
()
const
;
5378
inline
typed::space<pair<Domain2, Range2>
,
Range
>
get_space
()
const
=
delete
;
5379
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5380
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5381
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5382
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
5383
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &upma2)
const
;
5384
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
5385
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
5386
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
5387
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
5388
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
to_multi_pw_aff
()
const
;
5389
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
to_multi_union_pw_aff
()
const
;
5390
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
to_pw_multi_aff
()
const
;
5391
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
to_union_pw_multi_aff
()
const
;
5392
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
5393
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
5394
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &mupa2)
const
;
5395
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
5396
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &upma2)
const
;
5397
};
5398
5399
template
<
typename
Domain,
typename
Range,
typename
Range2>
5400
struct
multi_aff
<
Domain
,
pair
<
Range
,
Range2
>> :
public
isl::multi_aff
{
5401
template
<
typename
...>
5402
friend
struct
aff
;
5403
template
<
typename
...>
5404
friend
struct
aff_list
;
5405
template
<
typename
...>
5406
friend
struct
basic_map
;
5407
template
<
typename
...>
5408
friend
struct
basic_set
;
5409
template
<
typename
...>
5410
friend
struct
fixed_box
;
5411
template
<
typename
...>
5412
friend
struct
id
;
5413
template
<
typename
...>
5414
friend
struct
id_list
;
5415
template
<
typename
...>
5416
friend
struct
map
;
5417
template
<
typename
...>
5418
friend
struct
map_list
;
5419
template
<
typename
...>
5420
friend
struct
multi_aff
;
5421
template
<
typename
...>
5422
friend
struct
multi_id
;
5423
template
<
typename
...>
5424
friend
struct
multi_pw_aff
;
5425
template
<
typename
...>
5426
friend
struct
multi_union_pw_aff
;
5427
template
<
typename
...>
5428
friend
struct
multi_val
;
5429
template
<
typename
...>
5430
friend
struct
point
;
5431
template
<
typename
...>
5432
friend
struct
pw_aff
;
5433
template
<
typename
...>
5434
friend
struct
pw_aff_list
;
5435
template
<
typename
...>
5436
friend
struct
pw_multi_aff
;
5437
template
<
typename
...>
5438
friend
struct
pw_multi_aff_list
;
5439
template
<
typename
...>
5440
friend
struct
set
;
5441
template
<
typename
...>
5442
friend
struct
set_list
;
5443
template
<
typename
...>
5444
friend
struct
space
;
5445
template
<
typename
...>
5446
friend
struct
union_map
;
5447
template
<
typename
...>
5448
friend
struct
union_pw_aff
;
5449
template
<
typename
...>
5450
friend
struct
union_pw_aff_list
;
5451
template
<
typename
...>
5452
friend
struct
union_pw_multi_aff
;
5453
template
<
typename
...>
5454
friend
struct
union_set
;
5455
template
<
typename
...>
5456
friend
struct
union_set_list
;
5457
template
<
typename
...>
5458
friend
struct
val
;
5459
template
<
typename
...>
5460
friend
struct
val_list
;
5461
5462
multi_aff
() =
default
;
5463
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
5464
typename
std::enable_if<
5465
std::is_base_of<Domain, Arg1>{} &&
5466
std::is_base_of<Range, Arg2>{} &&
5467
std::is_base_of<Range2, Arg3>{},
5468
bool
>
::type
=
true
>
5469
multi_aff
(
const
multi_aff
<Arg1,
pair<Arg2, Arg3>
> &
obj
) :
isl
::
multi_aff
(
obj
) {}
5470
private
:
5471
template
<
typename
base,
5472
typename
std::enable_if<
5473
std::is_same<base, isl::multi_aff>{},
bool
>
::type
=
true
>
5474
multi_aff
(
const
base &
obj
) :
isl
::
multi_aff
(
obj
) {}
5475
public
:
5476
static
multi_aff
from
(
const
isl::multi_aff
&
obj
) {
5477
return
multi_aff
(
obj
);
5478
}
5479
inline
/* implicit */
multi_aff
(
const
typed::aff
<
Domain
,
pair<Range, Range2>
> &
aff
);
5480
inline
explicit
multi_aff
(
const
typed::space
<
Domain
,
pair<Range, Range2>
> &
space
,
const
typed::aff_list<Domain, Anonymous>
&
list
);
5481
inline
explicit
multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
5482
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5483
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5484
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::multi_union_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5485
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
5486
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::union_pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upma2)
const
;
5487
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5488
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
add_constant
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
5489
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
add_constant
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
5490
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
add_constant
(
long
v)
const
;
5491
template
<
typename
Arg3>
5492
inline
typed::union_pw_multi_aff<Domain, Arg3>
apply
(
const
typed::union_pw_multi_aff
<
pair<Range, Range2>
, Arg3> &upma2)
const
;
5493
inline
typed::map<Domain, pair<Range, Range2>
>
as_map
()
const
;
5494
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
as_multi_aff
()
const
;
5495
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
5496
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
5497
inline
typed::set<Domain, pair<Range, Range2>
>
as_set
()
const
=
delete
;
5498
inline
typed::union_map<Domain, pair<Range, Range2>
>
as_union_map
()
const
;
5499
inline
typed::aff<Domain, Anonymous>
at
(
int
pos
)
const
;
5500
inline
typed::aff<Domain, pair<Range, Range2>
>
get_at
(
int
pos
)
const
=
delete
;
5501
inline
typed::basic_set<Domain>
bind
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
5502
inline
typed::multi_aff<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
5503
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
5504
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
coalesce
()
const
;
5505
inline
typed::multi_val<pair<Range, Range2>
>
constant_multi_val
()
const
;
5506
inline
typed::multi_val<Domain, pair<Range, Range2>
>
get_constant_multi_val
()
const
=
delete
;
5507
inline
typed::set<Domain>
domain
()
const
;
5508
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
domain_reverse
()
const
=
delete
;
5509
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
drop_unused_params
()
const
;
5510
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
extract_pw_multi_aff
(
const
typed::space
<
Domain
,
pair<Range, Range2>
> &
space
)
const
;
5511
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
floor
()
const
;
5512
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::set<Domain>
&
context
)
const
;
5513
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
5514
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
5515
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::point<Domain>
&
context
)
const
;
5516
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
5517
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
5518
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::point<>
&
context
)
const
;
5519
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
identity
()
const
;
5520
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
5521
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
5522
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
5523
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
5524
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
5525
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
5526
inline
typed::aff_list<Domain, Anonymous>
list
()
const
;
5527
inline
typed::aff_list<Domain, pair<Range, Range2>
>
get_list
()
const
=
delete
;
5528
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
max
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5529
inline
typed::multi_val<pair<Range, Range2>
>
max_multi_val
()
const
;
5530
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
min
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5531
inline
typed::multi_val<pair<Range, Range2>
>
min_multi_val
()
const
;
5532
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
neg
()
const
;
5533
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
5534
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
5535
template
<
typename
Domain2,
typename
Arg3>
5536
inline
typed::multi_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::multi_aff<Domain2, Arg3>
&multi2)
const
;
5537
template
<
typename
Domain2,
typename
Arg3>
5538
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::multi_pw_aff<Domain2, Arg3>
&multi2)
const
;
5539
template
<
typename
Domain2,
typename
Arg3>
5540
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::pw_multi_aff<Domain2, Arg3>
&pma2)
const
;
5541
template
<
typename
Domain2>
5542
inline
typed::multi_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
,
Anonymous
>>
product
(
const
typed::aff<Domain2, Anonymous>
&multi2)
const
;
5543
template
<
typename
Domain2>
5544
inline
typed::multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&ma2)
const
;
5545
inline
typed::multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_aff<Domain>
&ma2)
const
;
5546
template
<
typename
Domain2>
5547
inline
typed::multi_pw_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa2)
const
;
5548
inline
typed::multi_pw_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
5549
template
<
typename
Domain2>
5550
inline
typed::pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&pma2)
const
;
5551
inline
typed::pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
5552
template
<
typename
Domain2>
5553
inline
typed::union_pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma2)
const
;
5554
inline
typed::union_pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
5555
template
<
typename
Domain2>
5556
inline
typed::multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::aff<Domain2, Domain>
&ma2)
const
;
5557
inline
typed::multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::aff<Domain>
&ma2)
const
;
5558
inline
typed::pw_multi_aff_list<Domain, pair<Range, Range2>
>
pw_multi_aff_list
()
const
;
5559
inline
typed::pw_multi_aff<Domain, Range>
range_factor_domain
()
const
;
5560
inline
typed::pw_multi_aff<Domain, Range2>
range_factor_range
()
const
;
5561
template
<
typename
Arg3>
5562
inline
typed::multi_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::multi_aff<Domain, Arg3>
&multi2)
const
;
5563
template
<
typename
Arg3>
5564
inline
typed::multi_pw_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::multi_pw_aff<Domain, Arg3>
&multi2)
const
;
5565
template
<
typename
Arg3>
5566
inline
typed::multi_union_pw_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::multi_union_pw_aff<Domain, Arg3>
&multi2)
const
;
5567
template
<
typename
Arg3>
5568
inline
typed::pw_multi_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::pw_multi_aff<Domain, Arg3>
&pma2)
const
;
5569
template
<
typename
Arg3>
5570
inline
typed::union_pw_multi_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::union_pw_multi_aff<Domain, Arg3>
&upma2)
const
;
5571
inline
typed::multi_aff<Domain, pair<pair<Range, Range2>
,
Anonymous
>>
range_product
(
const
typed::aff<Domain, Anonymous>
&multi2)
const
;
5572
inline
typed::id<Domain, pair<Range, Range2>
>
get_range_tuple_id
()
const
=
delete
;
5573
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
scale
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
5574
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
scale
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
5575
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
scale
(
long
v)
const
;
5576
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
scale_down
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
5577
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
scale_down
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
5578
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
scale_down
(
long
v)
const
;
5579
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::aff<Domain, Anonymous>
&el)
const
;
5580
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
5581
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
5582
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
5583
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
5584
inline
typed::space<Domain, pair<Range, Range2>
>
space
()
const
;
5585
inline
typed::space<Domain, pair<Range, Range2>
>
get_space
()
const
=
delete
;
5586
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5587
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5588
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::multi_union_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5589
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
5590
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::union_pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upma2)
const
;
5591
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
5592
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::set<Domain>
&
set
)
const
;
5593
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::space<Domain>
&
space
)
const
;
5594
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set<Domain>
&uset)
const
;
5595
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
to_multi_pw_aff
()
const
;
5596
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
to_multi_union_pw_aff
()
const
;
5597
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
to_pw_multi_aff
()
const
;
5598
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
to_union_pw_multi_aff
()
const
;
5599
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
5600
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &mpa2)
const
;
5601
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::multi_union_pw_aff
<
Domain
,
pair<Range, Range2>
> &mupa2)
const
;
5602
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
5603
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::union_pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upma2)
const
;
5604
};
5605
5606
template
<
typename
T1,
typename
T2,
typename
Range,
typename
Range2>
5607
struct
multi_aff
<
pair
<T1, T2>,
pair
<
Range
,
Range2
>> :
public
isl::multi_aff
{
5608
template
<
typename
...>
5609
friend
struct
aff
;
5610
template
<
typename
...>
5611
friend
struct
aff_list
;
5612
template
<
typename
...>
5613
friend
struct
basic_map
;
5614
template
<
typename
...>
5615
friend
struct
basic_set
;
5616
template
<
typename
...>
5617
friend
struct
fixed_box
;
5618
template
<
typename
...>
5619
friend
struct
id
;
5620
template
<
typename
...>
5621
friend
struct
id_list
;
5622
template
<
typename
...>
5623
friend
struct
map
;
5624
template
<
typename
...>
5625
friend
struct
map_list
;
5626
template
<
typename
...>
5627
friend
struct
multi_aff
;
5628
template
<
typename
...>
5629
friend
struct
multi_id
;
5630
template
<
typename
...>
5631
friend
struct
multi_pw_aff
;
5632
template
<
typename
...>
5633
friend
struct
multi_union_pw_aff
;
5634
template
<
typename
...>
5635
friend
struct
multi_val
;
5636
template
<
typename
...>
5637
friend
struct
point
;
5638
template
<
typename
...>
5639
friend
struct
pw_aff
;
5640
template
<
typename
...>
5641
friend
struct
pw_aff_list
;
5642
template
<
typename
...>
5643
friend
struct
pw_multi_aff
;
5644
template
<
typename
...>
5645
friend
struct
pw_multi_aff_list
;
5646
template
<
typename
...>
5647
friend
struct
set
;
5648
template
<
typename
...>
5649
friend
struct
set_list
;
5650
template
<
typename
...>
5651
friend
struct
space
;
5652
template
<
typename
...>
5653
friend
struct
union_map
;
5654
template
<
typename
...>
5655
friend
struct
union_pw_aff
;
5656
template
<
typename
...>
5657
friend
struct
union_pw_aff_list
;
5658
template
<
typename
...>
5659
friend
struct
union_pw_multi_aff
;
5660
template
<
typename
...>
5661
friend
struct
union_set
;
5662
template
<
typename
...>
5663
friend
struct
union_set_list
;
5664
template
<
typename
...>
5665
friend
struct
val
;
5666
template
<
typename
...>
5667
friend
struct
val_list
;
5668
5669
multi_aff
() =
default
;
5670
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
typename
Arg4,
5671
typename
std::enable_if<
5672
std::is_base_of<T1, Arg1>{} &&
5673
std::is_base_of<T2, Arg2>{} &&
5674
std::is_base_of<Range, Arg3>{} &&
5675
std::is_base_of<Range2, Arg4>{},
5676
bool
>
::type
=
true
>
5677
multi_aff
(
const
multi_aff
<
pair<Arg1, Arg2>
,
pair<Arg3, Arg4>
> &
obj
) :
isl
::
multi_aff
(
obj
) {}
5678
private
:
5679
template
<
typename
base,
5680
typename
std::enable_if<
5681
std::is_same<base, isl::multi_aff>{},
bool
>
::type
=
true
>
5682
multi_aff
(
const
base &
obj
) :
isl
::
multi_aff
(
obj
) {}
5683
public
:
5684
static
multi_aff
from
(
const
isl::multi_aff
&
obj
) {
5685
return
multi_aff
(
obj
);
5686
}
5687
inline
/* implicit */
multi_aff
(
const
typed::aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &
aff
);
5688
inline
explicit
multi_aff
(
const
typed::space
<
pair<T1, T2>
,
pair<Range, Range2>
> &
space
,
const
typed::aff_list
<
pair<T1, T2>
,
Anonymous
> &
list
);
5689
inline
explicit
multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
5690
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5691
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5692
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5693
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
5694
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upma2)
const
;
5695
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5696
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add_constant
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
5697
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add_constant
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
5698
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add_constant
(
long
v)
const
;
5699
template
<
typename
Arg2>
5700
inline
typed::union_pw_multi_aff<pair<T1, T2>
, Arg2>
apply
(
const
typed::union_pw_multi_aff
<
pair<Range, Range2>
, Arg2> &upma2)
const
;
5701
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
as_map
()
const
;
5702
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_multi_aff
()
const
;
5703
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
5704
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
5705
inline
typed::set<pair<T1, T2>
,
pair<Range, Range2>
>
as_set
()
const
=
delete
;
5706
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
as_union_map
()
const
;
5707
inline
typed::aff<pair<T1, T2>
,
Anonymous
>
at
(
int
pos
)
const
;
5708
inline
typed::aff<pair<T1, T2>
,
pair<Range, Range2>
>
get_at
(
int
pos
)
const
=
delete
;
5709
inline
typed::basic_set<pair<T1, T2>
>
bind
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
5710
inline
typed::multi_aff<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
5711
inline
typed::multi_aff<T2, pair<Range, Range2>
>
bind_domain_wrapped_domain
(
const
typed::multi_id<T1>
&
tuple
)
const
;
5712
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
coalesce
()
const
;
5713
inline
typed::multi_val<pair<Range, Range2>
>
constant_multi_val
()
const
;
5714
inline
typed::multi_val<pair<T1, T2>
,
pair<Range, Range2>
>
get_constant_multi_val
()
const
=
delete
;
5715
inline
typed::set<pair<T1, T2>
>
domain
()
const
;
5716
inline
typed::multi_aff<pair<T2, T1>
,
pair<Range, Range2>
>
domain_reverse
()
const
;
5717
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
drop_unused_params
()
const
;
5718
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
extract_pw_multi_aff
(
const
typed::space
<
pair<T1, T2>
,
pair<Range, Range2>
> &
space
)
const
;
5719
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
floor
()
const
;
5720
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::set
<
pair<T1, T2>
> &
context
)
const
;
5721
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::union_set
<
pair<T1, T2>
> &
context
)
const
;
5722
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::basic_set
<
pair<T1, T2>
> &
context
)
const
;
5723
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::point
<
pair<T1, T2>
> &
context
)
const
;
5724
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
5725
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
5726
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::point<>
&
context
)
const
;
5727
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
identity
()
const
;
5728
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
5729
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
5730
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
5731
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
5732
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<T1>
&uset)
const
;
5733
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
5734
inline
typed::aff_list<pair<T1, T2>
,
Anonymous
>
list
()
const
;
5735
inline
typed::aff_list<pair<T1, T2>
,
pair<Range, Range2>
>
get_list
()
const
=
delete
;
5736
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
max
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5737
inline
typed::multi_val<pair<Range, Range2>
>
max_multi_val
()
const
;
5738
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
min
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5739
inline
typed::multi_val<pair<Range, Range2>
>
min_multi_val
()
const
;
5740
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
neg
()
const
;
5741
template
<
typename
Domain3>
5742
inline
typed::pw_multi_aff<pair<Domain3, T2>
,
pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<Domain3, T1>
&pma2)
const
;
5743
template
<
typename
Domain3>
5744
inline
typed::union_pw_multi_aff<pair<Domain3, T2>
,
pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<Domain3, T1>
&upma2)
const
;
5745
template
<
typename
Domain2,
typename
Arg2>
5746
inline
typed::multi_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::multi_aff<Domain2, Arg2>
&multi2)
const
;
5747
template
<
typename
Domain2,
typename
Arg2>
5748
inline
typed::multi_pw_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::multi_pw_aff<Domain2, Arg2>
&multi2)
const
;
5749
template
<
typename
Domain2,
typename
Arg2>
5750
inline
typed::pw_multi_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::pw_multi_aff<Domain2, Arg2>
&pma2)
const
;
5751
template
<
typename
Domain2>
5752
inline
typed::multi_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
,
Anonymous
>>
product
(
const
typed::aff<Domain2, Anonymous>
&multi2)
const
;
5753
template
<
typename
Domain2>
5754
inline
typed::multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_aff
<
Domain2
,
pair<T1, T2>
> &ma2)
const
;
5755
inline
typed::multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_aff
<
pair<T1, T2>
> &ma2)
const
;
5756
template
<
typename
Domain2>
5757
inline
typed::multi_pw_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff
<
Domain2
,
pair<T1, T2>
> &mpa2)
const
;
5758
inline
typed::multi_pw_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff
<
pair<T1, T2>
> &mpa2)
const
;
5759
template
<
typename
Domain2>
5760
inline
typed::pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &pma2)
const
;
5761
inline
typed::pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff
<
pair<T1, T2>
> &pma2)
const
;
5762
template
<
typename
Domain2>
5763
inline
typed::union_pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &upma2)
const
;
5764
inline
typed::union_pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
> &upma2)
const
;
5765
template
<
typename
Domain2>
5766
inline
typed::multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::aff
<
Domain2
,
pair<T1, T2>
> &ma2)
const
;
5767
inline
typed::multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::aff
<
pair<T1, T2>
> &ma2)
const
;
5768
inline
typed::pw_multi_aff_list<pair<T1, T2>
,
pair<Range, Range2>
>
pw_multi_aff_list
()
const
;
5769
inline
typed::pw_multi_aff<pair<T1, T2>
,
Range
>
range_factor_domain
()
const
;
5770
inline
typed::pw_multi_aff<pair<T1, T2>
,
Range2
>
range_factor_range
()
const
;
5771
template
<
typename
Arg2>
5772
inline
typed::multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::multi_aff
<
pair<T1, T2>
, Arg2> &multi2)
const
;
5773
template
<
typename
Arg2>
5774
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::multi_pw_aff
<
pair<T1, T2>
, Arg2> &multi2)
const
;
5775
template
<
typename
Arg2>
5776
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
, Arg2> &multi2)
const
;
5777
template
<
typename
Arg2>
5778
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::pw_multi_aff
<
pair<T1, T2>
, Arg2> &pma2)
const
;
5779
template
<
typename
Arg2>
5780
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
, Arg2> &upma2)
const
;
5781
inline
typed::multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
,
Anonymous
>>
range_product
(
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &multi2)
const
;
5782
inline
typed::id<pair<T1, T2>
,
pair<Range, Range2>
>
get_range_tuple_id
()
const
=
delete
;
5783
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
5784
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
5785
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale
(
long
v)
const
;
5786
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale_down
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
5787
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale_down
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
5788
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale_down
(
long
v)
const
;
5789
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::aff
<
pair<T1, T2>
,
Anonymous
> &el)
const
;
5790
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &el)
const
;
5791
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<T1, T2>
,
Anonymous
> &el)
const
;
5792
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
5793
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
5794
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
space
()
const
;
5795
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
get_space
()
const
=
delete
;
5796
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5797
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5798
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5799
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
5800
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upma2)
const
;
5801
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
5802
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
5803
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
5804
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
5805
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
to_multi_pw_aff
()
const
;
5806
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
to_multi_union_pw_aff
()
const
;
5807
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
to_pw_multi_aff
()
const
;
5808
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
to_union_pw_multi_aff
()
const
;
5809
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
5810
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &mpa2)
const
;
5811
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &mupa2)
const
;
5812
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
5813
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upma2)
const
;
5814
};
5815
5816
template
<
typename
Domain>
5817
struct
multi_id
<
Domain
> :
public
isl::multi_id
{
5818
template
<
typename
...>
5819
friend
struct
aff
;
5820
template
<
typename
...>
5821
friend
struct
aff_list
;
5822
template
<
typename
...>
5823
friend
struct
basic_map
;
5824
template
<
typename
...>
5825
friend
struct
basic_set
;
5826
template
<
typename
...>
5827
friend
struct
fixed_box
;
5828
template
<
typename
...>
5829
friend
struct
id
;
5830
template
<
typename
...>
5831
friend
struct
id_list
;
5832
template
<
typename
...>
5833
friend
struct
map
;
5834
template
<
typename
...>
5835
friend
struct
map_list
;
5836
template
<
typename
...>
5837
friend
struct
multi_aff
;
5838
template
<
typename
...>
5839
friend
struct
multi_id
;
5840
template
<
typename
...>
5841
friend
struct
multi_pw_aff
;
5842
template
<
typename
...>
5843
friend
struct
multi_union_pw_aff
;
5844
template
<
typename
...>
5845
friend
struct
multi_val
;
5846
template
<
typename
...>
5847
friend
struct
point
;
5848
template
<
typename
...>
5849
friend
struct
pw_aff
;
5850
template
<
typename
...>
5851
friend
struct
pw_aff_list
;
5852
template
<
typename
...>
5853
friend
struct
pw_multi_aff
;
5854
template
<
typename
...>
5855
friend
struct
pw_multi_aff_list
;
5856
template
<
typename
...>
5857
friend
struct
set
;
5858
template
<
typename
...>
5859
friend
struct
set_list
;
5860
template
<
typename
...>
5861
friend
struct
space
;
5862
template
<
typename
...>
5863
friend
struct
union_map
;
5864
template
<
typename
...>
5865
friend
struct
union_pw_aff
;
5866
template
<
typename
...>
5867
friend
struct
union_pw_aff_list
;
5868
template
<
typename
...>
5869
friend
struct
union_pw_multi_aff
;
5870
template
<
typename
...>
5871
friend
struct
union_set
;
5872
template
<
typename
...>
5873
friend
struct
union_set_list
;
5874
template
<
typename
...>
5875
friend
struct
val
;
5876
template
<
typename
...>
5877
friend
struct
val_list
;
5878
5879
multi_id
() =
default
;
5880
template
<
typename
Arg1,
5881
typename
std::enable_if<
5882
std::is_base_of<Domain, Arg1>{},
5883
bool
>
::type
=
true
>
5884
multi_id
(
const
multi_id<Arg1>
&
obj
) :
isl
::
multi_id
(
obj
) {}
5885
private
:
5886
template
<
typename
base,
5887
typename
std::enable_if<
5888
std::is_same<base, isl::multi_id>{},
bool
>
::type
=
true
>
5889
multi_id
(
const
base &
obj
) :
isl
::
multi_id
(
obj
) {}
5890
public
:
5891
static
multi_id
from
(
const
isl::multi_id
&
obj
) {
5892
return
multi_id
(
obj
);
5893
}
5894
inline
explicit
multi_id
(
const
typed::space<Domain>
&
space
,
const
typed::id_list<Anonymous>
&
list
);
5895
inline
explicit
multi_id
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
5896
inline
typed::id<Anonymous>
at
(
int
pos
)
const
;
5897
inline
typed::id<Domain>
get_at
(
int
pos
)
const
=
delete
;
5898
inline
typed::id_list<Anonymous>
list
()
const
;
5899
inline
typed::id_list<Domain>
get_list
()
const
=
delete
;
5900
inline
typed::multi_id<Domain>
range_product
(
const
typed::multi_id<>
&multi2)
const
=
delete
;
5901
inline
typed::multi_id<Domain>
set_at
(
int
pos
,
const
typed::id<Anonymous>
&el)
const
;
5902
inline
typed::multi_id<Domain>
set_at
(
int
pos
,
const
std::string &el)
const
;
5903
inline
typed::space<Domain>
space
()
const
;
5904
inline
typed::space<Domain>
get_space
()
const
=
delete
;
5905
};
5906
5907
template
<
typename
Domain>
5908
struct
multi_pw_aff
<
Domain
> :
public
isl::multi_pw_aff
{
5909
template
<
typename
...>
5910
friend
struct
aff
;
5911
template
<
typename
...>
5912
friend
struct
aff_list
;
5913
template
<
typename
...>
5914
friend
struct
basic_map
;
5915
template
<
typename
...>
5916
friend
struct
basic_set
;
5917
template
<
typename
...>
5918
friend
struct
fixed_box
;
5919
template
<
typename
...>
5920
friend
struct
id
;
5921
template
<
typename
...>
5922
friend
struct
id_list
;
5923
template
<
typename
...>
5924
friend
struct
map
;
5925
template
<
typename
...>
5926
friend
struct
map_list
;
5927
template
<
typename
...>
5928
friend
struct
multi_aff
;
5929
template
<
typename
...>
5930
friend
struct
multi_id
;
5931
template
<
typename
...>
5932
friend
struct
multi_pw_aff
;
5933
template
<
typename
...>
5934
friend
struct
multi_union_pw_aff
;
5935
template
<
typename
...>
5936
friend
struct
multi_val
;
5937
template
<
typename
...>
5938
friend
struct
point
;
5939
template
<
typename
...>
5940
friend
struct
pw_aff
;
5941
template
<
typename
...>
5942
friend
struct
pw_aff_list
;
5943
template
<
typename
...>
5944
friend
struct
pw_multi_aff
;
5945
template
<
typename
...>
5946
friend
struct
pw_multi_aff_list
;
5947
template
<
typename
...>
5948
friend
struct
set
;
5949
template
<
typename
...>
5950
friend
struct
set_list
;
5951
template
<
typename
...>
5952
friend
struct
space
;
5953
template
<
typename
...>
5954
friend
struct
union_map
;
5955
template
<
typename
...>
5956
friend
struct
union_pw_aff
;
5957
template
<
typename
...>
5958
friend
struct
union_pw_aff_list
;
5959
template
<
typename
...>
5960
friend
struct
union_pw_multi_aff
;
5961
template
<
typename
...>
5962
friend
struct
union_set
;
5963
template
<
typename
...>
5964
friend
struct
union_set_list
;
5965
template
<
typename
...>
5966
friend
struct
val
;
5967
template
<
typename
...>
5968
friend
struct
val_list
;
5969
5970
multi_pw_aff
() =
default
;
5971
template
<
typename
Arg1,
5972
typename
std::enable_if<
5973
std::is_base_of<Domain, Arg1>{},
5974
bool
>
::type
=
true
>
5975
multi_pw_aff
(
const
multi_pw_aff<Arg1>
&
obj
) :
isl
::
multi_pw_aff
(
obj
) {}
5976
private
:
5977
template
<
typename
base,
5978
typename
std::enable_if<
5979
std::is_same<base, isl::multi_pw_aff>{},
bool
>
::type
=
true
>
5980
multi_pw_aff
(
const
base &
obj
) :
isl
::
multi_pw_aff
(
obj
) {}
5981
public
:
5982
static
multi_pw_aff
from
(
const
isl::multi_pw_aff
&
obj
) {
5983
return
multi_pw_aff
(
obj
);
5984
}
5985
inline
/* implicit */
multi_pw_aff
(
const
typed::aff<Domain>
&
aff
);
5986
inline
/* implicit */
multi_pw_aff
(
const
typed::multi_aff<Domain>
&
ma
);
5987
inline
/* implicit */
multi_pw_aff
(
const
typed::pw_aff<Domain>
&
pa
);
5988
inline
explicit
multi_pw_aff
(
const
typed::space<Domain>
&
space
,
const
typed::pw_aff_list<Anonymous>
&
list
);
5989
inline
/* implicit */
multi_pw_aff
(
const
typed::pw_multi_aff<Domain>
&
pma
);
5990
inline
explicit
multi_pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
5991
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
5992
inline
typed::multi_union_pw_aff<Domain>
add
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
5993
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::aff<Domain>
&multi2)
const
;
5994
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::multi_aff<Domain>
&multi2)
const
;
5995
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::pw_aff<Domain>
&multi2)
const
;
5996
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::pw_multi_aff<Domain>
&multi2)
const
;
5997
inline
typed::multi_pw_aff<Domain>
add_constant
(
const
typed::multi_val<Domain>
&mv)
const
;
5998
inline
typed::multi_pw_aff<Domain>
add_constant
(
const
typed::val<Domain>
&v)
const
;
5999
inline
typed::multi_pw_aff<Domain>
add_constant
(
long
v)
const
;
6000
inline
typed::map<Domain>
as_map
()
const
=
delete
;
6001
inline
typed::multi_aff<Domain>
as_multi_aff
()
const
;
6002
inline
typed::set<Domain>
as_set
()
const
;
6003
inline
typed::pw_aff<Anonymous>
at
(
int
pos
)
const
;
6004
inline
typed::pw_aff<Domain>
get_at
(
int
pos
)
const
=
delete
;
6005
inline
typed::set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
6006
inline
typed::multi_pw_aff<Domain>
bind_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
6007
inline
typed::multi_pw_aff<Domain>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
6008
inline
typed::multi_pw_aff<Domain>
coalesce
()
const
;
6009
inline
typed::set<>
domain
()
const
;
6010
inline
typed::multi_pw_aff<Domain>
domain_reverse
()
const
=
delete
;
6011
inline
typed::multi_pw_aff<Domain>
gist
(
const
typed::set<>
&
set
)
const
;
6012
inline
typed::multi_union_pw_aff<Domain>
gist
(
const
typed::union_set<>
&
context
)
const
;
6013
inline
typed::multi_pw_aff<Domain>
gist
(
const
typed::basic_set<>
&
set
)
const
;
6014
inline
typed::multi_pw_aff<Domain>
gist
(
const
typed::point<>
&
set
)
const
;
6015
inline
typed::multi_pw_aff<Domain>
gist_params
(
const
typed::set<>
&
set
)
const
;
6016
inline
typed::multi_pw_aff<Domain>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
6017
inline
typed::multi_pw_aff<Domain>
gist_params
(
const
typed::point<>
&
set
)
const
;
6018
inline
typed::multi_pw_aff<Domain, Domain>
identity
()
const
;
6019
template
<
typename
Arg1>
6020
inline
typed::multi_pw_aff<Arg1, Domain>
insert_domain
(
const
typed::space<Arg1>
&
domain
)
const
;
6021
inline
typed::multi_pw_aff<Domain>
intersect_domain
(
const
typed::set<>
&
domain
)
const
=
delete
;
6022
inline
typed::multi_union_pw_aff<Domain>
intersect_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
6023
inline
typed::multi_pw_aff<Domain>
intersect_domain
(
const
typed::basic_set<>
&
domain
)
const
=
delete
;
6024
inline
typed::multi_pw_aff<Domain>
intersect_domain
(
const
typed::point<>
&
domain
)
const
=
delete
;
6025
inline
typed::multi_pw_aff<Domain>
intersect_params
(
const
typed::set<>
&
set
)
const
;
6026
inline
typed::multi_pw_aff<Domain>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
6027
inline
typed::multi_pw_aff<Domain>
intersect_params
(
const
typed::point<>
&
set
)
const
;
6028
inline
typed::pw_aff_list<Anonymous>
list
()
const
;
6029
inline
typed::pw_aff_list<Domain>
get_list
()
const
=
delete
;
6030
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
6031
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::aff<Domain>
&multi2)
const
;
6032
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::multi_aff<Domain>
&multi2)
const
;
6033
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::pw_aff<Domain>
&multi2)
const
;
6034
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::pw_multi_aff<Domain>
&multi2)
const
;
6035
inline
typed::multi_val<Domain>
max_multi_val
()
const
;
6036
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
6037
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::aff<Domain>
&multi2)
const
;
6038
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::multi_aff<Domain>
&multi2)
const
;
6039
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::pw_aff<Domain>
&multi2)
const
;
6040
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::pw_multi_aff<Domain>
&multi2)
const
;
6041
inline
typed::multi_val<Domain>
min_multi_val
()
const
;
6042
inline
typed::multi_pw_aff<Domain>
neg
()
const
;
6043
template
<
typename
Range>
6044
inline
typed::multi_pw_aff<pair<Domain, Range>
>
product
(
const
typed::multi_pw_aff<Range>
&multi2)
const
;
6045
inline
typed::multi_pw_aff<pair<Domain, Anonymous>
>
product
(
const
typed::aff<Anonymous>
&multi2)
const
;
6046
template
<
typename
Range>
6047
inline
typed::multi_pw_aff<pair<Domain, Range>
>
product
(
const
typed::multi_aff<Range>
&multi2)
const
;
6048
inline
typed::multi_pw_aff<pair<Domain, Anonymous>
>
product
(
const
typed::pw_aff<Anonymous>
&multi2)
const
;
6049
template
<
typename
Range>
6050
inline
typed::multi_pw_aff<pair<Domain, Range>
>
product
(
const
typed::pw_multi_aff<Range>
&multi2)
const
;
6051
inline
typed::multi_pw_aff<Domain>
pullback
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
6052
inline
typed::multi_pw_aff<Domain>
pullback
(
const
typed::multi_pw_aff<>
&mpa2)
const
=
delete
;
6053
inline
typed::multi_pw_aff<Domain>
pullback
(
const
typed::pw_multi_aff<>
&
pma
)
const
=
delete
;
6054
inline
typed::multi_union_pw_aff<Domain>
pullback
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
6055
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::multi_pw_aff<>
&multi2)
const
=
delete
;
6056
inline
typed::multi_union_pw_aff<Domain>
range_product
(
const
typed::multi_union_pw_aff<>
&multi2)
const
=
delete
;
6057
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::aff<>
&multi2)
const
=
delete
;
6058
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::multi_aff<>
&multi2)
const
=
delete
;
6059
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::pw_aff<>
&multi2)
const
=
delete
;
6060
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::pw_multi_aff<>
&multi2)
const
=
delete
;
6061
inline
typed::id<Domain>
get_range_tuple_id
()
const
=
delete
;
6062
inline
typed::multi_pw_aff<Domain>
scale
(
const
typed::multi_val<Domain>
&mv)
const
;
6063
inline
typed::multi_pw_aff<Domain>
scale
(
const
typed::val<Domain>
&v)
const
;
6064
inline
typed::multi_pw_aff<Domain>
scale
(
long
v)
const
;
6065
inline
typed::multi_pw_aff<Domain>
scale_down
(
const
typed::multi_val<Domain>
&mv)
const
;
6066
inline
typed::multi_pw_aff<Domain>
scale_down
(
const
typed::val<Domain>
&v)
const
;
6067
inline
typed::multi_pw_aff<Domain>
scale_down
(
long
v)
const
;
6068
inline
typed::multi_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::pw_aff<Anonymous>
&el)
const
;
6069
inline
typed::multi_union_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::union_pw_aff<Anonymous>
&el)
const
;
6070
template
<
typename
Domain2>
6071
inline
typed::multi_pw_aff<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
6072
template
<
typename
Domain2>
6073
inline
typed::multi_pw_aff<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
6074
inline
typed::space<Domain>
space
()
const
;
6075
inline
typed::space<Domain>
get_space
()
const
=
delete
;
6076
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
6077
inline
typed::multi_union_pw_aff<Domain>
sub
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
6078
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::aff<Domain>
&multi2)
const
;
6079
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::multi_aff<Domain>
&multi2)
const
;
6080
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::pw_aff<Domain>
&multi2)
const
;
6081
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::pw_multi_aff<Domain>
&multi2)
const
;
6082
template
<
typename
Arg1>
6083
inline
typed::multi_pw_aff<Arg1, Domain>
unbind_params_insert_domain
(
const
typed::multi_id<Arg1>
&
domain
)
const
;
6084
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
6085
inline
typed::multi_union_pw_aff<Domain>
union_add
(
const
typed::multi_union_pw_aff<Domain>
&mupa2)
const
;
6086
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::aff<Domain>
&mpa2)
const
;
6087
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::multi_aff<Domain>
&mpa2)
const
;
6088
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::pw_aff<Domain>
&mpa2)
const
;
6089
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::pw_multi_aff<Domain>
&mpa2)
const
;
6090
};
6091
6092
template
<
typename
Domain,
typename
Range>
6093
struct
multi_pw_aff
<
Domain
,
Range
> :
public
isl::multi_pw_aff
{
6094
template
<
typename
...>
6095
friend
struct
aff
;
6096
template
<
typename
...>
6097
friend
struct
aff_list
;
6098
template
<
typename
...>
6099
friend
struct
basic_map
;
6100
template
<
typename
...>
6101
friend
struct
basic_set
;
6102
template
<
typename
...>
6103
friend
struct
fixed_box
;
6104
template
<
typename
...>
6105
friend
struct
id
;
6106
template
<
typename
...>
6107
friend
struct
id_list
;
6108
template
<
typename
...>
6109
friend
struct
map
;
6110
template
<
typename
...>
6111
friend
struct
map_list
;
6112
template
<
typename
...>
6113
friend
struct
multi_aff
;
6114
template
<
typename
...>
6115
friend
struct
multi_id
;
6116
template
<
typename
...>
6117
friend
struct
multi_pw_aff
;
6118
template
<
typename
...>
6119
friend
struct
multi_union_pw_aff
;
6120
template
<
typename
...>
6121
friend
struct
multi_val
;
6122
template
<
typename
...>
6123
friend
struct
point
;
6124
template
<
typename
...>
6125
friend
struct
pw_aff
;
6126
template
<
typename
...>
6127
friend
struct
pw_aff_list
;
6128
template
<
typename
...>
6129
friend
struct
pw_multi_aff
;
6130
template
<
typename
...>
6131
friend
struct
pw_multi_aff_list
;
6132
template
<
typename
...>
6133
friend
struct
set
;
6134
template
<
typename
...>
6135
friend
struct
set_list
;
6136
template
<
typename
...>
6137
friend
struct
space
;
6138
template
<
typename
...>
6139
friend
struct
union_map
;
6140
template
<
typename
...>
6141
friend
struct
union_pw_aff
;
6142
template
<
typename
...>
6143
friend
struct
union_pw_aff_list
;
6144
template
<
typename
...>
6145
friend
struct
union_pw_multi_aff
;
6146
template
<
typename
...>
6147
friend
struct
union_set
;
6148
template
<
typename
...>
6149
friend
struct
union_set_list
;
6150
template
<
typename
...>
6151
friend
struct
val
;
6152
template
<
typename
...>
6153
friend
struct
val_list
;
6154
6155
multi_pw_aff
() =
default
;
6156
template
<
typename
Arg1,
typename
Arg2,
6157
typename
std::enable_if<
6158
std::is_base_of<Domain, Arg1>{} &&
6159
std::is_base_of<Range, Arg2>{},
6160
bool
>
::type
=
true
>
6161
multi_pw_aff
(
const
multi_pw_aff<Arg1, Arg2>
&
obj
) :
isl
::
multi_pw_aff
(
obj
) {}
6162
private
:
6163
template
<
typename
base,
6164
typename
std::enable_if<
6165
std::is_same<base, isl::multi_pw_aff>{},
bool
>
::type
=
true
>
6166
multi_pw_aff
(
const
base &
obj
) :
isl
::
multi_pw_aff
(
obj
) {}
6167
public
:
6168
static
multi_pw_aff
from
(
const
isl::multi_pw_aff
&
obj
) {
6169
return
multi_pw_aff
(
obj
);
6170
}
6171
inline
/* implicit */
multi_pw_aff
(
const
typed::aff<Domain, Range>
&
aff
);
6172
inline
/* implicit */
multi_pw_aff
(
const
typed::multi_aff<Domain, Range>
&
ma
);
6173
inline
/* implicit */
multi_pw_aff
(
const
typed::pw_aff<Domain, Range>
&
pa
);
6174
inline
explicit
multi_pw_aff
(
const
typed::space<Domain, Range>
&
space
,
const
typed::pw_aff_list<Domain, Anonymous>
&
list
);
6175
inline
/* implicit */
multi_pw_aff
(
const
typed::pw_multi_aff<Domain, Range>
&
pma
);
6176
inline
explicit
multi_pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
6177
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
6178
inline
typed::multi_union_pw_aff<Domain, Range>
add
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
6179
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::aff<Domain, Range>
&multi2)
const
;
6180
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::multi_aff<Domain, Range>
&multi2)
const
;
6181
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::pw_aff<Domain, Range>
&multi2)
const
;
6182
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::pw_multi_aff<Domain, Range>
&multi2)
const
;
6183
inline
typed::multi_pw_aff<Domain, Range>
add_constant
(
const
typed::multi_val<Range>
&mv)
const
;
6184
inline
typed::multi_pw_aff<Domain, Range>
add_constant
(
const
typed::val<Range>
&v)
const
;
6185
inline
typed::multi_pw_aff<Domain, Range>
add_constant
(
long
v)
const
;
6186
inline
typed::map<Domain, Range>
as_map
()
const
;
6187
inline
typed::multi_aff<Domain, Range>
as_multi_aff
()
const
;
6188
inline
typed::set<Domain, Range>
as_set
()
const
=
delete
;
6189
inline
typed::pw_aff<Domain, Anonymous>
at
(
int
pos
)
const
;
6190
inline
typed::pw_aff<Domain, Range>
get_at
(
int
pos
)
const
=
delete
;
6191
inline
typed::set<Domain>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
6192
inline
typed::multi_pw_aff<Range>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
6193
inline
typed::multi_pw_aff<Domain, Range>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
6194
inline
typed::multi_pw_aff<Domain, Range>
coalesce
()
const
;
6195
inline
typed::set<Domain>
domain
()
const
;
6196
inline
typed::multi_pw_aff<Domain, Range>
domain_reverse
()
const
=
delete
;
6197
inline
typed::multi_pw_aff<Domain, Range>
gist
(
const
typed::set<Domain>
&
set
)
const
;
6198
inline
typed::multi_union_pw_aff<Domain, Range>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
6199
inline
typed::multi_pw_aff<Domain, Range>
gist
(
const
typed::basic_set<Domain>
&
set
)
const
;
6200
inline
typed::multi_pw_aff<Domain, Range>
gist
(
const
typed::point<Domain>
&
set
)
const
;
6201
inline
typed::multi_pw_aff<Domain, Range>
gist_params
(
const
typed::set<>
&
set
)
const
;
6202
inline
typed::multi_pw_aff<Domain, Range>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
6203
inline
typed::multi_pw_aff<Domain, Range>
gist_params
(
const
typed::point<>
&
set
)
const
;
6204
inline
typed::multi_pw_aff<Domain, Range>
identity
()
const
;
6205
inline
typed::multi_pw_aff<Domain, Range>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
6206
inline
typed::multi_pw_aff<Domain, Range>
intersect_domain
(
const
typed::set<Domain>
&
domain
)
const
;
6207
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
6208
inline
typed::multi_pw_aff<Domain, Range>
intersect_domain
(
const
typed::basic_set<Domain>
&
domain
)
const
;
6209
inline
typed::multi_pw_aff<Domain, Range>
intersect_domain
(
const
typed::point<Domain>
&
domain
)
const
;
6210
inline
typed::multi_pw_aff<Domain, Range>
intersect_params
(
const
typed::set<>
&
set
)
const
;
6211
inline
typed::multi_pw_aff<Domain, Range>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
6212
inline
typed::multi_pw_aff<Domain, Range>
intersect_params
(
const
typed::point<>
&
set
)
const
;
6213
inline
typed::pw_aff_list<Domain, Anonymous>
list
()
const
;
6214
inline
typed::pw_aff_list<Domain, Range>
get_list
()
const
=
delete
;
6215
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
6216
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::aff<Domain, Range>
&multi2)
const
;
6217
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::multi_aff<Domain, Range>
&multi2)
const
;
6218
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::pw_aff<Domain, Range>
&multi2)
const
;
6219
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::pw_multi_aff<Domain, Range>
&multi2)
const
;
6220
inline
typed::multi_val<Range>
max_multi_val
()
const
;
6221
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
6222
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::aff<Domain, Range>
&multi2)
const
;
6223
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::multi_aff<Domain, Range>
&multi2)
const
;
6224
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::pw_aff<Domain, Range>
&multi2)
const
;
6225
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::pw_multi_aff<Domain, Range>
&multi2)
const
;
6226
inline
typed::multi_val<Range>
min_multi_val
()
const
;
6227
inline
typed::multi_pw_aff<Domain, Range>
neg
()
const
;
6228
template
<
typename
Domain2,
typename
Range2>
6229
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::multi_pw_aff<Domain2, Range2>
&multi2)
const
;
6230
template
<
typename
Domain2>
6231
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Anonymous>
>
product
(
const
typed::aff<Domain2, Anonymous>
&multi2)
const
;
6232
template
<
typename
Domain2,
typename
Range2>
6233
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::multi_aff<Domain2, Range2>
&multi2)
const
;
6234
template
<
typename
Domain2>
6235
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Anonymous>
>
product
(
const
typed::pw_aff<Domain2, Anonymous>
&multi2)
const
;
6236
template
<
typename
Domain2,
typename
Range2>
6237
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::pw_multi_aff<Domain2, Range2>
&multi2)
const
;
6238
template
<
typename
Domain2>
6239
inline
typed::multi_pw_aff<Domain2, Range>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
6240
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_aff<Domain>
&
ma
)
const
;
6241
template
<
typename
Domain2>
6242
inline
typed::multi_pw_aff<Domain2, Range>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa2)
const
;
6243
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
6244
template
<
typename
Domain2>
6245
inline
typed::multi_pw_aff<Domain2, Range>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
6246
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::pw_multi_aff<Domain>
&
pma
)
const
;
6247
template
<
typename
Domain2>
6248
inline
typed::multi_union_pw_aff<Domain2, Range>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
6249
inline
typed::multi_union_pw_aff<Range>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma)
const
;
6250
template
<
typename
Range2>
6251
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_pw_aff<Domain, Range2>
&multi2)
const
;
6252
template
<
typename
Range2>
6253
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_union_pw_aff<Domain, Range2>
&multi2)
const
;
6254
inline
typed::multi_pw_aff<Domain, pair<Range, Anonymous>
>
range_product
(
const
typed::aff<Domain, Anonymous>
&multi2)
const
;
6255
template
<
typename
Range2>
6256
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_aff<Domain, Range2>
&multi2)
const
;
6257
inline
typed::multi_pw_aff<Domain, pair<Range, Anonymous>
>
range_product
(
const
typed::pw_aff<Domain, Anonymous>
&multi2)
const
;
6258
template
<
typename
Range2>
6259
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::pw_multi_aff<Domain, Range2>
&multi2)
const
;
6260
inline
typed::id<Domain, Range>
get_range_tuple_id
()
const
=
delete
;
6261
inline
typed::multi_pw_aff<Domain, Range>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
6262
inline
typed::multi_pw_aff<Domain, Range>
scale
(
const
typed::val<Range>
&v)
const
;
6263
inline
typed::multi_pw_aff<Domain, Range>
scale
(
long
v)
const
;
6264
inline
typed::multi_pw_aff<Domain, Range>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
6265
inline
typed::multi_pw_aff<Domain, Range>
scale_down
(
const
typed::val<Range>
&v)
const
;
6266
inline
typed::multi_pw_aff<Domain, Range>
scale_down
(
long
v)
const
;
6267
inline
typed::multi_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
6268
inline
typed::multi_union_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
6269
template
<
typename
Range2>
6270
inline
typed::multi_pw_aff<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
6271
template
<
typename
Range2>
6272
inline
typed::multi_pw_aff<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
6273
inline
typed::space<Domain, Range>
space
()
const
;
6274
inline
typed::space<Domain, Range>
get_space
()
const
=
delete
;
6275
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
6276
inline
typed::multi_union_pw_aff<Domain, Range>
sub
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
6277
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::aff<Domain, Range>
&multi2)
const
;
6278
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::multi_aff<Domain, Range>
&multi2)
const
;
6279
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::pw_aff<Domain, Range>
&multi2)
const
;
6280
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::pw_multi_aff<Domain, Range>
&multi2)
const
;
6281
inline
typed::multi_pw_aff<Domain, Range>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
6282
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::multi_pw_aff<Domain, Range>
&mpa2)
const
;
6283
inline
typed::multi_union_pw_aff<Domain, Range>
union_add
(
const
typed::multi_union_pw_aff<Domain, Range>
&mupa2)
const
;
6284
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::aff<Domain, Range>
&mpa2)
const
;
6285
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::multi_aff<Domain, Range>
&mpa2)
const
;
6286
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::pw_aff<Domain, Range>
&mpa2)
const
;
6287
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::pw_multi_aff<Domain, Range>
&mpa2)
const
;
6288
};
6289
6290
template
<
typename
Domain2,
typename
Range2,
typename
Range>
6291
struct
multi_pw_aff
<
pair
<
Domain2
,
Range2
>,
Range
> :
public
isl::multi_pw_aff
{
6292
template
<
typename
...>
6293
friend
struct
aff
;
6294
template
<
typename
...>
6295
friend
struct
aff_list
;
6296
template
<
typename
...>
6297
friend
struct
basic_map
;
6298
template
<
typename
...>
6299
friend
struct
basic_set
;
6300
template
<
typename
...>
6301
friend
struct
fixed_box
;
6302
template
<
typename
...>
6303
friend
struct
id
;
6304
template
<
typename
...>
6305
friend
struct
id_list
;
6306
template
<
typename
...>
6307
friend
struct
map
;
6308
template
<
typename
...>
6309
friend
struct
map_list
;
6310
template
<
typename
...>
6311
friend
struct
multi_aff
;
6312
template
<
typename
...>
6313
friend
struct
multi_id
;
6314
template
<
typename
...>
6315
friend
struct
multi_pw_aff
;
6316
template
<
typename
...>
6317
friend
struct
multi_union_pw_aff
;
6318
template
<
typename
...>
6319
friend
struct
multi_val
;
6320
template
<
typename
...>
6321
friend
struct
point
;
6322
template
<
typename
...>
6323
friend
struct
pw_aff
;
6324
template
<
typename
...>
6325
friend
struct
pw_aff_list
;
6326
template
<
typename
...>
6327
friend
struct
pw_multi_aff
;
6328
template
<
typename
...>
6329
friend
struct
pw_multi_aff_list
;
6330
template
<
typename
...>
6331
friend
struct
set
;
6332
template
<
typename
...>
6333
friend
struct
set_list
;
6334
template
<
typename
...>
6335
friend
struct
space
;
6336
template
<
typename
...>
6337
friend
struct
union_map
;
6338
template
<
typename
...>
6339
friend
struct
union_pw_aff
;
6340
template
<
typename
...>
6341
friend
struct
union_pw_aff_list
;
6342
template
<
typename
...>
6343
friend
struct
union_pw_multi_aff
;
6344
template
<
typename
...>
6345
friend
struct
union_set
;
6346
template
<
typename
...>
6347
friend
struct
union_set_list
;
6348
template
<
typename
...>
6349
friend
struct
val
;
6350
template
<
typename
...>
6351
friend
struct
val_list
;
6352
6353
multi_pw_aff
() =
default
;
6354
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
6355
typename
std::enable_if<
6356
std::is_base_of<Domain2, Arg1>{} &&
6357
std::is_base_of<Range2, Arg2>{} &&
6358
std::is_base_of<Range, Arg3>{},
6359
bool
>
::type
=
true
>
6360
multi_pw_aff
(
const
multi_pw_aff
<
pair<Arg1, Arg2>
, Arg3> &
obj
) :
isl
::
multi_pw_aff
(
obj
) {}
6361
private
:
6362
template
<
typename
base,
6363
typename
std::enable_if<
6364
std::is_same<base, isl::multi_pw_aff>{},
bool
>
::type
=
true
>
6365
multi_pw_aff
(
const
base &
obj
) :
isl
::
multi_pw_aff
(
obj
) {}
6366
public
:
6367
static
multi_pw_aff
from
(
const
isl::multi_pw_aff
&
obj
) {
6368
return
multi_pw_aff
(
obj
);
6369
}
6370
inline
/* implicit */
multi_pw_aff
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &
aff
);
6371
inline
/* implicit */
multi_pw_aff
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &
ma
);
6372
inline
/* implicit */
multi_pw_aff
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &
pa
);
6373
inline
explicit
multi_pw_aff
(
const
typed::space
<
pair<Domain2, Range2>
,
Range
> &
space
,
const
typed::pw_aff_list
<
pair<Domain2, Range2>
,
Anonymous
> &
list
);
6374
inline
/* implicit */
multi_pw_aff
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &
pma
);
6375
inline
explicit
multi_pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
6376
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6377
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6378
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6379
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6380
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6381
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6382
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
const
typed::multi_val<Range>
&mv)
const
;
6383
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
const
typed::val<Range>
&v)
const
;
6384
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
long
v)
const
;
6385
inline
typed::map<pair<Domain2, Range2>
,
Range
>
as_map
()
const
;
6386
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
as_multi_aff
()
const
;
6387
inline
typed::set<pair<Domain2, Range2>
,
Range
>
as_set
()
const
=
delete
;
6388
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
at
(
int
pos
)
const
;
6389
inline
typed::pw_aff<pair<Domain2, Range2>
,
Range
>
get_at
(
int
pos
)
const
=
delete
;
6390
inline
typed::set<pair<Domain2, Range2>
>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
6391
inline
typed::multi_pw_aff<Range>
bind_domain
(
const
typed::multi_id
<
pair<Domain2, Range2>
> &
tuple
)
const
;
6392
inline
typed::multi_pw_aff<Range2, Range>
bind_domain_wrapped_domain
(
const
typed::multi_id<Domain2>
&
tuple
)
const
;
6393
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
coalesce
()
const
;
6394
inline
typed::set<pair<Domain2, Range2>
>
domain
()
const
;
6395
inline
typed::multi_pw_aff<pair<Range2, Domain2>
,
Range
>
domain_reverse
()
const
;
6396
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
6397
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::union_set
<
pair<Domain2, Range2>
> &
context
)
const
;
6398
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
set
)
const
;
6399
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::point
<
pair<Domain2, Range2>
> &
set
)
const
;
6400
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::set<>
&
set
)
const
;
6401
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
6402
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::point<>
&
set
)
const
;
6403
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
identity
()
const
;
6404
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
6405
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
domain
)
const
;
6406
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
6407
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
domain
)
const
;
6408
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::point
<
pair<Domain2, Range2>
> &
domain
)
const
;
6409
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
6410
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
6411
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::point<>
&
set
)
const
;
6412
inline
typed::pw_aff_list<pair<Domain2, Range2>
,
Anonymous
>
list
()
const
;
6413
inline
typed::pw_aff_list<pair<Domain2, Range2>
,
Range
>
get_list
()
const
=
delete
;
6414
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6415
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6416
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6417
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6418
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6419
inline
typed::multi_val<Range>
max_multi_val
()
const
;
6420
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6421
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6422
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6423
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6424
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6425
inline
typed::multi_val<Range>
min_multi_val
()
const
;
6426
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
neg
()
const
;
6427
template
<
typename
Arg2,
typename
Arg3>
6428
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::multi_pw_aff<Arg2, Arg3>
&multi2)
const
;
6429
template
<
typename
Arg2>
6430
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Anonymous>
>
product
(
const
typed::aff<Arg2, Anonymous>
&multi2)
const
;
6431
template
<
typename
Arg2,
typename
Arg3>
6432
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::multi_aff<Arg2, Arg3>
&multi2)
const
;
6433
template
<
typename
Arg2>
6434
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Anonymous>
>
product
(
const
typed::pw_aff<Arg2, Anonymous>
&multi2)
const
;
6435
template
<
typename
Arg2,
typename
Arg3>
6436
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::pw_multi_aff<Arg2, Arg3>
&multi2)
const
;
6437
template
<
typename
Arg2>
6438
inline
typed::multi_pw_aff<Arg2, Range>
pullback
(
const
typed::multi_aff
<Arg2,
pair<Domain2, Range2>
> &
ma
)
const
;
6439
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_aff
<
pair<Domain2, Range2>
> &
ma
)
const
;
6440
template
<
typename
Arg2>
6441
inline
typed::multi_pw_aff<Arg2, Range>
pullback
(
const
typed::multi_pw_aff
<Arg2,
pair<Domain2, Range2>
> &mpa2)
const
;
6442
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
> &mpa2)
const
;
6443
template
<
typename
Arg2>
6444
inline
typed::multi_pw_aff<Arg2, Range>
pullback
(
const
typed::pw_multi_aff
<Arg2,
pair<Domain2, Range2>
> &
pma
)
const
;
6445
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
> &
pma
)
const
;
6446
template
<
typename
Arg2>
6447
inline
typed::multi_union_pw_aff<Arg2, Range>
pullback
(
const
typed::union_pw_multi_aff
<Arg2,
pair<Domain2, Range2>
> &upma)
const
;
6448
inline
typed::multi_union_pw_aff<Range>
pullback
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
> &upma)
const
;
6449
template
<
typename
Arg2>
6450
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
6451
template
<
typename
Arg2>
6452
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
6453
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Anonymous>
>
range_product
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
6454
template
<
typename
Arg2>
6455
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
6456
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Anonymous>
>
range_product
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
6457
template
<
typename
Arg2>
6458
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
6459
inline
typed::id<pair<Domain2, Range2>
,
Range
>
get_range_tuple_id
()
const
=
delete
;
6460
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
6461
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
scale
(
const
typed::val<Range>
&v)
const
;
6462
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
scale
(
long
v)
const
;
6463
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
6464
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
const
typed::val<Range>
&v)
const
;
6465
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
long
v)
const
;
6466
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
6467
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
6468
template
<
typename
Arg1>
6469
inline
typed::multi_pw_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
6470
template
<
typename
Arg1>
6471
inline
typed::multi_pw_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
std::string &
id
)
const
;
6472
inline
typed::space<pair<Domain2, Range2>
,
Range
>
space
()
const
;
6473
inline
typed::space<pair<Domain2, Range2>
,
Range
>
get_space
()
const
=
delete
;
6474
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6475
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6476
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6477
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6478
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6479
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
6480
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
6481
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
6482
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &mupa2)
const
;
6483
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
6484
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
6485
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
6486
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
6487
};
6488
6489
template
<
typename
Domain>
6490
struct
multi_union_pw_aff
<
Domain
> :
public
isl::multi_union_pw_aff
{
6491
template
<
typename
...>
6492
friend
struct
aff
;
6493
template
<
typename
...>
6494
friend
struct
aff_list
;
6495
template
<
typename
...>
6496
friend
struct
basic_map
;
6497
template
<
typename
...>
6498
friend
struct
basic_set
;
6499
template
<
typename
...>
6500
friend
struct
fixed_box
;
6501
template
<
typename
...>
6502
friend
struct
id
;
6503
template
<
typename
...>
6504
friend
struct
id_list
;
6505
template
<
typename
...>
6506
friend
struct
map
;
6507
template
<
typename
...>
6508
friend
struct
map_list
;
6509
template
<
typename
...>
6510
friend
struct
multi_aff
;
6511
template
<
typename
...>
6512
friend
struct
multi_id
;
6513
template
<
typename
...>
6514
friend
struct
multi_pw_aff
;
6515
template
<
typename
...>
6516
friend
struct
multi_union_pw_aff
;
6517
template
<
typename
...>
6518
friend
struct
multi_val
;
6519
template
<
typename
...>
6520
friend
struct
point
;
6521
template
<
typename
...>
6522
friend
struct
pw_aff
;
6523
template
<
typename
...>
6524
friend
struct
pw_aff_list
;
6525
template
<
typename
...>
6526
friend
struct
pw_multi_aff
;
6527
template
<
typename
...>
6528
friend
struct
pw_multi_aff_list
;
6529
template
<
typename
...>
6530
friend
struct
set
;
6531
template
<
typename
...>
6532
friend
struct
set_list
;
6533
template
<
typename
...>
6534
friend
struct
space
;
6535
template
<
typename
...>
6536
friend
struct
union_map
;
6537
template
<
typename
...>
6538
friend
struct
union_pw_aff
;
6539
template
<
typename
...>
6540
friend
struct
union_pw_aff_list
;
6541
template
<
typename
...>
6542
friend
struct
union_pw_multi_aff
;
6543
template
<
typename
...>
6544
friend
struct
union_set
;
6545
template
<
typename
...>
6546
friend
struct
union_set_list
;
6547
template
<
typename
...>
6548
friend
struct
val
;
6549
template
<
typename
...>
6550
friend
struct
val_list
;
6551
6552
multi_union_pw_aff
() =
default
;
6553
template
<
typename
Arg1,
6554
typename
std::enable_if<
6555
std::is_base_of<Domain, Arg1>{},
6556
bool
>
::type
=
true
>
6557
multi_union_pw_aff
(
const
multi_union_pw_aff<Arg1>
&
obj
) :
isl
::
multi_union_pw_aff
(
obj
) {}
6558
private
:
6559
template
<
typename
base,
6560
typename
std::enable_if<
6561
std::is_same<base, isl::multi_union_pw_aff>{},
bool
>
::type
=
true
>
6562
multi_union_pw_aff
(
const
base &
obj
) :
isl
::
multi_union_pw_aff
(
obj
) {}
6563
public
:
6564
static
multi_union_pw_aff
from
(
const
isl::multi_union_pw_aff
&
obj
) {
6565
return
multi_union_pw_aff
(
obj
);
6566
}
6567
inline
/* implicit */
multi_union_pw_aff
(
const
typed::multi_pw_aff<Domain>
&mpa);
6568
inline
/* implicit */
multi_union_pw_aff
(
const
typed::union_pw_aff<Domain>
&upa);
6569
inline
explicit
multi_union_pw_aff
(
const
typed::space<Domain>
&
space
,
const
typed::union_pw_aff_list<Anonymous>
&
list
);
6570
inline
explicit
multi_union_pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
6571
inline
typed::multi_union_pw_aff<Domain>
add
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
6572
inline
typed::multi_union_pw_aff<Domain>
add
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
6573
inline
typed::multi_union_pw_aff<Domain>
add
(
const
typed::union_pw_aff<Domain>
&multi2)
const
;
6574
inline
typed::union_pw_aff<Anonymous>
at
(
int
pos
)
const
;
6575
inline
typed::union_pw_aff<Domain>
get_at
(
int
pos
)
const
=
delete
;
6576
inline
typed::union_set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
6577
inline
typed::multi_union_pw_aff<Domain>
coalesce
()
const
;
6578
inline
typed::union_set<>
domain
()
const
;
6579
inline
typed::multi_union_pw_aff<Domain>
gist
(
const
typed::union_set<>
&
context
)
const
;
6580
inline
typed::multi_union_pw_aff<Domain>
gist
(
const
typed::basic_set<>
&
context
)
const
;
6581
inline
typed::multi_union_pw_aff<Domain>
gist
(
const
typed::point<>
&
context
)
const
;
6582
inline
typed::multi_union_pw_aff<Domain>
gist
(
const
typed::set<>
&
context
)
const
;
6583
inline
typed::multi_union_pw_aff<Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
6584
inline
typed::multi_union_pw_aff<Domain>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
6585
inline
typed::multi_union_pw_aff<Domain>
gist_params
(
const
typed::point<>
&
context
)
const
;
6586
inline
typed::multi_union_pw_aff<Domain>
intersect_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
6587
inline
typed::multi_union_pw_aff<Domain>
intersect_domain
(
const
typed::basic_set<>
&uset)
const
=
delete
;
6588
inline
typed::multi_union_pw_aff<Domain>
intersect_domain
(
const
typed::point<>
&uset)
const
=
delete
;
6589
inline
typed::multi_union_pw_aff<Domain>
intersect_domain
(
const
typed::set<>
&uset)
const
=
delete
;
6590
inline
typed::multi_union_pw_aff<Domain>
intersect_params
(
const
typed::set<>
&
params
)
const
;
6591
inline
typed::multi_union_pw_aff<Domain>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
6592
inline
typed::multi_union_pw_aff<Domain>
intersect_params
(
const
typed::point<>
&
params
)
const
;
6593
inline
typed::union_pw_aff_list<Anonymous>
list
()
const
;
6594
inline
typed::union_pw_aff_list<Domain>
get_list
()
const
=
delete
;
6595
inline
typed::multi_union_pw_aff<Domain>
neg
()
const
;
6596
inline
typed::multi_union_pw_aff<Domain>
pullback
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
6597
inline
typed::multi_union_pw_aff<Domain>
pullback
(
const
typed::multi_aff<>
&upma)
const
=
delete
;
6598
inline
typed::multi_union_pw_aff<Domain>
pullback
(
const
typed::pw_multi_aff<>
&upma)
const
=
delete
;
6599
inline
typed::multi_union_pw_aff<Domain>
pullback
(
const
typed::union_pw_aff<>
&upma)
const
=
delete
;
6600
inline
typed::multi_union_pw_aff<Domain>
range_product
(
const
typed::multi_union_pw_aff<>
&multi2)
const
=
delete
;
6601
inline
typed::multi_union_pw_aff<Domain>
range_product
(
const
typed::multi_pw_aff<>
&multi2)
const
=
delete
;
6602
inline
typed::multi_union_pw_aff<Domain>
range_product
(
const
typed::union_pw_aff<>
&multi2)
const
=
delete
;
6603
inline
typed::id<Domain>
get_range_tuple_id
()
const
=
delete
;
6604
inline
typed::multi_union_pw_aff<Domain>
scale
(
const
typed::multi_val<Domain>
&mv)
const
;
6605
inline
typed::multi_union_pw_aff<Domain>
scale
(
const
typed::val<Domain>
&v)
const
;
6606
inline
typed::multi_union_pw_aff<Domain>
scale
(
long
v)
const
;
6607
inline
typed::multi_union_pw_aff<Domain>
scale_down
(
const
typed::multi_val<Domain>
&mv)
const
;
6608
inline
typed::multi_union_pw_aff<Domain>
scale_down
(
const
typed::val<Domain>
&v)
const
;
6609
inline
typed::multi_union_pw_aff<Domain>
scale_down
(
long
v)
const
;
6610
inline
typed::multi_union_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::union_pw_aff<Anonymous>
&el)
const
;
6611
template
<
typename
Domain2>
6612
inline
typed::multi_union_pw_aff<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
6613
template
<
typename
Domain2>
6614
inline
typed::multi_union_pw_aff<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
6615
inline
typed::space<Domain>
space
()
const
;
6616
inline
typed::space<Domain>
get_space
()
const
=
delete
;
6617
inline
typed::multi_union_pw_aff<Domain>
sub
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
6618
inline
typed::multi_union_pw_aff<Domain>
sub
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
6619
inline
typed::multi_union_pw_aff<Domain>
sub
(
const
typed::union_pw_aff<Domain>
&multi2)
const
;
6620
inline
typed::multi_union_pw_aff<Domain>
union_add
(
const
typed::multi_union_pw_aff<Domain>
&mupa2)
const
;
6621
inline
typed::multi_union_pw_aff<Domain>
union_add
(
const
typed::multi_pw_aff<Domain>
&mupa2)
const
;
6622
inline
typed::multi_union_pw_aff<Domain>
union_add
(
const
typed::union_pw_aff<Domain>
&mupa2)
const
;
6623
};
6624
6625
template
<
typename
Domain,
typename
Range>
6626
struct
multi_union_pw_aff
<
Domain
,
Range
> :
public
isl::multi_union_pw_aff
{
6627
template
<
typename
...>
6628
friend
struct
aff
;
6629
template
<
typename
...>
6630
friend
struct
aff_list
;
6631
template
<
typename
...>
6632
friend
struct
basic_map
;
6633
template
<
typename
...>
6634
friend
struct
basic_set
;
6635
template
<
typename
...>
6636
friend
struct
fixed_box
;
6637
template
<
typename
...>
6638
friend
struct
id
;
6639
template
<
typename
...>
6640
friend
struct
id_list
;
6641
template
<
typename
...>
6642
friend
struct
map
;
6643
template
<
typename
...>
6644
friend
struct
map_list
;
6645
template
<
typename
...>
6646
friend
struct
multi_aff
;
6647
template
<
typename
...>
6648
friend
struct
multi_id
;
6649
template
<
typename
...>
6650
friend
struct
multi_pw_aff
;
6651
template
<
typename
...>
6652
friend
struct
multi_union_pw_aff
;
6653
template
<
typename
...>
6654
friend
struct
multi_val
;
6655
template
<
typename
...>
6656
friend
struct
point
;
6657
template
<
typename
...>
6658
friend
struct
pw_aff
;
6659
template
<
typename
...>
6660
friend
struct
pw_aff_list
;
6661
template
<
typename
...>
6662
friend
struct
pw_multi_aff
;
6663
template
<
typename
...>
6664
friend
struct
pw_multi_aff_list
;
6665
template
<
typename
...>
6666
friend
struct
set
;
6667
template
<
typename
...>
6668
friend
struct
set_list
;
6669
template
<
typename
...>
6670
friend
struct
space
;
6671
template
<
typename
...>
6672
friend
struct
union_map
;
6673
template
<
typename
...>
6674
friend
struct
union_pw_aff
;
6675
template
<
typename
...>
6676
friend
struct
union_pw_aff_list
;
6677
template
<
typename
...>
6678
friend
struct
union_pw_multi_aff
;
6679
template
<
typename
...>
6680
friend
struct
union_set
;
6681
template
<
typename
...>
6682
friend
struct
union_set_list
;
6683
template
<
typename
...>
6684
friend
struct
val
;
6685
template
<
typename
...>
6686
friend
struct
val_list
;
6687
6688
multi_union_pw_aff
() =
default
;
6689
template
<
typename
Arg1,
typename
Arg2,
6690
typename
std::enable_if<
6691
std::is_base_of<Domain, Arg1>{} &&
6692
std::is_base_of<Range, Arg2>{},
6693
bool
>
::type
=
true
>
6694
multi_union_pw_aff
(
const
multi_union_pw_aff<Arg1, Arg2>
&
obj
) :
isl
::
multi_union_pw_aff
(
obj
) {}
6695
private
:
6696
template
<
typename
base,
6697
typename
std::enable_if<
6698
std::is_same<base, isl::multi_union_pw_aff>{},
bool
>
::type
=
true
>
6699
multi_union_pw_aff
(
const
base &
obj
) :
isl
::
multi_union_pw_aff
(
obj
) {}
6700
public
:
6701
static
multi_union_pw_aff
from
(
const
isl::multi_union_pw_aff
&
obj
) {
6702
return
multi_union_pw_aff
(
obj
);
6703
}
6704
inline
/* implicit */
multi_union_pw_aff
(
const
typed::multi_pw_aff<Domain, Range>
&mpa);
6705
inline
/* implicit */
multi_union_pw_aff
(
const
typed::union_pw_aff<Domain, Range>
&upa);
6706
inline
explicit
multi_union_pw_aff
(
const
typed::space<Domain, Range>
&
space
,
const
typed::union_pw_aff_list<Domain, Anonymous>
&
list
);
6707
inline
explicit
multi_union_pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
6708
inline
typed::multi_union_pw_aff<Domain, Range>
add
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
6709
inline
typed::multi_union_pw_aff<Domain, Range>
add
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
6710
inline
typed::multi_union_pw_aff<Domain, Range>
add
(
const
typed::union_pw_aff<Domain, Range>
&multi2)
const
;
6711
inline
typed::union_pw_aff<Domain, Anonymous>
at
(
int
pos
)
const
;
6712
inline
typed::union_pw_aff<Domain, Range>
get_at
(
int
pos
)
const
=
delete
;
6713
inline
typed::union_set<Domain>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
6714
inline
typed::multi_union_pw_aff<Domain, Range>
coalesce
()
const
;
6715
inline
typed::union_set<Domain>
domain
()
const
;
6716
inline
typed::multi_union_pw_aff<Domain, Range>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
6717
inline
typed::multi_union_pw_aff<Domain, Range>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
6718
inline
typed::multi_union_pw_aff<Domain, Range>
gist
(
const
typed::point<Domain>
&
context
)
const
;
6719
inline
typed::multi_union_pw_aff<Domain, Range>
gist
(
const
typed::set<Domain>
&
context
)
const
;
6720
inline
typed::multi_union_pw_aff<Domain, Range>
gist_params
(
const
typed::set<>
&
context
)
const
;
6721
inline
typed::multi_union_pw_aff<Domain, Range>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
6722
inline
typed::multi_union_pw_aff<Domain, Range>
gist_params
(
const
typed::point<>
&
context
)
const
;
6723
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
6724
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_domain
(
const
typed::basic_set<Domain>
&uset)
const
;
6725
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_domain
(
const
typed::point<Domain>
&uset)
const
;
6726
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_domain
(
const
typed::set<Domain>
&uset)
const
;
6727
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_params
(
const
typed::set<>
&
params
)
const
;
6728
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
6729
inline
typed::multi_union_pw_aff<Domain, Range>
intersect_params
(
const
typed::point<>
&
params
)
const
;
6730
inline
typed::union_pw_aff_list<Domain, Anonymous>
list
()
const
;
6731
inline
typed::union_pw_aff_list<Domain, Range>
get_list
()
const
=
delete
;
6732
inline
typed::multi_union_pw_aff<Domain, Range>
neg
()
const
;
6733
template
<
typename
Domain2>
6734
inline
typed::multi_union_pw_aff<Domain2, Range>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
6735
inline
typed::multi_union_pw_aff<Range>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma)
const
;
6736
template
<
typename
Domain2>
6737
inline
typed::multi_union_pw_aff<Domain2, Range>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&upma)
const
;
6738
inline
typed::multi_union_pw_aff<Range>
pullback
(
const
typed::multi_aff<Domain>
&upma)
const
;
6739
template
<
typename
Domain2>
6740
inline
typed::multi_union_pw_aff<Domain2, Range>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&upma)
const
;
6741
inline
typed::multi_union_pw_aff<Range>
pullback
(
const
typed::pw_multi_aff<Domain>
&upma)
const
;
6742
template
<
typename
Domain2>
6743
inline
typed::multi_union_pw_aff<Domain2, Range>
pullback
(
const
typed::union_pw_aff<Domain2, Domain>
&upma)
const
;
6744
inline
typed::multi_union_pw_aff<Range>
pullback
(
const
typed::union_pw_aff<Domain>
&upma)
const
;
6745
template
<
typename
Range2>
6746
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_union_pw_aff<Domain, Range2>
&multi2)
const
;
6747
template
<
typename
Range2>
6748
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_pw_aff<Domain, Range2>
&multi2)
const
;
6749
inline
typed::multi_union_pw_aff<Domain, pair<Range, Anonymous>
>
range_product
(
const
typed::union_pw_aff<Domain, Anonymous>
&multi2)
const
;
6750
inline
typed::id<Domain, Range>
get_range_tuple_id
()
const
=
delete
;
6751
inline
typed::multi_union_pw_aff<Domain, Range>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
6752
inline
typed::multi_union_pw_aff<Domain, Range>
scale
(
const
typed::val<Range>
&v)
const
;
6753
inline
typed::multi_union_pw_aff<Domain, Range>
scale
(
long
v)
const
;
6754
inline
typed::multi_union_pw_aff<Domain, Range>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
6755
inline
typed::multi_union_pw_aff<Domain, Range>
scale_down
(
const
typed::val<Range>
&v)
const
;
6756
inline
typed::multi_union_pw_aff<Domain, Range>
scale_down
(
long
v)
const
;
6757
inline
typed::multi_union_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
6758
template
<
typename
Range2>
6759
inline
typed::multi_union_pw_aff<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
6760
template
<
typename
Range2>
6761
inline
typed::multi_union_pw_aff<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
6762
inline
typed::space<Range>
space
()
const
;
6763
inline
typed::space<Domain, Range>
get_space
()
const
=
delete
;
6764
inline
typed::multi_union_pw_aff<Domain, Range>
sub
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
6765
inline
typed::multi_union_pw_aff<Domain, Range>
sub
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
6766
inline
typed::multi_union_pw_aff<Domain, Range>
sub
(
const
typed::union_pw_aff<Domain, Range>
&multi2)
const
;
6767
inline
typed::multi_union_pw_aff<Domain, Range>
union_add
(
const
typed::multi_union_pw_aff<Domain, Range>
&mupa2)
const
;
6768
inline
typed::multi_union_pw_aff<Domain, Range>
union_add
(
const
typed::multi_pw_aff<Domain, Range>
&mupa2)
const
;
6769
inline
typed::multi_union_pw_aff<Domain, Range>
union_add
(
const
typed::union_pw_aff<Domain, Range>
&mupa2)
const
;
6770
};
6771
6772
template
<
typename
Domain>
6773
struct
multi_val
<
Domain
> :
public
isl::multi_val
{
6774
template
<
typename
...>
6775
friend
struct
aff
;
6776
template
<
typename
...>
6777
friend
struct
aff_list
;
6778
template
<
typename
...>
6779
friend
struct
basic_map
;
6780
template
<
typename
...>
6781
friend
struct
basic_set
;
6782
template
<
typename
...>
6783
friend
struct
fixed_box
;
6784
template
<
typename
...>
6785
friend
struct
id
;
6786
template
<
typename
...>
6787
friend
struct
id_list
;
6788
template
<
typename
...>
6789
friend
struct
map
;
6790
template
<
typename
...>
6791
friend
struct
map_list
;
6792
template
<
typename
...>
6793
friend
struct
multi_aff
;
6794
template
<
typename
...>
6795
friend
struct
multi_id
;
6796
template
<
typename
...>
6797
friend
struct
multi_pw_aff
;
6798
template
<
typename
...>
6799
friend
struct
multi_union_pw_aff
;
6800
template
<
typename
...>
6801
friend
struct
multi_val
;
6802
template
<
typename
...>
6803
friend
struct
point
;
6804
template
<
typename
...>
6805
friend
struct
pw_aff
;
6806
template
<
typename
...>
6807
friend
struct
pw_aff_list
;
6808
template
<
typename
...>
6809
friend
struct
pw_multi_aff
;
6810
template
<
typename
...>
6811
friend
struct
pw_multi_aff_list
;
6812
template
<
typename
...>
6813
friend
struct
set
;
6814
template
<
typename
...>
6815
friend
struct
set_list
;
6816
template
<
typename
...>
6817
friend
struct
space
;
6818
template
<
typename
...>
6819
friend
struct
union_map
;
6820
template
<
typename
...>
6821
friend
struct
union_pw_aff
;
6822
template
<
typename
...>
6823
friend
struct
union_pw_aff_list
;
6824
template
<
typename
...>
6825
friend
struct
union_pw_multi_aff
;
6826
template
<
typename
...>
6827
friend
struct
union_set
;
6828
template
<
typename
...>
6829
friend
struct
union_set_list
;
6830
template
<
typename
...>
6831
friend
struct
val
;
6832
template
<
typename
...>
6833
friend
struct
val_list
;
6834
6835
multi_val
() =
default
;
6836
template
<
typename
Arg1,
6837
typename
std::enable_if<
6838
std::is_base_of<Domain, Arg1>{},
6839
bool
>
::type
=
true
>
6840
multi_val
(
const
multi_val<Arg1>
&
obj
) :
isl
::
multi_val
(
obj
) {}
6841
private
:
6842
template
<
typename
base,
6843
typename
std::enable_if<
6844
std::is_same<base, isl::multi_val>{},
bool
>
::type
=
true
>
6845
multi_val
(
const
base &
obj
) :
isl
::
multi_val
(
obj
) {}
6846
public
:
6847
static
multi_val
from
(
const
isl::multi_val
&
obj
) {
6848
return
multi_val
(
obj
);
6849
}
6850
inline
explicit
multi_val
(
const
typed::space<Domain>
&
space
,
const
typed::val_list<Anonymous>
&
list
);
6851
inline
explicit
multi_val
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
6852
inline
typed::multi_val<Domain>
add
(
const
typed::multi_val<Domain>
&multi2)
const
;
6853
inline
typed::multi_val<Domain>
add
(
const
typed::val<Domain>
&v)
const
;
6854
inline
typed::multi_val<Domain>
add
(
long
v)
const
;
6855
inline
typed::val<Anonymous>
at
(
int
pos
)
const
;
6856
inline
typed::val<Domain>
get_at
(
int
pos
)
const
=
delete
;
6857
inline
typed::val_list<Anonymous>
list
()
const
;
6858
inline
typed::val_list<Domain>
get_list
()
const
=
delete
;
6859
inline
typed::multi_val<Domain>
max
(
const
typed::multi_val<Domain>
&multi2)
const
;
6860
inline
typed::multi_val<Domain>
min
(
const
typed::multi_val<Domain>
&multi2)
const
;
6861
inline
typed::multi_val<Domain>
neg
()
const
;
6862
template
<
typename
Range>
6863
inline
typed::multi_val<pair<Domain, Range>
>
product
(
const
typed::multi_val<Range>
&multi2)
const
;
6864
inline
typed::multi_val<Domain>
range_product
(
const
typed::multi_val<>
&multi2)
const
=
delete
;
6865
inline
typed::id<Domain>
get_range_tuple_id
()
const
=
delete
;
6866
inline
typed::multi_val<Domain>
scale
(
const
typed::multi_val<Domain>
&mv)
const
;
6867
inline
typed::multi_val<Domain>
scale
(
const
typed::val<Domain>
&v)
const
;
6868
inline
typed::multi_val<Domain>
scale
(
long
v)
const
;
6869
inline
typed::multi_val<Domain>
scale_down
(
const
typed::multi_val<Domain>
&mv)
const
;
6870
inline
typed::multi_val<Domain>
scale_down
(
const
typed::val<Domain>
&v)
const
;
6871
inline
typed::multi_val<Domain>
scale_down
(
long
v)
const
;
6872
inline
typed::multi_val<Domain>
set_at
(
int
pos
,
const
typed::val<Anonymous>
&el)
const
;
6873
inline
typed::multi_val<Domain>
set_at
(
int
pos
,
long
el)
const
;
6874
template
<
typename
Domain2>
6875
inline
typed::multi_val<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
6876
template
<
typename
Domain2>
6877
inline
typed::multi_val<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
6878
inline
typed::space<Domain>
space
()
const
;
6879
inline
typed::space<Domain>
get_space
()
const
=
delete
;
6880
inline
typed::multi_val<Domain>
sub
(
const
typed::multi_val<Domain>
&multi2)
const
;
6881
};
6882
6883
template
<>
6884
struct
point
<> :
public
isl::point
{
6885
template
<
typename
...>
6886
friend
struct
aff
;
6887
template
<
typename
...>
6888
friend
struct
aff_list
;
6889
template
<
typename
...>
6890
friend
struct
basic_map
;
6891
template
<
typename
...>
6892
friend
struct
basic_set
;
6893
template
<
typename
...>
6894
friend
struct
fixed_box
;
6895
template
<
typename
...>
6896
friend
struct
id
;
6897
template
<
typename
...>
6898
friend
struct
id_list
;
6899
template
<
typename
...>
6900
friend
struct
map
;
6901
template
<
typename
...>
6902
friend
struct
map_list
;
6903
template
<
typename
...>
6904
friend
struct
multi_aff
;
6905
template
<
typename
...>
6906
friend
struct
multi_id
;
6907
template
<
typename
...>
6908
friend
struct
multi_pw_aff
;
6909
template
<
typename
...>
6910
friend
struct
multi_union_pw_aff
;
6911
template
<
typename
...>
6912
friend
struct
multi_val
;
6913
template
<
typename
...>
6914
friend
struct
point
;
6915
template
<
typename
...>
6916
friend
struct
pw_aff
;
6917
template
<
typename
...>
6918
friend
struct
pw_aff_list
;
6919
template
<
typename
...>
6920
friend
struct
pw_multi_aff
;
6921
template
<
typename
...>
6922
friend
struct
pw_multi_aff_list
;
6923
template
<
typename
...>
6924
friend
struct
set
;
6925
template
<
typename
...>
6926
friend
struct
set_list
;
6927
template
<
typename
...>
6928
friend
struct
space
;
6929
template
<
typename
...>
6930
friend
struct
union_map
;
6931
template
<
typename
...>
6932
friend
struct
union_pw_aff
;
6933
template
<
typename
...>
6934
friend
struct
union_pw_aff_list
;
6935
template
<
typename
...>
6936
friend
struct
union_pw_multi_aff
;
6937
template
<
typename
...>
6938
friend
struct
union_set
;
6939
template
<
typename
...>
6940
friend
struct
union_set_list
;
6941
template
<
typename
...>
6942
friend
struct
val
;
6943
template
<
typename
...>
6944
friend
struct
val_list
;
6945
6946
point
() =
default
;
6947
private
:
6948
template
<
typename
base,
6949
typename
std::enable_if<
6950
std::is_same<base, isl::point>{},
bool
>
::type
=
true
>
6951
point
(
const
base &
obj
) :
isl
::
point
(
obj
) {}
6952
public
:
6953
static
point
from
(
const
isl::point
&
obj
) {
6954
return
point
(
obj
);
6955
}
6956
inline
typed::basic_set<>
apply
(
const
typed::basic_map<>
&bmap)
const
=
delete
;
6957
inline
typed::set<>
apply
(
const
typed::map<>
&
map
)
const
=
delete
;
6958
inline
typed::union_set<>
apply
(
const
typed::union_map<>
&umap)
const
=
delete
;
6959
inline
typed::pw_multi_aff<>
as_pw_multi_aff
()
const
=
delete
;
6960
inline
typed::set<>
as_set
()
const
=
delete
;
6961
inline
typed::set<>
bind
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
6962
inline
typed::set<>
coalesce
()
const
;
6963
inline
typed::basic_set<>
detect_equalities
()
const
;
6964
inline
typed::set<>
drop_unused_params
()
const
;
6965
inline
bool
every_set
(
const
std::function<
bool
(
typed::set<>
)> &
test
)
const
;
6966
inline
typed::set<>
extract_set
(
const
typed::space<>
&
space
)
const
;
6967
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set<>
)> &
fn
)
const
;
6968
inline
void
foreach_point
(
const
std::function<
void
(
typed::point<>
)> &
fn
)
const
;
6969
inline
void
foreach_set
(
const
std::function<
void
(
typed::set<>
)> &
fn
)
const
;
6970
inline
typed::basic_set<>
gist
(
const
typed::basic_set<>
&
context
)
const
;
6971
inline
typed::set<>
gist
(
const
typed::set<>
&
context
)
const
;
6972
inline
typed::union_set<>
gist
(
const
typed::union_set<>
&
context
)
const
;
6973
inline
typed::set<>
gist_params
(
const
typed::set<>
&
context
)
const
=
delete
;
6974
inline
typed::map<>
identity
()
const
=
delete
;
6975
inline
typed::pw_aff<Anonymous>
indicator_function
()
const
;
6976
inline
typed::map<>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
6977
inline
typed::basic_set<>
intersect
(
const
typed::basic_set<>
&bset2)
const
;
6978
inline
typed::set<>
intersect
(
const
typed::set<>
&
set2
)
const
;
6979
inline
typed::union_set<>
intersect
(
const
typed::union_set<>
&uset2)
const
;
6980
inline
typed::basic_set<>
intersect_params
(
const
typed::basic_set<>
&bset2)
const
=
delete
;
6981
inline
typed::set<>
intersect_params
(
const
typed::set<>
&
params
)
const
=
delete
;
6982
inline
typed::fixed_box<>
lattice_tile
()
const
=
delete
;
6983
inline
typed::set<>
lexmax
()
const
=
delete
;
6984
inline
typed::pw_multi_aff<>
lexmax_pw_multi_aff
()
const
=
delete
;
6985
inline
typed::set<>
lexmin
()
const
=
delete
;
6986
inline
typed::pw_multi_aff<>
lexmin_pw_multi_aff
()
const
=
delete
;
6987
inline
typed::set<>
lower_bound
(
const
typed::multi_pw_aff<>
&lower)
const
=
delete
;
6988
inline
typed::set<>
lower_bound
(
const
typed::multi_val<>
&lower)
const
=
delete
;
6989
inline
typed::multi_pw_aff<>
max_multi_pw_aff
()
const
=
delete
;
6990
inline
typed::val<>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
6991
inline
typed::multi_pw_aff<>
min_multi_pw_aff
()
const
=
delete
;
6992
inline
typed::val<>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
6993
inline
typed::multi_val<>
multi_val
()
const
=
delete
;
6994
inline
typed::multi_val<>
get_multi_val
()
const
=
delete
;
6995
inline
typed::pw_aff<Anonymous>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
6996
inline
typed::pw_aff<Anonymous>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
6997
inline
typed::basic_set<>
params
()
const
=
delete
;
6998
inline
typed::multi_val<>
plain_multi_val_if_fixed
()
const
=
delete
;
6999
inline
typed::set<>
preimage
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
7000
inline
typed::set<>
preimage
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
7001
inline
typed::set<>
preimage
(
const
typed::pw_multi_aff<>
&
pma
)
const
=
delete
;
7002
inline
typed::union_set<>
preimage
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
7003
inline
typed::set<>
product
(
const
typed::set<>
&
set2
)
const
=
delete
;
7004
inline
typed::set<>
project_out_all_params
()
const
;
7005
inline
typed::set<>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
7006
inline
typed::set<>
project_out_param
(
const
std::string &
id
)
const
;
7007
inline
typed::set<>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
7008
inline
typed::pw_aff<Anonymous>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
7009
inline
typed::pw_aff<Anonymous>
pw_aff_on_domain
(
long
v)
const
;
7010
template
<
typename
Domain>
7011
inline
typed::pw_multi_aff<Domain>
pw_multi_aff_on_domain
(
const
typed::multi_val<Domain>
&mv)
const
;
7012
inline
typed::set_list<>
set_list
()
const
;
7013
inline
typed::fixed_box<>
simple_fixed_box_hull
()
const
=
delete
;
7014
inline
typed::space<>
space
()
const
;
7015
inline
typed::set<>
subtract
(
const
typed::set<>
&
set2
)
const
;
7016
inline
typed::union_set<>
subtract
(
const
typed::union_set<>
&uset2)
const
;
7017
inline
typed::set<>
to_set
()
const
;
7018
inline
typed::union_set<>
to_union_set
()
const
;
7019
inline
typed::map<>
translation
()
const
=
delete
;
7020
template
<
typename
Domain>
7021
inline
typed::set<Domain>
unbind_params
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
7022
inline
typed::map<>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
7023
inline
typed::set<>
unite
(
const
typed::basic_set<>
&bset2)
const
;
7024
inline
typed::set<>
unite
(
const
typed::set<>
&
set2
)
const
;
7025
inline
typed::union_set<>
unite
(
const
typed::union_set<>
&uset2)
const
;
7026
inline
typed::map<>
unwrap
()
const
=
delete
;
7027
inline
typed::set<>
upper_bound
(
const
typed::multi_pw_aff<>
&upper)
const
=
delete
;
7028
inline
typed::set<>
upper_bound
(
const
typed::multi_val<>
&upper)
const
=
delete
;
7029
inline
typed::set<>
wrapped_reverse
()
const
=
delete
;
7030
};
7031
7032
template
<
typename
Domain>
7033
struct
point
<
Domain
> :
public
isl::point
{
7034
template
<
typename
...>
7035
friend
struct
aff
;
7036
template
<
typename
...>
7037
friend
struct
aff_list
;
7038
template
<
typename
...>
7039
friend
struct
basic_map
;
7040
template
<
typename
...>
7041
friend
struct
basic_set
;
7042
template
<
typename
...>
7043
friend
struct
fixed_box
;
7044
template
<
typename
...>
7045
friend
struct
id
;
7046
template
<
typename
...>
7047
friend
struct
id_list
;
7048
template
<
typename
...>
7049
friend
struct
map
;
7050
template
<
typename
...>
7051
friend
struct
map_list
;
7052
template
<
typename
...>
7053
friend
struct
multi_aff
;
7054
template
<
typename
...>
7055
friend
struct
multi_id
;
7056
template
<
typename
...>
7057
friend
struct
multi_pw_aff
;
7058
template
<
typename
...>
7059
friend
struct
multi_union_pw_aff
;
7060
template
<
typename
...>
7061
friend
struct
multi_val
;
7062
template
<
typename
...>
7063
friend
struct
point
;
7064
template
<
typename
...>
7065
friend
struct
pw_aff
;
7066
template
<
typename
...>
7067
friend
struct
pw_aff_list
;
7068
template
<
typename
...>
7069
friend
struct
pw_multi_aff
;
7070
template
<
typename
...>
7071
friend
struct
pw_multi_aff_list
;
7072
template
<
typename
...>
7073
friend
struct
set
;
7074
template
<
typename
...>
7075
friend
struct
set_list
;
7076
template
<
typename
...>
7077
friend
struct
space
;
7078
template
<
typename
...>
7079
friend
struct
union_map
;
7080
template
<
typename
...>
7081
friend
struct
union_pw_aff
;
7082
template
<
typename
...>
7083
friend
struct
union_pw_aff_list
;
7084
template
<
typename
...>
7085
friend
struct
union_pw_multi_aff
;
7086
template
<
typename
...>
7087
friend
struct
union_set
;
7088
template
<
typename
...>
7089
friend
struct
union_set_list
;
7090
template
<
typename
...>
7091
friend
struct
val
;
7092
template
<
typename
...>
7093
friend
struct
val_list
;
7094
7095
point
() =
default
;
7096
template
<
typename
Arg1,
7097
typename
std::enable_if<
7098
std::is_base_of<Domain, Arg1>{},
7099
bool
>
::type
=
true
>
7100
point
(
const
point<Arg1>
&
obj
) :
isl
::
point
(
obj
) {}
7101
private
:
7102
template
<
typename
base,
7103
typename
std::enable_if<
7104
std::is_same<base, isl::point>{},
bool
>
::type
=
true
>
7105
point
(
const
base &
obj
) :
isl
::
point
(
obj
) {}
7106
public
:
7107
static
point
from
(
const
isl::point
&
obj
) {
7108
return
point
(
obj
);
7109
}
7110
template
<
typename
Range>
7111
inline
typed::basic_set<Range>
apply
(
const
typed::basic_map<Domain, Range>
&bmap)
const
;
7112
template
<
typename
Range>
7113
inline
typed::set<Range>
apply
(
const
typed::map<Domain, Range>
&
map
)
const
;
7114
template
<
typename
Range>
7115
inline
typed::union_set<Range>
apply
(
const
typed::union_map<Domain, Range>
&umap)
const
;
7116
inline
typed::pw_multi_aff<Domain>
as_pw_multi_aff
()
const
;
7117
inline
typed::set<Domain>
as_set
()
const
;
7118
inline
typed::set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
7119
inline
typed::set<Domain>
coalesce
()
const
;
7120
inline
typed::basic_set<Domain>
detect_equalities
()
const
;
7121
inline
typed::set<Domain>
drop_unused_params
()
const
;
7122
inline
bool
every_set
(
const
std::function<
bool
(
typed::set<Domain>
)> &
test
)
const
;
7123
inline
typed::set<Domain>
extract_set
(
const
typed::space<Domain>
&
space
)
const
;
7124
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set<Domain>
)> &
fn
)
const
;
7125
inline
void
foreach_point
(
const
std::function<
void
(
typed::point<Domain>
)> &
fn
)
const
;
7126
inline
void
foreach_set
(
const
std::function<
void
(
typed::set<Domain>
)> &
fn
)
const
;
7127
inline
typed::basic_set<Domain>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
7128
inline
typed::set<Domain>
gist
(
const
typed::set<Domain>
&
context
)
const
;
7129
inline
typed::union_set<Domain>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
7130
inline
typed::set<Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
7131
inline
typed::map<Domain, Domain>
identity
()
const
;
7132
inline
typed::pw_aff<Domain, Anonymous>
indicator_function
()
const
;
7133
template
<
typename
Arg1>
7134
inline
typed::map<Arg1, Domain>
insert_domain
(
const
typed::space<Arg1>
&
domain
)
const
;
7135
inline
typed::basic_set<Domain>
intersect
(
const
typed::basic_set<Domain>
&bset2)
const
;
7136
inline
typed::set<Domain>
intersect
(
const
typed::set<Domain>
&
set2
)
const
;
7137
inline
typed::union_set<Domain>
intersect
(
const
typed::union_set<Domain>
&uset2)
const
;
7138
inline
typed::basic_set<Domain>
intersect_params
(
const
typed::basic_set<>
&bset2)
const
;
7139
inline
typed::set<Domain>
intersect_params
(
const
typed::set<>
&
params
)
const
;
7140
inline
typed::fixed_box<Domain>
lattice_tile
()
const
;
7141
inline
typed::set<Domain>
lexmax
()
const
;
7142
inline
typed::pw_multi_aff<Domain>
lexmax_pw_multi_aff
()
const
;
7143
inline
typed::set<Domain>
lexmin
()
const
;
7144
inline
typed::pw_multi_aff<Domain>
lexmin_pw_multi_aff
()
const
;
7145
inline
typed::set<Domain>
lower_bound
(
const
typed::multi_pw_aff<Domain>
&lower)
const
;
7146
inline
typed::set<Domain>
lower_bound
(
const
typed::multi_val<Domain>
&lower)
const
;
7147
inline
typed::multi_pw_aff<Domain>
max_multi_pw_aff
()
const
;
7148
inline
typed::val<Domain>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
7149
inline
typed::multi_pw_aff<Domain>
min_multi_pw_aff
()
const
;
7150
inline
typed::val<Domain>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
7151
inline
typed::multi_val<Domain>
multi_val
()
const
;
7152
inline
typed::multi_val<Domain>
get_multi_val
()
const
=
delete
;
7153
inline
typed::pw_aff<Domain, Anonymous>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
7154
inline
typed::pw_aff<Domain, Anonymous>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
7155
inline
typed::basic_set<>
params
()
const
;
7156
inline
typed::multi_val<Domain>
plain_multi_val_if_fixed
()
const
;
7157
template
<
typename
Domain2>
7158
inline
typed::set<Domain2>
preimage
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
7159
template
<
typename
Domain2>
7160
inline
typed::set<Domain2>
preimage
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
7161
template
<
typename
Domain2>
7162
inline
typed::set<Domain2>
preimage
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
7163
template
<
typename
Domain2>
7164
inline
typed::union_set<Domain2>
preimage
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
7165
template
<
typename
Range>
7166
inline
typed::set<pair<Domain, Range>
>
product
(
const
typed::set<Range>
&
set2
)
const
;
7167
inline
typed::set<Domain>
project_out_all_params
()
const
;
7168
inline
typed::set<Domain>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
7169
inline
typed::set<Domain>
project_out_param
(
const
std::string &
id
)
const
;
7170
inline
typed::set<Domain>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
7171
inline
typed::pw_aff<Domain, Anonymous>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
7172
inline
typed::pw_aff<Domain, Anonymous>
pw_aff_on_domain
(
long
v)
const
;
7173
template
<
typename
Range>
7174
inline
typed::pw_multi_aff<Domain, Range>
pw_multi_aff_on_domain
(
const
typed::multi_val<Range>
&mv)
const
;
7175
inline
typed::set_list<Domain>
set_list
()
const
;
7176
inline
typed::fixed_box<Domain>
simple_fixed_box_hull
()
const
;
7177
inline
typed::space<Domain>
space
()
const
;
7178
inline
typed::set<Domain>
subtract
(
const
typed::set<Domain>
&
set2
)
const
;
7179
inline
typed::union_set<Domain>
subtract
(
const
typed::union_set<Domain>
&uset2)
const
;
7180
inline
typed::set<Domain>
to_set
()
const
;
7181
inline
typed::union_set<Domain>
to_union_set
()
const
;
7182
inline
typed::map<Domain, Domain>
translation
()
const
;
7183
inline
typed::set<Domain>
unbind_params
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
7184
template
<
typename
Arg1>
7185
inline
typed::map<Arg1, Domain>
unbind_params_insert_domain
(
const
typed::multi_id<Arg1>
&
domain
)
const
;
7186
inline
typed::set<Domain>
unite
(
const
typed::basic_set<Domain>
&bset2)
const
;
7187
inline
typed::set<Domain>
unite
(
const
typed::set<Domain>
&
set2
)
const
;
7188
inline
typed::union_set<Domain>
unite
(
const
typed::union_set<Domain>
&uset2)
const
;
7189
inline
typed::map<Domain>
unwrap
()
const
=
delete
;
7190
inline
typed::set<Domain>
upper_bound
(
const
typed::multi_pw_aff<Domain>
&upper)
const
;
7191
inline
typed::set<Domain>
upper_bound
(
const
typed::multi_val<Domain>
&upper)
const
;
7192
inline
typed::set<Domain>
wrapped_reverse
()
const
=
delete
;
7193
};
7194
7195
template
<
typename
Domain,
typename
Range>
7196
struct
point
<
pair
<
Domain
,
Range
>> :
public
isl::point
{
7197
template
<
typename
...>
7198
friend
struct
aff
;
7199
template
<
typename
...>
7200
friend
struct
aff_list
;
7201
template
<
typename
...>
7202
friend
struct
basic_map
;
7203
template
<
typename
...>
7204
friend
struct
basic_set
;
7205
template
<
typename
...>
7206
friend
struct
fixed_box
;
7207
template
<
typename
...>
7208
friend
struct
id
;
7209
template
<
typename
...>
7210
friend
struct
id_list
;
7211
template
<
typename
...>
7212
friend
struct
map
;
7213
template
<
typename
...>
7214
friend
struct
map_list
;
7215
template
<
typename
...>
7216
friend
struct
multi_aff
;
7217
template
<
typename
...>
7218
friend
struct
multi_id
;
7219
template
<
typename
...>
7220
friend
struct
multi_pw_aff
;
7221
template
<
typename
...>
7222
friend
struct
multi_union_pw_aff
;
7223
template
<
typename
...>
7224
friend
struct
multi_val
;
7225
template
<
typename
...>
7226
friend
struct
point
;
7227
template
<
typename
...>
7228
friend
struct
pw_aff
;
7229
template
<
typename
...>
7230
friend
struct
pw_aff_list
;
7231
template
<
typename
...>
7232
friend
struct
pw_multi_aff
;
7233
template
<
typename
...>
7234
friend
struct
pw_multi_aff_list
;
7235
template
<
typename
...>
7236
friend
struct
set
;
7237
template
<
typename
...>
7238
friend
struct
set_list
;
7239
template
<
typename
...>
7240
friend
struct
space
;
7241
template
<
typename
...>
7242
friend
struct
union_map
;
7243
template
<
typename
...>
7244
friend
struct
union_pw_aff
;
7245
template
<
typename
...>
7246
friend
struct
union_pw_aff_list
;
7247
template
<
typename
...>
7248
friend
struct
union_pw_multi_aff
;
7249
template
<
typename
...>
7250
friend
struct
union_set
;
7251
template
<
typename
...>
7252
friend
struct
union_set_list
;
7253
template
<
typename
...>
7254
friend
struct
val
;
7255
template
<
typename
...>
7256
friend
struct
val_list
;
7257
7258
point
() =
default
;
7259
template
<
typename
Arg1,
typename
Arg2,
7260
typename
std::enable_if<
7261
std::is_base_of<Domain, Arg1>{} &&
7262
std::is_base_of<Range, Arg2>{},
7263
bool
>
::type
=
true
>
7264
point
(
const
point
<
pair<Arg1, Arg2>
> &
obj
) :
isl
::
point
(
obj
) {}
7265
private
:
7266
template
<
typename
base,
7267
typename
std::enable_if<
7268
std::is_same<base, isl::point>{},
bool
>
::type
=
true
>
7269
point
(
const
base &
obj
) :
isl
::
point
(
obj
) {}
7270
public
:
7271
static
point
from
(
const
isl::point
&
obj
) {
7272
return
point
(
obj
);
7273
}
7274
template
<
typename
Arg2>
7275
inline
typed::basic_set<Arg2>
apply
(
const
typed::basic_map
<
pair<Domain, Range>
, Arg2> &bmap)
const
;
7276
template
<
typename
Arg2>
7277
inline
typed::set<Arg2>
apply
(
const
typed::map
<
pair<Domain, Range>
, Arg2> &
map
)
const
;
7278
template
<
typename
Arg2>
7279
inline
typed::union_set<Arg2>
apply
(
const
typed::union_map
<
pair<Domain, Range>
, Arg2> &umap)
const
;
7280
inline
typed::pw_multi_aff<pair<Domain, Range>
>
as_pw_multi_aff
()
const
;
7281
inline
typed::set<pair<Domain, Range>
>
as_set
()
const
;
7282
inline
typed::set<>
bind
(
const
typed::multi_id
<
pair<Domain, Range>
> &
tuple
)
const
;
7283
inline
typed::set<pair<Domain, Range>
>
coalesce
()
const
;
7284
inline
typed::basic_set<pair<Domain, Range>
>
detect_equalities
()
const
;
7285
inline
typed::set<pair<Domain, Range>
>
drop_unused_params
()
const
;
7286
inline
bool
every_set
(
const
std::function<
bool
(
typed::set
<
pair<Domain, Range>
>)> &
test
)
const
;
7287
inline
typed::set<pair<Domain, Range>
>
extract_set
(
const
typed::space
<
pair<Domain, Range>
> &
space
)
const
;
7288
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set
<
pair<Domain, Range>
>)> &
fn
)
const
;
7289
inline
void
foreach_point
(
const
std::function<
void
(
typed::point
<
pair<Domain, Range>
>)> &
fn
)
const
;
7290
inline
void
foreach_set
(
const
std::function<
void
(
typed::set
<
pair<Domain, Range>
>)> &
fn
)
const
;
7291
inline
typed::basic_set<pair<Domain, Range>
>
gist
(
const
typed::basic_set
<
pair<Domain, Range>
> &
context
)
const
;
7292
inline
typed::set<pair<Domain, Range>
>
gist
(
const
typed::set
<
pair<Domain, Range>
> &
context
)
const
;
7293
inline
typed::union_set<pair<Domain, Range>
>
gist
(
const
typed::union_set
<
pair<Domain, Range>
> &
context
)
const
;
7294
inline
typed::set<pair<Domain, Range>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
7295
inline
typed::map<pair<Domain, Range>
,
pair<Domain, Range>
>
identity
()
const
;
7296
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
indicator_function
()
const
;
7297
template
<
typename
Arg2>
7298
inline
typed::map<Arg2, pair<Domain, Range>
>
insert_domain
(
const
typed::space<Arg2>
&
domain
)
const
;
7299
inline
typed::basic_set<pair<Domain, Range>
>
intersect
(
const
typed::basic_set
<
pair<Domain, Range>
> &bset2)
const
;
7300
inline
typed::set<pair<Domain, Range>
>
intersect
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
7301
inline
typed::union_set<pair<Domain, Range>
>
intersect
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
7302
inline
typed::basic_set<pair<Domain, Range>
>
intersect_params
(
const
typed::basic_set<>
&bset2)
const
;
7303
inline
typed::set<pair<Domain, Range>
>
intersect_params
(
const
typed::set<>
&
params
)
const
;
7304
inline
typed::fixed_box<pair<Domain, Range>
>
lattice_tile
()
const
;
7305
inline
typed::set<pair<Domain, Range>
>
lexmax
()
const
;
7306
inline
typed::pw_multi_aff<pair<Domain, Range>
>
lexmax_pw_multi_aff
()
const
;
7307
inline
typed::set<pair<Domain, Range>
>
lexmin
()
const
;
7308
inline
typed::pw_multi_aff<pair<Domain, Range>
>
lexmin_pw_multi_aff
()
const
;
7309
inline
typed::set<pair<Domain, Range>
>
lower_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
> &lower)
const
;
7310
inline
typed::set<pair<Domain, Range>
>
lower_bound
(
const
typed::multi_val
<
pair<Domain, Range>
> &lower)
const
;
7311
inline
typed::multi_pw_aff<pair<Domain, Range>
>
max_multi_pw_aff
()
const
;
7312
inline
typed::val<pair<Domain, Range>
>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
7313
inline
typed::multi_pw_aff<pair<Domain, Range>
>
min_multi_pw_aff
()
const
;
7314
inline
typed::val<pair<Domain, Range>
>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
7315
inline
typed::multi_val<pair<Domain, Range>
>
multi_val
()
const
;
7316
inline
typed::multi_val<pair<Domain, Range>
>
get_multi_val
()
const
=
delete
;
7317
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
7318
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
7319
inline
typed::basic_set<>
params
()
const
;
7320
inline
typed::multi_val<pair<Domain, Range>
>
plain_multi_val_if_fixed
()
const
;
7321
template
<
typename
Domain2>
7322
inline
typed::set<Domain2>
preimage
(
const
typed::multi_aff
<
Domain2
,
pair<Domain, Range>
> &
ma
)
const
;
7323
template
<
typename
Domain2>
7324
inline
typed::set<Domain2>
preimage
(
const
typed::multi_pw_aff
<
Domain2
,
pair<Domain, Range>
> &mpa)
const
;
7325
template
<
typename
Domain2>
7326
inline
typed::set<Domain2>
preimage
(
const
typed::pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &
pma
)
const
;
7327
template
<
typename
Domain2>
7328
inline
typed::union_set<Domain2>
preimage
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<Domain, Range>
> &upma)
const
;
7329
template
<
typename
Arg2>
7330
inline
typed::set<pair<pair<Domain, Range>
, Arg2>>
product
(
const
typed::set<Arg2>
&
set2
)
const
;
7331
inline
typed::set<pair<Domain, Range>
>
project_out_all_params
()
const
;
7332
inline
typed::set<pair<Domain, Range>
>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
7333
inline
typed::set<pair<Domain, Range>
>
project_out_param
(
const
std::string &
id
)
const
;
7334
inline
typed::set<pair<Domain, Range>
>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
7335
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
7336
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
pw_aff_on_domain
(
long
v)
const
;
7337
template
<
typename
Arg2>
7338
inline
typed::pw_multi_aff<pair<Domain, Range>
, Arg2>
pw_multi_aff_on_domain
(
const
typed::multi_val<Arg2>
&mv)
const
;
7339
inline
typed::set_list<pair<Domain, Range>
>
set_list
()
const
;
7340
inline
typed::fixed_box<pair<Domain, Range>
>
simple_fixed_box_hull
()
const
;
7341
inline
typed::space<pair<Domain, Range>
>
space
()
const
;
7342
inline
typed::set<pair<Domain, Range>
>
subtract
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
7343
inline
typed::union_set<pair<Domain, Range>
>
subtract
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
7344
inline
typed::set<pair<Domain, Range>
>
to_set
()
const
;
7345
inline
typed::union_set<pair<Domain, Range>
>
to_union_set
()
const
;
7346
inline
typed::map<pair<Domain, Range>
,
pair<Domain, Range>
>
translation
()
const
;
7347
inline
typed::set<pair<Domain, Range>
>
unbind_params
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
7348
template
<
typename
Arg2>
7349
inline
typed::map<Arg2, pair<Domain, Range>
>
unbind_params_insert_domain
(
const
typed::multi_id<Arg2>
&
domain
)
const
;
7350
inline
typed::set<pair<Domain, Range>
>
unite
(
const
typed::basic_set
<
pair<Domain, Range>
> &bset2)
const
;
7351
inline
typed::set<pair<Domain, Range>
>
unite
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
7352
inline
typed::union_set<pair<Domain, Range>
>
unite
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
7353
inline
typed::map<Domain, Range>
unwrap
()
const
;
7354
inline
typed::set<pair<Domain, Range>
>
upper_bound
(
const
typed::multi_pw_aff
<
pair<Domain, Range>
> &upper)
const
;
7355
inline
typed::set<pair<Domain, Range>
>
upper_bound
(
const
typed::multi_val
<
pair<Domain, Range>
> &upper)
const
;
7356
inline
typed::set<pair<Range, Domain>
>
wrapped_reverse
()
const
;
7357
};
7358
7359
template
<>
7360
struct
pw_aff
<
Anonymous
> :
public
isl::pw_aff
{
7361
template
<
typename
...>
7362
friend
struct
aff
;
7363
template
<
typename
...>
7364
friend
struct
aff_list
;
7365
template
<
typename
...>
7366
friend
struct
basic_map
;
7367
template
<
typename
...>
7368
friend
struct
basic_set
;
7369
template
<
typename
...>
7370
friend
struct
fixed_box
;
7371
template
<
typename
...>
7372
friend
struct
id
;
7373
template
<
typename
...>
7374
friend
struct
id_list
;
7375
template
<
typename
...>
7376
friend
struct
map
;
7377
template
<
typename
...>
7378
friend
struct
map_list
;
7379
template
<
typename
...>
7380
friend
struct
multi_aff
;
7381
template
<
typename
...>
7382
friend
struct
multi_id
;
7383
template
<
typename
...>
7384
friend
struct
multi_pw_aff
;
7385
template
<
typename
...>
7386
friend
struct
multi_union_pw_aff
;
7387
template
<
typename
...>
7388
friend
struct
multi_val
;
7389
template
<
typename
...>
7390
friend
struct
point
;
7391
template
<
typename
...>
7392
friend
struct
pw_aff
;
7393
template
<
typename
...>
7394
friend
struct
pw_aff_list
;
7395
template
<
typename
...>
7396
friend
struct
pw_multi_aff
;
7397
template
<
typename
...>
7398
friend
struct
pw_multi_aff_list
;
7399
template
<
typename
...>
7400
friend
struct
set
;
7401
template
<
typename
...>
7402
friend
struct
set_list
;
7403
template
<
typename
...>
7404
friend
struct
space
;
7405
template
<
typename
...>
7406
friend
struct
union_map
;
7407
template
<
typename
...>
7408
friend
struct
union_pw_aff
;
7409
template
<
typename
...>
7410
friend
struct
union_pw_aff_list
;
7411
template
<
typename
...>
7412
friend
struct
union_pw_multi_aff
;
7413
template
<
typename
...>
7414
friend
struct
union_set
;
7415
template
<
typename
...>
7416
friend
struct
union_set_list
;
7417
template
<
typename
...>
7418
friend
struct
val
;
7419
template
<
typename
...>
7420
friend
struct
val_list
;
7421
7422
pw_aff
() =
default
;
7423
pw_aff
(
const
isl::pw_aff
&
obj
) :
isl
::
pw_aff
(
obj
) {}
7424
static
pw_aff
from
(
const
isl::pw_aff
&
obj
) {
7425
return
pw_aff
(
obj
);
7426
}
7427
inline
/* implicit */
pw_aff
(
const
typed::aff<Anonymous>
&
aff
);
7428
inline
explicit
pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
7429
inline
typed::multi_pw_aff<Anonymous>
add
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
7430
inline
typed::multi_union_pw_aff<Anonymous>
add
(
const
typed::multi_union_pw_aff<Anonymous>
&multi2)
const
;
7431
inline
typed::pw_aff<Anonymous>
add
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
7432
inline
typed::pw_multi_aff<Anonymous>
add
(
const
typed::pw_multi_aff<Anonymous>
&pma2)
const
;
7433
inline
typed::union_pw_aff<Anonymous>
add
(
const
typed::union_pw_aff<Anonymous>
&upa2)
const
;
7434
inline
typed::union_pw_multi_aff<Anonymous>
add
(
const
typed::union_pw_multi_aff<Anonymous>
&upma2)
const
;
7435
inline
typed::pw_aff<Anonymous>
add
(
const
typed::aff<Anonymous>
&pwaff2)
const
;
7436
inline
typed::pw_aff<Anonymous>
add_constant
(
const
typed::val<Anonymous>
&v)
const
;
7437
inline
typed::pw_aff<Anonymous>
add_constant
(
long
v)
const
;
7438
inline
typed::pw_multi_aff<Anonymous>
add_constant
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7439
template
<
typename
Range>
7440
inline
typed::union_pw_multi_aff<Range>
apply
(
const
typed::union_pw_multi_aff<Anonymous, Range>
&upma2)
const
;
7441
inline
typed::aff<Anonymous>
as_aff
()
const
;
7442
inline
typed::map<Anonymous>
as_map
()
const
=
delete
;
7443
inline
typed::multi_aff<Anonymous>
as_multi_aff
()
const
;
7444
inline
typed::multi_union_pw_aff<Anonymous>
as_multi_union_pw_aff
()
const
;
7445
inline
typed::pw_multi_aff<Anonymous>
as_pw_multi_aff
()
const
;
7446
inline
typed::set<Anonymous>
as_set
()
const
;
7447
inline
typed::union_map<Anonymous>
as_union_map
()
const
=
delete
;
7448
inline
typed::pw_aff<Anonymous>
at
(
int
pos
)
const
;
7449
inline
typed::set<>
bind
(
const
typed::multi_id<Anonymous>
&
tuple
)
const
;
7450
inline
typed::set<>
bind
(
const
typed::id<Anonymous>
&
id
)
const
;
7451
inline
typed::set<>
bind
(
const
std::string &
id
)
const
;
7452
inline
typed::pw_aff<Anonymous>
bind_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
7453
inline
typed::pw_aff<Anonymous>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
7454
inline
typed::pw_aff<Anonymous>
ceil
()
const
;
7455
inline
typed::pw_aff<Anonymous>
coalesce
()
const
;
7456
inline
typed::pw_aff<Anonymous>
cond
(
const
typed::pw_aff<Anonymous>
&pwaff_true,
const
typed::pw_aff<Anonymous>
&pwaff_false)
const
;
7457
inline
typed::set<>
domain
()
const
;
7458
inline
typed::pw_aff<Anonymous>
domain_reverse
()
const
=
delete
;
7459
inline
typed::pw_aff<Anonymous>
drop_unused_params
()
const
;
7460
inline
typed::pw_multi_aff<Anonymous>
extract_pw_multi_aff
(
const
typed::space<Anonymous>
&
space
)
const
;
7461
inline
typed::pw_aff<Anonymous>
floor
()
const
;
7462
inline
typed::set<Anonymous>
ge_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
7463
inline
typed::set<Anonymous>
ge_set
(
const
typed::aff<>
&pwaff2)
const
=
delete
;
7464
inline
typed::pw_aff<Anonymous>
gist
(
const
typed::set<>
&
context
)
const
;
7465
inline
typed::union_pw_aff<Anonymous>
gist
(
const
typed::union_set<>
&
context
)
const
;
7466
inline
typed::pw_aff<Anonymous>
gist
(
const
typed::basic_set<>
&
context
)
const
;
7467
inline
typed::pw_aff<Anonymous>
gist
(
const
typed::point<>
&
context
)
const
;
7468
inline
typed::pw_aff<Anonymous>
gist_params
(
const
typed::set<>
&
context
)
const
;
7469
inline
typed::pw_aff<Anonymous>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
7470
inline
typed::pw_aff<Anonymous>
gist_params
(
const
typed::point<>
&
context
)
const
;
7471
inline
typed::set<Anonymous>
gt_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
7472
inline
typed::set<Anonymous>
gt_set
(
const
typed::aff<>
&pwaff2)
const
=
delete
;
7473
inline
typed::multi_pw_aff<Anonymous, Anonymous>
identity
()
const
;
7474
template
<
typename
Domain>
7475
inline
typed::pw_aff<Domain, Anonymous>
insert_domain
(
const
typed::space<Domain>
&
domain
)
const
;
7476
inline
typed::pw_aff<Anonymous>
intersect_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
7477
inline
typed::union_pw_aff<Anonymous>
intersect_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
7478
inline
typed::union_pw_aff<Anonymous>
intersect_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
7479
inline
typed::pw_aff<Anonymous>
intersect_domain
(
const
typed::basic_set<>
&
set
)
const
=
delete
;
7480
inline
typed::pw_aff<Anonymous>
intersect_domain
(
const
typed::point<>
&
set
)
const
=
delete
;
7481
inline
typed::union_pw_aff<Anonymous>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
7482
inline
typed::pw_aff<Anonymous>
intersect_params
(
const
typed::set<>
&
set
)
const
;
7483
inline
typed::pw_aff<Anonymous>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
7484
inline
typed::pw_aff<Anonymous>
intersect_params
(
const
typed::point<>
&
set
)
const
;
7485
inline
typed::set<Anonymous>
le_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
7486
inline
typed::set<Anonymous>
le_set
(
const
typed::aff<>
&pwaff2)
const
=
delete
;
7487
inline
typed::pw_aff_list<Anonymous>
list
()
const
;
7488
inline
typed::set<Anonymous>
lt_set
(
const
typed::pw_aff<>
&pwaff2)
const
=
delete
;
7489
inline
typed::set<Anonymous>
lt_set
(
const
typed::aff<>
&pwaff2)
const
=
delete
;
7490
inline
typed::multi_pw_aff<Anonymous>
max
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
7491
inline
typed::pw_aff<Anonymous>
max
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
7492
inline
typed::pw_aff<Anonymous>
max
(
const
typed::aff<Anonymous>
&pwaff2)
const
;
7493
inline
typed::multi_val<Anonymous>
max_multi_val
()
const
;
7494
inline
typed::val<Anonymous>
max_val
()
const
;
7495
inline
typed::multi_pw_aff<Anonymous>
min
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
7496
inline
typed::pw_aff<Anonymous>
min
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
7497
inline
typed::pw_aff<Anonymous>
min
(
const
typed::aff<Anonymous>
&pwaff2)
const
;
7498
inline
typed::multi_val<Anonymous>
min_multi_val
()
const
;
7499
inline
typed::val<Anonymous>
min_val
()
const
;
7500
inline
typed::pw_aff<Anonymous>
mod
(
const
typed::val<Anonymous>
&
mod
)
const
;
7501
inline
typed::pw_aff<Anonymous>
mod
(
long
mod
)
const
;
7502
inline
typed::pw_aff<Anonymous>
neg
()
const
;
7503
inline
typed::set<>
params
()
const
;
7504
inline
typed::pw_multi_aff<Anonymous>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
7505
inline
typed::union_pw_multi_aff<Anonymous>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
7506
template
<
typename
Range>
7507
inline
typed::multi_pw_aff<pair<Anonymous, Range>
>
product
(
const
typed::multi_pw_aff<Range>
&multi2)
const
;
7508
template
<
typename
Range>
7509
inline
typed::pw_multi_aff<pair<Anonymous, Range>
>
product
(
const
typed::pw_multi_aff<Range>
&pma2)
const
;
7510
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
7511
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
7512
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::pw_multi_aff<>
&
pma
)
const
=
delete
;
7513
inline
typed::union_pw_aff<Anonymous>
pullback
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
7514
inline
typed::pw_multi_aff_list<Anonymous>
pw_multi_aff_list
()
const
;
7515
inline
typed::pw_multi_aff<Anonymous>
range_factor_domain
()
const
=
delete
;
7516
inline
typed::pw_multi_aff<Anonymous>
range_factor_range
()
const
=
delete
;
7517
inline
typed::multi_pw_aff<Anonymous>
range_product
(
const
typed::multi_pw_aff<>
&multi2)
const
=
delete
;
7518
inline
typed::multi_union_pw_aff<Anonymous>
range_product
(
const
typed::multi_union_pw_aff<>
&multi2)
const
=
delete
;
7519
inline
typed::pw_multi_aff<Anonymous>
range_product
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
7520
inline
typed::union_pw_multi_aff<Anonymous>
range_product
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
7521
inline
typed::pw_aff<Anonymous>
scale
(
const
typed::val<Anonymous>
&v)
const
;
7522
inline
typed::pw_aff<Anonymous>
scale
(
long
v)
const
;
7523
inline
typed::pw_multi_aff<Anonymous>
scale
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7524
inline
typed::pw_aff<Anonymous>
scale_down
(
const
typed::val<Anonymous>
&
f
)
const
;
7525
inline
typed::pw_aff<Anonymous>
scale_down
(
long
f
)
const
;
7526
inline
typed::pw_multi_aff<Anonymous>
scale_down
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7527
inline
typed::multi_pw_aff<Anonymous>
set_at
(
int
pos
,
const
typed::pw_aff<Anonymous>
&el)
const
;
7528
inline
typed::multi_union_pw_aff<Anonymous>
set_at
(
int
pos
,
const
typed::union_pw_aff<Anonymous>
&el)
const
;
7529
template
<
typename
Domain2>
7530
inline
typed::pw_multi_aff<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
7531
template
<
typename
Domain2>
7532
inline
typed::pw_multi_aff<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
7533
inline
typed::space<Anonymous>
space
()
const
;
7534
inline
typed::space<Anonymous>
get_space
()
const
=
delete
;
7535
inline
typed::multi_pw_aff<Anonymous>
sub
(
const
typed::multi_pw_aff<Anonymous>
&multi2)
const
;
7536
inline
typed::multi_union_pw_aff<Anonymous>
sub
(
const
typed::multi_union_pw_aff<Anonymous>
&multi2)
const
;
7537
inline
typed::pw_aff<Anonymous>
sub
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
7538
inline
typed::pw_multi_aff<Anonymous>
sub
(
const
typed::pw_multi_aff<Anonymous>
&pma2)
const
;
7539
inline
typed::union_pw_aff<Anonymous>
sub
(
const
typed::union_pw_aff<Anonymous>
&upa2)
const
;
7540
inline
typed::union_pw_multi_aff<Anonymous>
sub
(
const
typed::union_pw_multi_aff<Anonymous>
&upma2)
const
;
7541
inline
typed::pw_aff<Anonymous>
sub
(
const
typed::aff<Anonymous>
&pwaff2)
const
;
7542
inline
typed::pw_aff<Anonymous>
subtract_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
7543
inline
typed::union_pw_aff<Anonymous>
subtract_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
7544
inline
typed::union_pw_aff<Anonymous>
subtract_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
7545
inline
typed::pw_aff<Anonymous>
subtract_domain
(
const
typed::basic_set<>
&
set
)
const
=
delete
;
7546
inline
typed::pw_aff<Anonymous>
subtract_domain
(
const
typed::point<>
&
set
)
const
=
delete
;
7547
inline
typed::multi_pw_aff<Anonymous>
to_multi_pw_aff
()
const
;
7548
inline
typed::union_pw_aff<Anonymous>
to_union_pw_aff
()
const
;
7549
inline
typed::union_pw_multi_aff<Anonymous>
to_union_pw_multi_aff
()
const
;
7550
template
<
typename
Domain>
7551
inline
typed::multi_pw_aff<Domain, Anonymous>
unbind_params_insert_domain
(
const
typed::multi_id<Domain>
&
domain
)
const
;
7552
inline
typed::multi_pw_aff<Anonymous>
union_add
(
const
typed::multi_pw_aff<Anonymous>
&mpa2)
const
;
7553
inline
typed::multi_union_pw_aff<Anonymous>
union_add
(
const
typed::multi_union_pw_aff<Anonymous>
&mupa2)
const
;
7554
inline
typed::pw_aff<Anonymous>
union_add
(
const
typed::pw_aff<Anonymous>
&pwaff2)
const
;
7555
inline
typed::pw_multi_aff<Anonymous>
union_add
(
const
typed::pw_multi_aff<Anonymous>
&pma2)
const
;
7556
inline
typed::union_pw_aff<Anonymous>
union_add
(
const
typed::union_pw_aff<Anonymous>
&upa2)
const
;
7557
inline
typed::union_pw_multi_aff<Anonymous>
union_add
(
const
typed::union_pw_multi_aff<Anonymous>
&upma2)
const
;
7558
inline
typed::pw_aff<Anonymous>
union_add
(
const
typed::aff<Anonymous>
&pwaff2)
const
;
7559
};
7560
7561
template
<
typename
Domain>
7562
struct
pw_aff
<
Domain
,
Anonymous
> :
public
isl::pw_aff
{
7563
template
<
typename
...>
7564
friend
struct
aff
;
7565
template
<
typename
...>
7566
friend
struct
aff_list
;
7567
template
<
typename
...>
7568
friend
struct
basic_map
;
7569
template
<
typename
...>
7570
friend
struct
basic_set
;
7571
template
<
typename
...>
7572
friend
struct
fixed_box
;
7573
template
<
typename
...>
7574
friend
struct
id
;
7575
template
<
typename
...>
7576
friend
struct
id_list
;
7577
template
<
typename
...>
7578
friend
struct
map
;
7579
template
<
typename
...>
7580
friend
struct
map_list
;
7581
template
<
typename
...>
7582
friend
struct
multi_aff
;
7583
template
<
typename
...>
7584
friend
struct
multi_id
;
7585
template
<
typename
...>
7586
friend
struct
multi_pw_aff
;
7587
template
<
typename
...>
7588
friend
struct
multi_union_pw_aff
;
7589
template
<
typename
...>
7590
friend
struct
multi_val
;
7591
template
<
typename
...>
7592
friend
struct
point
;
7593
template
<
typename
...>
7594
friend
struct
pw_aff
;
7595
template
<
typename
...>
7596
friend
struct
pw_aff_list
;
7597
template
<
typename
...>
7598
friend
struct
pw_multi_aff
;
7599
template
<
typename
...>
7600
friend
struct
pw_multi_aff_list
;
7601
template
<
typename
...>
7602
friend
struct
set
;
7603
template
<
typename
...>
7604
friend
struct
set_list
;
7605
template
<
typename
...>
7606
friend
struct
space
;
7607
template
<
typename
...>
7608
friend
struct
union_map
;
7609
template
<
typename
...>
7610
friend
struct
union_pw_aff
;
7611
template
<
typename
...>
7612
friend
struct
union_pw_aff_list
;
7613
template
<
typename
...>
7614
friend
struct
union_pw_multi_aff
;
7615
template
<
typename
...>
7616
friend
struct
union_set
;
7617
template
<
typename
...>
7618
friend
struct
union_set_list
;
7619
template
<
typename
...>
7620
friend
struct
val
;
7621
template
<
typename
...>
7622
friend
struct
val_list
;
7623
7624
pw_aff
() =
default
;
7625
template
<
typename
Arg1,
7626
typename
std::enable_if<
7627
std::is_base_of<Domain, Arg1>{},
7628
bool
>
::type
=
true
>
7629
pw_aff
(
const
pw_aff<Arg1, Anonymous>
&
obj
) :
isl
::
pw_aff
(
obj
) {}
7630
private
:
7631
template
<
typename
base,
7632
typename
std::enable_if<
7633
std::is_same<base, isl::pw_aff>{},
bool
>
::type
=
true
>
7634
pw_aff
(
const
base &
obj
) :
isl
::
pw_aff
(
obj
) {}
7635
public
:
7636
static
pw_aff
from
(
const
isl::pw_aff
&
obj
) {
7637
return
pw_aff
(
obj
);
7638
}
7639
inline
/* implicit */
pw_aff
(
const
typed::aff<Domain, Anonymous>
&
aff
);
7640
inline
explicit
pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
7641
inline
typed::multi_pw_aff<Domain, Anonymous>
add
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
7642
inline
typed::multi_union_pw_aff<Domain, Anonymous>
add
(
const
typed::multi_union_pw_aff<Domain, Anonymous>
&multi2)
const
;
7643
inline
typed::pw_aff<Domain, Anonymous>
add
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7644
inline
typed::pw_multi_aff<Domain, Anonymous>
add
(
const
typed::pw_multi_aff<Domain, Anonymous>
&pma2)
const
;
7645
inline
typed::union_pw_aff<Domain, Anonymous>
add
(
const
typed::union_pw_aff<Domain, Anonymous>
&upa2)
const
;
7646
inline
typed::union_pw_multi_aff<Domain, Anonymous>
add
(
const
typed::union_pw_multi_aff<Domain, Anonymous>
&upma2)
const
;
7647
inline
typed::pw_aff<Domain, Anonymous>
add
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7648
inline
typed::pw_aff<Domain, Anonymous>
add_constant
(
const
typed::val<Anonymous>
&v)
const
;
7649
inline
typed::pw_aff<Domain, Anonymous>
add_constant
(
long
v)
const
;
7650
inline
typed::pw_multi_aff<Domain, Anonymous>
add_constant
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7651
template
<
typename
Range2>
7652
inline
typed::union_pw_multi_aff<Domain, Range2>
apply
(
const
typed::union_pw_multi_aff<Anonymous, Range2>
&upma2)
const
;
7653
inline
typed::aff<Domain, Anonymous>
as_aff
()
const
;
7654
inline
typed::map<Domain, Anonymous>
as_map
()
const
;
7655
inline
typed::multi_aff<Domain, Anonymous>
as_multi_aff
()
const
;
7656
inline
typed::multi_union_pw_aff<Domain, Anonymous>
as_multi_union_pw_aff
()
const
;
7657
inline
typed::pw_multi_aff<Domain, Anonymous>
as_pw_multi_aff
()
const
;
7658
inline
typed::set<Domain, Anonymous>
as_set
()
const
=
delete
;
7659
inline
typed::union_map<Domain, Anonymous>
as_union_map
()
const
;
7660
inline
typed::pw_aff<Domain, Anonymous>
at
(
int
pos
)
const
;
7661
inline
typed::set<Domain>
bind
(
const
typed::multi_id<Anonymous>
&
tuple
)
const
;
7662
inline
typed::set<Domain>
bind
(
const
typed::id<Anonymous>
&
id
)
const
;
7663
inline
typed::set<Domain>
bind
(
const
std::string &
id
)
const
;
7664
inline
typed::pw_aff<Anonymous>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
7665
inline
typed::pw_aff<Domain, Anonymous>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
7666
inline
typed::pw_aff<Domain, Anonymous>
ceil
()
const
;
7667
inline
typed::pw_aff<Domain, Anonymous>
coalesce
()
const
;
7668
inline
typed::pw_aff<Domain, Anonymous>
cond
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff_true,
const
typed::pw_aff<Domain, Anonymous>
&pwaff_false)
const
;
7669
inline
typed::set<Domain>
domain
()
const
;
7670
inline
typed::pw_aff<Domain, Anonymous>
domain_reverse
()
const
=
delete
;
7671
inline
typed::pw_aff<Domain, Anonymous>
drop_unused_params
()
const
;
7672
inline
typed::pw_multi_aff<Domain, Anonymous>
extract_pw_multi_aff
(
const
typed::space<Domain, Anonymous>
&
space
)
const
;
7673
inline
typed::pw_aff<Domain, Anonymous>
floor
()
const
;
7674
inline
typed::set<Domain>
ge_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7675
inline
typed::set<Domain>
ge_set
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7676
inline
typed::pw_aff<Domain, Anonymous>
gist
(
const
typed::set<Domain>
&
context
)
const
;
7677
inline
typed::union_pw_aff<Domain, Anonymous>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
7678
inline
typed::pw_aff<Domain, Anonymous>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
7679
inline
typed::pw_aff<Domain, Anonymous>
gist
(
const
typed::point<Domain>
&
context
)
const
;
7680
inline
typed::pw_aff<Domain, Anonymous>
gist_params
(
const
typed::set<>
&
context
)
const
;
7681
inline
typed::pw_aff<Domain, Anonymous>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
7682
inline
typed::pw_aff<Domain, Anonymous>
gist_params
(
const
typed::point<>
&
context
)
const
;
7683
inline
typed::set<Domain>
gt_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7684
inline
typed::set<Domain>
gt_set
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7685
inline
typed::multi_pw_aff<Domain, Anonymous>
identity
()
const
;
7686
inline
typed::pw_aff<Domain, Anonymous>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
7687
inline
typed::pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
7688
inline
typed::union_pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
7689
inline
typed::union_pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
7690
inline
typed::pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
7691
inline
typed::pw_aff<Domain, Anonymous>
intersect_domain
(
const
typed::point<Domain>
&
set
)
const
;
7692
inline
typed::union_pw_aff<Domain, Anonymous>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
7693
inline
typed::pw_aff<Domain, Anonymous>
intersect_params
(
const
typed::set<>
&
set
)
const
;
7694
inline
typed::pw_aff<Domain, Anonymous>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
7695
inline
typed::pw_aff<Domain, Anonymous>
intersect_params
(
const
typed::point<>
&
set
)
const
;
7696
inline
typed::set<Domain>
le_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7697
inline
typed::set<Domain>
le_set
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7698
inline
typed::pw_aff_list<Domain, Anonymous>
list
()
const
;
7699
inline
typed::set<Domain>
lt_set
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7700
inline
typed::set<Domain>
lt_set
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7701
inline
typed::multi_pw_aff<Domain, Anonymous>
max
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
7702
inline
typed::pw_aff<Domain, Anonymous>
max
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7703
inline
typed::pw_aff<Domain, Anonymous>
max
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7704
inline
typed::multi_val<Anonymous>
max_multi_val
()
const
;
7705
inline
typed::val<Anonymous>
max_val
()
const
;
7706
inline
typed::multi_pw_aff<Domain, Anonymous>
min
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
7707
inline
typed::pw_aff<Domain, Anonymous>
min
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7708
inline
typed::pw_aff<Domain, Anonymous>
min
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7709
inline
typed::multi_val<Anonymous>
min_multi_val
()
const
;
7710
inline
typed::val<Anonymous>
min_val
()
const
;
7711
inline
typed::pw_aff<Domain, Anonymous>
mod
(
const
typed::val<Anonymous>
&
mod
)
const
;
7712
inline
typed::pw_aff<Domain, Anonymous>
mod
(
long
mod
)
const
;
7713
inline
typed::pw_aff<Domain, Anonymous>
neg
()
const
;
7714
inline
typed::set<>
params
()
const
;
7715
inline
typed::pw_multi_aff<Domain, Anonymous>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
7716
inline
typed::union_pw_multi_aff<Domain, Anonymous>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
7717
template
<
typename
Domain2,
typename
Range2>
7718
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Anonymous, Range2>
>
product
(
const
typed::multi_pw_aff<Domain2, Range2>
&multi2)
const
;
7719
template
<
typename
Domain2,
typename
Range2>
7720
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<Anonymous, Range2>
>
product
(
const
typed::pw_multi_aff<Domain2, Range2>
&pma2)
const
;
7721
template
<
typename
Domain2>
7722
inline
typed::pw_aff<Domain2, Anonymous>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
7723
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_aff<Domain>
&
ma
)
const
;
7724
template
<
typename
Domain2>
7725
inline
typed::pw_aff<Domain2, Anonymous>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
7726
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa)
const
;
7727
template
<
typename
Domain2>
7728
inline
typed::pw_aff<Domain2, Anonymous>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
7729
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::pw_multi_aff<Domain>
&
pma
)
const
;
7730
template
<
typename
Domain2>
7731
inline
typed::union_pw_aff<Domain2, Anonymous>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
7732
inline
typed::union_pw_aff<Anonymous>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma)
const
;
7733
inline
typed::pw_multi_aff_list<Domain, Anonymous>
pw_multi_aff_list
()
const
;
7734
inline
typed::pw_multi_aff<Domain, Anonymous>
range_factor_domain
()
const
=
delete
;
7735
inline
typed::pw_multi_aff<Domain, Anonymous>
range_factor_range
()
const
=
delete
;
7736
template
<
typename
Range2>
7737
inline
typed::multi_pw_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::multi_pw_aff<Domain, Range2>
&multi2)
const
;
7738
template
<
typename
Range2>
7739
inline
typed::multi_union_pw_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::multi_union_pw_aff<Domain, Range2>
&multi2)
const
;
7740
template
<
typename
Range2>
7741
inline
typed::pw_multi_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::pw_multi_aff<Domain, Range2>
&pma2)
const
;
7742
template
<
typename
Range2>
7743
inline
typed::union_pw_multi_aff<Domain, pair<Anonymous, Range2>
>
range_product
(
const
typed::union_pw_multi_aff<Domain, Range2>
&upma2)
const
;
7744
inline
typed::pw_aff<Domain, Anonymous>
scale
(
const
typed::val<Anonymous>
&v)
const
;
7745
inline
typed::pw_aff<Domain, Anonymous>
scale
(
long
v)
const
;
7746
inline
typed::pw_multi_aff<Domain, Anonymous>
scale
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7747
inline
typed::pw_aff<Domain, Anonymous>
scale_down
(
const
typed::val<Anonymous>
&
f
)
const
;
7748
inline
typed::pw_aff<Domain, Anonymous>
scale_down
(
long
f
)
const
;
7749
inline
typed::pw_multi_aff<Domain, Anonymous>
scale_down
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7750
inline
typed::multi_pw_aff<Domain, Anonymous>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
7751
inline
typed::multi_union_pw_aff<Domain, Anonymous>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
7752
template
<
typename
Range2>
7753
inline
typed::pw_multi_aff<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
7754
template
<
typename
Range2>
7755
inline
typed::pw_multi_aff<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
7756
inline
typed::space<Domain, Anonymous>
space
()
const
;
7757
inline
typed::space<Domain, Anonymous>
get_space
()
const
=
delete
;
7758
inline
typed::multi_pw_aff<Domain, Anonymous>
sub
(
const
typed::multi_pw_aff<Domain, Anonymous>
&multi2)
const
;
7759
inline
typed::multi_union_pw_aff<Domain, Anonymous>
sub
(
const
typed::multi_union_pw_aff<Domain, Anonymous>
&multi2)
const
;
7760
inline
typed::pw_aff<Domain, Anonymous>
sub
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7761
inline
typed::pw_multi_aff<Domain, Anonymous>
sub
(
const
typed::pw_multi_aff<Domain, Anonymous>
&pma2)
const
;
7762
inline
typed::union_pw_aff<Domain, Anonymous>
sub
(
const
typed::union_pw_aff<Domain, Anonymous>
&upa2)
const
;
7763
inline
typed::union_pw_multi_aff<Domain, Anonymous>
sub
(
const
typed::union_pw_multi_aff<Domain, Anonymous>
&upma2)
const
;
7764
inline
typed::pw_aff<Domain, Anonymous>
sub
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7765
inline
typed::pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::set<Domain>
&
set
)
const
;
7766
inline
typed::union_pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::space<Domain>
&
space
)
const
;
7767
inline
typed::union_pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::union_set<Domain>
&uset)
const
;
7768
inline
typed::pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
7769
inline
typed::pw_aff<Domain, Anonymous>
subtract_domain
(
const
typed::point<Domain>
&
set
)
const
;
7770
inline
typed::multi_pw_aff<Domain, Anonymous>
to_multi_pw_aff
()
const
;
7771
inline
typed::union_pw_aff<Domain, Anonymous>
to_union_pw_aff
()
const
;
7772
inline
typed::union_pw_multi_aff<Domain, Anonymous>
to_union_pw_multi_aff
()
const
;
7773
inline
typed::multi_pw_aff<Domain, Anonymous>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
7774
inline
typed::multi_pw_aff<Domain, Anonymous>
union_add
(
const
typed::multi_pw_aff<Domain, Anonymous>
&mpa2)
const
;
7775
inline
typed::multi_union_pw_aff<Domain, Anonymous>
union_add
(
const
typed::multi_union_pw_aff<Domain, Anonymous>
&mupa2)
const
;
7776
inline
typed::pw_aff<Domain, Anonymous>
union_add
(
const
typed::pw_aff<Domain, Anonymous>
&pwaff2)
const
;
7777
inline
typed::pw_multi_aff<Domain, Anonymous>
union_add
(
const
typed::pw_multi_aff<Domain, Anonymous>
&pma2)
const
;
7778
inline
typed::union_pw_aff<Domain, Anonymous>
union_add
(
const
typed::union_pw_aff<Domain, Anonymous>
&upa2)
const
;
7779
inline
typed::union_pw_multi_aff<Domain, Anonymous>
union_add
(
const
typed::union_pw_multi_aff<Domain, Anonymous>
&upma2)
const
;
7780
inline
typed::pw_aff<Domain, Anonymous>
union_add
(
const
typed::aff<Domain, Anonymous>
&pwaff2)
const
;
7781
};
7782
7783
template
<
typename
Domain2,
typename
Range2>
7784
struct
pw_aff
<
pair
<
Domain2
,
Range2
>,
Anonymous
> :
public
isl::pw_aff
{
7785
template
<
typename
...>
7786
friend
struct
aff
;
7787
template
<
typename
...>
7788
friend
struct
aff_list
;
7789
template
<
typename
...>
7790
friend
struct
basic_map
;
7791
template
<
typename
...>
7792
friend
struct
basic_set
;
7793
template
<
typename
...>
7794
friend
struct
fixed_box
;
7795
template
<
typename
...>
7796
friend
struct
id
;
7797
template
<
typename
...>
7798
friend
struct
id_list
;
7799
template
<
typename
...>
7800
friend
struct
map
;
7801
template
<
typename
...>
7802
friend
struct
map_list
;
7803
template
<
typename
...>
7804
friend
struct
multi_aff
;
7805
template
<
typename
...>
7806
friend
struct
multi_id
;
7807
template
<
typename
...>
7808
friend
struct
multi_pw_aff
;
7809
template
<
typename
...>
7810
friend
struct
multi_union_pw_aff
;
7811
template
<
typename
...>
7812
friend
struct
multi_val
;
7813
template
<
typename
...>
7814
friend
struct
point
;
7815
template
<
typename
...>
7816
friend
struct
pw_aff
;
7817
template
<
typename
...>
7818
friend
struct
pw_aff_list
;
7819
template
<
typename
...>
7820
friend
struct
pw_multi_aff
;
7821
template
<
typename
...>
7822
friend
struct
pw_multi_aff_list
;
7823
template
<
typename
...>
7824
friend
struct
set
;
7825
template
<
typename
...>
7826
friend
struct
set_list
;
7827
template
<
typename
...>
7828
friend
struct
space
;
7829
template
<
typename
...>
7830
friend
struct
union_map
;
7831
template
<
typename
...>
7832
friend
struct
union_pw_aff
;
7833
template
<
typename
...>
7834
friend
struct
union_pw_aff_list
;
7835
template
<
typename
...>
7836
friend
struct
union_pw_multi_aff
;
7837
template
<
typename
...>
7838
friend
struct
union_set
;
7839
template
<
typename
...>
7840
friend
struct
union_set_list
;
7841
template
<
typename
...>
7842
friend
struct
val
;
7843
template
<
typename
...>
7844
friend
struct
val_list
;
7845
7846
pw_aff
() =
default
;
7847
template
<
typename
Arg1,
typename
Arg2,
7848
typename
std::enable_if<
7849
std::is_base_of<Domain2, Arg1>{} &&
7850
std::is_base_of<Range2, Arg2>{},
7851
bool
>
::type
=
true
>
7852
pw_aff
(
const
pw_aff
<
pair<Arg1, Arg2>
,
Anonymous
> &
obj
) :
isl
::
pw_aff
(
obj
) {}
7853
private
:
7854
template
<
typename
base,
7855
typename
std::enable_if<
7856
std::is_same<base, isl::pw_aff>{},
bool
>
::type
=
true
>
7857
pw_aff
(
const
base &
obj
) :
isl
::
pw_aff
(
obj
) {}
7858
public
:
7859
static
pw_aff
from
(
const
isl::pw_aff
&
obj
) {
7860
return
pw_aff
(
obj
);
7861
}
7862
inline
/* implicit */
pw_aff
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &
aff
);
7863
inline
explicit
pw_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
7864
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
7865
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
7866
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7867
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
7868
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upa2)
const
;
7869
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upma2)
const
;
7870
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7871
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add_constant
(
const
typed::val<Anonymous>
&v)
const
;
7872
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
add_constant
(
long
v)
const
;
7873
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
add_constant
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7874
template
<
typename
Arg1>
7875
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
, Arg1>
apply
(
const
typed::union_pw_multi_aff<Anonymous, Arg1>
&upma2)
const
;
7876
inline
typed::aff<pair<Domain2, Range2>
,
Anonymous
>
as_aff
()
const
;
7877
inline
typed::map<pair<Domain2, Range2>
,
Anonymous
>
as_map
()
const
;
7878
inline
typed::multi_aff<pair<Domain2, Range2>
,
Anonymous
>
as_multi_aff
()
const
;
7879
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
as_multi_union_pw_aff
()
const
;
7880
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
as_pw_multi_aff
()
const
;
7881
inline
typed::set<pair<Domain2, Range2>
,
Anonymous
>
as_set
()
const
=
delete
;
7882
inline
typed::union_map<pair<Domain2, Range2>
,
Anonymous
>
as_union_map
()
const
;
7883
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
at
(
int
pos
)
const
;
7884
inline
typed::set<pair<Domain2, Range2>
>
bind
(
const
typed::multi_id<Anonymous>
&
tuple
)
const
;
7885
inline
typed::set<pair<Domain2, Range2>
>
bind
(
const
typed::id<Anonymous>
&
id
)
const
;
7886
inline
typed::set<pair<Domain2, Range2>
>
bind
(
const
std::string &
id
)
const
;
7887
inline
typed::pw_aff<Anonymous>
bind_domain
(
const
typed::multi_id
<
pair<Domain2, Range2>
> &
tuple
)
const
;
7888
inline
typed::pw_aff<Range2, Anonymous>
bind_domain_wrapped_domain
(
const
typed::multi_id<Domain2>
&
tuple
)
const
;
7889
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
ceil
()
const
;
7890
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
coalesce
()
const
;
7891
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
cond
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff_true,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff_false)
const
;
7892
inline
typed::set<pair<Domain2, Range2>
>
domain
()
const
;
7893
inline
typed::pw_aff<pair<Range2, Domain2>
,
Anonymous
>
domain_reverse
()
const
;
7894
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
drop_unused_params
()
const
;
7895
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
extract_pw_multi_aff
(
const
typed::space
<
pair<Domain2, Range2>
,
Anonymous
> &
space
)
const
;
7896
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
floor
()
const
;
7897
inline
typed::set<pair<Domain2, Range2>
>
ge_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7898
inline
typed::set<pair<Domain2, Range2>
>
ge_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7899
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::set
<
pair<Domain2, Range2>
> &
context
)
const
;
7900
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::union_set
<
pair<Domain2, Range2>
> &
context
)
const
;
7901
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
context
)
const
;
7902
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist
(
const
typed::point
<
pair<Domain2, Range2>
> &
context
)
const
;
7903
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist_params
(
const
typed::set<>
&
context
)
const
;
7904
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
7905
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
gist_params
(
const
typed::point<>
&
context
)
const
;
7906
inline
typed::set<pair<Domain2, Range2>
>
gt_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7907
inline
typed::set<pair<Domain2, Range2>
>
gt_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7908
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
identity
()
const
;
7909
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
7910
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
7911
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
7912
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
7913
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
set
)
const
;
7914
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain
(
const
typed::point
<
pair<Domain2, Range2>
> &
set
)
const
;
7915
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_domain_wrapped_domain
(
const
typed::union_set<Domain2>
&uset)
const
;
7916
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
7917
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
7918
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
intersect_params
(
const
typed::point<>
&
set
)
const
;
7919
inline
typed::set<pair<Domain2, Range2>
>
le_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7920
inline
typed::set<pair<Domain2, Range2>
>
le_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7921
inline
typed::pw_aff_list<pair<Domain2, Range2>
,
Anonymous
>
list
()
const
;
7922
inline
typed::set<pair<Domain2, Range2>
>
lt_set
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7923
inline
typed::set<pair<Domain2, Range2>
>
lt_set
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7924
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
max
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
7925
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
max
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7926
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
max
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7927
inline
typed::multi_val<Anonymous>
max_multi_val
()
const
;
7928
inline
typed::val<Anonymous>
max_val
()
const
;
7929
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
min
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
7930
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
min
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7931
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
min
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7932
inline
typed::multi_val<Anonymous>
min_multi_val
()
const
;
7933
inline
typed::val<Anonymous>
min_val
()
const
;
7934
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
mod
(
const
typed::val<Anonymous>
&
mod
)
const
;
7935
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
mod
(
long
mod
)
const
;
7936
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
neg
()
const
;
7937
inline
typed::set<>
params
()
const
;
7938
template
<
typename
Domain3>
7939
inline
typed::pw_multi_aff<pair<Domain3, Range2>
,
Anonymous
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<Domain3, Domain2>
&pma2)
const
;
7940
template
<
typename
Domain3>
7941
inline
typed::union_pw_multi_aff<pair<Domain3, Range2>
,
Anonymous
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<Domain3, Domain2>
&upma2)
const
;
7942
template
<
typename
Arg1,
typename
Arg2>
7943
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg1>,
pair<Anonymous, Arg2>
>
product
(
const
typed::multi_pw_aff<Arg1, Arg2>
&multi2)
const
;
7944
template
<
typename
Arg1,
typename
Arg2>
7945
inline
typed::pw_multi_aff<pair<pair<Domain2, Range2>
, Arg1>,
pair<Anonymous, Arg2>
>
product
(
const
typed::pw_multi_aff<Arg1, Arg2>
&pma2)
const
;
7946
template
<
typename
Arg1>
7947
inline
typed::pw_aff<Arg1, Anonymous>
pullback
(
const
typed::multi_aff
<Arg1,
pair<Domain2, Range2>
> &
ma
)
const
;
7948
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_aff
<
pair<Domain2, Range2>
> &
ma
)
const
;
7949
template
<
typename
Arg1>
7950
inline
typed::pw_aff<Arg1, Anonymous>
pullback
(
const
typed::multi_pw_aff
<Arg1,
pair<Domain2, Range2>
> &mpa)
const
;
7951
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
> &mpa)
const
;
7952
template
<
typename
Arg1>
7953
inline
typed::pw_aff<Arg1, Anonymous>
pullback
(
const
typed::pw_multi_aff
<Arg1,
pair<Domain2, Range2>
> &
pma
)
const
;
7954
inline
typed::pw_aff<Anonymous>
pullback
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
> &
pma
)
const
;
7955
template
<
typename
Arg1>
7956
inline
typed::union_pw_aff<Arg1, Anonymous>
pullback
(
const
typed::union_pw_multi_aff
<Arg1,
pair<Domain2, Range2>
> &upma)
const
;
7957
inline
typed::union_pw_aff<Anonymous>
pullback
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
> &upma)
const
;
7958
inline
typed::pw_multi_aff_list<pair<Domain2, Range2>
,
Anonymous
>
pw_multi_aff_list
()
const
;
7959
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
range_factor_domain
()
const
=
delete
;
7960
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
range_factor_range
()
const
=
delete
;
7961
template
<
typename
Arg1>
7962
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
, Arg1> &multi2)
const
;
7963
template
<
typename
Arg1>
7964
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
, Arg1> &multi2)
const
;
7965
template
<
typename
Arg1>
7966
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
, Arg1> &pma2)
const
;
7967
template
<
typename
Arg1>
7968
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
pair<Anonymous, Arg1>
>
range_product
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
, Arg1> &upma2)
const
;
7969
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
scale
(
const
typed::val<Anonymous>
&v)
const
;
7970
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
scale
(
long
v)
const
;
7971
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
scale
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7972
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
scale_down
(
const
typed::val<Anonymous>
&
f
)
const
;
7973
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
scale_down
(
long
f
)
const
;
7974
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
scale_down
(
const
typed::multi_val<Anonymous>
&mv)
const
;
7975
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
7976
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
7977
template
<
typename
Arg1>
7978
inline
typed::pw_multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
7979
template
<
typename
Arg1>
7980
inline
typed::pw_multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
std::string &
id
)
const
;
7981
inline
typed::space<pair<Domain2, Range2>
,
Anonymous
>
space
()
const
;
7982
inline
typed::space<pair<Domain2, Range2>
,
Anonymous
>
get_space
()
const
=
delete
;
7983
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
7984
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &multi2)
const
;
7985
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7986
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
7987
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upa2)
const
;
7988
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upma2)
const
;
7989
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
sub
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
7990
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
7991
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
7992
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
7993
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
set
)
const
;
7994
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
subtract_domain
(
const
typed::point
<
pair<Domain2, Range2>
> &
set
)
const
;
7995
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
to_multi_pw_aff
()
const
;
7996
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
to_union_pw_aff
()
const
;
7997
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
to_union_pw_multi_aff
()
const
;
7998
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
7999
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &mpa2)
const
;
8000
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &mupa2)
const
;
8001
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
8002
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
8003
inline
typed::union_pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upa2)
const
;
8004
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Anonymous
> &upma2)
const
;
8005
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
union_add
(
const
typed::aff
<
pair<Domain2, Range2>
,
Anonymous
> &pwaff2)
const
;
8006
};
8007
8008
template
<>
8009
struct
pw_aff_list
<
Anonymous
> :
public
isl::pw_aff_list
{
8010
template
<
typename
...>
8011
friend
struct
aff
;
8012
template
<
typename
...>
8013
friend
struct
aff_list
;
8014
template
<
typename
...>
8015
friend
struct
basic_map
;
8016
template
<
typename
...>
8017
friend
struct
basic_set
;
8018
template
<
typename
...>
8019
friend
struct
fixed_box
;
8020
template
<
typename
...>
8021
friend
struct
id
;
8022
template
<
typename
...>
8023
friend
struct
id_list
;
8024
template
<
typename
...>
8025
friend
struct
map
;
8026
template
<
typename
...>
8027
friend
struct
map_list
;
8028
template
<
typename
...>
8029
friend
struct
multi_aff
;
8030
template
<
typename
...>
8031
friend
struct
multi_id
;
8032
template
<
typename
...>
8033
friend
struct
multi_pw_aff
;
8034
template
<
typename
...>
8035
friend
struct
multi_union_pw_aff
;
8036
template
<
typename
...>
8037
friend
struct
multi_val
;
8038
template
<
typename
...>
8039
friend
struct
point
;
8040
template
<
typename
...>
8041
friend
struct
pw_aff
;
8042
template
<
typename
...>
8043
friend
struct
pw_aff_list
;
8044
template
<
typename
...>
8045
friend
struct
pw_multi_aff
;
8046
template
<
typename
...>
8047
friend
struct
pw_multi_aff_list
;
8048
template
<
typename
...>
8049
friend
struct
set
;
8050
template
<
typename
...>
8051
friend
struct
set_list
;
8052
template
<
typename
...>
8053
friend
struct
space
;
8054
template
<
typename
...>
8055
friend
struct
union_map
;
8056
template
<
typename
...>
8057
friend
struct
union_pw_aff
;
8058
template
<
typename
...>
8059
friend
struct
union_pw_aff_list
;
8060
template
<
typename
...>
8061
friend
struct
union_pw_multi_aff
;
8062
template
<
typename
...>
8063
friend
struct
union_set
;
8064
template
<
typename
...>
8065
friend
struct
union_set_list
;
8066
template
<
typename
...>
8067
friend
struct
val
;
8068
template
<
typename
...>
8069
friend
struct
val_list
;
8070
8071
pw_aff_list
() =
default
;
8072
pw_aff_list
(
const
isl::pw_aff_list
&
obj
) :
isl
::
pw_aff_list
(
obj
) {}
8073
static
pw_aff_list
from
(
const
isl::pw_aff_list
&
obj
) {
8074
return
pw_aff_list
(
obj
);
8075
}
8076
inline
explicit
pw_aff_list
(
const
isl::ctx
&
ctx
,
int
n
);
8077
inline
explicit
pw_aff_list
(
const
typed::pw_aff<Anonymous>
&el);
8078
inline
explicit
pw_aff_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
8079
inline
typed::pw_aff_list<Anonymous>
add
(
const
typed::pw_aff<Anonymous>
&el)
const
;
8080
inline
typed::pw_aff_list<Anonymous>
add
(
const
typed::aff<Anonymous>
&el)
const
;
8081
inline
typed::pw_aff<Anonymous>
at
(
int
index)
const
;
8082
inline
typed::pw_aff<Anonymous>
get_at
(
int
index)
const
=
delete
;
8083
inline
typed::pw_aff_list<Anonymous>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
8084
inline
void
foreach
(
const
std::function<
void
(
typed::pw_aff<Anonymous>
)> &
fn
)
const
;
8085
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::pw_aff<Anonymous>
,
typed::pw_aff<Anonymous>
)> &follows,
const
std::function<
void
(
typed::pw_aff_list<Anonymous>
)> &
fn
)
const
;
8086
inline
typed::pw_aff_list<Anonymous>
set_at
(
int
index,
const
typed::pw_aff<Anonymous>
&el)
const
;
8087
};
8088
8089
template
<
typename
Domain>
8090
struct
pw_aff_list<Domain, Anonymous>
:
public
isl::pw_aff_list
{
8091
template
<
typename
...>
8092
friend
struct
aff
;
8093
template
<
typename
...>
8094
friend
struct
aff_list
;
8095
template
<
typename
...>
8096
friend
struct
basic_map
;
8097
template
<
typename
...>
8098
friend
struct
basic_set
;
8099
template
<
typename
...>
8100
friend
struct
fixed_box
;
8101
template
<
typename
...>
8102
friend
struct
id
;
8103
template
<
typename
...>
8104
friend
struct
id_list
;
8105
template
<
typename
...>
8106
friend
struct
map
;
8107
template
<
typename
...>
8108
friend
struct
map_list
;
8109
template
<
typename
...>
8110
friend
struct
multi_aff
;
8111
template
<
typename
...>
8112
friend
struct
multi_id
;
8113
template
<
typename
...>
8114
friend
struct
multi_pw_aff
;
8115
template
<
typename
...>
8116
friend
struct
multi_union_pw_aff
;
8117
template
<
typename
...>
8118
friend
struct
multi_val
;
8119
template
<
typename
...>
8120
friend
struct
point
;
8121
template
<
typename
...>
8122
friend
struct
pw_aff
;
8123
template
<
typename
...>
8124
friend
struct
pw_aff_list
;
8125
template
<
typename
...>
8126
friend
struct
pw_multi_aff
;
8127
template
<
typename
...>
8128
friend
struct
pw_multi_aff_list
;
8129
template
<
typename
...>
8130
friend
struct
set
;
8131
template
<
typename
...>
8132
friend
struct
set_list
;
8133
template
<
typename
...>
8134
friend
struct
space
;
8135
template
<
typename
...>
8136
friend
struct
union_map
;
8137
template
<
typename
...>
8138
friend
struct
union_pw_aff
;
8139
template
<
typename
...>
8140
friend
struct
union_pw_aff_list
;
8141
template
<
typename
...>
8142
friend
struct
union_pw_multi_aff
;
8143
template
<
typename
...>
8144
friend
struct
union_set
;
8145
template
<
typename
...>
8146
friend
struct
union_set_list
;
8147
template
<
typename
...>
8148
friend
struct
val
;
8149
template
<
typename
...>
8150
friend
struct
val_list
;
8151
8152
pw_aff_list
() =
default
;
8153
template
<
typename
Arg1,
8154
typename
std::enable_if<
8155
std::is_base_of<Domain, Arg1>{},
8156
bool
>
::type
=
true
>
8157
pw_aff_list
(
const
pw_aff_list<Arg1, Anonymous>
&
obj
) :
isl
::
pw_aff_list
(
obj
) {}
8158
private
:
8159
template
<
typename
base,
8160
typename
std::enable_if<
8161
std::is_same<base, isl::pw_aff_list>{},
bool
>
::type
=
true
>
8162
pw_aff_list
(
const
base &
obj
) :
isl
::
pw_aff_list
(
obj
) {}
8163
public
:
8164
static
pw_aff_list
from
(
const
isl::pw_aff_list
&
obj
) {
8165
return
pw_aff_list
(
obj
);
8166
}
8167
inline
explicit
pw_aff_list
(
const
isl::ctx
&
ctx
,
int
n
);
8168
inline
explicit
pw_aff_list
(
const
typed::pw_aff<Domain, Anonymous>
&el);
8169
inline
explicit
pw_aff_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
8170
inline
typed::pw_aff_list<Domain, Anonymous>
add
(
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
8171
inline
typed::pw_aff_list<Domain, Anonymous>
add
(
const
typed::aff<Domain, Anonymous>
&el)
const
;
8172
inline
typed::pw_aff<Domain, Anonymous>
at
(
int
index)
const
;
8173
inline
typed::pw_aff<Domain, Anonymous>
get_at
(
int
index)
const
=
delete
;
8174
inline
typed::pw_aff_list<Domain, Anonymous>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
8175
inline
void
foreach
(
const
std::function<
void
(
typed::pw_aff<Domain, Anonymous>
)> &
fn
)
const
;
8176
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::pw_aff<Domain, Anonymous>
,
typed::pw_aff<Domain, Anonymous>
)> &follows,
const
std::function<
void
(
typed::pw_aff_list<Domain, Anonymous>
)> &
fn
)
const
;
8177
inline
typed::pw_aff_list<Domain, Anonymous>
set_at
(
int
index,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
8178
};
8179
8180
template
<
typename
Domain>
8181
struct
pw_multi_aff
<
Domain
> :
public
isl::pw_multi_aff
{
8182
template
<
typename
...>
8183
friend
struct
aff
;
8184
template
<
typename
...>
8185
friend
struct
aff_list
;
8186
template
<
typename
...>
8187
friend
struct
basic_map
;
8188
template
<
typename
...>
8189
friend
struct
basic_set
;
8190
template
<
typename
...>
8191
friend
struct
fixed_box
;
8192
template
<
typename
...>
8193
friend
struct
id
;
8194
template
<
typename
...>
8195
friend
struct
id_list
;
8196
template
<
typename
...>
8197
friend
struct
map
;
8198
template
<
typename
...>
8199
friend
struct
map_list
;
8200
template
<
typename
...>
8201
friend
struct
multi_aff
;
8202
template
<
typename
...>
8203
friend
struct
multi_id
;
8204
template
<
typename
...>
8205
friend
struct
multi_pw_aff
;
8206
template
<
typename
...>
8207
friend
struct
multi_union_pw_aff
;
8208
template
<
typename
...>
8209
friend
struct
multi_val
;
8210
template
<
typename
...>
8211
friend
struct
point
;
8212
template
<
typename
...>
8213
friend
struct
pw_aff
;
8214
template
<
typename
...>
8215
friend
struct
pw_aff_list
;
8216
template
<
typename
...>
8217
friend
struct
pw_multi_aff
;
8218
template
<
typename
...>
8219
friend
struct
pw_multi_aff_list
;
8220
template
<
typename
...>
8221
friend
struct
set
;
8222
template
<
typename
...>
8223
friend
struct
set_list
;
8224
template
<
typename
...>
8225
friend
struct
space
;
8226
template
<
typename
...>
8227
friend
struct
union_map
;
8228
template
<
typename
...>
8229
friend
struct
union_pw_aff
;
8230
template
<
typename
...>
8231
friend
struct
union_pw_aff_list
;
8232
template
<
typename
...>
8233
friend
struct
union_pw_multi_aff
;
8234
template
<
typename
...>
8235
friend
struct
union_set
;
8236
template
<
typename
...>
8237
friend
struct
union_set_list
;
8238
template
<
typename
...>
8239
friend
struct
val
;
8240
template
<
typename
...>
8241
friend
struct
val_list
;
8242
8243
pw_multi_aff
() =
default
;
8244
template
<
typename
Arg1,
8245
typename
std::enable_if<
8246
std::is_base_of<Domain, Arg1>{},
8247
bool
>
::type
=
true
>
8248
pw_multi_aff
(
const
pw_multi_aff<Arg1>
&
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8249
private
:
8250
template
<
typename
base,
8251
typename
std::enable_if<
8252
std::is_same<base, isl::pw_multi_aff>{},
bool
>
::type
=
true
>
8253
pw_multi_aff
(
const
base &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8254
public
:
8255
static
pw_multi_aff
from
(
const
isl::pw_multi_aff
&
obj
) {
8256
return
pw_multi_aff
(
obj
);
8257
}
8258
inline
/* implicit */
pw_multi_aff
(
const
typed::multi_aff<Domain>
&
ma
);
8259
inline
/* implicit */
pw_multi_aff
(
const
typed::pw_aff<Domain>
&
pa
);
8260
inline
explicit
pw_multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
8261
inline
typed::multi_pw_aff<Domain>
add
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
8262
inline
typed::multi_union_pw_aff<Domain>
add
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
8263
inline
typed::pw_multi_aff<Domain>
add
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
8264
inline
typed::union_pw_multi_aff<Domain>
add
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
8265
inline
typed::pw_multi_aff<Domain>
add
(
const
typed::multi_aff<Domain>
&pma2)
const
;
8266
inline
typed::pw_multi_aff<Domain>
add
(
const
typed::pw_aff<Domain>
&pma2)
const
;
8267
inline
typed::pw_multi_aff<Domain>
add_constant
(
const
typed::multi_val<Domain>
&mv)
const
;
8268
inline
typed::pw_multi_aff<Domain>
add_constant
(
const
typed::val<Domain>
&v)
const
;
8269
inline
typed::pw_multi_aff<Domain>
add_constant
(
long
v)
const
;
8270
template
<
typename
Range>
8271
inline
typed::union_pw_multi_aff<Range>
apply
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
8272
inline
typed::map<Domain>
as_map
()
const
=
delete
;
8273
inline
typed::multi_aff<Domain>
as_multi_aff
()
const
;
8274
inline
typed::multi_union_pw_aff<Domain>
as_multi_union_pw_aff
()
const
;
8275
inline
typed::pw_multi_aff<Domain>
as_pw_multi_aff
()
const
;
8276
inline
typed::set<Domain>
as_set
()
const
;
8277
inline
typed::union_map<Domain>
as_union_map
()
const
=
delete
;
8278
inline
typed::pw_aff<Anonymous>
at
(
int
pos
)
const
;
8279
inline
typed::pw_aff<Domain>
get_at
(
int
pos
)
const
=
delete
;
8280
inline
typed::set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
8281
inline
typed::pw_multi_aff<Domain>
bind_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
8282
inline
typed::pw_multi_aff<Domain>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
8283
inline
typed::pw_multi_aff<Domain>
coalesce
()
const
;
8284
inline
typed::set<>
domain
()
const
;
8285
inline
typed::pw_multi_aff<Domain>
domain_reverse
()
const
=
delete
;
8286
inline
typed::pw_multi_aff<Domain>
drop_unused_params
()
const
;
8287
inline
typed::pw_multi_aff<Domain>
extract_pw_multi_aff
(
const
typed::space<Domain>
&
space
)
const
;
8288
inline
typed::pw_multi_aff<Domain>
gist
(
const
typed::set<>
&
set
)
const
;
8289
inline
typed::union_pw_multi_aff<Domain>
gist
(
const
typed::union_set<>
&
context
)
const
;
8290
inline
typed::pw_multi_aff<Domain>
gist
(
const
typed::basic_set<>
&
set
)
const
;
8291
inline
typed::pw_multi_aff<Domain>
gist
(
const
typed::point<>
&
set
)
const
;
8292
inline
typed::pw_multi_aff<Domain>
gist_params
(
const
typed::set<>
&
set
)
const
;
8293
inline
typed::pw_multi_aff<Domain>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
8294
inline
typed::pw_multi_aff<Domain>
gist_params
(
const
typed::point<>
&
set
)
const
;
8295
inline
typed::multi_pw_aff<Domain, Domain>
identity
()
const
;
8296
template
<
typename
Arg1>
8297
inline
typed::pw_multi_aff<Arg1, Domain>
insert_domain
(
const
typed::space<Arg1>
&
domain
)
const
;
8298
inline
typed::pw_multi_aff<Domain>
intersect_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
8299
inline
typed::union_pw_multi_aff<Domain>
intersect_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
8300
inline
typed::union_pw_multi_aff<Domain>
intersect_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
8301
inline
typed::pw_multi_aff<Domain>
intersect_domain
(
const
typed::basic_set<>
&
set
)
const
=
delete
;
8302
inline
typed::pw_multi_aff<Domain>
intersect_domain
(
const
typed::point<>
&
set
)
const
=
delete
;
8303
inline
typed::union_pw_multi_aff<Domain>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
8304
inline
typed::pw_multi_aff<Domain>
intersect_params
(
const
typed::set<>
&
set
)
const
;
8305
inline
typed::pw_multi_aff<Domain>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
8306
inline
typed::pw_multi_aff<Domain>
intersect_params
(
const
typed::point<>
&
set
)
const
;
8307
inline
typed::pw_aff_list<Anonymous>
list
()
const
;
8308
inline
typed::multi_pw_aff<Domain>
max
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
8309
inline
typed::multi_val<Domain>
max_multi_val
()
const
;
8310
inline
typed::multi_pw_aff<Domain>
min
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
8311
inline
typed::multi_val<Domain>
min_multi_val
()
const
;
8312
inline
typed::multi_pw_aff<Domain>
neg
()
const
;
8313
inline
typed::pw_multi_aff<Domain>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
8314
inline
typed::union_pw_multi_aff<Domain>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
8315
inline
typed::pw_multi_aff<Domain>
preimage_domain_wrapped_domain
(
const
typed::multi_aff<>
&pma2)
const
=
delete
;
8316
inline
typed::pw_multi_aff<Domain>
preimage_domain_wrapped_domain
(
const
typed::pw_aff<>
&pma2)
const
=
delete
;
8317
template
<
typename
Range>
8318
inline
typed::multi_pw_aff<pair<Domain, Range>
>
product
(
const
typed::multi_pw_aff<Range>
&multi2)
const
;
8319
template
<
typename
Range>
8320
inline
typed::pw_multi_aff<pair<Domain, Range>
>
product
(
const
typed::pw_multi_aff<Range>
&pma2)
const
;
8321
template
<
typename
Range>
8322
inline
typed::pw_multi_aff<pair<Domain, Range>
>
product
(
const
typed::multi_aff<Range>
&pma2)
const
;
8323
inline
typed::pw_multi_aff<pair<Domain, Anonymous>
>
product
(
const
typed::pw_aff<Anonymous>
&pma2)
const
;
8324
inline
typed::multi_pw_aff<Domain>
pullback
(
const
typed::multi_pw_aff<>
&mpa2)
const
=
delete
;
8325
inline
typed::pw_multi_aff<Domain>
pullback
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
8326
inline
typed::pw_multi_aff<Domain>
pullback
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
8327
inline
typed::union_pw_multi_aff<Domain>
pullback
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
8328
inline
typed::pw_multi_aff_list<Domain>
pw_multi_aff_list
()
const
;
8329
inline
typed::pw_multi_aff<Domain>
range_factor_domain
()
const
=
delete
;
8330
inline
typed::pw_multi_aff<Domain>
range_factor_range
()
const
=
delete
;
8331
inline
typed::multi_pw_aff<Domain>
range_product
(
const
typed::multi_pw_aff<>
&multi2)
const
=
delete
;
8332
inline
typed::multi_union_pw_aff<Domain>
range_product
(
const
typed::multi_union_pw_aff<>
&multi2)
const
=
delete
;
8333
inline
typed::pw_multi_aff<Domain>
range_product
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
8334
inline
typed::union_pw_multi_aff<Domain>
range_product
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
8335
inline
typed::pw_multi_aff<Domain>
range_product
(
const
typed::multi_aff<>
&pma2)
const
=
delete
;
8336
inline
typed::pw_multi_aff<Domain>
range_product
(
const
typed::pw_aff<>
&pma2)
const
=
delete
;
8337
inline
typed::id<Domain>
get_range_tuple_id
()
const
=
delete
;
8338
inline
typed::pw_multi_aff<Domain>
scale
(
const
typed::multi_val<Domain>
&mv)
const
;
8339
inline
typed::pw_multi_aff<Domain>
scale
(
const
typed::val<Domain>
&v)
const
;
8340
inline
typed::pw_multi_aff<Domain>
scale
(
long
v)
const
;
8341
inline
typed::pw_multi_aff<Domain>
scale_down
(
const
typed::multi_val<Domain>
&mv)
const
;
8342
inline
typed::pw_multi_aff<Domain>
scale_down
(
const
typed::val<Domain>
&v)
const
;
8343
inline
typed::pw_multi_aff<Domain>
scale_down
(
long
v)
const
;
8344
inline
typed::multi_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::pw_aff<Anonymous>
&el)
const
;
8345
inline
typed::multi_union_pw_aff<Domain>
set_at
(
int
pos
,
const
typed::union_pw_aff<Anonymous>
&el)
const
;
8346
template
<
typename
Domain2>
8347
inline
typed::pw_multi_aff<Domain2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
8348
template
<
typename
Domain2>
8349
inline
typed::pw_multi_aff<Domain2>
set_range_tuple
(
const
std::string &
id
)
const
;
8350
inline
typed::space<Domain>
space
()
const
;
8351
inline
typed::space<Domain>
get_space
()
const
=
delete
;
8352
inline
typed::multi_pw_aff<Domain>
sub
(
const
typed::multi_pw_aff<Domain>
&multi2)
const
;
8353
inline
typed::multi_union_pw_aff<Domain>
sub
(
const
typed::multi_union_pw_aff<Domain>
&multi2)
const
;
8354
inline
typed::pw_multi_aff<Domain>
sub
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
8355
inline
typed::union_pw_multi_aff<Domain>
sub
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
8356
inline
typed::pw_multi_aff<Domain>
sub
(
const
typed::multi_aff<Domain>
&pma2)
const
;
8357
inline
typed::pw_multi_aff<Domain>
sub
(
const
typed::pw_aff<Domain>
&pma2)
const
;
8358
inline
typed::pw_multi_aff<Domain>
subtract_domain
(
const
typed::set<>
&
set
)
const
=
delete
;
8359
inline
typed::union_pw_multi_aff<Domain>
subtract_domain
(
const
typed::space<>
&
space
)
const
=
delete
;
8360
inline
typed::union_pw_multi_aff<Domain>
subtract_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
8361
inline
typed::pw_multi_aff<Domain>
subtract_domain
(
const
typed::basic_set<>
&
set
)
const
=
delete
;
8362
inline
typed::pw_multi_aff<Domain>
subtract_domain
(
const
typed::point<>
&
set
)
const
=
delete
;
8363
inline
typed::multi_pw_aff<Domain>
to_multi_pw_aff
()
const
;
8364
inline
typed::union_pw_multi_aff<Domain>
to_union_pw_multi_aff
()
const
;
8365
template
<
typename
Arg1>
8366
inline
typed::multi_pw_aff<Arg1, Domain>
unbind_params_insert_domain
(
const
typed::multi_id<Arg1>
&
domain
)
const
;
8367
inline
typed::multi_pw_aff<Domain>
union_add
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
8368
inline
typed::multi_union_pw_aff<Domain>
union_add
(
const
typed::multi_union_pw_aff<Domain>
&mupa2)
const
;
8369
inline
typed::pw_multi_aff<Domain>
union_add
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
8370
inline
typed::union_pw_multi_aff<Domain>
union_add
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
8371
inline
typed::pw_multi_aff<Domain>
union_add
(
const
typed::multi_aff<Domain>
&pma2)
const
;
8372
inline
typed::pw_multi_aff<Domain>
union_add
(
const
typed::pw_aff<Domain>
&pma2)
const
;
8373
};
8374
8375
template
<
typename
Domain,
typename
Range>
8376
struct
pw_multi_aff
<
Domain
,
Range
> :
public
isl::pw_multi_aff
{
8377
template
<
typename
...>
8378
friend
struct
aff
;
8379
template
<
typename
...>
8380
friend
struct
aff_list
;
8381
template
<
typename
...>
8382
friend
struct
basic_map
;
8383
template
<
typename
...>
8384
friend
struct
basic_set
;
8385
template
<
typename
...>
8386
friend
struct
fixed_box
;
8387
template
<
typename
...>
8388
friend
struct
id
;
8389
template
<
typename
...>
8390
friend
struct
id_list
;
8391
template
<
typename
...>
8392
friend
struct
map
;
8393
template
<
typename
...>
8394
friend
struct
map_list
;
8395
template
<
typename
...>
8396
friend
struct
multi_aff
;
8397
template
<
typename
...>
8398
friend
struct
multi_id
;
8399
template
<
typename
...>
8400
friend
struct
multi_pw_aff
;
8401
template
<
typename
...>
8402
friend
struct
multi_union_pw_aff
;
8403
template
<
typename
...>
8404
friend
struct
multi_val
;
8405
template
<
typename
...>
8406
friend
struct
point
;
8407
template
<
typename
...>
8408
friend
struct
pw_aff
;
8409
template
<
typename
...>
8410
friend
struct
pw_aff_list
;
8411
template
<
typename
...>
8412
friend
struct
pw_multi_aff
;
8413
template
<
typename
...>
8414
friend
struct
pw_multi_aff_list
;
8415
template
<
typename
...>
8416
friend
struct
set
;
8417
template
<
typename
...>
8418
friend
struct
set_list
;
8419
template
<
typename
...>
8420
friend
struct
space
;
8421
template
<
typename
...>
8422
friend
struct
union_map
;
8423
template
<
typename
...>
8424
friend
struct
union_pw_aff
;
8425
template
<
typename
...>
8426
friend
struct
union_pw_aff_list
;
8427
template
<
typename
...>
8428
friend
struct
union_pw_multi_aff
;
8429
template
<
typename
...>
8430
friend
struct
union_set
;
8431
template
<
typename
...>
8432
friend
struct
union_set_list
;
8433
template
<
typename
...>
8434
friend
struct
val
;
8435
template
<
typename
...>
8436
friend
struct
val_list
;
8437
8438
pw_multi_aff
() =
default
;
8439
template
<
typename
Arg1,
typename
Arg2,
8440
typename
std::enable_if<
8441
std::is_base_of<Domain, Arg1>{} &&
8442
std::is_base_of<Range, Arg2>{},
8443
bool
>
::type
=
true
>
8444
pw_multi_aff
(
const
pw_multi_aff<Arg1, Arg2>
&
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8445
private
:
8446
template
<
typename
base,
8447
typename
std::enable_if<
8448
std::is_same<base, isl::pw_multi_aff>{},
bool
>
::type
=
true
>
8449
pw_multi_aff
(
const
base &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8450
public
:
8451
static
pw_multi_aff
from
(
const
isl::pw_multi_aff
&
obj
) {
8452
return
pw_multi_aff
(
obj
);
8453
}
8454
inline
/* implicit */
pw_multi_aff
(
const
typed::multi_aff<Domain, Range>
&
ma
);
8455
inline
/* implicit */
pw_multi_aff
(
const
typed::pw_aff<Domain, Range>
&
pa
);
8456
inline
explicit
pw_multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
8457
inline
typed::multi_pw_aff<Domain, Range>
add
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
8458
inline
typed::multi_union_pw_aff<Domain, Range>
add
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
8459
inline
typed::pw_multi_aff<Domain, Range>
add
(
const
typed::pw_multi_aff<Domain, Range>
&pma2)
const
;
8460
inline
typed::union_pw_multi_aff<Domain, Range>
add
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
8461
inline
typed::pw_multi_aff<Domain, Range>
add
(
const
typed::multi_aff<Domain, Range>
&pma2)
const
;
8462
inline
typed::pw_multi_aff<Domain, Range>
add
(
const
typed::pw_aff<Domain, Range>
&pma2)
const
;
8463
inline
typed::pw_multi_aff<Domain, Range>
add_constant
(
const
typed::multi_val<Range>
&mv)
const
;
8464
inline
typed::pw_multi_aff<Domain, Range>
add_constant
(
const
typed::val<Range>
&v)
const
;
8465
inline
typed::pw_multi_aff<Domain, Range>
add_constant
(
long
v)
const
;
8466
template
<
typename
Range2>
8467
inline
typed::union_pw_multi_aff<Domain, Range2>
apply
(
const
typed::union_pw_multi_aff<Range, Range2>
&upma2)
const
;
8468
inline
typed::map<Domain, Range>
as_map
()
const
;
8469
inline
typed::multi_aff<Domain, Range>
as_multi_aff
()
const
;
8470
inline
typed::multi_union_pw_aff<Domain, Range>
as_multi_union_pw_aff
()
const
;
8471
inline
typed::pw_multi_aff<Domain, Range>
as_pw_multi_aff
()
const
;
8472
inline
typed::set<Domain, Range>
as_set
()
const
=
delete
;
8473
inline
typed::union_map<Domain, Range>
as_union_map
()
const
;
8474
inline
typed::pw_aff<Domain, Anonymous>
at
(
int
pos
)
const
;
8475
inline
typed::pw_aff<Domain, Range>
get_at
(
int
pos
)
const
=
delete
;
8476
inline
typed::set<Domain>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
8477
inline
typed::pw_multi_aff<Range>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
8478
inline
typed::pw_multi_aff<Domain, Range>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
8479
inline
typed::pw_multi_aff<Domain, Range>
coalesce
()
const
;
8480
inline
typed::set<Domain>
domain
()
const
;
8481
inline
typed::pw_multi_aff<Domain, Range>
domain_reverse
()
const
=
delete
;
8482
inline
typed::pw_multi_aff<Domain, Range>
drop_unused_params
()
const
;
8483
inline
typed::pw_multi_aff<Domain, Range>
extract_pw_multi_aff
(
const
typed::space<Domain, Range>
&
space
)
const
;
8484
inline
typed::pw_multi_aff<Domain, Range>
gist
(
const
typed::set<Domain>
&
set
)
const
;
8485
inline
typed::union_pw_multi_aff<Domain, Range>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
8486
inline
typed::pw_multi_aff<Domain, Range>
gist
(
const
typed::basic_set<Domain>
&
set
)
const
;
8487
inline
typed::pw_multi_aff<Domain, Range>
gist
(
const
typed::point<Domain>
&
set
)
const
;
8488
inline
typed::pw_multi_aff<Domain, Range>
gist_params
(
const
typed::set<>
&
set
)
const
;
8489
inline
typed::pw_multi_aff<Domain, Range>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
8490
inline
typed::pw_multi_aff<Domain, Range>
gist_params
(
const
typed::point<>
&
set
)
const
;
8491
inline
typed::multi_pw_aff<Domain, Range>
identity
()
const
;
8492
inline
typed::pw_multi_aff<Domain, Range>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
8493
inline
typed::pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
8494
inline
typed::union_pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
8495
inline
typed::union_pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
8496
inline
typed::pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
8497
inline
typed::pw_multi_aff<Domain, Range>
intersect_domain
(
const
typed::point<Domain>
&
set
)
const
;
8498
inline
typed::union_pw_multi_aff<Domain, Range>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
8499
inline
typed::pw_multi_aff<Domain, Range>
intersect_params
(
const
typed::set<>
&
set
)
const
;
8500
inline
typed::pw_multi_aff<Domain, Range>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
8501
inline
typed::pw_multi_aff<Domain, Range>
intersect_params
(
const
typed::point<>
&
set
)
const
;
8502
inline
typed::pw_aff_list<Domain, Anonymous>
list
()
const
;
8503
inline
typed::multi_pw_aff<Domain, Range>
max
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
8504
inline
typed::multi_val<Range>
max_multi_val
()
const
;
8505
inline
typed::multi_pw_aff<Domain, Range>
min
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
8506
inline
typed::multi_val<Range>
min_multi_val
()
const
;
8507
inline
typed::multi_pw_aff<Domain, Range>
neg
()
const
;
8508
inline
typed::pw_multi_aff<Domain, Range>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
8509
inline
typed::union_pw_multi_aff<Domain, Range>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
8510
inline
typed::pw_multi_aff<Domain, Range>
preimage_domain_wrapped_domain
(
const
typed::multi_aff<>
&pma2)
const
=
delete
;
8511
inline
typed::pw_multi_aff<Domain, Range>
preimage_domain_wrapped_domain
(
const
typed::pw_aff<>
&pma2)
const
=
delete
;
8512
template
<
typename
Domain2,
typename
Range2>
8513
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::multi_pw_aff<Domain2, Range2>
&multi2)
const
;
8514
template
<
typename
Domain2,
typename
Range2>
8515
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::pw_multi_aff<Domain2, Range2>
&pma2)
const
;
8516
template
<
typename
Domain2,
typename
Range2>
8517
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<Range, Range2>
>
product
(
const
typed::multi_aff<Domain2, Range2>
&pma2)
const
;
8518
template
<
typename
Domain2>
8519
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<Range, Anonymous>
>
product
(
const
typed::pw_aff<Domain2, Anonymous>
&pma2)
const
;
8520
template
<
typename
Domain2>
8521
inline
typed::multi_pw_aff<Domain2, Range>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa2)
const
;
8522
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
8523
template
<
typename
Domain2>
8524
inline
typed::pw_multi_aff<Domain2, Range>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
8525
inline
typed::pw_multi_aff<Range>
pullback
(
const
typed::multi_aff<Domain>
&
ma
)
const
;
8526
template
<
typename
Domain2>
8527
inline
typed::pw_multi_aff<Domain2, Range>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&pma2)
const
;
8528
inline
typed::pw_multi_aff<Range>
pullback
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
8529
template
<
typename
Domain2>
8530
inline
typed::union_pw_multi_aff<Domain2, Range>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma2)
const
;
8531
inline
typed::union_pw_multi_aff<Range>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
8532
inline
typed::pw_multi_aff_list<Domain, Range>
pw_multi_aff_list
()
const
;
8533
inline
typed::pw_multi_aff<Domain, Range>
range_factor_domain
()
const
=
delete
;
8534
inline
typed::pw_multi_aff<Domain, Range>
range_factor_range
()
const
=
delete
;
8535
template
<
typename
Range2>
8536
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_pw_aff<Domain, Range2>
&multi2)
const
;
8537
template
<
typename
Range2>
8538
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_union_pw_aff<Domain, Range2>
&multi2)
const
;
8539
template
<
typename
Range2>
8540
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::pw_multi_aff<Domain, Range2>
&pma2)
const
;
8541
template
<
typename
Range2>
8542
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::union_pw_multi_aff<Domain, Range2>
&upma2)
const
;
8543
template
<
typename
Range2>
8544
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
range_product
(
const
typed::multi_aff<Domain, Range2>
&pma2)
const
;
8545
inline
typed::pw_multi_aff<Domain, pair<Range, Anonymous>
>
range_product
(
const
typed::pw_aff<Domain, Anonymous>
&pma2)
const
;
8546
inline
typed::id<Domain, Range>
get_range_tuple_id
()
const
=
delete
;
8547
inline
typed::pw_multi_aff<Domain, Range>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
8548
inline
typed::pw_multi_aff<Domain, Range>
scale
(
const
typed::val<Range>
&v)
const
;
8549
inline
typed::pw_multi_aff<Domain, Range>
scale
(
long
v)
const
;
8550
inline
typed::pw_multi_aff<Domain, Range>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
8551
inline
typed::pw_multi_aff<Domain, Range>
scale_down
(
const
typed::val<Range>
&v)
const
;
8552
inline
typed::pw_multi_aff<Domain, Range>
scale_down
(
long
v)
const
;
8553
inline
typed::multi_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
8554
inline
typed::multi_union_pw_aff<Domain, Range>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
8555
template
<
typename
Range2>
8556
inline
typed::pw_multi_aff<Domain, Range2>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
8557
template
<
typename
Range2>
8558
inline
typed::pw_multi_aff<Domain, Range2>
set_range_tuple
(
const
std::string &
id
)
const
;
8559
inline
typed::space<Domain, Range>
space
()
const
;
8560
inline
typed::space<Domain, Range>
get_space
()
const
=
delete
;
8561
inline
typed::multi_pw_aff<Domain, Range>
sub
(
const
typed::multi_pw_aff<Domain, Range>
&multi2)
const
;
8562
inline
typed::multi_union_pw_aff<Domain, Range>
sub
(
const
typed::multi_union_pw_aff<Domain, Range>
&multi2)
const
;
8563
inline
typed::pw_multi_aff<Domain, Range>
sub
(
const
typed::pw_multi_aff<Domain, Range>
&pma2)
const
;
8564
inline
typed::union_pw_multi_aff<Domain, Range>
sub
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
8565
inline
typed::pw_multi_aff<Domain, Range>
sub
(
const
typed::multi_aff<Domain, Range>
&pma2)
const
;
8566
inline
typed::pw_multi_aff<Domain, Range>
sub
(
const
typed::pw_aff<Domain, Range>
&pma2)
const
;
8567
inline
typed::pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::set<Domain>
&
set
)
const
;
8568
inline
typed::union_pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::space<Domain>
&
space
)
const
;
8569
inline
typed::union_pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::union_set<Domain>
&uset)
const
;
8570
inline
typed::pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
8571
inline
typed::pw_multi_aff<Domain, Range>
subtract_domain
(
const
typed::point<Domain>
&
set
)
const
;
8572
inline
typed::multi_pw_aff<Domain, Range>
to_multi_pw_aff
()
const
;
8573
inline
typed::union_pw_multi_aff<Domain, Range>
to_union_pw_multi_aff
()
const
;
8574
inline
typed::multi_pw_aff<Domain, Range>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
8575
inline
typed::multi_pw_aff<Domain, Range>
union_add
(
const
typed::multi_pw_aff<Domain, Range>
&mpa2)
const
;
8576
inline
typed::multi_union_pw_aff<Domain, Range>
union_add
(
const
typed::multi_union_pw_aff<Domain, Range>
&mupa2)
const
;
8577
inline
typed::pw_multi_aff<Domain, Range>
union_add
(
const
typed::pw_multi_aff<Domain, Range>
&pma2)
const
;
8578
inline
typed::union_pw_multi_aff<Domain, Range>
union_add
(
const
typed::union_pw_multi_aff<Domain, Range>
&upma2)
const
;
8579
inline
typed::pw_multi_aff<Domain, Range>
union_add
(
const
typed::multi_aff<Domain, Range>
&pma2)
const
;
8580
inline
typed::pw_multi_aff<Domain, Range>
union_add
(
const
typed::pw_aff<Domain, Range>
&pma2)
const
;
8581
};
8582
8583
template
<
typename
Domain2,
typename
Range2,
typename
Range>
8584
struct
pw_multi_aff
<
pair
<
Domain2
,
Range2
>,
Range
> :
public
isl::pw_multi_aff
{
8585
template
<
typename
...>
8586
friend
struct
aff
;
8587
template
<
typename
...>
8588
friend
struct
aff_list
;
8589
template
<
typename
...>
8590
friend
struct
basic_map
;
8591
template
<
typename
...>
8592
friend
struct
basic_set
;
8593
template
<
typename
...>
8594
friend
struct
fixed_box
;
8595
template
<
typename
...>
8596
friend
struct
id
;
8597
template
<
typename
...>
8598
friend
struct
id_list
;
8599
template
<
typename
...>
8600
friend
struct
map
;
8601
template
<
typename
...>
8602
friend
struct
map_list
;
8603
template
<
typename
...>
8604
friend
struct
multi_aff
;
8605
template
<
typename
...>
8606
friend
struct
multi_id
;
8607
template
<
typename
...>
8608
friend
struct
multi_pw_aff
;
8609
template
<
typename
...>
8610
friend
struct
multi_union_pw_aff
;
8611
template
<
typename
...>
8612
friend
struct
multi_val
;
8613
template
<
typename
...>
8614
friend
struct
point
;
8615
template
<
typename
...>
8616
friend
struct
pw_aff
;
8617
template
<
typename
...>
8618
friend
struct
pw_aff_list
;
8619
template
<
typename
...>
8620
friend
struct
pw_multi_aff
;
8621
template
<
typename
...>
8622
friend
struct
pw_multi_aff_list
;
8623
template
<
typename
...>
8624
friend
struct
set
;
8625
template
<
typename
...>
8626
friend
struct
set_list
;
8627
template
<
typename
...>
8628
friend
struct
space
;
8629
template
<
typename
...>
8630
friend
struct
union_map
;
8631
template
<
typename
...>
8632
friend
struct
union_pw_aff
;
8633
template
<
typename
...>
8634
friend
struct
union_pw_aff_list
;
8635
template
<
typename
...>
8636
friend
struct
union_pw_multi_aff
;
8637
template
<
typename
...>
8638
friend
struct
union_set
;
8639
template
<
typename
...>
8640
friend
struct
union_set_list
;
8641
template
<
typename
...>
8642
friend
struct
val
;
8643
template
<
typename
...>
8644
friend
struct
val_list
;
8645
8646
pw_multi_aff
() =
default
;
8647
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
8648
typename
std::enable_if<
8649
std::is_base_of<Domain2, Arg1>{} &&
8650
std::is_base_of<Range2, Arg2>{} &&
8651
std::is_base_of<Range, Arg3>{},
8652
bool
>
::type
=
true
>
8653
pw_multi_aff
(
const
pw_multi_aff
<
pair<Arg1, Arg2>
, Arg3> &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8654
private
:
8655
template
<
typename
base,
8656
typename
std::enable_if<
8657
std::is_same<base, isl::pw_multi_aff>{},
bool
>
::type
=
true
>
8658
pw_multi_aff
(
const
base &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8659
public
:
8660
static
pw_multi_aff
from
(
const
isl::pw_multi_aff
&
obj
) {
8661
return
pw_multi_aff
(
obj
);
8662
}
8663
inline
/* implicit */
pw_multi_aff
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &
ma
);
8664
inline
/* implicit */
pw_multi_aff
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &
pa
);
8665
inline
explicit
pw_multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
8666
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
8667
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
8668
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8669
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &upma2)
const
;
8670
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8671
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8672
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
const
typed::multi_val<Range>
&mv)
const
;
8673
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
const
typed::val<Range>
&v)
const
;
8674
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
add_constant
(
long
v)
const
;
8675
template
<
typename
Arg2>
8676
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
, Arg2>
apply
(
const
typed::union_pw_multi_aff<Range, Arg2>
&upma2)
const
;
8677
inline
typed::map<pair<Domain2, Range2>
,
Range
>
as_map
()
const
;
8678
inline
typed::multi_aff<pair<Domain2, Range2>
,
Range
>
as_multi_aff
()
const
;
8679
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
as_multi_union_pw_aff
()
const
;
8680
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
as_pw_multi_aff
()
const
;
8681
inline
typed::set<pair<Domain2, Range2>
,
Range
>
as_set
()
const
=
delete
;
8682
inline
typed::union_map<pair<Domain2, Range2>
,
Range
>
as_union_map
()
const
;
8683
inline
typed::pw_aff<pair<Domain2, Range2>
,
Anonymous
>
at
(
int
pos
)
const
;
8684
inline
typed::pw_aff<pair<Domain2, Range2>
,
Range
>
get_at
(
int
pos
)
const
=
delete
;
8685
inline
typed::set<pair<Domain2, Range2>
>
bind
(
const
typed::multi_id<Range>
&
tuple
)
const
;
8686
inline
typed::pw_multi_aff<Range>
bind_domain
(
const
typed::multi_id
<
pair<Domain2, Range2>
> &
tuple
)
const
;
8687
inline
typed::pw_multi_aff<Range2, Range>
bind_domain_wrapped_domain
(
const
typed::multi_id<Domain2>
&
tuple
)
const
;
8688
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
coalesce
()
const
;
8689
inline
typed::set<pair<Domain2, Range2>
>
domain
()
const
;
8690
inline
typed::pw_multi_aff<pair<Range2, Domain2>
,
Range
>
domain_reverse
()
const
;
8691
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
drop_unused_params
()
const
;
8692
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
extract_pw_multi_aff
(
const
typed::space
<
pair<Domain2, Range2>
,
Range
> &
space
)
const
;
8693
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
8694
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::union_set
<
pair<Domain2, Range2>
> &
context
)
const
;
8695
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
set
)
const
;
8696
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist
(
const
typed::point
<
pair<Domain2, Range2>
> &
set
)
const
;
8697
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::set<>
&
set
)
const
;
8698
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
8699
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
gist_params
(
const
typed::point<>
&
set
)
const
;
8700
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
identity
()
const
;
8701
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
8702
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
8703
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
8704
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
8705
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
set
)
const
;
8706
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain
(
const
typed::point
<
pair<Domain2, Range2>
> &
set
)
const
;
8707
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_domain_wrapped_domain
(
const
typed::union_set<Domain2>
&uset)
const
;
8708
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
8709
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
8710
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
intersect_params
(
const
typed::point<>
&
set
)
const
;
8711
inline
typed::pw_aff_list<pair<Domain2, Range2>
,
Anonymous
>
list
()
const
;
8712
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
max
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
8713
inline
typed::multi_val<Range>
max_multi_val
()
const
;
8714
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
min
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
8715
inline
typed::multi_val<Range>
min_multi_val
()
const
;
8716
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
neg
()
const
;
8717
template
<
typename
Domain3>
8718
inline
typed::pw_multi_aff<pair<Domain3, Range2>
,
Range
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<Domain3, Domain2>
&pma2)
const
;
8719
template
<
typename
Domain3>
8720
inline
typed::union_pw_multi_aff<pair<Domain3, Range2>
,
Range
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<Domain3, Domain2>
&upma2)
const
;
8721
template
<
typename
Domain3>
8722
inline
typed::pw_multi_aff<pair<Domain3, Range2>
,
Range
>
preimage_domain_wrapped_domain
(
const
typed::multi_aff<Domain3, Domain2>
&pma2)
const
;
8723
template
<
typename
Domain3>
8724
inline
typed::pw_multi_aff<pair<Domain3, Range2>
,
Range
>
preimage_domain_wrapped_domain
(
const
typed::pw_aff<Domain3, Domain2>
&pma2)
const
;
8725
template
<
typename
Arg2,
typename
Arg3>
8726
inline
typed::multi_pw_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::multi_pw_aff<Arg2, Arg3>
&multi2)
const
;
8727
template
<
typename
Arg2,
typename
Arg3>
8728
inline
typed::pw_multi_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::pw_multi_aff<Arg2, Arg3>
&pma2)
const
;
8729
template
<
typename
Arg2,
typename
Arg3>
8730
inline
typed::pw_multi_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Arg3>
>
product
(
const
typed::multi_aff<Arg2, Arg3>
&pma2)
const
;
8731
template
<
typename
Arg2>
8732
inline
typed::pw_multi_aff<pair<pair<Domain2, Range2>
, Arg2>,
pair<Range, Anonymous>
>
product
(
const
typed::pw_aff<Arg2, Anonymous>
&pma2)
const
;
8733
template
<
typename
Arg2>
8734
inline
typed::multi_pw_aff<Arg2, Range>
pullback
(
const
typed::multi_pw_aff
<Arg2,
pair<Domain2, Range2>
> &mpa2)
const
;
8735
inline
typed::multi_pw_aff<Range>
pullback
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
> &mpa2)
const
;
8736
template
<
typename
Arg2>
8737
inline
typed::pw_multi_aff<Arg2, Range>
pullback
(
const
typed::multi_aff
<Arg2,
pair<Domain2, Range2>
> &
ma
)
const
;
8738
inline
typed::pw_multi_aff<Range>
pullback
(
const
typed::multi_aff
<
pair<Domain2, Range2>
> &
ma
)
const
;
8739
template
<
typename
Arg2>
8740
inline
typed::pw_multi_aff<Arg2, Range>
pullback
(
const
typed::pw_multi_aff
<Arg2,
pair<Domain2, Range2>
> &pma2)
const
;
8741
inline
typed::pw_multi_aff<Range>
pullback
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
> &pma2)
const
;
8742
template
<
typename
Arg2>
8743
inline
typed::union_pw_multi_aff<Arg2, Range>
pullback
(
const
typed::union_pw_multi_aff
<Arg2,
pair<Domain2, Range2>
> &upma2)
const
;
8744
inline
typed::union_pw_multi_aff<Range>
pullback
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
> &upma2)
const
;
8745
inline
typed::pw_multi_aff_list<pair<Domain2, Range2>
,
Range
>
pw_multi_aff_list
()
const
;
8746
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
range_factor_domain
()
const
=
delete
;
8747
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
range_factor_range
()
const
=
delete
;
8748
template
<
typename
Arg2>
8749
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
8750
template
<
typename
Arg2>
8751
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
, Arg2> &multi2)
const
;
8752
template
<
typename
Arg2>
8753
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
, Arg2> &pma2)
const
;
8754
template
<
typename
Arg2>
8755
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
, Arg2> &upma2)
const
;
8756
template
<
typename
Arg2>
8757
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
pair<Range, Arg2>
>
range_product
(
const
typed::multi_aff
<
pair<Domain2, Range2>
, Arg2> &pma2)
const
;
8758
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
pair<Range, Anonymous>
>
range_product
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &pma2)
const
;
8759
inline
typed::id<pair<Domain2, Range2>
,
Range
>
get_range_tuple_id
()
const
=
delete
;
8760
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
scale
(
const
typed::multi_val<Range>
&mv)
const
;
8761
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
scale
(
const
typed::val<Range>
&v)
const
;
8762
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
scale
(
long
v)
const
;
8763
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
const
typed::multi_val<Range>
&mv)
const
;
8764
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
const
typed::val<Range>
&v)
const
;
8765
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
scale_down
(
long
v)
const
;
8766
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
8767
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<Domain2, Range2>
,
Anonymous
> &el)
const
;
8768
template
<
typename
Arg1>
8769
inline
typed::pw_multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
typed::id<Anonymous>
&
id
)
const
;
8770
template
<
typename
Arg1>
8771
inline
typed::pw_multi_aff<pair<Domain2, Range2>
, Arg1>
set_range_tuple
(
const
std::string &
id
)
const
;
8772
inline
typed::space<pair<Domain2, Range2>
,
Range
>
space
()
const
;
8773
inline
typed::space<pair<Domain2, Range2>
,
Range
>
get_space
()
const
=
delete
;
8774
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
8775
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &multi2)
const
;
8776
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8777
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &upma2)
const
;
8778
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8779
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
sub
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8780
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::set
<
pair<Domain2, Range2>
> &
set
)
const
;
8781
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::space
<
pair<Domain2, Range2>
> &
space
)
const
;
8782
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::union_set
<
pair<Domain2, Range2>
> &uset)
const
;
8783
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::basic_set
<
pair<Domain2, Range2>
> &
set
)
const
;
8784
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
subtract_domain
(
const
typed::point
<
pair<Domain2, Range2>
> &
set
)
const
;
8785
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
to_multi_pw_aff
()
const
;
8786
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
to_union_pw_multi_aff
()
const
;
8787
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
8788
inline
typed::multi_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_pw_aff
<
pair<Domain2, Range2>
,
Range
> &mpa2)
const
;
8789
inline
typed::multi_union_pw_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<Domain2, Range2>
,
Range
> &mupa2)
const
;
8790
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8791
inline
typed::union_pw_multi_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::union_pw_multi_aff
<
pair<Domain2, Range2>
,
Range
> &upma2)
const
;
8792
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::multi_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8793
inline
typed::pw_multi_aff<pair<Domain2, Range2>
,
Range
>
union_add
(
const
typed::pw_aff
<
pair<Domain2, Range2>
,
Range
> &pma2)
const
;
8794
};
8795
8796
template
<
typename
Domain,
typename
Range,
typename
Range2>
8797
struct
pw_multi_aff
<
Domain
,
pair
<
Range
,
Range2
>> :
public
isl::pw_multi_aff
{
8798
template
<
typename
...>
8799
friend
struct
aff
;
8800
template
<
typename
...>
8801
friend
struct
aff_list
;
8802
template
<
typename
...>
8803
friend
struct
basic_map
;
8804
template
<
typename
...>
8805
friend
struct
basic_set
;
8806
template
<
typename
...>
8807
friend
struct
fixed_box
;
8808
template
<
typename
...>
8809
friend
struct
id
;
8810
template
<
typename
...>
8811
friend
struct
id_list
;
8812
template
<
typename
...>
8813
friend
struct
map
;
8814
template
<
typename
...>
8815
friend
struct
map_list
;
8816
template
<
typename
...>
8817
friend
struct
multi_aff
;
8818
template
<
typename
...>
8819
friend
struct
multi_id
;
8820
template
<
typename
...>
8821
friend
struct
multi_pw_aff
;
8822
template
<
typename
...>
8823
friend
struct
multi_union_pw_aff
;
8824
template
<
typename
...>
8825
friend
struct
multi_val
;
8826
template
<
typename
...>
8827
friend
struct
point
;
8828
template
<
typename
...>
8829
friend
struct
pw_aff
;
8830
template
<
typename
...>
8831
friend
struct
pw_aff_list
;
8832
template
<
typename
...>
8833
friend
struct
pw_multi_aff
;
8834
template
<
typename
...>
8835
friend
struct
pw_multi_aff_list
;
8836
template
<
typename
...>
8837
friend
struct
set
;
8838
template
<
typename
...>
8839
friend
struct
set_list
;
8840
template
<
typename
...>
8841
friend
struct
space
;
8842
template
<
typename
...>
8843
friend
struct
union_map
;
8844
template
<
typename
...>
8845
friend
struct
union_pw_aff
;
8846
template
<
typename
...>
8847
friend
struct
union_pw_aff_list
;
8848
template
<
typename
...>
8849
friend
struct
union_pw_multi_aff
;
8850
template
<
typename
...>
8851
friend
struct
union_set
;
8852
template
<
typename
...>
8853
friend
struct
union_set_list
;
8854
template
<
typename
...>
8855
friend
struct
val
;
8856
template
<
typename
...>
8857
friend
struct
val_list
;
8858
8859
pw_multi_aff
() =
default
;
8860
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
8861
typename
std::enable_if<
8862
std::is_base_of<Domain, Arg1>{} &&
8863
std::is_base_of<Range, Arg2>{} &&
8864
std::is_base_of<Range2, Arg3>{},
8865
bool
>
::type
=
true
>
8866
pw_multi_aff
(
const
pw_multi_aff
<Arg1,
pair<Arg2, Arg3>
> &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8867
private
:
8868
template
<
typename
base,
8869
typename
std::enable_if<
8870
std::is_same<base, isl::pw_multi_aff>{},
bool
>
::type
=
true
>
8871
pw_multi_aff
(
const
base &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
8872
public
:
8873
static
pw_multi_aff
from
(
const
isl::pw_multi_aff
&
obj
) {
8874
return
pw_multi_aff
(
obj
);
8875
}
8876
inline
/* implicit */
pw_multi_aff
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &
ma
);
8877
inline
/* implicit */
pw_multi_aff
(
const
typed::pw_aff
<
Domain
,
pair<Range, Range2>
> &
pa
);
8878
inline
explicit
pw_multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
8879
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
8880
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::multi_union_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
8881
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8882
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::union_pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upma2)
const
;
8883
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8884
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add
(
const
typed::pw_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8885
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add_constant
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
8886
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add_constant
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
8887
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
add_constant
(
long
v)
const
;
8888
template
<
typename
Arg3>
8889
inline
typed::union_pw_multi_aff<Domain, Arg3>
apply
(
const
typed::union_pw_multi_aff
<
pair<Range, Range2>
, Arg3> &upma2)
const
;
8890
inline
typed::map<Domain, pair<Range, Range2>
>
as_map
()
const
;
8891
inline
typed::multi_aff<Domain, pair<Range, Range2>
>
as_multi_aff
()
const
;
8892
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
8893
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
8894
inline
typed::set<Domain, pair<Range, Range2>
>
as_set
()
const
=
delete
;
8895
inline
typed::union_map<Domain, pair<Range, Range2>
>
as_union_map
()
const
;
8896
inline
typed::pw_aff<Domain, Anonymous>
at
(
int
pos
)
const
;
8897
inline
typed::pw_aff<Domain, pair<Range, Range2>
>
get_at
(
int
pos
)
const
=
delete
;
8898
inline
typed::set<Domain>
bind
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
8899
inline
typed::pw_multi_aff<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
8900
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
bind_domain_wrapped_domain
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
8901
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
coalesce
()
const
;
8902
inline
typed::set<Domain>
domain
()
const
;
8903
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
domain_reverse
()
const
=
delete
;
8904
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
drop_unused_params
()
const
;
8905
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
extract_pw_multi_aff
(
const
typed::space
<
Domain
,
pair<Range, Range2>
> &
space
)
const
;
8906
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::set<Domain>
&
set
)
const
;
8907
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
8908
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::basic_set<Domain>
&
set
)
const
;
8909
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
gist
(
const
typed::point<Domain>
&
set
)
const
;
8910
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
set
)
const
;
8911
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
8912
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
gist_params
(
const
typed::point<>
&
set
)
const
;
8913
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
identity
()
const
;
8914
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
8915
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::set<Domain>
&
set
)
const
;
8916
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::space<Domain>
&
space
)
const
;
8917
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set<Domain>
&uset)
const
;
8918
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
8919
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain
(
const
typed::point<Domain>
&
set
)
const
;
8920
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<>
&uset)
const
=
delete
;
8921
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
8922
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
8923
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
intersect_params
(
const
typed::point<>
&
set
)
const
;
8924
inline
typed::pw_aff_list<Domain, Anonymous>
list
()
const
;
8925
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
max
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
8926
inline
typed::multi_val<pair<Range, Range2>
>
max_multi_val
()
const
;
8927
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
min
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
8928
inline
typed::multi_val<pair<Range, Range2>
>
min_multi_val
()
const
;
8929
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
neg
()
const
;
8930
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<>
&pma2)
const
=
delete
;
8931
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<>
&upma2)
const
=
delete
;
8932
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::multi_aff<>
&pma2)
const
=
delete
;
8933
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::pw_aff<>
&pma2)
const
=
delete
;
8934
template
<
typename
Domain2,
typename
Arg3>
8935
inline
typed::multi_pw_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::multi_pw_aff<Domain2, Arg3>
&multi2)
const
;
8936
template
<
typename
Domain2,
typename
Arg3>
8937
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::pw_multi_aff<Domain2, Arg3>
&pma2)
const
;
8938
template
<
typename
Domain2,
typename
Arg3>
8939
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
, Arg3>>
product
(
const
typed::multi_aff<Domain2, Arg3>
&pma2)
const
;
8940
template
<
typename
Domain2>
8941
inline
typed::pw_multi_aff<pair<Domain, Domain2>
,
pair<pair<Range, Range2>
,
Anonymous
>>
product
(
const
typed::pw_aff<Domain2, Anonymous>
&pma2)
const
;
8942
template
<
typename
Domain2>
8943
inline
typed::multi_pw_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa2)
const
;
8944
inline
typed::multi_pw_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff<Domain>
&mpa2)
const
;
8945
template
<
typename
Domain2>
8946
inline
typed::pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
8947
inline
typed::pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_aff<Domain>
&
ma
)
const
;
8948
template
<
typename
Domain2>
8949
inline
typed::pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff<Domain2, Domain>
&pma2)
const
;
8950
inline
typed::pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff<Domain>
&pma2)
const
;
8951
template
<
typename
Domain2>
8952
inline
typed::union_pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma2)
const
;
8953
inline
typed::union_pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff<Domain>
&upma2)
const
;
8954
inline
typed::pw_multi_aff_list<Domain, pair<Range, Range2>
>
pw_multi_aff_list
()
const
;
8955
inline
typed::pw_multi_aff<Domain, Range>
range_factor_domain
()
const
;
8956
inline
typed::pw_multi_aff<Domain, Range2>
range_factor_range
()
const
;
8957
template
<
typename
Arg3>
8958
inline
typed::multi_pw_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::multi_pw_aff<Domain, Arg3>
&multi2)
const
;
8959
template
<
typename
Arg3>
8960
inline
typed::multi_union_pw_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::multi_union_pw_aff<Domain, Arg3>
&multi2)
const
;
8961
template
<
typename
Arg3>
8962
inline
typed::pw_multi_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::pw_multi_aff<Domain, Arg3>
&pma2)
const
;
8963
template
<
typename
Arg3>
8964
inline
typed::union_pw_multi_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::union_pw_multi_aff<Domain, Arg3>
&upma2)
const
;
8965
template
<
typename
Arg3>
8966
inline
typed::pw_multi_aff<Domain, pair<pair<Range, Range2>
, Arg3>>
range_product
(
const
typed::multi_aff<Domain, Arg3>
&pma2)
const
;
8967
inline
typed::pw_multi_aff<Domain, pair<pair<Range, Range2>
,
Anonymous
>>
range_product
(
const
typed::pw_aff<Domain, Anonymous>
&pma2)
const
;
8968
inline
typed::id<Domain, pair<Range, Range2>
>
get_range_tuple_id
()
const
=
delete
;
8969
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
scale
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
8970
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
scale
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
8971
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
scale
(
long
v)
const
;
8972
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
scale_down
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
8973
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
scale_down
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
8974
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
scale_down
(
long
v)
const
;
8975
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::pw_aff<Domain, Anonymous>
&el)
const
;
8976
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::union_pw_aff<Domain, Anonymous>
&el)
const
;
8977
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
8978
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
8979
inline
typed::space<Domain, pair<Range, Range2>
>
space
()
const
;
8980
inline
typed::space<Domain, pair<Range, Range2>
>
get_space
()
const
=
delete
;
8981
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
8982
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::multi_union_pw_aff
<
Domain
,
pair<Range, Range2>
> &multi2)
const
;
8983
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8984
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::union_pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upma2)
const
;
8985
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8986
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
sub
(
const
typed::pw_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8987
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::set<Domain>
&
set
)
const
;
8988
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::space<Domain>
&
space
)
const
;
8989
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set<Domain>
&uset)
const
;
8990
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::basic_set<Domain>
&
set
)
const
;
8991
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
subtract_domain
(
const
typed::point<Domain>
&
set
)
const
;
8992
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
to_multi_pw_aff
()
const
;
8993
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
to_union_pw_multi_aff
()
const
;
8994
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
8995
inline
typed::multi_pw_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::multi_pw_aff
<
Domain
,
pair<Range, Range2>
> &mpa2)
const
;
8996
inline
typed::multi_union_pw_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::multi_union_pw_aff
<
Domain
,
pair<Range, Range2>
> &mupa2)
const
;
8997
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
8998
inline
typed::union_pw_multi_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::union_pw_multi_aff
<
Domain
,
pair<Range, Range2>
> &upma2)
const
;
8999
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::multi_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
9000
inline
typed::pw_multi_aff<Domain, pair<Range, Range2>
>
union_add
(
const
typed::pw_aff
<
Domain
,
pair<Range, Range2>
> &pma2)
const
;
9001
};
9002
9003
template
<
typename
T1,
typename
T2,
typename
Range,
typename
Range2>
9004
struct
pw_multi_aff
<
pair
<T1, T2>,
pair
<
Range
,
Range2
>> :
public
isl::pw_multi_aff
{
9005
template
<
typename
...>
9006
friend
struct
aff
;
9007
template
<
typename
...>
9008
friend
struct
aff_list
;
9009
template
<
typename
...>
9010
friend
struct
basic_map
;
9011
template
<
typename
...>
9012
friend
struct
basic_set
;
9013
template
<
typename
...>
9014
friend
struct
fixed_box
;
9015
template
<
typename
...>
9016
friend
struct
id
;
9017
template
<
typename
...>
9018
friend
struct
id_list
;
9019
template
<
typename
...>
9020
friend
struct
map
;
9021
template
<
typename
...>
9022
friend
struct
map_list
;
9023
template
<
typename
...>
9024
friend
struct
multi_aff
;
9025
template
<
typename
...>
9026
friend
struct
multi_id
;
9027
template
<
typename
...>
9028
friend
struct
multi_pw_aff
;
9029
template
<
typename
...>
9030
friend
struct
multi_union_pw_aff
;
9031
template
<
typename
...>
9032
friend
struct
multi_val
;
9033
template
<
typename
...>
9034
friend
struct
point
;
9035
template
<
typename
...>
9036
friend
struct
pw_aff
;
9037
template
<
typename
...>
9038
friend
struct
pw_aff_list
;
9039
template
<
typename
...>
9040
friend
struct
pw_multi_aff
;
9041
template
<
typename
...>
9042
friend
struct
pw_multi_aff_list
;
9043
template
<
typename
...>
9044
friend
struct
set
;
9045
template
<
typename
...>
9046
friend
struct
set_list
;
9047
template
<
typename
...>
9048
friend
struct
space
;
9049
template
<
typename
...>
9050
friend
struct
union_map
;
9051
template
<
typename
...>
9052
friend
struct
union_pw_aff
;
9053
template
<
typename
...>
9054
friend
struct
union_pw_aff_list
;
9055
template
<
typename
...>
9056
friend
struct
union_pw_multi_aff
;
9057
template
<
typename
...>
9058
friend
struct
union_set
;
9059
template
<
typename
...>
9060
friend
struct
union_set_list
;
9061
template
<
typename
...>
9062
friend
struct
val
;
9063
template
<
typename
...>
9064
friend
struct
val_list
;
9065
9066
pw_multi_aff
() =
default
;
9067
template
<
typename
Arg1,
typename
Arg2,
typename
Arg3,
typename
Arg4,
9068
typename
std::enable_if<
9069
std::is_base_of<T1, Arg1>{} &&
9070
std::is_base_of<T2, Arg2>{} &&
9071
std::is_base_of<Range, Arg3>{} &&
9072
std::is_base_of<Range2, Arg4>{},
9073
bool
>
::type
=
true
>
9074
pw_multi_aff
(
const
pw_multi_aff
<
pair<Arg1, Arg2>
,
pair<Arg3, Arg4>
> &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
9075
private
:
9076
template
<
typename
base,
9077
typename
std::enable_if<
9078
std::is_same<base, isl::pw_multi_aff>{},
bool
>
::type
=
true
>
9079
pw_multi_aff
(
const
base &
obj
) :
isl
::
pw_multi_aff
(
obj
) {}
9080
public
:
9081
static
pw_multi_aff
from
(
const
isl::pw_multi_aff
&
obj
) {
9082
return
pw_multi_aff
(
obj
);
9083
}
9084
inline
/* implicit */
pw_multi_aff
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &
ma
);
9085
inline
/* implicit */
pw_multi_aff
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &
pa
);
9086
inline
explicit
pw_multi_aff
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
9087
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
9088
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
9089
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9090
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upma2)
const
;
9091
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9092
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9093
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add_constant
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
9094
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add_constant
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
9095
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
add_constant
(
long
v)
const
;
9096
template
<
typename
Arg2>
9097
inline
typed::union_pw_multi_aff<pair<T1, T2>
, Arg2>
apply
(
const
typed::union_pw_multi_aff
<
pair<Range, Range2>
, Arg2> &upma2)
const
;
9098
inline
typed::map<pair<T1, T2>
,
pair<Range, Range2>
>
as_map
()
const
;
9099
inline
typed::multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_multi_aff
()
const
;
9100
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_multi_union_pw_aff
()
const
;
9101
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
as_pw_multi_aff
()
const
;
9102
inline
typed::set<pair<T1, T2>
,
pair<Range, Range2>
>
as_set
()
const
=
delete
;
9103
inline
typed::union_map<pair<T1, T2>
,
pair<Range, Range2>
>
as_union_map
()
const
;
9104
inline
typed::pw_aff<pair<T1, T2>
,
Anonymous
>
at
(
int
pos
)
const
;
9105
inline
typed::pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
get_at
(
int
pos
)
const
=
delete
;
9106
inline
typed::set<pair<T1, T2>
>
bind
(
const
typed::multi_id
<
pair<Range, Range2>
> &
tuple
)
const
;
9107
inline
typed::pw_multi_aff<pair<Range, Range2>
>
bind_domain
(
const
typed::multi_id
<
pair<T1, T2>
> &
tuple
)
const
;
9108
inline
typed::pw_multi_aff<T2, pair<Range, Range2>
>
bind_domain_wrapped_domain
(
const
typed::multi_id<T1>
&
tuple
)
const
;
9109
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
coalesce
()
const
;
9110
inline
typed::set<pair<T1, T2>
>
domain
()
const
;
9111
inline
typed::pw_multi_aff<pair<T2, T1>
,
pair<Range, Range2>
>
domain_reverse
()
const
;
9112
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
drop_unused_params
()
const
;
9113
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
extract_pw_multi_aff
(
const
typed::space
<
pair<T1, T2>
,
pair<Range, Range2>
> &
space
)
const
;
9114
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
9115
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::union_set
<
pair<T1, T2>
> &
context
)
const
;
9116
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::basic_set
<
pair<T1, T2>
> &
set
)
const
;
9117
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist
(
const
typed::point
<
pair<T1, T2>
> &
set
)
const
;
9118
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::set<>
&
set
)
const
;
9119
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::basic_set<>
&
set
)
const
;
9120
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
gist_params
(
const
typed::point<>
&
set
)
const
;
9121
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
identity
()
const
;
9122
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
9123
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
9124
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
9125
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
9126
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &
set
)
const
;
9127
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain
(
const
typed::point
<
pair<T1, T2>
> &
set
)
const
;
9128
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_domain_wrapped_domain
(
const
typed::union_set<T1>
&uset)
const
;
9129
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::set<>
&
set
)
const
;
9130
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::basic_set<>
&
set
)
const
;
9131
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
intersect_params
(
const
typed::point<>
&
set
)
const
;
9132
inline
typed::pw_aff_list<pair<T1, T2>
,
Anonymous
>
list
()
const
;
9133
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
max
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
9134
inline
typed::multi_val<pair<Range, Range2>
>
max_multi_val
()
const
;
9135
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
min
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
9136
inline
typed::multi_val<pair<Range, Range2>
>
min_multi_val
()
const
;
9137
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
neg
()
const
;
9138
template
<
typename
Domain3>
9139
inline
typed::pw_multi_aff<pair<Domain3, T2>
,
pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::pw_multi_aff<Domain3, T1>
&pma2)
const
;
9140
template
<
typename
Domain3>
9141
inline
typed::union_pw_multi_aff<pair<Domain3, T2>
,
pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::union_pw_multi_aff<Domain3, T1>
&upma2)
const
;
9142
template
<
typename
Domain3>
9143
inline
typed::pw_multi_aff<pair<Domain3, T2>
,
pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::multi_aff<Domain3, T1>
&pma2)
const
;
9144
template
<
typename
Domain3>
9145
inline
typed::pw_multi_aff<pair<Domain3, T2>
,
pair<Range, Range2>
>
preimage_domain_wrapped_domain
(
const
typed::pw_aff<Domain3, T1>
&pma2)
const
;
9146
template
<
typename
Domain2,
typename
Arg2>
9147
inline
typed::multi_pw_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::multi_pw_aff<Domain2, Arg2>
&multi2)
const
;
9148
template
<
typename
Domain2,
typename
Arg2>
9149
inline
typed::pw_multi_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::pw_multi_aff<Domain2, Arg2>
&pma2)
const
;
9150
template
<
typename
Domain2,
typename
Arg2>
9151
inline
typed::pw_multi_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
, Arg2>>
product
(
const
typed::multi_aff<Domain2, Arg2>
&pma2)
const
;
9152
template
<
typename
Domain2>
9153
inline
typed::pw_multi_aff<pair<pair<T1, T2>
,
Domain2
>,
pair<pair<Range, Range2>
,
Anonymous
>>
product
(
const
typed::pw_aff<Domain2, Anonymous>
&pma2)
const
;
9154
template
<
typename
Domain2>
9155
inline
typed::multi_pw_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff
<
Domain2
,
pair<T1, T2>
> &mpa2)
const
;
9156
inline
typed::multi_pw_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_pw_aff
<
pair<T1, T2>
> &mpa2)
const
;
9157
template
<
typename
Domain2>
9158
inline
typed::pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::multi_aff
<
Domain2
,
pair<T1, T2>
> &
ma
)
const
;
9159
inline
typed::pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::multi_aff
<
pair<T1, T2>
> &
ma
)
const
;
9160
template
<
typename
Domain2>
9161
inline
typed::pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &pma2)
const
;
9162
inline
typed::pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::pw_multi_aff
<
pair<T1, T2>
> &pma2)
const
;
9163
template
<
typename
Domain2>
9164
inline
typed::union_pw_multi_aff<Domain2, pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff
<
Domain2
,
pair<T1, T2>
> &upma2)
const
;
9165
inline
typed::union_pw_multi_aff<pair<Range, Range2>
>
pullback
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
> &upma2)
const
;
9166
inline
typed::pw_multi_aff_list<pair<T1, T2>
,
pair<Range, Range2>
>
pw_multi_aff_list
()
const
;
9167
inline
typed::pw_multi_aff<pair<T1, T2>
,
Range
>
range_factor_domain
()
const
;
9168
inline
typed::pw_multi_aff<pair<T1, T2>
,
Range2
>
range_factor_range
()
const
;
9169
template
<
typename
Arg2>
9170
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::multi_pw_aff
<
pair<T1, T2>
, Arg2> &multi2)
const
;
9171
template
<
typename
Arg2>
9172
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
, Arg2> &multi2)
const
;
9173
template
<
typename
Arg2>
9174
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::pw_multi_aff
<
pair<T1, T2>
, Arg2> &pma2)
const
;
9175
template
<
typename
Arg2>
9176
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
, Arg2> &upma2)
const
;
9177
template
<
typename
Arg2>
9178
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
, Arg2>>
range_product
(
const
typed::multi_aff
<
pair<T1, T2>
, Arg2> &pma2)
const
;
9179
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<pair<Range, Range2>
,
Anonymous
>>
range_product
(
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &pma2)
const
;
9180
inline
typed::id<pair<T1, T2>
,
pair<Range, Range2>
>
get_range_tuple_id
()
const
=
delete
;
9181
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
9182
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
9183
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale
(
long
v)
const
;
9184
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale_down
(
const
typed::multi_val
<
pair<Range, Range2>
> &mv)
const
;
9185
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale_down
(
const
typed::val
<
pair<Range, Range2>
> &v)
const
;
9186
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
scale_down
(
long
v)
const
;
9187
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::pw_aff
<
pair<T1, T2>
,
Anonymous
> &el)
const
;
9188
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_at
(
int
pos
,
const
typed::union_pw_aff
<
pair<T1, T2>
,
Anonymous
> &el)
const
;
9189
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
typed::id<>
&
id
)
const
=
delete
;
9190
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
set_range_tuple
(
const
std::string &
id
)
const
=
delete
;
9191
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
space
()
const
;
9192
inline
typed::space<pair<T1, T2>
,
pair<Range, Range2>
>
get_space
()
const
=
delete
;
9193
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
9194
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &multi2)
const
;
9195
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9196
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upma2)
const
;
9197
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9198
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
sub
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9199
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::set
<
pair<T1, T2>
> &
set
)
const
;
9200
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::space
<
pair<T1, T2>
> &
space
)
const
;
9201
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::union_set
<
pair<T1, T2>
> &uset)
const
;
9202
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::basic_set
<
pair<T1, T2>
> &
set
)
const
;
9203
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
subtract_domain
(
const
typed::point
<
pair<T1, T2>
> &
set
)
const
;
9204
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
to_multi_pw_aff
()
const
;
9205
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
to_union_pw_multi_aff
()
const
;
9206
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
9207
inline
typed::multi_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::multi_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &mpa2)
const
;
9208
inline
typed::multi_union_pw_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::multi_union_pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &mupa2)
const
;
9209
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9210
inline
typed::union_pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::union_pw_multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &upma2)
const
;
9211
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::multi_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9212
inline
typed::pw_multi_aff<pair<T1, T2>
,
pair<Range, Range2>
>
union_add
(
const
typed::pw_aff
<
pair<T1, T2>
,
pair<Range, Range2>
> &pma2)
const
;
9213
};
9214
9215
template
<
typename
Domain>
9216
struct
pw_multi_aff_list
<
Domain
> :
public
isl::pw_multi_aff_list
{
9217
template
<
typename
...>
9218
friend
struct
aff
;
9219
template
<
typename
...>
9220
friend
struct
aff_list
;
9221
template
<
typename
...>
9222
friend
struct
basic_map
;
9223
template
<
typename
...>
9224
friend
struct
basic_set
;
9225
template
<
typename
...>
9226
friend
struct
fixed_box
;
9227
template
<
typename
...>
9228
friend
struct
id
;
9229
template
<
typename
...>
9230
friend
struct
id_list
;
9231
template
<
typename
...>
9232
friend
struct
map
;
9233
template
<
typename
...>
9234
friend
struct
map_list
;
9235
template
<
typename
...>
9236
friend
struct
multi_aff
;
9237
template
<
typename
...>
9238
friend
struct
multi_id
;
9239
template
<
typename
...>
9240
friend
struct
multi_pw_aff
;
9241
template
<
typename
...>
9242
friend
struct
multi_union_pw_aff
;
9243
template
<
typename
...>
9244
friend
struct
multi_val
;
9245
template
<
typename
...>
9246
friend
struct
point
;
9247
template
<
typename
...>
9248
friend
struct
pw_aff
;
9249
template
<
typename
...>
9250
friend
struct
pw_aff_list
;
9251
template
<
typename
...>
9252
friend
struct
pw_multi_aff
;
9253
template
<
typename
...>
9254
friend
struct
pw_multi_aff_list
;
9255
template
<
typename
...>
9256
friend
struct
set
;
9257
template
<
typename
...>
9258
friend
struct
set_list
;
9259
template
<
typename
...>
9260
friend
struct
space
;
9261
template
<
typename
...>
9262
friend
struct
union_map
;
9263
template
<
typename
...>
9264
friend
struct
union_pw_aff
;
9265
template
<
typename
...>
9266
friend
struct
union_pw_aff_list
;
9267
template
<
typename
...>
9268
friend
struct
union_pw_multi_aff
;
9269
template
<
typename
...>
9270
friend
struct
union_set
;
9271
template
<
typename
...>
9272
friend
struct
union_set_list
;
9273
template
<
typename
...>
9274
friend
struct
val
;
9275
template
<
typename
...>
9276
friend
struct
val_list
;
9277
9278
pw_multi_aff_list
() =
default
;
9279
template
<
typename
Arg1,
9280
typename
std::enable_if<
9281
std::is_base_of<Domain, Arg1>{},
9282
bool
>
::type
=
true
>
9283
pw_multi_aff_list
(
const
pw_multi_aff_list<Arg1>
&
obj
) :
isl
::
pw_multi_aff_list
(
obj
) {}
9284
private
:
9285
template
<
typename
base,
9286
typename
std::enable_if<
9287
std::is_same<base, isl::pw_multi_aff_list>{},
bool
>
::type
=
true
>
9288
pw_multi_aff_list
(
const
base &
obj
) :
isl
::
pw_multi_aff_list
(
obj
) {}
9289
public
:
9290
static
pw_multi_aff_list
from
(
const
isl::pw_multi_aff_list
&
obj
) {
9291
return
pw_multi_aff_list
(
obj
);
9292
}
9293
inline
explicit
pw_multi_aff_list
(
const
isl::ctx
&
ctx
,
int
n
);
9294
inline
explicit
pw_multi_aff_list
(
const
typed::pw_multi_aff<Domain>
&el);
9295
inline
explicit
pw_multi_aff_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
9296
inline
typed::pw_multi_aff_list<Domain>
add
(
const
typed::pw_multi_aff<Domain>
&el)
const
;
9297
inline
typed::pw_multi_aff_list<Domain>
add
(
const
typed::multi_aff<Domain>
&el)
const
;
9298
inline
typed::pw_multi_aff_list<Domain>
add
(
const
typed::pw_aff<Domain>
&el)
const
;
9299
inline
typed::pw_multi_aff<Domain>
at
(
int
index)
const
;
9300
inline
typed::pw_multi_aff<Domain>
get_at
(
int
index)
const
=
delete
;
9301
inline
typed::pw_multi_aff_list<Domain>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
9302
inline
void
foreach
(
const
std::function<
void
(
typed::pw_multi_aff<Domain>
)> &
fn
)
const
;
9303
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::pw_multi_aff<Domain>
,
typed::pw_multi_aff<Domain>
)> &follows,
const
std::function<
void
(
typed::pw_multi_aff_list<Domain>
)> &
fn
)
const
;
9304
inline
typed::pw_multi_aff_list<Domain>
set_at
(
int
index,
const
typed::pw_multi_aff<Anonymous>
&el)
const
;
9305
};
9306
9307
template
<
typename
Domain,
typename
Range>
9308
struct
pw_multi_aff_list
<
Domain
,
Range
> :
public
isl::pw_multi_aff_list
{
9309
template
<
typename
...>
9310
friend
struct
aff
;
9311
template
<
typename
...>
9312
friend
struct
aff_list
;
9313
template
<
typename
...>
9314
friend
struct
basic_map
;
9315
template
<
typename
...>
9316
friend
struct
basic_set
;
9317
template
<
typename
...>
9318
friend
struct
fixed_box
;
9319
template
<
typename
...>
9320
friend
struct
id
;
9321
template
<
typename
...>
9322
friend
struct
id_list
;
9323
template
<
typename
...>
9324
friend
struct
map
;
9325
template
<
typename
...>
9326
friend
struct
map_list
;
9327
template
<
typename
...>
9328
friend
struct
multi_aff
;
9329
template
<
typename
...>
9330
friend
struct
multi_id
;
9331
template
<
typename
...>
9332
friend
struct
multi_pw_aff
;
9333
template
<
typename
...>
9334
friend
struct
multi_union_pw_aff
;
9335
template
<
typename
...>
9336
friend
struct
multi_val
;
9337
template
<
typename
...>
9338
friend
struct
point
;
9339
template
<
typename
...>
9340
friend
struct
pw_aff
;
9341
template
<
typename
...>
9342
friend
struct
pw_aff_list
;
9343
template
<
typename
...>
9344
friend
struct
pw_multi_aff
;
9345
template
<
typename
...>
9346
friend
struct
pw_multi_aff_list
;
9347
template
<
typename
...>
9348
friend
struct
set
;
9349
template
<
typename
...>
9350
friend
struct
set_list
;
9351
template
<
typename
...>
9352
friend
struct
space
;
9353
template
<
typename
...>
9354
friend
struct
union_map
;
9355
template
<
typename
...>
9356
friend
struct
union_pw_aff
;
9357
template
<
typename
...>
9358
friend
struct
union_pw_aff_list
;
9359
template
<
typename
...>
9360
friend
struct
union_pw_multi_aff
;
9361
template
<
typename
...>
9362
friend
struct
union_set
;
9363
template
<
typename
...>
9364
friend
struct
union_set_list
;
9365
template
<
typename
...>
9366
friend
struct
val
;
9367
template
<
typename
...>
9368
friend
struct
val_list
;
9369
9370
pw_multi_aff_list
() =
default
;
9371
template
<
typename
Arg1,
typename
Arg2,
9372
typename
std::enable_if<
9373
std::is_base_of<Domain, Arg1>{} &&
9374
std::is_base_of<Range, Arg2>{},
9375
bool
>
::type
=
true
>
9376
pw_multi_aff_list
(
const
pw_multi_aff_list<Arg1, Arg2>
&
obj
) :
isl
::
pw_multi_aff_list
(
obj
) {}
9377
private
:
9378
template
<
typename
base,
9379
typename
std::enable_if<
9380
std::is_same<base, isl::pw_multi_aff_list>{},
bool
>
::type
=
true
>
9381
pw_multi_aff_list
(
const
base &
obj
) :
isl
::
pw_multi_aff_list
(
obj
) {}
9382
public
:
9383
static
pw_multi_aff_list
from
(
const
isl::pw_multi_aff_list
&
obj
) {
9384
return
pw_multi_aff_list
(
obj
);
9385
}
9386
inline
explicit
pw_multi_aff_list
(
const
isl::ctx
&
ctx
,
int
n
);
9387
inline
explicit
pw_multi_aff_list
(
const
typed::pw_multi_aff<Domain, Range>
&el);
9388
inline
explicit
pw_multi_aff_list
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
9389
inline
typed::pw_multi_aff_list<Domain, Range>
add
(
const
typed::pw_multi_aff<Domain, Range>
&el)
const
;
9390
inline
typed::pw_multi_aff_list<Domain, Range>
add
(
const
typed::multi_aff<Domain, Range>
&el)
const
;
9391
inline
typed::pw_multi_aff_list<Domain, Range>
add
(
const
typed::pw_aff<Domain, Range>
&el)
const
;
9392
inline
typed::pw_multi_aff<Domain, Range>
at
(
int
index)
const
;
9393
inline
typed::pw_multi_aff<Domain, Range>
get_at
(
int
index)
const
=
delete
;
9394
inline
typed::pw_multi_aff_list<Domain, Range>
drop
(
unsigned
int
first,
unsigned
int
n
)
const
;
9395
inline
void
foreach
(
const
std::function<
void
(
typed::pw_multi_aff<Domain, Range>
)> &
fn
)
const
;
9396
inline
void
foreach_scc
(
const
std::function<
bool
(
typed::pw_multi_aff<Domain, Range>
,
typed::pw_multi_aff<Domain, Range>
)> &follows,
const
std::function<
void
(
typed::pw_multi_aff_list<Domain, Range>
)> &
fn
)
const
;
9397
inline
typed::pw_multi_aff_list<Domain, Range>
set_at
(
int
index,
const
typed::pw_multi_aff<Domain, Anonymous>
&el)
const
;
9398
};
9399
9400
template
<>
9401
struct
set
<> :
public
isl::set
{
9402
template
<
typename
...>
9403
friend
struct
aff
;
9404
template
<
typename
...>
9405
friend
struct
aff_list
;
9406
template
<
typename
...>
9407
friend
struct
basic_map
;
9408
template
<
typename
...>
9409
friend
struct
basic_set
;
9410
template
<
typename
...>
9411
friend
struct
fixed_box
;
9412
template
<
typename
...>
9413
friend
struct
id
;
9414
template
<
typename
...>
9415
friend
struct
id_list
;
9416
template
<
typename
...>
9417
friend
struct
map
;
9418
template
<
typename
...>
9419
friend
struct
map_list
;
9420
template
<
typename
...>
9421
friend
struct
multi_aff
;
9422
template
<
typename
...>
9423
friend
struct
multi_id
;
9424
template
<
typename
...>
9425
friend
struct
multi_pw_aff
;
9426
template
<
typename
...>
9427
friend
struct
multi_union_pw_aff
;
9428
template
<
typename
...>
9429
friend
struct
multi_val
;
9430
template
<
typename
...>
9431
friend
struct
point
;
9432
template
<
typename
...>
9433
friend
struct
pw_aff
;
9434
template
<
typename
...>
9435
friend
struct
pw_aff_list
;
9436
template
<
typename
...>
9437
friend
struct
pw_multi_aff
;
9438
template
<
typename
...>
9439
friend
struct
pw_multi_aff_list
;
9440
template
<
typename
...>
9441
friend
struct
set
;
9442
template
<
typename
...>
9443
friend
struct
set_list
;
9444
template
<
typename
...>
9445
friend
struct
space
;
9446
template
<
typename
...>
9447
friend
struct
union_map
;
9448
template
<
typename
...>
9449
friend
struct
union_pw_aff
;
9450
template
<
typename
...>
9451
friend
struct
union_pw_aff_list
;
9452
template
<
typename
...>
9453
friend
struct
union_pw_multi_aff
;
9454
template
<
typename
...>
9455
friend
struct
union_set
;
9456
template
<
typename
...>
9457
friend
struct
union_set_list
;
9458
template
<
typename
...>
9459
friend
struct
val
;
9460
template
<
typename
...>
9461
friend
struct
val_list
;
9462
9463
set
() =
default
;
9464
private
:
9465
template
<
typename
base,
9466
typename
std::enable_if<
9467
std::is_same<base, isl::set>{},
bool
>
::type
=
true
>
9468
set
(
const
base &
obj
) :
isl
::
set
(
obj
) {}
9469
public
:
9470
static
set
from
(
const
isl::set
&
obj
) {
9471
return
set
(
obj
);
9472
}
9473
inline
/* implicit */
set
(
const
typed::basic_set<>
&bset);
9474
inline
/* implicit */
set
(
const
typed::point<>
&pnt);
9475
inline
explicit
set
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
9476
inline
typed::set<>
apply
(
const
typed::map<>
&
map
)
const
=
delete
;
9477
inline
typed::union_set<>
apply
(
const
typed::union_map<>
&umap)
const
=
delete
;
9478
inline
typed::set<>
apply
(
const
typed::basic_map<>
&
map
)
const
=
delete
;
9479
inline
typed::pw_multi_aff<>
as_pw_multi_aff
()
const
=
delete
;
9480
inline
typed::set<>
as_set
()
const
=
delete
;
9481
inline
typed::set<>
bind
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
9482
inline
typed::set<>
coalesce
()
const
;
9483
inline
typed::set<>
detect_equalities
()
const
;
9484
inline
typed::set<>
drop_unused_params
()
const
;
9485
inline
bool
every_set
(
const
std::function<
bool
(
typed::set<>
)> &
test
)
const
;
9486
inline
typed::set<>
extract_set
(
const
typed::space<>
&
space
)
const
;
9487
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set<>
)> &
fn
)
const
;
9488
inline
void
foreach_point
(
const
std::function<
void
(
typed::point<>
)> &
fn
)
const
;
9489
inline
void
foreach_set
(
const
std::function<
void
(
typed::set<>
)> &
fn
)
const
;
9490
inline
typed::set<>
gist
(
const
typed::set<>
&
context
)
const
;
9491
inline
typed::union_set<>
gist
(
const
typed::union_set<>
&
context
)
const
;
9492
inline
typed::set<>
gist
(
const
typed::basic_set<>
&
context
)
const
;
9493
inline
typed::set<>
gist
(
const
typed::point<>
&
context
)
const
;
9494
inline
typed::set<>
gist_params
(
const
typed::set<>
&
context
)
const
=
delete
;
9495
inline
typed::set<>
gist_params
(
const
typed::basic_set<>
&
context
)
const
=
delete
;
9496
inline
typed::set<>
gist_params
(
const
typed::point<>
&
context
)
const
=
delete
;
9497
inline
typed::map<>
identity
()
const
=
delete
;
9498
inline
typed::pw_aff<Anonymous>
indicator_function
()
const
;
9499
inline
typed::map<>
insert_domain
(
const
typed::space<>
&
domain
)
const
=
delete
;
9500
inline
typed::set<>
intersect
(
const
typed::set<>
&
set2
)
const
;
9501
inline
typed::union_set<>
intersect
(
const
typed::union_set<>
&uset2)
const
;
9502
inline
typed::set<>
intersect
(
const
typed::basic_set<>
&
set2
)
const
;
9503
inline
typed::set<>
intersect
(
const
typed::point<>
&
set2
)
const
;
9504
inline
typed::set<>
intersect_params
(
const
typed::set<>
&
params
)
const
=
delete
;
9505
inline
typed::set<>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
=
delete
;
9506
inline
typed::set<>
intersect_params
(
const
typed::point<>
&
params
)
const
=
delete
;
9507
inline
typed::fixed_box<>
lattice_tile
()
const
=
delete
;
9508
inline
typed::fixed_box<>
get_lattice_tile
()
const
=
delete
;
9509
inline
typed::set<>
lexmax
()
const
=
delete
;
9510
inline
typed::pw_multi_aff<>
lexmax_pw_multi_aff
()
const
=
delete
;
9511
inline
typed::set<>
lexmin
()
const
=
delete
;
9512
inline
typed::pw_multi_aff<>
lexmin_pw_multi_aff
()
const
=
delete
;
9513
inline
typed::set<>
lower_bound
(
const
typed::multi_pw_aff<>
&lower)
const
=
delete
;
9514
inline
typed::set<>
lower_bound
(
const
typed::multi_val<>
&lower)
const
=
delete
;
9515
inline
typed::multi_pw_aff<>
max_multi_pw_aff
()
const
=
delete
;
9516
inline
typed::val<>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
9517
inline
typed::multi_pw_aff<>
min_multi_pw_aff
()
const
=
delete
;
9518
inline
typed::val<>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
9519
inline
typed::pw_aff<Anonymous>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
9520
inline
typed::pw_aff<Anonymous>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
9521
inline
typed::set<>
params
()
const
=
delete
;
9522
inline
typed::multi_val<>
plain_multi_val_if_fixed
()
const
=
delete
;
9523
inline
typed::multi_val<>
get_plain_multi_val_if_fixed
()
const
=
delete
;
9524
inline
typed::set<>
preimage
(
const
typed::multi_aff<>
&
ma
)
const
=
delete
;
9525
inline
typed::set<>
preimage
(
const
typed::multi_pw_aff<>
&mpa)
const
=
delete
;
9526
inline
typed::set<>
preimage
(
const
typed::pw_multi_aff<>
&
pma
)
const
=
delete
;
9527
inline
typed::union_set<>
preimage
(
const
typed::union_pw_multi_aff<>
&upma)
const
=
delete
;
9528
inline
typed::set<>
product
(
const
typed::set<>
&
set2
)
const
=
delete
;
9529
inline
typed::set<>
product
(
const
typed::basic_set<>
&
set2
)
const
=
delete
;
9530
inline
typed::set<>
product
(
const
typed::point<>
&
set2
)
const
=
delete
;
9531
inline
typed::set<>
project_out_all_params
()
const
;
9532
inline
typed::set<>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
9533
inline
typed::set<>
project_out_param
(
const
std::string &
id
)
const
;
9534
inline
typed::set<>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
9535
inline
typed::pw_aff<Anonymous>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
9536
inline
typed::pw_aff<Anonymous>
pw_aff_on_domain
(
long
v)
const
;
9537
template
<
typename
Domain>
9538
inline
typed::pw_multi_aff<Domain>
pw_multi_aff_on_domain
(
const
typed::multi_val<Domain>
&mv)
const
;
9539
inline
typed::set_list<>
set_list
()
const
;
9540
inline
typed::fixed_box<>
simple_fixed_box_hull
()
const
=
delete
;
9541
inline
typed::fixed_box<>
get_simple_fixed_box_hull
()
const
=
delete
;
9542
inline
typed::space<>
space
()
const
;
9543
inline
typed::space<>
get_space
()
const
=
delete
;
9544
inline
typed::val<>
get_stride
(
int
pos
)
const
=
delete
;
9545
inline
typed::set<>
subtract
(
const
typed::set<>
&
set2
)
const
;
9546
inline
typed::union_set<>
subtract
(
const
typed::union_set<>
&uset2)
const
;
9547
inline
typed::set<>
subtract
(
const
typed::basic_set<>
&
set2
)
const
;
9548
inline
typed::set<>
subtract
(
const
typed::point<>
&
set2
)
const
;
9549
inline
typed::union_set<>
to_union_set
()
const
;
9550
inline
typed::map<>
translation
()
const
=
delete
;
9551
template
<
typename
Domain>
9552
inline
typed::set<Domain>
unbind_params
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
9553
inline
typed::map<>
unbind_params_insert_domain
(
const
typed::multi_id<>
&
domain
)
const
=
delete
;
9554
inline
typed::set<>
unite
(
const
typed::set<>
&
set2
)
const
;
9555
inline
typed::union_set<>
unite
(
const
typed::union_set<>
&uset2)
const
;
9556
inline
typed::set<>
unite
(
const
typed::basic_set<>
&
set2
)
const
;
9557
inline
typed::set<>
unite
(
const
typed::point<>
&
set2
)
const
;
9558
static
inline
typed::set<>
universe
(
const
typed::space<>
&
space
);
9559
inline
typed::map<>
unwrap
()
const
=
delete
;
9560
inline
typed::set<>
upper_bound
(
const
typed::multi_pw_aff<>
&upper)
const
=
delete
;
9561
inline
typed::set<>
upper_bound
(
const
typed::multi_val<>
&upper)
const
=
delete
;
9562
inline
typed::set<>
wrapped_reverse
()
const
=
delete
;
9563
};
9564
9565
template
<
typename
Domain>
9566
struct
set
<
Domain
> :
public
isl::set
{
9567
template
<
typename
...>
9568
friend
struct
aff
;
9569
template
<
typename
...>
9570
friend
struct
aff_list
;
9571
template
<
typename
...>
9572
friend
struct
basic_map
;
9573
template
<
typename
...>
9574
friend
struct
basic_set
;
9575
template
<
typename
...>
9576
friend
struct
fixed_box
;
9577
template
<
typename
...>
9578
friend
struct
id
;
9579
template
<
typename
...>
9580
friend
struct
id_list
;
9581
template
<
typename
...>
9582
friend
struct
map
;
9583
template
<
typename
...>
9584
friend
struct
map_list
;
9585
template
<
typename
...>
9586
friend
struct
multi_aff
;
9587
template
<
typename
...>
9588
friend
struct
multi_id
;
9589
template
<
typename
...>
9590
friend
struct
multi_pw_aff
;
9591
template
<
typename
...>
9592
friend
struct
multi_union_pw_aff
;
9593
template
<
typename
...>
9594
friend
struct
multi_val
;
9595
template
<
typename
...>
9596
friend
struct
point
;
9597
template
<
typename
...>
9598
friend
struct
pw_aff
;
9599
template
<
typename
...>
9600
friend
struct
pw_aff_list
;
9601
template
<
typename
...>
9602
friend
struct
pw_multi_aff
;
9603
template
<
typename
...>
9604
friend
struct
pw_multi_aff_list
;
9605
template
<
typename
...>
9606
friend
struct
set
;
9607
template
<
typename
...>
9608
friend
struct
set_list
;
9609
template
<
typename
...>
9610
friend
struct
space
;
9611
template
<
typename
...>
9612
friend
struct
union_map
;
9613
template
<
typename
...>
9614
friend
struct
union_pw_aff
;
9615
template
<
typename
...>
9616
friend
struct
union_pw_aff_list
;
9617
template
<
typename
...>
9618
friend
struct
union_pw_multi_aff
;
9619
template
<
typename
...>
9620
friend
struct
union_set
;
9621
template
<
typename
...>
9622
friend
struct
union_set_list
;
9623
template
<
typename
...>
9624
friend
struct
val
;
9625
template
<
typename
...>
9626
friend
struct
val_list
;
9627
9628
set
() =
default
;
9629
template
<
typename
Arg1,
9630
typename
std::enable_if<
9631
std::is_base_of<Domain, Arg1>{},
9632
bool
>
::type
=
true
>
9633
set
(
const
set<Arg1>
&
obj
) :
isl
::
set
(
obj
) {}
9634
private
:
9635
template
<
typename
base,
9636
typename
std::enable_if<
9637
std::is_same<base, isl::set>{},
bool
>
::type
=
true
>
9638
set
(
const
base &
obj
) :
isl
::
set
(
obj
) {}
9639
public
:
9640
static
set
from
(
const
isl::set
&
obj
) {
9641
return
set
(
obj
);
9642
}
9643
inline
/* implicit */
set
(
const
typed::basic_set<Domain>
&bset);
9644
inline
/* implicit */
set
(
const
typed::point<Domain>
&pnt);
9645
inline
explicit
set
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
9646
template
<
typename
Range>
9647
inline
typed::set<Range>
apply
(
const
typed::map<Domain, Range>
&
map
)
const
;
9648
template
<
typename
Range>
9649
inline
typed::union_set<Range>
apply
(
const
typed::union_map<Domain, Range>
&umap)
const
;
9650
template
<
typename
Range>
9651
inline
typed::set<Range>
apply
(
const
typed::basic_map<Domain, Range>
&
map
)
const
;
9652
inline
typed::pw_multi_aff<Domain>
as_pw_multi_aff
()
const
;
9653
inline
typed::set<Domain>
as_set
()
const
;
9654
inline
typed::set<>
bind
(
const
typed::multi_id<Domain>
&
tuple
)
const
;
9655
inline
typed::set<Domain>
coalesce
()
const
;
9656
inline
typed::set<Domain>
detect_equalities
()
const
;
9657
inline
typed::set<Domain>
drop_unused_params
()
const
;
9658
inline
bool
every_set
(
const
std::function<
bool
(
typed::set<Domain>
)> &
test
)
const
;
9659
inline
typed::set<Domain>
extract_set
(
const
typed::space<Domain>
&
space
)
const
;
9660
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set<Domain>
)> &
fn
)
const
;
9661
inline
void
foreach_point
(
const
std::function<
void
(
typed::point<Domain>
)> &
fn
)
const
;
9662
inline
void
foreach_set
(
const
std::function<
void
(
typed::set<Domain>
)> &
fn
)
const
;
9663
inline
typed::set<Domain>
gist
(
const
typed::set<Domain>
&
context
)
const
;
9664
inline
typed::union_set<Domain>
gist
(
const
typed::union_set<Domain>
&
context
)
const
;
9665
inline
typed::set<Domain>
gist
(
const
typed::basic_set<Domain>
&
context
)
const
;
9666
inline
typed::set<Domain>
gist
(
const
typed::point<Domain>
&
context
)
const
;
9667
inline
typed::set<Domain>
gist_params
(
const
typed::set<>
&
context
)
const
;
9668
inline
typed::set<Domain>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
9669
inline
typed::set<Domain>
gist_params
(
const
typed::point<>
&
context
)
const
;
9670
inline
typed::map<Domain, Domain>
identity
()
const
;
9671
inline
typed::pw_aff<Domain, Anonymous>
indicator_function
()
const
;
9672
template
<
typename
Arg1>
9673
inline
typed::map<Arg1, Domain>
insert_domain
(
const
typed::space<Arg1>
&
domain
)
const
;
9674
inline
typed::set<Domain>
intersect
(
const
typed::set<Domain>
&
set2
)
const
;
9675
inline
typed::union_set<Domain>
intersect
(
const
typed::union_set<Domain>
&uset2)
const
;
9676
inline
typed::set<Domain>
intersect
(
const
typed::basic_set<Domain>
&
set2
)
const
;
9677
inline
typed::set<Domain>
intersect
(
const
typed::point<Domain>
&
set2
)
const
;
9678
inline
typed::set<Domain>
intersect_params
(
const
typed::set<>
&
params
)
const
;
9679
inline
typed::set<Domain>
intersect_params
(
const
typed::basic_set<>
&
params
)
const
;
9680
inline
typed::set<Domain>
intersect_params
(
const
typed::point<>
&
params
)
const
;
9681
inline
typed::fixed_box<Domain>
lattice_tile
()
const
;
9682
inline
typed::fixed_box<Domain>
get_lattice_tile
()
const
=
delete
;
9683
inline
typed::set<Domain>
lexmax
()
const
;
9684
inline
typed::pw_multi_aff<Domain>
lexmax_pw_multi_aff
()
const
;
9685
inline
typed::set<Domain>
lexmin
()
const
;
9686
inline
typed::pw_multi_aff<Domain>
lexmin_pw_multi_aff
()
const
;
9687
inline
typed::set<Domain>
lower_bound
(
const
typed::multi_pw_aff<Domain>
&lower)
const
;
9688
inline
typed::set<Domain>
lower_bound
(
const
typed::multi_val<Domain>
&lower)
const
;
9689
inline
typed::multi_pw_aff<Domain>
max_multi_pw_aff
()
const
;
9690
inline
typed::val<Domain>
max_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
9691
inline
typed::multi_pw_aff<Domain>
min_multi_pw_aff
()
const
;
9692
inline
typed::val<Domain>
min_val
(
const
typed::aff<>
&
obj
)
const
=
delete
;
9693
inline
typed::pw_aff<Domain, Anonymous>
param_pw_aff_on_domain
(
const
typed::id<Anonymous>
&
id
)
const
;
9694
inline
typed::pw_aff<Domain, Anonymous>
param_pw_aff_on_domain
(
const
std::string &
id
)
const
;
9695
inline
typed::set<>
params
()
const
;
9696
inline
typed::multi_val<Domain>
plain_multi_val_if_fixed
()
const
;
9697
inline
typed::multi_val<Domain>
get_plain_multi_val_if_fixed
()
const
=
delete
;
9698
template
<
typename
Domain2>
9699
inline
typed::set<Domain2>
preimage
(
const
typed::multi_aff<Domain2, Domain>
&
ma
)
const
;
9700
template
<
typename
Domain2>
9701
inline
typed::set<Domain2>
preimage
(
const
typed::multi_pw_aff<Domain2, Domain>
&mpa)
const
;
9702
template
<
typename
Domain2>
9703
inline
typed::set<Domain2>
preimage
(
const
typed::pw_multi_aff<Domain2, Domain>
&
pma
)
const
;
9704
template
<
typename
Domain2>
9705
inline
typed::union_set<Domain2>
preimage
(
const
typed::union_pw_multi_aff<Domain2, Domain>
&upma)
const
;
9706
template
<
typename
Range>
9707
inline
typed::set<pair<Domain, Range>
>
product
(
const
typed::set<Range>
&
set2
)
const
;
9708
template
<
typename
Range>
9709
inline
typed::set<pair<Domain, Range>
>
product
(
const
typed::basic_set<Range>
&
set2
)
const
;
9710
template
<
typename
Range>
9711
inline
typed::set<pair<Domain, Range>
>
product
(
const
typed::point<Range>
&
set2
)
const
;
9712
inline
typed::set<Domain>
project_out_all_params
()
const
;
9713
inline
typed::set<Domain>
project_out_param
(
const
typed::id<Anonymous>
&
id
)
const
;
9714
inline
typed::set<Domain>
project_out_param
(
const
std::string &
id
)
const
;
9715
inline
typed::set<Domain>
project_out_param
(
const
typed::id_list<Anonymous>
&list)
const
;
9716
inline
typed::pw_aff<Domain, Anonymous>
pw_aff_on_domain
(
const
typed::val<Anonymous>
&v)
const
;
9717
inline
typed::pw_aff<Domain, Anonymous>
pw_aff_on_domain
(
long
v)
const
;
9718
template
<
typename
Range>
9719
inline
typed::pw_multi_aff<Domain, Range>
pw_multi_aff_on_domain
(
const
typed::multi_val<Range>
&mv)
const
;
9720
inline
typed::set_list<Domain>
set_list
()
const
;
9721
inline
typed::fixed_box<Domain>
simple_fixed_box_hull
()
const
;
9722
inline
typed::fixed_box<Domain>
get_simple_fixed_box_hull
()
const
=
delete
;
9723
inline
typed::space<Domain>
space
()
const
;
9724
inline
typed::space<Domain>
get_space
()
const
=
delete
;
9725
inline
typed::val<Domain>
get_stride
(
int
pos
)
const
=
delete
;
9726
inline
typed::set<Domain>
subtract
(
const
typed::set<Domain>
&
set2
)
const
;
9727
inline
typed::union_set<Domain>
subtract
(
const
typed::union_set<Domain>
&uset2)
const
;
9728
inline
typed::set<Domain>
subtract
(
const
typed::basic_set<Domain>
&
set2
)
const
;
9729
inline
typed::set<Domain>
subtract
(
const
typed::point<Domain>
&
set2
)
const
;
9730
inline
typed::union_set<Domain>
to_union_set
()
const
;
9731
inline
typed::map<Domain, Domain>
translation
()
const
;
9732
inline
typed::set<Domain>
unbind_params
(
const
typed::multi_id<>
&
tuple
)
const
=
delete
;
9733
template
<
typename
Arg1>
9734
inline
typed::map<Arg1, Domain>
unbind_params_insert_domain
(
const
typed::multi_id<Arg1>
&
domain
)
const
;
9735
inline
typed::set<Domain>
unite
(
const
typed::set<Domain>
&
set2
)
const
;
9736
inline
typed::union_set<Domain>
unite
(
const
typed::union_set<Domain>
&uset2)
const
;
9737
inline
typed::set<Domain>
unite
(
const
typed::basic_set<Domain>
&
set2
)
const
;
9738
inline
typed::set<Domain>
unite
(
const
typed::point<Domain>
&
set2
)
const
;
9739
static
inline
typed::set<Domain>
universe
(
const
typed::space<Domain>
&
space
);
9740
inline
typed::map<Domain>
unwrap
()
const
=
delete
;
9741
inline
typed::set<Domain>
upper_bound
(
const
typed::multi_pw_aff<Domain>
&upper)
const
;
9742
inline
typed::set<Domain>
upper_bound
(
const
typed::multi_val<Domain>
&upper)
const
;
9743
inline
typed::set<Domain>
wrapped_reverse
()
const
=
delete
;
9744
};
9745
9746
template
<
typename
Domain,
typename
Range>
9747
struct
set
<
pair
<
Domain
,
Range
>> :
public
isl::set
{
9748
template
<
typename
...>
9749
friend
struct
aff
;
9750
template
<
typename
...>
9751
friend
struct
aff_list
;
9752
template
<
typename
...>
9753
friend
struct
basic_map
;
9754
template
<
typename
...>
9755
friend
struct
basic_set
;
9756
template
<
typename
...>
9757
friend
struct
fixed_box
;
9758
template
<
typename
...>
9759
friend
struct
id
;
9760
template
<
typename
...>
9761
friend
struct
id_list
;
9762
template
<
typename
...>
9763
friend
struct
map
;
9764
template
<
typename
...>
9765
friend
struct
map_list
;
9766
template
<
typename
...>
9767
friend
struct
multi_aff
;
9768
template
<
typename
...>
9769
friend
struct
multi_id
;
9770
template
<
typename
...>
9771
friend
struct
multi_pw_aff
;
9772
template
<
typename
...>
9773
friend
struct
multi_union_pw_aff
;
9774
template
<
typename
...>
9775
friend
struct
multi_val
;
9776
template
<
typename
...>
9777
friend
struct
point
;
9778
template
<
typename
...>
9779
friend
struct
pw_aff
;
9780
template
<
typename
...>
9781
friend
struct
pw_aff_list
;
9782
template
<
typename
...>
9783
friend
struct
pw_multi_aff
;
9784
template
<
typename
...>
9785
friend
struct
pw_multi_aff_list
;
9786
template
<
typename
...>
9787
friend
struct
set
;
9788
template
<
typename
...>
9789
friend
struct
set_list
;
9790
template
<
typename
...>
9791
friend
struct
space
;
9792
template
<
typename
...>
9793
friend
struct
union_map
;
9794
template
<
typename
...>
9795
friend
struct
union_pw_aff
;
9796
template
<
typename
...>
9797
friend
struct
union_pw_aff_list
;
9798
template
<
typename
...>
9799
friend
struct
union_pw_multi_aff
;
9800
template
<
typename
...>
9801
friend
struct
union_set
;
9802
template
<
typename
...>
9803
friend
struct
union_set_list
;
9804
template
<
typename
...>
9805
friend
struct
val
;
9806
template
<
typename
...>
9807
friend
struct
val_list
;
9808
9809
set
() =
default
;
9810
template
<
typename
Arg1,
typename
Arg2,
9811
typename
std::enable_if<
9812
std::is_base_of<Domain, Arg1>{} &&
9813
std::is_base_of<Range, Arg2>{},
9814
bool
>
::type
=
true
>
9815
set
(
const
set
<
pair<Arg1, Arg2>
> &
obj
) :
isl
::
set
(
obj
) {}
9816
private
:
9817
template
<
typename
base,
9818
typename
std::enable_if<
9819
std::is_same<base, isl::set>{},
bool
>
::type
=
true
>
9820
set
(
const
base &
obj
) :
isl
::
set
(
obj
) {}
9821
public
:
9822
static
set
from
(
const
isl::set
&
obj
) {
9823
return
set
(
obj
);
9824
}
9825
inline
/* implicit */
set
(
const
typed::basic_set
<
pair<Domain, Range>
> &bset);
9826
inline
/* implicit */
set
(
const
typed::point
<
pair<Domain, Range>
> &pnt);
9827
inline
explicit
set
(
const
isl::ctx
&
ctx
,
const
std::string &
str
);
9828
template
<
typename
Arg2>
9829
inline
typed::set<Arg2>
apply
(
const
typed::map
<
pair<Domain, Range>
, Arg2> &
map
)
const
;
9830
template
<
typename
Arg2>
9831
inline
typed::union_set<Arg2>
apply
(
const
typed::union_map
<
pair<Domain, Range>
, Arg2> &umap)
const
;
9832
template
<
typename
Arg2>
9833
inline
typed::set<Arg2>
apply
(
const
typed::basic_map
<
pair<Domain, Range>
, Arg2> &
map
)
const
;
9834
inline
typed::pw_multi_aff<pair<Domain, Range>
>
as_pw_multi_aff
()
const
;
9835
inline
typed::set<pair<Domain, Range>
>
as_set
()
const
;
9836
inline
typed::set<>
bind
(
const
typed::multi_id
<
pair<Domain, Range>
> &
tuple
)
const
;
9837
inline
typed::set<pair<Domain, Range>
>
coalesce
()
const
;
9838
inline
typed::set<pair<Domain, Range>
>
detect_equalities
()
const
;
9839
inline
typed::set<pair<Domain, Range>
>
drop_unused_params
()
const
;
9840
inline
bool
every_set
(
const
std::function<
bool
(
typed::set
<
pair<Domain, Range>
>)> &
test
)
const
;
9841
inline
typed::set<pair<Domain, Range>
>
extract_set
(
const
typed::space
<
pair<Domain, Range>
> &
space
)
const
;
9842
inline
void
foreach_basic_set
(
const
std::function<
void
(
typed::basic_set
<
pair<Domain, Range>
>)> &
fn
)
const
;
9843
inline
void
foreach_point
(
const
std::function<
void
(
typed::point
<
pair<Domain, Range>
>)> &
fn
)
const
;
9844
inline
void
foreach_set
(
const
std::function<
void
(
typed::set
<
pair<Domain, Range>
>)> &
fn
)
const
;
9845
inline
typed::set<pair<Domain, Range>
>
gist
(
const
typed::set
<
pair<Domain, Range>
> &
context
)
const
;
9846
inline
typed::union_set<pair<Domain, Range>
>
gist
(
const
typed::union_set
<
pair<Domain, Range>
> &
context
)
const
;
9847
inline
typed::set<pair<Domain, Range>
>
gist
(
const
typed::basic_set
<
pair<Domain, Range>
> &
context
)
const
;
9848
inline
typed::set<pair<Domain, Range>
>
gist
(
const
typed::point
<
pair<Domain, Range>
> &
context
)
const
;
9849
inline
typed::set<pair<Domain, Range>
>
gist_params
(
const
typed::set<>
&
context
)
const
;
9850
inline
typed::set<pair<Domain, Range>
>
gist_params
(
const
typed::basic_set<>
&
context
)
const
;
9851
inline
typed::set<pair<Domain, Range>
>
gist_params
(
const
typed::point<>
&
context
)
const
;
9852
inline
typed::map<pair<Domain, Range>
,
pair<Domain, Range>
>
identity
()
const
;
9853
inline
typed::pw_aff<pair<Domain, Range>
,
Anonymous
>
indicator_function
()
const
;
9854
template
<
typename
Arg2>
9855
inline
typed::map<Arg2, pair<Domain, Range>
>
insert_domain
(
const
typed::space<Arg2>
&
domain
)
const
;
9856
inline
typed::set<pair<Domain, Range>
>
intersect
(
const
typed::set
<
pair<Domain, Range>
> &
set2
)
const
;
9857
inline
typed::union_set<pair<Domain, Range>
>
intersect
(
const
typed::union_set
<
pair<Domain, Range>
> &uset2)
const
;
9858
inline
typed::set<pair<Domain, Range>
>
intersect
(
const
typed::basic_set
<
pair<Domain, Range>
> &
set2
)
const
;
9859
inline
typed::set<pair<Domain, Range>
>
intersect
(
const
typed::point
<
pair<Domain, Range>
> &
set2
)
const
;
9860
inline
typed::set<pair<Domain, Range>
>
intersect_params
(
c