3030namespace Gambit {
3131
3232class GameSequenceForm ;
33- class GameSequenceRep ;
3433class SequencesWrapper ;
3534class PlayerSequencesWrapper ;
3635class InfosetsWrapper ;
3736class ContingenciesWrapper ;
38- using GameSequence = std::shared_ptr<GameSequenceRep>;
3937
4038// / This class represents a subset of the actions in an extensive game.
4139// / It is enforced that each player has at least one action at each
@@ -48,6 +46,7 @@ class BehaviorSupportProfile {
4846 Game m_efg;
4947 std::map<GameInfoset, std::vector<GameAction>> m_actions;
5048 mutable std::shared_ptr<GameSequenceForm> m_sequenceForm;
49+ mutable std::shared_ptr<std::map<GameInfoset, bool >> m_reachableInfosets;
5150
5251 std::map<GameInfoset, bool > m_infosetReachable;
5352 std::map<GameNode, bool > m_nonterminalReachable;
@@ -248,16 +247,14 @@ class BehaviorSupportProfile {
248247 Sequences GetSequences () const ;
249248 PlayerSequences GetSequences (GamePlayer &p_player) const ;
250249 int GetConstraintEntry (const GameInfoset &p_infoset, const GameAction &p_action) const ;
251- const Rational &
252- GetPayoff (const std::map<GamePlayer, std::shared_ptr<GameSequenceRep>> &p_profile,
253- const GamePlayer &p_player) const ;
250+ const Rational &GetPayoff (const std::map<GamePlayer, GameSequence> &p_profile,
251+ const GamePlayer &p_player) const ;
254252 GameRep::Players GetPlayers () const { return GetGame ()->GetPlayers (); }
255253 MixedBehaviorProfile<double >
256- ToMixedBehaviorProfile (const std::map<std::shared_ptr<GameSequenceRep> , double > &) const ;
254+ ToMixedBehaviorProfile (const std::map<GameSequence , double > &) const ;
257255 Infosets GetInfosets () const { return {this }; };
258256 SequenceContingencies GetSequenceContingencies () const ;
259257
260- mutable std::shared_ptr<std::map<GameInfoset, bool >> m_reachableInfosets;
261258 void FindReachableInfosets (GameNode p_node) const ;
262259 std::shared_ptr<std::map<GameInfoset, bool >> GetReachableInfosets () const ;
263260};
0 commit comments