2 * Copyright 2010 INRIA Saclay
4 * Use of this software is governed by the MIT license
6 * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France,
7 * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod,
13 #include <isl/polynomial.h>
16 static void *isl_obj_val_copy(void *v
)
18 return isl_val_copy((isl_val
*)v
);
21 static void isl_obj_val_free(void *v
)
23 isl_val_free((isl_val
*)v
);
26 static __isl_give isl_printer
*isl_obj_val_print(__isl_take isl_printer
*p
,
29 return isl_printer_print_val(p
, (isl_val
*)v
);
32 static void *isl_obj_val_add(void *v1
, void *v2
)
34 return isl_val_add((isl_val
*) v1
, (isl_val
*) v2
);
37 struct isl_obj_vtable isl_obj_val_vtable
= {
44 static void *isl_obj_map_copy(void *v
)
46 return isl_map_copy((struct isl_map
*)v
);
49 static void isl_obj_map_free(void *v
)
51 isl_map_free((struct isl_map
*)v
);
54 static __isl_give isl_printer
*isl_obj_map_print(__isl_take isl_printer
*p
,
57 return isl_printer_print_map(p
, (struct isl_map
*)v
);
60 static void *isl_obj_map_add(void *v1
, void *v2
)
62 return isl_map_union((struct isl_map
*)v1
, (struct isl_map
*)v2
);
65 struct isl_obj_vtable isl_obj_map_vtable
= {
72 static void *isl_obj_union_map_copy(void *v
)
74 return isl_union_map_copy((isl_union_map
*)v
);
77 static void isl_obj_union_map_free(void *v
)
79 isl_union_map_free((isl_union_map
*)v
);
82 static __isl_give isl_printer
*isl_obj_union_map_print(__isl_take isl_printer
*p
,
85 return isl_printer_print_union_map(p
, (isl_union_map
*)v
);
88 static void *isl_obj_union_map_add(void *v1
, void *v2
)
90 return isl_union_map_union((isl_union_map
*)v1
, (isl_union_map
*)v2
);
93 struct isl_obj_vtable isl_obj_union_map_vtable
= {
94 isl_obj_union_map_copy
,
95 isl_obj_union_map_add
,
96 isl_obj_union_map_print
,
97 isl_obj_union_map_free
100 static void *isl_obj_set_copy(void *v
)
102 return isl_set_copy((struct isl_set
*)v
);
105 static void isl_obj_set_free(void *v
)
107 isl_set_free((struct isl_set
*)v
);
110 static __isl_give isl_printer
*isl_obj_set_print(__isl_take isl_printer
*p
,
113 return isl_printer_print_set(p
, (struct isl_set
*)v
);
116 static void *isl_obj_set_add(void *v1
, void *v2
)
118 return isl_set_union((struct isl_set
*)v1
, (struct isl_set
*)v2
);
121 struct isl_obj_vtable isl_obj_set_vtable
= {
128 static void *isl_obj_union_set_copy(void *v
)
130 return isl_union_set_copy((isl_union_set
*)v
);
133 static void isl_obj_union_set_free(void *v
)
135 isl_union_set_free((isl_union_set
*)v
);
138 static __isl_give isl_printer
*isl_obj_union_set_print(__isl_take isl_printer
*p
,
141 return isl_printer_print_union_set(p
, (isl_union_set
*)v
);
144 static void *isl_obj_union_set_add(void *v1
, void *v2
)
146 return isl_union_set_union((isl_union_set
*)v1
, (isl_union_set
*)v2
);
149 struct isl_obj_vtable isl_obj_union_set_vtable
= {
150 isl_obj_union_set_copy
,
151 isl_obj_union_set_add
,
152 isl_obj_union_set_print
,
153 isl_obj_union_set_free
156 static void *isl_obj_none_copy(void *v
)
161 static void isl_obj_none_free(void *v
)
165 static __isl_give isl_printer
*isl_obj_none_print(__isl_take isl_printer
*p
,
171 static void *isl_obj_none_add(void *v1
, void *v2
)
176 struct isl_obj_vtable isl_obj_none_vtable
= {
183 static void *isl_obj_pw_qp_copy(void *v
)
185 return isl_pw_qpolynomial_copy((struct isl_pw_qpolynomial
*)v
);
188 static void isl_obj_pw_qp_free(void *v
)
190 isl_pw_qpolynomial_free((struct isl_pw_qpolynomial
*)v
);
193 static __isl_give isl_printer
*isl_obj_pw_qp_print(__isl_take isl_printer
*p
,
196 return isl_printer_print_pw_qpolynomial(p
,
197 (struct isl_pw_qpolynomial
*)v
);
200 static void *isl_obj_pw_qp_add(void *v1
, void *v2
)
202 return isl_pw_qpolynomial_add((struct isl_pw_qpolynomial
*)v1
,
203 (struct isl_pw_qpolynomial
*)v2
);
206 struct isl_obj_vtable isl_obj_pw_qpolynomial_vtable
= {
213 static void *isl_obj_union_pw_qp_copy(void *v
)
215 return isl_union_pw_qpolynomial_copy((struct isl_union_pw_qpolynomial
*)v
);
218 static void isl_obj_union_pw_qp_free(void *v
)
220 isl_union_pw_qpolynomial_free((struct isl_union_pw_qpolynomial
*)v
);
223 static __isl_give isl_printer
*isl_obj_union_pw_qp_print(
224 __isl_take isl_printer
*p
, void *v
)
226 return isl_printer_print_union_pw_qpolynomial(p
,
227 (struct isl_union_pw_qpolynomial
*)v
);
230 static void *isl_obj_union_pw_qp_add(void *v1
, void *v2
)
232 return isl_union_pw_qpolynomial_add(
233 (struct isl_union_pw_qpolynomial
*)v1
,
234 (struct isl_union_pw_qpolynomial
*)v2
);
237 struct isl_obj_vtable isl_obj_union_pw_qpolynomial_vtable
= {
238 isl_obj_union_pw_qp_copy
,
239 isl_obj_union_pw_qp_add
,
240 isl_obj_union_pw_qp_print
,
241 isl_obj_union_pw_qp_free
244 static void *isl_obj_pw_qpf_copy(void *v
)
246 return isl_pw_qpolynomial_fold_copy((struct isl_pw_qpolynomial_fold
*)v
);
249 static void isl_obj_pw_qpf_free(void *v
)
251 isl_pw_qpolynomial_fold_free((struct isl_pw_qpolynomial_fold
*)v
);
254 static __isl_give isl_printer
*isl_obj_pw_qpf_print(__isl_take isl_printer
*p
,
257 return isl_printer_print_pw_qpolynomial_fold(p
,
258 (struct isl_pw_qpolynomial_fold
*)v
);
261 static void *isl_obj_pw_qpf_add(void *v1
, void *v2
)
263 return isl_pw_qpolynomial_fold_fold((struct isl_pw_qpolynomial_fold
*)v1
,
264 (struct isl_pw_qpolynomial_fold
*)v2
);
267 struct isl_obj_vtable isl_obj_pw_qpolynomial_fold_vtable
= {
270 isl_obj_pw_qpf_print
,
274 static void *isl_obj_union_pw_qpf_copy(void *v
)
276 return isl_union_pw_qpolynomial_fold_copy((struct isl_union_pw_qpolynomial_fold
*)v
);
279 static void isl_obj_union_pw_qpf_free(void *v
)
281 isl_union_pw_qpolynomial_fold_free((struct isl_union_pw_qpolynomial_fold
*)v
);
284 static __isl_give isl_printer
*isl_obj_union_pw_qpf_print(
285 __isl_take isl_printer
*p
, void *v
)
287 return isl_printer_print_union_pw_qpolynomial_fold(p
,
288 (struct isl_union_pw_qpolynomial_fold
*)v
);
291 static void *isl_obj_union_pw_qpf_add(void *v1
, void *v2
)
293 return isl_union_pw_qpolynomial_fold_fold(
294 (struct isl_union_pw_qpolynomial_fold
*)v1
,
295 (struct isl_union_pw_qpolynomial_fold
*)v2
);
298 struct isl_obj_vtable isl_obj_union_pw_qpolynomial_fold_vtable
= {
299 isl_obj_union_pw_qpf_copy
,
300 isl_obj_union_pw_qpf_add
,
301 isl_obj_union_pw_qpf_print
,
302 isl_obj_union_pw_qpf_free