diff --git a/AlgebraicDataflowArchitectureModel/models/Base.model b/AlgebraicDataflowArchitectureModel/models/Base.model index 68a891e..ac44843 100644 --- a/AlgebraicDataflowArchitectureModel/models/Base.model +++ b/AlgebraicDataflowArchitectureModel/models/Base.model @@ -9,5 +9,5 @@ channel C1{ in r1(x1, update(x1:Int, y1:Int, x2:Int, y2:Int)) == y1 in r2(x2, update(x1, y1, x2, y2)) == y2 - out r3(x3:Int, update(x1, y1, x2, y2)) == x1 + y1 + x2 + y2 + x3 + out r3(x3:Int, update(x1, y1, x2, y2)) == x1 + y1 + x2 + y2 } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java b/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java index f50a4f7..db2ef4d 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java @@ -1,5 +1,7 @@ package algorithms; +import java.util.HashSet; + import models.*; import models.algebra.*; import models.dataConstraintModel.*; @@ -29,9 +31,13 @@ } } for (Node node : graph.getNodes()) { - /*if (((ResourceNode) node).getPredecessors().size() > 1) { + HashSet channels = new HashSet<>(); + for(Edge pre : ((ResourceNode) node).getInEdges()) { + channels.add(((ResourceDependency) pre).getChannelGenerator()); + } + if ((channels.size() > 1)) { setStoreAttribute(true, (ResourceNode) node); - } else */if (((ResourceNode) node).getAttribute() == null) { + } else if (((ResourceNode) node).getAttribute() == null) { setStoreAttribute(false, (ResourceNode) node); } }