Lines Matching refs:umap

37 unsigned isl_union_map_dim(__isl_keep isl_union_map *umap,  in isl_union_map_dim()  argument
40 if (!umap) in isl_union_map_dim()
44 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_dim()
47 return isl_space_dim(umap->dim, type); in isl_union_map_dim()
61 __isl_give isl_id *isl_union_map_get_dim_id(__isl_keep isl_union_map *umap, in isl_union_map_get_dim_id() argument
64 if (!umap) in isl_union_map_get_dim_id()
68 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_get_dim_id()
71 return isl_space_get_dim_id(umap->dim, type, pos); in isl_union_map_get_dim_id()
96 isl_bool isl_union_map_is_params(__isl_keep isl_union_map *umap) in isl_union_map_is_params() argument
98 return isl_union_set_is_params(uset_from_umap(umap)); in isl_union_map_is_params()
104 isl_union_map *umap; in isl_union_map_alloc() local
110 umap = isl_calloc_type(space->ctx, isl_union_map); in isl_union_map_alloc()
111 if (!umap) { in isl_union_map_alloc()
116 umap->ref = 1; in isl_union_map_alloc()
117 umap->dim = space; in isl_union_map_alloc()
118 if (isl_hash_table_init(space->ctx, &umap->table, size) < 0) in isl_union_map_alloc()
119 return isl_union_map_free(umap); in isl_union_map_alloc()
121 return umap; in isl_union_map_alloc()
134 isl_ctx *isl_union_map_get_ctx(__isl_keep isl_union_map *umap) in isl_union_map_get_ctx() argument
136 return umap ? umap->dim->ctx : NULL; in isl_union_map_get_ctx()
146 __isl_keep isl_space *isl_union_map_peek_space(__isl_keep isl_union_map *umap) in isl_union_map_peek_space() argument
148 return umap ? umap->dim : NULL; in isl_union_map_peek_space()
151 __isl_give isl_space *isl_union_map_get_space(__isl_keep isl_union_map *umap) in isl_union_map_get_space() argument
153 return isl_space_copy(isl_union_map_peek_space(umap)); in isl_union_map_get_space()
160 int isl_union_map_find_dim_by_name(__isl_keep isl_union_map *umap, in isl_union_map_find_dim_by_name() argument
163 if (!umap) in isl_union_map_find_dim_by_name()
165 return isl_space_find_dim_by_name(umap->dim, type, name); in isl_union_map_find_dim_by_name()
182 isl_union_map **umap = (isl_union_map **)user; in add_map() local
184 *umap = isl_union_map_add_map(*umap, map); in add_map()
189 __isl_give isl_union_map *isl_union_map_dup(__isl_keep isl_union_map *umap) in isl_union_map_dup() argument
193 if (!umap) in isl_union_map_dup()
196 dup = isl_union_map_empty(isl_space_copy(umap->dim)); in isl_union_map_dup()
197 if (isl_union_map_foreach_map(umap, &add_map, &dup) < 0) in isl_union_map_dup()
205 __isl_give isl_union_map *isl_union_map_cow(__isl_take isl_union_map *umap) in isl_union_map_cow() argument
207 if (!umap) in isl_union_map_cow()
210 if (umap->ref == 1) in isl_union_map_cow()
211 return umap; in isl_union_map_cow()
212 umap->ref--; in isl_union_map_cow()
213 return isl_union_map_dup(umap); in isl_union_map_cow()
242 __isl_take isl_union_map *umap, __isl_take isl_space *model) in isl_union_map_align_params() argument
247 if (!umap || !model) in isl_union_map_align_params()
250 equal_params = isl_space_has_equal_params(umap->dim, model); in isl_union_map_align_params()
255 return umap; in isl_union_map_align_params()
258 data.exp = isl_parameter_alignment_reordering(umap->dim, model); in isl_union_map_align_params()
263 umap->table.n); in isl_union_map_align_params()
264 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_align_params()
269 isl_union_map_free(umap); in isl_union_map_align_params()
274 isl_union_map_free(umap); in isl_union_map_align_params()
315 __isl_give isl_union_map *isl_union_map_copy(__isl_keep isl_union_map *umap) in isl_union_map_copy() argument
317 if (!umap) in isl_union_map_copy()
320 umap->ref++; in isl_union_map_copy()
321 return umap; in isl_union_map_copy()
329 __isl_null isl_union_map *isl_union_map_free(__isl_take isl_union_map *umap) in isl_union_map_free() argument
331 if (!umap) in isl_union_map_free()
334 if (--umap->ref > 0) in isl_union_map_free()
337 isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_free()
339 isl_hash_table_clear(&umap->table); in isl_union_map_free()
340 isl_space_free(umap->dim); in isl_union_map_free()
341 free(umap); in isl_union_map_free()
352 isl_bool isl_union_map_space_has_equal_params(__isl_keep isl_union_map *umap, in isl_union_map_space_has_equal_params() argument
357 umap_space = isl_union_map_peek_space(umap); in isl_union_map_space_has_equal_params()
377 __isl_give isl_union_map *isl_union_map_add_map(__isl_take isl_union_map *umap, in isl_union_map_add_map() argument
384 if (!map || !umap) in isl_union_map_add_map()
389 return umap; in isl_union_map_add_map()
392 aligned = isl_map_space_has_equal_params(map, umap->dim); in isl_union_map_add_map()
396 umap = isl_union_map_align_params(umap, isl_map_get_space(map)); in isl_union_map_add_map()
397 map = isl_map_align_params(map, isl_union_map_get_space(umap)); in isl_union_map_add_map()
400 umap = isl_union_map_cow(umap); in isl_union_map_add_map()
402 if (!map || !umap) in isl_union_map_add_map()
406 entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash, in isl_union_map_add_map()
420 return umap; in isl_union_map_add_map()
423 isl_union_map_free(umap); in isl_union_map_add_map()
436 isl_union_map *umap; in isl_union_map_from_map() local
443 umap = isl_union_map_empty(dim); in isl_union_map_from_map()
444 umap = isl_union_map_add_map(umap, map); in isl_union_map_from_map()
446 return umap; in isl_union_map_from_map()
481 int isl_union_map_n_map(__isl_keep isl_union_map *umap) in isl_union_map_n_map() argument
483 return umap ? umap->table.n : 0; in isl_union_map_n_map()
491 isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap, in isl_union_map_foreach_map() argument
496 if (!umap) in isl_union_map_foreach_map()
499 return isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_foreach_map()
537 isl_bool isl_union_map_every_map(__isl_keep isl_union_map *umap, in isl_union_map_every_map() argument
543 if (!umap) in isl_union_map_every_map()
546 r = isl_hash_table_foreach(isl_union_map_get_ctx(umap), &umap->table, in isl_union_map_every_map()
574 __isl_keep isl_union_map *umap) in isl_union_map_get_map_list() argument
580 if (!umap) in isl_union_map_get_map_list()
582 ctx = isl_union_map_get_ctx(umap); in isl_union_map_get_map_list()
583 n_maps = isl_union_map_n_map(umap); in isl_union_map_get_map_list()
586 if (isl_union_map_foreach_map(umap, &add_list_map, &list) < 0) in isl_union_map_get_map_list()
611 __isl_give isl_map *isl_map_from_union_map(__isl_take isl_union_map *umap) in isl_map_from_union_map() argument
616 if (!umap) in isl_map_from_union_map()
618 ctx = isl_union_map_get_ctx(umap); in isl_map_from_union_map()
619 if (umap->table.n != 1) in isl_map_from_union_map()
624 isl_hash_table_foreach(ctx, &umap->table, &copy_map, &map); in isl_map_from_union_map()
626 isl_union_map_free(umap); in isl_map_from_union_map()
630 isl_union_map_free(umap); in isl_map_from_union_map()
642 __isl_give isl_map *isl_union_map_extract_map(__isl_keep isl_union_map *umap, in isl_union_map_extract_map() argument
650 space = isl_space_align_params(space, isl_union_map_get_space(umap)); in isl_union_map_extract_map()
651 if (!umap || !space) in isl_union_map_extract_map()
655 entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash, in isl_union_map_extract_map()
674 isl_bool isl_union_map_contains(__isl_keep isl_union_map *umap, in isl_union_map_contains() argument
680 if (!umap || !space) in isl_union_map_contains()
684 entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash, in isl_union_map_contains()
945 static __isl_give isl_union_map *gen_bin_set_op(__isl_take isl_union_map *umap, in gen_bin_set_op() argument
950 umap = isl_union_map_align_params(umap, isl_set_get_space(set)); in gen_bin_set_op()
951 set = isl_set_align_params(set, isl_union_map_get_space(umap)); in gen_bin_set_op()
953 if (!umap || !set) in gen_bin_set_op()
957 data.res = isl_union_map_alloc(isl_space_copy(umap->dim), in gen_bin_set_op()
958 umap->table.n); in gen_bin_set_op()
959 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in gen_bin_set_op()
963 isl_union_map_free(umap); in gen_bin_set_op()
967 isl_union_map_free(umap); in gen_bin_set_op()
978 __isl_take isl_union_map *umap, __isl_take isl_set *set) in isl_union_map_intersect_params() argument
987 return umap; in isl_union_map_intersect_params()
990 return gen_bin_set_op(umap, set, &intersect_params_entry); in isl_union_map_intersect_params()
992 isl_union_map_free(umap); in isl_union_map_intersect_params()
1004 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_intersect_params() argument
1006 return isl_union_map_intersect_params(umap, in union_map_intersect_params()
1011 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_gist_params() argument
1013 return isl_union_map_gist_params(umap, isl_set_from_union_set(uset)); in union_map_gist_params()
1135 __isl_take isl_union_map *umap, __isl_take isl_set *set) in isl_union_map_gist_params() argument
1137 return gen_bin_set_op(umap, set, &gist_params_entry); in isl_union_map_gist_params()
1146 __isl_give isl_union_map *isl_union_map_gist(__isl_take isl_union_map *umap, in isl_union_map_gist() argument
1149 return match_bin_op(umap, context, &isl_map_gist); in isl_union_map_gist()
1166 __isl_take isl_union_map *umap, __isl_take isl_union_map *context) in isl_union_map_plain_gist() argument
1168 return match_bin_op(umap, context, &isl_map_plain_gist); in isl_union_map_plain_gist()
1233 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_intersect_domain() argument
1240 return gen_bin_op(umap, uset, &control); in union_map_intersect_domain()
1248 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_intersect_domain() argument
1251 return union_map_intersect_params(umap, uset); in isl_union_map_intersect_domain()
1253 return union_map_intersect_domain(umap, uset); in isl_union_map_intersect_domain()
1259 __isl_take isl_union_map *umap, __isl_take isl_union_set *dom) in isl_union_map_subtract_domain() argument
1267 return gen_bin_op(umap, dom, &control); in isl_union_map_subtract_domain()
1273 __isl_take isl_union_map *umap, __isl_take isl_union_set *dom) in isl_union_map_subtract_range() argument
1281 return gen_bin_op(umap, dom, &control); in isl_union_map_subtract_range()
1287 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_gist_domain() argument
1294 return gen_bin_op(umap, uset, &control); in union_map_gist_domain()
1302 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_gist_domain() argument
1305 return union_map_gist_params(umap, uset); in isl_union_map_gist_domain()
1307 return union_map_gist_domain(umap, uset); in isl_union_map_gist_domain()
1313 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_gist_range() argument
1320 return gen_bin_op(umap, uset, &control); in isl_union_map_gist_range()
1324 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_intersect_range() argument
1331 return gen_bin_op(umap, uset, &control); in isl_union_map_intersect_range()
1339 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor) in isl_union_map_intersect_range_factor_range() argument
1347 return gen_bin_op(umap, factor, &control); in isl_union_map_intersect_range_factor_range()
1441 __isl_take isl_union_set *uset, __isl_take isl_union_map *umap) in isl_union_set_apply() argument
1443 return isl_union_map_apply_range(uset, umap); in isl_union_set_apply()
1721 static __isl_give isl_union_map *un_op(__isl_take isl_union_map *umap, in un_op() argument
1726 if (!umap) in un_op()
1729 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in un_op()
1731 return isl_union_map_free(umap)); in un_op()
1733 if (control->total && umap->ref == 1) in un_op()
1736 data.res = umap; in un_op()
1740 space = isl_union_map_get_space(umap); in un_op()
1741 data.res = isl_union_map_alloc(space, umap->table.n); in un_op()
1743 if (isl_hash_table_foreach(isl_union_map_get_ctx(umap), in un_op()
1744 &umap->table, &un_entry, &data) < 0) in un_op()
1749 isl_union_map_free(umap); in un_op()
1778 static __isl_give isl_union_map *total(__isl_take isl_union_map *umap, in total() argument
1786 return un_op(umap, &control); in total()
1797 __isl_take isl_union_map *umap) in isl_union_map_affine_hull() argument
1799 return total(umap, &isl_map_affine_hull_map); in isl_union_map_affine_hull()
1838 __isl_take isl_union_map *umap) in isl_union_map_polyhedral_hull() argument
1840 return total(umap, &isl_map_polyhedral_hull_map); in isl_union_map_polyhedral_hull()
1859 __isl_take isl_union_map *umap) in isl_union_map_simple_hull() argument
1861 return total(umap, &isl_map_simple_hull_map); in isl_union_map_simple_hull()
1870 static __isl_give isl_union_map *inplace(__isl_take isl_union_map *umap, in inplace() argument
1878 return un_op(umap, &control); in inplace()
1886 __isl_take isl_union_map *umap) in isl_union_map_remove_redundancies() argument
1888 return inplace(umap, &isl_map_remove_redundancies); in isl_union_map_remove_redundancies()
1900 __isl_take isl_union_map *umap) in isl_union_map_coalesce() argument
1902 return inplace(umap, &isl_map_coalesce); in isl_union_map_coalesce()
1912 __isl_take isl_union_map *umap) in isl_union_map_detect_equalities() argument
1914 return inplace(umap, &isl_map_detect_equalities); in isl_union_map_detect_equalities()
1924 __isl_take isl_union_map *umap) in isl_union_map_compute_divs() argument
1926 return inplace(umap, &isl_map_compute_divs); in isl_union_map_compute_divs()
1936 __isl_take isl_union_map *umap) in isl_union_map_lexmin() argument
1938 return total(umap, &isl_map_lexmin); in isl_union_map_lexmin()
1948 __isl_take isl_union_map *umap) in isl_union_map_lexmax() argument
1950 return total(umap, &isl_map_lexmax); in isl_union_map_lexmax()
1970 __isl_give isl_union_map *isl_union_map_universe(__isl_take isl_union_map *umap) in isl_union_map_universe() argument
1975 return un_op(umap, &control); in isl_union_map_universe()
1983 __isl_give isl_union_map *isl_union_map_reverse(__isl_take isl_union_map *umap) in isl_union_map_reverse() argument
1988 return un_op(umap, &control); in isl_union_map_reverse()
1993 __isl_give isl_set *isl_union_map_params(__isl_take isl_union_map *umap) in isl_union_map_params() argument
2000 empty = isl_union_map_is_empty(umap); in isl_union_map_params()
2005 space = isl_union_map_get_space(umap); in isl_union_map_params()
2006 isl_union_map_free(umap); in isl_union_map_params()
2009 return isl_set_from_union_set(un_op(umap, &control)); in isl_union_map_params()
2011 isl_union_map_free(umap); in isl_union_map_params()
2022 __isl_give isl_union_set *isl_union_map_domain(__isl_take isl_union_map *umap) in isl_union_map_domain() argument
2027 return un_op(umap, &control); in isl_union_map_domain()
2030 __isl_give isl_union_set *isl_union_map_range(__isl_take isl_union_map *umap) in isl_union_map_range() argument
2035 return un_op(umap, &control); in isl_union_map_range()
2039 __isl_take isl_union_map *umap) in isl_union_map_domain_map() argument
2044 return un_op(umap, &control); in isl_union_map_domain_map()
2068 __isl_take isl_union_map *umap) in isl_union_map_domain_map_union_pw_multi_aff() argument
2072 res = isl_union_pw_multi_aff_empty(isl_union_map_get_space(umap)); in isl_union_map_domain_map_union_pw_multi_aff()
2073 if (isl_union_map_foreach_map(umap, &domain_map_upma, &res) < 0) in isl_union_map_domain_map_union_pw_multi_aff()
2076 isl_union_map_free(umap); in isl_union_map_domain_map_union_pw_multi_aff()
2081 __isl_take isl_union_map *umap) in isl_union_map_range_map() argument
2086 return un_op(umap, &control); in isl_union_map_range_map()
2112 __isl_give isl_union_set *isl_union_map_deltas(__isl_take isl_union_map *umap) in isl_union_map_deltas() argument
2118 return un_op(umap, &control); in isl_union_map_deltas()
2122 __isl_take isl_union_map *umap) in isl_union_map_deltas_map() argument
2128 return un_op(umap, &control); in isl_union_map_deltas_map()
2175 __isl_take isl_union_map *umap) in isl_union_map_domain_factor_domain() argument
2183 return un_op(umap, &control); in isl_union_map_domain_factor_domain()
2190 __isl_take isl_union_map *umap) in isl_union_map_domain_factor_range() argument
2198 return un_op(umap, &control); in isl_union_map_domain_factor_range()
2205 __isl_take isl_union_map *umap) in isl_union_map_range_factor_domain() argument
2213 return un_op(umap, &control); in isl_union_map_range_factor_domain()
2220 __isl_take isl_union_map *umap) in isl_union_map_range_factor_range() argument
2228 return un_op(umap, &control); in isl_union_map_range_factor_range()
2235 __isl_take isl_union_map *umap) in isl_union_map_factor_domain() argument
2243 return un_op(umap, &control); in isl_union_map_factor_domain()
2250 __isl_take isl_union_map *umap) in isl_union_map_factor_range() argument
2258 return un_op(umap, &control); in isl_union_map_factor_range()
2272 __isl_give isl_union_set *isl_union_map_wrap(__isl_take isl_union_map *umap) in isl_union_map_wrap() argument
2277 return un_op(umap, &control); in isl_union_map_wrap()
2476 __isl_give isl_basic_map *isl_union_map_sample(__isl_take isl_union_map *umap) in isl_union_map_sample() argument
2480 if (!umap) in isl_union_map_sample()
2483 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_sample()
2489 sample = isl_basic_map_empty(isl_union_map_get_space(umap)); in isl_union_map_sample()
2491 isl_union_map_free(umap); in isl_union_map_sample()
2495 isl_union_map_free(umap); in isl_union_map_sample()
2532 static isl_bool union_map_forall(__isl_keep isl_union_map *umap, in union_map_forall() argument
2537 if (!umap) in union_map_forall()
2540 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in union_map_forall()
2570 static isl_bool union_map_forall_user(__isl_keep isl_union_map *umap, in union_map_forall_user() argument
2575 if (!umap) in union_map_forall_user()
2578 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in union_map_forall_user()
2587 isl_bool isl_union_map_plain_is_empty(__isl_keep isl_union_map *umap) in isl_union_map_plain_is_empty() argument
2589 if (!umap) in isl_union_map_plain_is_empty()
2591 return isl_union_map_n_map(umap) == 0; in isl_union_map_plain_is_empty()
2594 isl_bool isl_union_map_is_empty(__isl_keep isl_union_map *umap) in isl_union_map_is_empty() argument
2596 return union_map_forall(umap, &isl_map_is_empty); in isl_union_map_is_empty()
2630 static isl_bool single_map_is_single_valued(__isl_keep isl_union_map *umap) in single_map_is_single_valued() argument
2635 umap = isl_union_map_copy(umap); in single_map_is_single_valued()
2636 map = isl_map_from_union_map(umap); in single_map_is_single_valued()
2649 isl_union_map *umap; member
2671 isl_union_map *umap, *test; in single_valued_on_domain() local
2673 umap = isl_union_map_copy(data->umap); in single_valued_on_domain()
2674 umap = isl_union_map_intersect_domain(umap, in single_valued_on_domain()
2677 if (isl_union_map_n_map(umap) == 1) { in single_valued_on_domain()
2678 data->sv = single_map_is_single_valued(umap); in single_valued_on_domain()
2679 isl_union_map_free(umap); in single_valued_on_domain()
2681 test = isl_union_map_reverse(isl_union_map_copy(umap)); in single_valued_on_domain()
2682 test = isl_union_map_apply_range(test, umap); in single_valued_on_domain()
2700 isl_bool isl_union_map_is_single_valued(__isl_keep isl_union_map *umap) in isl_union_map_is_single_valued() argument
2706 if (isl_union_map_n_map(umap) == 1) in isl_union_map_is_single_valued()
2707 return single_map_is_single_valued(umap); in isl_union_map_is_single_valued()
2709 universe = isl_union_map_universe(isl_union_map_copy(umap)); in isl_union_map_is_single_valued()
2713 data.umap = umap; in isl_union_map_is_single_valued()
2722 isl_bool isl_union_map_is_injective(__isl_keep isl_union_map *umap) in isl_union_map_is_injective() argument
2726 umap = isl_union_map_copy(umap); in isl_union_map_is_injective()
2727 umap = isl_union_map_reverse(umap); in isl_union_map_is_injective()
2728 in = isl_union_map_is_single_valued(umap); in isl_union_map_is_injective()
2729 isl_union_map_free(umap); in isl_union_map_is_injective()
2774 __isl_keep isl_union_map *umap) in isl_union_map_plain_is_not_identity() argument
2779 if (isl_union_map_foreach_map(umap, &map_plain_is_not_identity, in isl_union_map_plain_is_not_identity()
2812 isl_bool isl_union_map_is_identity(__isl_keep isl_union_map *umap) in isl_union_map_is_identity() argument
2817 non_identity = isl_union_map_plain_is_not_identity(umap); in isl_union_map_is_identity()
2822 if (isl_union_map_foreach_map(umap, &map_is_identity, &identity) < 0 && in isl_union_map_is_identity()
2896 static isl_bool plain_injective_on_range(__isl_take isl_union_map *umap,
2960 static isl_bool plain_injective_on_range(__isl_take isl_union_map *umap, in plain_injective_on_range() argument
2967 ctx = isl_union_map_get_ctx(umap); in plain_injective_on_range()
2969 n = isl_union_map_n_map(umap); in plain_injective_on_range()
2970 if (!umap) in plain_injective_on_range()
2974 isl_union_map_free(umap); in plain_injective_on_range()
2979 isl_union_map_free(umap); in plain_injective_on_range()
2993 fixed = union_map_forall_user(umap, &fixed_at_pos, &data); in plain_injective_on_range()
2998 dim = isl_union_map_get_space(umap); in plain_injective_on_range()
3000 isl_union_map_free(umap); in plain_injective_on_range()
3005 isl_union_map_free(umap); in plain_injective_on_range()
3010 isl_union_map_free(umap); in plain_injective_on_range()
3020 isl_union_map *umap = user; in plain_injective_on_range_wrap() local
3022 umap = isl_union_map_copy(umap); in plain_injective_on_range_wrap()
3023 umap = isl_union_map_intersect_range(umap, in plain_injective_on_range_wrap()
3025 return plain_injective_on_range(umap, 0, isl_set_dim(ran, isl_dim_set)); in plain_injective_on_range_wrap()
3034 isl_bool isl_union_map_plain_is_injective(__isl_keep isl_union_map *umap) in isl_union_map_plain_is_injective() argument
3040 in = union_map_forall(umap, &isl_map_plain_is_injective); in isl_union_map_plain_is_injective()
3046 univ = isl_union_map_universe(isl_union_map_copy(umap)); in isl_union_map_plain_is_injective()
3049 in = union_map_forall_user(ran, &plain_injective_on_range_wrap, umap); in isl_union_map_plain_is_injective()
3056 isl_bool isl_union_map_is_bijective(__isl_keep isl_union_map *umap) in isl_union_map_is_bijective() argument
3060 sv = isl_union_map_is_single_valued(umap); in isl_union_map_is_bijective()
3064 return isl_union_map_is_injective(umap); in isl_union_map_is_bijective()
3067 __isl_give isl_union_map *isl_union_map_zip(__isl_take isl_union_map *umap) in isl_union_map_zip() argument
3075 return un_op(umap, &control); in isl_union_map_zip()
3081 __isl_give isl_union_map *isl_union_map_uncurry(__isl_take isl_union_map *umap) in isl_union_map_uncurry() argument
3089 return un_op(umap, &control); in isl_union_map_uncurry()
3095 __isl_give isl_union_map *isl_union_map_curry(__isl_take isl_union_map *umap) in isl_union_map_curry() argument
3103 return un_op(umap, &control); in isl_union_map_curry()
3110 __isl_take isl_union_map *umap) in isl_union_map_range_curry() argument
3118 return un_op(umap, &control); in isl_union_map_range_curry()
3290 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma, in preimage_pw_multi_aff() argument
3299 umap = isl_union_map_align_params(umap, in preimage_pw_multi_aff()
3301 pma = isl_pw_multi_aff_align_params(pma, isl_union_map_get_space(umap)); in preimage_pw_multi_aff()
3303 if (!umap || !pma) in preimage_pw_multi_aff()
3306 ctx = isl_union_map_get_ctx(umap); in preimage_pw_multi_aff()
3307 space = isl_union_map_get_space(umap); in preimage_pw_multi_aff()
3310 data.res = isl_union_map_alloc(space, umap->table.n); in preimage_pw_multi_aff()
3313 if (isl_hash_table_foreach(ctx, &umap->table, &preimage_entry, in preimage_pw_multi_aff()
3318 isl_union_map_free(umap); in preimage_pw_multi_aff()
3322 isl_union_map_free(umap); in preimage_pw_multi_aff()
3335 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma) in isl_union_map_preimage_domain_pw_multi_aff() argument
3337 return preimage_pw_multi_aff(umap, pma, &domain_match, in isl_union_map_preimage_domain_pw_multi_aff()
3349 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma) in isl_union_map_preimage_range_pw_multi_aff() argument
3351 return preimage_pw_multi_aff(umap, pma, &range_match, in isl_union_map_preimage_range_pw_multi_aff()
3376 __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma) in isl_union_map_preimage_domain_multi_aff() argument
3378 return isl_union_map_preimage_domain_pw_multi_aff(umap, in isl_union_map_preimage_domain_multi_aff()
3390 __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma) in isl_union_map_preimage_range_multi_aff() argument
3392 return isl_union_map_preimage_range_pw_multi_aff(umap, in isl_union_map_preimage_range_multi_aff()
3465 __isl_take isl_union_map *umap, __isl_take isl_multi_pw_aff *mpa, in preimage_multi_pw_aff() argument
3474 umap = isl_union_map_align_params(umap, in preimage_multi_pw_aff()
3476 mpa = isl_multi_pw_aff_align_params(mpa, isl_union_map_get_space(umap)); in preimage_multi_pw_aff()
3478 if (!umap || !mpa) in preimage_multi_pw_aff()
3481 ctx = isl_union_map_get_ctx(umap); in preimage_multi_pw_aff()
3482 space = isl_union_map_get_space(umap); in preimage_multi_pw_aff()
3485 data.res = isl_union_map_alloc(space, umap->table.n); in preimage_multi_pw_aff()
3488 if (isl_hash_table_foreach(ctx, &umap->table, &preimage_mpa_entry, in preimage_multi_pw_aff()
3493 isl_union_map_free(umap); in preimage_multi_pw_aff()
3497 isl_union_map_free(umap); in preimage_multi_pw_aff()
3510 __isl_take isl_union_map *umap, __isl_take isl_multi_pw_aff *mpa) in isl_union_map_preimage_domain_multi_pw_aff() argument
3512 return preimage_multi_pw_aff(umap, mpa, &domain_match, in isl_union_map_preimage_domain_multi_pw_aff()
3523 isl_union_map *umap; member
3525 __isl_give isl_union_map *(*fn)(__isl_take isl_union_map *umap,
3535 isl_union_map *umap; in preimage_upma() local
3537 umap = isl_union_map_copy(data->umap); in preimage_upma()
3538 umap = data->fn(umap, pma); in preimage_upma()
3539 data->res = isl_union_map_union(data->res, umap); in preimage_upma()
3551 __isl_take isl_union_map *umap, in preimage_union_pw_multi_aff() argument
3553 __isl_give isl_union_map *(*fn)(__isl_take isl_union_map *umap, in preimage_union_pw_multi_aff() argument
3558 data.umap = umap; in preimage_union_pw_multi_aff()
3559 data.res = isl_union_map_empty(isl_union_map_get_space(umap)); in preimage_union_pw_multi_aff()
3565 isl_union_map_free(umap); in preimage_union_pw_multi_aff()
3580 __isl_take isl_union_map *umap, in isl_union_map_preimage_domain_union_pw_multi_aff() argument
3583 return preimage_union_pw_multi_aff(umap, upma, in isl_union_map_preimage_domain_union_pw_multi_aff()
3596 __isl_take isl_union_map *umap, in isl_union_map_preimage_range_union_pw_multi_aff() argument
3599 return preimage_union_pw_multi_aff(umap, upma, in isl_union_map_preimage_range_union_pw_multi_aff()
3622 __isl_take isl_union_map *umap) in isl_union_map_reset_user() argument
3624 umap = isl_union_map_cow(umap); in isl_union_map_reset_user()
3625 if (!umap) in isl_union_map_reset_user()
3627 umap->dim = isl_space_reset_user(umap->dim); in isl_union_map_reset_user()
3628 if (!umap->dim) in isl_union_map_reset_user()
3629 return isl_union_map_free(umap); in isl_union_map_reset_user()
3630 return total(umap, &isl_map_reset_user); in isl_union_map_reset_user()
3646 __isl_take isl_union_map *umap) in isl_union_map_remove_divs() argument
3648 return total(umap, &isl_map_remove_divs); in isl_union_map_remove_divs()
3692 __isl_take isl_union_map *umap, in isl_union_map_project_out() argument
3698 if (!umap) in isl_union_map_project_out()
3702 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_project_out()
3704 return isl_union_map_free(umap)); in isl_union_map_project_out()
3706 space = isl_union_map_get_space(umap); in isl_union_map_project_out()
3709 if (isl_union_map_foreach_map(umap, &project_out, &data) < 0) in isl_union_map_project_out()
3712 isl_union_map_free(umap); in isl_union_map_project_out()
3721 __isl_take isl_union_map *umap) in isl_union_map_project_out_all_params() argument
3725 if (!umap) in isl_union_map_project_out_all_params()
3727 n = isl_union_map_dim(umap, isl_dim_param); in isl_union_map_project_out_all_params()
3728 return isl_union_map_project_out(umap, isl_dim_param, 0, n); in isl_union_map_project_out_all_params()
3773 isl_bool isl_union_map_involves_dims(__isl_keep isl_union_map *umap, in isl_union_map_involves_dims() argument
3780 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_involves_dims()
3783 excludes = union_map_forall_user(umap, &map_excludes, &data); in isl_union_map_involves_dims()
3828 __isl_take isl_union_map *umap, __isl_take isl_space *space) in isl_union_map_reset_range_space() argument
3832 data.res = isl_union_map_empty(isl_union_map_get_space(umap)); in isl_union_map_reset_range_space()
3833 if (isl_union_map_foreach_map(umap, &reset_range_space, &data) < 0) in isl_union_map_reset_range_space()
3837 isl_union_map_free(umap); in isl_union_map_reset_range_space()
3843 static isl_stat check_union_map_space_equal_dim(__isl_keep isl_union_map *umap, in check_union_map_space_equal_dim() argument
3848 if (!umap || !space) in check_union_map_space_equal_dim()
3850 dim1 = isl_union_map_dim(umap, isl_dim_param); in check_union_map_space_equal_dim()
3854 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in check_union_map_space_equal_dim()
3890 __isl_take isl_union_map *umap, __isl_take isl_space *space) in isl_union_map_reset_equal_dim_space() argument
3896 umap_space = isl_union_map_peek_space(umap); in isl_union_map_reset_equal_dim_space()
3902 return umap; in isl_union_map_reset_equal_dim_space()
3904 if (check_union_map_space_equal_dim(umap, space) < 0) in isl_union_map_reset_equal_dim_space()
3908 if (isl_union_map_foreach_map(umap, &reset_params, &data) < 0) in isl_union_map_reset_equal_dim_space()
3912 isl_union_map_free(umap); in isl_union_map_reset_equal_dim_space()
3915 isl_union_map_free(umap); in isl_union_map_reset_equal_dim_space()
3961 __isl_take isl_union_map *umap, __isl_keep isl_multi_union_pw_aff *mupa) in intersect_explicit_domain() argument
3968 return isl_union_map_free(umap); in intersect_explicit_domain()
3970 return umap; in intersect_explicit_domain()
3976 return isl_union_map_free(umap); in intersect_explicit_domain()
3982 umap = isl_union_map_intersect_params(umap, set); in intersect_explicit_domain()
3983 return umap; in intersect_explicit_domain()
3985 umap = isl_union_map_intersect_domain(umap, isl_union_set_copy(dom)); in intersect_explicit_domain()
3986 umap = isl_union_map_intersect_range(umap, dom); in intersect_explicit_domain()
3987 return umap; in intersect_explicit_domain()
3995 __isl_take isl_union_map *umap, __isl_take isl_multi_union_pw_aff *mupa, in isl_union_map_order_at_multi_union_pw_aff() argument
4001 umap = isl_union_map_align_params(umap, in isl_union_map_order_at_multi_union_pw_aff()
4004 isl_union_map_get_space(umap)); in isl_union_map_order_at_multi_union_pw_aff()
4005 umap = intersect_explicit_domain(umap, mupa); in isl_union_map_order_at_multi_union_pw_aff()
4008 data.res = isl_union_map_empty(isl_union_map_get_space(umap)); in isl_union_map_order_at_multi_union_pw_aff()
4009 if (isl_union_map_foreach_map(umap, &order_at, &data) < 0) in isl_union_map_order_at_multi_union_pw_aff()
4013 isl_union_map_free(umap); in isl_union_map_order_at_multi_union_pw_aff()
4021 __isl_take isl_union_map *umap, in isl_union_map_eq_at_multi_union_pw_aff() argument
4024 return isl_union_map_order_at_multi_union_pw_aff(umap, mupa, in isl_union_map_eq_at_multi_union_pw_aff()
4032 __isl_take isl_union_map *umap, in isl_union_map_lex_lt_at_multi_union_pw_aff() argument
4035 return isl_union_map_order_at_multi_union_pw_aff(umap, mupa, in isl_union_map_lex_lt_at_multi_union_pw_aff()
4043 __isl_take isl_union_map *umap, in isl_union_map_lex_gt_at_multi_union_pw_aff() argument
4046 return isl_union_map_order_at_multi_union_pw_aff(umap, mupa, in isl_union_map_lex_gt_at_multi_union_pw_aff()
4095 uint32_t isl_union_map_get_hash(__isl_keep isl_union_map *umap) in isl_union_map_get_hash() argument
4099 if (!umap) in isl_union_map_get_hash()
4103 if (isl_union_map_foreach_map(umap, &add_hash, &hash) < 0) in isl_union_map_get_hash()
4214 __isl_take isl_union_map *umap, in isl_union_map_remove_map_if() argument
4223 return un_op(umap, &control); in isl_union_map_remove_map_if()