in src/main/java/com/twitter/sbf/generator/GraphGenerator.java [70:108]
public GraphGenerator(
int numClusters,
double fractionGlobalEdges,
double minProbInsideCluster,
double maxProbInsideCluster,
int minClusterSize,
int maxClusterSize,
RandomAdaptor r,
boolean isWeighted,
float higherWeightMode,
float lowerWeightMode,
float fractionHigherWeight) {
assert minClusterSize > 2;
assert maxClusterSize > 2;
assert maxClusterSize > minClusterSize;
assert minProbInsideCluster > 0 && minProbInsideCluster < 1;
assert maxProbInsideCluster > 0 && maxProbInsideCluster < 1;
assert maxProbInsideCluster > minProbInsideCluster;
this.numClusters = numClusters;
this.fractionGlobalEdges = fractionGlobalEdges;
this.minProbInsideCluster = minProbInsideCluster;
this.maxProbInsideCluster = maxProbInsideCluster;
this.minClusterSize = minClusterSize;
this.maxClusterSize = maxClusterSize;
this.rng = r;
this.isWeighted = isWeighted;
this.lowerWeightMode = lowerWeightMode;
if (isWeighted) {
assert lowerWeightMode > 0;
assert higherWeightMode > 0;
assert fractionHigherWeight > 0;
assert higherWeightMode > lowerWeightMode;
higherWeightDist = new NormalDistribution(this.rng, higherWeightMode,
higherWeightMode / 4);
lowerWeightDist = new NormalDistribution(this.rng, lowerWeightMode, lowerWeightMode / 4);
this.fractionHigherWeight = fractionHigherWeight;
}
}