↰ Return to documentation for file (include/networkit/randomization/GlobalCurveball.hpp
)
/*
* GlobalCurveball.hpp
*
* Created on: 26.05.2018
* Author: Manuel Penschuck <networkit@manuel.jetzt>
*/
#ifndef NETWORKIT_RANDOMIZATION_GLOBAL_CURVEBALL_HPP_
#define NETWORKIT_RANDOMIZATION_GLOBAL_CURVEBALL_HPP_
#include <memory>
#include <utility>
#include <networkit/base/Algorithm.hpp>
#include <networkit/graph/Graph.hpp>
namespace NetworKit {
// pImpl
namespace CurveballDetails {
class GlobalCurveballImpl;
}
class GlobalCurveball final : public Algorithm {
public:
explicit GlobalCurveball(const Graph &G, count number_of_global_trades = 20,
bool allowSelfLoops = false,
bool degreePreservingShufflePreprocessing = true);
~GlobalCurveball() override;
void run() final;
Graph getGraph();
private:
std::unique_ptr<CurveballDetails::GlobalCurveballImpl> impl;
unsigned numGlobalTrades;
bool degreePreservingShuffle;
};
} // namespace NetworKit
#endif // NETWORKIT_RANDOMIZATION_GLOBAL_CURVEBALL_HPP_