diff options
author | OszkarSemerath <semerath@mit.bme.hu> | 2021-08-01 21:59:06 +0200 |
---|---|---|
committer | OszkarSemerath <semerath@mit.bme.hu> | 2021-08-01 21:59:06 +0200 |
commit | bd4a77df9e4cda57806c9df2b272b40e82e9ae65 (patch) | |
tree | 921b2ac22e1712c7c2383595dc09b46212c31aea /model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java | |
parent | Merge remote-tracking branch 'origin/web-demo' (diff) | |
download | refinery-bd4a77df9e4cda57806c9df2b272b40e82e9ae65.tar.gz refinery-bd4a77df9e4cda57806c9df2b272b40e82e9ae65.tar.zst refinery-bd4a77df9e4cda57806c9df2b272b40e82e9ae65.zip |
Hashprovide + Node update to make better equals/hashcodes services
Diffstat (limited to 'model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java')
-rw-r--r-- | model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java index f19ca06f..2176af87 100644 --- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java +++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java | |||
@@ -5,8 +5,8 @@ import java.util.Map; | |||
5 | import org.eclipse.viatra.solver.data.map.ContinousHashProvider; | 5 | import org.eclipse.viatra.solver.data.map.ContinousHashProvider; |
6 | 6 | ||
7 | public abstract class Node<KEY,VALUE>{ | 7 | public abstract class Node<KEY,VALUE>{ |
8 | protected static final int branchingFactorBit = 5; | 8 | public static final int branchingFactorBit = 5; |
9 | protected static final int factor = 1<<branchingFactorBit; | 9 | public static final int factor = 1<<branchingFactorBit; |
10 | protected static final int numberOfFactors = Integer.SIZE / branchingFactorBit; | 10 | protected static final int numberOfFactors = Integer.SIZE / branchingFactorBit; |
11 | protected static final int factorMask = factor-1; | 11 | protected static final int factorMask = factor-1; |
12 | public static final int effectiveBits = branchingFactorBit * numberOfFactors; | 12 | public static final int effectiveBits = branchingFactorBit * numberOfFactors; |
@@ -35,7 +35,7 @@ public abstract class Node<KEY,VALUE>{ | |||
35 | * @return The segment as an integer. | 35 | * @return The segment as an integer. |
36 | */ | 36 | */ |
37 | protected static int hashFragment(int hash, int shiftDepth) { | 37 | protected static int hashFragment(int hash, int shiftDepth) { |
38 | if(shiftDepth<0 && 5<shiftDepth) throw new IllegalArgumentException("Invalid shift depth! valid intervall=[0;5], input="+shiftDepth); | 38 | if(shiftDepth<0 || Node.numberOfFactors<shiftDepth) throw new IllegalArgumentException("Invalid shift depth! valid intervall=[0;5], input="+shiftDepth); |
39 | return (hash >>> shiftDepth*branchingFactorBit) & factorMask; | 39 | return (hash >>> shiftDepth*branchingFactorBit) & factorMask; |
40 | } | 40 | } |
41 | 41 | ||
@@ -64,7 +64,7 @@ public abstract class Node<KEY,VALUE>{ | |||
64 | abstract MutableNode<KEY, VALUE> toMutable(); | 64 | abstract MutableNode<KEY, VALUE> toMutable(); |
65 | public abstract ImmutableNode<KEY, VALUE> toImmutable( | 65 | public abstract ImmutableNode<KEY, VALUE> toImmutable( |
66 | Map<Node<KEY, VALUE>,ImmutableNode<KEY, VALUE>> cache); | 66 | Map<Node<KEY, VALUE>,ImmutableNode<KEY, VALUE>> cache); |
67 | 67 | protected abstract MutableNode<KEY, VALUE> isMutable(); | |
68 | /** | 68 | /** |
69 | * Moves a {@link MapCursor} to its next position. | 69 | * Moves a {@link MapCursor} to its next position. |
70 | * @param cursor the cursor | 70 | * @param cursor the cursor |