From 4341a7553e38ec8c41838f1fe6b8f56069a10365 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Tue, 6 Jan 2004 10:07:19 +0000 Subject: [PATCH] * iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method. * iface/gspn/eesrg.hh: Likewise. --- ChangeLog | 5 +++++ iface/gspn/eesrg.cc | 12 +++++++++++- iface/gspn/eesrg.hh | 3 ++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2640478f5..ac38e6319 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-01-06 Alexandre Duret-Lutz + + * iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method. + * iface/gspn/eesrg.hh: Likewise. + 2004-01-05 Alexandre Duret-Lutz * src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh: New files. diff --git a/iface/gspn/eesrg.cc b/iface/gspn/eesrg.cc index d87b7a30e..fd655f905 100644 --- a/iface/gspn/eesrg.cc +++ b/iface/gspn/eesrg.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6), +// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // département Systèmes Répartis Coopératifs (SRC), Université Pierre // et Marie Curie. // @@ -456,6 +456,16 @@ namespace spot return os.str() + " * " + data_->operand->format_state(s->right()); } + state* + tgba_gspn_eesrg::project_state(const state* s, const tgba* t) const + { + const state_gspn_eesrg* s2 = dynamic_cast(s); + assert(s2); + if (t == this) + return s2->clone(); + return data_->operand->project_state(s2->right(), t); + } + bdd tgba_gspn_eesrg::all_acceptance_conditions() const { diff --git a/iface/gspn/eesrg.hh b/iface/gspn/eesrg.hh index 0a8690252..05bcaf6b2 100644 --- a/iface/gspn/eesrg.hh +++ b/iface/gspn/eesrg.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6), +// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // département Systèmes Répartis Coopératifs (SRC), Université Pierre // et Marie Curie. // @@ -60,6 +60,7 @@ namespace spot const tgba* global_automaton = 0) const; virtual bdd_dict* get_dict() const; virtual std::string format_state(const state* state) const; + virtual state* project_state(const state* s, const tgba* t) const; virtual bdd all_acceptance_conditions() const; virtual bdd neg_acceptance_conditions() const; protected: