Skip to content
Snippets Groups Projects

Initial work on constant propagation

Open Oscar Gustafsson requested to merge constantpropagation into master
Files
2
+ 22
0
@@ -290,6 +290,12 @@ class AddSub(AbstractOperation):
if any(c == 0.0 for c in constants):
print("One input is 0!")
def _propagate_constant_parameters(
self, valid_operations: Optional[Set["Operation"]] = None
) -> None:
print(f"Can turn into {'Addition' if self.is_add else 'Subtraction'}")
return
class Multiplication(AbstractOperation):
r"""
@@ -650,6 +656,15 @@ class ConstantMultiplication(AbstractOperation):
"""Set the constant value of this operation."""
self.set_param("value", value)
def _propagate_constant_parameters(
self, valid_operations: Optional[Set["Operation"]] = None
) -> None:
if self.value == 0.0:
print("Constant is zero!")
if self.value == 1.0:
print("Constant is zero!")
return
class Butterfly(AbstractOperation):
r"""
@@ -811,3 +826,10 @@ class SymmetricTwoportAdaptor(AbstractOperation):
) -> None:
if any(c == 0.0 for c in constants):
print("One input is 0!")
def _propagate_constant_parameters(
self, valid_operations: Optional[Set["Operation"]] = None
) -> None:
if self.value == 0.0:
print("Constant is zero!")
return
Loading