summaryrefslogtreecommitdiffstats
path: root/polymatrix/expression/mixins/determinantexprmixin.py
diff options
context:
space:
mode:
Diffstat (limited to 'polymatrix/expression/mixins/determinantexprmixin.py')
-rw-r--r--polymatrix/expression/mixins/determinantexprmixin.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/polymatrix/expression/mixins/determinantexprmixin.py b/polymatrix/expression/mixins/determinantexprmixin.py
index d848bd2..5694ddd 100644
--- a/polymatrix/expression/mixins/determinantexprmixin.py
+++ b/polymatrix/expression/mixins/determinantexprmixin.py
@@ -1,4 +1,3 @@
-
import abc
import collections
import dataclasses
@@ -13,8 +12,7 @@ from polymatrix.expressionstate.abc import ExpressionState
class DeterminantExprMixin(ExpressionBaseMixin):
@property
@abc.abstractmethod
- def underlying(self) -> ExpressionBaseMixin:
- ...
+ def underlying(self) -> ExpressionBaseMixin: ...
# # overwrites the abstract method of `ExpressionBaseMixin`
# @property
@@ -23,7 +21,7 @@ class DeterminantExprMixin(ExpressionBaseMixin):
# overwrites the abstract method of `ExpressionBaseMixin`
def apply(
- self,
+ self,
state: ExpressionState,
) -> tuple[ExpressionState, PolyMatrix]:
# raise Exception('not implemented')
@@ -42,7 +40,6 @@ class DeterminantExprMixin(ExpressionBaseMixin):
rel_index = 0
for row in range(underlying.shape[0]):
-
polynomial = collections.defaultdict(float)
# f in f-v^T@x-r^2
@@ -54,9 +51,8 @@ class DeterminantExprMixin(ExpressionBaseMixin):
else:
for monomial, value in underlying_poly.items():
polynomial[monomial] += value
-
- for inner_row in range(row):
+ for inner_row in range(row):
# -v^T@x in f-v^T@x-r^2
# terms = underlying.get_poly(row, inner_row)
try:
@@ -74,7 +70,6 @@ class DeterminantExprMixin(ExpressionBaseMixin):
auxillary_polynomial = collections.defaultdict(float)
for inner_col in range(row):
-
# P@x in P@x-v
key = tuple(reversed(sorted((inner_row, inner_col))))
try:
@@ -83,9 +78,11 @@ class DeterminantExprMixin(ExpressionBaseMixin):
pass
else:
for monomial, value in underlying_poly.items():
- new_monomial = monomial + (index_start + rel_index + inner_col,)
+ new_monomial = monomial + (
+ index_start + rel_index + inner_col,
+ )
auxillary_polynomial[new_monomial] += value
-
+
# -v in P@x-v
try:
underlying_poly = underlying.get_poly(row, inner_row)
@@ -110,9 +107,9 @@ class DeterminantExprMixin(ExpressionBaseMixin):
)
state = dataclasses.replace(
- state,
+ state,
auxillary_equations=state.auxillary_equations | auxillary_equations,
cache=state.cache | {self: poly_matrix},
)
- return state, poly_matrix
+ return state, poly_matrix