]> gitweb.michael.orlitzky.com - dunshire.git/log
dunshire.git
8 years agoAdd a new unit test suite for the dunshire.matrices module.
Michael Orlitzky [Tue, 1 Nov 2016 18:36:54 +0000 (14:36 -0400)]
Add a new unit test suite for the dunshire.matrices module.

8 years agoEnable and fix doctests for the new randomgen module.
Michael Orlitzky [Tue, 1 Nov 2016 17:20:05 +0000 (13:20 -0400)]
Enable and fix doctests for the new randomgen module.

8 years agoFactor out the random test generation code into a new module.
Michael Orlitzky [Tue, 1 Nov 2016 17:15:28 +0000 (13:15 -0400)]
Factor out the random test generation code into a new module.

8 years agoMake the SymmetricLinearGame.condition() method public.
Michael Orlitzky [Tue, 1 Nov 2016 17:14:50 +0000 (13:14 -0400)]
Make the SymmetricLinearGame.condition() method public.

8 years agoFix a pylint warning in the matrices module.
Michael Orlitzky [Tue, 1 Nov 2016 17:11:56 +0000 (13:11 -0400)]
Fix a pylint warning in the matrices module.

8 years agoFix a pylint warning for a top-level variable name in test/__main__.py.
Michael Orlitzky [Tue, 1 Nov 2016 17:07:08 +0000 (13:07 -0400)]
Fix a pylint warning for a top-level variable name in test/__main__.py.

8 years agoUse a shebang for the main test executable.
Michael Orlitzky [Tue, 1 Nov 2016 16:27:56 +0000 (12:27 -0400)]
Use a shebang for the main test executable.

This replaces the "python test/" call with "./test/__main__py". It
may seem like a pointless change, but the former will always use
whatever "python" points to, and the latter will use the contents of
the shebang in "__main__.py". Distributions can fix the shebang on
that one file to ensure that the test suite is run with the proper
version of python.

8 years agoRemove some debug print() statements and fix a copy-paste-o in the tests.
Michael Orlitzky [Tue, 1 Nov 2016 12:57:29 +0000 (08:57 -0400)]
Remove some debug print() statements and fix a copy-paste-o in the tests.

8 years agoAdd another failing test TODO, and one about a payoff() method.
Michael Orlitzky [Tue, 1 Nov 2016 12:57:05 +0000 (08:57 -0400)]
Add another failing test TODO, and one about a payoff() method.

8 years agoAdd another testing TODO.
Michael Orlitzky [Tue, 1 Nov 2016 01:50:02 +0000 (21:50 -0400)]
Add another testing TODO.

8 years agoOverhaul the tests to get more predictable behavior.
Michael Orlitzky [Tue, 1 Nov 2016 00:15:50 +0000 (20:15 -0400)]
Overhaul the tests to get more predictable behavior.

The most important change to the SymmetricLinearGame tests is that we
now check the condition numbers of the generated games. That prevents
most of the numerical trouble experienced before, and solves a few
open TODO items.

A RANDOM_MAX constant was introduced, and incorporated into the fudge
factor for the absolute tolerance used in tests. That contributes to
fixing the open TODO items as well.

