X-Git-Url: https://scm.cri.mines-paristech.fr/git/linpy.git/blobdiff_plain/6a1d02bd5c59e77c8333ccb4b54d6d2025c493ca..b8db6f46d0b4d551cf1f42bff160493de84168be:/pypol/isl.py diff --git a/pypol/isl.py b/pypol/isl.py index 0513358..dcd2496 100644 --- a/pypol/isl.py +++ b/pypol/isl.py @@ -1,8 +1,3 @@ -""" -note: for islpy -isl format: basic set: ("{[x, y] : x >= 0 and x < 5 and y >= 0 and y < x+4 }") -""" - import ctypes, ctypes.util import functools import math @@ -10,10 +5,13 @@ import numbers import operator import re +from . import _isl + libisl = ctypes.CDLL(ctypes.util.find_library('isl')) libisl.isl_printer_get_str.restype = ctypes.c_char_p +libisl.isl_dim_set = _isl.isl_dim_set class IslObject: @@ -50,6 +48,8 @@ class BasicSet(IslObject): ctx = libisl.isl_local_space_get_ctx(ls) p = libisl.isl_printer_to_str(ctx) p = libisl.isl_printer_print_basic_set(p, self) - string = libisl.isl_printer_get_str(p) - string = str(string.decode()) + string = libisl.isl_printer_get_str(p).decode() return string + + def __del__(self): + libisl.isl_basic_set_free(self)