Recent Releases of egttools

egttools - 0.1.14-patch2

FIxed

  • Wheels now correctly uploaded for the release

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.14-patch1...v0.1.14-patch2

- C++
Published by github-actions[bot] 7 months ago

egttools - 0.1.14-patch1

Fixed

  • PyPi Classifiers were wrong, which created an error when uploading the new package to pypi.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.14...v0.1.14-patch1

- C++
Published by github-actions[bot] 7 months ago

egttools - v0.1.14

Added

  • Added support for building universal macOS wheels and ARM builds for Linux and Windows.
  • Added fallback logic to skip OpenMP when not supported (e.g., Windows/macOS universal).
  • Added automatic installation of dependencies via vcpkg, including caching and toolchain integration.
  • Introduced modular CMake configuration using CMakePresets.json and modular EnableXXX.cmake utilities.
  • Added Dockerfile to support containerized builds and local testing.
  • Implemented efficient factorial calculation in C++.

Changed

  • Refactored build system for maintainability and CI compatibility:
    • CI workflows now support cibuildwheel v2.23.3 and manually triggered docs builds.
    • Moved doc generation to separate docs.yml workflow and switched to furo theme.
    • Enforced Python 3.10+ as the minimum supported version.
  • Improved README and build documentation.
  • Updated pybind11 and vcpkg submodules to latest versions.
  • Simplified setup.py and enforced proper MACOSX_DEPLOYMENT_TARGET across CI environments.
  • Made BLAS/LAPACK optional and adjusted linking strategy across platforms (including Accelerate on macOS).

Fixed

  • Fixed multiple CI build issues related to:
    • libomp installation and linking.
    • vcpkg initialization and caching.
    • RTD (ReadTheDocs) upload and broken builds.
  • Fixed memory management bugs in pybind11 bindings (e.g., garbage collection of NDArray objects).
  • Fixed initialization bugs in simulation state (deep copy and move semantics added to sample_simplex and related methods).
  • Resolved Boost installation issues on some platforms.

What's Changed

  • Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/75
  • Bump ncipollo/release-action from 1.12.0 to 1.13.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/76
  • Bump pypa/cibuildwheel from 2.14.1 to 2.16.1 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/78
  • Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/83
  • Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/85
  • Bump github/codeql-action from 2 to 3 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/86
  • Bump ncipollo/release-action from 1.13.0 to 1.14.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/90
  • Bump jwlawson/actions-setup-cmake from 1.14 to 2.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/91
  • Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.14 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/93
  • Bump pypa/cibuildwheel from 2.16.2 to 2.17.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/94
  • Bump robinraju/release-downloader from 1.8 to 1.10 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/95
  • Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/102
  • Bump robinraju/release-downloader from 1.10 to 1.11 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/97
  • Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.1 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/103
  • Bump pypa/cibuildwheel from 2.17.0 to 2.21.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/104
  • Bump pypa/cibuildwheel from 2.21.0 to 2.21.3 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/109
  • Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.3 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/108
  • Bump pypa/cibuildwheel from 2.21.3 to 2.23.3 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/122
  • Bump robinraju/release-downloader from 1.11 to 1.12 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/119
  • Bump ncipollo/release-action from 1.14.0 to 1.16.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/117
  • Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.12.4 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/116
  • Bump peaceiris/actions-gh-pages from 3 to 4 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/123
  • Bump pypa/cibuildwheel from 2.23.3 to 3.0.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/125
  • Bump ncipollo/release-action from 1.16.0 to 1.18.0 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/126
  • Bump pypa/cibuildwheel from 3.0.0 to 3.0.1 by @dependabot[bot] in https://github.com/Socrats/EGTTools/pull/127

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.13...v0.1.14

- C++
Published by github-actions[bot] 7 months ago

egttools - 0.1.13-patch5

Fixed

  • Fixed state initialization in NetworkSync and NetworkGroupSync. The state was not being randomly initialized.
  • Fixed incorrect use of sample_without_replacement. It must only be used when the sample is smaller than the population.

Changed

  • Exposed the expected payoffs of NormalFormNetworkGame to Python

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.13-patch4...v0.1.13-patch5

- C++
Published by github-actions[bot] over 2 years ago

egttools - 0.1.13-patch4

Fixed

  • Fixed segfault in PairwiseComparisonNumerical run method. when called using a transient period, the function surpass the array index limit, thus causing a bad memory access and a segfault

Added

  • Added a version of run with transient and no mutation
  • Added new argument checks

Changed

  • Changed the generation and transient parameter types from int to intfast64t
  • The methods that have a mutation parameter enforce that mu>0 to avoid errors
  • There will be a bad argument error if the beta parameter used in the python call is not explicitly a float

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.13-patch3...v0.1.13-patch4

- C++
Published by github-actions[bot] over 2 years ago

egttools - 0.1.13-patch3

Fixed

  • fixed NetworkSync and NetworkGroupSync structures updates

What's Changed

  • Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 by @dependabot in https://github.com/Socrats/EGTTools/pull/75
  • Bump ncipollo/release-action from 1.12.0 to 1.13.0 by @dependabot in https://github.com/Socrats/EGTTools/pull/76
  • Bump pypa/cibuildwheel from 2.14.1 to 2.16.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/78
  • Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 by @dependabot in https://github.com/Socrats/EGTTools/pull/83

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.13-patch2...v0.1.13-patch3

- C++
Published by github-actions[bot] over 2 years ago

egttools - v0.1.13-patch2

Fixed

  • fixed issue with dynamic linking of OpenMP

Changes

  • dropped support for OpenMP on macOS temporally
  • now OpenMP is linked statically again for linux

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.13...v0.1.13-patch2

- C++
Published by github-actions[bot] over 2 years ago

egttools - v0.1.13

Fixed

  • fixed issue with environmental variables not working on MacOS builds in Github Actions
  • fixed gradient of selection estimation algorithm
  • fixed issue with multiple libomp.dylib copies loading
  • fixed issue with the citation of current version of egttools
  • fixed link to anaconda documentation

Changes

  • now openmp is linked dynamically to avoid conflicts on MacOS
  • increased minimum required cmake version to 3.18
  • changed int to intfast64t to support larger number of generations

Added

  • added NetworkSync evolver
  • added more support for network simulations
  • added Cache to accelerate PairwiseComparison
  • added calculation of the averaged gradient of selection
  • added OneShotCRDNetworkGame
  • OpenMP support for MacOS arm64

Other changes

  • Bump robinraju/release-downloader from 1.6 to 1.7 by @dependabot in https://github.com/Socrats/EGTTools/pull/48
  • Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/52
  • Bump pypa/cibuildwheel from 2.11.2 to 2.12.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/51
  • Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/53
  • Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in https://github.com/Socrats/EGTTools/pull/54
  • Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 by @dependabot in https://github.com/Socrats/EGTTools/pull/55
  • Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in https://github.com/Socrats/EGTTools/pull/56
  • Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 by @dependabot in https://github.com/Socrats/EGTTools/pull/58
  • Bump jwlawson/actions-setup-cmake from 1.13 to 1.14 by @dependabot in https://github.com/Socrats/EGTTools/pull/59
  • Bump pypa/cibuildwheel from 2.12.3 to 2.13.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/63
  • Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in https://github.com/Socrats/EGTTools/pull/61
  • Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by @dependabot in https://github.com/Socrats/EGTTools/pull/60
  • Match scatter output to matplotlib api changes by @cvanelteren in https://github.com/Socrats/EGTTools/pull/65
  • Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by @dependabot in https://github.com/Socrats/EGTTools/pull/66
  • Bump pypa/cibuildwheel from 2.13.1 to 2.14.0 by @dependabot in https://github.com/Socrats/EGTTools/pull/69
  • Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8 by @dependabot in https://github.com/Socrats/EGTTools/pull/71
  • Bump pypa/cibuildwheel from 2.14.0 to 2.14.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/73

New Contributors

  • @cvanelteren made their first contribution in https://github.com/Socrats/EGTTools/pull/65

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.12...v0.1.13

- C++
Published by github-actions[bot] over 2 years ago

egttools - v0.1.12-patch1

Fixed

  • Fixed issue with link to Simplex2D class
  • Match scatter output to matplotlib API changes [by cvanelteren]
  • Fixed issue with compiling Distributions.cpp without Boost

