from fractions import Fraction, gcd
-from . import isl, islhelper
-from .isl import libisl, Context, BasicSet
+from . import isl
+from .isl import libisl
__all__ = [
return wrapper
+_main_ctx = isl.Context()
+
+
class Expression:
"""
This class implements linear expressions.
if symbols is None:
symbols = self.symbols()
num_coefficients = len(symbols)
- ctx = Context()
- space = libisl.isl_space_set_alloc(ctx, 0, num_coefficients)
+ space = libisl.isl_space_set_alloc(_main_ctx, 0, num_coefficients)
bset = libisl.isl_basic_set_universe(libisl.isl_space_copy(space))
ls = libisl.isl_local_space_from_space(space)
ceq = libisl.isl_equality_alloc(libisl.isl_local_space_copy(ls))
for eq in coeff_eq:
num = coeff_eq.get(eq)
iden = symbols.index(eq)
- ceq = libisl.isl_constraint_set_coefficient_si(ceq, islhelper.isl_dim_set, iden, num) #use 3 for type isl_dim_set
+ ceq = libisl.isl_constraint_set_coefficient_si(ceq, libisl.isl_dim_set, iden, num) #use 3 for type isl_dim_set
bset = libisl.isl_basic_set_add_constraint(bset, ceq)
if list(self.inequalities): #check if any inequalities exist
for ineq in self.inequalities:
for ineq in coeff_in:
num = coeff_in.get(ineq)
iden = symbols.index(ineq)
- cin = libisl.isl_constraint_set_coefficient_si(cin, islhelper.isl_dim_set, iden, num) #use 3 for type isl_dim_set
+ cin = libisl.isl_constraint_set_coefficient_si(cin, libisl.isl_dim_set, iden, num) #use 3 for type isl_dim_set
bset = libisl.isl_basic_set_add_constraint(bset, cin)
- bset = BasicSet(bset)
+ bset = isl.BasicSet(bset)
return bset
def from_isl(self, bset):