Rosetta  2016.11
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Functions | Variables
core::graph Namespace Reference

Classes

class  Array0
 Class Array0 is a c-style array wrapper that does bounds checking in debug mode. It indexes from 0 just like regular c-arrays. Class Array0 does not manage it's own memory. It does not allocate memory if you want to make it larger, nor does it deallocate memory when you destroy it. Bounds checking only ensures that the user does not go outside of the memory Array0 thinks it's in charge of. If the user should happen to point the array0 at memory that has not been allocated, Array0 is not responsible for segmentation fault that will likely occur. Garbage in, garbage out. More...
 
class  ArrayPool
 
class  ArrayPoolElement
 
class  DisjointSets
 
struct  DS_Node
 
class  Edge
 
class  EdgeList
 Custom edge list class. Returns const-iterators which only return Edge const *'s and non-const-iterators which can return either const or non-const Edge*'s. Manages its own memory using an unordered-object-pool for fast insertion and deletion of EdgeListElements. Implemented as a doubly linked list, though there's no practical way to start at the end of a list and work backward since decrementing the end iterator is not a valid operation. More...
 
class  EdgeListConstIterator
 Custom Edge list const iterator class, which returns only const Edge pointers. This iterator cannot be used to change the structure of its list without access to that list directly. Customized since STL's const-iterator cannot be prevented from giving non-const access to its data. The former workaround to this problem was to define two sets of edge lists on each vertex: a list< Edge * > and a list< Edge const * >. More...
 
class  EdgeListElement
 An extensible graph class. More...
 
class  EdgeListIterator
 Custom Edge list (non-const) iterator class, which can return non-const Edge pointers. This iterator cannot be used to change the structure of its list without access to that list directly. Customized since STL's const-iterator cannot be prevented from giving non-const access to its data. The former workaround to this problem was to define two sets of edge lists on each vertex: a list< Edge * > and a list< Edge const * >. More...
 
class  Graph
 A Graph with constant time edge insertion and deletion. Extensible. More...
 
class  NegSpaceElement
 NegSpaceElement represents a single element in the singly-linked list of negative space in an array pool. More...
 
class  Node
 
class  UEEdge
 
class  UEVertex
 
class  UpperEdgeGraph
 

Typedefs

typedef
utility::pointer::owning_ptr
< ArrayPool< platform::Real > > 
RealArrayPoolOP
 
typedef
utility::pointer::owning_ptr
< ArrayPool< platform::Real >
const > 
RealArrayPoolCOP
 
typedef
utility::pointer::shared_ptr
< Graph
GraphOP
 
typedef
utility::pointer::shared_ptr
< Graph const > 
GraphCOP
 

Functions

std::string neg_space_element_allocation_error_message (Size block_size, Size neg_space_element_size)
 
std::string block_allocation_error_message (Size block_size, Size array_size, Size t_size)
 
bool all_visited (utility::vector1< bool > const &visited)
 
utility::vector1< std::pair
< platform::Size,
platform::Size > > 
find_connected_components (Graph const &g)
 returns a vector1 of connected component descriptions: each entry holds the connected-component size and a representative vertex from that connected component. O( V+E ). More...
 
void delete_all_intragroup_edges (Graph &g, utility::vector1< platform::Size > const &node_groups)
 

Variables

bool output_interaction_graph_memory_usage = false
 

Typedef Documentation

typedef utility::pointer::shared_ptr< Graph const > core::graph::GraphCOP
typedef utility::pointer::shared_ptr< Graph > core::graph::GraphOP
typedef utility::pointer::owning_ptr< ArrayPool< platform::Real > const > core::graph::RealArrayPoolCOP
typedef utility::pointer::owning_ptr< ArrayPool< platform::Real > > core::graph::RealArrayPoolOP

Function Documentation

bool core::graph::all_visited ( utility::vector1< bool > const &  visited)
std::string core::graph::block_allocation_error_message ( Size  block_size,
Size  array_size,
Size  t_size 
)
void core::graph::delete_all_intragroup_edges ( Graph &  g,
utility::vector1< platform::Size > const &  node_groups 
)
utility::vector1< std::pair< platform::Size, platform::Size > > core::graph::find_connected_components ( Graph const &  g)

returns a vector1 of connected component descriptions: each entry holds the connected-component size and a representative vertex from that connected component. O( V+E ).

DFS search to identify connected components O(V) memory, O(V+E) time.

References all_visited(), core::graph::Node::const_edge_list_begin(), core::graph::Node::const_edge_list_end(), core::graph::Graph::get_node(), and core::graph::Graph::num_nodes().

std::string core::graph::neg_space_element_allocation_error_message ( Size  block_size,
Size  neg_space_element_size 
)

Variable Documentation

bool core::graph::output_interaction_graph_memory_usage = false