diff options
author | Michael Schneeberger <michael.schneeberger@fhnw.ch> | 2024-03-27 14:52:22 +0100 |
---|---|---|
committer | Michael Schneeberger <michael.schneeberger@fhnw.ch> | 2024-03-27 14:52:22 +0100 |
commit | ebc557009b5343be74d1ef8e3a9e1c9b44d24a8f (patch) | |
tree | c1e6c67fb86e7afd864b3188db6829a463b47aba /polymatrix/expression/mixins/additionexprmixin.py | |
parent | add minimal documentation to the expression mixins (diff) | |
download | polymatrix-ebc557009b5343be74d1ef8e3a9e1c9b44d24a8f.tar.gz polymatrix-ebc557009b5343be74d1ef8e3a9e1c9b44d24a8f.zip |
format Python files with ruff
Diffstat (limited to 'polymatrix/expression/mixins/additionexprmixin.py')
-rw-r--r-- | polymatrix/expression/mixins/additionexprmixin.py | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/polymatrix/expression/mixins/additionexprmixin.py b/polymatrix/expression/mixins/additionexprmixin.py index 0ba8a2e..bc83ff3 100644 --- a/polymatrix/expression/mixins/additionexprmixin.py +++ b/polymatrix/expression/mixins/additionexprmixin.py @@ -1,18 +1,18 @@ import abc import math -from polymatrix.expression.utils.broadcastpolymatrix import broadcast_poly_matrix from polymatrix.utils.getstacklines import FrameSummary from polymatrix.polymatrix.init import init_poly_matrix from polymatrix.polymatrix.abc import PolyMatrix from polymatrix.expressionstate.abc import ExpressionState from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin +from polymatrix.expression.utils.broadcastpolymatrix import broadcast_poly_matrix class AdditionExprMixin(ExpressionBaseMixin): - """ - Adds two polymatrices - + """ + Adds two polymatrices + [[2*x1+x2], [x1**2]] + [[3*x2], [x1]] -> [[2*x1+4*x2], [x1+x1**2]]. If one summand is of size (1, 1), then perform broadcast: @@ -22,22 +22,19 @@ class AdditionExprMixin(ExpressionBaseMixin): @property @abc.abstractmethod - def left(self) -> ExpressionBaseMixin: - ... + def left(self) -> ExpressionBaseMixin: ... @property @abc.abstractmethod - def right(self) -> ExpressionBaseMixin: - ... + def right(self) -> ExpressionBaseMixin: ... @property @abc.abstractmethod - def stack(self) -> tuple[FrameSummary]: - ... + def stack(self) -> tuple[FrameSummary]: ... # overwrites the abstract method of `ExpressionBaseMixin` def apply( - self, + self, state: ExpressionState, ) -> tuple[ExpressionState, PolyMatrix]: state, left = self.left.apply(state=state) @@ -49,11 +46,9 @@ class AdditionExprMixin(ExpressionBaseMixin): for row in range(left.shape[0]): for col in range(left.shape[1]): - poly_data = {} for underlying in (left, right): - polynomial = underlying.get_poly(row, col) if polynomial is None: continue @@ -63,7 +58,6 @@ class AdditionExprMixin(ExpressionBaseMixin): else: for monomial, value in polynomial.items(): - if monomial not in poly_data: poly_data[monomial] = value @@ -81,4 +75,4 @@ class AdditionExprMixin(ExpressionBaseMixin): shape=left.shape, ) - return state, poly_matrix + return state, poly_matrix |