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

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

Services of every element of the automata set. More...

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

Inheritance graph
[legend]
List of all members.

Public Types

typedef MetaElement< AutomataBase<
Self >, T > 
self_t
typedef AutomataBase< Self
>::series_t 
series_t
typedef automaton_traits<
T >::serie_value_t 
serie_value_t
typedef Element< series_t,
serie_value_t
series_elt_t
typedef series_t::monoid_t monoid_t
typedef series_elt_t::monoid_elt_t monoid_elt_t
typedef monoid_elt_t::value_t monoid_elt_value_t
typedef monoid_t::letter_t letter_t
typedef series_t::semiring_t semiring_t
typedef series_elt_t::semiring_elt_t semiring_elt_t
typedef series_elt_t::semiring_elt_value_t semiring_elt_value_t
typedef automaton_traits<
T >::tag_t 
tag_t
typedef automaton_traits<
T >::label_t 
label_t
typedef automaton_traits<
T >::states_t 
states_t
typedef automaton_traits<
T >::state_iterator 
state_iterator
typedef automaton_traits<
T >::edges_t 
edges_t
typedef automaton_traits<
T >::edge_iterator 
edge_iterator
typedef automaton_traits<
T >::initial_t 
initial_t
typedef automaton_traits<
T >::initial_support_t 
initial_support_t
typedef automaton_traits<
T >::initial_iterator 
initial_iterator
typedef automaton_traits<
T >::final_t 
final_t
typedef automaton_traits<
T >::final_iterator 
final_iterator

Public Member Functions

