CMR  1.3.0
matroid_graph.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <iostream>
4 
5 #include <boost/graph/properties.hpp>
6 #include <boost/graph/adjacency_list.hpp>
7 
8 namespace tu
9 {
10 
16  {
18  };
19 
20  typedef boost::property <tu::edge_matroid_element_t, int> matroid_element_property;
21  typedef boost::adjacency_list <boost::vecS, boost::vecS, boost::undirectedS, boost::no_property, matroid_element_property> matroid_graph;
22 
23 } /* namespace tu */
24 
25 namespace boost
26 {
27 
32  template <>
33  struct property_kind <tu::edge_matroid_element_t>
34  {
35  typedef edge_property_tag type;
36  };
37 
38 } /* namespace boost */
39 
40 
41 namespace tu
42 {
43 
44  typedef boost::property_map <matroid_graph, edge_matroid_element_t>::const_type const_matroid_element_map;
45  typedef boost::property_map <matroid_graph, edge_matroid_element_t>::type matroid_element_map;
46 
55  std::ostream& operator<<(std::ostream& stream, const tu::matroid_graph& graph);
56 
57 } /* namespace tu */
Definition: matroid_graph.hpp:26
Definition: algorithm.hpp:14
boost::property_map< matroid_graph, edge_matroid_element_t >::const_type const_matroid_element_map
Definition: matroid_graph.hpp:44
boost::property_map< matroid_graph, edge_matroid_element_t >::type matroid_element_map
Definition: matroid_graph.hpp:45
boost::property< tu::edge_matroid_element_t, int > matroid_element_property
Definition: matroid_graph.hpp:20
std::ostream & operator<<(std::ostream &stream, const binary_linear_space &space)
Definition: binary_linear_space.hpp:205
edge_matroid_element_t
Definition: matroid_graph.hpp:16
@ edge_matroid_element
Definition: matroid_graph.hpp:17
boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS, boost::no_property, matroid_element_property > matroid_graph
Definition: matroid_graph.hpp:21
edge_property_tag type
Definition: matroid_graph.hpp:35