int i;
struct isl_basic_map *bmap;
- map = isl_map_compute_divs(ctx, map);
- map = isl_map_cow(ctx, map);
if (!map)
return NULL;
return bmap;
}
- for (i = 1; i < map->n; ++i)
- map->p[0] = isl_basic_map_align_divs(ctx, map->p[0], map->p[i]);
- for (i = 1; i < map->n; ++i)
- map->p[i] = isl_basic_map_align_divs(ctx, map->p[i], map->p[0]);
+ map = isl_map_align_divs(ctx, map);
+ map = isl_map_cow(ctx, map);
for (i = 0; i < map->n; ++i) {
map->p[i] = isl_basic_map_cow(ctx, map->p[i]);
return NULL;
}
+struct isl_map *isl_map_align_divs(struct isl_ctx *ctx, struct isl_map *map)
+{
+ int i;
+
+ map = isl_map_compute_divs(ctx, map);
+ map = isl_map_cow(ctx, map);
+ if (!map)
+ return NULL;
+
+ for (i = 1; i < map->n; ++i)
+ map->p[0] = isl_basic_map_align_divs(ctx, map->p[0], map->p[i]);
+ for (i = 1; i < map->n; ++i)
+ map->p[i] = isl_basic_map_align_divs(ctx, map->p[i], map->p[0]);
+
+ return map;
+}
+
static struct isl_map *add_cut_constraint(struct isl_ctx *ctx,
struct isl_map *dst,
struct isl_basic_map *src, isl_int *c,
struct isl_map *isl_map_compute_divs(struct isl_ctx *ctx, struct isl_map *map);
struct isl_basic_map *isl_basic_map_align_divs(struct isl_ctx *ctx,
struct isl_basic_map *dst, struct isl_basic_map *src);
+struct isl_map *isl_map_align_divs(struct isl_ctx *ctx, struct isl_map *map);
struct isl_basic_map *isl_basic_map_gauss(struct isl_ctx *ctx,
struct isl_basic_map *bmap, int *progress);
struct isl_basic_set *isl_basic_set_gauss(struct isl_ctx *ctx,