diff options
| author | J08nY | 2024-01-26 18:29:04 +0100 |
|---|---|---|
| committer | J08nY | 2024-01-26 18:29:04 +0100 |
| commit | 4be1fda99b983ca0ee22fe47f8ccc311c86d7cfc (patch) | |
| tree | 3215dbe35af367737b8ff44599f821af3fefd66f /pyecsca/ec/formula/graph.py | |
| parent | 63da9293c39817cd7fe746cbd31e42f13f831091 (diff) | |
| download | pyecsca-4be1fda99b983ca0ee22fe47f8ccc311c86d7cfc.tar.gz pyecsca-4be1fda99b983ca0ee22fe47f8ccc311c86d7cfc.tar.zst pyecsca-4be1fda99b983ca0ee22fe47f8ccc311c86d7cfc.zip | |
Move CodeFormulas.
Diffstat (limited to 'pyecsca/ec/formula/graph.py')
| -rw-r--r-- | pyecsca/ec/formula/graph.py | 67 |
1 files changed, 3 insertions, 64 deletions
diff --git a/pyecsca/ec/formula/graph.py b/pyecsca/ec/formula/graph.py index 8386973..3520b6a 100644 --- a/pyecsca/ec/formula/graph.py +++ b/pyecsca/ec/formula/graph.py @@ -1,13 +1,5 @@ -from . import ( - Formula, - AdditionFormula, - DoublingFormula, - LadderFormula, - TriplingFormula, - NegationFormula, - ScalingFormula, - DifferentialAdditionFormula, -) +from .base import Formula +from .code import CodeFormula from ..op import CodeOp, OpType import matplotlib.pyplot as plt import networkx as nx @@ -205,57 +197,6 @@ def formula_input_variables(formula: Formula) -> List[str]: ) -class CodeFormula(Formula): - def __init__(self, name, code, coordinate_model, parameters, assumptions): - self.name = name - self.coordinate_model = coordinate_model - self.meta = {} - self.parameters = parameters - self.assumptions = assumptions - self.code = code - self.unified = False - - def __hash__(self): - return hash((self.name, self.coordinate_model, tuple(self.code), tuple(self.parameters), tuple(self.assumptions))) - - def __eq__(self, other): - if not isinstance(other, CodeFormula): - return False - return ( - self.name == other.name - and self.coordinate_model == other.coordinate_model - and self.code == other.code - ) - - -class CodeAdditionFormula(AdditionFormula, CodeFormula): - pass - - -class CodeDoublingFormula(DoublingFormula, CodeFormula): - pass - - -class CodeLadderFormula(LadderFormula, CodeFormula): - pass - - -class CodeTriplingFormula(TriplingFormula, CodeFormula): - pass - - -class CodeNegationFormula(NegationFormula, CodeFormula): - pass - - -class CodeScalingFormula(ScalingFormula, CodeFormula): - pass - - -class CodeDifferentialAdditionFormula(DifferentialAdditionFormula, CodeFormula): - pass - - class FormulaGraph: coordinate_model: Any shortname: str @@ -323,9 +264,7 @@ class FormulaGraph: assumptions = [deepcopy(assumption) for assumption in self.assumptions] for klass in CodeFormula.__subclasses__(): if klass.shortname == self.shortname: - return klass( - name, code, self.coordinate_model, parameters, assumptions - ) + return klass(name, code, self.coordinate_model, parameters, assumptions) raise ValueError(f"Bad formula type: {self.shortname}") def networkx_graph(self) -> nx.DiGraph: |
