Static functions in isl.c
[linpy.git] / pypol / linear.py
index 8fdece9..eeee698 100644 (file)
@@ -5,8 +5,8 @@ import re
 
 from fractions import Fraction, gcd
 
-from pypol import isl
-from pypol.isl import libisl
+from . import isl
+from .isl import libisl
 
 
 __all__ = [
@@ -355,8 +355,11 @@ class Constant(Expression):
         return bool(self.constant)
 
     def __repr__(self):
-        return '{}({!r})'.format(self.__class__.__name__, self._constant)
-
+        if self.constant.denominator == 1:
+            return '{}({!r})'.format(self.__class__.__name__, self.constant)
+        else:
+            return '{}({!r}, {!r})'.format(self.__class__.__name__,
+                self.constant.numerator, self.constant.denominator)
 
 class Symbol(Expression):
 
@@ -696,7 +699,8 @@ Universe = Polyhedron()
 
 
 if __name__ == '__main__':
-    p1 = Polyhedron('2a + 2b + 1 == 0') # empty
-    print(p1._toisl())
-    p2 = Polyhedron('3x + 2y + 3 == 0') # not empty
-    print(p2._toisl())
+    #p = Polyhedron('2a + 2b + 1 == 0') # empty
+    p = Polyhedron('3x + 2y + 3 == 0, y == 0') # not empty
+    ip = p._toisl()
+    print(ip)
+    print(ip.constraints())