add isl_aff_scale_down_val
[platform/upstream/isl.git] / include / isl / point.h
1 #ifndef ISL_POINT_H
2 #define ISL_POINT_H
3
4 #include <stdio.h>
5 #include <isl/space.h>
6 #include <isl/val.h>
7
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
11
12 struct isl_point;
13 typedef struct isl_point isl_point;
14
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);
17
18 __isl_give isl_point *isl_point_zero(__isl_take isl_space *dim);
19 __isl_give isl_point *isl_point_copy(__isl_keep isl_point *pnt);
20 void isl_point_free(__isl_take isl_point *pnt);
21
22 int isl_point_get_coordinate(__isl_keep isl_point *pnt,
23         enum isl_dim_type type, int pos, isl_int *v);
24 __isl_give isl_val *isl_point_get_coordinate_val(__isl_keep isl_point *pnt,
25         enum isl_dim_type type, int pos);
26 __isl_give isl_point *isl_point_set_coordinate(__isl_take isl_point *pnt,
27         enum isl_dim_type type, int pos, isl_int v);
28 __isl_give isl_point *isl_point_set_coordinate_val(__isl_take isl_point *pnt,
29         enum isl_dim_type type, int pos, __isl_take isl_val *v);
30
31 __isl_give isl_point *isl_point_add_ui(__isl_take isl_point *pnt,
32         enum isl_dim_type type, int pos, unsigned val);
33 __isl_give isl_point *isl_point_sub_ui(__isl_take isl_point *pnt,
34         enum isl_dim_type type, int pos, unsigned val);
35
36 __isl_give isl_point *isl_point_void(__isl_take isl_space *dim);
37 int isl_point_is_void(__isl_keep isl_point *pnt);
38
39 __isl_give isl_printer *isl_printer_print_point(
40         __isl_take isl_printer *printer, __isl_keep isl_point *pnt);
41 void isl_point_dump(__isl_keep isl_point *pnt);
42
43 #if defined(__cplusplus)
44 }
45 #endif
46
47 #include <isl/dim.h>
48
49 #endif