Graph Class Template Reference

Graph. More...

List of all members.

Tag access

typedef Tag tag_t
tag_ttag ()
const tag_ttag () const

Geometry access

typedef Geometry geometry_t
geometry_tgeometry ()
const geometry_tgeometry () const

Public Types

typedef Graph< K, WordValue,
WeightValue, SeriesValue,
Letter, Tag, Geometry > 
self_t
 Self type definition.
typedef LabelOf< K, WordValue,
WeightValue, SeriesValue,
Letter >::ret 
label_t
 Typedefs on automaton related graphs elements.
typedef state_value state_value_t
typedef edge_value< label_tedge_value_t
typedef std::vector< state_value_tstate_data_t
typedef std::vector< edge_value_tedge_data_t
typedef StateContainer states_t
typedef EdgeContainer edges_t
typedef SeriesValue series_set_elt_value_t
typedef std::map< hstate_t,
series_set_elt_value_t
initial_t
typedef std::map< hstate_t,
series_set_elt_value_t
final_t
typedef misc::Support< initial_tinitial_support_t
typedef misc::Support< final_tfinal_support_t

Public Member Functions

 Graph ()
 Graph (unsigned initial_number_of_state, unsigned number_of_edge_initially_allocated)
states_t states () const
 Return states set.
edges_t edges () const
 Return edges set.
initial_support_t initial () const
 Initial/final state supports.
final_support_t final () const
self_tclone () const
 FIXME: Not implemented.
State's manipulation
bool has_state (hstate_t n) const
hstate_t add_state ()
void del_state (hstate_t n)
 Remove state n.
void set_initial (hstate_t s, const series_set_elt_value_t &v, const series_set_elt_value_t &z)
 Change whether a state is initial or not.
const series_set_elt_value_tget_initial (hstate_t, const series_set_elt_value_t &) const
void clear_initial ()
void set_final (hstate_t, const series_set_elt_value_t &, const series_set_elt_value_t &)
 Change whether a state is final or not.
const series_set_elt_value_tget_final (hstate_t, const series_set_elt_value_t &) const
void clear_final ()
Edge's manipulation
bool has_edge (hedge_t n) const
hedge_t add_edge (hstate_t h1, hstate_t h2, const label_t &v)
void del_edge (hedge_t e)
hstate_t src_of (hedge_t e1) const
hstate_t dst_of (hedge_t e2) const
const label_tlabel_of (hedge_t n) const
void update (hedge_t, label_t)
Only automaton related methods
template<class S>
bool exists (const AutomataBase< S > &s) const
 Check the consistency of an automata.
template<class OutputIterator, typename Query>
void delta (OutputIterator res, hstate_t from, const Query &q, delta_kind::states) const
 Check the consistency of an automata.
template<class OutputIterator, typename Query>
void delta (OutputIterator res, hstate_t from, const Query &q, delta_kind::edges) const
 Check the consistency of an automata.
template<class OutputIterator, typename Query>
void rdelta (OutputIterator res, hstate_t from, const Query &q, delta_kind::states) const
 Check the consistency of an automata.
template<class OutputIterator, typename Query>
void rdelta (OutputIterator res, hstate_t from, const Query &q, delta_kind::edges) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void deltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::states, misc::true_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void deltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::states, misc::false_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void deltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::edges, misc::true_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void deltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::edges, misc::false_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void rdeltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::states, misc::true_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void rdeltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::states, misc::false_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void rdeltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::edges, misc::true_t) const
 Check the consistency of an automata.
template<class Functor, typename Query>
void rdeltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::edges, misc::false_t) const
 Check the consistency of an automata.
template<class Functor, typename Query, typename DKind>
void deltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::kind< DKind >) const
 Check the consistency of an automata.
template<class Functor, typename Query, typename DKind>
void rdeltaf (Functor &fun, hstate_t from, const Query &q, delta_kind::kind< DKind >) const
 Check the consistency of an automata.

Public Attributes

state_data_t states_
edge_data_t edges_
std::set< hstate_tremoved_states_
std::set< hedge_tremoved_edges_
tag_t tag_
final_t final_
initial_t initial_


Detailed Description

template<class K, class WordValue, class WeightValue, class SeriesValue, class Letter, class Tag, class Geometry>
class vcsn::Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, Geometry >

Graph.

Definition at line 83 of file graph.hh.


Member Function Documentation

void del_state ( hstate_t  n  ) 

Remove state n.

Precondition:
n is a state of this graph.

Definition at line 164 of file graph.hxx.

References SparseInterval::begin(), Graph::del_edge(), SparseInterval::end(), Graph::final_, Graph::has_state(), Graph::initial_, state_value::input_edges, state_value::output_edges, postcondition, precondition, Graph::removed_states_, and Graph::states_.

void set_initial ( hstate_t  s,
const series_set_elt_value_t v,
const series_set_elt_value_t z 
)

Change whether a state is initial or not.

Parameters:
s the state
v its associated label
z the zero for the labels
Note:
If v == z then state is removed from the set of initial states. Because of this, one cannot simply write
 typename automaton_t::series_set_elt_t some_weight = ...;
 for_all_final_states(f, aut)
   lhs.set_final(*f, aut.get_final(*f) * some_weight);
because if some_weight is equal to z, then the state is removed from the set of final states, and invalidates all the iterators: the loop is broken.

Definition at line 195 of file graph.hxx.

References Graph::initial_.

void set_final ( hstate_t  ,
const series_set_elt_value_t ,
const series_set_elt_value_t  
)

Change whether a state is final or not.

Parameters:
s the state
v its associated label
z the zero for the labels
See also:
set_initial().

Definition at line 223 of file graph.hxx.

References Graph::final_.


Generated on Wed Jun 13 17:03:23 2007 for Vaucanson by  doxygen 1.5.1