Local computation graph (i.e., graph structure does not change). More...
#include <LC_Morph_Graph.h>
Classes | |
struct | dst_equals |
struct | EdgeHolder |
struct | makeGraphNode |
class | NodeInfo |
struct | with_id |
struct | with_no_lockable |
struct | with_node_data |
struct | with_numa_alloc |
struct | with_out_of_line_lockable |
Public Types | |
typedef read_with_aux_graph_tag | read_tag |
typedef NodeInfo * | GraphNode |
typedef EdgeTy | edge_data_type |
typedef NodeTy | node_data_type |
typedef NodeInfoTypes::reference | node_data_reference |
typedef EdgeInfo::reference | edge_data_reference |
typedef EdgeInfo * | edge_iterator |
typedef boost::transform_iterator < makeGraphNode, typename Nodes::iterator > | iterator |
typedef boost::transform_iterator < makeGraphNode, typename Nodes::const_iterator > | const_iterator |
typedef iterator | local_iterator |
typedef const_iterator | const_local_iterator |
typedef LargeArray< GraphNode > | ReadGraphAuxData |
Public Member Functions | |
~LC_Morph_Graph () | |
node_data_reference | getData (const GraphNode &N, MethodFlag mflag=MethodFlag::ALL) |
edge_data_reference | getEdgeData (edge_iterator ni, MethodFlag mflag=MethodFlag::NONE) |
GraphNode | getEdgeDst (edge_iterator ni) |
iterator | begin () |
Returns an iterator to all the nodes in the graph. | |
iterator | end () |
Returns the end of the node iterator. Not thread-safe. | |
local_iterator | local_begin () |
local_iterator | local_end () |
edge_iterator | edge_begin (GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
edge_iterator | edge_end (GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
template<typename... Args> | |
GraphNode | createNode (int nedges, Args &&...args) |
template<typename... Args> | |
edge_iterator | addEdge (GraphNode src, GraphNode dst, Galois::MethodFlag mflag, Args &&...args) |
template<typename... Args> | |
edge_iterator | addEdgeWithoutCheck (GraphNode src, GraphNode dst, Galois::MethodFlag mflag, Args &&...args) |
edge_iterator | findEdge (GraphNode src, GraphNode dst, Galois::MethodFlag mflag=MethodFlag::ALL) |
void | allocateFrom (FileGraph &graph, ReadGraphAuxData &aux) |
void | constructNodesFrom (FileGraph &graph, unsigned tid, unsigned total, ReadGraphAuxData &aux) |
void | constructEdgesFrom (FileGraph &graph, unsigned tid, unsigned total, const ReadGraphAuxData &aux) |
Protected Types | |
typedef detail::EdgeInfoBase < NodeInfo *, EdgeTy > | EdgeInfo |
typedef Galois::InsertBag < NodeInfo > | Nodes |
typedef detail::NodeInfoBaseTypes < NodeTy,!HasNoLockable &&!HasOutOfLineLockable > | NodeInfoTypes |
Protected Member Functions | |
template<bool _A1 = HasNoLockable, bool _A2 = HasOutOfLineLockable> | |
void | acquireNode (GraphNode N, MethodFlag mflag, typename std::enable_if<!_A1 &&!_A2 >::type *=0) |
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable> | |
void | acquireNode (GraphNode N, MethodFlag mflag, typename std::enable_if< _A1 &&!_A2 >::type *=0) |
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable> | |
void | acquireNode (GraphNode N, MethodFlag mflag, typename std::enable_if< _A2 >::type *=0) |
template<bool _Enable = HasId> | |
size_t | getId (GraphNode N, typename std::enable_if< _Enable >::type *=0) |
Protected Attributes | |
Nodes | nodes |
Galois::Runtime::PerThreadStorage < EdgeHolder * > | edges |
Friends | |
class | LC_InOut_Graph |
Local computation graph (i.e., graph structure does not change).
typedef boost::transform_iterator<makeGraphNode,typename Nodes::const_iterator> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::const_iterator |
typedef const_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::const_local_iterator |
typedef EdgeInfo::reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_data_reference |
typedef EdgeTy Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_data_type |
typedef EdgeInfo* Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_iterator |
typedef detail::EdgeInfoBase<NodeInfo*, EdgeTy> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::EdgeInfo [protected] |
typedef NodeInfo* Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::GraphNode |
typedef boost::transform_iterator<makeGraphNode,typename Nodes::iterator> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::iterator |
typedef iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::local_iterator |
typedef NodeInfoTypes::reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::node_data_reference |
typedef NodeTy Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::node_data_type |
typedef detail::NodeInfoBaseTypes<NodeTy,!HasNoLockable && !HasOutOfLineLockable> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::NodeInfoTypes [protected] |
typedef Galois::InsertBag<NodeInfo> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::Nodes [protected] |
typedef read_with_aux_graph_tag Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::read_tag |
typedef LargeArray<GraphNode> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::ReadGraphAuxData |
Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::~LC_Morph_Graph | ( | ) | [inline] |
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::acquireNode | ( | GraphNode | N, | |
MethodFlag | mflag, | |||
typename std::enable_if< _A2 >::type * | = 0 | |||
) | [inline, protected] |
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::acquireNode | ( | GraphNode | N, | |
MethodFlag | mflag, | |||
typename std::enable_if< _A1 &&!_A2 >::type * | = 0 | |||
) | [inline, protected] |
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::acquireNode | ( | GraphNode | N, | |
MethodFlag | mflag, | |||
typename std::enable_if<!_A1 &&!_A2 >::type * | = 0 | |||
) | [inline, protected] |
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::addEdge | ( | GraphNode | src, | |
GraphNode | dst, | |||
Galois::MethodFlag | mflag, | |||
Args &&... | args | |||
) | [inline] |
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::addEdgeWithoutCheck | ( | GraphNode | src, | |
GraphNode | dst, | |||
Galois::MethodFlag | mflag, | |||
Args &&... | args | |||
) | [inline] |
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::allocateFrom | ( | FileGraph & | graph, | |
ReadGraphAuxData & | aux | |||
) | [inline] |
iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::begin | ( | ) | [inline] |
Returns an iterator to all the nodes in the graph.
Not thread-safe.
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::constructEdgesFrom | ( | FileGraph & | graph, | |
unsigned | tid, | |||
unsigned | total, | |||
const ReadGraphAuxData & | aux | |||
) | [inline] |
void Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::constructNodesFrom | ( | FileGraph & | graph, | |
unsigned | tid, | |||
unsigned | total, | |||
ReadGraphAuxData & | aux | |||
) | [inline] |
GraphNode Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::createNode | ( | int | nedges, | |
Args &&... | args | |||
) | [inline] |
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_begin | ( | GraphNode | N, | |
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edge_end | ( | GraphNode | N, | |
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::end | ( | ) | [inline] |
Returns the end of the node iterator. Not thread-safe.
edge_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::findEdge | ( | GraphNode | src, | |
GraphNode | dst, | |||
Galois::MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
node_data_reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getData | ( | const GraphNode & | N, | |
MethodFlag | mflag = MethodFlag::ALL | |||
) | [inline] |
edge_data_reference Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getEdgeData | ( | edge_iterator | ni, | |
MethodFlag | mflag = MethodFlag::NONE | |||
) | [inline] |
GraphNode Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getEdgeDst | ( | edge_iterator | ni | ) | [inline] |
size_t Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::getId | ( | GraphNode | N, | |
typename std::enable_if< _Enable >::type * | = 0 | |||
) | [inline, protected] |
local_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::local_begin | ( | ) | [inline] |
local_iterator Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::local_end | ( | ) | [inline] |
friend class LC_InOut_Graph [friend] |
Galois::Runtime::PerThreadStorage<EdgeHolder*> Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::edges [protected] |
Nodes Galois::Graph::LC_Morph_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable, HasId >::nodes [protected] |