MetaElement< AutomataBase< Self >, T > Struct Template Reference
[Concept]

MetaElement<AutomataBase<Self>, T> defines the interface of every automaton that is the result of the interaction of a structural element (AutomataBase<Self>) and an implementation T. More...

Inheritance diagram for MetaElement< AutomataBase< Self >, T >:

Inheritance graph
[legend]
List of all members.

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_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_support_t 
final_support_t
 Type of the final application support.
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.
typedef automaton_traits<
T >::geometry_t::coords_t 
geometry_coords_t
 Type of the coordinates used in the geometry map.
typedef automaton_traits<
T >::hstate_t 
hstate_t
 Type of handlers.
typedef automaton_traits<
T >::htransition_t 
htransition_t
typedef automaton_traits<
T >::delta_state_iterator 
delta_state_iterator
 Type of delta iterators.
typedef automaton_traits<
T >::delta_transition_iterator 
delta_transition_iterator
typedef automaton_traits<
T >::rdelta_state_iterator 
rdelta_state_iterator
typedef automaton_traits<
T >::rdelta_transition_iterator 
rdelta_transition_iterator

Public Member Functions

const series_set_tseries () const
 The optional information aggregated to the automaton.
tag_ttag ()
 The optional information aggregated to the automaton.
const tag_ttag () const
 The optional information aggregated to the automaton.
geometry_tgeometry ()
 The optional geometry information aggregated to the automaton.
const geometry_tgeometry () const
 The optional geometry information aggregated to the automaton.
bool exists () const
 Return true if the automaton is consistent.
states_t states () const
 Accessor to the set of states.
transitions_t transitions () const
 Accessor to the set of states.
initial_support_t initial () const
 Accessor to the initial application.
final_support_t final () const
 Accessor to the final application.
bool is_initial (const hstate_t &state) const
 Return true if the state is initial (ie it is in the initial support) .
bool is_initial (unsigned state) const
bool is_final (const hstate_t &state) const
 Return true if the state is final (ie it is in the final support).
bool is_final (unsigned state) const
void set_initial (const hstate_t &state)
 Set the state to be initial.
void set_initial (unsigned state)
void set_initial (const hstate_t &state, const series_set_elt_t &m)
 Set an initial multiplicity to the state.
void set_initial (unsigned state, const series_set_elt_t &m)
void set_final (const hstate_t &state)
 Set the state to be final.
void set_final (unsigned state)
void set_final (const hstate_t &state, const series_set_elt_t &m)
 Set a final multiplicity to the state.
void set_final (unsigned state, const series_set_elt_t &m)
void unset_initial (const hstate_t &state)
 Set the state not to be initial.
void unset_initial (unsigned state)
void unset_final (const hstate_t &state)
 Set the set not to be final.
void unset_final (unsigned state)
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_tget_initial (const hstate_t &state) const
 Return the initial multiplicity of the state.
Element< series_set_t, series_set_elt_value_tget_initial (unsigned state) const
Element< series_set_t, series_set_elt_value_tget_final (const hstate_t &state) const
 Return the final multiplicity of the state.
Element< series_set_t, series_set_elt_value_tget_final (unsigned state) const
hstate_t add_state ()
 Add a new state to the automaton.
hstate_t get_state (unsigned state) const
 Return a state descriptor for state number 'state'.
hstate_t choose_state () const
 Return a randomly chosen state.
htransition_t add_transition (const hstate_t &src, const hstate_t &dst, const label_t &label)
 Add a new transition between src and dst labelled by label.
htransition_t add_transition (unsigned src, unsigned dst, const label_t &label)
htransition_t add_weighted_transition (const hstate_t &src, const hstate_t &dst, const semiring_elt_t &w, const monoid_elt_value_t &m)
 Add a new weighted transition, specifying a semiring element and a monoid element.
