Changeset f5ea10 for src/FunctionApproximation/Extractors.cpp
- Timestamp:
- Jun 22, 2018, 7:26:09 AM (7 years ago)
- Branches:
- Candidate_v1.6.1, ChemicalSpaceEvaluator
- Children:
- 99c705
- Parents:
- 8d56a6
- git-author:
- Frederik Heber <frederik.heber@…> (09/26/17 22:30:01)
- git-committer:
- Frederik Heber <frederik.heber@…> (06/22/18 07:26:09)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/FunctionApproximation/Extractors.cpp
r8d56a6 rf5ea10 34 34 #include <config.h> 35 35 #endif 36 37 #include <boost/graph/adjacency_list.hpp>38 #include <boost/graph/breadth_first_search.hpp>39 #include <boost/graph/subgraph.hpp>40 36 41 37 //#include "CodePatterns/MemDebug.hpp" … … 48 44 #include <vector> 49 45 #include <boost/assign.hpp> 50 #include <boost/bimap.hpp>51 #include <boost/bimap/set_of.hpp>52 #include <boost/bimap/multiset_of.hpp>53 46 #include <boost/bind.hpp> 54 47 #include <boost/foreach.hpp> … … 67 60 68 61 using namespace boost::assign; 62 63 using namespace Extractors; 69 64 70 65 FunctionModel::arguments_t … … 186 181 } 187 182 188 typedef size_t level_t;189 typedef size_t node_t;190 typedef std::multimap< level_t, node_t > nodes_per_level_t;191 typedef std::set<node_t> nodes_t;192 typedef std::set<nodes_t> set_of_nodes_t;193 typedef boost::property_map < boost::adjacency_list <>, boost::vertex_index_t >::type index_map_t;194 195 typedef boost::bimap<196 boost::bimaps::set_of< size_t >,197 boost::bimaps::multiset_of< Extractors::ParticleType_t >198 > type_index_lookup_t;199 200 typedef std::set<node_t> set_type;201 typedef std::set<set_type> powerset_type;202 203 typedef boost::adjacency_list < boost::vecS, boost::vecS, boost::undirectedS,204 boost::no_property, boost::no_property > UndirectedGraph;205 typedef boost::subgraph< UndirectedGraph > UndirectedSubgraph;206 207 typedef std::map< node_t, std::pair<Extractors::ParticleType_t, size_t> > node_FragmentNode_map_t;208 209 typedef std::map< argument_t::indices_t, size_t> argument_placement_map_t;210 211 typedef std::map<size_t, size_t> argindex_to_nodeindex_t;212 213 183 void insertIntoNodeFragmentMap( 214 184 node_FragmentNode_map_t &_node_FragmentNode_map, … … 334 304 * \param index_map with indices per \a graph' vertex 335 305 */ 336 static voidgenerateAllInducedConnectedSubgraphs(306 void Extractors::generateAllInducedConnectedSubgraphs( 337 307 const size_t N, 338 308 const level_t level, … … 438 408 } 439 409 440 static HomologyGraphcreateHomologyGraphFromNodes(410 HomologyGraph Extractors::createHomologyGraphFromNodes( 441 411 const nodes_t &nodes, 442 412 const type_index_lookup_t &type_index_lookup, … … 501 471 502 472 return HomologyGraph(graph_nodes, graph_edges); 503 }504 505 /**506 * I have no idea why this is so complicated with BGL ...507 *508 * This is taken from the book "The Boost Graph Library: User Guide and Reference Manual, Portable Documents",509 * chapter "Basic Graph Algorithms", example on calculating the bacon number.510 */511 template <typename DistanceMap>512 class distance_recorder : public boost::default_bfs_visitor513 {514 public:515 distance_recorder(DistanceMap dist) : d(dist) {}516 517 template <typename Edge, typename Graph>518 void tree_edge(Edge e, const Graph &g) const {519 typename boost::graph_traits<Graph>::vertex_descriptor u = source(e,g), v = target(e,g);520 d[v] = d[u] + 1;521 }522 523 private:524 DistanceMap d;525 };526 527 template <typename DistanceMap>528 distance_recorder<DistanceMap> record_distance(DistanceMap d)529 {530 return distance_recorder<DistanceMap>(d);531 473 } 532 474
Note:
See TracChangeset
for help on using the changeset viewer.