Skip to content

Commit

Permalink
Merge pull request #1052 from btrplace/master
Browse files Browse the repository at this point in the history
Improve PropNValue.contains().
  • Loading branch information
mergify[bot] committed Jul 12, 2023
2 parents 66443b1 + 8308cbd commit 4c72744
Showing 1 changed file with 4 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.chocosolver.util.objects.setDataStructures.SetType;
import org.chocosolver.util.tools.ArrayUtils;

import java.util.Arrays;
import java.util.Random;

/**
Expand Down Expand Up @@ -55,6 +56,7 @@ public PropNValue(IntVar[] vars, IntVar nvalue) {
}
}
concernedValues = set.toArray();
Arrays.sort(concernedValues);
possibleValues = SetFactory.makeStoredSet(SetType.BITSET, min, model);
mandatoryValues = SetFactory.makeStoredSet(SetType.BITSET, min, model);
listForRandomPick = new TIntArrayList();
Expand All @@ -75,17 +77,8 @@ public int getPropagationConditions(int vIdx) {
}
}

private int contains(int v) {
for(int i = 0; i < concernedValues.length; i++) {
if(concernedValues[i] == v) {
return i;
}
}
return -1;
}

private void instantiateTo(int idxVar, int value) {
int idxConcernedValue = contains(value);
int idxConcernedValue = Arrays.binarySearch(concernedValues, value);
mandatoryValues.add(vars[idxVar].getValue());
witness[idxConcernedValue] = idxVar;
for(int i = 0; i < concernedValues.length; i++) {
Expand Down Expand Up @@ -141,7 +134,7 @@ public void propagate(int evtmask) throws ContradictionException {
ISetIterator iterator = possibleValues.iterator();
while(iterator.hasNext()) {
int value = iterator.nextInt();
int idxConcernedValue = contains(value);
int idxConcernedValue = Arrays.binarySearch(concernedValues, value);
if(
witness[idxConcernedValue] == NO_WITNESS
|| !vars[witness[idxConcernedValue]].contains(concernedValues[idxConcernedValue])
Expand Down

0 comments on commit 4c72744

Please sign in to comment.