add support for union sets and relations
[platform/upstream/isl.git] / isl_obj.c
index 74b7fab..7438146 100644 (file)
--- a/isl_obj.c
+++ b/isl_obj.c
@@ -38,6 +38,34 @@ struct isl_obj_vtable isl_obj_map_vtable = {
        isl_obj_map_free
 };
 
+static void *isl_obj_union_map_copy(void *v)
+{
+       return isl_union_map_copy((isl_union_map *)v);
+}
+
+static void isl_obj_union_map_free(void *v)
+{
+       isl_union_map_free((isl_union_map *)v);
+}
+
+static __isl_give isl_printer *isl_obj_union_map_print(__isl_take isl_printer *p,
+       void *v)
+{
+       return isl_printer_print_union_map(p, (isl_union_map *)v);
+}
+
+static void *isl_obj_union_map_add(void *v1, void *v2)
+{
+       return isl_union_map_union((isl_union_map *)v1, (isl_union_map *)v2);
+}
+
+struct isl_obj_vtable isl_obj_union_map_vtable = {
+       isl_obj_union_map_copy,
+       isl_obj_union_map_add,
+       isl_obj_union_map_print,
+       isl_obj_union_map_free
+};
+
 static void *isl_obj_set_copy(void *v)
 {
        return isl_set_copy((struct isl_set *)v);
@@ -66,6 +94,34 @@ struct isl_obj_vtable isl_obj_set_vtable = {
        isl_obj_set_free
 };
 
+static void *isl_obj_union_set_copy(void *v)
+{
+       return isl_union_set_copy((isl_union_set *)v);
+}
+
+static void isl_obj_union_set_free(void *v)
+{
+       isl_union_set_free((isl_union_set *)v);
+}
+
+static __isl_give isl_printer *isl_obj_union_set_print(__isl_take isl_printer *p,
+       void *v)
+{
+       return isl_printer_print_union_set(p, (isl_union_set *)v);
+}
+
+static void *isl_obj_union_set_add(void *v1, void *v2)
+{
+       return isl_union_set_union((isl_union_set *)v1, (isl_union_set *)v2);
+}
+
+struct isl_obj_vtable isl_obj_union_set_vtable = {
+       isl_obj_union_set_copy,
+       isl_obj_union_set_add,
+       isl_obj_union_set_print,
+       isl_obj_union_set_free
+};
+
 static void *isl_obj_none_copy(void *v)
 {
        return v;
@@ -123,6 +179,37 @@ struct isl_obj_vtable isl_obj_pw_qpolynomial_vtable = {
        isl_obj_pw_qp_free
 };
 
+static void *isl_obj_union_pw_qp_copy(void *v)
+{
+       return isl_union_pw_qpolynomial_copy((struct isl_union_pw_qpolynomial *)v);
+}
+
+static void isl_obj_union_pw_qp_free(void *v)
+{
+       isl_union_pw_qpolynomial_free((struct isl_union_pw_qpolynomial *)v);
+}
+
+static __isl_give isl_printer *isl_obj_union_pw_qp_print(
+       __isl_take isl_printer *p, void *v)
+{
+       return isl_printer_print_union_pw_qpolynomial(p,
+                                       (struct isl_union_pw_qpolynomial *)v);
+}
+
+static void *isl_obj_union_pw_qp_add(void *v1, void *v2)
+{
+       return isl_union_pw_qpolynomial_add(
+                                       (struct isl_union_pw_qpolynomial *)v1,
+                                       (struct isl_union_pw_qpolynomial *)v2);
+}
+
+struct isl_obj_vtable isl_obj_union_pw_qpolynomial_vtable = {
+       isl_obj_union_pw_qp_copy,
+       isl_obj_union_pw_qp_add,
+       isl_obj_union_pw_qp_print,
+       isl_obj_union_pw_qp_free
+};
+
 static void *isl_obj_pw_qpf_copy(void *v)
 {
        return isl_pw_qpolynomial_fold_copy((struct isl_pw_qpolynomial_fold *)v);
@@ -152,3 +239,34 @@ struct isl_obj_vtable isl_obj_pw_qpolynomial_fold_vtable = {
        isl_obj_pw_qpf_print,
        isl_obj_pw_qpf_free
 };
+
+static void *isl_obj_union_pw_qpf_copy(void *v)
+{
+       return isl_union_pw_qpolynomial_fold_copy((struct isl_union_pw_qpolynomial_fold *)v);
+}
+
+static void isl_obj_union_pw_qpf_free(void *v)
+{
+       isl_union_pw_qpolynomial_fold_free((struct isl_union_pw_qpolynomial_fold *)v);
+}
+
+static __isl_give isl_printer *isl_obj_union_pw_qpf_print(
+       __isl_take isl_printer *p, void *v)
+{
+       return isl_printer_print_union_pw_qpolynomial_fold(p,
+                                   (struct isl_union_pw_qpolynomial_fold *)v);
+}
+
+static void *isl_obj_union_pw_qpf_add(void *v1, void *v2)
+{
+       return isl_union_pw_qpolynomial_fold_add(
+                                   (struct isl_union_pw_qpolynomial_fold *)v1,
+                                   (struct isl_union_pw_qpolynomial_fold *)v2);
+}
+
+struct isl_obj_vtable isl_obj_union_pw_qpolynomial_fold_vtable = {
+       isl_obj_union_pw_qpf_copy,
+       isl_obj_union_pw_qpf_add,
+       isl_obj_union_pw_qpf_print,
+       isl_obj_union_pw_qpf_free
+};