CAPD RedHom Library
capd::graph::StronglyConnectedComponentsGraph< Graph > Class Template Reference

#include <capd/graph/StronglyConnectedComponentsGraph.h>

Public Types

typedef GraphOnEdges< typename Graph::Id > Base
 
typedef Base::Id Id
 
typedef Graph::Id VId
 
typedef Base::EdgesStorage EdgesStorage
 
typedef std::vector< IdComponentMap
 
typedef graph::BoostGraphEdgeAdaptor< Vertex > Edge
 
typedef boost::sub_range< typename Groups::ConstGroupRange > OutEdges
 
typedef boost::iterator_range< boost::counting_iterator< Id > > Vertices
 
typedef boost::filtered_range< IsNotGuard, const EdgesStorageEdges
 

Public Member Functions

 StronglyConnectedComponentsGraph (size_t size, EdgesStorage &&edges, ComponentMap &&componentMap)
 
Id componentOf (VId v) const
 
Vertex vertex (Id id) const
 
Vertices vertices () const
 
OutEdges outEdges (const Vertex &v) const
 
Edges edges () const
 
size_t size () const
 
size_t numberOfEdges () const
 

Public Attributes

decltype(homAux::MakeGroupedRangeByKey(std::declval< EdgesStorage >())) typedef Groups
 

Static Public Attributes

static const Id NOT_VALID = std::numeric_limits<Id>::max()
 

Protected Attributes

size_t _size
 
Groups _groupedEdges
 

Member Typedef Documentation

template<typename Graph >
typedef GraphOnEdges<typename Graph::Id> capd::graph::StronglyConnectedComponentsGraph< Graph >::Base
template<typename Graph >
typedef std::vector<Id> capd::graph::StronglyConnectedComponentsGraph< Graph >::ComponentMap
typedef graph::BoostGraphEdgeAdaptor<Vertex> capd::graph::GraphOnEdges< Graph::Id >::Edge
inherited
typedef boost::filtered_range<IsNotGuard, const EdgesStorage> capd::graph::GraphOnEdges< Graph::Id >::Edges
inherited
template<typename Graph >
typedef Base::Id capd::graph::StronglyConnectedComponentsGraph< Graph >::Id
typedef boost::sub_range<typename Groups::ConstGroupRange> capd::graph::GraphOnEdges< Graph::Id >::OutEdges
inherited
typedef boost::iterator_range<boost::counting_iterator<Id> > capd::graph::GraphOnEdges< Graph::Id >::Vertices
inherited
template<typename Graph >
typedef Graph::Id capd::graph::StronglyConnectedComponentsGraph< Graph >::VId

Constructor & Destructor Documentation

template<typename Graph >
capd::graph::StronglyConnectedComponentsGraph< Graph >::StronglyConnectedComponentsGraph ( size_t  size,
EdgesStorage &&  edges,
ComponentMap &&  componentMap 
)
inlineexplicit

Member Function Documentation

template<typename Graph >
Id capd::graph::StronglyConnectedComponentsGraph< Graph >::componentOf ( VId  v) const
inline
Edges capd::graph::GraphOnEdges< Graph::Id >::edges ( ) const
inlineinherited
size_t capd::graph::GraphOnEdges< Graph::Id >::numberOfEdges ( ) const
inlineinherited
OutEdges capd::graph::GraphOnEdges< Graph::Id >::outEdges ( const Vertex &  v) const
inlineinherited
size_t capd::graph::GraphOnEdges< Graph::Id >::size ( ) const
inlineinherited
Vertex capd::graph::GraphOnEdges< Graph::Id >::vertex ( Id  id) const
inlineinherited
Vertices capd::graph::GraphOnEdges< Graph::Id >::vertices ( ) const
inlineinherited

Member Data Documentation

Groups capd::graph::GraphOnEdges< Graph::Id >::_groupedEdges
protectedinherited
size_t capd::graph::GraphOnEdges< Graph::Id >::_size
protectedinherited
decltype(homAux::MakeGroupedRangeByKey(std::declval<EdgesStorage>())) typedef capd::graph::GraphOnEdges< Graph::Id >::Groups
inherited
template<typename Graph >
const StronglyConnectedComponentsGraph< Graph >::Id capd::graph::StronglyConnectedComponentsGraph< Graph >::NOT_VALID = std::numeric_limits<Id>::max()
static