Galois::Graph::LC_CSR_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable > Class Template Reference
Local computation graph (i.e., graph structure does not change).
More...
#include <LC_CSR_Graph.h>
List of all members.
Classes |
| struct | with_id |
| struct | with_no_lockable |
| | If true, do not use abstract locks in graph. More...
|
| struct | with_node_data |
| struct | with_numa_alloc |
| | If true, use NUMA-aware graph allocation. More...
|
| struct | with_out_of_line_lockable |
| | If true, store abstract locks separate from nodes. More...
|
Public Types |
| typedef read_default_graph_tag | read_tag |
| typedef uint32_t | GraphNode |
| typedef EdgeTy | edge_data_type |
| typedef NodeTy | node_data_type |
| typedef EdgeData::reference | edge_data_reference |
| typedef NodeInfoTypes::reference | node_data_reference |
typedef
boost::counting_iterator
< typename
EdgeIndData::value_type > | edge_iterator |
typedef
boost::counting_iterator
< typename EdgeDst::value_type > | iterator |
| typedef iterator | const_iterator |
| typedef iterator | local_iterator |
| typedef iterator | const_local_iterator |
Public Member Functions |
| node_data_reference | getData (GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
| edge_data_reference | getEdgeData (edge_iterator ni, MethodFlag mflag=MethodFlag::NONE) |
| GraphNode | getEdgeDst (edge_iterator ni) |
| uint64_t | size () const |
| uint64_t | sizeEdges () const |
| iterator | begin () const |
| iterator | end () const |
| const_local_iterator | local_begin () const |
| const_local_iterator | local_end () const |
| 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) |
detail::EdgesIterator
< LC_CSR_Graph > | out_edges (GraphNode N, MethodFlag mflag=MethodFlag::ALL) |
| template<typename CompTy > |
| void | sortEdgesByEdgeData (GraphNode N, const CompTy &comp=std::less< EdgeTy >(), MethodFlag mflag=MethodFlag::ALL) |
| | Sorts outgoing edges of a node.
|
| template<typename CompTy > |
| void | sortEdges (GraphNode N, const CompTy &comp, MethodFlag mflag=MethodFlag::ALL) |
| | Sorts outgoing edges of a node.
|
| void | allocateFrom (FileGraph &graph) |
| void | constructFrom (FileGraph &graph, unsigned tid, unsigned total) |
Protected Types |
| typedef LargeArray< EdgeTy > | EdgeData |
| typedef LargeArray< uint32_t > | EdgeDst |
typedef
detail::NodeInfoBaseTypes
< NodeTy,!HasNoLockable
&&!HasOutOfLineLockable > | NodeInfoTypes |
typedef detail::NodeInfoBase
< NodeTy,!HasNoLockable
&&!HasOutOfLineLockable > | NodeInfo |
| typedef LargeArray< uint64_t > | EdgeIndData |
| typedef LargeArray< NodeInfo > | NodeData |
typedef
detail::EdgeSortIterator
< GraphNode, typename
EdgeIndData::value_type,
EdgeDst, EdgeData > | edge_sort_iterator |
Protected Member Functions |
| edge_iterator | raw_begin (GraphNode N) const |
| edge_iterator | raw_end (GraphNode N) const |
| edge_sort_iterator | edge_sort_begin (GraphNode N) |
| edge_sort_iterator | edge_sort_end (GraphNode N) |
| 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) |
| size_t | getId (GraphNode N) |
| GraphNode | getNode (size_t n) |
Protected Attributes |
| NodeData | nodeData |
| EdgeIndData | edgeIndData |
| EdgeDst | edgeDst |
| EdgeData | edgeData |
| uint64_t | numNodes |
| uint64_t | numEdges |
Friends |
| class | LC_InOut_Graph |
Detailed Description
template<typename NodeTy, typename EdgeTy, bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
class Galois::Graph::LC_CSR_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable >
Local computation graph (i.e., graph structure does not change).
The data representation is the traditional compressed-sparse-row (CSR) format.
The position of template parameters may change between Galois releases; the most robust way to specify them is through the with_XXX nested templates.
An example of use:
typedef Galois::Graph::LC_CSR_Graph<int,int> Graph;
Graph g;
g.structureFromFile(inputfile);
for (Graph::iterator ii = g.begin(), ei = g.end(); ii != ei; ++ii) {
Graph::GraphNode src = *ii;
for (Graph::edge_iterator jj = g.edge_begin(src), ej = g.edge_end(src); jj != ej; ++jj) {
Graph::GraphNode dst = g.getEdgeDst(jj);
int edgeData = g.getEdgeData(jj);
int nodeData = g.getData(dst);
}
}
And in C++11:
typedef Galois::Graph::LC_CSR_Graph<int,int> Graph;
Graph g;
g.structureFromFile(inputfile);
for (Graph::GraphNode src : g) {
for (Graph::edge_iterator edge : g.out_edges(src)) {
Graph::GraphNode dst = g.getEdgeDst(edge);
int edgeData = g.getEdgeData(edge);
int nodeData = g.getData(dst);
}
}
- Template Parameters:
-
| NodeTy | data on nodes |
| EdgeTy | data on out edges |
Member Typedef Documentation
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
Member Function Documentation
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<bool _A1 = HasOutOfLineLockable, bool _A2 = HasNoLockable>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<bool _A1 = HasNoLockable, bool _A2 = HasOutOfLineLockable>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
| uint64_t Galois::Graph::LC_CSR_Graph< NodeTy, EdgeTy, HasNoLockable, UseNumaAlloc, HasOutOfLineLockable >::sizeEdges |
( |
|
) |
const [inline] |
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename CompTy >
Sorts outgoing edges of a node.
Comparison function is over EdgeSortValue<EdgeTy>.
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename CompTy >
Sorts outgoing edges of a node.
Comparison function is over EdgeTy.
Friends And Related Function Documentation
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
Member Data Documentation
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
template<typename NodeTy , typename EdgeTy , bool HasNoLockable = false, bool UseNumaAlloc = false, bool HasOutOfLineLockable = false>
The documentation for this class was generated from the following file: