diff --git a/src/main/java/edu/graal/graphs/types/VertexSubtype.java b/src/main/java/edu/graal/graphs/types/VertexSubtype.java index 4b8b9c7..c339e5e 100755 --- a/src/main/java/edu/graal/graphs/types/VertexSubtype.java +++ b/src/main/java/edu/graal/graphs/types/VertexSubtype.java @@ -10,9 +10,9 @@ public enum VertexSubtype implements IVertexSubtype { LT, GT, LEQ, GEQ, EQ, INEQ, MOD, AND, OR, INCR, DECR, SH_PLUS, SH_MINUS, PRINT, CALL, ADD, SUB, MUL, COMP, LOGICAL; - private static HashMap penaltyMap = penalty(); - private static HashMap penalty() { - java.util.Map map = new java.util.HashMap<>(); + private static HashMap, Double> penaltyMap = penalty(); + private static HashMap, Double> penalty() { + java.util.Map, Double> map = new java.util.HashMap<>(); map.put(Tuple.of(LT, GT), 0.5); map.put(Tuple.of(LT, LEQ), 0.25); @@ -77,7 +77,7 @@ private static HashMap penalty() { return HashMap.ofAll(map); } - public static Double getPenalty(Tuple2 vertexSubtypeTuple) { + public static Double getPenalty(Tuple2 vertexSubtypeTuple) { Option penalty = penaltyMap.get(vertexSubtypeTuple); if(penalty.isDefined()) { return penalty.get(); @@ -87,4 +87,7 @@ public static Double getPenalty(Tuple2 vertexSubtypeTuple) { } } + public static void addPenalty(IVertexSubtype v1, IVertexSubtype v2, double value) { + penaltyMap.put(Tuple.of(v1, v2), value); + } }