X-Git-Url: https://scm.cri.mines-paristech.fr/git/linpy.git/blobdiff_plain/1d494bb187b70135df721c13306d7f26fdf33f50..960f0c252361dfd696359f803aae40a9b13b14a6:/pypol/islhelper.py?ds=sidebyside diff --git a/pypol/islhelper.py b/pypol/islhelper.py index 75d90d0..7201882 100644 --- a/pypol/islhelper.py +++ b/pypol/islhelper.py @@ -1,27 +1,51 @@ +# Copyright 2014 MINES ParisTech +# +# 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,9 @@ 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