|
Rosetta
|
#include <RingDetection.hh>

Public Member Functions | |
| RingDetection (const Graph &graph) | |
| constructor from a graph (either GraphWithData or ConstGraph) More... | |
| RingDetection * | Clone () const |
| clone the object More... | |
| const std::list< std::vector< size_t > > & | GetPaths () const |
| Get the paths between vertices in the graph. More... | |
| const utility::vector1< utility::vector1< VD > > | GetRings () const |
| Get all rings in the graph. More... | |
Public Member Functions inherited from utility::graph::null_bfs_prune_visitor | |
| template<class Vertex , class Graph > | |
| bool | initialize_vertex (Vertex, Graph &) |
| template<class Vertex , class Graph > | |
| bool | discover_vertex (Vertex, Graph &) |
| template<class Vertex , class Graph > | |
| bool | examine_vertex (Vertex, Graph &) |
| template<class Edge , class Graph > | |
| bool | examine_edge (Edge, Graph &) |
| template<class Edge , class Graph > | |
| bool | tree_edge (Edge, Graph &) |
| template<class Edge , class Graph > | |
| bool | non_tree_edge (Edge, Graph &) |
| template<class Edge , class Graph > | |
| bool | gray_target (Edge, Graph &) |
| template<class Edge , class Graph > | |
| bool | black_target (Edge, Graph &) |
| template<class Vertex , class Graph > | |
| bool | finish_vertex (Vertex, Graph &) |
Private Types | |
| typedef boost::graph_traits< Graph >::edge_descriptor | Edge |
| typedef boost::graph_traits< Graph >::vertex_descriptor | VD |
| typedef boost::graph_traits< Graph >::vertex_iterator | VIter |
| typedef boost::graph_traits< Graph >::edge_iterator | EIter |
| typedef boost::graph_traits< Graph >::out_edge_iterator | OutEdgeIter |
Private Member Functions | |
| RingDetection () | |
| default constructor - needs an initialization graph More... | |
| void | Initialize (const Graph &graph) |
| initialize paths_ with all edges from graph (which is either a GraphWithData or a ConstGraph) More... | |
| void | Remove (const std::size_t vertex) |
| Remove vertices, store new paths and rings. More... | |
| std::vector< size_t > | CombinePaths (const std::size_t COMMON_vertex, const std::vector< size_t > &path_a, const std::vector< size_t > &path_b) const |
| Combine two paths at their common vertex. More... | |
| bool | Overlap (const std::vector< bool > &vertex_is_in_path_a, const std::vector< std::size_t > &path_b) const |
| Check if two paths overlap. More... | |
| void | SetupAdjacencyVector (std::vector< bool > &vertex_is_in_path, const std::vector< size_t > &path) const |
| set the adjacency vector with a given path More... | |
| size_t | LengthOfSmallestCycleWithVertex (const Graph &graph, const std::size_t &vertex, const std::vector< size_t > &CAN_VISIT=std::vector< size_t >()) |
| LengthOfSmallestCycleWithVertex finds the length of the shortest cycle beginning at vertex. More... | |
Private Attributes | |
| std::list< std::vector< size_t > > | paths_ |
| paths between vertices in the graph More... | |
| std::list< std::vector< size_t > > | rings_ |
| rings in the graph More... | |
| size_t | graph_size_ |
| size of the graph More... | |
| boost::unordered_map< size_t, VD > | index_to_vd_ |
| boost::unordered_map< VD, size_t > | vd_to_index_ |
basic chemical Bond
name, element, certain properties and parameters from .params file
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
default constructor - needs an initialization graph
Referenced by utility::graph::RingDetection< Graph >::Clone().
|
inline |
constructor from a graph (either GraphWithData or ConstGraph)
| graph | graph for exhaustive ring detection |
References utility::graph::RingDetection< Graph >::Initialize(), utility::graph::RingDetection< Graph >::paths_, and utility::graph::RingDetection< Graph >::Remove().
|
inline |
clone the object
References utility::graph::RingDetection< Graph >::RingDetection().
|
inlineprivate |
Combine two paths at their common vertex.
| COMMON_vertex | vertex to join paths at |
| PATH_A | first path to be combined |
| PATH_B | second path to be combined |
References erraser_util::copy().
Referenced by utility::graph::RingDetection< Graph >::Remove().
|
inline |
Get the paths between vertices in the graph.
References utility::graph::RingDetection< Graph >::paths_.
|
inline |
Get all rings in the graph.
References utility::graph::RingDetection< Graph >::index_to_vd_, basic::options::OptionKeys::rings::rings, and utility::graph::RingDetection< Graph >::rings_.
|
inlineprivate |
initialize paths_ with all edges from graph (which is either a GraphWithData or a ConstGraph)
References utility::graph::RingDetection< Graph >::graph_size_, utility::graph::RingDetection< Graph >::index_to_vd_, utility::graph::RingDetection< Graph >::LengthOfSmallestCycleWithVertex(), utility::graph::RingDetection< Graph >::paths_, basic::options::OptionKeys::hotspot::target, and utility::graph::RingDetection< Graph >::vd_to_index_.
Referenced by utility::graph::RingDetection< Graph >::RingDetection().
|
inlineprivate |
LengthOfSmallestCycleWithVertex finds the length of the shortest cycle beginning at vertex.
| graph | the graph in which the vertex resides |
| vertex | index of the vertex to find the girth from |
| CAN_VISIT | 0 if the associated vertex cannot be visited (normally vertices that are already known to be non-cyclical), non-zero if it can |
References build_jacobian::distance, utility::graph::RingDetection< Graph >::graph_size_, create_a3b_hbs::i, utility::graph::RingDetection< Graph >::index_to_vd_, max(), min(), dummy-distribution::row, subloop_histogram::size, basic::options::OptionKeys::hotspot::target, and utility::graph::RingDetection< Graph >::vd_to_index_.
Referenced by utility::graph::RingDetection< Graph >::Initialize().
|
inlineprivate |
Check if two paths overlap.
| vertex_IS_IN_PATH_A | adjacency vector for path a |
| PATH_B | second path to be combined |
Referenced by utility::graph::RingDetection< Graph >::Remove().
|
inlineprivate |
Remove vertices, store new paths and rings.
| vertex | vertex to be removed |
References utility::graph::RingDetection< Graph >::CombinePaths(), utility::graph::RingDetection< Graph >::graph_size_, utility::graph::RingDetection< Graph >::Overlap(), SewAssembler::path_size, utility::graph::RingDetection< Graph >::paths_, utility::graph::RingDetection< Graph >::rings_, and utility::graph::RingDetection< Graph >::SetupAdjacencyVector().
Referenced by utility::graph::RingDetection< Graph >::RingDetection().
|
inlineprivate |
set the adjacency vector with a given path
| vertex_IS_IN_PATH | the vector to setup such that vertex_IS_IN_PATH[ x] == true iff x is in PATH |
| PATH | the path to use in setting up the adjacency vector |
References utility::graph::RingDetection< Graph >::graph_size_, and closure_error::path.
Referenced by utility::graph::RingDetection< Graph >::Remove().
|
private |
|
private |
|
private |
paths between vertices in the graph
Referenced by utility::graph::RingDetection< Graph >::GetPaths(), utility::graph::RingDetection< Graph >::Initialize(), utility::graph::RingDetection< Graph >::Remove(), and utility::graph::RingDetection< Graph >::RingDetection().
|
private |
rings in the graph
Referenced by utility::graph::RingDetection< Graph >::GetRings(), and utility::graph::RingDetection< Graph >::Remove().
|
private |