X-Git-Url: https://scm.cri.ensmp.fr/git/linpy.git/blobdiff_plain/1d494bb187b70135df721c13306d7f26fdf33f50..51e97eade63b2f4c7b500feb503436cc4a886e59:/pypol/islhelper.py diff --git a/pypol/islhelper.py b/pypol/islhelper.py index 75d90d0..18e888b 100644 --- a/pypol/islhelper.py +++ b/pypol/islhelper.py @@ -1,27 +1,51 @@ +""" + This file is part of Linpy. + + Linpy is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Linpy is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Linpy. If not, see . +""" + import ctypes, ctypes.util from . import _islhelper -from ._islhelper import isl_basic_set_constraints, isl_set_basic_sets +from ._islhelper import * __all__ = [ 'libisl', + 'isl_version', 'mainctx', 'isl_val_to_int', 'isl_basic_set_to_str', 'isl_basic_set_constraints', 'isl_set_to_str', 'isl_set_basic_sets', + 'isl_set_points', + 'isl_vertices_vertices', + 'isl_multi_aff_to_str', ] 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 +libisl.isl_version.restype = ctypes.c_char_p +isl_version = libisl.isl_version().decode().strip()[len('isl-'):] + mainctx = libisl.isl_ctx_alloc() +libisl.isl_printer_get_str.restype = ctypes.c_char_p + def isl_val_to_int(islval): islpr = libisl.isl_printer_to_str(mainctx) islpr = libisl.isl_printer_print_val(islpr, islval) @@ -39,3 +63,11 @@ def isl_set_to_str(islset): islpr = libisl.isl_printer_print_set(islpr, islset) string = libisl.isl_printer_get_str(islpr).decode() return string + +def isl_multi_aff_to_str(islmaff): + islpr = libisl.isl_printer_to_str(mainctx) + islpr = libisl.isl_printer_print_multi_aff(islpr, islmaff) + string = libisl.isl_printer_get_str(islpr).decode() + return string + +# Copyright 2014 MINES ParisTech