Lines Matching refs:Nodes

84     Nodes = std::vector<Node>(NodeCount);  in initialize()
100 for (uint64_t Src = 0; Src < Nodes.size(); Src++) { in run()
212 uint64_t Pred = Nodes[Now].ParentNode; in computeAugmentingPathCapacity()
213 auto &Edge = Edges[Pred][Nodes[Now].ParentEdgeIndex]; in computeAugmentingPathCapacity()
227 for (auto &Node : Nodes) { in findAugmentingPath()
236 Nodes[Source].Distance = 0; in findAugmentingPath()
237 Nodes[Source].Taken = true; in findAugmentingPath()
241 Nodes[Src].Taken = false; in findAugmentingPath()
256 if (!SampleProfileEvenCountDistribution && Nodes[Target].Distance == 0) in findAugmentingPath()
258 if (Nodes[Src].Distance > Nodes[Target].Distance) in findAugmentingPath()
266 int64_t NewDistance = Nodes[Src].Distance + Edge.Cost; in findAugmentingPath()
267 if (Nodes[Dst].Distance > NewDistance) { in findAugmentingPath()
269 Nodes[Dst].Distance = NewDistance; in findAugmentingPath()
270 Nodes[Dst].ParentNode = Src; in findAugmentingPath()
271 Nodes[Dst].ParentEdgeIndex = EdgeIdx; in findAugmentingPath()
273 if (!Nodes[Dst].Taken) { in findAugmentingPath()
275 Nodes[Dst].Taken = true; in findAugmentingPath()
282 return Nodes[Target].Distance != INF; in findAugmentingPath()
290 uint64_t Pred = Nodes[Now].ParentNode; in augmentFlowAlongPath()
291 auto &Edge = Edges[Pred][Nodes[Now].ParentEdgeIndex]; in augmentFlowAlongPath()
319 for (auto &Node : Nodes) { in findAugmentingDAG()
328 Nodes[Target].Taken = true; in findAugmentingDAG()
332 Nodes[Source].Discovery = ++Time; in findAugmentingDAG()
340 auto &Dst = Nodes[Edge.Dst]; in findAugmentingDAG()
351 Nodes[NodeIdx].Taken = true; in findAugmentingDAG()
358 if (!Nodes[NodeIdx].Taken) { in findAugmentingDAG()
359 Nodes[NodeIdx].Discovery = 0; in findAugmentingDAG()
363 Nodes[NodeIdx].Finish = ++Time; in findAugmentingDAG()
367 Nodes[Stack.top().first].Taken = true; in findAugmentingDAG()
381 if (Edge.OnShortestPath && Nodes[Src].Taken && Nodes[Dst].Taken && in findAugmentingDAG()
382 Nodes[Dst].Finish < Nodes[Src].Finish) { in findAugmentingDAG()
400 Nodes[Src].FracFlow = 0; in augmentFlowAlongDAG()
401 Nodes[Src].IntFlow = 0; in augmentFlowAlongDAG()
409 Nodes[Source].FracFlow = 1.0; in augmentFlowAlongDAG()
411 assert((Src == Target || Nodes[Src].FracFlow > 0.0) && in augmentFlowAlongDAG()
416 double EdgeFlow = Nodes[Src].FracFlow / Degree; in augmentFlowAlongDAG()
417 Nodes[Edge->Dst].FracFlow += EdgeFlow; in augmentFlowAlongDAG()
429 Nodes[Source].IntFlow = MaxFlowAmount; in augmentFlowAlongDAG()
437 uint64_t SuccFlow = (Nodes[Src].IntFlow + Degree - 1) / Degree; in augmentFlowAlongDAG()
440 uint64_t EdgeFlow = std::min(Nodes[Src].IntFlow, SuccFlow); in augmentFlowAlongDAG()
442 Nodes[Dst].IntFlow += EdgeFlow; in augmentFlowAlongDAG()
443 Nodes[Src].IntFlow -= EdgeFlow; in augmentFlowAlongDAG()
447 assert(Nodes[Target].IntFlow <= MaxFlowAmount); in augmentFlowAlongDAG()
448 Nodes[Target].IntFlow = 0; in augmentFlowAlongDAG()
459 if (Nodes[Dst].IntFlow == 0) in augmentFlowAlongDAG()
461 uint64_t EdgeFlow = std::min(Nodes[Dst].IntFlow, Edge->AugmentedFlow); in augmentFlowAlongDAG()
462 Nodes[Dst].IntFlow -= EdgeFlow; in augmentFlowAlongDAG()
463 Nodes[Src].IntFlow += EdgeFlow; in augmentFlowAlongDAG()
472 assert(Src == Source || Nodes[Src].IntFlow == 0); in augmentFlowAlongDAG()
498 for (size_t Src = 0; Src < Nodes.size(); Src++) { in identifyShortestEdges()
500 if (Nodes[Src].Distance > Nodes[Target].Distance) in identifyShortestEdges()
507 Nodes[Dst].Distance <= Nodes[Target].Distance && in identifyShortestEdges()
508 Nodes[Dst].Distance == Nodes[Src].Distance + Edge.Cost && in identifyShortestEdges()
560 std::vector<Node> Nodes; member in __anon646eb3200111::MinCostMaxFlow