const series_tseries () const
tag_ttag ()
const tag_ttag () const
bool exists () const
automaton_traits< T >::states_t states () const
automaton_traits< T >::edges_t edges () const
automaton_traits< T >::initial_support_t initial () const
automaton_traits< T >::final_support_t final () const
bool is_initial (hstate_t state) const
bool is_final (hstate_t state) const
void set_initial (hstate_t state)
void set_initial (hstate_t state, const series_elt_t &m)
void set_final (hstate_t state)
void set_final (hstate_t state, const series_elt_t &m)
void unset_initial (hstate_t state)
void unset_final (hstate_t state)
void clear_initial ()
void clear_final ()
Element< series_t, serie_value_tget_initial (hstate_t state) const
Element< series_t, serie_value_tget_final (hstate_t what) const
hstate_t add_state ()
hstate_t choose_state () const
hedge_t add_edge (hstate_t from, hstate_t to, const label_t &label)
hedge_t add_serie_edge (hstate_t from, hstate_t to, const series_elt_t &e)
hedge_t add_spontaneous (hstate_t from, hstate_t to, const semiring_elt_t &w)
hedge_t add_spontaneous (hstate_t from, hstate_t to)
hedge_t add_letter_edge (hstate_t from, hstate_t to, const letter_t &l)
void update (hedge_t e, const label_t &l)
void del_state (hstate_t s)
void del_edge (hedge_t e)
void safe_del_state (hstate_t s)
bool has_state (hstate_t s) const
bool has_edge (hedge_t e) const
hstate_t origin_of (hedge_t e) const
hstate_t aim_of (hedge_t e) const
automaton_traits< T >::label_t label_of (hedge_t e) const
series_elt_t serie_of (hedge_t e) const
serie_value_t serie_value_of (hedge_t e) const
bool is_spontaneous (hedge_t e) const
monoid_elt_t word_of (hedge_t e) const
monoid_elt_value_t word_value_of (hedge_t e) const
letter_t letter_of (hedge_t e) const
template<typename OutputIterator> void delta (OutputIterator res, hstate_t from, delta_kind::edges k) const
template<typename OutputIterator, typename L> void delta (OutputIterator res, hstate_t from, const L &query, delta_kind::edges k) const
template<typename OutputIterator, typename L> void letter_delta (OutputIterator res, hstate_t from, const L &letter, delta_kind::edges k) const
template<typename OutputIterator> void spontaneous_delta (OutputIterator res, hstate_t from, delta_kind::edges k) const
template<typename Container> void deltac (Container &res, hstate_t from, delta_kind::edges k) const
template<typename Container, typename L> void deltac (Container &res, hstate_t from, const L &query, delta_kind::edges k) const
template<typename Container, typename L> void letter_deltac (Container &res, hstate_t from, const L &letter, delta_kind::edges k) const
template<typename Container> void spontaneous_deltac (Container &res, hstate_t from, delta_kind::edges k) const
template<typename OutputIterator> void delta (OutputIterator res, hstate_t from, delta_kind::states k) const
template<typename OutputIterator, typename L> void delta (OutputIterator res, hstate_t from, const L &query, delta_kind::states k) const
template<typename OutputIterator, typename L> void letter_delta (OutputIterator res, hstate_t from, const L &letter, delta_kind::states k) const
template<typename OutputIterator> void spontaneous_delta (OutputIterator res, hstate_t from, delta_kind::states k) const
template<typename Container> void deltac (Container &res, hstate_t from, delta_kind::states k) const
template<typename Container, typename L> void deltac (Container &res, hstate_t from, const L &query, delta_kind::states k) const
template<typename Container, typename L> void letter_deltac (Container &res, hstate_t from, const L &letter, delta_kind::states k) const
template<typename Container> void spontaneous_deltac (Container &res, hstate_t from, delta_kind::states k) const
template<typename OutputIterator> void rdelta (OutputIterator res, hstate_t from, delta_kind::edges k) const
template<typename OutputIterator, typename L> void rdelta (OutputIterator res, hstate_t from, const L &query, delta_kind::edges k) const
template<typename OutputIterator, typename L> void letter_rdelta (OutputIterator res, hstate_t from, const L &letter, delta_kind::edges k) const
template<typename OutputIterator> void spontaneous_rdelta (OutputIterator res, hstate_t from, delta_kind::edges k) const
template<typename Container> void rdeltac (Container &res, hstate_t from, delta_kind::edges k) const
template<typename Container, typename L> void rdeltac (Container &res, hstate_t from, const L &query, delta_kind::edges k) const
template<typename Container, typename L> void letter_rdeltac (Container &res, hstate_t from, const L &letter, delta_kind::edges k) const
template<typename Container> void spontaneous_rdeltac (Container &res, hstate_t from, delta_kind::edges k) const
template<typename OutputIterator> void rdelta (OutputIterator res, hstate_t from, delta_kind::states k) const
template<typename OutputIterator, typename L> void rdelta (OutputIterator res, hstate_t from, const L &query, delta_kind::states k) const
template<typename OutputIterator, typename L> void letter_rdelta (OutputIterator res, hstate_t from, const L &letter, delta_kind::states k) const
template<typename OutputIterator> void spontaneous_rdelta (OutputIterator res, hstate_t from, delta_kind::states k) const
template<typename Container> void rdeltac (Container &res, hstate_t from, delta_kind::states k) const
template<typename Container, typename L> void rdeltac (Container &res, hstate_t from, const L &query, delta_kind::states k) const
template<typename Container, typename L> void letter_rdeltac (Container &res, hstate_t from, const L &letter, delta_kind::states k) const
template<typename Container> void spontaneous_rdeltac (Container &res, hstate_t from, delta_kind::states k) const

Protected Member Functions

 MetaElement (const MetaElement &other)

Detailed Description

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

Services of every element of the automata set.

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.


Member Typedef Documentation

typedef MetaElement<AutomataBase<Self>, T> self_t
 

type of the interface of an automaton.

Reimplemented in MetaElement< TransducerBase< Self >, T >.

typedef AutomataBase<Self>::series_t series_t
 

type the series set from which is build the automaton.

typedef automaton_traits<T>::serie_value_t serie_value_t
 

type of the implementation of series that holds the automaton.

