|
|
||||||
|
cfl_project.cpp
Go to the documentation of this file.
98 FD_DF("ProjectNonDet: relinking transition: " << rGen.TStr(*tit) << " to " << rGen.SStr(currentstate));
125 // large input data and avoids to call the subroutine LocalAccessibleReach. The performance gain
552 FD_DF("ProjectNonDet: trans insert: " << rGen.SStr(currentstate.X1()) << " -> " << rGen.SStr(nit.X2()));
677 // Tobias Barthel found a test case (non-deterministic? diagnoser?) in which the original implementation
678 // by Bernd Opitz was believed to fail. Unfortunatly, this test case is now lost. As of 2014/03, we use
679 // the above re-coded version of the original algorithm as our reference. We believe it to be correct
730 FD_DF("ProjectNonDet: relinking transition: " << rGen.TStr(*tit) << " to " << rGen.SStr(currentstate));
744 FD_DF("ProjectNonDet: setting transition: " << rGen.SStr(tit->X1) << "-" << rGen.EStr(tit->Ev) << "-" << rGen.SStr(*lit2));
941 // test if we found a new exit state (the if is allways true because we went back by a silent event)
1152 FD_WPD(0,1, "ProjectNonDet() [SCC]: applying state substitution for #" << sccxmap.size() << " states");
1283 // test if we found a new exit state (the if is allways true because we went back by a silent event)
1398 if(!LanguageEquality(gref,rResGen)) throw Exception("Project(Generator,EventSet)", "TEST ERROR", 506);
1405 if(!LanguageEquality(gref,resgen)) throw Exception("Project(Generator,EventSet)", "TEST ERROR", 506);
1516 FD_DF("aInvProject(..): fixing attributes: source " << typeid(*rProjectAlphabet.AttributeType()).name() <<
#define FD_WPC(cntnow, contdone, message) Application callback: optional write progress report to console or application, incl count Definition: cfl_definitions.h:107 #define FD_WPD(cntnow, cntdone, message) Alternative progessreport for development. Definition: cfl_definitions.h:111 powersetset construction Operations on (directed) graphs. Helper functions for projected generators. language projection Operations on regular languages. state space minimization Filter for strictly connected components (SCC) search/compute routines. Definition: cfl_graphfncts.h:65 Iterator class for high-level api to TBaseSet. Definition: cfl_baseset.h:387 Iterator BeginByX2(Idx x2) const Iterator to first Transition specified by successor state x2. Definition: cfl_transset.h:1385 Iterator Inject(const Iterator &pos, const Transition &rTransition) Add a Transition. Definition: cfl_transset.h:1481 TBaseSet< Transition, TransSort::X1EvX2 >::Iterator Iterator Iterator on transition. Definition: cfl_transset.h:269 Triple (X1,Ev,X2) to represent current state, event and next state. Definition: cfl_transset.h:57 std::string ToString(const std::string &rLabel="", const Type *pContext=0) const Write configuration data to a string. Definition: cfl_types.cpp:169 void Write(const Type *pContext=0) const Write configuration data to console. Definition: cfl_types.cpp:139 StateSet::Iterator StatesBegin(void) const Iterator to Begin() of state set. Definition: cfl_generator.cpp:1057 StateSet::Iterator InitStatesBegin(void) const Iterator to Begin() of mInitStates. Definition: cfl_generator.cpp:1150 bool SetTransition(Idx x1, Idx ev, Idx x2) Add a transition to generator by indices. Definition: cfl_generator.cpp:1626 const EventSet & Alphabet(void) const Return const reference to alphabet. Definition: cfl_generator.cpp:1878 Idx InsMarkedState(void) Create new anonymous state and set as marked state. Definition: cfl_generator.cpp:1318 virtual void Move(vGenerator &rGen) Destructive copy to other vGenerator. Definition: cfl_generator.cpp:333 virtual vGenerator & Assign(const Type &rSrc) Copy from other faudes type. Definition: cfl_generator.cpp:287 const StateSet & InitStates(void) const Const ref to initial states. Definition: cfl_generator.cpp:1908 TransSet::Iterator TransRelBegin(void) const Iterator to Begin() of transition relation. Definition: cfl_generator.cpp:1067 void ClrTransition(Idx x1, Idx ev, Idx x2) Remove a transition by indices. Definition: cfl_generator.cpp:1660 void InjectState(Idx index) Inject an existing state index into generators mStates Use with care! For use in performance optimize... Definition: cfl_generator.cpp:1272 virtual void EventAttribute(Idx index, const Type &rAttr) Set attribute for existing event. Definition: cfl_generator.cpp:1722 void RestrictStates(const StateSet &rStates) Restrict states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltable. Definition: cfl_generator.cpp:1412 void InsEvents(const EventSet &events) Add new named events to generator. Definition: cfl_generator.cpp:1210 bool ExistsTransition(const std::string &rX1, const std::string &rEv, const std::string &rX2) const Test for transition given by x1, ev, x2. Definition: cfl_generator.cpp:1124 void InjectTransition(const Transition &rTrans) Set transition without consistency check. Definition: cfl_generator.cpp:1582 void RestrictAlphabet(const EventSet &rNewalphabet) Restricts mpAlphabet incl removing resp. Definition: cfl_generator.cpp:1184 std::string TStr(const Transition &rTrans) const Return pretty printable transition (eg for debugging) Definition: cfl_generator.cpp:3841 StateSet::Iterator StatesEnd(void) const Iterator to End() of state set. Definition: cfl_generator.cpp:1062 void DelStates(const StateSet &rDelStates) Delete a set of states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltabl... Definition: cfl_generator.cpp:1381 TransSet::Iterator TransRelEnd(void) const Iterator to End() of transition relation. Definition: cfl_generator.cpp:1072 std::string EStr(Idx index) const Pretty printable event name for index (eg for debugging). Definition: cfl_generator.cpp:3828 void SetMarkedState(Idx index) Set an existing state as marked state by index. Definition: cfl_generator.cpp:1507 Idx InsInitState(void) Create new anonymous state and set as initial state. Definition: cfl_generator.cpp:1287 virtual void EventAttributes(const EventSet &rEventSet) Set attributes for existing events. Definition: cfl_generator.cpp:1730 void InsInitStates(const StateSet &rStates) Add (perhaps new) anonymous initial states to generator Definition: cfl_generator.cpp:1312 bool StateNamesEnabled(void) const Whether libFAUEDS functions are requested to generate state names. Definition: cfl_generator.cpp:999 StateSet::Iterator InitStatesEnd(void) const Iterator to End() of mInitStates. Definition: cfl_generator.cpp:1155 bool ExistsInitState(Idx index) const Test existence of state in mInitStates. Definition: cfl_generator.cpp:1796 std::string SStr(Idx index) const Return pretty printable state name for index (eg for debugging) Definition: cfl_generator.cpp:3834 bool ExistsMarkedState(Idx index) const Test existence of state in mMarkedStates. Definition: cfl_generator.cpp:1806 void InjectAlphabet(const EventSet &rNewalphabet) Set mpAlphabet without consistency check. Definition: cfl_generator.cpp:1170 virtual const AttributeVoid * AttributeType(void) const Attribute typeinfo. Definition: cfl_baseset.h:2171 virtual bool AttributeTest(const Type &rAttr) const Attribute typeinfo. Definition: cfl_baseset.h:2177 virtual void InsertSet(const TBaseSet &rOtherSet) Insert elements given by rOtherSet. Definition: cfl_baseset.h:1987 virtual const AttributeVoid & Attribute(const T &rElem) const Attribute access. Definition: cfl_baseset.h:2290 void StateMin(const Generator &rGen, Generator &rResGen) State set minimization. Definition: cfl_statemin.cpp:613 void ProjectNonDetScc(Generator &rGen, const EventSet &rProjectAlphabet) Language projection. Definition: cfl_project.cpp:1343 void aProjectNonDet(Generator &rGen, const EventSet &rProjectAlphabet) Language projection. Definition: cfl_project.cpp:1411 bool ComputeScc(const Generator &rGen, const SccFilter &rFilter, std::list< StateSet > &rSccList, StateSet &rRoots) Compute strongly connected components (SCC) Definition: cfl_graphfncts.cpp:347 void Deterministic(const Generator &rGen, Generator &rResGen) Make generator deterministic. Definition: cfl_determin.cpp:68 void aInvProject(Generator &rGen, const EventSet &rProjectAlphabet) Inverse projection. Definition: cfl_project.cpp:1504 void ProjectNonDet(Generator &rGen, const EventSet &rProjectAlphabet) Language projection. Definition: cfl_project.cpp:1334 void Project(const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen) Deterministic projection. Definition: cfl_project.cpp:1349 void InvProject(Generator &rGen, const EventSet &rProjectAlphabet) Inverse projection. Definition: cfl_project.cpp:1479 void aProject(const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen) Deterministic projection. Definition: cfl_project.cpp:1417 void ProjectNonDet_fbr(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:799 void ProjectNonDet_ref(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:128 void CreateEntryStatesMap(const std::map< StateSet, Idx > &rRevEntryStatesMap, std::map< Idx, StateSet > &rEntryStatesMap) Definition: cfl_project.cpp:1536 std::string CollapsString(const std::string &rString, unsigned int len) Limit length of string, return head and tail of string. Definition: cfl_helper.cpp:91 void ProjectNonDet_scc(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:1054 void LocalAccessibleReach(const Generator &rLowGen, const EventSet &rHighAlph, Idx lowState, StateSet &rAccessibleReach) Compute the accessible reach for a local automaton. Definition: cfl_localgen.cpp:161 void ProjectNonDet_simple(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:601 void ProjectNonDet_graph(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:491 void ProjectNonDet_opitz(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:46 void ProjectNonDet_barthel(Generator &rGen, const EventSet &rProjectAlphabet) Definition: cfl_project.cpp:681 long int Int Type definition for integer type (let target system decide, minimum 32bit) Definition: cfl_definitions.h:47 Specialisation of the graph template to provide convenience methods addressing the intended ussage. Definition: cfl_project.cpp:399 TGraph< Idx, Idx > * FakeConst(void) const Definition: cfl_project.cpp:403 graph_iterator_t< Idx, Idx > Iterator Definition: cfl_project.cpp:401 void Erase(Iterator git, TNode< Idx, Idx >::Iterator nit) Definition: cfl_project.cpp:428 Graph data structure for transitionrelation – EXPERIMENTAL. Definition: cfl_project.cpp:262 A node represents the edges related to one individual vertex. Definition: cfl_project.cpp:279 TNode(const typename std::set< node_entry_t< VLabel, ELabel > > n) Definition: cfl_project.cpp:286 An iterator over the map of all nodes is interpreted as a state incl. Definition: cfl_project.cpp:327 graph_iterator_t(typename TGraph< VLabel, ELabel >::iterator git) Definition: cfl_project.cpp:334 graph_iterator_t< VLabel, ELabel > * FakeConst(void) const Definition: cfl_project.cpp:329 void Erase(const node_iterator_t< VLabel, ELabel > nit) Definition: cfl_project.cpp:354 TNode< VLabel, ELabel >::Iterator End(ELabel Ev) const Definition: cfl_project.cpp:345 TNode< VLabel, ELabel >::Iterator Begin(void) const Definition: cfl_project.cpp:338 TNode< VLabel, ELabel >::Iterator End(void) const Definition: cfl_project.cpp:340 bool Insert(const ELabel ev, const graph_iterator_t< VLabel, ELabel > x2it) Definition: cfl_project.cpp:349 TNode< VLabel, ELabel >::Iterator Begin(ELabel Ev) const Definition: cfl_project.cpp:342 node_entry_t(ELabel ev, graph_iterator_t< VLabel, ELabel > x2it) Definition: cfl_project.cpp:306 bool operator<(const node_entry_t< VLabel, ELabel > &ent) const Definition: cfl_project.cpp:309 node_entry_t(const node_entry_t< VLabel, ELabel > &ent) Definition: cfl_project.cpp:304 An iterator over the set of edges related to one vertex is interpreted as a transition. Definition: cfl_project.cpp:383 graph_iterator_t< VLabel, ELabel > X2It(void) const Definition: cfl_project.cpp:389 node_iterator_t(const typename TNode< VLabel, ELabel >::iterator &nit) Definition: cfl_project.cpp:386 libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen |