Home | History | Annotate | Download | only in isl
      1 #ifndef ISL_LOCAL_SPACE_H
      2 #define ISL_LOCAL_SPACE_H
      3 
      4 #include <isl/aff_type.h>
      5 #include <isl/space.h>
      6 #include <isl/printer.h>
      7 #include <isl/map_type.h>
      8 
      9 #if defined(__cplusplus)
     10 extern "C" {
     11 #endif
     12 
     13 struct isl_local_space;
     14 typedef struct isl_local_space isl_local_space;
     15 
     16 isl_ctx *isl_local_space_get_ctx(__isl_keep isl_local_space *ls);
     17 
     18 __isl_give isl_local_space *isl_local_space_from_space(__isl_take isl_space *dim);
     19 
     20 __isl_give isl_local_space *isl_local_space_copy(
     21 	__isl_keep isl_local_space *ls);
     22 void *isl_local_space_free(__isl_take isl_local_space *ls);
     23 
     24 int isl_local_space_is_set(__isl_keep isl_local_space *ls);
     25 
     26 int isl_local_space_dim(__isl_keep isl_local_space *ls,
     27 	enum isl_dim_type type);
     28 int isl_local_space_has_dim_name(__isl_keep isl_local_space *ls,
     29 	enum isl_dim_type type, unsigned pos);
     30 const char *isl_local_space_get_dim_name(__isl_keep isl_local_space *ls,
     31 	enum isl_dim_type type, unsigned pos);
     32 __isl_give isl_local_space *isl_local_space_set_dim_name(
     33 	__isl_take isl_local_space *ls,
     34 	enum isl_dim_type type, unsigned pos, const char *s);
     35 int isl_local_space_has_dim_id(__isl_keep isl_local_space *ls,
     36 	enum isl_dim_type type, unsigned pos);
     37 __isl_give isl_id *isl_local_space_get_dim_id(__isl_keep isl_local_space *ls,
     38 	enum isl_dim_type type, unsigned pos);
     39 __isl_give isl_local_space *isl_local_space_set_dim_id(
     40 	__isl_take isl_local_space *ls,
     41 	enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
     42 __isl_give isl_space *isl_local_space_get_space(__isl_keep isl_local_space *ls);
     43 __isl_give isl_aff *isl_local_space_get_div(__isl_keep isl_local_space *ls,
     44 	int pos);
     45 
     46 __isl_give isl_local_space *isl_local_space_domain(
     47 	__isl_take isl_local_space *ls);
     48 __isl_give isl_local_space *isl_local_space_range(
     49 	__isl_take isl_local_space *ls);
     50 __isl_give isl_local_space *isl_local_space_from_domain(
     51 	__isl_take isl_local_space *ls);
     52 __isl_give isl_local_space *isl_local_space_add_dims(
     53 	__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned n);
     54 __isl_give isl_local_space *isl_local_space_drop_dims(
     55 	__isl_take isl_local_space *ls,
     56 	enum isl_dim_type type, unsigned first, unsigned n);
     57 __isl_give isl_local_space *isl_local_space_insert_dims(
     58 	__isl_take isl_local_space *ls,
     59 	enum isl_dim_type type, unsigned first, unsigned n);
     60 
     61 __isl_give isl_local_space *isl_local_space_intersect(
     62 	__isl_take isl_local_space *ls1, __isl_take isl_local_space *ls2);
     63 
     64 int isl_local_space_is_equal(__isl_keep isl_local_space *ls1,
     65 	__isl_keep isl_local_space *ls2);
     66 
     67 __isl_give isl_basic_map *isl_local_space_lifting(
     68 	__isl_take isl_local_space *ls);
     69 
     70 __isl_give isl_printer *isl_printer_print_local_space(__isl_take isl_printer *p,
     71 	__isl_keep isl_local_space *ls);
     72 void isl_local_space_dump(__isl_keep isl_local_space *ls);
     73 
     74 #if defined(__cplusplus)
     75 }
     76 #endif
     77 
     78 #endif
     79