Merge branch 'maint'
[platform/upstream/isl.git] / isl_map.c
index 9b9d54b..cfb26fa 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -91,6 +91,12 @@ unsigned isl_basic_map_offset(struct isl_basic_map *bmap,
        }
 }
 
+unsigned isl_basic_set_offset(struct isl_basic_set *bset,
+                                       enum isl_dim_type type)
+{
+       return isl_basic_map_offset(bset, type);
+}
+
 static unsigned map_offset(struct isl_map *map, enum isl_dim_type type)
 {
        return pos(map->dim, type);
@@ -3807,7 +3813,8 @@ struct isl_set *isl_map_range(struct isl_map *map)
 
        if (!map)
                goto error;
-       if (isl_map_dim(map, isl_dim_in) == 0)
+       if (isl_map_dim(map, isl_dim_in) == 0 &&
+           !isl_dim_is_named_or_nested(map->dim, isl_dim_in))
                return (isl_set *)map;
 
        map = isl_map_cow(map);
@@ -5066,7 +5073,7 @@ static struct isl_set *parameter_compute_divs(struct isl_basic_set *bset)
        if (i == bset->n_eq)
                return isl_basic_set_lexmin(bset);
 
-       eq = isl_mat_sub_alloc(bset->ctx, bset->eq, i, bset->n_eq - i,
+       eq = isl_mat_sub_alloc6(bset->ctx, bset->eq, i, bset->n_eq - i,
                0, 1 + nparam);
        eq = isl_mat_cow(eq);
        T = isl_mat_variable_compression(isl_mat_copy(eq), &T2);
@@ -7723,6 +7730,18 @@ int isl_map_is_single_valued(__isl_keep isl_map *map)
        return sv;
 }
 
+int isl_map_is_injective(__isl_keep isl_map *map)
+{
+       int in;
+
+       map = isl_map_copy(map);
+       map = isl_map_reverse(map);
+       in = isl_map_is_single_valued(map);
+       isl_map_free(map);
+
+       return in;
+}
+
 int isl_map_is_bijective(__isl_keep isl_map *map)
 {
        int sv;
@@ -7731,12 +7750,7 @@ int isl_map_is_bijective(__isl_keep isl_map *map)
        if (sv < 0 || !sv)
                return sv;
 
-       map = isl_map_copy(map);
-       map = isl_map_reverse(map);
-       sv = isl_map_is_single_valued(map);
-       isl_map_free(map);
-
-       return sv;
+       return isl_map_is_injective(map);
 }
 
 int isl_set_is_singleton(__isl_keep isl_set *set)