Changed

  • Removed support for Python 3.7
  • Dropped support for Win32 architectures
  • Removed MACOSX_DEPLOYMENT_TARGET constraint
  • Updated egttools citation
  • Skip multivariate_hypergeometric tests when compiling without Boost
  • Upgraded cibuildwheel to v2.14.0
  • Set minimum Boost version to 1.70.0

Added

  • Added basic unittests for plotting [by cvanelteren]

External changes

  • Bump robinraju/release-downloader from 1.6 to 1.7 by @dependabot in https://github.com/Socrats/EGTTools/pull/48
  • Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/52
  • Bump pypa/cibuildwheel from 2.11.2 to 2.12.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/51
  • Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/53
  • Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in https://github.com/Socrats/EGTTools/pull/54
  • Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 by @dependabot in https://github.com/Socrats/EGTTools/pull/55
  • Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in https://github.com/Socrats/EGTTools/pull/56
  • Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 by @dependabot in https://github.com/Socrats/EGTTools/pull/58
  • Bump jwlawson/actions-setup-cmake from 1.13 to 1.14 by @dependabot in https://github.com/Socrats/EGTTools/pull/59
  • Bump pypa/cibuildwheel from 2.12.3 to 2.13.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/63
  • Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in https://github.com/Socrats/EGTTools/pull/61
  • Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by @dependabot in https://github.com/Socrats/EGTTools/pull/60
  • Match scatter output to matplotlib api changes by @cvanelteren in https://github.com/Socrats/EGTTools/pull/65
  • Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by @dependabot in https://github.com/Socrats/EGTTools/pull/66
  • Bump pypa/cibuildwheel from 2.13.1 to 2.14.0 by @dependabot in https://github.com/Socrats/EGTTools/pull/69

New Contributors

  • @cvanelteren made their first contribution in https://github.com/Socrats/EGTTools/pull/65

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.12...v0.1.12.patch1

- C++
Published by github-actions[bot] over 2 years ago

egttools - 0.1.12

Fixed

  • Fixed stability plot and minor syntax issues.
  • Fixed issue with fitness calculations of strategies with 0 counts in the population.
  • Fixed LNK2005 error on windows.
  • Fixed version naming convesion to adhere to PEP440.

Changed

  • Changed name of PairwiseMoran class to PairwiseComparisonNumerical.
  • Changed function and class names that used "moran" to "pairwisecomparisonrule".
  • Removed signatures of overloaded methods in docstrings.
  • Moved all headers for pybind11 to .hpp files to avoid issues on windows.
  • Updated pybind11 version to 2.10.
  • Removed specialization of binomialCoeff to avoid issues on Windows.
  • Refactored the binding code from C++ to Python so that now we use different files for defining each Python submodule. This makes the code much more clear. These files can be found in cpp/src/pybind11_files.
  • Now the GitHub CI builds download and install Boost C++ library, as it is required to build egttools.
  • Dropped support for manylinux_i686. In the future only 64 bit architectures will be supported.

Added

  • Added support for multiprecision types with boost::multiprecision.
  • Added replicator equation for n-player games (implementation in c++).
  • Added replicator_equation implementation in C++.
  • Added a new C++ implementation of the analytical stochastic dynamics named PairwiseComparison.
  • Added Matrix2PlayerGameHolder and MatrixNPlayerGameHolder classes, so that a game can be defined using a payoff matrix.
  • Added several tests (coverage now is ~50%).
  • Added tutorials to the documentation.

Other changes

  • Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in https://github.com/Socrats/EGTTools/pull/36
  • Bump ncipollo/release-action from 1.11.1 to 1.11.2 by @dependabot in https://github.com/Socrats/EGTTools/pull/38
  • Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 by @dependabot in https://github.com/Socrats/EGTTools/pull/40
  • Bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 by @dependabot in https://github.com/Socrats/EGTTools/pull/41
  • Bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.3 by @dependabot in https://github.com/Socrats/EGTTools/pull/43
  • Bump pypa/gh-action-pypi-publish from 1.6.3 to 1.6.4 by @dependabot in https://github.com/Socrats/EGTTools/pull/44
  • Bump ncipollo/release-action from 1.11.2 to 1.12.0 by @dependabot in https://github.com/Socrats/EGTTools/pull/45

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.11...v0.1.12

- C++
Published by github-actions[bot] about 3 years ago

egttools - 0.1.11-patch2

Fixed

  • Fixed error in calculate_full_transition_matrix. The previous implementation tried to calculate the fitness for strategies with 0 counts in the population. This would lead to an error when calculating the probability of group forming. Now, we calculate directly the probability of a strategy with 0 counts increasing by 1 individual in the population, i.e., prob = (ndecreasingstrategy / populationsize) * (mu / (1 - nbstrategies)).

What's Changed

  • Bump ncipollo/release-action from 1.11.1 to 1.11.2 by @dependabot in https://github.com/Socrats/EGTTools/pull/38

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.11-patch1...v0.1.11-patch2

- C++
Published by github-actions[bot] over 3 years ago

egttools - 0.1.11-patch1

Fixed

  • Fixed issue with changing mutation rate in StochDynamics. When the mutation rate was updated using evolver.mu = new_value, the variable evolver.not_mu was not udpated. This variable was used by calculate_full_stationary_distribution and it created an error. Now not_mu is calculated inside of calculate_full_stationary_distribution.
  • Fixed issue with binomialCoeff implemented in c++. In some cases, the intermediary calculations were overflowing an uint64_t type when calling it from multivariateHypergeometricPDF. Now, we no longer calculate the exact value in multivariateHypergeometricPDF, instead use double types. This will be improved in the new version by using boost/multiprecision uint128_t types.

Changed

  • Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in https://github.com/Socrats/EGTTools/pull/36

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.11...v0.1.11-patch1

- C++
Published by github-actions[bot] over 3 years ago

egttools - 0.1.11

Fixed

  • fixed errors in docstrings examples
  • fixed missing headers
  • fixed error in full_fitness_difference_group and calculate_fulll_transition_matrix. There was a missing multiplying factor in the probability of transition due to mutation. The probability of selecting the strategy to dies must also be taken into account. There was also an issue when instantiating the multi_hypergeometric_distribution class from scipy. It does not copy the array containing the counts of each strategy. Now we create a copy before passing the state vector to avoid the issue.
  • fixed issue with AbstractNPlayerGame. For N-player games it was not a good idea to calculate the fitness in Python as this part of the class becomes a bottleneck, as it will be called more often then in the 2-player case (because there are more states - so less likely the fitness will be stored in cache). For this reason we now implemented this abstract class in C++ and the fitness calculation is done in this language. Everything else remains the same, and it should be equally easy to create new games.
  • fixed issues of missing initialization of internal parameters of some egttools.games.NormalForm.TwoAction strategies. Internal parameters should be initialized when time == 0, i.e., at the beginning of each game.

Changed

  • changed egttools to src-layout. This should help fix issues with tests and make the overall structure of the library cleaner.
  • moved C++ code to the cpp folder. This way the code is more organized.
  • Bump pypa/cibuildwheel from 2.8.1 to 2.11.1
  • Bump pypa/cibuildwheel from 2.11.1 to 2.11.2
  • Bump robinraju/release-downloader from 1.4 to 1.5
  • Bump ncipollo/release-action from 1.10.0 to 1.11.1
  • removed support for win32 and manylinux_i686 for Python > 3.7

Added

  • added new controls to draw_stationary_distribution
  • added enhancement_factor parameter to CRDGame. This parameter serves as a multiplying factor for the payoff of each player in case the target is achieved. If enhancement_factor = 1 the CRDGame behaves as usual. For enhancement_factor > 1, we are incentivizing strategies that reach the target.
  • added MemoryOneStrategy to egttools.games.NormalForm.TwoAction strategies.
  • added CommonPoolResourceDilemma game - However it has still not been extensively tested!!
  • added ninja as a requirement for the build.
  • added TimeBasedCRDStrategy to egttools.games.CRD strategies. These strategies make contributions to the Public Good in function of the round of the game.
  • added sdist to build.
  • added labels to the lines plot by plot_gradients so that several lines can be plotted.
  • added more unit testing, but this still needs a lot of improvement.
  • added missing libraries on C++ code.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.10...v0.1.11

- C++
Published by github-actions[bot] over 3 years ago

egttools - 0.1.10

