Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Namespaces | Data Structures | Typedefs | Functions | Variables
automaton::properties Namespace Reference

Namespaces

namespace  efficient
 

Data Structures

class  AllEpsilonClosure
 
class  BackwardBisimulation
 
class  DistinguishableStates
 
class  EpsilonClosure
 
class  ForwardBisimulation
 
class  InfiniteLanguage
 
class  ReachableStates
 
class  SynchronizingWordExistence
 
class  UndistinguishableStates
 
class  UsefulStates
 

Typedefs

template<class T >
using SymbolType = typename T::SymbolType
 

Functions

template<class T >
requires isEpsilonNFA < T > || isEpsilonNFTA < T > ext::map < typename T::StateType, ext::set < typename T::StateType > > AllEpsilonClosure::allEpsilonClosure( const T & fsm)
Qi push_back ({ })
 
 for (const typename T::StateType &state :fsm.getStates()) Qi.at(0)[state].insert(state)
 
 while (true)
 
return Qi at (i)
 
Qi push_back (ext::set< StateType >())
 
Qi at (0).insert(fsm.getInitialState()) = fsm.getInitialStates( )
 
Qi push_back (Qi.at(i - 1))
 
 for (const auto &transition :afza.getTransitions())
 
 for (const auto &p :Qi.at(i - 1)) for(const auto &t
 

Variables

int i = 1
 
return closure
 
template<class T >
 return { q }
 
template<class T >
requires isMultiInitialStateNFA < T > || isMultiInitialStateEpsilonNFA < T > ext::set < typename T::StateType > ReachableStates::reachableStates( const T & fsm )
ext::deque< ext::set< StateType > > Qi
 
 do
 
for(const auto &p :Qi.at(i - 1)) for(const auto &transition while (Qi.at(i) !=Qi.at(i - 1))
 

Typedef Documentation

◆ SymbolType

template<class T >
using automaton::properties::SymbolType = typedef typename T::SymbolType
Initial value:
{
using StateType = typename T::StateType
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64

Function Documentation

◆ at() [1/2]

Qi automaton::properties::at ( ) = fsm.getInitialStates( )

◆ at() [2/2]

return Qi automaton::properties::at ( i  )
Here is the caller graph for this function:

◆ for() [1/3]

automaton::properties::for ( const auto &p :Qi.  ati - 1) const &

◆ for() [2/3]

automaton::properties::for ( const auto &transition :afza.  getTransitions())

◆ for() [3/3]

automaton::properties::for ( const typename T::StateType &state :fsm.  getStates()) )[state]

◆ push_back() [1/3]

Qi automaton::properties::push_back ( ext::set< StateType >  ())

◆ push_back() [2/3]

Qi automaton::properties::push_back ( Qi.  ati - 1)

◆ push_back() [3/3]

template<class T >
requires isEpsilonNFA < T > || isEpsilonNFTA < T > ext::map < typename T::StateType, ext::set < typename T::StateType > > AllEpsilonClosure::allEpsilonClosure( const T & fsm)
Qi automaton::properties::push_back ( { }  )
Here is the caller graph for this function:

◆ while()

automaton::properties::while ( true  )

Variable Documentation

◆ closure

return automaton::properties::closure

◆ do

automaton::properties::do
Initial value:
{
i = i + 1
int i
Definition: AllEpsilonClosure.h:118

◆ i

int automaton::properties::i = 1

◆ Qi

template<class T >
requires isMultiInitialStateNFA < T > || isMultiInitialStateEpsilonNFA < T > ext::set < typename T::StateType > ReachableStates::reachableStates( const T & fsm )
ext::deque< ext::set< StateType > > automaton::properties::Qi
Initial value:
{
using StateType = typename T::StateType

◆ return

template<class T >
automaton::properties::return { q }

◆ while

automaton::properties::while ( Qi.at(i) !  = Qi.at(i - 1))