Class Stats

java.lang.Object
it.unimi.dsi.webgraph.Stats

public class Stats
extends java.lang.Object
Computes basic statistical data about a given graph.

This class loads a graph of given basename, and computes the following data:

  1. an ASCII file containing the outdegree distribution; line n contains the number of nodes with outdegree n (starting from 0);
  2. an ASCII file containing the indegree distribution; line n contains the number of nodes with indegree n (starting from 0);
  3. a property file containing several self-descriptive data, such as the average indegree/outdegree (which should be identical), sample nodes with minimum or maximum indegree/outdegree, and so on; additional data will be computed if files produced by StronglyConnectedComponents are present with the same basename (in particular, buckets and component sizes);
  4. if files produced by StronglyConnectedComponents are present with the same basename, an ASCII file containing the distribution of strongly connected components, specified as a sequence of lines each containing a pair of integer <size, count>.

The graph is loaded offline: the only memory allocated is for indegree count (one integer per node) and for storing the actual counts (one integer per indegree/outdegree value).

  • Method Summary

    Modifier and Type Method Description
    static void main​(java.lang.String[] arg)  
    static void run​(ImmutableGraph graph, LongArrayBitVector buckets, int[] sccsize, java.lang.CharSequence resultsBasename, boolean saveDegrees, ProgressLogger pl)
    Computes stats for the given graph using a single traversal, storing the results in files with given basename.
    static void run​(ImmutableGraph graph, LongArrayBitVector buckets, int[] sccsize, java.lang.CharSequence resultsBasename, ProgressLogger pl)
    Computes stats for the given graph using a single traversal, storing the results in files with given basename.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • run

      public static void run​(ImmutableGraph graph, LongArrayBitVector buckets, int[] sccsize, java.lang.CharSequence resultsBasename, ProgressLogger pl) throws java.io.IOException
      Computes stats for the given graph using a single traversal, storing the results in files with given basename.
      Parameters:
      graph - the graph to be examined.
      buckets - the set of buckets of this graph, or null if this information is not available.
      sccsize - the sizes of strongly connected components, or null if this information is not available.
      resultsBasename - the basename for result files (see the class description).
      pl - a progress logger.
      Throws:
      java.io.IOException
    • run

      public static void run​(ImmutableGraph graph, LongArrayBitVector buckets, int[] sccsize, java.lang.CharSequence resultsBasename, boolean saveDegrees, ProgressLogger pl) throws java.io.IOException
      Computes stats for the given graph using a single traversal, storing the results in files with given basename.
      Parameters:
      graph - the graph to be examined.
      buckets - the set of buckets of this graph, or null if this information is not available.
      sccsize - the sizes of strongly connected components, or null if this information is not available.
      resultsBasename - the basename for result files (see the class description).
      saveDegrees - if true, indegrees and outdegrees will be saved.
      pl - a progress logger.
      Throws:
      java.io.IOException
    • main

      public static void main​(java.lang.String[] arg) throws java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.NoSuchMethodException, JSAPException, java.io.IOException, java.lang.ClassNotFoundException
      Throws:
      java.lang.IllegalArgumentException
      java.lang.SecurityException
      java.lang.IllegalAccessException
      java.lang.reflect.InvocationTargetException
      java.lang.NoSuchMethodException
      JSAPException
      java.io.IOException
      java.lang.ClassNotFoundException