Fixed

  • fixed issue with the comparison of different types in PairwiseMoran
  • fixed issue with colorbar so that now the axis is passed to maptlolib colorbar, this way it will be plotted correctly when drawing multiple subplots
  • fixed issue with hardcoded x-axis in plot_gradients
  • fixed error on calculate_full_transition_matrix. The error happened when calculating the transition probability:
    • a) although the literature is a bit confusing on this, the original paper by Traulsen 2006 says that for the transition we consider that the strategies to reproduce and die are pricked simultaneously (so both with probability 1/Z).
    • b) the is more accumulated numerical error when doing probability of transitioning from A to B P(A, B) = fermi(-beta, B - A) than when doing fermi(beta, A - B). This is probably specific to Python and Numpy, but must be taken into account in the future.
    • c) The schur decomposition (egttools.utils.calculatestationarydistributionnonhermitian) works better in this case (although still has a slight numerical error) and should be used for full transition matrices).
  • normalized transition probabilities to use the definition in Traulsen et al. 2006
    • now we assume that both death and birth individuals are selected simultaneously with probability ni/Z, where ni is the number of individuals of that strategy in the population

Changed

  • updated installation instructions
  • updated to PEP 621 syntax
  • updated setup.py since now scikit-build supports VS2019
  • updated draw_stationary_distribution to make the display of labels optional
  • changed stability calculation for the replicator dynamics to use the Jacobian matrix
  • updated plot_gradients to check for all possible types of roots (stable, unstable and saddle)
  • removed stability checks for the stochastic dynamics
    • if T+ is too small, phi will be approximated to infinity and the fixation probability will be approximated to 0.
    • This may not be correct, since if pminus is also very small or equal to pplus, the outcome would be different. So it might change in a future version
  • updated default language for documentation to en
  • updated docstrings
  • changed colorbar default label to gradient of selection
  • droped pin to Sphinx <= 4.5.0
  • updated variable name in AbstractGame
  • changed name of variable in calculate_fitness method of Abstract game

Added

  • added input parameter checks for run and evolve methods of PairwiseMoran
  • created a method to calculate roots
  • created a method to check the stability of the replicator dynamics through the Jacobian matrix
  • added a check for the limit case in which the only non-negative eigenvalue is close to atol
  • added new notebook with examples of use
  • added an extra check when calculating fixation probabilities
  • added Python 3.10 binary - except for Windows and manylinuxi686 as non numpy or scipy builds yet available
  • added new CRD strategy
  • added extra tolerance controls in check_replicator_stability_pairwise_games
  • added new abstract game classes to simplify game implementation
  • added NPlayerStagHunt game

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.9...v0.1.10

- C++
Published by github-actions[bot] over 3 years ago

egttools - 0.1.9-patch6

Fixed

  • There was a problem with setting a geometric_distribution in C++ as a private variable for OpenMP which caused some errors when estimating stationary distributions. This was fixed by setting it as a shared variable.
  • Fixed error on version formatting, it should be 0.1.9.dev6 instead of 0.1.9.patch6.
  • Fixed wrong version tag on git.

Added

  • Binder links to run examples and updated notebooks
  • Add a Gitter chat badge to README.md by @gitter-badger in https://github.com/Socrats/EGTTools/pull/12

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.9...v0.1.9-patch3

- C++
Published by github-actions[bot] about 4 years ago

egttools - 0.1.9-patch3

Added

  • Added gitter chat and binder launch.

Fixed

  • Added missing seaborn dependency. This dependency is only needed to be able to automatically generate colorblind colors to plot the invasion diagram, so it might be dropped in the future. But, for the moments, it provides the easiest way to do this.

Changed

  • Updated docs and notebooks to use the latest egttools API.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.9...v0.1.9-patch3

- C++
Published by github-actions[bot] about 4 years ago

egttools - 0.1.9-patch2

Fixed

  • This release fixes an issue with a modulo operation that was causing an index error when calculating stability for plotting dynamics on a simplex.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.9...v0.1.9-patch2

- C++
Published by github-actions[bot] about 4 years ago

egttools - 0.1.9-patch1

Fixes

This release fixes an issue with CITATION.cff which prevented zenodo from publishing a new doi.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.9...v0.1.9-patch1

- C++
Published by Socrats about 4 years ago

egttools - 0.1.9

