reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
903 if (!bmap) 906 if (bmap->n_div == 0) 907 return bmap; 909 if (bmap->n_eq == 0) 910 return bmap; 912 if (ISL_F_ISSET(bmap, ISL_BASIC_MAP_NORMALIZED_DIVS)) 913 return bmap; 915 total = isl_space_dim(bmap->dim, isl_dim_all); 916 div_eq = n_pure_div_eq(bmap); 918 return bmap; 920 if (div_eq < bmap->n_eq) { 921 B = isl_mat_sub_alloc6(bmap->ctx, bmap->eq, div_eq, 921 B = isl_mat_sub_alloc6(bmap->ctx, bmap->eq, div_eq, 922 bmap->n_eq - div_eq, 0, 1 + total); 927 bmap = isl_basic_map_set_to_empty(bmap); 927 bmap = isl_basic_map_set_to_empty(bmap); 934 d = isl_vec_alloc(bmap->ctx, div_eq); 937 for (i = 0, j = bmap->n_div-1; i < div_eq; ++i) { 938 while (j >= 0 && isl_int_is_zero(bmap->eq[i][1 + total + j])) 940 isl_int_set(d->block.data[i], bmap->eq[i][1 + total + j]); 942 B = isl_mat_sub_alloc6(bmap->ctx, bmap->eq, 0, div_eq, 0, 1 + total); 942 B = isl_mat_sub_alloc6(bmap->ctx, bmap->eq, 0, div_eq, 0, 1 + total); 953 bmap = isl_basic_map_set_to_empty(bmap); 953 bmap = isl_basic_map_set_to_empty(bmap); 966 pos = isl_alloc_array(bmap->ctx, int, T->n_row); 971 for (j = bmap->n_div - 1; j >= 0; --j) { 972 for (i = 0; i < bmap->n_eq; ++i) 973 if (!isl_int_is_zero(bmap->eq[i][1 + total + j])) 975 if (i < bmap->n_eq) { 976 bmap = isl_basic_map_drop_div(bmap, j); 976 bmap = isl_basic_map_drop_div(bmap, j); 977 isl_basic_map_drop_equality(bmap, i); 990 bmap = isl_basic_map_extend_space(bmap, isl_space_copy(bmap->dim), 990 bmap = isl_basic_map_extend_space(bmap, isl_space_copy(bmap->dim), 990 bmap = isl_basic_map_extend_space(bmap, isl_space_copy(bmap->dim), 992 if (!bmap) 998 k = isl_basic_map_alloc_div(bmap); 1000 isl_seq_clr(bmap->div[k] + 1, 1 + total + bmap->n_div); 1000 isl_seq_clr(bmap->div[k] + 1, 1 + total + bmap->n_div); 1001 isl_int_set(bmap->div[k][0], T->row[i][i]); 1003 isl_seq_cpy(bmap->div[k] + 1, C2->row[i], 1 + total); 1005 isl_int_set_si(bmap->div[k][1 + i], 1); 1010 isl_seq_submul(bmap->div[k] + 1, T->row[i][j], 1013 isl_int_neg(bmap->div[k][1 + pos[j]], 1016 j = isl_basic_map_alloc_equality(bmap); 1017 isl_seq_neg(bmap->eq[j], bmap->div[k]+1, 1+total+bmap->n_div); 1017 isl_seq_neg(bmap->eq[j], bmap->div[k]+1, 1+total+bmap->n_div); 1017 isl_seq_neg(bmap->eq[j], bmap->div[k]+1, 1+total+bmap->n_div); 1018 isl_int_set(bmap->eq[j][pos[i]], bmap->div[k][0]); 1018 isl_int_set(bmap->eq[j][pos[i]], bmap->div[k][0]); 1027 ISL_F_SET(bmap, ISL_BASIC_MAP_NORMALIZED_DIVS); 1029 return bmap; 1035 return bmap;