typedef Element<series_t, serie_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.

Reimplemented in MetaElement< TransducerBase< Self >, T >.

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.


Member Function Documentation

const MetaElement< AutomataBase< Self >, T >::series_t & series  )  const [inline]
 

the set of series from which is build the automaton (const version).

MetaElement< AutomataBase< Self >, T >::tag_t & tag  )  [inline]
 

the optional information aggregated to the automaton.

const MetaElement< AutomataBase< Self >, T >::tag_t & tag  )  const [inline]
 

the optional information aggregated to the automaton.

bool exists  )  const [inline]
 

return true if the automaton is consistent.

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

accessor to the set of states. (const version)

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

accessor to the set of states. (const version)

automaton_traits< T >::initial_support_t initial  )  const [inline]
 

accessor to the initial application.

automaton_traits< T >::final_support_t final  )  const [inline]
 

accessor to the final application.

bool is_initial hstate_t  state  )  const [inline]
 

return true if the state is initial (ie it is in the initial support) .

bool is_final hstate_t  state  )  const [inline]
 

return true if the state is final (ie it is in the final support).

void set_initial hstate_t  state  )  [inline]
 

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  )  [inline]
 

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  )  [inline]
 

set the state not to be initial.

void unset_final hstate_t  state  )  [inline]
 

set the set not to be final.

void clear_initial  )  [inline]
 

make the support of the initial application to be empty.

void clear_final  )  [inline]
 

make the support of the final application to be empty.

MetaElement< AutomataBase< Self >, T >::series_elt_t get_initial hstate_t  state  )  const [inline]
 

return the initial multiplicity of the state.

MetaElement< AutomataBase< Self >, T >::series_elt_t get_final hstate_t  what  )  const [inline]
 

return the final multiplicity of the state.

hstate_t add_state  )  [inline]
 

add a new state to the automaton.

hstate_t choose_state  )  const [inline]
 

return a randomly chosen state. (valid only if the automaton is not empty)

hedge_t add_edge hstate_t  from,
hstate_t  to,
const label_t label
[inline]
 

add a new edge between 'from' and 'to' labelled by 'label'

hedge_t add_serie_edge hstate_t  from,
hstate_t  to,
const series_elt_t e
[inline]
 

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
[inline]
 

add a spontaneous transition between 'from' and 'to'.

hedge_t add_spontaneous hstate_t  from,
hstate_t  to
[inline]
 

add a spontaneous transition between 'from' and 'to'.

hedge_t add_letter_edge hstate_t  from,
hstate_t  to,
const letter_t l
[inline]
 

add a transition between 'from' and 'to' labelled by a letter.

void update hedge_t  e,
const label_t l
[inline]
 

update the label of an edge.

void del_state hstate_t  s  )  [inline]
 

delete the state 's'.

void del_edge hedge_t  e  )  [inline]
 

delete the edge 'e'.

void safe_del_state hstate_t  s  )  [inline]
 

delete the state 's' and every references to it in the automaton.

bool has_state hstate_t  s  )  const [inline]
 

check if the state 's' is in the automaton.

bool has_edge hedge_t  e  )  const [inline]
 

check if the edge 'e' is in the automaton.

hstate_t origin_of hedge_t  e  )  const [inline]
 

return the origin of the edge 'e'.

hstate_t aim_of hedge_t  e  )  const [inline]
 

return the aim of the edge 'e'.

automaton_traits< T >::label_t label_of hedge_t  e  )  const [inline]
 

return the label of the edge 'e'.

MetaElement< AutomataBase< Self >, T >::series_elt_t serie_of hedge_t  e  )  const [inline]
 

return the label seen as a serie.

MetaElement< AutomataBase< Self >, T >::serie_value_t serie_value_of hedge_t  e  )  const [inline]
 

return the label seen as a serie implementation.

bool is_spontaneous hedge_t  e  )  const [inline]
 

return true if the transition is spontaneous.

MetaElement< AutomataBase< Self >, T >::monoid_elt_t word_of hedge_t  e  )  const [inline]
 

return the label seen as a word.

MetaElement< AutomataBase< Self >, T >::monoid_elt_value_t word_value_of hedge_t  e  )  const [inline]
 

returns the label seen as word implementation.

MetaElement< AutomataBase< Self >, T >::letter_t letter_of hedge_t  e  )  const [inline]
 

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

void delta OutputIterator  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' using 'res'.

void delta OutputIterator  res,
hstate_t  from,
const L &  query,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where query(a.set(), a.value(), e)) = true using 'res'.

void letter_delta OutputIterator  res,
hstate_t  from,
const L &  letter,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where the label matches the letter.

void spontaneous_delta OutputIterator  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output spontaneous transitions.

void deltac Container &  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' in the container 'res'

void deltac Container &  res,
hstate_t  from,
const L &  query,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where query(label(e)) = true in the container 'res'

void letter_deltac Container &  res,
hstate_t  from,
const L &  letter,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where query(label(e)) = true in the container 'res'

void spontaneous_deltac Container &  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output spontaneous transitions.

void delta OutputIterator  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' using 'res'.

void delta OutputIterator  res,
hstate_t  from,
const L &  query,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where query(label(e)) = true using 'res'.

void letter_delta OutputIterator  res,
hstate_t  from,
const L &  letter,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where the label matches the letter.

void spontaneous_delta OutputIterator  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output spontaneous transitions.

void deltac Container &  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' in the container 'res'

void deltac Container &  res,
hstate_t  from,
const L &  query,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where query(label(e)) = true in the container 'res'

void letter_deltac Container &  res,
hstate_t  from,
const L &  letter,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where query(label(e)) = true in the container 'res'

void spontaneous_deltac Container &  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output spontaneous transitions.

void rdelta OutputIterator  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' using 'res'.

void rdelta OutputIterator  res,
hstate_t  from,
const L &  query,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where query(label(e)) = true using 'res'.

void letter_rdelta OutputIterator  res,
hstate_t  from,
const L &  letter,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where the label matches the letter.

void spontaneous_rdelta OutputIterator  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output spontaneous transitions.

void rdeltac Container &  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' in the container 'res'

void rdeltac Container &  res,
hstate_t  from,
const L &  query,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where query(label(e)) = true in the container 'res'

void letter_rdeltac Container &  res,
hstate_t  from,
const L &  letter,
delta_kind::edges  k
const [inline]
 

store the output edges of the state 'from' where query(label(e)) = true in the container 'res'

void spontaneous_rdeltac Container &  res,
hstate_t  from,
delta_kind::edges  k
const [inline]
 

store the output spontaneous transitions.

void rdelta OutputIterator  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' using 'res'.

void rdelta OutputIterator  res,
hstate_t  from,
const L &  query,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where query(label(e)) = true using 'res'.

void letter_rdelta OutputIterator  res,
hstate_t  from,
const L &  letter,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where the label matches the letter.

void spontaneous_rdelta OutputIterator  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output spontaneous transitions.

void rdeltac Container &  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' in the container 'res'

void rdeltac Container &  res,
hstate_t  from,
const L &  query,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where query(label(e)) = true in the container 'res'

void letter_rdeltac Container &  res,
hstate_t  from,
const L &  letter,
delta_kind::states  k
const [inline]
 

store the output states of the state 'from' where query(label(e)) = true in the container 'res'

void spontaneous_rdeltac Container &  res,
hstate_t  from,
delta_kind::states  k
const [inline]
 

store the output spontaneous transitions.

MetaElement const MetaElement< AutomataBase< Self >, T > &  a  )  [inline, protected]
 

copy constructor

Reimplemented in MetaElement< TransducerBase< Self >, T >.


Generated on Thu Dec 18 14:14:24 2003 for Vaucanson by doxygen 1.3.4