Differential D6953 Diff 25202 java/src/main/java/org/softwareheritage/graph/experiments/topology/SubdatasetSizeFunction.java
Changeset View
Changeset View
Standalone View
Standalone View
java/src/main/java/org/softwareheritage/graph/experiments/topology/SubdatasetSizeFunction.java
package org.softwareheritage.graph.experiments.topology; | package org.softwareheritage.graph.experiments.topology; | ||||
import com.google.common.primitives.Longs; | import com.google.common.primitives.Longs; | ||||
import com.martiansoftware.jsap.*; | import com.martiansoftware.jsap.*; | ||||
import it.unimi.dsi.Util; | import it.unimi.dsi.Util; | ||||
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 it.unimi.dsi.util.XoRoShiRo128PlusRandom; | import it.unimi.dsi.util.XoRoShiRo128PlusRandom; | ||||
import org.softwareheritage.graph.Graph; | import org.softwareheritage.graph.SwhBidirectionalGraph; | ||||
import org.softwareheritage.graph.Node; | import org.softwareheritage.graph.Node; | ||||
import org.softwareheritage.graph.experiments.forks.ForkCC; | import org.softwareheritage.graph.experiments.forks.ForkCC; | ||||
import java.io.*; | import java.io.*; | ||||
public class SubdatasetSizeFunction { | public class SubdatasetSizeFunction { | ||||
private SubdatasetSizeFunction() { | private SubdatasetSizeFunction() { | ||||
} | } | ||||
public static void run(final Graph graph) throws IOException { | public static void run(final SwhBidirectionalGraph graph) throws IOException { | ||||
final ProgressLogger pl = new ProgressLogger(); | final ProgressLogger pl = new ProgressLogger(); | ||||
pl.itemsName = "nodes"; | pl.itemsName = "nodes"; | ||||
pl.expectedUpdates = graph.numNodes(); | pl.expectedUpdates = graph.numNodes(); | ||||
long n = graph.numNodes(); | long n = graph.numNodes(); | ||||
LongArrayBitVector visited = LongArrayBitVector.ofLength(n); | LongArrayBitVector visited = LongArrayBitVector.ofLength(n); | ||||
int bufferSize = (int) Math.min(Arrays.MAX_ARRAY_SIZE & ~0x7, 8L * n); | int bufferSize = (int) Math.min(Arrays.MAX_ARRAY_SIZE & ~0x7, 8L * n); | ||||
▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | static public void main(final String[] arg) | ||||
JSAP.NOT_GREEDY, "The basename of the graph."),}); | JSAP.NOT_GREEDY, "The basename of the graph."),}); | ||||
final JSAPResult jsapResult = jsap.parse(arg); | final JSAPResult jsapResult = jsap.parse(arg); | ||||
if (jsap.messagePrinted()) | if (jsap.messagePrinted()) | ||||
System.exit(1); | System.exit(1); | ||||
final String basename = jsapResult.getString("basename"); | final String basename = jsapResult.getString("basename"); | ||||
Graph graph = Graph.loadMapped(basename); | SwhBidirectionalGraph graph = SwhBidirectionalGraph.loadMapped(basename); | ||||
run(graph); | run(graph); | ||||
} | } | ||||
} | } |