Inheritance diagram for MetaElement< AutomataBase< Self >, T >:
Public Types | |
typedef MetaElement< AutomataBase< Self >, T > | self_t |
type of the interface of an automaton. | |
typedef AutomataBase< Self >::series_set_t | series_set_t |
type the series set from which is build the automaton. | |
typedef automaton_traits< T >::series_set_elt_value_t | series_set_elt_value_t |
type of the implementation of series that holds the automaton. | |
typedef Element< series_set_t, series_set_elt_value_t > | series_set_elt_t |
type of the element of the set of series that holds the automaton. | |
typedef series_set_t::monoid_t | monoid_t |
type of the free monoid. | |
typedef series_set_elt_t::monoid_elt_t | monoid_elt_t |
type of the free monoid element. | |
typedef monoid_elt_t::value_t | monoid_elt_value_t |
type of the implementation of a word. | |
typedef monoid_t::letter_t | letter_t |
type of the letter. | |
typedef series_set_t::semiring_t | semiring_t |
type of the semiring set. | |
typedef series_set_elt_t::semiring_elt_t | semiring_elt_t |
type of the free monoid element. | |
typedef series_set_elt_t::semiring_elt_value_t | semiring_elt_value_t |
type of the implementation of a semiring_elt. | |
typedef automaton_traits< T >::tag_t | tag_t |
type of additional information that is aggregated to the automaton. | |
typedef automaton_traits< T >::label_t | label_t |
type of the label of the automaton implementation. | |
typedef automaton_traits< T >::states_t | states_t |
type of the states container. | |
typedef automaton_traits< T >::state_iterator | state_iterator |
type of the iterator over the states set. | |
typedef automaton_traits< T >::transitions_t | transitions_t |
type of the transitions set. | |
typedef automaton_traits< T >::transition_iterator | transition_iterator |
type of the iterator over the transitions. | |
typedef automaton_traits< T >::initial_t | initial_t |
type of the initial application. | |
typedef automaton_traits< T >::initial_support_t | initial_support_t |
type of the initial application support. | |
typedef automaton_traits< T >::initial_iterator | initial_iterator |
type of the iterator of the initial application support. | |
typedef automaton_traits< T >::final_t | final_t |
type of the final application. | |
typedef automaton_traits< T >::final_iterator | final_iterator |
type of the iterator of the final application support. | |
typedef automaton_traits< T >::geometry_t | geometry_t |
type of the geometry map containing state coordinates. | |
Public Member Functions | |
const series_set_t & | series () const |
the optional information aggregated to the automaton. | |
tag_t & | tag () |
the optional information aggregated to the automaton. | |
const tag_t & | tag () const |
the optional information aggregated to the automaton. | |
geometry_t & | geometry () |
the optional geometry information aggregated to the automaton. | |
const geometry_t & | geometry () const |
the optional geometry information aggregated to the automaton. | |
bool | exists () const |
return true if the automaton is consistent. | |
automaton_traits< T >::states_t | states () const |
accessor to the set of states. | |
automaton_traits< T >::transitions_t | transitions () const |
accessor to the set of states. | |
automaton_traits< T >::initial_support_t | initial () const |
accessor to the initial application. | |
automaton_traits< T >::final_support_t | final () const |
accessor to the final application. | |
bool | is_initial (hstate_t state) const |
return true if the state is initial (ie it is in the initial support) . | |
bool | is_final (hstate_t state) const |
return true if the state is final (ie it is in the final support). | |
void | set_initial (hstate_t state) |
set the state to be initial. | |
void | set_initial (hstate_t state, const series_set_elt_t &m) |
set an initial multiplicity to the state. | |
void | set_final (hstate_t state) |
set the state to be final. | |
void | set_final (hstate_t state, const series_set_elt_t &m) |
set a final multiplicity to the state. | |
void | unset_initial (hstate_t state) |
set the state not to be initial. | |
void | unset_final (hstate_t state) |
set the set not to be final. | |
void | clear_initial () |
make the support of the initial application to be empty. | |
void | clear_final () |
make the support of the final application to be empty. | |
Element< series_set_t, series_set_elt_value_t > | get_initial (hstate_t state) const |
return the initial multiplicity of the state. | |
Element< series_set_t, series_set_elt_value_t > | get_final (hstate_t what) const |
return the final multiplicity of the state. | |
hstate_t | add_state () |
add a new state to the automaton. | |
hstate_t | choose_state () const |
return a randomly chosen state. | |
htransition_t | add_transition (hstate_t from, hstate_t to, const label_t &label) |
add a new transition between 'from' and 'to' labelled by 'label' | |
htransition_t | add_weighted_transition (hstate_t from, hstate_t to, const semiring_elt_t &w, const monoid_elt_value_t &m) |
add a new weighted transition. | |
htransition_t | add_series_transition (hstate_t from, hstate_t to, const series_set_elt_t &e) |
If the underlying implementation is not sufficiently general to support this operation, you will have several transitions created. | |
htransition_t | add_spontaneous (hstate_t from, hstate_t to, const semiring_elt_t &w) |
add a spontaneous transition between 'from' and 'to'. | |
htransition_t | add_spontaneous (hstate_t from, hstate_t to) |
add a spontaneous transition between 'from' and 'to'. | |
htransition_t | add_letter_transition (hstate_t from, hstate_t to, const letter_t &l) |
add a transition between 'from' and 'to' labelled by a letter. | |
void | update (htransition_t e, const label_t &l) |
update the label of a transition. | |
void | del_state (hstate_t s) |
delete the state 's'. | |
void | del_transition (htransition_t e) |
delete the transition 'e'. | |
bool | has_state (hstate_t s) const |
check if the state 's' is in the automaton. | |
bool | has_transition (htransition_t e) const |
check if the transition 'e' is in the automaton. | |
hstate_t | src_of (htransition_t e) const |
return the origin of the transition 'e'. | |
hstate_t | dst_of (htransition_t e) const |
return the aim of the transition 'e'. | |
automaton_traits< T >::label_t | label_of (htransition_t e) const |
return the label of the transition 'e'. | |
series_set_elt_t | series_of (htransition_t e) const |
return the label seen as a series. | |
series_set_elt_value_t | series_value_of (htransition_t e) const |
return the label seen as a series implementation. | |
bool | is_spontaneous (htransition_t e) const |
return true if the transition is spontaneous. | |
monoid_elt_t | word_of (htransition_t e) const |
return the label seen as a word. | |
semiring_elt_t | weight_of (htransition_t e) const |
return the label seen as a weight. | |
monoid_elt_value_t | word_value_of (htransition_t e) const |
returns the label seen as word implementation. | |
letter_t | letter_of (htransition_t e) const |
Becareful, when you have more general label this method is probably invalidated. | |
template<typename OutputIterator, typename Kind> | |
void | delta (OutputIterator res, hstate_t from, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state from using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | delta (OutputIterator res, hstate_t from, const L &query, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state from where query is true on a transition/state, using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | letter_delta (OutputIterator res, hstate_t from, const L &letter, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state from where the label matches the letter letter. | |
template<typename OutputIterator, typename Kind> | |
void | spontaneous_delta (OutputIterator res, hstate_t from, delta_kind::kind< Kind > k) const |
Store the output spontaneous transitions or states reached from from by an epsilon-transition. | |
template<typename Container, typename Kind> | |
void | deltac (Container &res, hstate_t from, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state from in the container res. | |
template<typename Container, typename L, typename Kind> | |
void | deltac (Container &res, hstate_t from, const L &query, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state from where query is true on a transition/state, using the container res. | |
template<typename Container, typename L, typename Kind> | |
void | letter_deltac (Container &res, hstate_t from, const L &letter, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state from where the label matches the letter letter. | |
template<typename Container, typename Kind> | |
void | spontaneous_deltac (Container &res, hstate_t from, delta_kind::kind< Kind > k) const |
Store the output spontaneous transitions or states reached from from by an epsilon-transition in the container res. | |
template<typename Functor, typename Kind> | |
void | deltaf (Functor &fun, hstate_t from, delta_kind::kind< Kind > k) const |
Call the functor fun on every output transitions/states of the state from. | |
template<typename Functor, typename L, typename Kind> | |
void | deltaf (Functor &fun, hstate_t from, const L &query, delta_kind::kind< Kind > k) const |
Call the functor fun on every output transitions/states of the state from where query is true. | |
template<typename Functor, typename L, typename Kind> | |
void | letter_deltaf (Functor &fun, hstate_t from, const L &letter, delta_kind::kind< Kind > k) const |
Call the functor fun on every output transitions/states of the state from where the label matches the letter letter. | |
template<typename Functor, typename Kind> | |
void | spontaneous_deltaf (Functor &fun, hstate_t from, delta_kind::kind< Kind > k) const |
Call the functor fun on every output spontaneous transitions or every states reached by from with an epsilon-transition. | |
template<typename OutputIterator, typename Kind> | |
void | rdelta (OutputIterator res, hstate_t from, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state from using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | rdelta (OutputIterator res, hstate_t from, const L &query, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state from where query is true on a transition/state, using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | letter_rdelta (OutputIterator res, hstate_t from, const L &letter, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state from where the label matches the letter letter. | |
template<typename OutputIterator, typename Kind> | |
void | spontaneous_rdelta (OutputIterator res, hstate_t from, delta_kind::kind< Kind > k) const |
Store every input spontaneous transitions or every states that reach from with an epsilon-transition using res. | |
template<typename Container, typename Kind> | |
void | rdeltac (Container &res, hstate_t from, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state from in the container res. | |
template<typename Container, typename L, typename Kind> | |
void | rdeltac (Container &res, hstate_t from, const L &query, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state from where query is true on a transition/state, using the container res. | |
template<typename Container, typename L, typename Kind> | |
void | letter_rdeltac (Container &res, hstate_t from, const L &letter, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state from where the label matches the letter letter. | |
template<typename Container, typename Kind> | |
void | spontaneous_rdeltac (Container &res, hstate_t from, delta_kind::kind< Kind > k) const |
Store every input spontaneous transitions or every states that reach from with an epsilon-transition in the container res. | |
template<typename Functor, typename Kind> | |
void | rdeltaf (Functor &fun, hstate_t from, delta_kind::kind< Kind > k) const |
Call the functor fun on every input transitions/states of the state from. | |
template<typename Functor, typename L, typename Kind> | |
void | rdeltaf (Functor &fun, hstate_t from, const L &query, delta_kind::kind< Kind > k) const |
Call the functor fun on every input transitions/states of the state from where query is true. | |
template<typename Functor, typename L, typename Kind> | |
void | letter_rdeltaf (Functor &fun, hstate_t from, const L &letter, delta_kind::kind< Kind > k) const |
Call the functor fun on every input transitions/states of the state from where the label matches the letter letter. | |
template<typename Functor, typename Kind> | |
void | spontaneous_rdeltaf (Functor &fun, hstate_t from, delta_kind::kind< Kind > k) const |
Call the functor fun on every input spontaneous transitions or every states that reach from with an epsilon-transition. | |
Protected Member Functions | |
MetaElement () | |
MetaElement (const MetaElement &other) | |
copy constructor |
The implementation must be compatible with the automaton implementation concept. For this purpose, you can either use directly your implementation of automaton or use for example the class automaton_impl which is an adapter that enrich basic data structures to make them compatible with automaton implementation concept.
Definition at line 117 of file automata_base.hh.