Polly 23.0.0git
isl_map_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2008-2009 Katholieke Universiteit Leuven
3 *
4 * Use of this software is governed by the MIT license
5 *
6 * Written by Sven Verdoolaege, K.U.Leuven, Departement
7 * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
8 */
9
10#ifndef ISL_MAP_PRIVATE_H
11#define ISL_MAP_PRIVATE_H
12
13#define isl_basic_set isl_basic_map
14#define isl_maybe_isl_basic_set isl_maybe_isl_basic_map
15#define isl_set isl_map
16#define isl_basic_set_list isl_basic_map_list
17#define isl_set_list isl_map_list
18#include <isl/list.h>
19#include <isl/set.h>
20#include <isl/map.h>
21#include <isl_reordering.h>
22#include <isl/vec.h>
23#include <isl/hash.h>
24#include <isl_blk.h>
25#include <isl_maybe_aff.h>
26
27/* A "basic map" is a relation between two sets of variables,
28 * called the "in" and "out" variables.
29 * A "basic set" is a basic map with a zero-dimensional
30 * domain.
31 *
32 * It is implemented as a set with two extra fields:
33 * n_in is the number of in variables
34 * n_out is the number of out variables
35 * n_in + n_out should be equal to set.dim
36 */
38 int ref;
39#define ISL_BASIC_MAP_FINAL (1 << 0)
40#define ISL_BASIC_MAP_EMPTY (1 << 1)
41#define ISL_BASIC_MAP_NO_IMPLICIT (1 << 2)
42#define ISL_BASIC_MAP_NO_REDUNDANT (1 << 3)
43#define ISL_BASIC_MAP_RATIONAL (1 << 4)
44#define ISL_BASIC_MAP_SORTED (1 << 5)
45#define ISL_BASIC_MAP_NORMALIZED_DIVS (1 << 6)
46#define ISL_BASIC_MAP_ALL_EQUALITIES (1 << 7)
47#define ISL_BASIC_MAP_REDUCED_COEFFICIENTS (1 << 8)
48#define ISL_BASIC_SET_FINAL (1 << 0)
49#define ISL_BASIC_SET_EMPTY (1 << 1)
50#define ISL_BASIC_SET_NO_IMPLICIT (1 << 2)
51#define ISL_BASIC_SET_NO_REDUNDANT (1 << 3)
52#define ISL_BASIC_SET_RATIONAL (1 << 4)
53#define ISL_BASIC_SET_SORTED (1 << 5)
54#define ISL_BASIC_SET_NORMALIZED_DIVS (1 << 6)
55#define ISL_BASIC_SET_ALL_EQUALITIES (1 << 7)
56#define ISL_BASIC_SET_REDUCED_COEFFICIENTS (1 << 8)
57 unsigned flags;
58
59 struct isl_ctx *ctx;
60
62 unsigned extra;
63
64 unsigned n_eq;
65 unsigned n_ineq;
66
67 size_t c_size;
70
71 unsigned n_div;
72
74
75 struct isl_vec *sample;
76
77 struct isl_blk block;
79};
80
81#undef EL
82#define EL isl_basic_set
83
84#include <isl_list_templ.h>
85
86/* A "map" is a (possibly disjoint) union of basic maps.
87 * A "set" is a (possibly disjoint) union of basic sets.
88 *
89 * Currently, the isl_set structure is identical to the isl_map structure
90 * and the library depends on this correspondence internally.
91 * However, users should not depend on this correspondence.
92 *
93 * "cached_simple_hull" contains copies of the unshifted and shifted
94 * simple hulls, if they have already been computed. Otherwise,
95 * the entries are NULL.
96 */
97struct isl_map {
98 int ref;
99#define ISL_MAP_DISJOINT (1 << 0)
100#define ISL_MAP_NORMALIZED (1 << 1)
101#define ISL_SET_DISJOINT (1 << 0)
102#define ISL_SET_NORMALIZED (1 << 1)
103 unsigned flags;
105
106 struct isl_ctx *ctx;
107
109
110 int n;
111
112 size_t size;
113 struct isl_basic_map *p[1];
114};
115
116#undef EL
117#define EL isl_set
118
119#include <isl_list_templ.h>
120
122 unsigned nparam, unsigned dim, unsigned extra,
123 unsigned n_eq, unsigned n_ineq);
125 __isl_take isl_basic_set *base, unsigned n_eq, unsigned n_ineq);
131
133 unsigned nparam, unsigned in, unsigned out, unsigned extra,
134 unsigned n_eq, unsigned n_ineq);
140 __isl_take isl_basic_map *base, unsigned n_eq, unsigned n_ineq);
143
146
150
153
158
160 enum isl_dim_type type);
162 enum isl_dim_type type);
163
165 __isl_keep const isl_basic_map *bmap);
169
175 __isl_take isl_space *space);
177 __isl_take isl_space *space);
178
180 enum isl_dim_type type);
182 enum isl_dim_type type);
184 enum isl_dim_type type);
186 enum isl_dim_type type);
187
196
198 unsigned extra, unsigned n_eq, unsigned n_ineq);
200 unsigned extra, unsigned n_eq, unsigned n_ineq);
201
204
206 __isl_keep isl_vec *vec);
208 __isl_keep isl_vec *vec);
209
211 unsigned extra, unsigned n_eq, unsigned n_ineq);
213 unsigned flags);
215 unsigned extra, unsigned n_eq, unsigned n_ineq);
217 unsigned flags);
218
222 __isl_take isl_basic_set *bset, unsigned n);
224 __isl_take isl_basic_map *bmap, unsigned n);
226 __isl_take isl_basic_set *bset, unsigned n);
230 __isl_take isl_basic_map *bmap, unsigned n);
239 __isl_take isl_basic_map *bmap, unsigned div);
241 __isl_keep isl_basic_map *bmap, unsigned pos);
246 isl_int *eq);
248 isl_int *eq);
250 isl_int *ineq);
252 isl_int *ineq);
253
256
258 unsigned pos);
259
265
267
270
276 int a, int b);
283 __isl_take isl_map *map, __isl_keep isl_basic_map_list *list);
285 __isl_take isl_basic_map_list *list, __isl_keep isl_basic_map *bmap);
293 int *progress,
294 isl_stat (*swap)(unsigned a, unsigned b, void *user),
295 isl_stat (*drop)(unsigned n, void *user), void *user);
297 int *progress);
299 __isl_take isl_basic_set *bset, int *progress);
301 isl_int *c1, isl_int *c2);
321 __isl_take isl_basic_map_list *list);
332 __isl_take isl_basic_map *bmap, unsigned first, unsigned n);
334 __isl_take isl_basic_set *bset, unsigned first, unsigned n);
336 enum isl_dim_type type, unsigned first, unsigned n);
338 enum isl_dim_type type, unsigned first, unsigned n);
340 enum isl_dim_type type, unsigned first, unsigned n);
342 __isl_take isl_basic_set *bset, unsigned first, unsigned n);
344 enum isl_dim_type type, unsigned first, unsigned n);
346 __isl_take isl_basic_map *bmap, __isl_take int *group);
347
350
354 __isl_take isl_basic_map *bmap, int *progress, int detect_divs);
356 __isl_take isl_basic_map *bmap, int *progress);
357
361
363
365 __isl_take isl_basic_map *bmap, unsigned pos, unsigned n);
367 __isl_take isl_basic_set *bset, unsigned pos, unsigned n);
368
370 enum isl_dim_type type, unsigned first, unsigned n);
372 enum isl_dim_type type, unsigned first, unsigned n);
374 enum isl_dim_type type, unsigned first, unsigned n);
375
377 __isl_take isl_basic_map *bmap, unsigned div, int sign);
379 __isl_take isl_basic_map *bmap, unsigned div);
381 __isl_take isl_basic_set *bset, unsigned pos);
386
393
402
405
408
410 __isl_take isl_multi_aff *maff, int rational);
416
417struct isl_mat;
418
423
425 __isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first,
426 __isl_take isl_mat *trans);
428 __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first,
429 __isl_take isl_mat *trans);
430
432 isl_int *facet, isl_int *ridge);
433
438
440 unsigned first, unsigned n, int *signs);
442 isl_stat (*fn)(__isl_take isl_set *orthant, int *signs, void *user),
443 void *user);
444
446
448 isl_int *constraint, unsigned div);
449
455 __isl_take isl_basic_set *bset, __isl_take isl_mat *div, int *exp);
457 __isl_take isl_basic_set *bmap, __isl_take isl_mat *div, int *exp);
458
463
465
467 __isl_take isl_basic_map *bmap, int div);
469 int div);
477
479 isl_bool (*test)(__isl_keep isl_basic_set *bset, void *user),
480 void *user);
483
486
488 enum isl_dim_type type, unsigned first, unsigned n);
490 enum isl_dim_type type, unsigned first, unsigned n);
492 enum isl_dim_type type, unsigned first, unsigned n);
494
498 __isl_keep isl_space *space);
500 __isl_keep isl_space *space);
502 __isl_keep isl_space *space);
503
511
513 unsigned pos, __isl_keep isl_aff *subs);
514
517
520
523
527
529 unsigned dim, isl_int *val);
530
537
542
544 int pos, isl_int *modulo, isl_int *residue);
546 int pos, isl_int *modulo, isl_int *residue);
547
549 enum isl_dim_type type, unsigned pos, isl_int value);
551 enum isl_dim_type type, unsigned pos, isl_int value);
553 enum isl_dim_type type, unsigned pos, isl_int value);
555 enum isl_dim_type type, unsigned pos, isl_int *val);
556
558 int pos, int *div, int *ineq);
559
562
564 __isl_take isl_basic_map *bmap, int div, int pos, isl_int shift);
565
567 isl_int max, isl_int *count);
569
571 enum isl_dim_type type1, __isl_keep isl_space *space,
572 enum isl_dim_type type2);
574 enum isl_dim_type type1, __isl_keep isl_map *map2,
575 enum isl_dim_type type2);
577 __isl_keep isl_space *space);
579 __isl_keep isl_space *space);
580
593
596
598 __isl_keep isl_basic_map *bmap, int ineq, int pos);
599
601 int div, unsigned first, unsigned n);
603 unsigned first, unsigned n);
604
606 __isl_keep isl_basic_map *bmap, int pos);
608 __isl_keep isl_basic_map *bmap, int pos);
610 __isl_keep isl_basic_map *bmap, int pos);
612 __isl_keep isl_basic_map *bmap, int *pos);
613
616
618 int pos1, __isl_keep isl_basic_map *bmap2, int pos2,
619 unsigned first, unsigned n);
621 __isl_keep isl_basic_map *bmap1, int pos1,
622 __isl_keep isl_basic_map *bmap2, int pos2);
624 __isl_take isl_basic_map *bmap, int div, int value);
625
626#endif
struct isl_multi_aff isl_multi_aff
Definition aff_type.h:29
#define __isl_take
Definition ctx.h:22
isl_stat
Definition ctx.h:84
#define __isl_give
Definition ctx.h:19
#define __isl_keep
Definition ctx.h:25
int isl_size
Definition ctx.h:97
isl_bool
Definition ctx.h:89
c1
Definition dot.c:2
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
Definition hmap.h:32
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
Definition hmap.h:37
isl_stat isl_stat void * user
Definition hmap.h:39
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
Definition hmap.h:41
void GMPZAPI swap(mp_int rop1, mp_int rop2)
static int count(int *con, unsigned len, int status)
static void drop(struct isl_coalesce_info *info)
mpz_t isl_int
Definition isl_int_gmp.h:9
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
Definition isl_map.c:73
__isl_give isl_basic_set * isl_basic_set_alloc_space(__isl_take isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:1361
isl_bool isl_basic_set_contains(__isl_keep isl_basic_set *bset, __isl_keep isl_vec *vec)
Definition isl_map.c:4240
__isl_give isl_basic_set * isl_basic_set_drop(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:2646
isl_bool isl_basic_set_plain_dim_is_fixed(__isl_keep isl_basic_set *bset, unsigned dim, isl_int *val)
Definition isl_map.c:10889
isl_size isl_basic_map_var_offset(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
Definition isl_map.c:147
__isl_give isl_map * isl_map_drop(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:2663
__isl_give isl_basic_map_list * isl_basic_map_list_align_divs_to_basic_map(__isl_take isl_basic_map_list *list, __isl_keep isl_basic_map *bmap)
Definition isl_map.c:10468
__isl_give isl_basic_map * isl_basic_map_free_inequality(__isl_take isl_basic_map *bmap, unsigned n)
Definition isl_map.c:1767
__isl_give isl_basic_map * isl_basic_map_add_ineq(__isl_take isl_basic_map *bmap, isl_int *ineq)
Definition isl_map.c:1843
isl_size isl_basic_set_n_equality(__isl_keep isl_basic_set *bset)
Definition isl_map.c:258
__isl_give isl_basic_map * isl_basic_map_order_divs(__isl_take isl_basic_map *bmap)
Definition isl_map.c:10156
__isl_give isl_basic_set * isl_basic_set_drop_constraints_involving(__isl_take isl_basic_set *bset, unsigned first, unsigned n)
Definition isl_map.c:3605
int isl_basic_set_count_upto(__isl_keep isl_basic_set *bset, isl_int max, isl_int *count)
Definition isl_scan.c:251
isl_bool isl_basic_map_any_div_involves_vars(__isl_keep isl_basic_map *bmap, unsigned first, unsigned n)
Definition isl_map.c:2882
isl_stat isl_set_basic_set_check_equal_space(__isl_keep isl_set *set, __isl_keep isl_basic_set *bset)
__isl_give isl_set * isl_set_alloc_space(__isl_take isl_space *space, int n, unsigned flags)
Definition isl_map.c:3977
isl_bool isl_basic_map_div_expr_involves_vars(__isl_keep isl_basic_map *bmap, int div, unsigned first, unsigned n)
Definition isl_map.c:2834
__isl_give isl_basic_map * isl_basic_map_drop_constraints_involving(__isl_take isl_basic_map *bmap, unsigned first, unsigned n)
Definition isl_map.c:3571
isl_bool isl_basic_map_may_be_set(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:6617
isl_stat isl_map_align_params_bin(__isl_keep isl_map **map1, __isl_keep isl_map **map2)
int isl_basic_set_alloc_div(__isl_keep isl_basic_set *bset)
Definition isl_map.c:1884
__isl_give isl_basic_set * isl_basic_set_set_to_empty(__isl_take isl_basic_set *bset)
Definition isl_map.c:2219
__isl_give isl_basic_map * isl_basic_map_remove_duplicate_constraints(__isl_take isl_basic_map *bmap, int *progress, int detect_divs)
__isl_give isl_basic_set * isl_basic_set_dup(__isl_keep isl_basic_set *bset)
Definition isl_map.c:1457
__isl_give isl_basic_map * isl_basic_map_eliminate_vars(__isl_take isl_basic_map *bmap, unsigned pos, unsigned n)
__isl_give isl_set * isl_set_plain_gist_basic_set(__isl_take isl_set *set, __isl_take isl_basic_set *context)
__isl_give isl_basic_map * isl_basic_map_alloc(isl_ctx *ctx, unsigned nparam, unsigned in, unsigned out, unsigned extra, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:1393
__isl_give isl_set * isl_map_underlying_set(__isl_take isl_map *map)
Definition isl_map.c:6376
__isl_give isl_basic_map * isl_basic_map_simplify(__isl_take isl_basic_map *bmap)
isl_bool isl_map_has_space(__isl_keep isl_map *map, __isl_keep isl_space *space)
__isl_give isl_map * isl_map_inline_foreach_basic_map(__isl_take isl_map *map, __isl_give isl_basic_map *(*fn)(__isl_take isl_basic_map *bmap))
Definition isl_map.c:7208
isl_bool isl_basic_map_plain_is_equal(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
Definition isl_map.c:11086
__isl_give isl_map * isl_map_eliminate(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:2717
isl_bool isl_basic_map_applies_range(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
Definition isl_map.c:5328
__isl_give isl_basic_set * isl_basic_set_drop_dims(__isl_take isl_basic_set *bset, unsigned first, unsigned n)
Definition isl_map.c:2521
__isl_give isl_set * isl_set_add_basic_set(__isl_take isl_set *set, __isl_take isl_basic_set *bset)
Definition isl_map.c:4048
void isl_basic_map_inequality_to_equality(__isl_keep isl_basic_map *bmap, unsigned pos)
Definition isl_map.c:1719
__isl_give isl_map * isl_map_align_divs_internal(__isl_take isl_map *map)
Definition isl_map.c:10397
__isl_give isl_vec * isl_basic_map_inequality_extract_output_upper_bound(__isl_keep isl_basic_map *bmap, int ineq, int pos)
Definition isl_map.c:14915
isl_size isl_basic_map_n_equality(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:248
isl_size isl_basic_map_n_inequality(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:266
isl_bool isl_set_contains_point(__isl_keep isl_set *set, __isl_keep isl_point *point)
Definition isl_point.c:671
__isl_give isl_basic_set * isl_basic_set_insert_div(__isl_take isl_basic_set *bset, int pos, __isl_keep isl_vec *div)
Definition isl_map.c:1942
int isl_basic_map_drop_equality(__isl_keep isl_basic_map *bmap, unsigned pos)
Definition isl_map.c:1694
__isl_give isl_basic_map * isl_inequality_negate(__isl_take isl_basic_map *bmap, unsigned pos)
Definition isl_map.c:3959
isl_bool isl_basic_map_div_is_known(__isl_keep isl_basic_map *bmap, int div)
Definition isl_map.c:3779
__isl_give isl_basic_set * isl_basic_set_expand_divs(__isl_take isl_basic_set *bset, __isl_take isl_mat *div, int *exp)
Definition isl_map.c:10278
__isl_give isl_set * isl_set_normalize(__isl_take isl_set *set)
Definition isl_map.c:11199
__isl_give isl_set * isl_set_fix(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, isl_int value)
Definition isl_map.c:7279
__isl_give isl_map * isl_map_reset(__isl_take isl_map *map, enum isl_dim_type type)
Definition isl_map.c:12929
unsigned isl_basic_map_offset(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
Definition isl_map.c:178
__isl_give isl_basic_set * isl_basic_set_drop_constraints_involving_unknown_divs(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_project_onto(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:5225
__isl_give isl_basic_set * isl_basic_set_preimage(__isl_take isl_basic_set *bset, __isl_take isl_mat *mat)
Definition isl_mat.c:1360
isl_bool isl_set_has_rational(__isl_keep isl_set *set)
Definition isl_map.c:1254
#define isl_basic_set_list
__isl_give isl_set * isl_set_cow(__isl_take isl_set *set)
Definition isl_map.c:2092
isl_stat isl_map_align_params_set(__isl_keep isl_map **map, __isl_keep isl_set **set)
__isl_give isl_basic_map * isl_basic_map_finalize(__isl_take isl_basic_map *bmap)
isl_bool isl_basic_set_space_has_equal_params(__isl_keep isl_basic_set *bset, __isl_keep isl_space *space)
Definition isl_map.c:13230
isl_stat isl_basic_map_check_equal_space(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
isl_bool isl_set_every_basic_set(__isl_keep isl_set *set, isl_bool(*test)(__isl_keep isl_basic_set *bset, void *user), void *user)
Definition isl_map.c:11965
__isl_give isl_basic_map * isl_basic_map_add_known_div_constraints(__isl_take isl_basic_map *bmap)
Definition isl_map.c:6199
__isl_give isl_basic_set * isl_basic_set_add_ineq(__isl_take isl_basic_set *bset, isl_int *ineq)
Definition isl_map.c:1864
__isl_give isl_basic_map * isl_basic_map_from_local_space(__isl_take isl_local_space *ls)
Definition isl_map.c:561
__isl_give isl_basic_map * isl_basic_map_add_eq(__isl_take isl_basic_map *bmap, isl_int *eq)
Definition isl_map.c:1809
__isl_give isl_basic_set * isl_set_combined_lineality_space(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_gauss(__isl_take isl_basic_map *bmap, int *progress)
__isl_give isl_basic_set * isl_basic_set_extend_constraints(__isl_take isl_basic_set *base, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:2051
int isl_basic_set_first_unknown_div(__isl_keep isl_basic_set *bset)
Definition isl_map.c:8665
isl_stat isl_basic_set_check_range(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:1896
__isl_give isl_map * isl_map_reset_space(__isl_take isl_map *map, __isl_take isl_space *space)
Definition isl_map.c:6467
int isl_basic_set_alloc_equality(__isl_keep isl_basic_set *bset)
Definition isl_map.c:1666
__isl_give isl_basic_map * isl_basic_map_fix(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int value)
Definition isl_map.c:7119
unsigned isl_basic_set_offset(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
Definition isl_map.c:191
isl_bool isl_set_is_rational(__isl_keep isl_set *set)
Definition isl_map.c:1182
__isl_give isl_basic_map * isl_basic_map_drop(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:2628
__isl_give isl_basic_set * isl_basic_set_extend(__isl_take isl_basic_set *base, unsigned extra, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:2038
isl_bool isl_basic_map_equal_div_expr_part(__isl_keep isl_basic_map *bmap1, int pos1, __isl_keep isl_basic_map *bmap2, int pos2, unsigned first, unsigned n)
Definition isl_map.c:15822
__isl_give isl_basic_map * isl_basic_map_from_multi_aff2(__isl_take isl_multi_aff *maff, int rational)
__isl_give isl_basic_map * isl_basic_map_set_div_expr_constant_num_si_inplace(__isl_take isl_basic_map *bmap, int div, int value)
Definition isl_map.c:15869
int isl_basic_map_constraint_cmp(__isl_keep isl_basic_map *bmap, isl_int *c1, isl_int *c2)
Definition isl_map.c:10946
int isl_basic_map_alloc_div(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:1870
isl_bool isl_basic_map_div_is_marked_unknown(__isl_keep isl_basic_map *bmap, int div)
Definition isl_map.c:8631
__isl_give isl_map * isl_map_order_divs(__isl_take isl_map *map)
Definition isl_map.c:10186
isl_bool isl_map_has_space_tuples(__isl_keep isl_map *map, __isl_keep isl_space *space)
Definition isl_map.c:9414
__isl_give isl_set * isl_set_eliminate(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:2747
__isl_give isl_basic_set * isl_basic_set_tighten_outward(__isl_take isl_basic_set *bset, __isl_keep isl_vec *vec)
Definition isl_map.c:15926
isl_size isl_basic_set_n_inequality(__isl_keep isl_basic_set *bset)
Definition isl_map.c:276
isl_stat isl_basic_set_check_no_locals(__isl_keep isl_basic_set *bset)
Definition isl_map.c:1551
isl_stat isl_basic_set_vars_get_sign(__isl_keep isl_basic_set *bset, unsigned first, unsigned n, int *signs)
Definition isl_map.c:12265
__isl_give isl_basic_map * isl_basic_map_detect_inequality_pairs(__isl_take isl_basic_map *bmap, int *progress)
__isl_give isl_map * isl_map_from_pw_multi_aff_internal(__isl_take isl_pw_multi_aff *pma)
__isl_give isl_basic_map * isl_basic_map_reduce_coefficients(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_fix(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, isl_int value)
Definition isl_map.c:7167
__isl_give isl_basic_map * isl_basic_map_set_to_empty(__isl_take isl_basic_map *bmap)
Definition isl_map.c:2177
__isl_give isl_basic_map * isl_basic_map_remove_unknown_divs(__isl_take isl_basic_map *bmap)
Definition isl_map.c:3804
isl_int * isl_set_wrap_facet(__isl_keep isl_set *set, isl_int *facet, isl_int *ridge)
__isl_give isl_maybe_isl_aff isl_basic_map_try_find_any_output_div_mod(__isl_keep isl_basic_map *bmap, int *pos)
Definition isl_map.c:15778
int isl_basic_map_first_unknown_div(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:8645
isl_bool isl_basic_map_is_div_constraint(__isl_keep isl_basic_map *bmap, isl_int *constraint, unsigned div)
__isl_give isl_basic_set_list * isl_basic_map_list_underlying_set(__isl_take isl_basic_map_list *list)
Definition isl_map.c:6276
__isl_give isl_basic_set * isl_basic_set_free_inequality(__isl_take isl_basic_set *bset, unsigned n)
Definition isl_map.c:1780
__isl_give isl_basic_map * isl_basic_map_shift_div(__isl_take isl_basic_map *bmap, int div, int pos, isl_int shift)
isl_stat isl_map_basic_map_check_equal_space(__isl_keep isl_map *map, __isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_free_equality(__isl_take isl_basic_map *bmap, unsigned n)
Definition isl_map.c:1671
isl_stat isl_basic_set_dim_residue_class(__isl_keep isl_basic_set *bset, int pos, isl_int *modulo, isl_int *residue)
int isl_basic_map_output_defining_equality(__isl_keep isl_basic_map *bmap, int pos, int *div, int *ineq)
Definition isl_map.c:12499
int isl_basic_map_drop_inequality(__isl_keep isl_basic_map *bmap, unsigned pos)
Definition isl_map.c:1787
__isl_give isl_map * isl_map_plain_gist_basic_map(__isl_take isl_map *map, __isl_take isl_basic_map *context)
int isl_basic_map_alloc_inequality(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:1742
__isl_give isl_basic_map * isl_basic_map_add_div_constraint(__isl_take isl_basic_map *bmap, unsigned div, int sign)
Definition isl_map.c:6229
__isl_give isl_map * isl_map_realign(__isl_take isl_map *map, __isl_take isl_reordering *r)
Definition isl_map.c:13100
__isl_give isl_basic_map * isl_basic_map_expand_divs(__isl_take isl_basic_set *bmap, __isl_take isl_mat *div, int *exp)
__isl_give isl_basic_set * isl_basic_set_add_eq(__isl_take isl_basic_set *bset, isl_int *eq)
Definition isl_map.c:1837
isl_bool isl_map_has_equal_params(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
Definition isl_map.c:295
isl_stat isl_basic_set_check_no_params(__isl_keep isl_basic_set *bset)
Definition isl_map.c:1535
isl_bool isl_map_space_tuple_is_equal(__isl_keep isl_map *map, enum isl_dim_type type1, __isl_keep isl_space *space, enum isl_dim_type type2)
Definition isl_map.c:9388
__isl_give isl_map * isl_map_cow(__isl_take isl_map *map)
Definition isl_map.c:2107
isl_bool isl_basic_map_has_single_reference(__isl_keep isl_basic_map *bmap)
isl_size isl_basic_set_var_offset(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
Definition isl_map.c:169
__isl_give isl_basic_map * isl_basic_map_mark_div_unknown(__isl_take isl_basic_map *bmap, int div)
Definition isl_map.c:8606
isl_stat isl_set_foreach_orthant(__isl_keep isl_set *set, isl_stat(*fn)(__isl_take isl_set *orthant, int *signs, void *user), void *user)
Definition isl_map.c:9719
__isl_give isl_basic_set * isl_basic_map_underlying_set(__isl_take isl_basic_map *bmap)
Definition isl_map.c:6238
isl_size isl_basic_map_find_output_upper_div_constraint(__isl_keep isl_basic_map *bmap, int pos)
Definition isl_map.c:15006
__isl_give isl_basic_set * isl_basic_set_simplify(__isl_take isl_basic_set *bset)
isl_stat isl_map_check_equal_space(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_gauss5(__isl_take isl_basic_map *bmap, int *progress, isl_stat(*swap)(unsigned a, unsigned b, void *user), isl_stat(*drop)(unsigned n, void *user), void *user)
__isl_give isl_map * isl_map_remove_obvious_duplicates(__isl_take isl_map *map)
Definition isl_map.c:11145
__isl_give isl_basic_set * isl_basic_set_free_equality(__isl_take isl_basic_set *bset, unsigned n)
Definition isl_map.c:1684
__isl_give isl_maybe_isl_aff isl_basic_map_try_find_output_div_mod(__isl_keep isl_basic_map *bmap, int pos)
Definition isl_map.c:15761
__isl_give isl_basic_map * isl_basic_map_cow(__isl_take isl_basic_map *bmap)
Definition isl_map.c:2064
isl_bool isl_basic_map_is_transformation(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:9316
__isl_give isl_basic_map * isl_basic_map_drop_redundant_divs(__isl_take isl_basic_map *bmap)
isl_bool isl_map_align_params_map_map_and_test(__isl_keep isl_map *map1, __isl_keep isl_map *map2, isl_bool(*fn)(__isl_keep isl_map *map1, __isl_keep isl_map *map2))
Definition isl_map.c:1607
__isl_give isl_maybe_isl_aff isl_basic_map_try_find_output_mod(__isl_keep isl_basic_map *bmap, int pos)
Definition isl_map.c:15619
__isl_give isl_basic_map * isl_basic_map_eliminate_pure_unit_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_drop_constraints_involving_unknown_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_mat * isl_basic_map_get_divs(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:481
__isl_give isl_basic_set * isl_basic_set_cow(__isl_take isl_basic_set *bset)
Definition isl_map.c:2059
__isl_give isl_basic_set * isl_basic_set_set_rational(__isl_take isl_basic_set *bset)
Definition isl_map.c:2243
__isl_give isl_basic_map * isl_basic_map_insert_div(__isl_take isl_basic_map *bmap, int pos, __isl_keep isl_vec *div)
Definition isl_map.c:1909
isl_bool isl_map_is_params(__isl_keep isl_map *map)
Definition isl_map.c:1281
__isl_give isl_basic_map * isl_basic_map_sort_constraints(__isl_take isl_basic_map *bmap)
Definition isl_map.c:10959
__isl_give isl_basic_set * isl_basic_set_lineality_space(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_plain_affine_hull(__isl_take isl_basic_map *bmap)
isl_stat isl_map_check_named_params(__isl_keep isl_map *map)
__isl_give isl_basic_set * isl_basic_set_sort_divs(__isl_take isl_basic_set *bset)
Definition isl_map.c:10207
__isl_give isl_basic_map * isl_basic_map_reset(__isl_take isl_basic_map *bmap, enum isl_dim_type type)
Definition isl_map.c:12915
__isl_give isl_basic_set * isl_basic_set_underlying_set(__isl_take isl_basic_set *bset)
Definition isl_map.c:6267
__isl_give isl_map * isl_map_alloc_space(__isl_take isl_space *space, int n, unsigned flags)
Definition isl_map.c:6857
__isl_give isl_basic_map * isl_basic_map_drop_div(__isl_take isl_basic_map *bmap, unsigned div)
Definition isl_map.c:2707
__isl_give isl_basic_set * isl_basic_set_set_integral(__isl_take isl_basic_set *bset)
Definition isl_map.c:2249
__isl_give isl_map * isl_map_drop_constraints_involving_unknown_divs(__isl_take isl_map *map)
__isl_give isl_map * isl_map_sort_divs(__isl_take isl_map *map)
__isl_give isl_mat * isl_basic_set_get_divs(__isl_keep isl_basic_set *bset)
Definition isl_map.c:507
__isl_give isl_basic_map * isl_basic_map_mark_final(__isl_take isl_basic_map *bmap)
isl_bool isl_set_space_has_equal_params(__isl_keep isl_set *set, __isl_keep isl_space *space)
Definition isl_map.c:13252
isl_bool isl_basic_map_compatible_domain(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
Definition isl_map.c:346
__isl_give isl_map * isl_map_plain_gist(__isl_take isl_map *map, __isl_take isl_map *context)
isl_bool isl_map_compatible_range(__isl_keep isl_map *map, __isl_keep isl_set *set)
Definition isl_map.c:358
isl_bool isl_basic_map_plain_is_non_empty(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:10107
__isl_give isl_map * isl_map_align_divs_to_basic_map_list(__isl_take isl_map *map, __isl_keep isl_basic_map_list *list)
Definition isl_map.c:10437
#define isl_set
__isl_give isl_basic_set * isl_basic_set_gauss(__isl_take isl_basic_set *bset, int *progress)
__isl_give isl_map * isl_map_reset_equal_dim_space(__isl_take isl_map *map, __isl_take isl_space *space)
Definition isl_map.c:6498
__isl_give isl_basic_set * isl_basic_set_eliminate_vars(__isl_take isl_basic_set *bset, unsigned pos, unsigned n)
__isl_give isl_basic_set * isl_basic_set_finalize(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_remove_empty_parts(__isl_take isl_map *map)
Definition isl_map.c:10513
__isl_give isl_basic_set * isl_basic_set_reset_space(__isl_take isl_basic_set *bset, __isl_take isl_space *space)
Definition isl_map.c:6443
int isl_basic_set_drop_inequality(__isl_keep isl_basic_set *bset, unsigned pos)
Definition isl_map.c:1804
__isl_give isl_map * isl_map_from_pw_aff_internal(__isl_take isl_pw_aff *pa)
__isl_give isl_basic_set * isl_basic_set_add_div_constraints(__isl_take isl_basic_set *bset, unsigned pos)
Definition isl_map.c:6183
int isl_basic_map_alloc_equality(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:1631
isl_bool isl_basic_map_contains(__isl_keep isl_basic_map *bmap, __isl_keep isl_vec *vec)
Definition isl_map.c:4203
isl_bool isl_map_plain_is_fixed(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos, isl_int *val)
Definition isl_map.c:10809
isl_bool isl_map_has_rational(__isl_keep isl_map *map)
Definition isl_map.c:1237
isl_bool isl_basic_map_compatible_range(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
Definition isl_map.c:370
__isl_give isl_basic_set * isl_basic_set_recession_cone(__isl_take isl_basic_set *bset)
__isl_keep isl_space * isl_set_peek_space(__isl_keep isl_set *set)
Definition isl_map.c:108
int isl_set_count_upto(__isl_keep isl_set *set, isl_int max, isl_int *count)
Definition isl_scan.c:278
__isl_give isl_basic_map * isl_basic_map_transform_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, __isl_take isl_mat *trans)
Definition isl_map.c:15954
__isl_give isl_basic_map * isl_basic_map_drop_unrelated_constraints(__isl_take isl_basic_map *bmap, __isl_take int *group)
__isl_give isl_basic_set * isl_basic_set_from_underlying_set(__isl_take isl_basic_set *bset, __isl_take isl_basic_set *like)
Definition isl_map.c:6369
isl_bool isl_basic_map_contains_point(__isl_keep isl_basic_map *bmap, __isl_keep isl_point *point)
Definition isl_point.c:619
isl_stat isl_basic_map_free_div(__isl_keep isl_basic_map *bmap, unsigned n)
Definition isl_map.c:1950
__isl_give isl_set * isl_set_grow(__isl_take isl_set *set, int n)
Definition isl_map.c:4019
isl_stat isl_map_check_transformation(__isl_keep isl_map *map)
Definition isl_map.c:9426
__isl_give isl_set * isl_set_preimage(__isl_take isl_set *set, __isl_take isl_mat *mat)
Definition isl_mat.c:1417
isl_bool isl_basic_map_div_is_integral(__isl_keep isl_basic_map *bmap, int div)
Definition isl_map.c:8596
__isl_give isl_basic_map * isl_basic_map_sort_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_plain_affine_hull(__isl_take isl_basic_set *bset)
isl_bool isl_basic_set_eq_is_stride(__isl_keep isl_basic_set *bset, int i)
Definition isl_map.c:1075
#define isl_basic_set
isl_stat isl_set_check_range(__isl_keep isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
isl_stat isl_basic_map_check_range(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_implicit_equalities(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_from_multi_aff_internal(__isl_take isl_multi_aff *ma)
uint32_t isl_basic_map_get_hash(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:11849
isl_bool isl_basic_map_equal_div_expr_except_constant(__isl_keep isl_basic_map *bmap1, int pos1, __isl_keep isl_basic_map *bmap2, int pos2)
Definition isl_map.c:15838
__isl_give isl_basic_map * isl_basic_map_normalize_constraints(__isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_basic_set_list_union(__isl_take isl_basic_set_list *list)
Definition isl_map.c:11314
__isl_give isl_basic_map * isl_basic_map_extend_constraints(__isl_take isl_basic_map *base, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:2045
isl_bool isl_basic_map_divs_known(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:8672
__isl_give isl_basic_map * isl_basic_map_reset_space(__isl_take isl_basic_map *bmap, __isl_take isl_space *space)
Definition isl_map.c:6415
__isl_give isl_map * isl_map_set_rational(__isl_take isl_map *map)
Definition isl_map.c:2267
__isl_give isl_basic_map * isl_basic_map_extend(__isl_take isl_basic_map *base, unsigned extra, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:1996
isl_bool isl_map_is_rational(__isl_keep isl_map *map)
Definition isl_map.c:1149
isl_bool isl_map_compatible_domain(__isl_keep isl_map *map, __isl_keep isl_set *set)
Definition isl_map.c:334
__isl_give isl_map * isl_map_add_basic_map(__isl_take isl_map *map, __isl_take isl_basic_map *bmap)
Definition isl_map.c:7016
int isl_map_may_be_set(__isl_keep isl_map *map)
Definition isl_map.c:6710
__isl_give isl_basic_map * isl_basic_map_overlying_set(__isl_take isl_basic_set *bset, __isl_take isl_basic_map *like)
Definition isl_map.c:6301
__isl_keep isl_space * isl_map_peek_space(__isl_keep const isl_map *map)
Definition isl_map.c:101
isl_stat isl_basic_set_check_equal_space(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
isl_bool isl_basic_map_is_set(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:6628
__isl_give isl_basic_map * isl_basic_map_align_divs(__isl_take isl_basic_map *dst, __isl_keep isl_basic_map *src)
Definition isl_map.c:10334
__isl_keep isl_space * isl_basic_set_peek_space(__isl_keep isl_basic_set *bset)
Definition isl_map.c:412
__isl_give isl_mat * isl_basic_set_extract_equalities(__isl_keep isl_basic_set *bset)
Definition isl_map.c:15802
__isl_give isl_map * isl_map_grow(__isl_take isl_map *map, int n)
Definition isl_map.c:3990
__isl_give isl_set * isl_set_gist_params_basic_set(__isl_take isl_set *set, __isl_take isl_basic_set *context)
__isl_give isl_basic_set * isl_basic_set_alloc(isl_ctx *ctx, unsigned nparam, unsigned dim, unsigned extra, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:1346
isl_bool isl_map_divs_known(__isl_keep isl_map *map)
Definition isl_map.c:8687
__isl_give isl_basic_set * isl_basic_set_from_local_space(__isl_take isl_local_space *ls)
Definition isl_map.c:593
isl_stat isl_set_dim_residue_class(__isl_keep isl_set *set, int pos, isl_int *modulo, isl_int *residue)
__isl_give isl_basic_map * isl_basic_map_swap_div(__isl_take isl_basic_map *bmap, int a, int b)
Definition isl_map.c:2483
__isl_give isl_set * isl_set_drop(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
Definition isl_map.c:2695
__isl_give isl_map * isl_map_dup(__isl_keep isl_map *map)
Definition isl_map.c:7003
__isl_give isl_basic_set * isl_basic_set_transform_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, __isl_take isl_mat *trans)
Definition isl_map.c:16000
__isl_give isl_basic_set * isl_basic_set_normalize_constraints(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_set_set_rational(__isl_take isl_set *set)
Definition isl_map.c:2285
__isl_give isl_set * isl_set_remove_empty_parts(__isl_take isl_set *set)
Definition isl_map.c:10526
isl_bool isl_map_space_has_equal_params(__isl_keep isl_map *map, __isl_keep isl_space *space)
Definition isl_map.c:13241
__isl_give isl_set * isl_set_realign(__isl_take isl_set *set, __isl_take isl_reordering *r)
Definition isl_map.c:13137
__isl_give isl_set * isl_set_substitute(__isl_take isl_set *set, unsigned pos, __isl_keep isl_aff *subs)
Definition isl_map.c:14181
__isl_give isl_basic_map * isl_basic_map_set_rational(__isl_take isl_basic_map *bmap)
Definition isl_map.c:2225
isl_bool isl_map_tuple_is_equal(__isl_keep isl_map *map1, enum isl_dim_type type1, __isl_keep isl_map *map2, enum isl_dim_type type2)
Definition isl_map.c:9401
int isl_basic_set_alloc_inequality(__isl_keep isl_basic_set *bset)
Definition isl_map.c:1762
__isl_give isl_basic_map * isl_basic_map_add_div_constraints(__isl_take isl_basic_map *bmap, unsigned div)
Definition isl_map.c:6166
isl_bool isl_map_is_set(__isl_keep isl_map *map)
Definition isl_map.c:6721
isl_bool isl_basic_map_plain_is_single_valued(__isl_keep isl_basic_map *bmap)
Definition isl_map.c:12555
__isl_keep isl_space * isl_basic_map_peek_space(__isl_keep const isl_basic_map *bmap)
Definition isl_map.c:404
int isl_basic_map_plain_cmp(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
Definition isl_map.c:10996
__isl_give isl_basic_set * isl_basic_set_sort_constraints(__isl_take isl_basic_set *bset)
Definition isl_map.c:10982
__isl_give isl_basic_map * isl_basic_map_alloc_space(__isl_take isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq)
Definition isl_map.c:1375
enum isl_fold type
Definition isl_test.c:3867
const char * pa
Definition isl_test.c:7173
const char * set
Definition isl_test.c:1364
const char * ma
Definition isl_test.c:7387
const char * map
Definition isl_test.c:1791
const char * pma
Definition isl_test.c:3019
const char * point
Definition isl_test.c:10511
const char * context
Definition isl_test.c:1792
const char * map1
Definition isl_test.c:365
const char * map2
Definition isl_test.c:366
a(0)
b(9)
isl_dim_type
Definition space_type.h:13
struct isl_blk block2
struct isl_vec * sample
struct isl_ctx * ctx
struct isl_blk block
isl_int ** ineq
isl_space * dim
isl_space * dim
struct isl_ctx * ctx
struct isl_basic_map * p[1]
unsigned flags
isl_basic_map * cached_simple_hull[2]
n
Definition youcefn.c:8