![]() |
fpmas 1.6
|
#include <clustered_graph_builder.h>
Public Member Functions | |
template<typename EdgeDist , typename X_Dist , typename Y_Dist > | |
DistributedClusteredGraphBuilder (random::DistributedGenerator<> &generator, EdgeDist &edge_distribution, X_Dist &x_distribution, Y_Dist &y_distribution) | |
template<typename EdgeDist , typename X_Dist , typename Y_Dist > | |
DistributedClusteredGraphBuilder (EdgeDist &edge_distribution, X_Dist &x_distribution, Y_Dist &y_distribution) | |
template<typename EdgeDist > | |
DistributedClusteredGraphBuilder (random::DistributedGenerator<> &generator, EdgeDist &edge_distribution) | |
template<typename EdgeDist > | |
DistributedClusteredGraphBuilder (EdgeDist &edge_distribution) | |
std::vector< api::graph::DistributedNode< T > * > | build (api::graph::DistributedNodeBuilder< T > &node_builder, api::graph::LayerId layer, api::graph::DistributedGraph< T > &graph) override |
virtual std::vector< api::graph::DistributedNode< T > * > | build (DistributedNodeBuilder< T > &node_builder, LayerId layer, DistributedGraph< T > &graph)=0 |
Distributed version of the ClusteredGraphBuilder.
The DistributedClusteredGraphBuilder should generally be used, since it has been proved to achieve much better performances.
|
inline |
DistributedClusteredGraphBuilder constructor.
The RandomGraphBuilder::distributed_rd random generator is used. It can be seeded with RandomGraphBuilder::seed() or fpmas::seed().
EdgeDist | edge count distribution (must satisfy RandomNumberDistribution) |
X_Dist | x coordinates distribution (must satisfy RandomNumberDistribution) |
Y_Dist | y coordinates distribution (must satisfy RandomNumberDistribution) |
generator | random number generator provided to the distribution |
edge_distribution | random distribution that manages edges generation. See build() |
x_distribution | random distribution used to assign an x coordinate to each node |
y_distribution | random distribution used to assign an y coordinate to each node |
|
inline |
DistributedClusteredGraphBuilder constructor.
EdgeDist | edge count distribution (must satisfy RandomNumberDistribution) |
X_Dist | x coordinates distribution (must satisfy RandomNumberDistribution) |
Y_Dist | y coordinates distribution (must satisfy RandomNumberDistribution) |
edge_distribution | random distribution that manages edges generation. See build() |
x_distribution | random distribution used to assign an x coordinate to each node |
y_distribution | random distribution used to assign an y coordinate to each node |
|
inline |
DistributedClusteredGraphBuilder constructor.
Built nodes are implicitly and uniformly distributed in a 2D space.
EdgeDist | edge count distribution (must satisfy RandomNumberDistribution) |
generator | random number generator provided to the distribution |
edge_distribution | random distribution that manages edges generation. See build() |
|
inline |
DistributedClusteredGraphBuilder constructor.
Built nodes are implicitly and uniformly distributed in a 2D space.
EdgeDist | edge count distribution (must satisfy RandomNumberDistribution) |
edge_distribution | random distribution that manages edges generation. See build() |
|
overridevirtual |
Same as ClusteredGraphBuilder::build(), but distributed and much more efficient.
This process is synchronous and should be called from all processes.
node_builder | DistributedNodeBuilder 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::DistributedGraphBuilder< T >.