summaryrefslogtreecommitdiffstats
path: root/polymatrix/expression/mixins/additionexprmixin.py
diff options
context:
space:
mode:
authorMichael Schneeberger <michael.schneeberger@fhnw.ch>2024-03-27 14:52:22 +0100
committerMichael Schneeberger <michael.schneeberger@fhnw.ch>2024-03-27 14:52:22 +0100
commitebc557009b5343be74d1ef8e3a9e1c9b44d24a8f (patch)
treec1e6c67fb86e7afd864b3188db6829a463b47aba /polymatrix/expression/mixins/additionexprmixin.py
parentadd minimal documentation to the expression mixins (diff)
downloadpolymatrix-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.py24
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