The test code itself is pretty ugly now, but it can be fixed once they
all pass reliably (there's still a Lyapunov-like test failing).

8 years agoSet options.ABS_TOL to 1e-7; we should adjust it elsewhere if needed.
Michael Orlitzky [Tue, 1 Nov 2016 00:11:26 +0000 (20:11 -0400)]
Set options.ABS_TOL to 1e-7; we should adjust it elsewhere if needed.

8 years agoAdd a fudge factor of two when checking "unknown" conelp results.
Michael Orlitzky [Tue, 1 Nov 2016 00:10:51 +0000 (20:10 -0400)]
Add a fudge factor of two when checking "unknown" conelp results.

8 years agoAdd two more TODOs, one minor, and one bad test failure.
Michael Orlitzky [Tue, 1 Nov 2016 00:10:24 +0000 (20:10 -0400)]
Add two more TODOs, one minor, and one bad test failure.

8 years agoHalve the definition of the condition number of a game.
Michael Orlitzky [Sun, 30 Oct 2016 22:51:57 +0000 (18:51 -0400)]
Halve the definition of the condition number of a game.

8 years agoAdd a TODO to avoid comparing floats in doctests.
Michael Orlitzky [Sun, 30 Oct 2016 22:44:33 +0000 (18:44 -0400)]
Add a TODO to avoid comparing floats in doctests.

8 years agoAdd the condition number of the game to its string representation.
Michael Orlitzky [Sun, 30 Oct 2016 21:24:30 +0000 (17:24 -0400)]
Add the condition number of the game to its string representation.

8 years agoAdd a PoorScalingException for the "math domain errors" that haunt me.
Michael Orlitzky [Sun, 30 Oct 2016 20:40:58 +0000 (16:40 -0400)]
Add a PoorScalingException for the "math domain errors" that haunt me.

8 years agoDocument a missing parameter for GameUnsolvableExceptions.
Michael Orlitzky [Sun, 30 Oct 2016 20:40:32 +0000 (16:40 -0400)]
Document a missing parameter for GameUnsolvableExceptions.

8 years agoAdd the condition_number() function to the matrices module.
Michael Orlitzky [Sun, 30 Oct 2016 20:27:45 +0000 (16:27 -0400)]
Add the condition_number() function to the matrices module.

8 years agoAdd a "typecode" parameter to the identity() matrix function.
Michael Orlitzky [Sun, 30 Oct 2016 20:27:12 +0000 (16:27 -0400)]
Add a "typecode" parameter to the identity() matrix function.

8 years agoAdd yet another TODO for failing tests.
Michael Orlitzky [Sun, 30 Oct 2016 19:19:56 +0000 (15:19 -0400)]
Add yet another TODO for failing tests.

8 years agoExit with a non-zero code when the test suite fails.
Michael Orlitzky [Sun, 30 Oct 2016 17:39:08 +0000 (13:39 -0400)]
Exit with a non-zero code when the test suite fails.

8 years agoAdd two more TODOs concerning failing tests.
Michael Orlitzky [Sun, 30 Oct 2016 17:38:31 +0000 (13:38 -0400)]
Add two more TODOs concerning failing tests.

8 years agoClean up a few pylint warnings and make "doc" a phony target.
Michael Orlitzky [Wed, 26 Oct 2016 18:31:34 +0000 (14:31 -0400)]
Clean up a few pylint warnings and make "doc" a phony target.

8 years agoUpdate Sphinx with the new directory structure.
Michael Orlitzky [Wed, 26 Oct 2016 18:16:20 +0000 (14:16 -0400)]
Update Sphinx with the new directory structure.

8 years agoAdd setup.py and reorganize everything to make its "test" command happy.
Michael Orlitzky [Wed, 26 Oct 2016 18:05:20 +0000 (14:05 -0400)]
Add setup.py and reorganize everything to make its "test" command happy.

8 years agoRemove a unicode hyphen from a reference.
Michael Orlitzky [Wed, 26 Oct 2016 18:05:00 +0000 (14:05 -0400)]
Remove a unicode hyphen from a reference.

8 years agoAdd the AGPL3 license.
Michael Orlitzky [Wed, 26 Oct 2016 17:07:59 +0000 (13:07 -0400)]
Add the AGPL3 license.

8 years agoPylint cleanup for tests.
Michael Orlitzky [Sun, 16 Oct 2016 04:51:24 +0000 (00:51 -0400)]
Pylint cleanup for tests.

8 years agoRemove two more defunct TODO items.
Michael Orlitzky [Sun, 16 Oct 2016 04:43:43 +0000 (00:43 -0400)]
Remove two more defunct TODO items.

8 years agoPrint the game data along with every GameUnsolvableException.
Michael Orlitzky [Sun, 16 Oct 2016 04:42:48 +0000 (00:42 -0400)]
Print the game data along with every GameUnsolvableException.

8 years agoRename "xi" and "gamma" to "p" and "q" to avoid name clashes with CVXOPT.
Michael Orlitzky [Sun, 16 Oct 2016 04:24:05 +0000 (00:24 -0400)]
Rename "xi" and "gamma" to "p" and "q" to avoid name clashes with CVXOPT.

8 years agoRemove a few completed TODO items.
Michael Orlitzky [Sun, 16 Oct 2016 01:49:12 +0000 (21:49 -0400)]
Remove a few completed TODO items.

8 years agoSeparate and organize the various documentation sections.
Michael Orlitzky [Sun, 16 Oct 2016 01:48:16 +0000 (21:48 -0400)]
Separate and organize the various documentation sections.

8 years agoReorganize the test source code and doc building.
Michael Orlitzky [Sun, 16 Oct 2016 01:12:16 +0000 (21:12 -0400)]
Reorganize the test source code and doc building.

8 years agoMove unit test code into its own file (unders test/ instead of src/).
Michael Orlitzky [Sat, 15 Oct 2016 23:49:48 +0000 (19:49 -0400)]
Move unit test code into its own file (unders test/ instead of src/).

8 years agoAdd another TODO.
Michael Orlitzky [Sat, 15 Oct 2016 22:55:09 +0000 (18:55 -0400)]
Add another TODO.

8 years agoSwitch to Mathjax for the docs and finish the "Background" section.
Michael Orlitzky [Sat, 15 Oct 2016 22:53:59 +0000 (18:53 -0400)]
Switch to Mathjax for the docs and finish the "Background" section.

8 years agoRemove a completed TODO.
Michael Orlitzky [Sat, 15 Oct 2016 21:54:12 +0000 (17:54 -0400)]
Remove a completed TODO.

8 years agoEnable doctesting of ReST docs with `make doctest`.
Michael Orlitzky [Sat, 15 Oct 2016 21:53:48 +0000 (17:53 -0400)]
Enable doctesting of ReST docs with `make doctest`.

8 years agoDo a bunch more README work.
Michael Orlitzky [Fri, 14 Oct 2016 23:05:37 +0000 (19:05 -0400)]
Do a bunch more README work.

8 years agoAdd one more TODO.
Michael Orlitzky [Fri, 14 Oct 2016 23:04:06 +0000 (19:04 -0400)]
Add one more TODO.

8 years agoTweak the makefile now that the imports work better.
Michael Orlitzky [Fri, 14 Oct 2016 22:48:44 +0000 (18:48 -0400)]
Tweak the makefile now that the imports work better.

8 years agoClean up a bit of the import mess.
Michael Orlitzky [Fri, 14 Oct 2016 22:45:26 +0000 (18:45 -0400)]
Clean up a bit of the import mess.

8 years agoRemove docs with `make clean`.
Michael Orlitzky [Fri, 14 Oct 2016 17:47:23 +0000 (13:47 -0400)]
Remove docs with `make clean`.

8 years agoDo a bunch more work on the intro/background.
Michael Orlitzky [Fri, 14 Oct 2016 17:47:10 +0000 (13:47 -0400)]
Do a bunch more work on the intro/background.

8 years agoBegin writing the background/introduction material.
Michael Orlitzky [Fri, 14 Oct 2016 14:29:56 +0000 (10:29 -0400)]
Begin writing the background/introduction material.

8 years agoLocally disable another pylint warning to get clean again.
Michael Orlitzky [Thu, 13 Oct 2016 23:38:12 +0000 (19:38 -0400)]
Locally disable another pylint warning to get clean again.

8 years agoFiddle with the pylint settings.
Michael Orlitzky [Thu, 13 Oct 2016 23:24:05 +0000 (19:24 -0400)]
Fiddle with the pylint settings.

8 years agoMake sure SymmetricPSD doesn't contain asymmetric matrices.
Michael Orlitzky [Thu, 13 Oct 2016 23:14:26 +0000 (19:14 -0400)]
Make sure SymmetricPSD doesn't contain asymmetric matrices.

8 years agoEliminate some unused variables by slicing a tuple before assignment.
Michael Orlitzky [Thu, 13 Oct 2016 23:08:44 +0000 (19:08 -0400)]
Eliminate some unused variables by slicing a tuple before assignment.

8 years agoFix two more pylint bad-variable-name warnings.
Michael Orlitzky [Thu, 13 Oct 2016 23:04:44 +0000 (19:04 -0400)]
Fix two more pylint bad-variable-name warnings.

8 years agoAdd a .pylintrc file and fix a few warnings.
Michael Orlitzky [Thu, 13 Oct 2016 23:02:20 +0000 (19:02 -0400)]
Add a .pylintrc file and fix a few warnings.

8 years agoAdd tests for Lyapunov games over the ice-cream cone.
Michael Orlitzky [Thu, 13 Oct 2016 18:17:54 +0000 (14:17 -0400)]
Add tests for Lyapunov games over the ice-cream cone.

8 years agoReturn CVXOPT matrices from the random matrix functions.
Michael Orlitzky [Thu, 13 Oct 2016 16:33:31 +0000 (12:33 -0400)]
Return CVXOPT matrices from the random matrix functions.

8 years agoTest the dual game value of a Lyapunov game over the orthant.
Michael Orlitzky [Thu, 13 Oct 2016 16:21:56 +0000 (12:21 -0400)]
Test the dual game value of a Lyapunov game over the orthant.

8 years agoRemove unused import.
Michael Orlitzky [Thu, 13 Oct 2016 16:16:32 +0000 (12:16 -0400)]
Remove unused import.

8 years agoAdd another TODO for Lyapunov game tests.
Michael Orlitzky [Thu, 13 Oct 2016 12:44:57 +0000 (08:44 -0400)]
Add another TODO for Lyapunov game tests.

8 years agoAdd a test for Lyapunov games over the orthant.
Michael Orlitzky [Thu, 13 Oct 2016 12:44:03 +0000 (08:44 -0400)]
Add a test for Lyapunov games over the orthant.

8 years agoAdd eigenvalues_re() to compute real parts of eigenvalues of any matrix.
Michael Orlitzky [Thu, 13 Oct 2016 12:32:19 +0000 (08:32 -0400)]
Add eigenvalues_re() to compute real parts of eigenvalues of any matrix.

8 years agoRefactor the random matrix functions a bit.
Michael Orlitzky [Thu, 13 Oct 2016 00:30:32 +0000 (20:30 -0400)]
Refactor the random matrix functions a bit.

8 years agoUse syevr instead of syev for eigenvalues.
Michael Orlitzky [Thu, 13 Oct 2016 00:29:46 +0000 (20:29 -0400)]
Use syevr instead of syev for eigenvalues.

8 years agoAdd a test for the value of a positive operator on the nonnegative orthant.
Michael Orlitzky [Wed, 12 Oct 2016 19:51:39 +0000 (15:51 -0400)]
Add a test for the value of a positive operator on the nonnegative orthant.

8 years agoAdd tests for the orthogonality relationships of a game solution.
Michael Orlitzky [Wed, 12 Oct 2016 19:37:05 +0000 (15:37 -0400)]
Add tests for the orthogonality relationships of a game solution.

8 years agoFix (or cover up) a bunch of pylint warnings.
Michael Orlitzky [Wed, 12 Oct 2016 17:16:16 +0000 (13:16 -0400)]
Fix (or cover up) a bunch of pylint warnings.

8 years agoAdd tests for the "translated" and "negated" games (from a few corollaries).
Michael Orlitzky [Wed, 12 Oct 2016 16:18:53 +0000 (12:18 -0400)]
Add tests for the "translated" and "negated" games (from a few corollaries).

8 years agoRemove a completed TODO.
Michael Orlitzky [Tue, 11 Oct 2016 15:28:47 +0000 (11:28 -0400)]
Remove a completed TODO.

8 years agoAttempt to recover from "unknown" solutions.
Michael Orlitzky [Tue, 11 Oct 2016 15:24:30 +0000 (11:24 -0400)]
Attempt to recover from "unknown" solutions.

Sometimes CVXOPT was coming back with "unknown" solutions that looked
pretty close to real solutions. Now, instead of failing immediately,
we check to see if the primal/dual objectives are within ABS_TOL of
each other, and whether or not the optimal solutions lie in the
cone. If they all do, we take that as our solution and succeed rather
than raising an exception.

This required the loosening of what it means to be in the cone. Before
this commit, a point needed to be "far" inside the cone (past the
tolerance). Now it can lie outside of the cone (but still within the
tolerance). This weakens the checks that we perform on e1 and e2, but
gives us an easy way to check the optimal strategies.

8 years agoSet ABS_TOL to 1e-6 to fix solution comparisons in the test suite.
Michael Orlitzky [Tue, 11 Oct 2016 14:49:15 +0000 (10:49 -0400)]
Set ABS_TOL to 1e-6 to fix solution comparisons in the test suite.

8 years agoRemove a completed TODO.
Michael Orlitzky [Tue, 11 Oct 2016 14:35:44 +0000 (10:35 -0400)]
Remove a completed TODO.

8 years agoGet rid of the contains_strict() methods and compare against ABS_TOL.
Michael Orlitzky [Tue, 11 Oct 2016 14:33:56 +0000 (10:33 -0400)]
Get rid of the contains_strict() methods and compare against ABS_TOL.

Since we're comparing floating point numbers in the containment tests,
we should be doing it against a tolerance. But then, it becomes
pointless to distinguish between strict and non-strict containment.
So, this commit leaves only the __contains__() methods and checks
against options.ABS_TOL.

8 years agoAdd two more tests for nonnegative scaling factors.
Michael Orlitzky [Tue, 11 Oct 2016 14:05:58 +0000 (10:05 -0400)]
Add two more tests for nonnegative scaling factors.

8 years agoAdd another TODO about failing tests.
Michael Orlitzky [Tue, 11 Oct 2016 14:05:37 +0000 (10:05 -0400)]
Add another TODO about failing tests.

8 years agoAdd a test for an example in the Gowda/Ravindran paper.
Michael Orlitzky [Tue, 11 Oct 2016 13:52:13 +0000 (09:52 -0400)]
Add a test for an example in the Gowda/Ravindran paper.

8 years agoReplace one TODO with something else, and add a new one.
Michael Orlitzky [Tue, 11 Oct 2016 13:38:41 +0000 (09:38 -0400)]
Replace one TODO with something else, and add a new one.

8 years agoRemove a completed TODO.
Michael Orlitzky [Tue, 11 Oct 2016 13:36:22 +0000 (09:36 -0400)]
Remove a completed TODO.

8 years agoFinish overhauling the docstrings to numpy format.
Michael Orlitzky [Mon, 10 Oct 2016 18:46:27 +0000 (14:46 -0400)]
Finish overhauling the docstrings to numpy format.

8 years agoSwitch the docs style of cones.py and update cartesian product containment.
Michael Orlitzky [Mon, 10 Oct 2016 17:44:29 +0000 (13:44 -0400)]
Switch the docs style of cones.py and update cartesian product containment.

The docs for cones.py have all been switched (roughly) to use the
numpy style. In the process, I noticed that cartesian product
containment was a lot weirder than it needs to be. The "point" that
the __contains__() and contains_strict() methods take is now a tuple
corresponding to the factors of the cartesian product.

8 years agoAnother shot at documenting the options module.
Michael Orlitzky [Mon, 10 Oct 2016 17:44:14 +0000 (13:44 -0400)]
Another shot at documenting the options module.

8 years agoMore "easy" docs work in matrices.py/options.py.
Michael Orlitzky [Mon, 10 Oct 2016 16:12:38 +0000 (12:12 -0400)]
More "easy" docs work in matrices.py/options.py.

8 years agoRename the "symmetric_linear_game" module to "games".
Michael Orlitzky [Mon, 10 Oct 2016 15:57:01 +0000 (11:57 -0400)]
Rename the "symmetric_linear_game" module to "games".

8 years agoBegin overhauling docs to numpy format.
Michael Orlitzky [Mon, 10 Oct 2016 15:54:29 +0000 (11:54 -0400)]
Begin overhauling docs to numpy format.

8 years agoOverwrite apidoc output by default for now.
Michael Orlitzky [Mon, 10 Oct 2016 15:54:09 +0000 (11:54 -0400)]
Overwrite apidoc output by default for now.

8 years agoEnable the napoleon Sphinx extension.
Michael Orlitzky [Mon, 10 Oct 2016 15:53:54 +0000 (11:53 -0400)]
Enable the napoleon Sphinx extension.

8 years agoMove the README into doc/, add it to the Sphinx index, and tweak that.
Michael Orlitzky [Mon, 10 Oct 2016 14:51:32 +0000 (10:51 -0400)]
Move the README into doc/, add it to the Sphinx index, and tweak that.

8 years agoBegin adding Sphinx crap for API doc generation.
Michael Orlitzky [Mon, 10 Oct 2016 13:07:06 +0000 (09:07 -0400)]
Begin adding Sphinx crap for API doc generation.

8 years agoAdd another TODO item.
Michael Orlitzky [Mon, 10 Oct 2016 12:58:16 +0000 (08:58 -0400)]
Add another TODO item.

8 years agoAdd a unit test for the ice cream cone solution.
Michael Orlitzky [Mon, 10 Oct 2016 02:35:14 +0000 (22:35 -0400)]
Add a unit test for the ice cream cone solution.

8 years agoAdd a first unit test to check that a solution is always obtained.
Michael Orlitzky [Mon, 10 Oct 2016 02:05:46 +0000 (22:05 -0400)]
Add a first unit test to check that a solution is always obtained.

8 years agoTranspose the input matrix "L" by default and document that fact.
Michael Orlitzky [Mon, 10 Oct 2016 02:05:07 +0000 (22:05 -0400)]
Transpose the input matrix "L" by default and document that fact.

8 years agoLoad unit tests from symmetric_linear_game in the test suite.
Michael Orlitzky [Mon, 10 Oct 2016 02:03:44 +0000 (22:03 -0400)]
Load unit tests from symmetric_linear_game in the test suite.

8 years agoAdd an options module to consolidate a few random "settings."
Michael Orlitzky [Mon, 10 Oct 2016 01:58:40 +0000 (21:58 -0400)]
Add an options module to consolidate a few random "settings."

8 years agoFix pylint warnings in matrices.py.
Michael Orlitzky [Mon, 10 Oct 2016 01:31:40 +0000 (21:31 -0400)]
Fix pylint warnings in matrices.py.

8 years agoAdd one more variable exception to the `make lint` target.
Michael Orlitzky [Mon, 10 Oct 2016 01:27:15 +0000 (21:27 -0400)]
Add one more variable exception to the `make lint` target.

8 years agoAdd an inner_product() for matrices.
Michael Orlitzky [Mon, 10 Oct 2016 01:26:56 +0000 (21:26 -0400)]
Add an inner_product() for matrices.

8 years agoAdd another TODO item (find feasible starting points).
Michael Orlitzky [Sun, 9 Oct 2016 18:22:50 +0000 (14:22 -0400)]
Add another TODO item (find feasible starting points).

8 years agoTest that vec() is a no-op on vectors.
Michael Orlitzky [Thu, 6 Oct 2016 22:10:10 +0000 (18:10 -0400)]
Test that vec() is a no-op on vectors.

8 years agoFix SymmetricPSD documentation and add the column-major vec() function.
Michael Orlitzky [Thu, 6 Oct 2016 22:02:54 +0000 (18:02 -0400)]
Fix SymmetricPSD documentation and add the column-major vec() function.

8 years agoRemove a completed TODO item.
Michael Orlitzky [Thu, 6 Oct 2016 21:16:49 +0000 (17:16 -0400)]
Remove a completed TODO item.