Skip to content

RFC, DOC: Merge the AbstractNormalFormGame forwarding methods - #256

Merged
oyamad merged 10 commits into
mainfrom
abst_nfg
Oct 27, 2026
Merged

oyamad merged 10 commits into
mainfrom
abst_nfg

Conversation

@oyamad

@oyamad oyamad commented Oct 18, 2026

Copy link
Copy Markdown
Member

For pure_nash, lemke_howson, vertex_enumeration (and vertex_enumeration_task), lrsnash, hc_solve, FictitiousPlay, StochasticFictitiousPlay, LocalInteraction, and RepeatedGame, the method on AbstractNormalFormGame that forwarded to the NormalFormGame method through convert is merged into that method, which now takes an AbstractNormalFormGame and converts it on entry: the identity on a NormalFormGame, one tabulation otherwise. One commit per function.

This removes the duplicated signatures and keyword defaults, and the trap of a forwarding method that matches a NormalFormGame with an invalid second argument and recurses through convert. The docstrings now document the AbstractNormalFormGame argument; RepeatedGame(g, delta) gets a docstring, and "discount rate" is corrected to "discount factor".

Behavior-preserving. support_enumeration keeps its forwarding methods, since its 2-player and N-player methods differ, and lemke_howson! still takes a NormalFormGame.

🤖 Generated with Claude Code (Claude Fable 5.1)

oyamad and others added 9 commits October 17, 2026 19:28
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused consolidation retains conversion and argument constraints, with no unresolved blocking findings.

No open issues 🎉

What changed in this PR

Consolidates abstract-game forwarding methods into GameTheory.jl’s implementations, reducing duplication while preserving intended behavior.

Changes:

  • Merge forwarding methods and retain conversion to NormalFormGame.
  • Update argument documentation for abstract games.
  • Document the repeated-game constructor and correct discount-factor terminology.

Assisted-by: GitHub Copilot (model unspecified)

File Description
src/​vertex_enumeration.jl Consolidate enumeration and task entry points.
src/​repeated_game.jl Consolidate and document game construction.
src/​pure_nash.jl Merge forwarding and use the player-count type parameter.
src/​lrsnash.jl Convert abstract games within the implementation.
src/​localint.jl Consolidate the game-based constructor.
src/​lemke_howson.jl Merge the non-mutating solver entry point.
src/​homotopy_continuation.jl Consolidate solver dispatch for abstract games.
src/​fictplay.jl Consolidate both fictitious-play constructors.

Review effort: Balanced

@oyamad

oyamad commented Oct 19, 2026

Copy link
Copy Markdown
Member Author

For the nightly failure, wait for JuliaLinearAlgebra/GenericLinearAlgebra.jl#185 to be merged.

@oyamad
oyamad merged commit 615e943 into main Oct 27, 2026
5 checks passed
@oyamad
oyamad deleted the abst_nfg branch October 27, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants