aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-08-26 18:00:34 +0200
committerJ08nY2024-08-26 18:00:34 +0200
commitccc6908e78fe97fb8264335515cac5a9dbb5028b (patch)
tree87df609c31d02c4b172b0ec3e292d370cb51b4ac
parent89a5183ad410e0a9b9a8c872b4548e1c32f9f83f (diff)
downloadpyecsca-ccc6908e78fe97fb8264335515cac5a9dbb5028b.tar.gz
pyecsca-ccc6908e78fe97fb8264335515cac5a9dbb5028b.tar.zst
pyecsca-ccc6908e78fe97fb8264335515cac5a9dbb5028b.zip
Make formula expand fully deterministic.
Hopefully!
-rw-r--r--pyecsca/ec/formula/graph.py7
1 files changed, 2 insertions, 5 deletions
diff --git a/pyecsca/ec/formula/graph.py b/pyecsca/ec/formula/graph.py
index 494ed1a..e2fb1ee 100644
--- a/pyecsca/ec/formula/graph.py
+++ b/pyecsca/ec/formula/graph.py
@@ -198,7 +198,7 @@ class InputNode(Node):
def formula_input_variables(formula: Formula) -> List[str]:
return (
- list(formula.inputs)
+ sorted(formula.inputs)
+ formula.parameters
+ formula.coordinate_model.curve_model.parameter_names
)
@@ -284,11 +284,8 @@ class FormulaGraph:
graph = nx.DiGraph()
for i, node in enumerate(self.nodes):
graph.add_node(i, result=node.result, label=node.label, op=getattr(node, "op", None))
- stack = self.roots.copy()
- while stack:
- node = stack.pop()
+ for node in self.nodes:
for out in node.outgoing_nodes:
- stack.append(out)
graph.add_edge(self.node_index(node), self.node_index(out))
return graph