Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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

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

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

Inheritance graph
[legend]
List of all members.

Public Types

typedef MetaElement< AutomataBase<
Self >, T > 
automaton_t
 type of the interface of an automaton.

typedef MetaElement< TransducerBase<
Self >, T > 
self_t
 type of the interface of an automaton.

typedef MetaElement< AutomataBase<
Self >, T > 
mother_t
 type of the mother class.

typedef mother_t::semiring_elt_t output_series_set_elt_t
 type of the output.

typedef automaton_traits<
T >::semiring_elt_value_t 
semiring_elt_value_t
 type of the output monoid element implementation.

typedef semiring_t::monoid_t output_monoid_t
 type of the output monoid.

typedef Element< output_monoid_t,
output_monoid_elt_value_t
output_monoid_elt_t
 type of the output monoid element.

typedef mother_t::monoid_elt_value_t input_monoid_elt_value_t
 type of the input monoid element implementation.

typedef mother_t::monoid_t input_monoid_t
 type of the input monoid.

typedef algebra::series_traits<
semiring_elt_value_t >::semiring_elt_value_t 
output_semiring_elt_value_t
 type of the output weight implementation.

typedef semiring_t::semiring_t output_semiring_t
 type of the output semiring.

typedef Element< output_semiring_t,
output_semiring_elt_value_t
output_semiring_elt_t
 type of the output weight.

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 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

 INHERIT_TYPEDEF_ (automaton_t, series_set_t)
 type the series set from which is build the automaton.

 INHERIT_TYPEDEF_ (automaton_t, series_set_elt_value_t)
 type of the implementation of series that holds the automaton.

 INHERIT_TYPEDEF_ (automaton_t, series_set_elt_t)
 type of the element of the set of series that holds the automaton.

 INHERIT_TYPEDEF_ (automaton_t, monoid_t)
 type of the free monoid.

 INHERIT_TYPEDEF_ (automaton_t, monoid_elt_t)
 type of the free monoid element.

 INHERIT_TYPEDEF_ (automaton_t, monoid_elt_value_t)
 type of the implementation of a word.

 INHERIT_TYPEDEF_ (automaton_t, letter_t)
 type of the letter.

 INHERIT_TYPEDEF_ (automaton_t, semiring_t)
 type of the semiring set.

 INHERIT_TYPEDEF_ (automaton_t, semiring_elt_t)
 type of the free monoid element.

 INHERIT_TYPEDEF_ (automaton_t, semiring_elt_value_t)
 type of the implementation of a semiring_elt.

 INHERIT_TYPEDEF_ (automaton_t, tag_t)
 type of additional information that is aggregated to the automaton.

 INHERIT_TYPEDEF_ (automaton_t, label_t)
 type of the label of the automaton implementation.

 INHERIT_TYPEDEF_ (automaton_t, states_t)
 type of the states container.

 INHERIT_TYPEDEF_ (automaton_t, state_iterator)
 type of the iterator over the states set.

 INHERIT_TYPEDEF_ (automaton_t, edges_t)
 type of the edges set.

 INHERIT_TYPEDEF_ (automaton_t, edge_iterator)
 type of the iterator over the edges.

 INHERIT_TYPEDEF_ (automaton_t, initial_t)
 type of the initial application.

 INHERIT_TYPEDEF_ (automaton_t, initial_support_t)
 type of the initial application support.

 INHERIT_TYPEDEF_ (automaton_t, initial_iterator)
 type of the iterator of the initial application support.

 INHERIT_TYPEDEF_ (automaton_t, final_t)
 type of the final application.

 INHERIT_TYPEDEF_ (automaton_t, final_iterator)
 type of the iterator of the final application support.

input_monoid_elt_t input_of (hedge_t) const
 return the input of an edge

output_series_set_elt_t output_of (hedge_t) const
 return the output of an edge

hedge_t add_io_edge (hstate_t, hstate_t, input_monoid_elt_value_t, output_monoid_elt_value_t, output_semiring_elt_t=output_semiring_elt_t())
 add an edge specified as an input word value and output word value.

hedge_t add_io_edge (hstate_t, hstate_t, input_letter_t, output_letter_t, output_semiring_elt_t=output_semiring_elt_t())
 add an edge specified using an input letter, an output letter and a weight linked to it.

hedge_t add_o_edge (hstate_t, hstate_t, output_letter_t, output_semiring_elt_t=output_semiring_elt_t())
 add an only-output edge (epsilon as input).

hedge_t add_i_edge (hstate_t, hstate_t, input_letter_t, output_semiring_elt_t=output_semiring_elt_t())
 add an only-input edge (epsilon as output).

void set_o_final (hstate_t, output_monoid_elt_value_t)
 set a weight on the final edge, specifying an output_monoid value.

void set_o_initial (hstate_t, output_monoid_elt_value_t)
 set a weight on the initial edge, specifying an output_monoid value.

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.

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_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_tget_initial (hstate_t state) const
 return the initial multiplicity of the state.

Element< series_set_t, series_set_elt_value_tget_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_weighted_edge (hstate_t from, hstate_t to, const semiring_elt_t &w, const monoid_elt_value_t &m)
 add a new weighted edge.

hedge_t add_series_edge (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 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_set_elt_t series_of (hedge_t e) const
 return the label seen as a series.

series_set_elt_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> 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::edges k) const
 store the output edges of the state 'from' where the label matches the letter.

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::edges k) const
 store the output spontaneous transitions.

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::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> 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::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::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::edges k) const
 store the output spontaneous transitions.

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> 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::edges k) const
 store the output edges of the state 'from' where the label matches the letter.

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::edges k) const
 store the output spontaneous transitions.

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::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> 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::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::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::edges k) const
 store the output spontaneous transitions.

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


Detailed Description

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

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


Member Function Documentation

automaton_traits< T >::states_t states  )  const [inherited]
 

accessor to the set of states.

(const version)

automaton_traits< T >::edges_t edges  )  const [inherited]
 

accessor to the set of states.

(const version)

hstate_t choose_state  )  const [inherited]
 

return a randomly chosen state.

(valid only if the automaton is not empty)


Generated on Sun Jul 18 14:30:57 2004 for Vaucanson by doxygen 1.3.7