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_t | series_t |
type the series set from which is build the automaton. | |
typedef automaton_traits< T >::series_value_t | series_value_t |
type of the implementation of series that holds the automaton. | |
typedef Element< series_t, series_value_t > | series_elt_t |
type of the element of the set of series that holds the automaton. | |
typedef series_t::monoid_t | monoid_t |
type of the free monoid. | |
typedef series_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_t::semiring_t | semiring_t |
type of the semiring set. | |
typedef series_elt_t::semiring_elt_t | semiring_elt_t |
type of the free monoid element. | |
typedef series_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 >::edges_t | edges_t |
type of the edges set. | |
typedef automaton_traits< T >::edge_iterator | edge_iterator |
type of the iterator over the edges. | |
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. | |
Public Member Functions | |
const series_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. | |
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 >::edges_t | edges () 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_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_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_t, series_value_t > | get_initial (hstate_t state) const |
return the initial multiplicity of the state. | |
Element< series_t, series_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. | |
hedge_t | add_edge (hstate_t from, hstate_t to, const label_t &label) |
add a new edge between 'from' and 'to' labelled by 'label' | |
hedge_t | add_series_edge (hstate_t from, hstate_t to, const series_elt_t &e) |
If the underlying implementation is not sufficiently general to support this operation, you will have several edges created. | |
hedge_t | add_spontaneous (hstate_t from, hstate_t to, const semiring_elt_t &w) |
add a spontaneous transition between 'from' and 'to'. | |
hedge_t | add_spontaneous (hstate_t from, hstate_t to) |
add a spontaneous transition between 'from' and 'to'. | |
hedge_t | add_letter_edge (hstate_t from, hstate_t to, const letter_t &l) |
add an transition between 'from' and 'to' labelled by a letter. | |
void | update (hedge_t e, const label_t &l) |
update the label of an edge. | |
void | del_state (hstate_t s) |
delete the state 's'. | |
void | del_edge (hedge_t e) |
delete the edge 'e'. | |
void | safe_del_state (hstate_t s) |
delete the state 's' and every references to it in the automaton. | |
bool | has_state (hstate_t s) const |
check if the state 's' is in the automaton. | |
bool | has_edge (hedge_t e) const |
check if the edge 'e' is in the automaton. | |
hstate_t | origin_of (hedge_t e) const |
return the origin of the edge 'e'. | |
hstate_t | aim_of (hedge_t e) const |
return the aim of the edge 'e'. | |
automaton_traits< T >::label_t | label_of (hedge_t e) const |
return the label of the edge 'e'. | |
series_elt_t | series_of (hedge_t e) const |
return the label seen as a series. | |
series_value_t | series_value_of (hedge_t e) const |
return the label seen as a series implementation. | |
bool | is_spontaneous (hedge_t e) const |
return true if the transition is spontaneous. | |
monoid_elt_t | word_of (hedge_t e) const |
return the label seen as a word. | |
monoid_elt_value_t | word_value_of (hedge_t e) const |
returns the label seen as word implementation. | |
letter_t | letter_of (hedge_t e) const |
Becareful, when you have more general label this method is probably invalidated. | |
template<typename OutputIterator> void | delta (OutputIterator res, hstate_t from, delta_kind::edges k) const |
store the output edges of the state 'from' using 'res'. | |
template<typename OutputIterator, typename L> void | delta (OutputIterator res, hstate_t from, const L &query, delta_kind::edges k) const |
store the output edges of the state 'from' where query(label(e)) = true using 'res'. | |
template<typename OutputIterator, typename L> void | letter_delta (OutputIterator res, hstate_t from, const L &letter, delta_kind::edges k) const |
store the output edges of the state 'from' where the label matches the letter. | |
template<typename OutputIterator> void | spontaneous_delta (OutputIterator res, hstate_t from, delta_kind::edges k) const |
store the output spontaneous transitions. | |
template<typename Container> void | deltac (Container &res, hstate_t from, delta_kind::edges k) const |
store the output edges of the state 'from' in the container 'res' | |
template<typename Container, typename L> void | deltac (Container &res, hstate_t from, const L &query, delta_kind::edges k) const |
store the output edges of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container, typename L> void | letter_deltac (Container &res, hstate_t from, const L &letter, delta_kind::edges k) const |
store the output edges of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container> void | spontaneous_deltac (Container &res, hstate_t from, delta_kind::edges k) const |
store the output spontaneous transitions. | |
template<typename OutputIterator> void | delta (OutputIterator res, hstate_t from, delta_kind::states k) const |
store the output edges of the state 'from' using 'res'. | |
template<typename OutputIterator, typename L> void | delta (OutputIterator res, hstate_t from, const L &query, delta_kind::states k) const |
store the output states of the state 'from' where query(label(e)) = true using 'res'. | |
template<typename OutputIterator, typename L> void | letter_delta (OutputIterator res, hstate_t from, const L &letter, delta_kind::states k) const |
store the output states of the state 'from' where the label matches the letter. | |
template<typename OutputIterator> void | spontaneous_delta (OutputIterator res, hstate_t from, delta_kind::states k) const |
store the output spontaneous transitions. | |
template<typename Container> void | deltac (Container &res, hstate_t from, delta_kind::states k) const |
store the output states of the state 'from' in the container 'res' | |
template<typename Container, typename L> void | deltac (Container &res, hstate_t from, const L &query, delta_kind::states k) const |
store the output states of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container, typename L> void | letter_deltac (Container &res, hstate_t from, const L &letter, delta_kind::states k) const |
store the output states of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container> void | spontaneous_deltac (Container &res, hstate_t from, delta_kind::states k) const |
store the output spontaneous transitions. | |
template<typename OutputIterator> void | rdelta (OutputIterator res, hstate_t from, delta_kind::edges k) const |
store the output edges of the state 'from' using 'res'. | |
template<typename OutputIterator, typename L> void | rdelta (OutputIterator res, hstate_t from, const L &query, delta_kind::edges k) const |
store the output edges of the state 'from' where query(label(e)) = true using 'res'. | |
template<typename OutputIterator, typename L> void | letter_rdelta (OutputIterator res, hstate_t from, const L &letter, delta_kind::edges k) const |
store the output edges of the state 'from' where the label matches the letter. | |
template<typename OutputIterator> void | spontaneous_rdelta (OutputIterator res, hstate_t from, delta_kind::edges k) const |
store the output spontaneous transitions. | |
template<typename Container> void | rdeltac (Container &res, hstate_t from, delta_kind::edges k) const |
store the output edges of the state 'from' in the container 'res' | |
template<typename Container, typename L> void | rdeltac (Container &res, hstate_t from, const L &query, delta_kind::edges k) const |
store the output edges of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container, typename L> void | letter_rdeltac (Container &res, hstate_t from, const L &letter, delta_kind::edges k) const |
store the output edges of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container> void | spontaneous_rdeltac (Container &res, hstate_t from, delta_kind::edges k) const |
store the output spontaneous transitions. | |
template<typename OutputIterator> void | rdelta (OutputIterator res, hstate_t from, delta_kind::states k) const |
store the output edges of the state 'from' using 'res'. | |
template<typename OutputIterator, typename L> void | rdelta (OutputIterator res, hstate_t from, const L &query, delta_kind::states k) const |
store the output states of the state 'from' where query(label(e)) = true using 'res'. | |
template<typename OutputIterator, typename L> void | letter_rdelta (OutputIterator res, hstate_t from, const L &letter, delta_kind::states k) const |
store the output states of the state 'from' where the label matches the letter. | |
template<typename OutputIterator> void | spontaneous_rdelta (OutputIterator res, hstate_t from, delta_kind::states k) const |
store the output spontaneous transitions. | |
template<typename Container> void | rdeltac (Container &res, hstate_t from, delta_kind::states k) const |
store the output states of the state 'from' in the container 'res' | |
template<typename Container, typename L> void | rdeltac (Container &res, hstate_t from, const L &query, delta_kind::states k) const |
store the output states of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container, typename L> void | letter_rdeltac (Container &res, hstate_t from, const L &letter, delta_kind::states k) const |
store the output states of the state 'from' where query(label(e)) = true in the container 'res' | |
template<typename Container> void | spontaneous_rdeltac (Container &res, hstate_t from, delta_kind::states k) const |
store the output spontaneous transitions. | |
Protected Member Functions | |
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.
|
accessor to the set of states. (const version) |
|
accessor to the set of states. (const version) |
|
return a randomly chosen state. (valid only if the automaton is not empty) |