Operation properties
It may be useful to define operation properties for general use.
As an example, when determining the state-space representation of an SFG it is required that all operations are linear.
Properties may include:
-
linear (property
is_linear
) -
commutative (
is_commutative
) -
distributive (
is_distributive
) - some sort of "symmetry", i.e., we can swap the order of the inputs in some way
Challenge: if we introduce "finite word-length non-linearities", like quantization or limiters/saturation, it should still be possible to create a state-space representation, so we may need to set these to True
although not strictly correct.
These should most likely be False
in AbstractOperation
and then opt-in for each operation.
An SFG
can determine at least is_linear
. (Maybe it makes sense to also say None
here? In case it cannot be determined? But that will mess up typing...)