Skip to content

Commit

Permalink
Merge branch 'master' into ENH-353-initialisation-of-mixed-profiles-o…
Browse files Browse the repository at this point in the history
…n-creation
  • Loading branch information
VarsosC authored Oct 14, 2023
2 parents b597886 + d401f7c commit 71fe5ef
Show file tree
Hide file tree
Showing 136 changed files with 1,364 additions and 729 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
jobs:
clang-tidy:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
steps:
- uses: actions/checkout@v4
- name: Install dependencies
Expand All @@ -29,6 +30,7 @@ jobs:

flake8:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
strategy:
matrix:
python-version: ['3.12']
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
jobs:
linux:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
strategy:
matrix:
python-version: ['3.8', '3.12']
Expand All @@ -20,17 +21,22 @@ jobs:
- name: Set up dependencies
run: |
python -m pip install --upgrade pip
pip install cython pytest wheel lxml numpy scipy
- name: Build extension
pip install setuptools cython pytest wheel lxml numpy scipy
- name: Build source distribution
run:
python setup.py sdist
- name: Build from source distribution
run: |
python -m pip install -v .
cd dist
pip install -v pygambit*.tar.gz
- name: Run tests
run: |
cd src/pygambit/tests
pytest
windows:
runs-on: windows-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
strategy:
matrix:
python-version: ['3.12']
Expand Down
25 changes: 19 additions & 6 deletions .github/workflows/tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
jobs:
linux:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
steps:
- uses: actions/checkout@v4
- name: Install dependencies
Expand All @@ -22,15 +23,26 @@ jobs:
wx3.1-headers \
wx-common \
libnotify-dev
- run: aclocal
- run: automake --add-missing
- run: autoconf
- run: ./configure
- run: make
- run: sudo make install
- name: Configure build with autotools
run: |
aclocal
automake --add-missing
autoconf
./configure
- name: Make source tarball
run: make dist
- name: Build from source tarball
run: |
tar zxvf gambit*.tar.gz
rm gambit*.tar.gz
cd gambit-*
./configure
make
sudo make install
macos:
runs-on: macos-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
steps:
- uses: actions/checkout@v4
- name: Install dependencies
Expand All @@ -48,6 +60,7 @@ jobs:

windows:
runs-on: windows-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
defaults:
run:
shell: msys2 {0}
Expand Down
10 changes: 9 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
# Changelog

## [16.1.0a4] - unreleased
## [16.1.0a4] - 2023-10-13

### Changed
- Empty or all-whitespace strings cannot be used to access members of games in pygambit.
- Remaining compatibility code for wxWidgets 2.x removed from graphical interface.
- Migrated to pytest for testing of pygambit.
- ValueErrors raised for mixed behavior profiles when payoff, action_value, or infoset_value are
called with the chance player.
- Implemented Game.delete_strategy to remove a strategy from a strategic game.
- Implemented regret for mixed strategy profiles.

### Fixed
- Regret on mixed behavior profiles now implements the standard definition of regret
(loss in expected payoff relative to best response conditional on reaching the information set).