htransition_t add_weighted_transition (unsigned src, unsigned dst, const semiring_elt_t &w, const monoid_elt_value_t &m)
htransition_t add_series_transition (const hstate_t &src, const hstate_t &dst, 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_series_transition (unsigned src, unsigned dst, const series_set_elt_t &e)
htransition_t add_spontaneous (const hstate_t &src, const hstate_t &dst, const semiring_elt_t &w)
 Add a spontaneous transition between src and dst.
htransition_t add_spontaneous (unsigned src, unsigned dst, const semiring_elt_t &w)
htransition_t add_spontaneous (unsigned src, unsigned dst)
htransition_t add_letter_transition (const hstate_t &src, const hstate_t &dst, const letter_t &l)
 Add a transition between src and dst labelled by a letter.
htransition_t add_letter_transition (unsigned src, unsigned dst, const letter_t &l)
htransition_t add_letter_transition (const hstate_t &src, const hstate_t &dst, const std::string &l)
 Add a transition between src and dst labelled by a letter from its literal representation.
htransition_t add_letter_transition (unsigned src, unsigned dst, const std::string &l)
void update (const htransition_t &e, const label_t &l)
 Update the label of a transition.
void del_state (const hstate_t &state)
 Delete the state s.
void del_state (unsigned state)
void del_transition (const htransition_t &e)
 Delete the transition e.
bool has_state (const hstate_t &state) const
 Check if the state s is in the automaton.
bool has_state (unsigned state) const
bool has_transition (const htransition_t &e) const
 Check if the transition e is in the automaton.
hstate_t src_of (const htransition_t &e) const
 Return the origin of the transition e.
hstate_t dst_of (const htransition_t &e) const
 Return the aim of the transition e.
automaton_traits< T >::label_t label_of (const htransition_t &e) const
 Return the label of the transition e.
series_set_elt_t series_of (const htransition_t &e) const
 Return the label seen as a series.
series_set_elt_value_t series_value_of (const htransition_t &e) const
 Return the label seen as a series implementation.
bool is_spontaneous (const htransition_t &e) const
 Return true if the transition is spontaneous.
monoid_elt_t word_of (const htransition_t &e) const
 Return the label seen as a word.
semiring_elt_t weight_of (const htransition_t &e) const
 Return the label seen as a weight.
monoid_elt_value_t word_value_of (const htransition_t &e) const
 Returns the label seen as word implementation.
letter_t letter_of (const htransition_t &e) const
 Be careful, when you have more general label this method is ! probably invalidated (in that case, an exception should be ! raised.
template<typename OutputIterator, typename Kind>
void delta (OutputIterator res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store the output transitions/states of the state src using res.
template<typename OutputIterator, typename Kind>
void delta (OutputIterator res, unsigned src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void delta (OutputIterator res, const hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
 Store the output transitions/states of the state src where query is true on a transition/state, using res.
template<typename OutputIterator, typename L, typename Kind>
void delta (OutputIterator res, unsigned src, const L &query, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void letter_delta (OutputIterator res, const hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
 Store the output transitions/states of the state src where the label matches the letter letter.
template<typename OutputIterator, typename L, typename Kind>
void letter_delta (OutputIterator res, unsigned src, const L &letter, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void spontaneous_delta (OutputIterator res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store the output spontaneous transitions or states reached from src by an epsilon-transition.
template<typename OutputIterator, typename Kind>
void spontaneous_delta (OutputIterator res, unsigned src, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void deltac (Container &res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store the output transitions/states of the state src in the container res.
template<typename Container, typename Kind>
void deltac (Container &res, unsigned src, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void deltac (Container &res, const hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
 Store the output transitions/states of the state src where query is true on a transition/state, using the container res.
template<typename Container, typename L, typename Kind>
void deltac (Container &res, unsigned src, const L &query, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void letter_deltac (Container &res, const hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
 Store the output transitions/states of the state src where the label matches the letter letter.
template<typename Container, typename L, typename Kind>
void letter_deltac (Container &res, unsigned src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void spontaneous_deltac (Container &res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store the output spontaneous transitions or states reached from src by an epsilon-transition in the container res.
template<typename Container, typename Kind>
void spontaneous_deltac (Container &res, unsigned src, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void deltaf (Functor &fun, const hstate_t &src, delta_kind::kind< Kind > k) const
 Call the functor fun on every output transitions/states of the state src.
template<typename Functor, typename Kind>
void deltaf (Functor &fun, unsigned src, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void deltaf (Functor &fun, const hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
 Call the functor fun on every output transitions/states of the state src where query is true.
template<typename Functor, typename L, typename Kind>
void deltaf (Functor &fun, unsigned src, const L &query, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void letter_deltaf (Functor &fun, const hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
 Call the functor fun on every output transitions/states of the state src where the label matches the letter letter.
template<typename Functor, typename L, typename Kind>
void letter_deltaf (Functor &fun, unsigned src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void spontaneous_deltaf (Functor &fun, const hstate_t &src, delta_kind::kind< Kind > k) const
 Call the functor fun on every output spontaneous transitions or every states reached by src with an epsilon-transition.
template<typename Functor, typename Kind>
void spontaneous_deltaf (Functor &fun, unsigned src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void rdelta (OutputIterator res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store the input transitions/states of the state src using res.
template<typename OutputIterator, typename Kind>
void rdelta (OutputIterator res, unsigned src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void rdelta (OutputIterator res, const hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
 Store the input transitions/states of the state src where query is true on a transition/state, using res.
template<typename OutputIterator, typename L, typename Kind>
void rdelta (OutputIterator res, unsigned src, const L &query, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void letter_rdelta (OutputIterator res, const hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
 Store the input transitions/states of the state src where the label matches the letter letter.
template<typename OutputIterator, typename L, typename Kind>
void letter_rdelta (OutputIterator res, unsigned src, const L &letter, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void spontaneous_rdelta (OutputIterator res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store every input spontaneous transitions or every states that reach src with an epsilon-transition using res.
template<typename OutputIterator, typename Kind>
void spontaneous_rdelta (OutputIterator res, unsigned src, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void rdeltac (Container &res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store the input transitions/states of the state src in the container res.
template<typename Container, typename Kind>
void rdeltac (Container &res, unsigned src, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void rdeltac (Container &res, const hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
 Store the input transitions/states of the state src where query is true on a transition/state, using the container res.
template<typename Container, typename L, typename Kind>
void rdeltac (Container &res, unsigned src, const L &query, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void letter_rdeltac (Container &res, const hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
 Store the input transitions/states of the state src where the label matches the letter letter.
template<typename Container, typename L, typename Kind>
void letter_rdeltac (Container &res, unsigned src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void spontaneous_rdeltac (Container &res, const hstate_t &src, delta_kind::kind< Kind > k) const
 Store every input spontaneous transitions or every states that reach src with an epsilon-transition in the container res.
template<typename Container, typename Kind>
void spontaneous_rdeltac (Container &res, unsigned src, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void rdeltaf (Functor &fun, const hstate_t &src, delta_kind::kind< Kind > k) const
 Call the functor fun on every input transitions/states of the state src.
template<typename Functor, typename Kind>
void rdeltaf (Functor &fun, unsigned src, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void rdeltaf (Functor &fun, const hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
 Call the functor fun on every input transitions/states of the state src where query is true.
template<typename Functor, typename L, typename Kind>
void rdeltaf (Functor &fun, unsigned src, const L &query, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void letter_rdeltaf (Functor &fun, const hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
 Call the functor fun on every input transitions/states of the state src where the label matches the letter letter.
template<typename Functor, typename L, typename Kind>
void letter_rdeltaf (Functor &fun, unsigned src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void spontaneous_rdeltaf (Functor &fun, const hstate_t &src, delta_kind::kind< Kind > k) const
 Call the functor fun on every input spontaneous transitions or every states that reach src with an epsilon-transition.
template<typename Functor, typename Kind>
void spontaneous_rdeltaf (Functor &fun, unsigned src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void delta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void delta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void letter_delta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void spontaneous_delta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void deltac (Container &res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void deltac (Container &res, const typename automaton_traits< T >::hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void letter_deltac (Container &res, const typename automaton_traits< T >::hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void spontaneous_deltac (Container &res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void deltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void deltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void letter_deltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void spontaneous_deltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void rdelta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void rdelta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename L, typename Kind>
void letter_rdelta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
template<typename OutputIterator, typename Kind>
void spontaneous_rdelta (OutputIterator res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void rdeltac (Container &res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void rdeltac (Container &res, const typename automaton_traits< T >::hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
template<typename Container, typename L, typename Kind>
void letter_rdeltac (Container &res, const typename automaton_traits< T >::hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Container, typename Kind>
void spontaneous_rdeltac (Container &res, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void rdeltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void rdeltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, const L &query, delta_kind::kind< Kind > k) const
template<typename Functor, typename L, typename Kind>
void letter_rdeltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, const L &letter, delta_kind::kind< Kind > k) const
template<typename Functor, typename Kind>
void spontaneous_rdeltaf (Functor &fun, const typename automaton_traits< T >::hstate_t &src, delta_kind::kind< Kind > k) const

Protected Member Functions

 MetaElement ()
 MetaElement (const MetaElement &other)
 Copy constructor.

Detailed Description

template<typename Self, typename T>
struct vcsn::MetaElement< AutomataBase< Self >, T >

MetaElement<AutomataBase<Self>, T> defines the interface of every automaton that is the result of the interaction of a structural element (AutomataBase<Self>) and an implementation T.

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 343 of file automata_base.hh.


Member Function Documentation

automaton_traits< T >::states_t states (  )  const

Accessor to the set of states.

(const version)

Definition at line 97 of file automata_base.hxx.

References vcsn::op_states().

automaton_traits< T >::transitions_t transitions (  )  const

Accessor to the set of states.

(const version)

Definition at line 105 of file automata_base.hxx.

References vcsn::op_transitions().

automaton_traits< T >::hstate_t choose_state (  )  const

Return a randomly chosen state.

(valid only if the automaton is not empty)

Definition at line 358 of file automata_base.hxx.

References vcsn::op_choose_state().

letter_t letter_of ( const htransition_t e  )  const

Be careful, when you have more general label this method is ! probably invalidated (in that case, an exception should be ! raised.

)

void deltaf ( Functor &  fun,
const hstate_t src,
delta_kind::kind< Kind >  k 
) const

Call the functor fun on every output transitions/states of the state src.

If fun returns Boolean values and returns false, the loop is stopped.

void deltaf ( Functor &  fun,
const hstate_t src,
const L &  query,
delta_kind::kind< Kind >  k 
) const

Call the functor fun on every output transitions/states of the state src where query is true.

If fun returns Boolean values and returns false, the loop is stopped.

void letter_deltaf ( Functor &  fun,
const hstate_t src,
const L &  letter,
delta_kind::kind< Kind >  k 
) const

Call the functor fun on every output transitions/states of the state src where the label matches the letter letter.

If fun returns Boolean values and returns false, the loop is stopped.

void spontaneous_deltaf ( Functor &  fun,
const hstate_t src,
delta_kind::kind< Kind >  k 
) const

Call the functor fun on every output spontaneous transitions or every states reached by src with an epsilon-transition.

If fun returns Boolean values and returns false, the loop is stopped.


Generated on Thu Oct 9 20:25:43 2008 for Vaucanson by  doxygen 1.5.1