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...)
Edited by Oscar Gustafsson