4 #include <boost/config.hpp>
5 #include <boost/graph/adjacency_list.hpp>
6 #include <boost/graph/graph_traits.hpp>
7 #include <boost/graph/graphviz.hpp>
8 #include <boost/graph/iteration_macros.hpp>
9 #include <boost/graph/properties.hpp>
10 #include <boost/graph/topological_sort.hpp>
30 enum vertex_op_t { vertex_op };
31 BOOST_INSTALL_PROPERTY(vertex, op);
34 typedef boost::property<boost::vertex_op_t, smaug::Operator*> VertexProperty;
35 typedef boost::property<boost::edge_name_t, smaug::TensorIndices> EdgeProperty;
36 typedef boost::adjacency_list<boost::vecS,
38 boost::bidirectionalS,
41 typedef boost::graph_traits<Graph>::vertex_descriptor Vertex;
42 typedef boost::graph_traits<Graph>::edge_descriptor Edge;
43 typedef boost::graph_traits<Graph>::vertex_iterator vertex_iter;
44 typedef boost::graph_traits<Graph>::edge_iterator edge_iter;
45 typedef boost::graph_traits<Graph>::in_edge_iterator in_edge_iter;
46 typedef boost::graph_traits<Graph>::out_edge_iterator out_edge_iter;
47 typedef boost::property_map<Graph, boost::edge_name_t>::type MutableEdgeNameMap;
48 typedef boost::property_map<Graph, boost::vertex_op_t>::type
50 typedef boost::property_map<Graph, boost::edge_name_t>::const_type EdgeNameMap;
51 typedef boost::property_map<Graph, boost::vertex_op_t>::const_type