Makefile.am: add isl_val_private.h to libisl.la sources
[platform/upstream/isl.git] / isl_obj.c
index 928982d..7eba671 100644 (file)
--- a/isl_obj.c
+++ b/isl_obj.c
@@ -1,7 +1,7 @@
 /*
  * Copyright 2010      INRIA Saclay
  *
- * Use of this software is governed by the GNU LGPLv2.1 license
+ * Use of this software is governed by the MIT license
  *
  * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France,
  * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod,
@@ -10,6 +10,7 @@
 
 #include <isl/set.h>
 #include <isl/map.h>
+#include <isl/polynomial.h>
 #include <isl/obj.h>
 
 struct isl_int_obj {
@@ -163,6 +164,34 @@ struct isl_obj_vtable isl_obj_int_vtable = {
        isl_obj_int_free
 };
 
+static void *isl_obj_val_copy(void *v)
+{
+       return isl_val_copy((isl_val *)v);
+}
+
+static void isl_obj_val_free(void *v)
+{
+       isl_val_free((isl_val *)v);
+}
+
+static __isl_give isl_printer *isl_obj_val_print(__isl_take isl_printer *p,
+       void *v)
+{
+       return isl_printer_print_val(p, (isl_val *)v);
+}
+
+static void *isl_obj_val_add(void *v1, void *v2)
+{
+       return isl_val_add((isl_val *) v1, (isl_val *) v2);
+}
+
+struct isl_obj_vtable isl_obj_val_vtable = {
+       isl_obj_val_copy,
+       isl_obj_val_add,
+       isl_obj_val_print,
+       isl_obj_val_free
+};
+
 static void *isl_obj_map_copy(void *v)
 {
        return isl_map_copy((struct isl_map *)v);