Skip to content
Snippets Groups Projects
Commit 3e0e189b authored by Ivar Härnqvist's avatar Ivar Härnqvist
Browse files

fix order of core_operations, add missing return type annotations on setters

parent ddfc0f78
No related branches found
No related tags found
4 merge requests!31Resolve "Specify internal input/output dependencies of an Operation",!25Resolve "System tests iteration 1",!24Resolve "System tests iteration 1",!23Resolve "Simulate SFG"
Pipeline #13101 passed
......@@ -34,7 +34,7 @@ class Constant(AbstractOperation):
return self.param("value")
@value.setter
def value(self, value: Number):
def value(self, value: Number) -> None:
"""Set the constant value of this operation."""
return self.set_param("value", value)
......@@ -103,36 +103,22 @@ class Division(AbstractOperation):
return a / b
class SquareRoot(AbstractOperation):
"""Unary square root operation.
TODO: More info.
"""
def __init__(self, src0: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 1, output_count = 1, name = name, input_sources = [src0])
@property
def type_name(self) -> TypeName:
return "sqrt"
def evaluate(self, a):
return sqrt(complex(a))
class ComplexConjugate(AbstractOperation):
"""Unary complex conjugate operation.
class Min(AbstractOperation):
"""Binary min operation.
TODO: More info.
"""
def __init__(self, src0: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 1, output_count = 1, name = name, input_sources = [src0])
def __init__(self, src0: Optional[SignalSourceProvider] = None, src1: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 2, output_count = 1, name = name, input_sources = [src0, src1])
@property
def type_name(self) -> TypeName:
return "conj"
return "min"
def evaluate(self, a):
return conjugate(a)
def evaluate(self, a, b):
assert not isinstance(a, complex) and not isinstance(b, complex), \
("core_operations.Min does not support complex numbers.")
return a if a < b else b
class Max(AbstractOperation):
......@@ -153,22 +139,36 @@ class Max(AbstractOperation):
return a if a > b else b
class Min(AbstractOperation):
"""Binary min operation.
class SquareRoot(AbstractOperation):
"""Unary square root operation.
TODO: More info.
"""
def __init__(self, src0: Optional[SignalSourceProvider] = None, src1: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 2, output_count = 1, name = name, input_sources = [src0, src1])
def __init__(self, src0: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 1, output_count = 1, name = name, input_sources = [src0])
@property
def type_name(self) -> TypeName:
return "min"
return "sqrt"
def evaluate(self, a, b):
assert not isinstance(a, complex) and not isinstance(b, complex), \
("core_operations.Min does not support complex numbers.")
return a if a < b else b
def evaluate(self, a):
return sqrt(complex(a))
class ComplexConjugate(AbstractOperation):
"""Unary complex conjugate operation.
TODO: More info.
"""
def __init__(self, src0: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 1, output_count = 1, name = name, input_sources = [src0])
@property
def type_name(self) -> TypeName:
return "conj"
def evaluate(self, a):
return conjugate(a)
class Absolute(AbstractOperation):
......@@ -209,7 +209,7 @@ class ConstantMultiplication(AbstractOperation):
return self.param("value")
@value.setter
def value(self, value: Number):
def value(self, value: Number) -> None:
"""Set the constant value of this operation."""
return self.set_param("value", value)
......
......@@ -33,7 +33,7 @@ class Input(AbstractOperation):
return self.param("value")
@value.setter
def value(self, value: Number):
def value(self, value: Number) -> None:
"""Set the current value of this input."""
self.set_param("value", value)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment