]> gitweb.michael.orlitzky.com - dead/census-tools.git/commitdiff
Added a property for the linear program's epsilon level.
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 10 Jul 2010 01:21:56 +0000 (21:21 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 10 Jul 2010 01:21:56 +0000 (21:21 -0400)
src/LinearProgramming.py

index 4211058df56d904f2d5bae46c22b8e58848b0f35..7ea144bca77b3d1606a6927f713b542f5d275058 100644 (file)
@@ -26,6 +26,12 @@ from lpsolve55 import *
 MINIMIZE = 0
 MAXIMIZE = 1
 
+# "Epsilon levels"
+# Used to control rounding thresholds.
+EPS_TIGHT = 0
+EPS_MEDIUM = 1
+EPS_LOOSE = 2
+EPS_BAGGY = 3
 
 class LinearProgram(object):
     """
@@ -116,6 +122,17 @@ class LinearProgram(object):
             lpsolve('set_rh_vec', self._lp, self._rhs)
 
 
+    @property
+    def eps_level(self):
+        return self._eps_level
+
+    @eps_level.setter
+    def eps_level(self, value):
+        self._eps_level = value
+
+        if self._lp != None:
+            lpsolve('set_epslevel', self._lp, value)
+
 
     @property
     def inequalities(self):
@@ -253,6 +270,7 @@ class LinearProgram(object):
         self._solution_upper_bounds = []
         self._scale_mode = 0
         self._type = MINIMIZE
+        self._eps_level = EPS_MEDIUM
 
 
     def set_all_lp_properties(self):
@@ -277,6 +295,7 @@ class LinearProgram(object):
         self.solution_upper_bounds = self.solution_upper_bounds
         self.scale_mode = self.scale_mode
         self.type = self.type
+        self.eps_level = self.eps_level