Skip to content

Commit 699cfb5

Browse files
committed
Small improvements to indexing
1 parent 01e1d13 commit 699cfb5

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

core/src/main/java/ai/timefold/solver/core/impl/bavet/common/AbstractIfExistsNode.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,14 @@ IndexedSet<ExistsCounterHandle<LeftTuple_>> updateRightHandleSet(UniTuple<Right_
120120
return rightHandleSet;
121121
}
122122

123-
void updateCounterFromLeft(LeftTuple_ leftTuple, UniTuple<Right_> rightTuple, ExistsCounter<LeftTuple_> counter) {
124-
if (testFiltering(leftTuple, rightTuple)) {
123+
void updateCounterFromLeft(ExistsCounter<LeftTuple_> counter, UniTuple<Right_> rightTuple) {
124+
if (testFiltering(counter.leftTuple, rightTuple)) {
125125
counter.countRight++;
126-
IndexedSet<ExistsCounterHandle<LeftTuple_>> rightHandleSet = rightTuple.getStore(inputStoreIndexRightHandleSet);
127-
new ExistsCounterHandle<>(counter, rightHandleSet);
126+
new ExistsCounterHandle<>(counter, rightTuple.getStore(inputStoreIndexRightHandleSet));
128127
}
129128
}
130129

131-
void updateCounterFromRight(UniTuple<Right_> rightTuple, ExistsCounter<LeftTuple_> counter,
130+
void updateCounterFromRight(ExistsCounter<LeftTuple_> counter, UniTuple<Right_> rightTuple,
132131
IndexedSet<ExistsCounterHandle<LeftTuple_>> rightHandleSet) {
133132
var leftTuple = counter.leftTuple;
134133
if (!leftTuple.state.isActive()) {
@@ -148,7 +147,7 @@ void updateCounterFromRight(UniTuple<Right_> rightTuple, ExistsCounter<LeftTuple
148147
// However, no such issue could have been reproduced; when in doubt, leave it out.
149148
return;
150149
}
151-
if (testFiltering(counter.leftTuple, rightTuple)) {
150+
if (testFiltering(leftTuple, rightTuple)) {
152151
incrementCounterRight(counter);
153152
new ExistsCounterHandle<>(counter, rightHandleSet);
154153
}

core/src/main/java/ai/timefold/solver/core/impl/bavet/common/AbstractIndexedIfExistsNode.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private void updateCounterRight(LeftTuple_ leftTuple, Object indexKeys, ExistsCo
6868
if (!isFiltering) {
6969
counter.countRight = indexerRight.size(indexKeys);
7070
} else {
71-
indexerRight.forEach(indexKeys, rightTuple -> updateCounterFromLeft(leftTuple, rightTuple, counter));
71+
indexerRight.forEach(indexKeys, rightTuple -> updateCounterFromLeft(counter, rightTuple));
7272
}
7373
}
7474

@@ -91,7 +91,7 @@ public final void updateLeft(LeftTuple_ leftTuple) {
9191
} else {
9292
// Call filtering for the leftTuple and rightTuple combinations again
9393
counter.clearIncludingCount();
94-
indexerRight.forEach(oldIndexKeys, rightTuple -> updateCounterFromLeft(leftTuple, rightTuple, counter));
94+
indexerRight.forEach(oldIndexKeys, rightTuple -> updateCounterFromLeft(counter, rightTuple));
9595
updateCounterLeft(counter);
9696
}
9797
} else {
@@ -142,7 +142,7 @@ private void updateCounterLeft(UniTuple<Right_> rightTuple, Object indexKeys) {
142142
indexerLeft.forEach(indexKeys, this::incrementCounterRight);
143143
} else {
144144
var rightHandleSet = new IndexedSet<ExistsCounterHandle<LeftTuple_>>(ExistsCounterHandlePositionTracker.right());
145-
indexerLeft.forEach(indexKeys, counter -> updateCounterFromRight(rightTuple, counter, rightHandleSet));
145+
indexerLeft.forEach(indexKeys, counter -> updateCounterFromRight(counter, rightTuple, rightHandleSet));
146146
rightTuple.setStore(inputStoreIndexRightHandleSet, rightHandleSet);
147147
}
148148
}
@@ -161,7 +161,7 @@ public final void updateRight(UniTuple<Right_> rightTuple) {
161161
if (isFiltering) {
162162
var rightHandleSet = updateRightHandleSet(rightTuple);
163163
indexerLeft.forEach(oldIndexKeys,
164-
counter -> updateCounterFromRight(rightTuple, counter, rightHandleSet));
164+
counter -> updateCounterFromRight(counter, rightTuple, rightHandleSet));
165165
}
166166
} else {
167167
indexerRight.remove(oldIndexKeys, rightTuple);

core/src/main/java/ai/timefold/solver/core/impl/bavet/common/AbstractUnindexedIfExistsNode.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public final void insertLeft(LeftTuple_ leftTuple) {
4949
if (!isFiltering) {
5050
counter.countRight = rightTupleSet.size();
5151
} else {
52-
rightTupleSet.forEach(tuple -> updateCounterFromLeft(leftTuple, tuple, counter));
52+
rightTupleSet.forEach(tuple -> updateCounterFromLeft(counter, tuple));
5353
}
5454
initCounterLeft(counter);
5555
}
@@ -68,7 +68,7 @@ public final void updateLeft(LeftTuple_ leftTuple) {
6868
} else {
6969
// Call filtering for the leftTuple and rightTuple combinations again
7070
counter.clearIncludingCount();
71-
rightTupleSet.forEach(tuple -> updateCounterFromLeft(leftTuple, tuple, counter));
71+
rightTupleSet.forEach(tuple -> updateCounterFromLeft(counter, tuple));
7272
updateCounterLeft(counter);
7373
}
7474
}
@@ -99,7 +99,7 @@ public final void insertRight(UniTuple<Right_> rightTuple) {
9999
leftCounterSet.forEach(this::incrementCounterRight);
100100
} else {
101101
var rightHandleSet = new IndexedSet<ExistsCounterHandle<LeftTuple_>>(ExistsCounterHandlePositionTracker.right());
102-
leftCounterSet.forEach(tuple -> updateCounterFromRight(rightTuple, tuple, rightHandleSet));
102+
leftCounterSet.forEach(counter -> updateCounterFromRight(counter, rightTuple, rightHandleSet));
103103
rightTuple.setStore(inputStoreIndexRightHandleSet, rightHandleSet);
104104
}
105105
}
@@ -113,7 +113,7 @@ public final void updateRight(UniTuple<Right_> rightTuple) {
113113
}
114114
if (isFiltering) {
115115
var rightHandleSet = updateRightHandleSet(rightTuple);
116-
leftCounterSet.forEach(tuple -> updateCounterFromRight(rightTuple, tuple, rightHandleSet));
116+
leftCounterSet.forEach(counter -> updateCounterFromRight(counter, rightTuple, rightHandleSet));
117117
}
118118
}
119119

0 commit comments

Comments
 (0)