aboutsummaryrefslogtreecommitdiffstats
path: root/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-01 21:59:06 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-01 21:59:06 +0200
commitbd4a77df9e4cda57806c9df2b272b40e82e9ae65 (patch)
tree921b2ac22e1712c7c2383595dc09b46212c31aea /model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/Node.java
parentMerge remote-tracking branch 'origin/web-demo' (diff)
downloadrefinery-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.java8
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;
5import org.eclipse.viatra.solver.data.map.ContinousHashProvider; 5import org.eclipse.viatra.solver.data.map.ContinousHashProvider;
6 6
7public abstract class Node<KEY,VALUE>{ 7public 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