Skip to content

Releases: Socrats/EGTTools

0.1.13-patch5

23 Nov 07:58
Compare
Choose a tag to compare

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: v0.1.13-patch4...v0.1.13-patch5

0.1.13-patch4

12 Nov 09:41
Compare
Choose a tag to compare

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 int_fast64_t
  • 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: v0.1.13-patch3...v0.1.13-patch4

0.1.13-patch3

09 Nov 15:04
Compare
Choose a tag to compare

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 #75
  • Bump ncipollo/release-action from 1.12.0 to 1.13.0 by @dependabot in #76
  • Bump pypa/cibuildwheel from 2.14.1 to 2.16.1 by @dependabot in #78
  • Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 by @dependabot in #83

Full Changelog: v0.1.13-patch2...v0.1.13-patch3

v0.1.13-patch2

01 Oct 03:10
Compare
Choose a tag to compare

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: v0.1.13...v0.1.13-patch2

v0.1.13

30 Sep 05:13
Compare
Choose a tag to compare

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 int_fast64_t 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 #48
  • Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in #52
  • Bump pypa/cibuildwheel from 2.11.2 to 2.12.1 by @dependabot in #51
  • Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in #53
  • Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in #54
  • Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 by @dependabot in #55
  • Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in #56
  • Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 by @dependabot in #58
  • Bump jwlawson/actions-setup-cmake from 1.13 to 1.14 by @dependabot in #59
  • Bump pypa/cibuildwheel from 2.12.3 to 2.13.1 by @dependabot in #63
  • Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in #61
  • Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by @dependabot in #60
  • Match scatter output to matplotlib api changes by @cvanelteren in #65
  • Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by @dependabot in #66
  • Bump pypa/cibuildwheel from 2.13.1 to 2.14.0 by @dependabot in #69
  • Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8 by @dependabot in #71
  • Bump pypa/cibuildwheel from 2.14.0 to 2.14.1 by @dependabot in #73

New Contributors

Full Changelog: v0.1.12...v0.1.13

v0.1.12-patch1

11 Jul 18:11
Compare
Choose a tag to compare

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 #48
  • Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in #52
  • Bump pypa/cibuildwheel from 2.11.2 to 2.12.1 by @dependabot in #51
  • Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in #53
  • Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in #54
  • Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 by @dependabot in #55
  • Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in #56
  • Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 by @dependabot in #58
  • Bump jwlawson/actions-setup-cmake from 1.13 to 1.14 by @dependabot in #59
  • Bump pypa/cibuildwheel from 2.12.3 to 2.13.1 by @dependabot in #63
  • Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in #61
  • Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by @dependabot in #60
  • Match scatter output to matplotlib api changes by @cvanelteren in #65
  • Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by @dependabot in #66
  • Bump pypa/cibuildwheel from 2.13.1 to 2.14.0 by @dependabot in #69

New Contributors

Full Changelog: v0.1.12...v0.1.12.patch1

0.1.12

19 Dec 17:22
Compare
Choose a tag to compare

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 "pairwise_comparison_rule".
  • 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 #36
  • Bump ncipollo/release-action from 1.11.1 to 1.11.2 by @dependabot in #38
  • Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 by @dependabot in #40
  • Bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 by @dependabot in #41
  • Bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.3 by @dependabot in #43
  • Bump pypa/gh-action-pypi-publish from 1.6.3 to 1.6.4 by @dependabot in #44
  • Bump ncipollo/release-action from 1.11.2 to 1.12.0 by @dependabot in #45

Full Changelog: v0.1.11...v0.1.12

0.1.11-patch2

16 Nov 19:49
Compare
Choose a tag to compare

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 = (n_decreasing_strategy / population_size) * (mu / (1 - nb_strategies)).

What's Changed

  • Bump ncipollo/release-action from 1.11.1 to 1.11.2 by @dependabot in #38

Full Changelog: v0.1.11-patch1...v0.1.11-patch2

0.1.11-patch1

10 Nov 12:10
Compare
Choose a tag to compare

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 #36

Full Changelog: v0.1.11...v0.1.11-patch1

0.1.11

27 Oct 04:52
Compare
Choose a tag to compare

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: v0.1.10...v0.1.11