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: