/** Print some topology statistics. */ public void printGraphStats(boolean verbose) { if (verbose) { int nEdges = nEdges(); double meanDegree = ((double) (2 * nEdges)) / nodes.size(); System.out.println("Graph stats:"); System.out.println("Size: " + size()); System.out.println("Edges: " + nEdges); System.out.println("Min degree: " + minDegree()); System.out.println("Max degree: " + maxDegree()); System.out.println("Mean degree: " + meanDegree); System.out.println("Degree stddev: " + Math.sqrt(degreeVariance())); System.out.println("Mean local clustering coefficient: " + meanLocalClusterCoeff()); System.out.println("Global clustering coefficient: " + globalClusterCoeff()); System.out.println(); } else { double[] cc = localClusterCoeff(); int[] deg = degrees(); ArrayStats ccStats = new ArrayStats(cc); ArrayStats degStats = new ArrayStats(deg); System.out.print( size() + "\t" + nEdges() + "\t" + minDegree() + "\t" + maxDegree() + "\t" + globalClusterCoeff() + "\t"); System.out.print( ccStats.mean() + "\t" + ccStats.stdDev() + "\t" + ccStats.skewness() + "\t" + ccStats.kurtosis() + "\t"); System.out.print( degStats.mean() + "\t" + degStats.stdDev() + "\t" + degStats.skewness() + "\t" + degStats.kurtosis() + "\t"); } }
/** Get the topology stats as an array. */ public double[] graphStats() { double[] cc = localClusterCoeff(); int[] deg = degrees(); ArrayStats ccStats = new ArrayStats(cc); ArrayStats degStats = new ArrayStats(deg); return new double[] { size(), nEdges(), minDegree(), maxDegree(), globalClusterCoeff(), ccStats.mean(), ccStats.stdDev(), ccStats.skewness(), ccStats.kurtosis(), degStats.mean(), degStats.stdDev(), degStats.skewness(), degStats.kurtosis(), }; }