public static IEnumerable <Pair <int> > WarmStart(this PINQCollection <Pair <int> > graph, int maxdeg, int numnodes, double eps) { maxdeg = Math.Max(1, maxdeg); numnodes = Math.Max(1, numnodes); Console.WriteLine("Doing WarmStart with maxdeg {0} and numnodes {1}", maxdeg, numnodes); var odegrees = graph.OutDegCCDF(eps); // measures ccdf of outgoing degrees var idegrees = graph.InDegCCDF(eps); // measures ccdf of incoming degrees var idegrseq = graph.InDegSeq(eps); // measures cdf of outgoing degrees var odegrseq = graph.OutDegSeq(eps); // measures cdf of incoming degrees var ods = Enumerable.Range(0, maxdeg).Select(i => odegrees[i]).ToArray(); var ids = Enumerable.Range(0, maxdeg).Select(i => idegrees[i]).ToArray(); var odq = Enumerable.Range(0, numnodes).Select(i => odegrseq[i]).ToArray(); var idq = Enumerable.Range(0, numnodes).Select(i => idegrseq[i]).ToArray(); var idfitted = DegreeSequenceFitter.FitDegSeq(ids, idq); var odfitted = DegreeSequenceFitter.FitDegSeq(ods, odq); //System.IO.File.WriteAllLines("odegrees.txt", ods.Select((x,i) => i + "\t" + x)); //System.IO.File.WriteAllLines("odegrseq.txt", odq.Select((x, i) => i + "\t" + x)); //System.IO.File.WriteAllLines("odfitted.txt", odfitted.Select((x, i) => i + "\t" + x)); var synthGraph = DegreeSequenceFitter.GenerateGraph(odfitted, idfitted, numnodes); return(synthGraph); }