pyecsca.ec.formula.fliparoo module¶
- class pyecsca.ec.formula.fliparoo.Fliparoo(chain, graph)[source]¶
Bases:
object
- Fliparoo is a chain of nodes N1->N2->…->Nk in FormulaGraph for k>=2 such that:
All Ni are * or All Ni are +/-
For every Ni, except for Nk, the only outgoing node is Ni+1
Neither of N1,…,Nk-1 is an output node
-
nodes:
List
[CodeOpNode
]¶
-
graph:
FormulaGraph
¶
- property first¶
- property last¶
- previous(node)[source]¶
- Return type:
Optional
[CodeOpNode
]
- class pyecsca.ec.formula.fliparoo.MulFliparoo(chain, graph)[source]¶
Bases:
Fliparoo
- deepcopy()¶
- property first¶
- property last¶
- previous(node)¶
- Return type:
Optional
[CodeOpNode
]
- slice(i, j)¶
- verify_chain(nodes)¶
-
nodes:
List
[CodeOpNode
]¶
-
graph:
FormulaGraph
¶
- class pyecsca.ec.formula.fliparoo.AddSubFliparoo(chain, graph)[source]¶
Bases:
Fliparoo
- deepcopy()¶
- property first¶
- property last¶
- previous(node)¶
- Return type:
Optional
[CodeOpNode
]
- slice(i, j)¶
- verify_chain(nodes)¶
-
nodes:
List
[CodeOpNode
]¶
-
graph:
FormulaGraph
¶
- class pyecsca.ec.formula.fliparoo.AddFliparoo(chain, graph)[source]¶
Bases:
Fliparoo
- deepcopy()¶
- property first¶
- property last¶
- previous(node)¶
- Return type:
Optional
[CodeOpNode
]
- slice(i, j)¶
- verify_chain(nodes)¶
-
nodes:
List
[CodeOpNode
]¶
-
graph:
FormulaGraph
¶
- exception pyecsca.ec.formula.fliparoo.BadFliparoo[source]¶
Bases:
Exception
- add_note()¶
Exception.add_note(note) – add a note to the exception
- args¶
- with_traceback()¶
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- pyecsca.ec.formula.fliparoo.find_fliparoos(graph, fliparoo_type=None)[source]¶
Finds a list of Fliparoos in a graph
- Return type:
List
[Fliparoo
]
- pyecsca.ec.formula.fliparoo.is_subfliparoo(fliparoo, longest_fliparoos)[source]¶
Returns true if fliparoo is a part of any fliparoo in longest_fliparoos
- Return type:
bool
- pyecsca.ec.formula.fliparoo.largest_fliparoo(chain, graph, fliparoo_type=None)[source]¶
Finds the largest fliparoo in a list of Nodes
- Return type:
Optional
[Fliparoo
]
- class pyecsca.ec.formula.fliparoo.SignedNode(node)[source]¶
Bases:
object
Represents a summand in an expression X1-X2+X3+X4-X5… Used for creating +/- Fliparoos
-
node:
CodeOpNode
¶
-
sign:
int
¶
-
node:
- class pyecsca.ec.formula.fliparoo.SignedSubGraph(nodes, graph)[source]¶
Bases:
object
Subgraph of an EFDFormula graph with signed nodes
- property components¶
- pyecsca.ec.formula.fliparoo.mirror_node(node, graph, graph_copy)[source]¶
Finds the corresponding node in a copy of the graph
- class pyecsca.ec.formula.fliparoo.DummyNode[source]¶
Bases:
Node
- property label¶
- property result¶
- property is_add: bool¶
- property is_div: bool¶
- property is_id: bool¶
- property is_inv: bool¶
- property is_mul: bool¶
- property is_neg: bool¶
- property is_pow: bool¶
- property is_sqr: bool¶
- property is_sub: bool¶
- reconnect_outgoing_nodes(destination)¶
- pyecsca.ec.formula.fliparoo.generate_fliparood_formulas(formula, rename=True)[source]¶
- Return type:
Iterator
[CodeFormula
]
- pyecsca.ec.formula.fliparoo.generate_fliparood_graphs(fliparoo)[source]¶
- Return type:
Iterator
[FormulaGraph
]
- pyecsca.ec.formula.fliparoo.combine_all_pairs_signed_nodes(signed_subgraph, fliparoo)[source]¶
- Return type:
List
[SignedSubGraph
]