Skip to content

Optimisation for NormalFormGame + move to pyproject.toml

  1. Changed from setup.py to pyproject.toml.
  2. Main changes in gtnash.game.normalformgame:
  • generate_joint_actions has a simplified definition using generators. This skips generating individual joint actions by hand.
  • expected_utilities simply calls expected_utilities_of_n n_players number of times, once for each player. The old code was doing this with code duplication.
  • expected_utilities_of_n now uses NumPy code instead of working with pure Python - time spent in the callback accounts for 20% of total time, as opposed to 87% 😄
  1. I also ran black on the entire codebase, due to my editor setup (désolé!)

Merge request reports