Differential D6953 Diff 25202 java/src/main/java/org/softwareheritage/graph/algo/TopologicalTraversal.java
Changeset View
Changeset View
Standalone View
Standalone View
java/src/main/java/org/softwareheritage/graph/algo/TopologicalTraversal.java
package org.softwareheritage.graph.algo; | package org.softwareheritage.graph.algo; | ||||
import com.google.common.primitives.Longs; | import com.google.common.primitives.Longs; | ||||
import it.unimi.dsi.big.webgraph.LazyLongIterator; | import it.unimi.dsi.big.webgraph.LazyLongIterator; | ||||
import it.unimi.dsi.bits.LongArrayBitVector; | import it.unimi.dsi.bits.LongArrayBitVector; | ||||
import it.unimi.dsi.fastutil.Arrays; | import it.unimi.dsi.fastutil.Arrays; | ||||
import it.unimi.dsi.fastutil.BigArrays; | import it.unimi.dsi.fastutil.BigArrays; | ||||
import it.unimi.dsi.fastutil.longs.LongBigArrays; | import it.unimi.dsi.fastutil.longs.LongBigArrays; | ||||
import it.unimi.dsi.io.ByteDiskQueue; | import it.unimi.dsi.io.ByteDiskQueue; | ||||
import it.unimi.dsi.logging.ProgressLogger; | import it.unimi.dsi.logging.ProgressLogger; | ||||
import org.softwareheritage.graph.Graph; | import org.softwareheritage.graph.SwhBidirectionalGraph; | ||||
import org.softwareheritage.graph.Traversal; | import org.softwareheritage.graph.Traversal; | ||||
import org.softwareheritage.graph.experiments.forks.ForkCC; | import org.softwareheritage.graph.experiments.forks.ForkCC; | ||||
import java.io.File; | import java.io.File; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
public class TopologicalTraversal { | public class TopologicalTraversal { | ||||
public static void run(final Graph graph, Traversal.NodeIdConsumer cb) throws IOException { | public static void run(final SwhBidirectionalGraph graph, Traversal.NodeIdConsumer cb) throws IOException { | ||||
final long[][] indegree = LongBigArrays.newBigArray(graph.numNodes()); | final long[][] indegree = LongBigArrays.newBigArray(graph.numNodes()); | ||||
final ProgressLogger pl = new ProgressLogger(); | final ProgressLogger pl = new ProgressLogger(); | ||||
pl.itemsName = "nodes"; | pl.itemsName = "nodes"; | ||||
pl.expectedUpdates = graph.numNodes(); | pl.expectedUpdates = graph.numNodes(); | ||||
pl.start("Fetching indegrees..."); | pl.start("Fetching indegrees..."); | ||||
long n = graph.numNodes(); | long n = graph.numNodes(); | ||||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |