Lines Matching refs:bmap1
2499 /* Drop all inequalities from "bmap1" that do not also appear in "bmap2".
2501 * in "bmap1" and "bmap2" is also kept, with the least restrictive
2503 * "bmap1" and "bmap2" are assumed to have the same (known)
2505 * The constraints of both "bmap1" and "bmap2" are assumed
2508 * Run through the inequality constraints of "bmap1" and "bmap2"
2510 * Each constraint of "bmap1" without a matching constraint in "bmap2"
2516 __isl_take isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
2520 bmap1 = isl_basic_map_cow(bmap1);
2521 if (!bmap1 || !bmap2)
2522 return isl_basic_map_free(bmap1);
2524 i1 = bmap1->n_ineq - 1;
2526 while (bmap1 && i1 >= 0 && i2 >= 0) {
2529 cmp = isl_basic_map_constraint_cmp(bmap1, bmap1->ineq[i1],
2536 if (isl_basic_map_drop_inequality(bmap1, i1) < 0)
2537 bmap1 = isl_basic_map_free(bmap1);
2541 if (isl_int_lt(bmap1->ineq[i1][0], bmap2->ineq[i2][0]))
2542 isl_int_set(bmap1->ineq[i1][0], bmap2->ineq[i2][0]);
2547 if (isl_basic_map_drop_inequality(bmap1, i1) < 0)
2548 bmap1 = isl_basic_map_free(bmap1);
2550 return bmap1;
2553 /* Drop all equalities from "bmap1" that do not also appear in "bmap2".
2554 * "bmap1" and "bmap2" are assumed to have the same (known)
2557 * Run through the equality constraints of "bmap1" and "bmap2".
2558 * Each constraint of "bmap1" without a matching constraint in "bmap2"
2562 __isl_take isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
2567 bmap1 = isl_basic_map_cow(bmap1);
2568 total = isl_basic_map_dim(bmap1, isl_dim_all);
2570 return isl_basic_map_free(bmap1);
2572 i1 = bmap1->n_eq - 1;
2574 while (bmap1 && i1 >= 0 && i2 >= 0) {
2577 last1 = isl_seq_last_non_zero(bmap1->eq[i1] + 1, total);
2584 if (isl_basic_map_drop_equality(bmap1, i1) < 0)
2585 bmap1 = isl_basic_map_free(bmap1);
2589 if (!isl_seq_eq(bmap1->eq[i1], bmap2->eq[i2], 1 + total)) {
2590 if (isl_basic_map_drop_equality(bmap1, i1) < 0)
2591 bmap1 = isl_basic_map_free(bmap1);
2597 if (isl_basic_map_drop_equality(bmap1, i1) < 0)
2598 bmap1 = isl_basic_map_free(bmap1);
2600 return bmap1;
2603 /* Compute a superset of "bmap1" and "bmap2" that is described
2604 * by only the constraints that appear in both "bmap1" and "bmap2".
2610 * Finally drop all inequalities and equalities from "bmap1" that
2614 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
2616 if (isl_basic_map_check_equal_space(bmap1, bmap2) < 0)
2619 bmap1 = isl_basic_map_drop_constraints_involving_unknown_divs(bmap1);
2621 bmap1 = isl_basic_map_order_divs(bmap1);
2622 bmap2 = isl_basic_map_align_divs(bmap2, bmap1);
2623 bmap1 = isl_basic_map_align_divs(bmap1, bmap2);
2624 bmap1 = isl_basic_map_sort_constraints(bmap1);
2627 bmap1 = select_shared_inequalities(bmap1, bmap2);
2628 bmap1 = select_shared_equalities(bmap1, bmap2);
2631 bmap1 = isl_basic_map_finalize(bmap1);
2632 return bmap1;
2634 isl_basic_map_free(bmap1);