# Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords > Class Template Reference

Graph. More...

List of all members.

## Classes

struct | edge_value
| Edge decorator. More...
struct | state_value
| State decorator. More...

## Public Types

typedef Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords > | self_t
| Self type definition.
typedef LabelOf< K, WordValue, WeightValue, SeriesValue, Letter >::ret | label_t
| Typedefs on automaton related graphs elements.
typedef misc::SparseInterval < hstate_t, std::set< hstate_t > > | StateContainer
| Needed containers.

## Public Member Functions

states_t | states () const
| Return states set.
edges_t | edges () const
| Return edges set.
initial_support_t | initial () const
| Initial/final state supports.
self_t & | clone () const
| FIXME: Not implemented.
State's manipulation
hstate_t | get_state (int n) const
| Remove state n.
bool | has_state (const hstate_t &n) const
| Remove state n.
hstate_t | add_state ()
| Remove state n.
void | del_state (const hstate_t &n)
| Remove state n.
void | set_initial (const 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_t & | get_initial (const hstate_t &, const series_set_elt_value_t &) const
| Remove state n.
bool | is_initial (const hstate_t &s, const series_set_elt_value_t &) const
| Remove state n.
void | clear_initial ()
| Remove state n.
void | set_final (const 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_t & | get_final (const hstate_t &, const series_set_elt_value_t &) const
| Remove state n.
bool | is_final (const hstate_t &s, const series_set_elt_value_t &) const
| Remove state n.
void | clear_final ()
| Remove state n.
Edge's manipulation
bool | has_edge (const hedge_t &n) const
hedge_t | add_edge (const hstate_t &h1, const hstate_t &h2, const label_t &v)
void | del_edge (const hedge_t &e)
hstate_t | src_of (const hedge_t &e1) const
hstate_t | dst_of (const hedge_t &e2) const
const label_t & | label_of (const hedge_t &n) const
void | update (const hedge_t &, label_t)
Only automaton related methods
template<class S >
bool | exists (const AutomataBase< S > &s) const
| Check the consistency of an automata.
Tag access
tag_t & | tag ()
const tag_t & | tag () const

## Geometry access

typedef vcsn::geometry < hstate_t, hedge_t, GeometryCoords > | geometry_t
geometry_t & | geometry ()
const geometry_t & | geometry () const

## Detailed Description

### template<class K, class WordValue, class WeightValue, class SeriesValue, class Letter, class Tag, class GeometryCoords>
class vcsn::listg::Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >

Graph.

Definition at line 47 of file listg_graph_impl.hh.

## Member Typedef Documentation

typedef misc::SparseInterval<hstate_t, std::set<hstate_t> > StateContainer

Needed containers.

FIXME: How about using std::vector instead of std::set?

Definition at line 105 of file listg_graph_impl.hh.

## Member Function Documentation

Graph< Kind, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::hstate_t get_state | ( | int | n | ) | const

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 126 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

bool has_state | ( | const hstate_t & | n | ) | const

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 109 of file listg_graph_impl.hxx.

Referenced by Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::add_state(), Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::del_state(), Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::exists(), Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::get_final(), Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::get_initial(), Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::get_state(), Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::set_final(), and Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::set_initial().

Graph< Kind, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::hstate_t add_state | ( |  | ) |

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 134 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

void del_state | ( | const hstate_t & | n | ) |

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 155 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

void set_initial | ( | const 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 186 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

const Graph< Kind, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::series_set_elt_value_t & get_initial | ( | const hstate_t & | n,
|  | const series_set_elt_value_t & | z |
| ) |  |  | const

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 198 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

Referenced by Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::is_initial().

bool is_initial | ( | const hstate_t & | s,
|  | const series_set_elt_value_t & | z |
| ) |  |  | const

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 209 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::get_initial().

void clear_initial | ( |  | ) |

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 216 of file listg_graph_impl.hxx.

void set_final | ( | const hstate_t & | n,
|  | const series_set_elt_value_t & | v,
|  | const series_set_elt_value_t & | z |
| ) |  |  |

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 listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

const Graph< Kind, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::series_set_elt_value_t & get_final | ( | const hstate_t & | n,
|  | const series_set_elt_value_t & | z |
| ) |  |  | const

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 235 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::has_state().

Referenced by Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::is_final().

bool is_final | ( | const hstate_t & | s,
|  | const series_set_elt_value_t & | z |
| ) |  |  | const

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 246 of file listg_graph_impl.hxx.

References Graph< K, WordValue, WeightValue, SeriesValue, Letter, Tag, GeometryCoords >::get_final().

void clear_final | ( |  | ) |

Remove state n.

Precondition:
  n is a state of this graph.

Definition at line 253 of file listg_graph_impl.hxx.