Lines Matching refs:bmap2
279 /* Do "bmap1" and "bmap2" have the same parameters?
282 __isl_keep isl_basic_map *bmap2)
287 space2 = isl_basic_map_peek_space(bmap2);
1575 /* Check that "bmap1" and "bmap2" have the same parameters,
1579 __isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
1583 match = isl_basic_map_has_equal_params(bmap1, bmap2);
1947 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2,
1956 space = isl_basic_map_peek_space(bmap2);
1961 n_param = isl_basic_map_dim(bmap2, isl_dim_param);
1962 n_in = isl_basic_map_dim(bmap2, isl_dim_in);
1964 n_out = isl_basic_map_dim(bmap2, isl_dim_out);
1966 n_div = isl_basic_map_dim(bmap2, isl_dim_div);
1974 isl_dim_map_div(dim_map, bmap2, total);
1976 return isl_basic_map_add_constraints_dim_map(bmap1, bmap2, dim_map);
1979 isl_basic_map_free(bmap2);
3708 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
3714 if (isl_basic_map_check_equal_params(bmap1, bmap2) < 0)
3717 space2 = isl_basic_map_peek_space(bmap2);
3725 return isl_basic_map_intersect(bmap2, bmap1);
3728 isl_basic_map_check_equal_space(bmap1, bmap2) < 0)
3732 isl_basic_map_free(bmap2);
3735 if (isl_basic_map_plain_is_empty(bmap2)) {
3737 return bmap2;
3742 isl_basic_map_contains(bmap2, bmap1->sample) > 0)
3744 else if (bmap2->sample &&
3745 isl_basic_map_contains(bmap1, bmap2->sample) > 0 &&
3746 isl_basic_map_contains(bmap2, bmap2->sample) > 0)
3747 sample = isl_vec_copy(bmap2->sample);
3753 bmap2->n_div, bmap2->n_eq, bmap2->n_ineq);
3754 bmap1 = add_constraints(bmap1, bmap2, 0, 0);
3769 isl_basic_map_free(bmap2);
4773 /* Does "bmap2" apply to the range of "bmap1" (ignoring parameters)?
4776 __isl_keep isl_basic_map *bmap2)
4781 space2 = isl_basic_map_peek_space(bmap2);
4786 /* Check that "bmap2" applies to the range of "bmap1" (ignoring parameters).
4789 __isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
4793 equal = isl_basic_map_applies_range(bmap1, bmap2);
4803 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
4811 if (isl_basic_map_check_equal_params(bmap1, bmap2) < 0)
4813 if (isl_basic_map_check_applies_range(bmap1, bmap2) < 0)
4817 n_out = isl_basic_map_dim(bmap2, isl_dim_out);
4824 isl_basic_map_get_space(bmap2));
4826 total = nparam + n_in + n_out + bmap1->n_div + bmap2->n_div + n;
4830 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_param, pos = 0);
4832 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_out, pos += n_in);
4834 isl_dim_map_div(dim_map2, bmap2, pos += bmap1->n_div);
4835 isl_dim_map_dim(dim_map1, bmap1->dim, isl_dim_out, pos += bmap2->n_div);
4836 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_in, pos);
4839 bmap1->n_div + bmap2->n_div + n,
4840 bmap1->n_eq + bmap2->n_eq,
4841 bmap1->n_ineq + bmap2->n_ineq);
4843 bmap = isl_basic_map_add_constraints_dim_map(bmap, bmap2, dim_map2);
4850 isl_basic_map_free(bmap2);
4869 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
4871 if (isl_basic_map_check_equal_params(bmap1, bmap2) < 0)
4874 bmap2->dim, isl_dim_in))
4879 bmap1 = isl_basic_map_apply_range(bmap1, bmap2);
4883 isl_basic_map_free(bmap2);
4891 __isl_take isl_basic_map *bmap2)
4899 if (isl_basic_map_check_equal_space(bmap1, bmap2) < 0)
4908 total = nparam + n_in + n_out + bmap1->n_div + bmap2->n_div + 2 * n_out;
4910 dim_map2 = isl_dim_map_alloc(bmap2->ctx, total);
4912 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_param, pos);
4914 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_in, pos);
4916 isl_dim_map_div(dim_map2, bmap2, pos += bmap1->n_div);
4917 isl_dim_map_dim(dim_map1, bmap1->dim, isl_dim_out, pos += bmap2->n_div);
4918 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_out, pos += n_out);
4921 bmap1->n_div + bmap2->n_div + 2 * n_out,
4922 bmap1->n_eq + bmap2->n_eq + n_out,
4923 bmap1->n_ineq + bmap2->n_ineq);
4934 bmap = isl_basic_map_add_constraints_dim_map(bmap, bmap2, dim_map2);
4942 isl_basic_map_free(bmap2);
9174 __isl_keep isl_basic_map *bmap2)
9180 if (!bmap1 || !bmap2)
9184 map2 = isl_map_from_basic_map(isl_basic_map_copy(bmap2));
9201 __isl_keep isl_basic_map *bmap2)
9205 if (!bmap1 || !bmap2)
9207 is_subset = isl_basic_map_is_subset(bmap1, bmap2);
9210 is_subset = isl_basic_map_is_subset(bmap2, bmap1);
9333 __isl_keep isl_basic_map *bmap2)
9337 if (!bmap1 || !bmap2)
9339 is_subset = isl_basic_map_is_subset(bmap1, bmap2);
9342 is_subset = isl_basic_map_is_subset(bmap2, bmap1);
9549 __isl_take isl_basic_map *bmap2)
9553 if (isl_basic_map_check_equal_space(bmap1, bmap2) < 0)
9560 map = isl_map_add_basic_map(map, bmap2);
9564 isl_basic_map_free(bmap2);
9952 isl_basic_map *bmap2;
9955 bmap2 = isl_basic_map_from_range(isl_basic_set_copy(bset2));
9958 bmap2 = isl_basic_map_move_dims(bmap2, isl_dim_in, 0,
9960 return isl_basic_map_range_product(bmap1, bmap2);
10411 __isl_keep isl_basic_map *bmap2)
10417 if (!bmap1 || !bmap2)
10420 if (bmap1 == bmap2)
10423 space2 = isl_basic_map_peek_space(bmap2);
10428 ISL_F_ISSET(bmap2, ISL_BASIC_MAP_RATIONAL))
10431 ISL_F_ISSET(bmap2, ISL_BASIC_MAP_EMPTY))
10435 if (ISL_F_ISSET(bmap2, ISL_BASIC_MAP_EMPTY))
10437 if (bmap1->n_eq != bmap2->n_eq)
10438 return bmap1->n_eq - bmap2->n_eq;
10439 if (bmap1->n_ineq != bmap2->n_ineq)
10440 return bmap1->n_ineq - bmap2->n_ineq;
10441 if (bmap1->n_div != bmap2->n_div)
10442 return bmap1->n_div - bmap2->n_div;
10447 cmp = isl_seq_cmp(bmap1->eq[i], bmap2->eq[i], 1+total);
10452 cmp = isl_seq_cmp(bmap1->ineq[i], bmap2->ineq[i], 1+total);
10460 unknown2 = isl_basic_map_div_is_marked_unknown(bmap2, i);
10469 cmp = isl_seq_cmp(bmap1->div[i], bmap2->div[i], 1+1+total);
10501 __isl_keep isl_basic_map *bmap2)
10503 if (!bmap1 || !bmap2)
10505 return isl_basic_map_plain_cmp(bmap1, bmap2) == 0;
10518 isl_basic_map *bmap2 = *(isl_basic_map **) p2;
10520 return isl_basic_map_plain_cmp(bmap1, bmap2);
10793 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
10800 if (isl_basic_map_check_equal_params(bmap1, bmap2) < 0)
10803 isl_space_copy(bmap2->dim));
10806 in2 = isl_basic_map_dim(bmap2, isl_dim_in);
10808 out2 = isl_basic_map_dim(bmap2, isl_dim_out);
10811 total = nparam + in1 + in2 + out1 + out2 + bmap1->n_div + bmap2->n_div;
10815 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_param, pos = 0);
10817 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_in, pos += in1);
10819 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_out, pos += out1);
10821 isl_dim_map_div(dim_map2, bmap2, pos += bmap1->n_div);
10824 bmap1->n_div + bmap2->n_div,
10825 bmap1->n_eq + bmap2->n_eq,
10826 bmap1->n_ineq + bmap2->n_ineq);
10828 bmap = isl_basic_map_add_constraints_dim_map(bmap, bmap2, dim_map2);
10833 isl_basic_map_free(bmap2);
10838 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
10842 prod = isl_basic_map_product(bmap1, bmap2);
10854 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
10864 in2 = isl_basic_map_dim(bmap2, isl_dim_in);
10871 space2 = isl_basic_map_get_space(bmap2);
10874 total = nparam + in1 + in2 + out + bmap1->n_div + bmap2->n_div;
10878 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_param, pos = 0);
10880 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_in, pos += in1);
10882 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_out, pos);
10884 isl_dim_map_div(dim_map2, bmap2, pos += bmap1->n_div);
10887 bmap1->n_div + bmap2->n_div,
10888 bmap1->n_eq + bmap2->n_eq,
10889 bmap1->n_ineq + bmap2->n_ineq);
10891 bmap = isl_basic_map_add_constraints_dim_map(bmap, bmap2, dim_map2);
10896 isl_basic_map_free(bmap2);
10901 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
10912 rational = isl_basic_map_is_rational(bmap2);
10915 out2 = isl_basic_map_dim(bmap2, isl_dim_out);
10920 if (isl_basic_map_check_equal_params(bmap1, bmap2) < 0)
10924 isl_space_copy(bmap2->dim));
10926 total = nparam + in + out1 + out2 + bmap1->n_div + bmap2->n_div;
10930 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_param, pos = 0);
10932 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_in, pos);
10934 isl_dim_map_dim(dim_map2, bmap2->dim, isl_dim_out, pos += out1);
10936 isl_dim_map_div(dim_map2, bmap2, pos += bmap1->n_div);
10939 bmap1->n_div + bmap2->n_div,
10940 bmap1->n_eq + bmap2->n_eq,
10941 bmap1->n_ineq + bmap2->n_ineq);
10943 bmap = isl_basic_map_add_constraints_dim_map(bmap, bmap2, dim_map2);
10950 isl_basic_map_free(bmap2);
10955 __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
10959 prod = isl_basic_map_range_product(bmap1, bmap2);
14493 * expressions at position "pos1" in "bmap1" and "pos2" in "bmap2" equal
14499 int pos1, __isl_keep isl_basic_map *bmap2, int pos2,
14504 if (isl_basic_map_check_range(bmap2, isl_dim_div, pos2, 1) < 0)
14507 bmap2->div[pos2] + first, n);
14511 * "pos2" in "bmap2" equal to each other, except that the constant terms
14516 __isl_keep isl_basic_map *bmap2, int pos2)
14522 total2 = isl_basic_map_dim(bmap2, isl_dim_all);
14528 equal = isl_basic_map_equal_div_expr_part(bmap1, pos1, bmap2, pos2,
14532 equal = isl_basic_map_equal_div_expr_part(bmap1, pos1, bmap2, pos2,
14536 return isl_basic_map_equal_div_expr_part(bmap1, pos1, bmap2, pos2,