diff --git a/cpp/graph_powerlaw.hpp b/cpp/graph_powerlaw.hpp index bd6eaee6790916f5583bac67db0ce83135ba6d93..0959059f0891d7cfe110236ff1dee6e5954df9ba 100644 --- a/cpp/graph_powerlaw.hpp +++ b/cpp/graph_powerlaw.hpp @@ -15,13 +15,10 @@ void generatePowerlawGraph(int n, float tau, Graph& g, DegreeSequence& ds, for (int i = 1;; ++i) { std::generate(ds.begin(), ds.end(), [°Dist, &rng] { return degDist(rng); }); - // First make the sum even + // First check if the sum is even unsigned int sum = std::accumulate(ds.begin(), ds.end(), 0); - if (sum % 2) { + if (sum % 2) continue; - // Can we do this: ?? - ds.back()++; - } if (g.createFromDegreeSequence(ds)) break; @@ -41,10 +38,8 @@ void generateCanonicalPowerlawGraph(int n, float tau, Graph &g, degDist.getFixedDistribution(n, ds.begin()); unsigned int sum = std::accumulate(ds.begin(), ds.end(), 0); - if (sum % 2) { - //TODO: Can we do this: ?? + if (sum % 2) ds.back()++; - } if (g.createFromDegreeSequence(ds)) return;