add isl_multi_*_scale_multi_val
[isl.git] / include / isl / multi.h
blob43f64c1b18fdd75dc36f53c6ef390cd01f335fd8
1 #ifndef ISL_MULTI_H
2 #define ISL_MULTI_H
4 #include <isl/space.h>
5 #include <isl/list.h>
7 #if defined(__cplusplus)
8 extern "C" {
9 #endif
11 #define ISL_DECLARE_MULTI(BASE) \
12 unsigned isl_multi_##BASE##_dim(__isl_keep isl_multi_##BASE *multi, \
13 enum isl_dim_type type); \
14 isl_ctx *isl_multi_##BASE##_get_ctx( \
15 __isl_keep isl_multi_##BASE *multi); \
16 __isl_give isl_space *isl_multi_##BASE##_get_space( \
17 __isl_keep isl_multi_##BASE *multi); \
18 __isl_give isl_space *isl_multi_##BASE##_get_domain_space( \
19 __isl_keep isl_multi_##BASE *multi); \
20 __isl_give isl_multi_##BASE *isl_multi_##BASE##_from_##BASE##_list( \
21 __isl_take isl_space *space, __isl_take isl_##BASE##_list *list); \
22 __isl_give isl_multi_##BASE *isl_multi_##BASE##_zero( \
23 __isl_take isl_space *space); \
24 __isl_give isl_multi_##BASE *isl_multi_##BASE##_copy( \
25 __isl_keep isl_multi_##BASE *multi); \
26 void *isl_multi_##BASE##_free(__isl_take isl_multi_##BASE *multi); \
27 __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_dim_name( \
28 __isl_take isl_multi_##BASE *multi, \
29 enum isl_dim_type type, unsigned pos, const char *s); \
30 const char *isl_multi_##BASE##_get_tuple_name( \
31 __isl_keep isl_multi_##BASE *multi, enum isl_dim_type type); \
32 __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_tuple_name( \
33 __isl_take isl_multi_##BASE *multi, \
34 enum isl_dim_type type, const char *s); \
35 __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_tuple_id( \
36 __isl_take isl_multi_##BASE *multi, \
37 enum isl_dim_type type, __isl_take isl_id *id); \
38 __isl_give isl_multi_##BASE *isl_multi_##BASE##_insert_dims( \
39 __isl_take isl_multi_##BASE *multi, enum isl_dim_type type, \
40 unsigned first, unsigned n); \
41 __isl_give isl_multi_##BASE *isl_multi_##BASE##_add_dims( \
42 __isl_take isl_multi_##BASE *multi, enum isl_dim_type type, \
43 unsigned n); \
44 __isl_give isl_multi_##BASE *isl_multi_##BASE##_drop_dims( \
45 __isl_take isl_multi_##BASE *multi, enum isl_dim_type type, \
46 unsigned first, unsigned n); \
47 __isl_give isl_##BASE *isl_multi_##BASE##_get_##BASE( \
48 __isl_keep isl_multi_##BASE *multi, int pos); \
49 __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_##BASE( \
50 __isl_take isl_multi_##BASE *multi, int pos, \
51 __isl_take isl_##BASE *el); \
52 __isl_give isl_multi_##BASE *isl_multi_##BASE##_range_splice( \
53 __isl_take isl_multi_##BASE *multi1, unsigned pos, \
54 __isl_take isl_multi_##BASE *multi2); \
55 __isl_give isl_multi_##BASE *isl_multi_##BASE##_splice( \
56 __isl_take isl_multi_##BASE *multi1, unsigned in_pos, \
57 unsigned out_pos, __isl_take isl_multi_##BASE *multi2); \
58 __isl_give isl_multi_##BASE *isl_multi_##BASE##_flat_range_product( \
59 __isl_take isl_multi_##BASE *multi1, \
60 __isl_take isl_multi_##BASE *multi2); \
61 __isl_give isl_multi_##BASE *isl_multi_##BASE##_range_product( \
62 __isl_take isl_multi_##BASE *multi1, \
63 __isl_take isl_multi_##BASE *multi2); \
64 __isl_give isl_multi_##BASE *isl_multi_##BASE##_scale_val( \
65 __isl_take isl_multi_##BASE *multi, __isl_take isl_val *v); \
66 __isl_give isl_multi_##BASE *isl_multi_##BASE##_scale_multi_val( \
67 __isl_take isl_multi_##BASE *multi, \
68 __isl_take isl_multi_val *mv); \
69 __isl_give isl_multi_##BASE *isl_multi_##BASE##_align_params( \
70 __isl_take isl_multi_##BASE *multi, \
71 __isl_take isl_space *model);
73 #if defined(__cplusplus)
75 #endif
77 #endif