X-Git-Url: https://scm.cri.ensmp.fr/git/linpy.git/blobdiff_plain/66e41ccd173874b3309e4c24be64c7b6b2ac6298..1d494bb187b70135df721c13306d7f26fdf33f50:/pypol/islhelper.py diff --git a/pypol/islhelper.py b/pypol/islhelper.py new file mode 100644 index 0000000..75d90d0 --- /dev/null +++ b/pypol/islhelper.py @@ -0,0 +1,41 @@ +import ctypes, ctypes.util + +from . import _islhelper +from ._islhelper import isl_basic_set_constraints, isl_set_basic_sets + + +__all__ = [ + 'libisl', + 'mainctx', + 'isl_val_to_int', + 'isl_basic_set_to_str', 'isl_basic_set_constraints', + 'isl_set_to_str', 'isl_set_basic_sets', +] + + +libisl = ctypes.CDLL(ctypes.util.find_library('isl')) + +libisl.isl_printer_get_str.restype = ctypes.c_char_p +libisl.isl_dim_set = _islhelper.dim_set + + +mainctx = libisl.isl_ctx_alloc() + + +def isl_val_to_int(islval): + islpr = libisl.isl_printer_to_str(mainctx) + islpr = libisl.isl_printer_print_val(islpr, islval) + string = libisl.isl_printer_get_str(islpr).decode() + return int(string) + +def isl_basic_set_to_str(islbset): + islpr = libisl.isl_printer_to_str(mainctx) + islpr = libisl.isl_printer_print_basic_set(islpr, islbset) + string = libisl.isl_printer_get_str(islpr).decode() + return string + +def isl_set_to_str(islset): + islpr = libisl.isl_printer_to_str(mainctx) + islpr = libisl.isl_printer_print_set(islpr, islset) + string = libisl.isl_printer_get_str(islpr).decode() + return string