Lines Matching refs:umap

38 isl_size isl_union_map_dim(__isl_keep isl_union_map *umap,  in isl_union_map_dim()  argument
41 if (!umap) in isl_union_map_dim()
45 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_dim()
48 return isl_space_dim(umap->dim, type); in isl_union_map_dim()
62 __isl_give isl_id *isl_union_map_get_dim_id(__isl_keep isl_union_map *umap, in isl_union_map_get_dim_id() argument
65 if (!umap) in isl_union_map_get_dim_id()
69 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_get_dim_id()
72 return isl_space_get_dim_id(umap->dim, type, pos); in isl_union_map_get_dim_id()
97 isl_bool isl_union_map_is_params(__isl_keep isl_union_map *umap) in isl_union_map_is_params() argument
99 return isl_union_set_is_params(uset_from_umap(umap)); in isl_union_map_is_params()
105 isl_union_map *umap; in isl_union_map_alloc() local
111 umap = isl_calloc_type(space->ctx, isl_union_map); in isl_union_map_alloc()
112 if (!umap) { in isl_union_map_alloc()
117 umap->ref = 1; in isl_union_map_alloc()
118 umap->dim = space; in isl_union_map_alloc()
119 if (isl_hash_table_init(space->ctx, &umap->table, size) < 0) in isl_union_map_alloc()
120 return isl_union_map_free(umap); in isl_union_map_alloc()
122 return umap; in isl_union_map_alloc()
163 isl_ctx *isl_union_map_get_ctx(__isl_keep isl_union_map *umap) in isl_union_map_get_ctx() argument
165 return umap ? umap->dim->ctx : NULL; in isl_union_map_get_ctx()
175 __isl_keep isl_space *isl_union_map_peek_space(__isl_keep isl_union_map *umap) in isl_union_map_peek_space() argument
177 return umap ? umap->dim : NULL; in isl_union_map_peek_space()
187 __isl_give isl_space *isl_union_map_get_space(__isl_keep isl_union_map *umap) in isl_union_map_get_space() argument
189 return isl_space_copy(isl_union_map_peek_space(umap)); in isl_union_map_get_space()
196 int isl_union_map_find_dim_by_name(__isl_keep isl_union_map *umap, in isl_union_map_find_dim_by_name() argument
199 if (!umap) in isl_union_map_find_dim_by_name()
201 return isl_space_find_dim_by_name(umap->dim, type, name); in isl_union_map_find_dim_by_name()
218 isl_union_map **umap = (isl_union_map **)user; in add_map() local
220 *umap = isl_union_map_add_map(*umap, map); in add_map()
225 __isl_give isl_union_map *isl_union_map_dup(__isl_keep isl_union_map *umap) in isl_union_map_dup() argument
229 if (!umap) in isl_union_map_dup()
232 dup = isl_union_map_empty(isl_space_copy(umap->dim)); in isl_union_map_dup()
233 if (isl_union_map_foreach_map(umap, &add_map, &dup) < 0) in isl_union_map_dup()
241 __isl_give isl_union_map *isl_union_map_cow(__isl_take isl_union_map *umap) in isl_union_map_cow() argument
243 if (!umap) in isl_union_map_cow()
246 if (umap->ref == 1) in isl_union_map_cow()
247 return umap; in isl_union_map_cow()
248 umap->ref--; in isl_union_map_cow()
249 return isl_union_map_dup(umap); in isl_union_map_cow()
278 __isl_take isl_union_map *umap, __isl_take isl_space *model) in isl_union_map_align_params() argument
283 if (!umap || !model) in isl_union_map_align_params()
286 equal_params = isl_space_has_equal_params(umap->dim, model); in isl_union_map_align_params()
291 return umap; in isl_union_map_align_params()
294 data.exp = isl_parameter_alignment_reordering(umap->dim, model); in isl_union_map_align_params()
299 umap->table.n); in isl_union_map_align_params()
300 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_align_params()
305 isl_union_map_free(umap); in isl_union_map_align_params()
310 isl_union_map_free(umap); in isl_union_map_align_params()
351 __isl_give isl_union_map *isl_union_map_copy(__isl_keep isl_union_map *umap) in isl_union_map_copy() argument
353 if (!umap) in isl_union_map_copy()
356 umap->ref++; in isl_union_map_copy()
357 return umap; in isl_union_map_copy()
365 __isl_null isl_union_map *isl_union_map_free(__isl_take isl_union_map *umap) in isl_union_map_free() argument
367 if (!umap) in isl_union_map_free()
370 if (--umap->ref > 0) in isl_union_map_free()
373 isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_free()
375 isl_hash_table_clear(&umap->table); in isl_union_map_free()
376 isl_space_free(umap->dim); in isl_union_map_free()
377 free(umap); in isl_union_map_free()
388 isl_bool isl_union_map_space_has_equal_params(__isl_keep isl_union_map *umap, in isl_union_map_space_has_equal_params() argument
393 umap_space = isl_union_map_peek_space(umap); in isl_union_map_space_has_equal_params()
413 __isl_give isl_union_map *isl_union_map_add_map(__isl_take isl_union_map *umap, in isl_union_map_add_map() argument
420 if (!map || !umap) in isl_union_map_add_map()
425 return umap; in isl_union_map_add_map()
428 aligned = isl_map_space_has_equal_params(map, umap->dim); in isl_union_map_add_map()
432 umap = isl_union_map_align_params(umap, isl_map_get_space(map)); in isl_union_map_add_map()
433 map = isl_map_align_params(map, isl_union_map_get_space(umap)); in isl_union_map_add_map()
436 umap = isl_union_map_cow(umap); in isl_union_map_add_map()
438 if (!map || !umap) in isl_union_map_add_map()
442 entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash, in isl_union_map_add_map()
456 return umap; in isl_union_map_add_map()
459 isl_union_map_free(umap); in isl_union_map_add_map()
472 isl_union_map *umap; in isl_union_map_from_map() local
479 umap = isl_union_map_empty(dim); in isl_union_map_from_map()
480 umap = isl_union_map_add_map(umap, map); in isl_union_map_from_map()
482 return umap; in isl_union_map_from_map()
517 isl_size isl_union_map_n_map(__isl_keep isl_union_map *umap) in isl_union_map_n_map() argument
519 return umap ? umap->table.n : isl_size_error; in isl_union_map_n_map()
527 isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap, in isl_union_map_foreach_map() argument
532 if (!umap) in isl_union_map_foreach_map()
535 return isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_foreach_map()
573 isl_bool isl_union_map_every_map(__isl_keep isl_union_map *umap, in isl_union_map_every_map() argument
579 if (!umap) in isl_union_map_every_map()
582 r = isl_hash_table_foreach(isl_union_map_get_ctx(umap), &umap->table, in isl_union_map_every_map()
610 __isl_keep isl_union_map *umap) in isl_union_map_get_map_list() argument
616 n_maps = isl_union_map_n_map(umap); in isl_union_map_get_map_list()
619 ctx = isl_union_map_get_ctx(umap); in isl_union_map_get_map_list()
622 if (isl_union_map_foreach_map(umap, &add_list_map, &list) < 0) in isl_union_map_get_map_list()
640 isl_bool isl_union_map_isa_map(__isl_keep isl_union_map *umap) in isl_union_map_isa_map() argument
644 n = isl_union_map_n_map(umap); in isl_union_map_isa_map()
668 __isl_give isl_map *isl_map_from_union_map(__isl_take isl_union_map *umap) in isl_map_from_union_map() argument
674 is_map = isl_union_map_isa_map(umap); in isl_map_from_union_map()
677 ctx = isl_union_map_get_ctx(umap); in isl_map_from_union_map()
683 isl_hash_table_foreach(ctx, &umap->table, &copy_map, &map); in isl_map_from_union_map()
685 isl_union_map_free(umap); in isl_map_from_union_map()
689 isl_union_map_free(umap); in isl_map_from_union_map()
701 __isl_give isl_map *isl_union_map_extract_map(__isl_keep isl_union_map *umap, in isl_union_map_extract_map() argument
708 space = isl_space_align_params(space, isl_union_map_get_space(umap)); in isl_union_map_extract_map()
709 if (!umap || !space) in isl_union_map_extract_map()
713 entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash, in isl_union_map_extract_map()
734 isl_bool isl_union_map_contains(__isl_keep isl_union_map *umap, in isl_union_map_contains() argument
740 if (!umap || !space) in isl_union_map_contains()
744 entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash, in isl_union_map_contains()
1039 static __isl_give isl_union_map *gen_bin_set_op(__isl_take isl_union_map *umap, in gen_bin_set_op() argument
1044 umap = isl_union_map_align_params(umap, isl_set_get_space(set)); in gen_bin_set_op()
1045 set = isl_set_align_params(set, isl_union_map_get_space(umap)); in gen_bin_set_op()
1047 if (!umap || !set) in gen_bin_set_op()
1051 data.res = isl_union_map_alloc(isl_space_copy(umap->dim), in gen_bin_set_op()
1052 umap->table.n); in gen_bin_set_op()
1053 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in gen_bin_set_op()
1057 isl_union_map_free(umap); in gen_bin_set_op()
1061 isl_union_map_free(umap); in gen_bin_set_op()
1072 __isl_take isl_union_map *umap, __isl_take isl_set *set) in isl_union_map_intersect_params() argument
1081 return umap; in isl_union_map_intersect_params()
1084 return gen_bin_set_op(umap, set, &intersect_params_entry); in isl_union_map_intersect_params()
1086 isl_union_map_free(umap); in isl_union_map_intersect_params()
1098 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_intersect_params() argument
1100 return isl_union_map_intersect_params(umap, in union_map_intersect_params()
1105 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_gist_params() argument
1107 return isl_union_map_gist_params(umap, isl_set_from_union_set(uset)); in union_map_gist_params()
1231 __isl_take isl_union_map *umap, __isl_take isl_set *set) in isl_union_map_gist_params() argument
1233 return gen_bin_set_op(umap, set, &gist_params_entry); in isl_union_map_gist_params()
1242 __isl_give isl_union_map *isl_union_map_gist(__isl_take isl_union_map *umap, in isl_union_map_gist() argument
1245 return match_bin_op(umap, context, &isl_map_gist); in isl_union_map_gist()
1262 __isl_take isl_union_map *umap, __isl_take isl_union_map *context) in isl_union_map_plain_gist() argument
1264 return match_bin_op(umap, context, &isl_map_plain_gist); in isl_union_map_plain_gist()
1329 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_intersect_domain() argument
1336 return gen_bin_op(umap, uset, &control); in union_map_intersect_domain()
1344 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_intersect_domain() argument
1347 return union_map_intersect_params(umap, uset); in isl_union_map_intersect_domain()
1349 return union_map_intersect_domain(umap, uset); in isl_union_map_intersect_domain()
1355 __isl_take isl_union_map *umap, __isl_take isl_union_set *dom) in isl_union_map_subtract_domain() argument
1363 return gen_bin_op(umap, dom, &control); in isl_union_map_subtract_domain()
1369 __isl_take isl_union_map *umap, __isl_take isl_union_set *dom) in isl_union_map_subtract_range() argument
1377 return gen_bin_op(umap, dom, &control); in isl_union_map_subtract_range()
1383 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in union_map_gist_domain() argument
1390 return gen_bin_op(umap, uset, &control); in union_map_gist_domain()
1398 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_gist_domain() argument
1401 return union_map_gist_params(umap, uset); in isl_union_map_gist_domain()
1403 return union_map_gist_domain(umap, uset); in isl_union_map_gist_domain()
1409 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_gist_range() argument
1416 return gen_bin_op(umap, uset, &control); in isl_union_map_gist_range()
1420 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset) in isl_union_map_intersect_range() argument
1427 return gen_bin_op(umap, uset, &control); in isl_union_map_intersect_range()
1435 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor) in isl_union_map_intersect_domain_factor_range() argument
1443 return gen_bin_op(umap, factor, &control); in isl_union_map_intersect_domain_factor_range()
1451 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor) in isl_union_map_intersect_range_factor_domain() argument
1459 return gen_bin_op(umap, factor, &control); in isl_union_map_intersect_range_factor_domain()
1467 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor) in isl_union_map_intersect_range_factor_range() argument
1475 return gen_bin_op(umap, factor, &control); in isl_union_map_intersect_range_factor_range()
1569 __isl_take isl_union_set *uset, __isl_take isl_union_map *umap) in isl_union_set_apply() argument
1571 return isl_union_map_apply_range(uset, umap); in isl_union_set_apply()
1858 static __isl_give isl_union_map *un_op(__isl_take isl_union_map *umap, in un_op() argument
1863 if (!umap) in un_op()
1866 isl_die(isl_union_map_get_ctx(umap), isl_error_internal, in un_op()
1868 return isl_union_map_free(umap)); in un_op()
1870 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in un_op()
1872 return isl_union_map_free(umap)); in un_op()
1874 if (control->total && umap->ref == 1) in un_op()
1877 data.res = umap; in un_op()
1881 space = isl_union_map_get_space(umap); in un_op()
1882 data.res = isl_union_map_alloc(space, umap->table.n); in un_op()
1884 if (isl_hash_table_foreach(isl_union_map_get_ctx(umap), in un_op()
1885 &umap->table, &un_entry, &data) < 0) in un_op()
1890 isl_union_map_free(umap); in un_op()
1919 static __isl_give isl_union_map *total(__isl_take isl_union_map *umap, in total() argument
1927 return un_op(umap, &control); in total()
1938 __isl_take isl_union_map *umap) in isl_union_map_affine_hull() argument
1940 return total(umap, &isl_map_affine_hull_map); in isl_union_map_affine_hull()
1979 __isl_take isl_union_map *umap) in isl_union_map_polyhedral_hull() argument
1981 return total(umap, &isl_map_polyhedral_hull_map); in isl_union_map_polyhedral_hull()
2000 __isl_take isl_union_map *umap) in isl_union_map_simple_hull() argument
2002 return total(umap, &isl_map_simple_hull_map); in isl_union_map_simple_hull()
2011 static __isl_give isl_union_map *inplace(__isl_take isl_union_map *umap, in inplace() argument
2019 return un_op(umap, &control); in inplace()
2027 __isl_take isl_union_map *umap) in isl_union_map_remove_redundancies() argument
2029 return inplace(umap, &isl_map_remove_redundancies); in isl_union_map_remove_redundancies()
2041 __isl_take isl_union_map *umap) in isl_union_map_coalesce() argument
2043 return inplace(umap, &isl_map_coalesce); in isl_union_map_coalesce()
2053 __isl_take isl_union_map *umap) in isl_union_map_detect_equalities() argument
2055 return inplace(umap, &isl_map_detect_equalities); in isl_union_map_detect_equalities()
2065 __isl_take isl_union_map *umap) in isl_union_map_compute_divs() argument
2067 return inplace(umap, &isl_map_compute_divs); in isl_union_map_compute_divs()
2077 __isl_take isl_union_map *umap) in isl_union_map_lexmin() argument
2079 return total(umap, &isl_map_lexmin); in isl_union_map_lexmin()
2089 __isl_take isl_union_map *umap) in isl_union_map_lexmax() argument
2091 return total(umap, &isl_map_lexmax); in isl_union_map_lexmax()
2111 __isl_give isl_union_map *isl_union_map_universe(__isl_take isl_union_map *umap) in isl_union_map_universe() argument
2116 return un_op(umap, &control); in isl_union_map_universe()
2124 __isl_give isl_union_map *isl_union_map_reverse(__isl_take isl_union_map *umap) in isl_union_map_reverse() argument
2129 return un_op(umap, &control); in isl_union_map_reverse()
2136 __isl_take isl_union_map *umap) in isl_union_map_range_reverse() argument
2144 return un_op(umap, &control); in isl_union_map_range_reverse()
2149 __isl_give isl_set *isl_union_map_params(__isl_take isl_union_map *umap) in isl_union_map_params() argument
2156 empty = isl_union_map_is_empty(umap); in isl_union_map_params()
2161 space = isl_union_map_get_space(umap); in isl_union_map_params()
2162 isl_union_map_free(umap); in isl_union_map_params()
2165 return isl_set_from_union_set(un_op(umap, &control)); in isl_union_map_params()
2167 isl_union_map_free(umap); in isl_union_map_params()
2178 __isl_give isl_union_set *isl_union_map_domain(__isl_take isl_union_map *umap) in isl_union_map_domain() argument
2183 return un_op(umap, &control); in isl_union_map_domain()
2186 __isl_give isl_union_set *isl_union_map_range(__isl_take isl_union_map *umap) in isl_union_map_range() argument
2191 return un_op(umap, &control); in isl_union_map_range()
2195 __isl_take isl_union_map *umap) in isl_union_map_domain_map() argument
2200 return un_op(umap, &control); in isl_union_map_domain_map()
2224 __isl_take isl_union_map *umap) in isl_union_map_domain_map_union_pw_multi_aff() argument
2228 res = isl_union_pw_multi_aff_empty(isl_union_map_get_space(umap)); in isl_union_map_domain_map_union_pw_multi_aff()
2229 if (isl_union_map_foreach_map(umap, &domain_map_upma, &res) < 0) in isl_union_map_domain_map_union_pw_multi_aff()
2232 isl_union_map_free(umap); in isl_union_map_domain_map_union_pw_multi_aff()
2237 __isl_take isl_union_map *umap) in isl_union_map_range_map() argument
2242 return un_op(umap, &control); in isl_union_map_range_map()
2268 __isl_give isl_union_set *isl_union_map_deltas(__isl_take isl_union_map *umap) in isl_union_map_deltas() argument
2274 return un_op(umap, &control); in isl_union_map_deltas()
2278 __isl_take isl_union_map *umap) in isl_union_map_deltas_map() argument
2284 return un_op(umap, &control); in isl_union_map_deltas_map()
2331 __isl_take isl_union_map *umap) in isl_union_map_domain_factor_domain() argument
2339 return un_op(umap, &control); in isl_union_map_domain_factor_domain()
2346 __isl_take isl_union_map *umap) in isl_union_map_domain_factor_range() argument
2354 return un_op(umap, &control); in isl_union_map_domain_factor_range()
2361 __isl_take isl_union_map *umap) in isl_union_map_range_factor_domain() argument
2369 return un_op(umap, &control); in isl_union_map_range_factor_domain()
2376 __isl_take isl_union_map *umap) in isl_union_map_range_factor_range() argument
2384 return un_op(umap, &control); in isl_union_map_range_factor_range()
2391 __isl_take isl_union_map *umap) in isl_union_map_factor_domain() argument
2399 return un_op(umap, &control); in isl_union_map_factor_domain()
2406 __isl_take isl_union_map *umap) in isl_union_map_factor_range() argument
2414 return un_op(umap, &control); in isl_union_map_factor_range()
2428 __isl_give isl_union_set *isl_union_map_wrap(__isl_take isl_union_map *umap) in isl_union_map_wrap() argument
2433 return un_op(umap, &control); in isl_union_map_wrap()
2634 __isl_give isl_basic_map *isl_union_map_sample(__isl_take isl_union_map *umap) in isl_union_map_sample() argument
2638 if (!umap) in isl_union_map_sample()
2641 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in isl_union_map_sample()
2647 sample = isl_basic_map_empty(isl_union_map_get_space(umap)); in isl_union_map_sample()
2649 isl_union_map_free(umap); in isl_union_map_sample()
2653 isl_union_map_free(umap); in isl_union_map_sample()
2690 static isl_bool union_map_forall(__isl_keep isl_union_map *umap, in union_map_forall() argument
2695 if (!umap) in union_map_forall()
2698 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in union_map_forall()
2728 static isl_bool union_map_forall_user(__isl_keep isl_union_map *umap, in union_map_forall_user() argument
2733 if (!umap) in union_map_forall_user()
2736 if (isl_hash_table_foreach(umap->dim->ctx, &umap->table, in union_map_forall_user()
2745 isl_bool isl_union_map_plain_is_empty(__isl_keep isl_union_map *umap) in isl_union_map_plain_is_empty() argument
2749 n = isl_union_map_n_map(umap); in isl_union_map_plain_is_empty()
2755 isl_bool isl_union_map_is_empty(__isl_keep isl_union_map *umap) in isl_union_map_is_empty() argument
2757 return union_map_forall(umap, &isl_map_is_empty); in isl_union_map_is_empty()
2791 static isl_bool single_map_is_single_valued(__isl_keep isl_union_map *umap) in single_map_is_single_valued() argument
2796 umap = isl_union_map_copy(umap); in single_map_is_single_valued()
2797 map = isl_map_from_union_map(umap); in single_map_is_single_valued()
2810 isl_union_map *umap; member
2832 isl_union_map *umap, *test; in single_valued_on_domain() local
2835 umap = isl_union_map_copy(data->umap); in single_valued_on_domain()
2836 umap = isl_union_map_intersect_domain(umap, in single_valued_on_domain()
2839 n = isl_union_map_n_map(umap); in single_valued_on_domain()
2843 data->sv = single_map_is_single_valued(umap); in single_valued_on_domain()
2844 isl_union_map_free(umap); in single_valued_on_domain()
2846 test = isl_union_map_reverse(isl_union_map_copy(umap)); in single_valued_on_domain()
2847 test = isl_union_map_apply_range(test, umap); in single_valued_on_domain()
2865 isl_bool isl_union_map_is_single_valued(__isl_keep isl_union_map *umap) in isl_union_map_is_single_valued() argument
2872 n = isl_union_map_n_map(umap); in isl_union_map_is_single_valued()
2876 return single_map_is_single_valued(umap); in isl_union_map_is_single_valued()
2878 universe = isl_union_map_universe(isl_union_map_copy(umap)); in isl_union_map_is_single_valued()
2882 data.umap = umap; in isl_union_map_is_single_valued()
2891 isl_bool isl_union_map_is_injective(__isl_keep isl_union_map *umap) in isl_union_map_is_injective() argument
2895 umap = isl_union_map_copy(umap); in isl_union_map_is_injective()
2896 umap = isl_union_map_reverse(umap); in isl_union_map_is_injective()
2897 in = isl_union_map_is_single_valued(umap); in isl_union_map_is_injective()
2898 isl_union_map_free(umap); in isl_union_map_is_injective()
2943 __isl_keep isl_union_map *umap) in isl_union_map_plain_is_not_identity() argument
2948 if (isl_union_map_foreach_map(umap, &map_plain_is_not_identity, in isl_union_map_plain_is_not_identity()
2981 isl_bool isl_union_map_is_identity(__isl_keep isl_union_map *umap) in isl_union_map_is_identity() argument
2986 non_identity = isl_union_map_plain_is_not_identity(umap); in isl_union_map_is_identity()
2991 if (isl_union_map_foreach_map(umap, &map_is_identity, &identity) < 0 && in isl_union_map_is_identity()
3065 static isl_bool plain_injective_on_range(__isl_take isl_union_map *umap,
3129 static isl_bool plain_injective_on_range(__isl_take isl_union_map *umap, in plain_injective_on_range() argument
3136 ctx = isl_union_map_get_ctx(umap); in plain_injective_on_range()
3138 n = isl_union_map_n_map(umap); in plain_injective_on_range()
3143 isl_union_map_free(umap); in plain_injective_on_range()
3148 isl_union_map_free(umap); in plain_injective_on_range()
3162 fixed = union_map_forall_user(umap, &fixed_at_pos, &data); in plain_injective_on_range()
3167 dim = isl_union_map_get_space(umap); in plain_injective_on_range()
3169 isl_union_map_free(umap); in plain_injective_on_range()
3174 isl_union_map_free(umap); in plain_injective_on_range()
3179 isl_union_map_free(umap); in plain_injective_on_range()
3190 isl_union_map *umap = user; in plain_injective_on_range_wrap() local
3196 umap = isl_union_map_copy(umap); in plain_injective_on_range_wrap()
3197 umap = isl_union_map_intersect_range(umap, in plain_injective_on_range_wrap()
3199 return plain_injective_on_range(umap, 0, dim); in plain_injective_on_range_wrap()
3208 isl_bool isl_union_map_plain_is_injective(__isl_keep isl_union_map *umap) in isl_union_map_plain_is_injective() argument
3214 in = union_map_forall(umap, &isl_map_plain_is_injective); in isl_union_map_plain_is_injective()
3220 univ = isl_union_map_universe(isl_union_map_copy(umap)); in isl_union_map_plain_is_injective()
3223 in = union_map_forall_user(ran, &plain_injective_on_range_wrap, umap); in isl_union_map_plain_is_injective()
3230 isl_bool isl_union_map_is_bijective(__isl_keep isl_union_map *umap) in isl_union_map_is_bijective() argument
3234 sv = isl_union_map_is_single_valued(umap); in isl_union_map_is_bijective()
3238 return isl_union_map_is_injective(umap); in isl_union_map_is_bijective()
3241 __isl_give isl_union_map *isl_union_map_zip(__isl_take isl_union_map *umap) in isl_union_map_zip() argument
3249 return un_op(umap, &control); in isl_union_map_zip()
3255 __isl_give isl_union_map *isl_union_map_uncurry(__isl_take isl_union_map *umap) in isl_union_map_uncurry() argument
3263 return un_op(umap, &control); in isl_union_map_uncurry()
3269 __isl_give isl_union_map *isl_union_map_curry(__isl_take isl_union_map *umap) in isl_union_map_curry() argument
3277 return un_op(umap, &control); in isl_union_map_curry()
3284 __isl_take isl_union_map *umap) in isl_union_map_range_curry() argument
3292 return un_op(umap, &control); in isl_union_map_range_curry()
3464 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma, in preimage_pw_multi_aff() argument
3473 umap = isl_union_map_align_params(umap, in preimage_pw_multi_aff()
3475 pma = isl_pw_multi_aff_align_params(pma, isl_union_map_get_space(umap)); in preimage_pw_multi_aff()
3477 if (!umap || !pma) in preimage_pw_multi_aff()
3480 ctx = isl_union_map_get_ctx(umap); in preimage_pw_multi_aff()
3481 space = isl_union_map_get_space(umap); in preimage_pw_multi_aff()
3484 data.res = isl_union_map_alloc(space, umap->table.n); in preimage_pw_multi_aff()
3487 if (isl_hash_table_foreach(ctx, &umap->table, &preimage_entry, in preimage_pw_multi_aff()
3492 isl_union_map_free(umap); in preimage_pw_multi_aff()
3496 isl_union_map_free(umap); in preimage_pw_multi_aff()
3509 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma) in isl_union_map_preimage_domain_pw_multi_aff() argument
3511 return preimage_pw_multi_aff(umap, pma, &domain_match, in isl_union_map_preimage_domain_pw_multi_aff()
3523 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma) in isl_union_map_preimage_range_pw_multi_aff() argument
3525 return preimage_pw_multi_aff(umap, pma, &range_match, in isl_union_map_preimage_range_pw_multi_aff()
3550 __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma) in isl_union_map_preimage_domain_multi_aff() argument
3552 return isl_union_map_preimage_domain_pw_multi_aff(umap, in isl_union_map_preimage_domain_multi_aff()
3564 __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma) in isl_union_map_preimage_range_multi_aff() argument
3566 return isl_union_map_preimage_range_pw_multi_aff(umap, in isl_union_map_preimage_range_multi_aff()
3639 __isl_take isl_union_map *umap, __isl_take isl_multi_pw_aff *mpa, in preimage_multi_pw_aff() argument
3648 umap = isl_union_map_align_params(umap, in preimage_multi_pw_aff()
3650 mpa = isl_multi_pw_aff_align_params(mpa, isl_union_map_get_space(umap)); in preimage_multi_pw_aff()
3652 if (!umap || !mpa) in preimage_multi_pw_aff()
3655 ctx = isl_union_map_get_ctx(umap); in preimage_multi_pw_aff()
3656 space = isl_union_map_get_space(umap); in preimage_multi_pw_aff()
3659 data.res = isl_union_map_alloc(space, umap->table.n); in preimage_multi_pw_aff()
3662 if (isl_hash_table_foreach(ctx, &umap->table, &preimage_mpa_entry, in preimage_multi_pw_aff()
3667 isl_union_map_free(umap); in preimage_multi_pw_aff()
3671 isl_union_map_free(umap); in preimage_multi_pw_aff()
3684 __isl_take isl_union_map *umap, __isl_take isl_multi_pw_aff *mpa) in isl_union_map_preimage_domain_multi_pw_aff() argument
3686 return preimage_multi_pw_aff(umap, mpa, &domain_match, in isl_union_map_preimage_domain_multi_pw_aff()
3697 isl_union_map *umap; member
3699 __isl_give isl_union_map *(*fn)(__isl_take isl_union_map *umap,
3709 isl_union_map *umap; in preimage_upma() local
3711 umap = isl_union_map_copy(data->umap); in preimage_upma()
3712 umap = data->fn(umap, pma); in preimage_upma()
3713 data->res = isl_union_map_union(data->res, umap); in preimage_upma()
3725 __isl_take isl_union_map *umap, in preimage_union_pw_multi_aff() argument
3727 __isl_give isl_union_map *(*fn)(__isl_take isl_union_map *umap, in preimage_union_pw_multi_aff() argument
3732 data.umap = umap; in preimage_union_pw_multi_aff()
3733 data.res = isl_union_map_empty(isl_union_map_get_space(umap)); in preimage_union_pw_multi_aff()
3739 isl_union_map_free(umap); in preimage_union_pw_multi_aff()
3754 __isl_take isl_union_map *umap, in isl_union_map_preimage_domain_union_pw_multi_aff() argument
3757 return preimage_union_pw_multi_aff(umap, upma, in isl_union_map_preimage_domain_union_pw_multi_aff()
3770 __isl_take isl_union_map *umap, in isl_union_map_preimage_range_union_pw_multi_aff() argument
3773 return preimage_union_pw_multi_aff(umap, upma, in isl_union_map_preimage_range_union_pw_multi_aff()
3796 __isl_take isl_union_map *umap) in isl_union_map_reset_user() argument
3798 umap = isl_union_map_cow(umap); in isl_union_map_reset_user()
3799 if (!umap) in isl_union_map_reset_user()
3801 umap->dim = isl_space_reset_user(umap->dim); in isl_union_map_reset_user()
3802 if (!umap->dim) in isl_union_map_reset_user()
3803 return isl_union_map_free(umap); in isl_union_map_reset_user()
3804 return total(umap, &isl_map_reset_user); in isl_union_map_reset_user()
3820 __isl_take isl_union_map *umap) in isl_union_map_remove_divs() argument
3822 return total(umap, &isl_map_remove_divs); in isl_union_map_remove_divs()
3866 __isl_take isl_union_map *umap, in isl_union_map_project_out() argument
3872 if (!umap) in isl_union_map_project_out()
3876 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_project_out()
3878 return isl_union_map_free(umap)); in isl_union_map_project_out()
3880 space = isl_union_map_get_space(umap); in isl_union_map_project_out()
3883 if (isl_union_map_foreach_map(umap, &project_out, &data) < 0) in isl_union_map_project_out()
3886 isl_union_map_free(umap); in isl_union_map_project_out()
3945 isl_bool isl_union_map_involves_dims(__isl_keep isl_union_map *umap, in isl_union_map_involves_dims() argument
3952 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in isl_union_map_involves_dims()
3955 excludes = union_map_forall_user(umap, &map_excludes, &data); in isl_union_map_involves_dims()
3997 __isl_take isl_union_map *umap, __isl_take isl_space *space) in isl_union_map_reset_range_space() argument
4001 data.res = isl_union_map_empty(isl_union_map_get_space(umap)); in isl_union_map_reset_range_space()
4002 if (isl_union_map_foreach_map(umap, &reset_range_space, &data) < 0) in isl_union_map_reset_range_space()
4006 isl_union_map_free(umap); in isl_union_map_reset_range_space()
4012 static isl_stat check_union_map_space_equal_dim(__isl_keep isl_union_map *umap, in check_union_map_space_equal_dim() argument
4017 dim1 = isl_union_map_dim(umap, isl_dim_param); in check_union_map_space_equal_dim()
4023 isl_die(isl_union_map_get_ctx(umap), isl_error_invalid, in check_union_map_space_equal_dim()
4059 __isl_take isl_union_map *umap, __isl_take isl_space *space) in isl_union_map_reset_equal_dim_space() argument
4065 umap_space = isl_union_map_peek_space(umap); in isl_union_map_reset_equal_dim_space()
4071 return umap; in isl_union_map_reset_equal_dim_space()
4073 if (check_union_map_space_equal_dim(umap, space) < 0) in isl_union_map_reset_equal_dim_space()
4077 if (isl_union_map_foreach_map(umap, &reset_params, &data) < 0) in isl_union_map_reset_equal_dim_space()
4081 isl_union_map_free(umap); in isl_union_map_reset_equal_dim_space()
4084 isl_union_map_free(umap); in isl_union_map_reset_equal_dim_space()
4130 __isl_take isl_union_map *umap, __isl_keep isl_multi_union_pw_aff *mupa) in intersect_explicit_domain() argument
4137 return isl_union_map_free(umap); in intersect_explicit_domain()
4139 return umap; in intersect_explicit_domain()
4145 return isl_union_map_free(umap); in intersect_explicit_domain()
4151 umap = isl_union_map_intersect_params(umap, set); in intersect_explicit_domain()
4152 return umap; in intersect_explicit_domain()
4154 umap = isl_union_map_intersect_domain(umap, isl_union_set_copy(dom)); in intersect_explicit_domain()
4155 umap = isl_union_map_intersect_range(umap, dom); in intersect_explicit_domain()
4156 return umap; in intersect_explicit_domain()
4164 __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
4170 umap = isl_union_map_align_params(umap, in isl_union_map_order_at_multi_union_pw_aff()
4173 isl_union_map_get_space(umap)); in isl_union_map_order_at_multi_union_pw_aff()
4174 umap = intersect_explicit_domain(umap, mupa); in isl_union_map_order_at_multi_union_pw_aff()
4177 data.res = isl_union_map_empty(isl_union_map_get_space(umap)); in isl_union_map_order_at_multi_union_pw_aff()
4178 if (isl_union_map_foreach_map(umap, &order_at, &data) < 0) in isl_union_map_order_at_multi_union_pw_aff()
4182 isl_union_map_free(umap); in isl_union_map_order_at_multi_union_pw_aff()
4190 __isl_take isl_union_map *umap, in isl_union_map_eq_at_multi_union_pw_aff() argument
4193 return isl_union_map_order_at_multi_union_pw_aff(umap, mupa, in isl_union_map_eq_at_multi_union_pw_aff()
4201 __isl_take isl_union_map *umap, in isl_union_map_lex_lt_at_multi_union_pw_aff() argument
4204 return isl_union_map_order_at_multi_union_pw_aff(umap, mupa, in isl_union_map_lex_lt_at_multi_union_pw_aff()
4212 __isl_take isl_union_map *umap, in isl_union_map_lex_gt_at_multi_union_pw_aff() argument
4215 return isl_union_map_order_at_multi_union_pw_aff(umap, mupa, in isl_union_map_lex_gt_at_multi_union_pw_aff()
4268 uint32_t isl_union_map_get_hash(__isl_keep isl_union_map *umap) in isl_union_map_get_hash() argument
4272 if (!umap) in isl_union_map_get_hash()
4276 if (isl_union_map_foreach_map(umap, &add_hash, &hash) < 0) in isl_union_map_get_hash()
4389 __isl_take isl_union_map *umap, in isl_union_map_remove_map_if() argument
4398 return un_op(umap, &control); in isl_union_map_remove_map_if()
4424 __isl_take isl_union_map *umap, __isl_take isl_multi_id *tuple) in isl_union_map_bind_range() argument
4434 bound = uset_from_umap(un_op(umap, &control)); in isl_union_map_bind_range()