isl_ast_build_get_stride: use isl_val
[platform/upstream/isl.git] / include / isl / space.h
index 8a859ae..3ce4102 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright 2008-2009 Katholieke Universiteit Leuven
  *
- * Use of this software is governed by the GNU LGPLv2.1 license
+ * Use of this software is governed by the MIT license
  *
  * Written by Sven Verdoolaege, K.U.Leuven, Departement
  * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
@@ -36,11 +36,18 @@ __isl_give isl_space *isl_space_alloc(isl_ctx *ctx,
                        unsigned nparam, unsigned n_in, unsigned n_out);
 __isl_give isl_space *isl_space_set_alloc(isl_ctx *ctx,
                        unsigned nparam, unsigned dim);
+__isl_give isl_space *isl_space_params_alloc(isl_ctx *ctx, unsigned nparam);
 __isl_give isl_space *isl_space_copy(__isl_keep isl_space *dim);
-void isl_space_free(__isl_take isl_space *dim);
+void *isl_space_free(__isl_take isl_space *dim);
+
+int isl_space_is_params(__isl_keep isl_space *space);
+int isl_space_is_set(__isl_keep isl_space *space);
+int isl_space_is_map(__isl_keep isl_space *space);
 
 __isl_give isl_space *isl_space_set_tuple_name(__isl_take isl_space *dim,
        enum isl_dim_type type, const char *s);
+int isl_space_has_tuple_name(__isl_keep isl_space *space,
+       enum isl_dim_type type);
 const char *isl_space_get_tuple_name(__isl_keep isl_space *dim,
                                 enum isl_dim_type type);
 __isl_give isl_space *isl_space_set_tuple_id(__isl_take isl_space *dim,
@@ -60,7 +67,11 @@ __isl_give isl_id *isl_space_get_dim_id(__isl_keep isl_space *dim,
 
 int isl_space_find_dim_by_id(__isl_keep isl_space *dim, enum isl_dim_type type,
        __isl_keep isl_id *id);
+int isl_space_find_dim_by_name(__isl_keep isl_space *space,
+       enum isl_dim_type type, const char *name);
 
+int isl_space_has_dim_name(__isl_keep isl_space *space,
+       enum isl_dim_type type, unsigned pos);
 __isl_give isl_space *isl_space_set_dim_name(__isl_take isl_space *dim,
                                 enum isl_dim_type type, unsigned pos,
                                 __isl_keep const char *name);
@@ -80,9 +91,13 @@ __isl_give isl_space *isl_space_join(__isl_take isl_space *left,
        __isl_take isl_space *right);
 __isl_give isl_space *isl_space_product(__isl_take isl_space *left,
        __isl_take isl_space *right);
+__isl_give isl_space *isl_space_domain_product(__isl_take isl_space *left,
+       __isl_take isl_space *right);
 __isl_give isl_space *isl_space_range_product(__isl_take isl_space *left,
        __isl_take isl_space *right);
 __isl_give isl_space *isl_space_map_from_set(__isl_take isl_space *dim);
+__isl_give isl_space *isl_space_map_from_domain_and_range(
+       __isl_take isl_space *domain, __isl_take isl_space *range);
 __isl_give isl_space *isl_space_reverse(__isl_take isl_space *dim);
 __isl_give isl_space *isl_space_drop_dims(__isl_take isl_space *dim,
        enum isl_dim_type type, unsigned first, unsigned num);
@@ -95,6 +110,7 @@ __isl_give isl_space *isl_space_from_domain(__isl_take isl_space *dim);
 __isl_give isl_space *isl_space_range(__isl_take isl_space *dim);
 __isl_give isl_space *isl_space_from_range(__isl_take isl_space *dim);
 __isl_give isl_space *isl_space_params(__isl_take isl_space *space);
+__isl_give isl_space *isl_space_set_from_params(__isl_take isl_space *space);
 
 __isl_give isl_space *isl_space_align_params(__isl_take isl_space *dim1,
        __isl_take isl_space *dim2);
@@ -106,7 +122,18 @@ __isl_give isl_space *isl_space_unwrap(__isl_take isl_space *dim);
 int isl_space_can_zip(__isl_keep isl_space *dim);
 __isl_give isl_space *isl_space_zip(__isl_take isl_space *dim);
 
-int isl_space_is_equal(__isl_keep isl_space *dim1, __isl_keep isl_space *dim2);
+int isl_space_can_curry(__isl_keep isl_space *space);
+__isl_give isl_space *isl_space_curry(__isl_take isl_space *space);
+
+int isl_space_can_uncurry(__isl_keep isl_space *space);
+__isl_give isl_space *isl_space_uncurry(__isl_take isl_space *space);
+
+int isl_space_is_domain(__isl_keep isl_space *space1,
+       __isl_keep isl_space *space2);
+int isl_space_is_range(__isl_keep isl_space *space1,
+       __isl_keep isl_space *space2);
+int isl_space_is_equal(__isl_keep isl_space *space1,
+       __isl_keep isl_space *space2);
 int isl_space_match(__isl_keep isl_space *dim1, enum isl_dim_type dim1_type,
        __isl_keep isl_space *dim2, enum isl_dim_type dim2_type);
 int isl_space_tuple_match(__isl_keep isl_space *dim1, enum isl_dim_type dim1_type,