↰ Return to documentation for file (include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp
)
/*
* ChungLuGeneratorAlamEtAl.hpp
*
* Created on: Dec 23, 2013
* Author: Henning
* Contributors: Hoske/Weisbarth/Hering
*/
#ifndef NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_ALAM_ET_AL_HPP_
#define NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_ALAM_ET_AL_HPP_
#include <networkit/generators/StaticDegreeSequenceGenerator.hpp>
#include <networkit/generators/StaticGraphGenerator.hpp>
namespace NetworKit {
class ChungLuGeneratorAlamEtAl final : StaticGraphGenerator {
struct VertexGroup {
count degrees;
count vertexCount;
count startIndex;
};
std::vector<VertexGroup> groups;
count sum_deg;
count n;
bool parallel;
template <typename F>
void edgeSkipping(std::mt19937_64 &generator, F &&addEdge, index i, index j, double p,
index end);
Graph generateSequential();
Graph generateParallel();
public:
ChungLuGeneratorAlamEtAl(const std::vector<count> °reeSequence, bool parallel = false);
Graph generate() override;
};
} /* namespace NetworKit */
#endif // NETWORKIT_GENERATORS_CHUNG_LU_GENERATOR_ALAM_ET_AL_HPP_