Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 > Class Template Reference

Finds optimum cycle raio and a critical cycle. More...

#include <howard_cycle_ratio.hpp>

Inheritance diagram for boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >:
Collaboration diagram for boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >:

Public Types

typedef mcr_howard
< FloatTraits, Graph,
VertexIndexMap, EdgeWeight1,
EdgeWeight2 > 
inhr_t
 
enum  my_color_type {
  my_white = 0,
  my_black
}
 
typedef FloatTraits::value_type float_t
 
typedef
FloatTraits::comparator_props_t 
cmp_props_t
 
typedef FloatTraits::comparator comparator_t
 
typedef graph_traits< Graph >
::vertex_descriptor 
vertex_t
 
typedef graph_traits< Graph >
::edge_descriptor 
edge_t
 
typedef graph_traits< Graph >
::vertices_size_type 
vn_t
 
typedef std::vector< float_tvp_t
 
typedef
boost::iterator_property_map
< typename vp_t::iterator,
VertexIndexMap > 
distance_map_t
 
typedef std::vector< edge_tve_t
 
typedef std::vector
< my_color_type
vcol_t
 
typedef
::boost::iterator_property_map
< typename ve_t::iterator,
VertexIndexMap > 
policy_t
 
typedef
::boost::iterator_property_map
< typename vcol_t::iterator,
VertexIndexMap > 
color_map_t
 
typedef std::list< vertex_tpinel_t
 
typedef std::vector< pinel_tinedges1_t
 
typedef
::boost::iterator_property_map
< typename
inedges1_t::iterator,
VertexIndexMap > 
inedges_t
 
typedef std::vector< edge_tcritical_cycle_t
 
typedef
boost::iterator_property_map
< std::vector< int >::iterator,
VertexIndexMap > 
badv_t
 

Public Member Functions

 mcr_howard1 (const Graph &g, VertexIndexMap vim, EdgeWeight1 ewm, EdgeWeight2 ew2m)
 
void get_critical_cycle (typename inhr_t::critical_cycle_t &cc)
 
float_t ocr_howard ()
 

Protected Member Functions

void store_critical_edge (typename inhr_t::edge_t ed, typename inhr_t::critical_cycle_t &cc)
 
void store_critical_cycle (typename inhr_t::critical_cycle_t &cc)
 

Detailed Description

template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
class boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >

Finds optimum cycle raio and a critical cycle.

Member Typedef Documentation

template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef boost::iterator_property_map< std::vector<int>::iterator, VertexIndexMap > boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::badv_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef FloatTraits::comparator_props_t boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::cmp_props_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef ::boost::iterator_property_map< typename vcol_t::iterator, VertexIndexMap > boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::color_map_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef FloatTraits::comparator boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::comparator_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef std::vector<edge_t> boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::critical_cycle_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef boost::iterator_property_map< typename vp_t::iterator, VertexIndexMap > boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::distance_map_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef graph_traits<Graph>::edge_descriptor boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::edge_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef FloatTraits::value_type boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::float_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef std::vector<pinel_t> boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::inedges1_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef ::boost::iterator_property_map< typename inedges1_t::iterator, VertexIndexMap > boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::inedges_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef mcr_howard<FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2> boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::inhr_t
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef std::list<vertex_t> boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::pinel_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef ::boost::iterator_property_map< typename ve_t::iterator, VertexIndexMap > boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::policy_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef std::vector<my_color_type> boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::vcol_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef std::vector<edge_t> boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::ve_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef graph_traits<Graph>::vertex_descriptor boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::vertex_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef graph_traits<Graph>::vertices_size_type boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::vn_t
inherited
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
typedef std::vector<float_t> boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::vp_t
inherited

Member Enumeration Documentation

template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
enum boost::detail::mcr_howard::my_color_type
inherited
Enumerator
my_white 
my_black 

Constructor & Destructor Documentation

template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::mcr_howard1 ( const Graph &  g,
VertexIndexMap  vim,
EdgeWeight1  ewm,
EdgeWeight2  ew2m 
)
inline

Member Function Documentation

template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
void boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::get_critical_cycle ( typename inhr_t::critical_cycle_t cc)
inline
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
float_t boost::detail::mcr_howard< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::ocr_howard ( )
inlineinherited
Returns
maximum/minimum_{for all cycles C} [sum_{e in C} w1(e)] / [sum_{e in C} w2(e)], or FloatTraits::infinity() if graph has no cycles.

Referenced by boost::detail::optimum_cycle_ratio().

template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
void boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::store_critical_cycle ( typename inhr_t::critical_cycle_t cc)
inlineprotectedvirtual
template<typename FloatTraits, typename Graph, typename VertexIndexMap, typename EdgeWeight1, typename EdgeWeight2>
void boost::detail::mcr_howard1< FloatTraits, Graph, VertexIndexMap, EdgeWeight1, EdgeWeight2 >::store_critical_edge ( typename inhr_t::edge_t  ed,
typename inhr_t::critical_cycle_t cc 
)
inlineprotectedvirtual

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