Lines Matching full:edges
11 /// implemented as two arrays: one containing nodes, and one containing edges.
14 /// 2. Operations on sets of nodes/edges are efficient, and representations of
15 /// those sets in memory are compact. For instance, a set of edges is
62 const Edge *Edges; variable
68 const Edge *edges_begin() const { return Edges; } in edges_begin()
69 // Nodes are allocated sequentially. Edges for a node are stored together.
70 // The end of this Node's edges is the beginning of the next node's edges.
73 const Edge *edges_end() const { return (this + 1)->Edges; } in edges_end()
74 ArrayRef<Edge> edges() const { in edges() function
80 ImmutableGraph(std::unique_ptr<Node[]> Nodes, std::unique_ptr<Edge[]> Edges, in ImmutableGraph() argument
82 : Nodes(std::move(Nodes)), Edges(std::move(Edges)), NodesSize(NodesSize), in ImmutableGraph()
94 ArrayRef<Edge> edges() const { return ArrayRef(Edges.get(), EdgesSize); } in edges() function
95 const Edge *edges_begin() const { return edges().begin(); } in edges_begin()
96 const Edge *edges_end() const { return edges().end(); } in edges_end()
289 std::unique_ptr<Edge[]> Edges; variable
338 VertexArray[VI].Edges = &EdgeArray[EI]; in get()
347 VertexArray[VI].Edges = &EdgeArray[EdgeSize]; // terminator node in get()
379 NewVertexArray[VertexI].Edges = &NewEdgeArray[EdgeI]; in trim()
380 for (const Edge &E : N.edges()) { in trim()
394 NewVertexArray[VertexI].Edges = &NewEdgeArray[NewEdgeSize]; // terminator in trim()