Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit 8a0d001

Browse files
committed
duplicate degree functions
1 parent 824304e commit 8a0d001

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

algo/src/main/java/org/neo4j/graphalgo/linkprediction/LinkPrediction.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public double adamicAdarSimilarity(@Name("node1") Node node1, @Name("node2") Nod
5151
Direction direction = configuration.getDirection(Direction.BOTH);
5252

5353
Set<Node> neighbors = new NeighborsFinder(api).findCommonNeighbors(node1, node2, relationshipType, direction);
54-
return neighbors.stream().mapToDouble(nb -> 1.0 / Math.log(degree(relationshipType, direction, nb))).sum();
54+
return neighbors.stream().mapToDouble(nb -> 1.0 / Math.log(degree(nb, relationshipType, direction))).sum();
5555
}
5656

5757
@UserFunction("algo.linkprediction.resourceAllocation")
@@ -70,7 +70,7 @@ public double resourceAllocationSimilarity(@Name("node1") Node node1, @Name("nod
7070
Direction direction = configuration.getDirection(Direction.BOTH);
7171

7272
Set<Node> neighbors = new NeighborsFinder(api).findCommonNeighbors(node1, node2, relationshipType, direction);
73-
return neighbors.stream().mapToDouble(nb -> 1.0 / degree(relationshipType, direction, nb)).sum();
73+
return neighbors.stream().mapToDouble(nb -> 1.0 / degree(nb, relationshipType, direction)).sum();
7474
}
7575

7676
@UserFunction("algo.linkprediction.commonNeighbors")
@@ -103,7 +103,7 @@ public double preferentialAttachment(@Name("node1") Node node1, @Name("node2") N
103103
RelationshipType relationshipType = configuration.getRelationship();
104104
Direction direction = configuration.getDirection(Direction.BOTH);
105105

106-
return getDegree(node1, relationshipType, direction) * getDegree(node2, relationshipType, direction);
106+
return degree(node1, relationshipType, direction) * degree(node2, relationshipType, direction);
107107
}
108108

109109
@UserFunction("algo.linkprediction.totalNeighbors")
@@ -116,19 +116,10 @@ public double totalNeighbors(@Name("node1") Node node1, @Name("node2") Node node
116116
Direction direction = configuration.getDirection(Direction.BOTH);
117117

118118
NeighborsFinder neighborsFinder = new NeighborsFinder(api);
119-
120-
Set<Node> neighbors = neighborsFinder.findNeighbors(node1, relationshipType, direction);
121-
neighbors.addAll(neighborsFinder.findNeighbors(node2, relationshipType, direction));
122-
123-
return neighbors.size();
119+
return neighborsFinder.findNeighbors(node1, node2, relationshipType, direction).size();
124120
}
125121

126-
private int getDegree(Node node, RelationshipType relationshipType, Direction direction) {
127-
return relationshipType == null ? node.getDegree(direction) : node.getDegree(relationshipType, direction);
128-
}
129-
130-
131-
private int degree(RelationshipType relationshipType, Direction direction, Node node) {
122+
private int degree(Node node, RelationshipType relationshipType, Direction direction) {
132123
return relationshipType == null ? node.getDegree(direction) : node.getDegree(relationshipType, direction);
133124
}
134125

0 commit comments

Comments
 (0)