Skip to content

Commit 1585ef0

Browse files
Merge pull request #11172 from IoannisPanagiotas/community-compute-facade
Community compute facade
2 parents 9fc5cbc + 3e3ae3e commit 1585ef0

File tree

21 files changed

+1663
-26
lines changed

21 files changed

+1663
-26
lines changed

algo/src/main/java/org/neo4j/gds/CommunityAlgorithmTasks.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import org.neo4j.gds.core.utils.progress.tasks.Task;
2929
import org.neo4j.gds.core.utils.progress.tasks.Tasks;
3030
import org.neo4j.gds.hdbscan.HDBScanProgressTrackerCreator;
31-
import org.neo4j.gds.k1coloring.K1ColoringBaseConfig;
31+
import org.neo4j.gds.k1coloring.K1ColoringParameters;
3232
import org.neo4j.gds.k1coloring.K1ColoringProgressTrackerTaskCreator;
3333
import org.neo4j.gds.kmeans.KMeansTaskFactory;
3434
import org.neo4j.gds.kmeans.KmeansParameters;
@@ -70,10 +70,10 @@ public Task hdbscan(Graph graph) {
7070
return HDBScanProgressTrackerCreator.hdbscanTask(AlgorithmLabel.HDBScan.asString(), graph.nodeCount());
7171
}
7272

73-
public Task k1Coloring(Graph graph, K1ColoringBaseConfig configuration) {
73+
public Task k1Coloring(Graph graph, K1ColoringParameters parameters) {
7474
return K1ColoringProgressTrackerTaskCreator.progressTask(
7575
graph.nodeCount(),
76-
configuration.maxIterations()
76+
parameters.maxIterations()
7777
);
7878
}
7979

algo/src/main/java/org/neo4j/gds/approxmaxkcut/ApproxMaxKCutResult.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,7 @@
2424
public record ApproxMaxKCutResult(
2525
HugeByteArray candidateSolution,
2626
double cutCost
27-
) {}
27+
) {
28+
29+
public static ApproxMaxKCutResult EMPTY = new ApproxMaxKCutResult(HugeByteArray.newArray(0),0d);
30+
}

algo/src/main/java/org/neo4j/gds/cliqueCounting/CliqueCountingResult.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,7 @@ public record CliqueCountingResult(
2525
long[] globalCount,
2626
HugeObjectArray<long[]> perNodeCount,
2727
long[][] perSubcliqueCount
28-
){}
28+
){
29+
30+
public static CliqueCountingResult EMPTY = new CliqueCountingResult(new long[0], HugeObjectArray.newArray(long[].class,0), new long[0][0]);
31+
}

algo/src/main/java/org/neo4j/gds/conductance/ConductanceResult.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,7 @@
2424
public record ConductanceResult(
2525
HugeSparseDoubleArray communityConductances,
2626
double globalAverageConductance
27-
) {}
27+
) {
28+
29+
public static ConductanceResult EMPTY = new ConductanceResult(HugeSparseDoubleArray.builder(0).build(),0d);
30+
}

algo/src/main/java/org/neo4j/gds/hdbscan/Labels.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,7 @@
2121

2222
import org.neo4j.gds.collections.ha.HugeLongArray;
2323

24-
public record Labels(HugeLongArray labels, long numberOfNoisePoints, long numberOfClusters) {}
24+
public record Labels(HugeLongArray labels, long numberOfNoisePoints, long numberOfClusters) {
25+
26+
public static Labels EMPTY = new Labels(HugeLongArray.newArray(0),0, 0);
27+
}

algo/src/main/java/org/neo4j/gds/k1coloring/K1ColoringResult.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,6 @@ public BitSet usedColors() {
3939
return usedColors;
4040
}
4141

42+
public static K1ColoringResult EMPTY = new K1ColoringResult(HugeLongArray.newArray(0),0, false);
43+
4244
}

algo/src/main/java/org/neo4j/gds/kcore/KCoreDecompositionResult.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,7 @@
2121

2222
import org.neo4j.gds.collections.ha.HugeIntArray;
2323

24-
public record KCoreDecompositionResult(HugeIntArray coreValues, int degeneracy){}
24+
public record KCoreDecompositionResult(HugeIntArray coreValues, int degeneracy){
25+
26+
public static KCoreDecompositionResult EMPTY = new KCoreDecompositionResult(HugeIntArray.newArray(0), 0);
27+
}

algo/src/main/java/org/neo4j/gds/kmeans/KmeansResult.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,16 @@ public record KmeansResult(
3030
double averageDistanceToCentroid,
3131
@Nullable HugeDoubleArray silhouette,
3232
double averageSilhouette
33-
) {}
33+
) {
34+
public static KmeansResult empty(int k) {
35+
return new KmeansResult(
36+
HugeIntArray.newArray(0),
37+
HugeDoubleArray.newArray(0),
38+
new double[k][0],
39+
0,
40+
null,
41+
0
42+
);
43+
}
44+
45+
}

algo/src/main/java/org/neo4j/gds/labelpropagation/LabelPropagationResult.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,7 @@
2121

2222
import org.neo4j.gds.collections.ha.HugeLongArray;
2323

24-
public record LabelPropagationResult(HugeLongArray labels, boolean didConverge, long ranIterations) {}
24+
public record LabelPropagationResult(HugeLongArray labels, boolean didConverge, long ranIterations) {
25+
26+
public static LabelPropagationResult EMPTY = new LabelPropagationResult(HugeLongArray.newArray(0), false, 0);
27+
}

algo/src/main/java/org/neo4j/gds/leiden/LeidenResult.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
import org.jetbrains.annotations.Nullable;
2323
import org.neo4j.gds.collections.ha.HugeLongArray;
2424

25-
import java.util.function.LongUnaryOperator;
26-
2725
public record LeidenResult(
2826
HugeLongArray communities,
2927
int ranLevels,
@@ -50,8 +48,13 @@ public long[] intermediateCommunities(long nodeId) {
5048

5149
}
5250

53-
public LongUnaryOperator communitiesFunction() {
54-
return communities::get;
55-
}
51+
public static LeidenResult EMPTY = new LeidenResult(
52+
HugeLongArray.newArray(0),
53+
0,
54+
false,
55+
null,
56+
new double[0],
57+
0
58+
);
5659

5760
}

0 commit comments

Comments
 (0)