![]() |
fpmas 1.6
|
#include <uniform_graph_builder.h>


Public Member Functions | |
| template<typename Generator_t , typename EdgeDist > | |
| UniformGraphBuilder (Generator_t &generator, EdgeDist &distribution) | |
| template<typename EdgeDist > | |
| UniformGraphBuilder (EdgeDist &distribution) | |
| std::vector< api::graph::DistributedNode< T > * > | build (api::graph::NodeBuilder< T > &node_builder, api::graph::LayerId layer, api::graph::DistributedGraph< T > &graph) override |
| virtual std::vector< api::graph::DistributedNode< T > * > | build (NodeBuilder< T > &node_builder, LayerId layer, DistributedGraph< T > &graph)=0 |
api::graph::GraphBuilder implementation that can be used to generate random uniform graphs. When links are built, nodes are selected uniformly among all the available built nodes.
|
inline |
UniformGraphBuilder constructor.
| Generator_t | random generator type (must satisfy UniformRandomBitGenerator) |
| EdgeDist | edge count distribution (must satisfy RandomNumberDistribution) |
| generator | random number generator provided to the distribution |
| distribution | random distribution that manages edges generation. See build() |
|
inline |
UniformGraphBuilder constructor.
The RandomGraphBuilder::rd random generator is used. It can be seeded with RandomGraphBuilder::seed() or fpmas::seed().
| EdgeDist | edge count distribution (must satisfy RandomNumberDistribution) |
| distribution | random distribution that manages edges generation. See build() |
|
overridevirtual |
Builds a graph according to the following algorithm.
distribution(generator).layer.Any random distribution can be used to build such a graph. The mean output degree of the graph, K, will by definition be equal to the mean of the specified random distribution.
| node_builder | NodeBuilder instance used to generate nodes |
| layer | layer on which nodes will be linked |
| graph | graph in which nodes and edges will be inserted |
Implements fpmas::api::graph::GraphBuilder< T >.