]> CRI, Mines Paris - PSL - linpy.git/commitdiff
Constant names Empty and Universe, pretty printing
authorVivien Maisonneuve <v.maisonneuve@gmail.com>
Thu, 19 Jun 2014 09:37:48 +0000 (11:37 +0200)
committerVivien Maisonneuve <v.maisonneuve@gmail.com>
Thu, 19 Jun 2014 15:42:10 +0000 (17:42 +0200)
pypol/__init__.py
pypol/linear.py

index a6ea752429f025948fce051a480d4b5ae9ff1f52..7a195ca6194bb58fb936d5ce7be1bd97373243e7 100644 (file)
@@ -4,11 +4,11 @@ A polyhedral library based on ISL.
 
 from .linear import Constant, Symbol, symbols
 from .linear import eq, le, lt, ge, gt
 
 from .linear import Constant, Symbol, symbols
 from .linear import eq, le, lt, ge, gt
-from .linear import empty, universe
+from .linear import Empty, Universe
 
 
 __all__ = [
     'Constant', 'Symbol', 'symbols',
     'eq', 'le', 'lt', 'ge', 'gt',
 
 
 __all__ = [
     'Constant', 'Symbol', 'symbols',
     'eq', 'le', 'lt', 'ge', 'gt',
-    'empty', 'universe'
+    'Empty', 'Universe'
 ]
 ]
index 75ae166bf1a23bd1d2c369a24d7f526b59aa7d52..3cd76335e443cba2cda1c711bb8b1c5f6ac50cbd 100644 (file)
@@ -11,7 +11,7 @@ __all__ = [
     'Expression', 'Constant', 'Symbol', 'symbols',
     'eq', 'le', 'lt', 'ge', 'gt',
     'Polyhedron',
     'Expression', 'Constant', 'Symbol', 'symbols',
     'eq', 'le', 'lt', 'ge', 'gt',
     'Polyhedron',
-    'empty', 'universe'
+    'Empty', 'Universe'
 ]
 
 
 ]
 
 
@@ -527,7 +527,7 @@ class Polyhedron:
         other = other._toisl(symbols)
         difference = libisl.isl_set_subtract(bset, other)
         return difference
         other = other._toisl(symbols)
         difference = libisl.isl_set_subtract(bset, other)
         return difference
-    
+
 
     def __sub__(self, other):
         return self.difference(other)
 
     def __sub__(self, other):
         return self.difference(other)
@@ -541,10 +541,15 @@ class Polyhedron:
         return '{{{}}}'.format(', '.join(constraints))
 
     def __repr__(self):
         return '{{{}}}'.format(', '.join(constraints))
 
     def __repr__(self):
-        equalities = list(self.equalities)
-        inequalities = list(self.inequalities)
-        return '{}(equalities={!r}, inequalities={!r})' \
-                ''.format(self.__class__.__name__, equalities, inequalities)
+        if self.isempty():
+            return 'Empty'
+        elif self.isuniverse():
+            return 'Universe'
+        else:
+            equalities = list(self.equalities)
+            inequalities = list(self.inequalities)
+            return '{}(equalities={!r}, inequalities={!r})' \
+                    ''.format(self.__class__.__name__, equalities, inequalities)
 
     def _symbolunion(self, *others):
         symbols = set(self.symbols)
 
     def _symbolunion(self, *others):
         symbols = set(self.symbols)
@@ -572,7 +577,7 @@ class Polyhedron:
                 num = libisl.isl_val_read_from_str(_main_ctx, number)
                 iden = symbols.index(eq)
                 ceq = libisl.isl_constraint_set_coefficient_val(ceq, libisl.isl_dim_set, iden, num)  #use 3 for type isl_dim_set
                 num = libisl.isl_val_read_from_str(_main_ctx, number)
                 iden = symbols.index(eq)
                 ceq = libisl.isl_constraint_set_coefficient_val(ceq, libisl.isl_dim_set, iden, num)  #use 3 for type isl_dim_set
-            bset = libisl.isl_basic_set_add_constraint(bset, ceq)  
+            bset = libisl.isl_basic_set_add_constraint(bset, ceq)
         for ineq in self.inequalities:
             cin = libisl.isl_inequality_alloc(libisl.isl_local_space_copy(ls))
             coeff_in = dict(ineq.coefficients())
         for ineq in self.inequalities:
             cin = libisl.isl_inequality_alloc(libisl.isl_local_space_copy(ls))
             coeff_in = dict(ineq.coefficients())
@@ -585,7 +590,7 @@ class Polyhedron:
                 num = libisl.isl_val_read_from_str(_main_ctx, number)
                 iden = symbols.index(ineq)
                 cin = libisl.isl_constraint_set_coefficient_val(cin, libisl.isl_dim_set, iden, num)  #use 3 for type isl_dim_set
                 num = libisl.isl_val_read_from_str(_main_ctx, number)
                 iden = symbols.index(ineq)
                 cin = libisl.isl_constraint_set_coefficient_val(cin, libisl.isl_dim_set, iden, num)  #use 3 for type isl_dim_set
-            bset = libisl.isl_basic_set_add_constraint(bset, cin)   
+            bset = libisl.isl_basic_set_add_constraint(bset, cin)
         bset = isl.BasicSet(bset)
         return bset
 
         bset = isl.BasicSet(bset)
         return bset
 
@@ -601,8 +606,8 @@ class Polyhedron:
             our printer is giving form as:
             { [i0, i1] : 2i1 >= -2 - i0 } '''
 
             our printer is giving form as:
             { [i0, i1] : 2i1 >= -2 - i0 } '''
 
-empty = None #eq(0,1)
-universe = None #Polyhedron()
+Empty = eq(0,1)
+Universe = Polyhedron()
 
 if __name__ == '__main__':
     ex1 = Expression(coefficients={'a': 6, 'b': 6}, constant= 3) #this is the expression that does not work (even without adding values)
 
 if __name__ == '__main__':
     ex1 = Expression(coefficients={'a': 6, 'b': 6}, constant= 3) #this is the expression that does not work (even without adding values)