転送方式の選択可能性判定を一通り実装、テストコードはこれから
1 parent 6932a6e commit 42dff7491becf6cf77b03d5430b9e7e56cbb1cfb
yoichiro authored on 24 Mar 2020
Showing 4 changed files
View
3
■■
AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java
Expression curexp = member.getStateTransition().getCurStateExpression();
Expression nextexp = member.getStateTransition().getNextStateExpression();
boolean flag = false;
for (Position pos : curexp.getVariables().keySet()) {
System.out.println(curexp);
System.out.println(curexp.getVariables().containsKey(pos));
System.out.println(nextexp);
if (nextexp.contains(curexp.getVariables().get(pos))) {
flag = true;
}
}
View
29
AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java
package algorithm;
 
import models.*;
import models.dataFlowModel.*;
 
public class EdgeTransitionSelectable {
static public void run(ResourceDependencyGraph graph) {
PushPullAttribute ppat = new PushPullAttribute();
ppat.addOption(PushPullValue.PUSHorPULL);
ppat.addOption(PushPullValue.PUSH);
ppat.addOption(PushPullValue.PULL);
for (Node n : graph.getNodes()) {
if (((StoreAttribute) ((ResourceNode) n).getAttribute()).isNeeded()) {
trackEdges(n);
}
}
for (Edge e : graph.getEdges()) {
if (((ResourceDependency) e).getAttribute() == null) {
((ResourceDependency) e).setAttribute(ppat);
}
}
}
 
static private void trackEdges(Node n) {
PushPullAttribute ppat = new PushPullAttribute();
ppat.addOption(PushPullValue.PUSH);
for (Node pre : n.getPredecessors()) {
for (Edge in : n.getInEdges()) {
((ResourceDependency) in).setAttribute(ppat);
}
trackEdges(pre);
}
}
}
View
6
AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java 0 → 100644
package tests;
 
public class DataStorageDecisionTest {
 
}
View
AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java 0 → 100644