]> gitweb.michael.orlitzky.com - dunshire.git/commitdiff
Make the c(), G(), and h() methods of games public.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 13 Nov 2016 20:32:43 +0000 (15:32 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 13 Nov 2016 20:32:43 +0000 (15:32 -0500)
These don't really *need* to be public, but having them available and
documented should be helpful to anyone who wants to understand how we
transform our game into a cone program.

dunshire/games.py

index 951c7f4bc16088e4b82cc91cb90eb41c9e90db5f..75f5329bb973e05d9070609fcb77e5eeba80fdee 100644 (file)
@@ -613,7 +613,7 @@ class SymmetricLinearGame:
 
 
 
-    def _G(self):
+    def G(self):
         r"""
         Return the matrix ``G`` used in our CVXOPT construction.
 
@@ -640,7 +640,7 @@ class SymmetricLinearGame:
             >>> e1 = [1,2,3]
             >>> e2 = [1,1,1]
             >>> SLG = SymmetricLinearGame(L, K, e1, e2)
-            >>> print(SLG._G())
+            >>> print(SLG.G())
             [  0.0000000  -1.0000000   0.0000000   0.0000000]
             [  0.0000000   0.0000000  -1.0000000   0.0000000]
             [  0.0000000   0.0000000   0.0000000  -1.0000000]
@@ -655,7 +655,7 @@ class SymmetricLinearGame:
                           append_col(self.e1(), -self.L()))
 
 
-    def _c(self):
+    def c(self):
         """
         Return the vector ``c`` used in our CVXOPT construction.
 
@@ -682,7 +682,7 @@ class SymmetricLinearGame:
             >>> e1 = [1,2,3]
             >>> e2 = [1,1,1]
             >>> SLG = SymmetricLinearGame(L, K, e1, e2)
-            >>> print(SLG._c())
+            >>> print(SLG.c())
             [-1.0000000]
             [ 0.0000000]
             [ 0.0000000]
@@ -723,7 +723,7 @@ class SymmetricLinearGame:
         """
         return CartesianProduct(self._K, self._K)
 
-    def _h(self):
+    def h(self):
         r"""
         Return the ``h`` vector used in our CVXOPT construction.
 
@@ -750,7 +750,7 @@ class SymmetricLinearGame:
             >>> e1 = [1,2,3]
             >>> e2 = [1,1,1]
             >>> SLG = SymmetricLinearGame(L, K, e1, e2)
-            >>> print(SLG._h())
+            >>> print(SLG.h())
             [0.0000000]
             [0.0000000]
             [0.0000000]
@@ -819,7 +819,7 @@ class SymmetricLinearGame:
         dist = self.K().ball_radius(self.e1())
         nu = - self._L_specnorm()/(dist*norm(self.e2()))
         x = matrix([nu, p], (self.dimension() + 1, 1))
-        s = - self._G()*x
+        s = - self.G()*x
 
         return {'x': x, 's': s}
 
@@ -1074,9 +1074,9 @@ class SymmetricLinearGame:
         """
         try:
             opts = {'show_progress': False}
-            soln_dict = solvers.conelp(self._c(),
-                                       self._G(),
-                                       self._h(),
+            soln_dict = solvers.conelp(self.c(),
+                                       self.G(),
+                                       self.h(),
                                        self.C().cvxopt_dims(),
                                        self.A(),
                                        self.b(),
@@ -1186,7 +1186,7 @@ class SymmetricLinearGame:
         1.809...
 
         """
-        return (condition_number(self._G()) + condition_number(self.A()))/2
+        return (condition_number(self.G()) + condition_number(self.A()))/2
 
 
     def dual(self):