isl_ast_codegen.c: add_domain: only take single copy of inverse schedule
[isl.git] / include / isl / point.h
blob0f907ed718ef66d957bd1765654fa9e86331d6c7
1 #ifndef ISL_POINT_H
2 #define ISL_POINT_H
4 #include <stdio.h>
5 #include <isl/space_type.h>
6 #include <isl/val_type.h>
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
12 struct __isl_subclass(isl_basic_set) isl_point;
13 typedef struct isl_point isl_point;
15 isl_ctx *isl_point_get_ctx(__isl_keep isl_point *pnt);
16 __isl_give isl_space *isl_point_get_space(__isl_keep isl_point *pnt);
18 __isl_give isl_point *isl_point_zero(__isl_take isl_space *space);
19 __isl_give isl_point *isl_point_copy(__isl_keep isl_point *pnt);
20 __isl_null isl_point *isl_point_free(__isl_take isl_point *pnt);
22 __isl_give isl_val *isl_point_get_coordinate_val(__isl_keep isl_point *pnt,
23 enum isl_dim_type type, int pos);
24 __isl_give isl_point *isl_point_set_coordinate_val(__isl_take isl_point *pnt,
25 enum isl_dim_type type, int pos, __isl_take isl_val *v);
26 __isl_export
27 __isl_give isl_multi_val *isl_point_get_multi_val(__isl_keep isl_point *pnt);
29 __isl_give isl_point *isl_point_add_ui(__isl_take isl_point *pnt,
30 enum isl_dim_type type, int pos, unsigned val);
31 __isl_give isl_point *isl_point_sub_ui(__isl_take isl_point *pnt,
32 enum isl_dim_type type, int pos, unsigned val);
34 __isl_give isl_point *isl_point_void(__isl_take isl_space *space);
35 isl_bool isl_point_is_void(__isl_keep isl_point *pnt);
37 __isl_give isl_printer *isl_printer_print_point(
38 __isl_take isl_printer *printer, __isl_keep isl_point *pnt);
39 __isl_give char *isl_point_to_str(__isl_keep isl_point *pnt);
40 void isl_point_dump(__isl_keep isl_point *pnt);
42 #if defined(__cplusplus)
44 #endif
46 #endif