spot  1.99.4
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
spot::digraph< State_Data, Edge_Data, Alternating > Class Template Reference
Inheritance diagram for spot::digraph< State_Data, Edge_Data, Alternating >:
Inheritance graph
Collaboration diagram for spot::digraph< State_Data, Edge_Data, Alternating >:
Collaboration graph

Public Types

typedef
internal::edge_iterator
< digraph
iterator
 
typedef
internal::edge_iterator< const
digraph
const_iterator
 
typedef State_Data state_data_t
 
typedef Edge_Data edge_data_t
 
typedef unsigned state
 
typedef unsigned edge
 
typedef std::conditional
< Alternating, std::vector
< state >, state >::type 
out_state
 
typedef
internal::distate_storage
< edge, internal::boxed_label
< State_Data > > 
state_storage_t
 
typedef internal::edge_storage
< state, out_state, edge,
internal::boxed_label
< Edge_Data > > 
edge_storage_t
 
typedef std::vector
< state_storage_t
state_vector
 
typedef std::vector
< edge_storage_t
edge_vector_t
 

Public Member Functions

 digraph (unsigned max_states=10, unsigned max_trans=0)
 construct an empty graph More...
 
unsigned num_states () const
 
unsigned num_edges () const
 
bool valid_trans (edge t) const
 
template<typename... Args>
state new_state (Args &&...args)
 
template<typename... Args>
state new_states (unsigned n, Args &&...args)
 
state_storage_tstate_storage (state s)
 
const state_storage_tstate_storage (state s) const
 
state_storage_t::data_t & state_data (state s)
 
const state_storage_t::data_t & state_data (state s) const
 
edge_storage_tedge_storage (edge s)
 
const edge_storage_tedge_storage (edge s) const
 
edge_storage_t::data_t & edge_data (edge s)
 
const edge_storage_t::data_t & edge_data (edge s) const
 
template<typename... Args>
edge new_edge (state src, out_state dst, Args &&...args)
 
state index_of_state (const state_storage_t &ss) const
 
edge index_of_edge (const edge_storage_t &tt) const
 
internal::state_out< digraphout (state src)
 
internal::state_out< digraphout (state_storage_t &src)
 
internal::state_out< const
digraph
out (state src) const
 
internal::state_out< const
digraph
out (state_storage_t &src) const
 
internal::killer_edge_iterator
< digraph
out_iteraser (state_storage_t &src)
 
internal::killer_edge_iterator
< digraph
out_iteraser (state src)
 
const state_vector & states () const
 
state_vector & states ()
 
internal::all_trans< const
digraph
edges () const
 
internal::all_trans< digraphedges ()
 
const edge_vector_t & edge_vector () const
 
edge_vector_t & edge_vector ()
 
bool is_dead_edge (unsigned t) const
 
bool is_dead_edge (const edge_storage_t &t) const
 
void dump_storage (std::ostream &o) const
 
void remove_dead_edges_ ()
 
template<class Predicate = std::less<edge_storage_t>>
void sort_edges_ (Predicate p=Predicate())
 
void chain_edges_ ()
 
void rename_states_ (const std::vector< unsigned > &newst)
 
void defrag_states (std::vector< unsigned > &&newst, unsigned used_states)
 

Static Public Member Functions

static constexpr bool alternating ()
 

Protected Attributes

state_vector states_
 
edge_vector_t edges_
 
unsigned killed_edge_
 

Friends

class internal::edge_iterator< digraph >
 
class internal::edge_iterator< const digraph >
 
class internal::killer_edge_iterator< digraph >
 

Constructor & Destructor Documentation

template<typename State_Data, typename Edge_Data, bool Alternating>
spot::digraph< State_Data, Edge_Data, Alternating >::digraph ( unsigned  max_states = 10,
unsigned  max_trans = 0 
)
inline

construct an empty graph

Construct an empty graph, and reserve space for max_states states and max_trans edges. These are not hard limits, but just hints to pre-allocate a data structure that may hold that much items.


The documentation for this class was generated from the following file:

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Thu Oct 1 2015 05:49:15 for spot by doxygen 1.8.8