This releases fixes some bugs and simplifies the Simplex plotting.

Added

  • Added plot_replicator_dynamics_in_simplex and plot_moran_dynamics_in_simplex to simplify the plotting of 2 Simplexes when using replicator_equation and StochDynamics provided in egttools.
  • Added an extra example to the docs to showcase the simplified plotting.

Fixed

  • Fixed wrong numpy use in egttools.utils.calculate_stationary_distribution. Instead of numpy.eig the correct use is numpy.linalg.eig.
  • Fixed issue with plotting edges which have random drift. Before egttools.plotting.helpers.calculate_stationary_points would logically find many roots in an edge with random drift and Simplex2D.draw_stationary_points would attempt to draw all of them. Now, we first search of edges in which there is random drift, and mask them, so that no stationary points nor trajectories are plot in the edge. Instead, we draw a dashed line to represent the random drift.

Changed

  • Updated Readme.md to use the simplified plot_replicator_dynamics_in_simplex in the example of 2 Simplex plotting.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.8...v0.1.9

- C++
Published by github-actions[bot] about 4 years ago

egttools - 0.1.8

The major feature of this update is to add a class to visualize evolutionary dynamics in 2-Simplexes.

Added

  • Added Simplex2D class which can be used to plot the evolutionary dynamics in a 2-Simplex.
  • Added OneShotCRD game.
  • Added egttools.utils.calculate_stationary_distribution_non_hermitian which uses scipy.linalg.schur instead of numpy.linalg.eig. This function should be used when the transition matrix is not Hermitian (not symmetric if all the values are real). This may happen when studying the full state-space in a simplex of higher than 3 dimensions.

Fixed

  • Fixed issue with extending AbstractGame in Python.
  • Fixed bug in egttools.utils.get_payoff_function.

Changed

  • Updated output of StochDynamics.transition_and_fixation_matrix so that the correct fixation probabilities are returned, instead of fixation_probabilities/(1/Z).
  • draw_stationary_distribution was also updated so that it expects the fixation probabilities as input and not fixation_probabilities/(1/Z).
  • Several improvements in documentation and docstrings.

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.6.dev7...v0.1.8

- C++
Published by github-actions[bot] about 4 years ago

egttools - 0.1.6.dev7

This update fixes an error that caused transformations for pairwise payoffs to be used in the small mutation limit calculations to be wrong for monomorphic states (payoff of a strategy in a population of the same strategy).

Changes

  • fixed bug on egttools.utils.getpayofffunction which is used by transformpayoffsto_pairwise

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.6.dev6...v0.1.6.dev7

- C++
Published by github-actions[bot] over 4 years ago

egttools - 0.1.6.dev6

New

  • Added support for MacOS arch arm64 and universal2 builds
  • Added arm64 and universal2 build to Github CI
  • Added python37 builds
  • Now Wheels action also runs tests for each wheel (excluding arm64 and universal2:arm64)
  • Added example on how to draw invasion diagrams with egttools

Changes

  • Removed support for OpenMP on Windows and MacOS until a workaround is found
  • Changed unsigned int (size_t) indexes from PairwiseMoran to avoid issues with Eigen::Index

Changelog

  • Bump pypa/gh-action-pypi-publish from 1.4.1 to 1.4.2 by @dependabot in https://github.com/Socrats/EGTTools/pull/3

Full Changelog: https://github.com/Socrats/EGTTools/compare/v0.1.6.dev2...v0.1.6.dev6

- C++
Published by github-actions[bot] over 4 years ago

egttools - 0.1.6.dev2

  • This is the first release of egttools which include numerical simulations that run in C++ with python bindings.
  • There has been a number of improvements in the StochDynamics methods.
  • New plotting methods included.
  • A new interface to create Games and Strategies
  • This release supports different Linux, Windows and Mac build, however we do not support arm64 for now. If you wish to use egttools you can compile it in your machine following the instructions in the Readme.md.

- C++
Published by github-actions[bot] over 4 years ago

egttools - First EGTtools version

This version includes only numerical methods to study/model the Evolutionary Game Dynamics in normal form 2-player games both under the Small Mutation Limit (SML) and without this assumption.

  • There are also helper functions for plotting and finding saddle points.

- C++
Published by Socrats almost 6 years ago