Lines Matching refs:bset
108 __isl_take isl_basic_set *bset) in isl_basic_set_normalize_constraints() argument
110 isl_basic_map *bmap = bset_to_bmap(bset); in isl_basic_set_normalize_constraints()
668 __isl_take isl_basic_set *bset, int *progress) in isl_basic_set_gauss() argument
670 return bset_from_bmap(isl_basic_map_gauss(bset_to_bmap(bset), in isl_basic_set_gauss()
764 __isl_keep isl_basic_set *bset, int k) in set_hash_index() argument
766 return hash_index(ci, bset, k); in set_hash_index()
772 __isl_keep isl_basic_set *bset) in setup_constraint_index() argument
776 if (create_constraint_index(ci, bset) < 0) in setup_constraint_index()
779 for (k = 0; k < bset->n_ineq; ++k) { in setup_constraint_index()
780 h = set_hash_index(ci, bset, k); in setup_constraint_index()
781 ci->index[h] = &bset->ineq[k]; in setup_constraint_index()
1549 __isl_take isl_basic_set *bset) in isl_basic_set_simplify() argument
1551 return bset_from_bmap(isl_basic_map_simplify(bset_to_bmap(bset))); in isl_basic_set_simplify()
1686 __isl_take isl_basic_set *bset) in isl_basic_set_finalize() argument
1688 return bset_from_bmap(isl_basic_map_finalize(bset_to_bmap(bset))); in isl_basic_set_finalize()
1814 __isl_take isl_basic_set *bset, unsigned pos, unsigned n) in isl_basic_set_eliminate_vars() argument
1816 return bset_from_bmap(isl_basic_map_eliminate_vars(bset_to_bmap(bset), in isl_basic_set_eliminate_vars()
1853 __isl_take isl_basic_set *bset, in isl_basic_set_eliminate() argument
1856 return isl_basic_map_eliminate(bset, type, first, n); in isl_basic_set_eliminate()
1910 __isl_take isl_basic_set *bset) in isl_basic_set_drop_constraints_involving_unknown_divs() argument
1914 bmap = bset_to_bmap(bset); in isl_basic_set_drop_constraints_involving_unknown_divs()
1975 static void set_compute_elimination_index(__isl_keep isl_basic_set *bset, in set_compute_elimination_index() argument
1978 compute_elimination_index(bset_to_bmap(bset), elim, len); in set_compute_elimination_index()
2002 __isl_keep isl_basic_set *bset, int *elim, unsigned total) in set_reduced_using_equalities() argument
2005 bset_to_bmap(bset), elim, total); in set_reduced_using_equalities()
2009 __isl_take isl_basic_set *bset, __isl_take isl_basic_set *context) in isl_basic_set_reduce_using_equalities() argument
2015 if (!bset || !context) in isl_basic_set_reduce_using_equalities()
2020 return bset; in isl_basic_set_reduce_using_equalities()
2023 bset = isl_basic_set_cow(bset); in isl_basic_set_reduce_using_equalities()
2024 dim = isl_basic_set_dim(bset, isl_dim_set); in isl_basic_set_reduce_using_equalities()
2028 elim = isl_alloc_array(bset->ctx, int, dim); in isl_basic_set_reduce_using_equalities()
2032 for (i = 0; i < bset->n_eq; ++i) in isl_basic_set_reduce_using_equalities()
2033 set_reduced_using_equalities(bset->eq[i], bset->eq[i], in isl_basic_set_reduce_using_equalities()
2035 for (i = 0; i < bset->n_ineq; ++i) in isl_basic_set_reduce_using_equalities()
2036 set_reduced_using_equalities(bset->ineq[i], bset->ineq[i], in isl_basic_set_reduce_using_equalities()
2040 bset = isl_basic_set_simplify(bset); in isl_basic_set_reduce_using_equalities()
2041 bset = isl_basic_set_finalize(bset); in isl_basic_set_reduce_using_equalities()
2042 return bset; in isl_basic_set_reduce_using_equalities()
2044 isl_basic_set_free(bset); in isl_basic_set_reduce_using_equalities()
2099 __isl_take isl_basic_set *bset, __isl_keep isl_basic_set *context) in remove_shifted_constraints() argument
2104 if (!bset || !context) in remove_shifted_constraints()
2105 return bset; in remove_shifted_constraints()
2108 return bset; in remove_shifted_constraints()
2110 return bset; in remove_shifted_constraints()
2112 for (k = 0; k < bset->n_ineq; ++k) { in remove_shifted_constraints()
2115 redundant = constraint_index_is_redundant(&ci, bset->ineq[k]); in remove_shifted_constraints()
2120 bset = isl_basic_set_cow(bset); in remove_shifted_constraints()
2121 if (!bset) in remove_shifted_constraints()
2123 isl_basic_set_drop_inequality(bset, k); in remove_shifted_constraints()
2127 return bset; in remove_shifted_constraints()
2130 return bset; in remove_shifted_constraints()
2142 isl_basic_set *bset, *bset_context; in isl_basic_map_remove_shifted_constraints() local
2156 bset = isl_basic_map_underlying_set(isl_basic_map_copy(bmap)); in isl_basic_map_remove_shifted_constraints()
2158 bset = remove_shifted_constraints(bset, bset_context); in isl_basic_map_remove_shifted_constraints()
2161 bmap = isl_basic_map_overlying_set(bset, bmap); in isl_basic_map_remove_shifted_constraints()
2339 __isl_take isl_basic_set *context, __isl_keep isl_basic_set *bset) in drop_irrelevant_constraints() argument
2345 dim = isl_basic_set_dim(bset, isl_dim_set); in drop_irrelevant_constraints()
2355 for (j = 0; j < bset->n_eq; ++j) in drop_irrelevant_constraints()
2356 if (!isl_int_is_zero(bset->eq[j][1 + i])) in drop_irrelevant_constraints()
2358 if (j < bset->n_eq) { in drop_irrelevant_constraints()
2362 for (j = 0; j < bset->n_ineq; ++j) in drop_irrelevant_constraints()
2363 if (!isl_int_is_zero(bset->ineq[j][1 + i])) in drop_irrelevant_constraints()
2365 if (j < bset->n_ineq) in drop_irrelevant_constraints()
2442 static __isl_give isl_basic_set *update_ineq(__isl_take isl_basic_set *bset, in update_ineq() argument
2450 if (!bset) in update_ineq()
2453 return isl_basic_set_set_to_empty(bset); in update_ineq()
2455 n_ineq = bset->n_ineq; in update_ineq()
2458 if (isl_basic_set_drop_inequality(bset, i) < 0) in update_ineq()
2459 return isl_basic_set_free(bset); in update_ineq()
2466 isl_basic_map_inequality_to_equality(bset, i); in update_ineq()
2469 if (isl_basic_set_drop_inequality(bset, i) < 0) in update_ineq()
2470 return isl_basic_set_free(bset); in update_ineq()
2475 bset = isl_basic_set_gauss(bset, NULL); in update_ineq()
2476 bset = isl_basic_set_finalize(bset); in update_ineq()
2477 return bset; in update_ineq()
2484 __isl_take isl_basic_set *bset, __isl_take isl_mat *ineq, in update_ineq_free() argument
2491 bset = update_ineq(bset, row, tab); in update_ineq_free()
2495 return bset; in update_ineq_free()
2530 static __isl_give isl_basic_set *uset_gist_full(__isl_take isl_basic_set *bset, in uset_gist_full() argument
2540 if (!bset || !ineq || !context) in uset_gist_full()
2543 if (bset->n_ineq == 0 || isl_basic_set_plain_is_universe(context)) { in uset_gist_full()
2546 return bset; in uset_gist_full()
2550 row = isl_calloc_array(ctx, int, bset->n_ineq); in uset_gist_full()
2556 if (all_neg(row, bset->n_ineq)) in uset_gist_full()
2557 return update_ineq_free(bset, ineq, context, row, NULL); in uset_gist_full()
2563 return update_ineq_free(bset, ineq, context, row, NULL); in uset_gist_full()
2568 combined = isl_basic_set_extend_constraints(combined, 0, bset->n_ineq); in uset_gist_full()
2573 if (isl_tab_extend_cons(tab, bset->n_ineq) < 0) in uset_gist_full()
2576 for (i = 0; i < bset->n_ineq; ++i) { in uset_gist_full()
2588 for (i = bset->n_ineq - 1; i >= 0; --i) { in uset_gist_full()
2607 bset = update_ineq_free(bset, ineq, context, row, tab); in uset_gist_full()
2608 if (bset) { in uset_gist_full()
2609 ISL_F_SET(bset, ISL_BASIC_SET_NO_IMPLICIT); in uset_gist_full()
2610 ISL_F_SET(bset, ISL_BASIC_SET_NO_REDUNDANT); in uset_gist_full()
2614 return bset; in uset_gist_full()
2621 isl_basic_set_free(bset); in uset_gist_full()
2627 static __isl_give isl_mat *extract_ineq(__isl_keep isl_basic_set *bset) in extract_ineq() argument
2633 total = isl_basic_set_dim(bset, isl_dim_all); in extract_ineq()
2637 ctx = isl_basic_set_get_ctx(bset); in extract_ineq()
2638 ineq = isl_mat_sub_alloc6(ctx, bset->ineq, 0, bset->n_ineq, in extract_ineq()
2649 __isl_take isl_basic_set *bset, __isl_take isl_basic_set *context) in uset_gist_uncompressed() argument
2653 ineq = extract_ineq(bset); in uset_gist_uncompressed()
2654 return uset_gist_full(bset, ineq, context); in uset_gist_uncompressed()
2660 __isl_take isl_basic_set *bset) in replace_by_empty() argument
2664 space = isl_basic_set_get_space(bset); in replace_by_empty()
2665 isl_basic_set_free(bset); in replace_by_empty()
2700 __isl_take isl_basic_set *bset, __isl_take isl_basic_set *context, in uset_gist_compressed() argument
2709 ineq = extract_ineq(bset); in uset_gist_compressed()
2718 return replace_by_empty(bset); in uset_gist_compressed()
2740 bset = isl_basic_set_cow(bset); in uset_gist_compressed()
2741 if (!bset) in uset_gist_compressed()
2743 isl_int_sub(bset->ineq[i][0], bset->ineq[i][0], rem); in uset_gist_compressed()
2747 return uset_gist_full(bset, ineq, context); in uset_gist_compressed()
2751 isl_basic_set_free(bset); in uset_gist_compressed()
2758 __isl_take isl_basic_set *bset, __isl_keep isl_basic_set *template) in project_onto_involved() argument
2765 return isl_basic_set_free(bset); in project_onto_involved()
2773 return isl_basic_set_free(bset); in project_onto_involved()
2776 bset = isl_basic_set_eliminate_vars(bset, i, 1); in project_onto_involved()
2779 return bset; in project_onto_involved()
2807 static __isl_give isl_basic_set *uset_gist(__isl_take isl_basic_set *bset, in uset_gist() argument
2816 total = isl_basic_set_dim(bset, isl_dim_all); in uset_gist()
2820 context = drop_irrelevant_constraints(context, bset); in uset_gist()
2822 bset = isl_basic_set_detect_equalities(bset); in uset_gist()
2823 aff = isl_basic_set_copy(bset); in uset_gist()
2832 isl_basic_set_free(bset); in uset_gist()
2836 bset = isl_basic_set_sort_constraints(bset); in uset_gist()
2839 return uset_gist_uncompressed(bset, context); in uset_gist()
2841 eq = isl_mat_sub_alloc6(bset->ctx, aff->eq, 0, aff->n_eq, 0, 1 + total); in uset_gist()
2848 return replace_by_empty(bset); in uset_gist()
2852 aff_context = project_onto_involved(aff_context, bset); in uset_gist()
2854 bset = uset_gist_compressed(bset, context, T); in uset_gist()
2855 bset = isl_basic_set_reduce_using_equalities(bset, aff_context); in uset_gist()
2857 if (bset) { in uset_gist()
2858 ISL_F_SET(bset, ISL_BASIC_SET_NO_IMPLICIT); in uset_gist()
2859 ISL_F_SET(bset, ISL_BASIC_SET_NO_REDUNDANT); in uset_gist()
2862 return bset; in uset_gist()
2864 isl_basic_set_free(bset); in uset_gist()
3263 isl_basic_set *bset, *eq; in isl_basic_map_gist() local
3298 bset = isl_basic_map_underlying_set(isl_basic_map_copy(bmap)); in isl_basic_map_gist()
3299 bset = isl_basic_set_add_dims(bset, isl_dim_set, extra); in isl_basic_map_gist()
3300 bset = uset_gist(bset, in isl_basic_map_gist()
3302 bset = isl_basic_set_project_out(bset, isl_dim_set, total, extra); in isl_basic_map_gist()
3304 if (!bset || bset->n_eq == 0 || n_div == 0 || in isl_basic_map_gist()
3305 isl_basic_set_plain_is_empty(bset)) { in isl_basic_map_gist()
3307 return isl_basic_map_overlying_set(bset, bmap); in isl_basic_map_gist()
3310 n_eq = bset->n_eq; in isl_basic_map_gist()
3311 n_ineq = bset->n_ineq; in isl_basic_map_gist()
3312 eq = isl_basic_set_copy(bset); in isl_basic_map_gist()
3315 bset = isl_basic_set_free_equality(bset, n_eq); in isl_basic_map_gist()
3320 bmap = isl_basic_map_overlying_set(bset, bmap); in isl_basic_map_gist()
3733 __isl_give isl_basic_set *isl_basic_set_gist(__isl_take isl_basic_set *bset, in isl_basic_set_gist() argument
3736 return bset_from_bmap(isl_basic_map_gist(bset_to_bmap(bset), in isl_basic_set_gist()