]>
gitweb.michael.orlitzky.com - dunshire.git/log
Michael Orlitzky [Wed, 18 Feb 2026 01:12:52 +0000 (20:12 -0500)]
doc/README.rst: minor updates
Michael Orlitzky [Wed, 18 Feb 2026 00:56:13 +0000 (19:56 -0500)]
setup.py: remove, it's obsolete now that we have pyproject.toml
Michael Orlitzky [Wed, 18 Feb 2026 00:55:43 +0000 (19:55 -0500)]
makefile: update "dist" target to avoid setup.py
Michael Orlitzky [Wed, 18 Feb 2026 00:47:45 +0000 (19:47 -0500)]
pyproject.toml: new file, metadata copied from setup.py
Michael Orlitzky [Mon, 6 May 2024 18:27:54 +0000 (14:27 -0400)]
MANIFEST.in,doc/COPYING: add COPYING
Michael Orlitzky [Sat, 20 Apr 2024 19:28:17 +0000 (15:28 -0400)]
setup.py,doc/source/conf.py: bump to version 0.1.3
Forgot to update the docs version in the last release.
Michael Orlitzky [Sat, 20 Apr 2024 18:54:08 +0000 (14:54 -0400)]
setup.py: bump to v0.1.2
Michael Orlitzky [Fri, 10 Feb 2023 05:04:21 +0000 (00:04 -0500)]
doc/source/conf.py: switch to "haiku" theme.
Sizing the sidebar in alabaster was stupid. The "haiku" theme doesn't
have a sidebar. So problem solved.
Michael Orlitzky [Fri, 10 Feb 2023 04:56:18 +0000 (23:56 -0500)]
doc/source/conf.py: expand the alabaster sidebar to fit.
Michael Orlitzky [Fri, 10 Feb 2023 04:33:41 +0000 (23:33 -0500)]
doc/source/overview.rst: delete errant ampersant.
Michael Orlitzky [Fri, 10 Feb 2023 04:30:01 +0000 (23:30 -0500)]
doc/source/requirements.rst: update various versions.
Michael Orlitzky [Fri, 10 Feb 2023 04:19:18 +0000 (23:19 -0500)]
doc/source/conf.py: switch back to ".html" files.
The xhtml files are invalid now (sphinx generates html5 no matter the
file extension).
Michael Orlitzky [Fri, 10 Feb 2023 04:01:03 +0000 (23:01 -0500)]
doc/source/conf.py: specify a language to make sphinx happy.
Michael Orlitzky [Fri, 10 Feb 2023 03:25:30 +0000 (22:25 -0500)]
setup.py: add index.xhtml to homepage; avoid redirects.
Michael Orlitzky [Fri, 10 Feb 2023 03:25:18 +0000 (22:25 -0500)]
dunshire: http -> https in links.
Michael Orlitzky [Fri, 10 Feb 2023 03:25:07 +0000 (22:25 -0500)]
doc: http -> https in links.
Michael Orlitzky [Fri, 10 Feb 2023 03:00:43 +0000 (22:00 -0500)]
doc/LICENSE: http -> https.
Michael Orlitzky [Thu, 19 May 2022 00:06:40 +0000 (20:06 -0400)]
doc/source/conf.py: fix accidental escape sequence within a string.
Michael Orlitzky [Tue, 21 Apr 2020 11:45:21 +0000 (07:45 -0400)]
makefile: rename "checkloop" to "check-loop" to match "check-verbose".
Michael Orlitzky [Tue, 21 Apr 2020 11:40:52 +0000 (07:40 -0400)]
test: add the ability to run the test suite verbosely.
This commit adds a "check-verbose" target that runs the test suite,
outputting the name and result of each test as it goes. This mimics
what "python setup.py test" does, but that command is apparently
deprecated; so now the usual test entry point can do it too.
Michael Orlitzky [Tue, 21 Apr 2020 11:29:37 +0000 (07:29 -0400)]
dunshire/games.py: don't require numpy to run the doctests.
There was a pointless use of numpy.matrix in a doctest that made numpy
a direct dependency of dunshire. No bueno. That test case was also
throwing a PendingDeprecationWarning, so we kill two birds with one
commit by removing it.
Michael Orlitzky [Tue, 21 Apr 2020 11:26:49 +0000 (07:26 -0400)]
setup.py: add some extra (tested) python versions.
Michael Orlitzky [Sun, 19 Apr 2020 21:40:44 +0000 (17:40 -0400)]
TODO: try to avoid a dependency on numpy in the test suite.
Michael Orlitzky [Tue, 6 Dec 2016 16:43:39 +0000 (11:43 -0500)]
Add the random_ll_game() function to test.randomgen.
Michael Orlitzky [Tue, 6 Dec 2016 16:27:47 +0000 (11:27 -0500)]
Add the random_game() function to test.randomgen.
Michael Orlitzky [Tue, 6 Dec 2016 16:26:49 +0000 (11:26 -0500)]
Remove a superfluous transpose.
Michael Orlitzky [Tue, 6 Dec 2016 16:02:19 +0000 (11:02 -0500)]
Add another TODO.
Michael Orlitzky [Wed, 16 Nov 2016 02:52:36 +0000 (21:52 -0500)]
Bump to v0.1.1 and disable installation of the "test" module.
Michael Orlitzky [Wed, 16 Nov 2016 02:23:53 +0000 (21:23 -0500)]
Make our description sound a little less stupid.
Michael Orlitzky [Wed, 16 Nov 2016 02:19:51 +0000 (21:19 -0500)]
Change the licence from a path to "AGPLv3+" in setup.py.
Michael Orlitzky [Wed, 16 Nov 2016 01:13:18 +0000 (20:13 -0500)]
Update the project homepage once more.
Michael Orlitzky [Wed, 16 Nov 2016 01:12:53 +0000 (20:12 -0500)]
A bunch more doc fixes.
Michael Orlitzky [Wed, 16 Nov 2016 01:12:33 +0000 (20:12 -0500)]
Remove redundant modules from the developer documentation.
Michael Orlitzky [Wed, 16 Nov 2016 01:12:01 +0000 (20:12 -0500)]
Remove package/module names and rst source links from the HTML docs.
Michael Orlitzky [Wed, 16 Nov 2016 00:08:17 +0000 (19:08 -0500)]
More minor doc cleanup.
Michael Orlitzky [Tue, 15 Nov 2016 16:25:28 +0000 (11:25 -0500)]
Remove :undoc-members: flags from the User API.
Michael Orlitzky [Tue, 15 Nov 2016 16:23:12 +0000 (11:23 -0500)]
Clean up a bunch of docs.
Michael Orlitzky [Tue, 15 Nov 2016 15:58:07 +0000 (10:58 -0500)]
Use :math: in a few docstrings in the cones module.
Michael Orlitzky [Tue, 15 Nov 2016 15:57:49 +0000 (10:57 -0500)]
Add missing examples for two methods and use math for equations.
Michael Orlitzky [Tue, 15 Nov 2016 15:57:26 +0000 (10:57 -0500)]
Reword two paragraphs in the overview.
Michael Orlitzky [Tue, 15 Nov 2016 15:56:34 +0000 (10:56 -0500)]
Mention additional build and development requirements.
Michael Orlitzky [Tue, 15 Nov 2016 15:56:11 +0000 (10:56 -0500)]
Output xhtml files instead of html ones (requires new alabaster theme).
Michael Orlitzky [Tue, 15 Nov 2016 14:36:33 +0000 (09:36 -0500)]
Fiddle with some documentation settings and fix the LaTeX build.
Michael Orlitzky [Tue, 15 Nov 2016 03:46:42 +0000 (22:46 -0500)]
Add a MANIFEST.in file, and a new "make dist" target.
Michael Orlitzky [Tue, 15 Nov 2016 03:45:25 +0000 (22:45 -0500)]
Add the "test" package to setup.py for distribution.
Michael Orlitzky [Tue, 15 Nov 2016 03:45:09 +0000 (22:45 -0500)]
Fix a typo.
Michael Orlitzky [Tue, 15 Nov 2016 03:27:13 +0000 (22:27 -0500)]
Add some pointless fluff to my setup.py, and start at v0.1.0.
Michael Orlitzky [Tue, 15 Nov 2016 03:26:16 +0000 (22:26 -0500)]
Add a very basic README.rst to be used as my package description on pypi.
Michael Orlitzky [Tue, 15 Nov 2016 03:25:34 +0000 (22:25 -0500)]
Add some comments to the makefile.
Michael Orlitzky [Tue, 15 Nov 2016 03:21:03 +0000 (22:21 -0500)]
Don't call my game a bastard.
Michael Orlitzky [Sun, 13 Nov 2016 21:30:03 +0000 (16:30 -0500)]
Add some more docs for the player[12]_start() methods.
Michael Orlitzky [Sun, 13 Nov 2016 21:26:47 +0000 (16:26 -0500)]
Disable all variable/method name warnings from pylint.
Ain't nobody got time for this.
Michael Orlitzky [Sun, 13 Nov 2016 20:43:01 +0000 (15:43 -0500)]
Add and update a few test case docstrings.
Michael Orlitzky [Sun, 13 Nov 2016 20:32:43 +0000 (15:32 -0500)]
Make the c(), G(), and h() methods of games public.
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.
Michael Orlitzky [Sun, 13 Nov 2016 20:26:09 +0000 (15:26 -0500)]
Remove the condition number from the game string representation.
Michael Orlitzky [Sun, 13 Nov 2016 20:17:45 +0000 (15:17 -0500)]
Fix the test script to appease pylint.
Michael Orlitzky [Sun, 13 Nov 2016 20:08:19 +0000 (15:08 -0500)]
Add missing docs for two SymmetricLinearGame methods.
Michael Orlitzky [Sun, 13 Nov 2016 19:51:27 +0000 (14:51 -0500)]
Rename epsilon_scale() to tolerance_scale().
Michael Orlitzky [Sun, 13 Nov 2016 01:31:40 +0000 (20:31 -0500)]
Remove a completed TODO.
Michael Orlitzky [Sat, 12 Nov 2016 12:53:35 +0000 (07:53 -0500)]
Add two previously-failing examples as doctests for solution().
Michael Orlitzky [Sat, 12 Nov 2016 12:39:20 +0000 (07:39 -0500)]
Enable the dual starting point and fix the test tolerance.
We set dualstart=player2_start(), but that caused some tests to fail
as unknown or optimal but not valid. So the new epsilon_scale() method
is used to verify the primal/dual optimal in solution(). After that,
the tests of course fail, because we're accepting much more-wrong
solutions. Incorporating epsilon_scale() into the test suite fixes
that.
Michael Orlitzky [Sat, 12 Nov 2016 12:35:12 +0000 (07:35 -0500)]
Add an epsilon_scale() method for games.
When testing, we often need to know how lenient to be when making
comparisons. Trying to figure out just how lenient has been a huge
source of problems, and ultimately, the scaling factor (applied to
ABS_TOL) probably depends on properties of the solution.
This commit adds a new method, epsilon_scale(), that returns a safe
(very lenient) scaling factor. If things are within epsilon_scale()
times ABS_TOL, we consider then equal, or optimal, or whatever.
Michael Orlitzky [Sat, 12 Nov 2016 12:34:25 +0000 (07:34 -0500)]
Add a cached method for games that returns the spectral norm of L.
Michael Orlitzky [Fri, 11 Nov 2016 22:33:53 +0000 (17:33 -0500)]
Print a "pass" count during testing loops.
Michael Orlitzky [Fri, 11 Nov 2016 20:52:30 +0000 (15:52 -0500)]
Build looping into the test suite and make doctests optional.
Michael Orlitzky [Fri, 11 Nov 2016 20:24:19 +0000 (15:24 -0500)]
Add two spaces to the tests to make pylint happy.
Michael Orlitzky [Fri, 11 Nov 2016 20:23:37 +0000 (15:23 -0500)]
Add a ball_radius() method for cones and use it to compute starting points.
Michael Orlitzky [Fri, 11 Nov 2016 20:18:03 +0000 (15:18 -0500)]
Fix an example in the overview docs, and use ellipses in doctests.
Michael Orlitzky [Fri, 11 Nov 2016 14:47:48 +0000 (09:47 -0500)]
Use "2" as a numerically-better factor in player[12]_start().
Michael Orlitzky [Fri, 11 Nov 2016 14:39:59 +0000 (09:39 -0500)]
Add the player2_start() method and some tests for it.
Michael Orlitzky [Fri, 11 Nov 2016 02:32:48 +0000 (21:32 -0500)]
Use player1_start() as the primal starting point and fix some tests.
Michael Orlitzky [Fri, 11 Nov 2016 02:29:42 +0000 (21:29 -0500)]
Add the player1_start() method and two tests for it.
Michael Orlitzky [Fri, 11 Nov 2016 02:26:31 +0000 (21:26 -0500)]
Make the _C(), _A(), and _b() methods for games public.
Michael Orlitzky [Fri, 11 Nov 2016 02:23:31 +0000 (21:23 -0500)]
Replace a few member variable references with method calls.
Michael Orlitzky [Fri, 11 Nov 2016 01:23:24 +0000 (20:23 -0500)]
Add the specnorm() function to the matrices module.
Michael Orlitzky [Fri, 11 Nov 2016 01:22:55 +0000 (20:22 -0500)]
Figure out the base field automatically in condition_number().
Michael Orlitzky [Fri, 11 Nov 2016 01:21:57 +0000 (20:21 -0500)]
Fix a mixup between e1 and e2 in the background documentation.
Michael Orlitzky [Thu, 10 Nov 2016 23:21:52 +0000 (18:21 -0500)]
Add a "solutions don't change" test for the ice-cream cone too.
Michael Orlitzky [Thu, 10 Nov 2016 23:11:57 +0000 (18:11 -0500)]
Test that we get the same solution if we solve the same game twice.
Michael Orlitzky [Thu, 10 Nov 2016 22:55:40 +0000 (17:55 -0500)]
Remove the "VERBOSE" option, since you never want to change it.
Michael Orlitzky [Thu, 10 Nov 2016 22:55:12 +0000 (17:55 -0500)]
Add a new failing test case.
Michael Orlitzky [Thu, 10 Nov 2016 21:15:30 +0000 (16:15 -0500)]
Use the DEBUG_FLOAT_FORMAT when printing exception details.
Michael Orlitzky [Thu, 10 Nov 2016 21:08:36 +0000 (16:08 -0500)]
Use modifier=4 in the orthogonality tests.
Michael Orlitzky [Wed, 9 Nov 2016 14:38:53 +0000 (09:38 -0500)]
Remove another "unknown" TODO, since those don't seem to happen any more.
Michael Orlitzky [Wed, 9 Nov 2016 14:38:04 +0000 (09:38 -0500)]
Remove two TODOs that were addressed with larger fudge factors in tests.
Michael Orlitzky [Wed, 9 Nov 2016 14:37:24 +0000 (09:37 -0500)]
Remove the "unknown" solution TODO, our new heuristic seems to always work.
Michael Orlitzky [Wed, 9 Nov 2016 14:36:39 +0000 (09:36 -0500)]
Remove the "math domain error" TODO, addressed by twiddling MAX_COND.
Michael Orlitzky [Wed, 9 Nov 2016 14:36:01 +0000 (09:36 -0500)]
Add another TODO.
Michael Orlitzky [Wed, 9 Nov 2016 14:35:23 +0000 (09:35 -0500)]
Remove a fixed TODO.
Michael Orlitzky [Wed, 9 Nov 2016 14:34:41 +0000 (09:34 -0500)]
Fix docstring formatting of the solution() method.
Michael Orlitzky [Wed, 9 Nov 2016 14:31:44 +0000 (09:31 -0500)]
Fix some pylint warnings.
Michael Orlitzky [Wed, 9 Nov 2016 14:23:23 +0000 (09:23 -0500)]
Replace _try_solution() with something more reliable and update tests.
This huge change eliminates _try_solution() entirely. It turns out
that if we just solve with the default tolerance and then *test* what
we get back (regardless of the "status" field), we do better than the
two-phase _try_solution() approach. Well, we fail less, anyway.
The code for solution is now fairly simple. It solves the problem, and
if it isn't infeasible, checks the solution for sanity: the
primal/dual values are close (within 2*ABS_TOL) and the optimal points
are in the cone. If those two things are true, we return the solution
even if CVXOPT said "unknown". This fixes two test failures, which are
now included as doctests to ensure that they can be solved.
Moreover, the value of a game is now set to be the payoff at the
optimal points. Before, we simply took the primal optimal value from
CVXOPT. That was causing some test failures though, and either one is
just as good as the other and mathematically unjustified as yet. There
were existing tests to check the payoff at the optimal points, but they
became redundant and were removed.
Finally, all of the tests have been updated to use more conservative
modifiers, not based on the condition number of the game. Some failures
are still being ironed out, but they are rare.
Note: the _c(), _h(), etc. methods on the game are now overkill since
they are only used once, but they don't hurt I guess.
Michael Orlitzky [Wed, 9 Nov 2016 14:20:07 +0000 (09:20 -0500)]
Lower MAX_COND down to 125 after witnessing a failure.
Michael Orlitzky [Tue, 8 Nov 2016 22:42:20 +0000 (17:42 -0500)]
Put the MAX_COND at 150 for now... until it causes problems.
Michael Orlitzky [Tue, 8 Nov 2016 20:02:53 +0000 (15:02 -0500)]
Update the project URL.
Michael Orlitzky [Sun, 6 Nov 2016 13:31:54 +0000 (08:31 -0500)]
Add two small, well-conditioned games that fail solution as test cases.
Michael Orlitzky [Fri, 4 Nov 2016 23:24:24 +0000 (19:24 -0400)]
Add a new DEBUG_FLOAT_FORMAT and use it when raising game exceptions.
Michael Orlitzky [Fri, 4 Nov 2016 23:13:21 +0000 (19:13 -0400)]
Add game accessor methods for its L, K, e1, e2, and dimension.
Michael Orlitzky [Fri, 4 Nov 2016 23:11:45 +0000 (19:11 -0400)]
Add a "checkloop" makefile target to run tests forever.
Michael Orlitzky [Fri, 4 Nov 2016 23:11:23 +0000 (19:11 -0400)]
Fix a bug in my two-tolerance strategy and add a test case for it.