## [16.1.0a3] - 2023-09-29
Expand Down
7 changes: 2 additions & 5 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@ recursive-include src/core *.cc *.h *.imp
recursive-include src/games *.cc *.h *.imp
recursive-include src/solvers *.c *.cc *.h *.imp
include src/gambit.h
include src/tools/nfglp.cc
include src/tools/nfglp.h
include src/tools/efglp.cc
include src/tools/efglp.h
include src/pygambit/*.pxd
include src/pygambit/*.pyx
include src/pygambit/*.pxi

include src/pygambit/*.h
include src/README.rst

196 changes: 98 additions & 98 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -474,100 +474,100 @@ gambit_enummixed_SOURCES = \
# sources from gpartltr to quiksolv were formerly in convenience lib libpoly.
gambit_enumpoly_SOURCES = \
${core_SOURCES} ${game_SOURCES} \
src/tools/enumpoly/pelclhpk.cc \
src/tools/enumpoly/pelclhpk.h \
src/tools/enumpoly/pelclqhl.cc \
src/tools/enumpoly/pelclqhl.h \
src/tools/enumpoly/pelclyal.cc \
src/tools/enumpoly/pelclyal.h \
src/tools/enumpoly/pelconv.cc \
src/tools/enumpoly/pelconv.h \
src/tools/enumpoly/peleval.cc \
src/tools/enumpoly/peleval.h \
src/tools/enumpoly/pelgennd.cc \
src/tools/enumpoly/pelgennd.h \
src/tools/enumpoly/pelgmatr.cc \
src/tools/enumpoly/pelgmatr.h \
src/tools/enumpoly/pelgntyp.h \
src/tools/enumpoly/pelhomot.cc \
src/tools/enumpoly/pelhomot.h \
src/tools/enumpoly/pelpred.cc \
src/tools/enumpoly/pelpred.h \
src/tools/enumpoly/pelprgen.cc \
src/tools/enumpoly/pelprgen.h \
src/tools/enumpoly/pelproc.cc \
src/tools/enumpoly/pelproc.h \
src/tools/enumpoly/pelpscon.h \
src/tools/enumpoly/pelpsys.cc \
src/tools/enumpoly/pelpsys.h \
src/tools/enumpoly/pelqhull.cc \
src/tools/enumpoly/pelqhull.h \
src/tools/enumpoly/pelsymbl.cc \
src/tools/enumpoly/pelsymbl.h \
src/tools/enumpoly/pelutils.cc \
src/tools/enumpoly/pelutils.h \
src/tools/enumpoly/gpartltr.cc \
src/tools/enumpoly/gpartltr.h \
src/tools/enumpoly/gpartltr.imp \
src/tools/enumpoly/gpoly.cc \
src/tools/enumpoly/gpoly.h \
src/tools/enumpoly/gpoly.imp \
src/tools/enumpoly/gpolylst.cc \
src/tools/enumpoly/gpolylst.h \
src/tools/enumpoly/gpolylst.imp \
src/tools/enumpoly/gsolver.cc \
src/tools/enumpoly/gsolver.h \
src/tools/enumpoly/gsolver.imp \
src/tools/enumpoly/ideal.cc \
src/tools/enumpoly/ideal.h \
src/tools/enumpoly/ideal.imp \
src/tools/enumpoly/ineqsolv.cc \
src/tools/enumpoly/ineqsolv.h \
src/tools/enumpoly/ineqsolv.imp \
src/tools/enumpoly/interval.h \
src/tools/enumpoly/monomial.cc \
src/tools/enumpoly/monomial.h \
src/tools/enumpoly/monomial.imp \
src/tools/enumpoly/pelclass.cc \
src/tools/enumpoly/pelclass.h \
src/tools/enumpoly/poly.cc \
src/tools/enumpoly/poly.h \
src/tools/enumpoly/poly.imp \
src/tools/enumpoly/prepoly.cc \
src/tools/enumpoly/prepoly.h \
src/tools/enumpoly/quiksolv.cc \
src/tools/enumpoly/quiksolv.h \
src/tools/enumpoly/quiksolv.imp \
src/tools/enumpoly/rectangl.cc \
src/tools/enumpoly/rectangl.h \
src/tools/enumpoly/rectangl.imp \
src/tools/enumpoly/behavextend.cc \
src/tools/enumpoly/behavextend.h \
src/tools/enumpoly/gcomplex.cc \
src/tools/enumpoly/gcomplex.h \
src/tools/enumpoly/gtree.h \
src/tools/enumpoly/gtree.imp \
src/tools/enumpoly/linrcomb.cc \
src/tools/enumpoly/linrcomb.h \
src/tools/enumpoly/linrcomb.imp \
src/tools/enumpoly/efgensup.cc \
src/tools/enumpoly/efgensup.h \
src/tools/enumpoly/gnarray.h \
src/tools/enumpoly/gnarray.imp \
src/tools/enumpoly/sfg.cc \
src/tools/enumpoly/sfg.h \
src/tools/enumpoly/sfstrat.cc \
src/tools/enumpoly/sfstrat.h \
src/tools/enumpoly/nfgensup.cc \
src/tools/enumpoly/nfgensup.h \
src/tools/enumpoly/odometer.cc \
src/tools/enumpoly/odometer.h \
src/tools/enumpoly/nfgcpoly.cc \
src/tools/enumpoly/nfgcpoly.h \
src/tools/enumpoly/nfghs.cc \
src/tools/enumpoly/nfghs.h \
src/tools/enumpoly/efgpoly.cc \
src/tools/enumpoly/nfgpoly.cc \
src/solvers/enumpoly/pelican/pelclhpk.cc \
src/solvers/enumpoly/pelican/pelclhpk.h \
src/solvers/enumpoly/pelican/pelclqhl.cc \
src/solvers/enumpoly/pelican/pelclqhl.h \
src/solvers/enumpoly/pelican/pelclyal.cc \
src/solvers/enumpoly/pelican/pelclyal.h \
src/solvers/enumpoly/pelican/pelconv.cc \
src/solvers/enumpoly/pelican/pelconv.h \
src/solvers/enumpoly/pelican/peleval.cc \
src/solvers/enumpoly/pelican/peleval.h \
src/solvers/enumpoly/pelican/pelgennd.cc \
src/solvers/enumpoly/pelican/pelgennd.h \
src/solvers/enumpoly/pelican/pelgmatr.cc \
src/solvers/enumpoly/pelican/pelgmatr.h \
src/solvers/enumpoly/pelican/pelgntyp.h \
src/solvers/enumpoly/pelican/pelhomot.cc \
src/solvers/enumpoly/pelican/pelhomot.h \
src/solvers/enumpoly/pelican/pelpred.cc \
src/solvers/enumpoly/pelican/pelpred.h \
src/solvers/enumpoly/pelican/pelprgen.cc \
src/solvers/enumpoly/pelican/pelprgen.h \
src/solvers/enumpoly/pelican/pelproc.cc \
src/solvers/enumpoly/pelican/pelproc.h \
src/solvers/enumpoly/pelican/pelpscon.h \
src/solvers/enumpoly/pelican/pelpsys.cc \
src/solvers/enumpoly/pelican/pelpsys.h \
src/solvers/enumpoly/pelican/pelqhull.cc \
src/solvers/enumpoly/pelican/pelqhull.h \
src/solvers/enumpoly/pelican/pelsymbl.cc \
src/solvers/enumpoly/pelican/pelsymbl.h \
src/solvers/enumpoly/pelican/pelutils.cc \
src/solvers/enumpoly/pelican/pelutils.h \
src/solvers/enumpoly/gpartltr.cc \
src/solvers/enumpoly/gpartltr.h \
src/solvers/enumpoly/gpartltr.imp \
src/solvers/enumpoly/gpoly.cc \
src/solvers/enumpoly/gpoly.h \
src/solvers/enumpoly/gpoly.imp \
src/solvers/enumpoly/gpolylst.cc \
src/solvers/enumpoly/gpolylst.h \
src/solvers/enumpoly/gpolylst.imp \
src/solvers/enumpoly/gsolver.cc \
src/solvers/enumpoly/gsolver.h \
src/solvers/enumpoly/gsolver.imp \
src/solvers/enumpoly/ideal.cc \
src/solvers/enumpoly/ideal.h \
src/solvers/enumpoly/ideal.imp \
src/solvers/enumpoly/ineqsolv.cc \
src/solvers/enumpoly/ineqsolv.h \
src/solvers/enumpoly/ineqsolv.imp \
src/solvers/enumpoly/interval.h \
src/solvers/enumpoly/monomial.cc \
src/solvers/enumpoly/monomial.h \
src/solvers/enumpoly/monomial.imp \
src/solvers/enumpoly/pelclass.cc \
src/solvers/enumpoly/pelclass.h \
src/solvers/enumpoly/poly.cc \
src/solvers/enumpoly/poly.h \
src/solvers/enumpoly/poly.imp \
src/solvers/enumpoly/prepoly.cc \
src/solvers/enumpoly/prepoly.h \
src/solvers/enumpoly/quiksolv.cc \
src/solvers/enumpoly/quiksolv.h \
src/solvers/enumpoly/quiksolv.imp \
src/solvers/enumpoly/rectangl.cc \
src/solvers/enumpoly/rectangl.h \
src/solvers/enumpoly/rectangl.imp \
src/solvers/enumpoly/behavextend.cc \
src/solvers/enumpoly/behavextend.h \
src/solvers/enumpoly/gcomplex.cc \
src/solvers/enumpoly/gcomplex.h \
src/solvers/enumpoly/gtree.h \
src/solvers/enumpoly/gtree.imp \
src/solvers/enumpoly/linrcomb.cc \
src/solvers/enumpoly/linrcomb.h \
src/solvers/enumpoly/linrcomb.imp \
src/solvers/enumpoly/efgensup.cc \
src/solvers/enumpoly/efgensup.h \
src/solvers/enumpoly/gnarray.h \
src/solvers/enumpoly/gnarray.imp \
src/solvers/enumpoly/sfg.cc \
src/solvers/enumpoly/sfg.h \
src/solvers/enumpoly/sfstrat.cc \
src/solvers/enumpoly/sfstrat.h \
src/solvers/enumpoly/nfgensup.cc \
src/solvers/enumpoly/nfgensup.h \
src/solvers/enumpoly/odometer.cc \
src/solvers/enumpoly/odometer.h \
src/solvers/enumpoly/nfgcpoly.cc \
src/solvers/enumpoly/nfgcpoly.h \
src/solvers/enumpoly/nfghs.cc \
src/solvers/enumpoly/nfghs.h \
src/solvers/enumpoly/efgpoly.cc \
src/solvers/enumpoly/nfgpoly.cc \
src/tools/enumpoly/enumpoly.cc

gambit_enumpure_SOURCES = \
Expand Down Expand Up @@ -619,10 +619,10 @@ gambit_logit_SOURCES = \
gambit_lp_SOURCES = \
${core_SOURCES} ${game_SOURCES} \
${linalg_SOURCES} \
src/tools/lp/efglp.cc \
src/tools/lp/efglp.h \
src/tools/lp/nfglp.cc \
src/tools/lp/nfglp.h \
src/solvers/lp/efglp.cc \
src/solvers/lp/efglp.h \
src/solvers/lp/nfglp.cc \
src/solvers/lp/nfglp.h \
src/tools/lp/lp.cc

gambit_simpdiv_SOURCES = \
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl

AC_INIT([gambit],[16.1.0a3])
AC_INIT([gambit],[16.1.0a4])
AC_CONFIG_SRCDIR([src/gambit.h])
AM_INIT_AUTOMAKE([subdir-objects foreign])
dnl AC_CONFIG_MACRO_DIR([m4])
Expand Down
8 changes: 4 additions & 4 deletions contrib/mac/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>16.1.0a3</string>
<string>16.1.0a4</string>
<key>CFBundleShortVersionString</key>
<string>16.1.0a3</string>
<string>16.1.0a4</string>
<key>CFBundleGetInfoString</key>
<string>Gambit version 16.1.0a3, (c) 1994-2023 The Gambit Project</string>
<string>Gambit version 16.1.0a4, (c) 1994-2023 The Gambit Project</string>
<key>CFBundleLongVersionString</key>
<string>16.1.0a3, (c) 1994-2023 The Gambit Project</string>
<string>16.1.0a4, (c) 1994-2023 The Gambit Project</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1994-2023 The Gambit Project</string>
<key>LSRequiresCarbon</key>
Expand Down
2 changes: 1 addition & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
# The short X.Y version.
version = '16.1'
# The full version, including alpha/beta/rc tags.
release = '16.1.0a3'
release = '16.1.0a4'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
Loading

0 comments on commit 71fe5ef

Please sign in to comment.