summaryrefslogtreecommitdiffstats
path: root/polymatrix/expression/init
diff options
context:
space:
mode:
Diffstat (limited to 'polymatrix/expression/init')
-rw-r--r--polymatrix/expression/init/initadditionexpr.py4
-rw-r--r--polymatrix/expression/init/initblockdiagexpr.py6
-rw-r--r--polymatrix/expression/init/initcacheexpr.py4
-rw-r--r--polymatrix/expression/init/initcombinationsexpr.py4
-rw-r--r--polymatrix/expression/init/initderivativeexpr.py4
-rw-r--r--polymatrix/expression/init/initdeterminantexpr.py4
-rw-r--r--polymatrix/expression/init/initdiagexpr.py4
-rw-r--r--polymatrix/expression/init/initdivergenceexpr.py4
-rw-r--r--polymatrix/expression/init/initdivisionexpr.py4
-rw-r--r--polymatrix/expression/init/initelemmultexpr.py4
-rw-r--r--polymatrix/expression/init/initevalexpr.py4
-rw-r--r--polymatrix/expression/init/initexpression.py2
-rw-r--r--polymatrix/expression/init/initeyeexpr.py4
-rw-r--r--polymatrix/expression/init/initfilterexpr.py4
-rw-r--r--polymatrix/expression/init/initfromsymmetricmatrixexpr.py4
-rw-r--r--polymatrix/expression/init/initfromsympyexpr.py37
-rw-r--r--polymatrix/expression/init/initfromtermsexpr.py4
-rw-r--r--polymatrix/expression/init/initgetitemexpr.py6
-rw-r--r--polymatrix/expression/init/inithalfnewtonpolytopeexpr.py4
-rw-r--r--polymatrix/expression/init/initlinearinexpr.py4
-rw-r--r--polymatrix/expression/init/initlinearmatrixinexpr.py4
-rw-r--r--polymatrix/expression/init/initlinearmonomialsexpr.py4
-rw-r--r--polymatrix/expression/init/initmatrixmultexpr.py4
-rw-r--r--polymatrix/expression/init/initmaxdegreeexpr.py4
-rw-r--r--polymatrix/expression/init/initmaxexpr.py4
-rw-r--r--polymatrix/expression/init/initparametrizeexpr.py4
-rw-r--r--polymatrix/expression/init/initparametrizematrixexpr.py12
-rw-r--r--polymatrix/expression/init/initquadraticinexpr.py4
-rw-r--r--polymatrix/expression/init/initquadraticmonomialsexpr.py4
-rw-r--r--polymatrix/expression/init/initrepmatexpr.py4
-rw-r--r--polymatrix/expression/init/initreshapeexpr.py2
-rw-r--r--polymatrix/expression/init/initsetelementatexpr.py4
-rw-r--r--polymatrix/expression/init/initsqueezeexpr.py4
-rw-r--r--polymatrix/expression/init/initsubstituteexpr.py7
-rw-r--r--polymatrix/expression/init/initsubtractmonomialsexpr.py4
-rw-r--r--polymatrix/expression/init/initsumexpr.py4
-rw-r--r--polymatrix/expression/init/initsymmetricexpr.py4
-rw-r--r--polymatrix/expression/init/inittoconstantexpr.py4
-rw-r--r--polymatrix/expression/init/inittoquadraticexpr.py4
-rw-r--r--polymatrix/expression/init/inittosortedvariables.py4
-rw-r--r--polymatrix/expression/init/inittosymmetricmatrixexpr.py4
-rw-r--r--polymatrix/expression/init/inittransposeexpr.py4
-rw-r--r--polymatrix/expression/init/inittruncateexpr.py4
-rw-r--r--polymatrix/expression/init/initvstackexpr.py4
44 files changed, 121 insertions, 99 deletions
diff --git a/polymatrix/expression/init/initadditionexpr.py b/polymatrix/expression/init/initadditionexpr.py
index e5b31c8..cdc97b1 100644
--- a/polymatrix/expression/init/initadditionexpr.py
+++ b/polymatrix/expression/init/initadditionexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.additionexprimpl import AdditionExprImpl
+import polymatrix.expression.impl.impl
def init_addition_expr(
left: ExpressionBaseMixin,
right: ExpressionBaseMixin,
):
- return AdditionExprImpl(
+ return polymatrix.expression.impl.impl.AdditionExprImpl(
left=left,
right=right,
)
diff --git a/polymatrix/expression/init/initblockdiagexpr.py b/polymatrix/expression/init/initblockdiagexpr.py
index 930385f..a9ad8a6 100644
--- a/polymatrix/expression/init/initblockdiagexpr.py
+++ b/polymatrix/expression/init/initblockdiagexpr.py
@@ -1,9 +1,7 @@
-from polymatrix.expression.impl.blockdiagexprimpl import BlockDiagExprImpl
-
-
+import polymatrix.expression.impl.impl
def init_block_diag_expr(
underlying: tuple,
):
- return BlockDiagExprImpl(
+ return polymatrix.expression.impl.impl.BlockDiagExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initcacheexpr.py b/polymatrix/expression/init/initcacheexpr.py
index 977e033..861ffa1 100644
--- a/polymatrix/expression/init/initcacheexpr.py
+++ b/polymatrix/expression/init/initcacheexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.cacheexprimpl import CacheExprImpl
+import polymatrix.expression.impl.impl
def init_cache_expr(
underlying: ExpressionBaseMixin,
):
- return CacheExprImpl(
+ return polymatrix.expression.impl.impl.CacheExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initcombinationsexpr.py b/polymatrix/expression/init/initcombinationsexpr.py
index 80bf4d0..10931e6 100644
--- a/polymatrix/expression/init/initcombinationsexpr.py
+++ b/polymatrix/expression/init/initcombinationsexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.combinationsexprimpl import CombinationsExprImpl
+import polymatrix.expression.impl.impl
def init_combinations_expr(
monomials: ExpressionBaseMixin,
number: int,
):
- return CombinationsExprImpl(
+ return polymatrix.expression.impl.impl.CombinationsExprImpl(
monomials=monomials,
number=number,
)
diff --git a/polymatrix/expression/init/initderivativeexpr.py b/polymatrix/expression/init/initderivativeexpr.py
index a6ca06c..b1c9405 100644
--- a/polymatrix/expression/init/initderivativeexpr.py
+++ b/polymatrix/expression/init/initderivativeexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.derivativeexprimpl import DerivativeExprImpl
+import polymatrix.expression.impl.impl
def init_derivative_expr(
@@ -13,7 +13,7 @@ def init_derivative_expr(
if introduce_derivatives is None:
introduce_derivatives = False
- return DerivativeExprImpl(
+ return polymatrix.expression.impl.impl.DerivativeExprImpl(
underlying=underlying,
variables=variables,
introduce_derivatives=introduce_derivatives,
diff --git a/polymatrix/expression/init/initdeterminantexpr.py b/polymatrix/expression/init/initdeterminantexpr.py
index f0d1bb5..660f3ae 100644
--- a/polymatrix/expression/init/initdeterminantexpr.py
+++ b/polymatrix/expression/init/initdeterminantexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.determinantexprimpl import DeterminantExprImpl
+import polymatrix.expression.impl.impl
def init_determinant_expr(
underlying: ExpressionBaseMixin,
):
- return DeterminantExprImpl(
+ return polymatrix.expression.impl.impl.DeterminantExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initdiagexpr.py b/polymatrix/expression/init/initdiagexpr.py
index db9b6d4..794c5bf 100644
--- a/polymatrix/expression/init/initdiagexpr.py
+++ b/polymatrix/expression/init/initdiagexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.diagexprimpl import DiagExprImpl
+import polymatrix.expression.impl.impl
def init_diag_expr(
underlying: ExpressionBaseMixin,
):
- return DiagExprImpl(
+ return polymatrix.expression.impl.impl.DiagExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initdivergenceexpr.py b/polymatrix/expression/init/initdivergenceexpr.py
index d1aa02c..6f5d99d 100644
--- a/polymatrix/expression/init/initdivergenceexpr.py
+++ b/polymatrix/expression/init/initdivergenceexpr.py
@@ -1,13 +1,13 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
from typing import Union
-from polymatrix.expression.impl.divergenceexprimpl import DivergenceExprImpl
+import polymatrix.expression.impl.impl
def init_divergence_expr(
underlying: ExpressionBaseMixin,
variables: tuple,
):
- return DivergenceExprImpl(
+ return polymatrix.expression.impl.impl.DivergenceExprImpl(
underlying=underlying,
variables=variables,
)
diff --git a/polymatrix/expression/init/initdivisionexpr.py b/polymatrix/expression/init/initdivisionexpr.py
index 2a701a9..d7870bc 100644
--- a/polymatrix/expression/init/initdivisionexpr.py
+++ b/polymatrix/expression/init/initdivisionexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.divisionexprimpl import DivisionExprImpl
+import polymatrix.expression.impl.impl
def init_division_expr(
left: ExpressionBaseMixin,
right: ExpressionBaseMixin,
):
- return DivisionExprImpl(
+ return polymatrix.expression.impl.impl.DivisionExprImpl(
left=left,
right=right,
)
diff --git a/polymatrix/expression/init/initelemmultexpr.py b/polymatrix/expression/init/initelemmultexpr.py
index ae0e85f..ef66c68 100644
--- a/polymatrix/expression/init/initelemmultexpr.py
+++ b/polymatrix/expression/init/initelemmultexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.elemmultexprimpl import ElemMultExprImpl
+import polymatrix.expression.impl.impl
def init_elem_mult_expr(
left: ExpressionBaseMixin,
right: ExpressionBaseMixin,
):
- return ElemMultExprImpl(
+ return polymatrix.expression.impl.impl.ElemMultExprImpl(
left=left,
right=right,
)
diff --git a/polymatrix/expression/init/initevalexpr.py b/polymatrix/expression/init/initevalexpr.py
index 0fad8e5..c59a8d5 100644
--- a/polymatrix/expression/init/initevalexpr.py
+++ b/polymatrix/expression/init/initevalexpr.py
@@ -2,7 +2,7 @@ import typing
import numpy as np
from polymatrix.expression.init.initsubstituteexpr import format_substitutions
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.evalexprimpl import EvalExprImpl
+import polymatrix.expression.impl.impl
def init_eval_expr(
@@ -31,7 +31,7 @@ def init_eval_expr(
substitutions = tuple((variable, formatted_values(value)) for variable, value in substitutions)
- return EvalExprImpl(
+ return polymatrix.expression.impl.impl.EvalExprImpl(
underlying=underlying,
substitutions=substitutions,
)
diff --git a/polymatrix/expression/init/initexpression.py b/polymatrix/expression/init/initexpression.py
index 7262e47..3c3258c 100644
--- a/polymatrix/expression/init/initexpression.py
+++ b/polymatrix/expression/init/initexpression.py
@@ -1,5 +1,5 @@
+from polymatrix.expression.expression import ExpressionImpl
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.expressionimpl import ExpressionImpl
def init_expression(
diff --git a/polymatrix/expression/init/initeyeexpr.py b/polymatrix/expression/init/initeyeexpr.py
index e691b03..642e4c6 100644
--- a/polymatrix/expression/init/initeyeexpr.py
+++ b/polymatrix/expression/init/initeyeexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.eyeexprimpl import EyeExprImpl
+import polymatrix.expression.impl.impl
def init_eye_expr(
variable: ExpressionBaseMixin,
):
- return EyeExprImpl(
+ return polymatrix.expression.impl.impl.EyeExprImpl(
variable=variable,
)
diff --git a/polymatrix/expression/init/initfilterexpr.py b/polymatrix/expression/init/initfilterexpr.py
index c47036f..7164183 100644
--- a/polymatrix/expression/init/initfilterexpr.py
+++ b/polymatrix/expression/init/initfilterexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.filterexprimpl import FilterExprImpl
+import polymatrix.expression.impl.impl
def init_filter_expr(
@@ -10,7 +10,7 @@ def init_filter_expr(
if inverse is None:
inverse = False
- return FilterExprImpl(
+ return polymatrix.expression.impl.impl.FilterExprImpl(
underlying=underlying,
predicator=predicator,
inverse=inverse,
diff --git a/polymatrix/expression/init/initfromsymmetricmatrixexpr.py b/polymatrix/expression/init/initfromsymmetricmatrixexpr.py
index 3af7dc3..b3ef782 100644
--- a/polymatrix/expression/init/initfromsymmetricmatrixexpr.py
+++ b/polymatrix/expression/init/initfromsymmetricmatrixexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.fromsymmetricmatrixexprimpl import FromSymmetricMatrixExprImpl
+import polymatrix.expression.impl.impl
def init_from_symmetric_matrix_expr(
underlying: ExpressionBaseMixin,
):
- return FromSymmetricMatrixExprImpl(
+ return polymatrix.expression.impl.impl.FromSymmetricMatrixExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initfromsympyexpr.py b/polymatrix/expression/init/initfromsympyexpr.py
index 2ab6ded..4ca6fcf 100644
--- a/polymatrix/expression/init/initfromsympyexpr.py
+++ b/polymatrix/expression/init/initfromsympyexpr.py
@@ -2,14 +2,13 @@ import typing
import numpy as np
import sympy
-from polymatrix.expression.impl.fromsympyexprimpl import FromSympyExprImpl
+from polymatrix.expression.impl.impl import FromSympyExprImpl
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-def init_from_sympy_expr(
- data: typing.Union[np.ndarray, tuple[tuple[float]]],
-):
-
+def init_from_expr_or_none(
+ data: typing.Union[np.ndarray, tuple[tuple[float]]],
+) -> ExpressionBaseMixin | None:
match data:
case np.ndarray():
assert len(data.shape) <= 2
@@ -37,21 +36,33 @@ def init_from_sympy_expr(
case _:
data = tuple((e,) for e in data)
- case np.number:
- data = ((float(data),),)
+ case sympy.Expr():
+ data = ((sympy.expand(data),),)
case ExpressionBaseMixin():
return data
- case sympy.Expr():
- data = ((sympy.expand(data),),)
-
case _:
- if not isinstance(data, (float, int)):
- raise Exception(f'{data=}, {type(data)=}')
+ if not isinstance(data, (float, int, np.number)):
+ # raise Exception(f'{data=}, {type(data)=}')
+ return None
data = ((data,),)
return FromSympyExprImpl(
- data=data,
+ data=data,
)
+
+
+def init_from_sympy_expr(
+ data: typing.Union[np.ndarray, tuple[tuple[float]]],
+):
+ # if isinstance(data, ExpressionBaseMixin):
+ # return data
+
+ expr = init_from_expr_or_none(data)
+
+ if expr is None:
+ raise Exception(f'{data=}')
+
+ return expr
diff --git a/polymatrix/expression/init/initfromtermsexpr.py b/polymatrix/expression/init/initfromtermsexpr.py
index c2080c6..b2c1dc3 100644
--- a/polymatrix/expression/init/initfromtermsexpr.py
+++ b/polymatrix/expression/init/initfromtermsexpr.py
@@ -1,6 +1,6 @@
import typing
-from polymatrix.expression.impl.fromtermsexprimpl import FromTermsExprImpl
from polymatrix.polymatrix.mixins.polymatrixmixin import PolyMatrixMixin
+import polymatrix.expression.impl.impl
def init_from_terms_expr(
@@ -27,7 +27,7 @@ def init_from_terms_expr(
# Expression needs to be hashable
terms_formatted = tuple((key, tuple(monomials.items())) for key, monomials in gen_terms)
- return FromTermsExprImpl(
+ return polymatrix.expression.impl.impl.FromTermsExprImpl(
terms=terms_formatted,
shape=shape,
)
diff --git a/polymatrix/expression/init/initgetitemexpr.py b/polymatrix/expression/init/initgetitemexpr.py
index 5fea7a5..f7fc0c9 100644
--- a/polymatrix/expression/init/initgetitemexpr.py
+++ b/polymatrix/expression/init/initgetitemexpr.py
@@ -1,6 +1,6 @@
from numpy import isin
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.getitemexprimpl import GetItemExprImpl
+import polymatrix.expression.impl.impl
def init_get_item_expr(
@@ -10,13 +10,13 @@ def init_get_item_expr(
def get_hashable_slice(index):
if isinstance(index, slice):
- return GetItemExprImpl.Slice(start=index.start, stop=index.stop, step=index.step)
+ return polymatrix.expression.impl.impl.GetItemExprImpl.Slice(start=index.start, stop=index.stop, step=index.step)
else:
return index
proper_index = (get_hashable_slice(index[0]), get_hashable_slice(index[1]))
- return GetItemExprImpl(
+ return polymatrix.expression.impl.impl.GetItemExprImpl(
underlying=underlying,
index=proper_index,
)
diff --git a/polymatrix/expression/init/inithalfnewtonpolytopeexpr.py b/polymatrix/expression/init/inithalfnewtonpolytopeexpr.py
index e4ab6a2..794c938 100644
--- a/polymatrix/expression/init/inithalfnewtonpolytopeexpr.py
+++ b/polymatrix/expression/init/inithalfnewtonpolytopeexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.halfnewtonpolytopeexprimpl import HalfNewtonPolytopeExprImpl
+import polymatrix.expression.impl.impl
def init_half_newton_polytope_expr(
@@ -7,7 +7,7 @@ def init_half_newton_polytope_expr(
variables: ExpressionBaseMixin,
filter: ExpressionBaseMixin | None = None,
):
- return HalfNewtonPolytopeExprImpl(
+ return polymatrix.expression.impl.impl.HalfNewtonPolytopeExprImpl(
monomials=monomials,
variables=variables,
filter=filter
diff --git a/polymatrix/expression/init/initlinearinexpr.py b/polymatrix/expression/init/initlinearinexpr.py
index b869aee..30705e2 100644
--- a/polymatrix/expression/init/initlinearinexpr.py
+++ b/polymatrix/expression/init/initlinearinexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.linearinexprimpl import LinearInExprImpl
+import polymatrix.expression.impl.impl
def init_linear_in_expr(
@@ -10,7 +10,7 @@ def init_linear_in_expr(
):
assert isinstance(variables, ExpressionBaseMixin), f'{variables=}'
- return LinearInExprImpl(
+ return polymatrix.expression.impl.impl.LinearInExprImpl(
underlying=underlying,
monomials=monomials,
variables=variables,
diff --git a/polymatrix/expression/init/initlinearmatrixinexpr.py b/polymatrix/expression/init/initlinearmatrixinexpr.py
index cd4ce97..83e9aea 100644
--- a/polymatrix/expression/init/initlinearmatrixinexpr.py
+++ b/polymatrix/expression/init/initlinearmatrixinexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.linearmatrixinexprimpl import LinearMatrixInExprImpl
+import polymatrix.expression.impl.impl
def init_linear_matrix_in_expr(
underlying: ExpressionBaseMixin,
variable: int,
):
- return LinearMatrixInExprImpl(
+ return polymatrix.expression.impl.impl.LinearMatrixInExprImpl(
underlying=underlying,
variable=variable,
)
diff --git a/polymatrix/expression/init/initlinearmonomialsexpr.py b/polymatrix/expression/init/initlinearmonomialsexpr.py
index 8083715..f830542 100644
--- a/polymatrix/expression/init/initlinearmonomialsexpr.py
+++ b/polymatrix/expression/init/initlinearmonomialsexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.linearmonomialsexprimpl import LinearMonomialsExprImpl
+import polymatrix.expression.impl.impl
def init_linear_monomials_expr(
@@ -9,7 +9,7 @@ def init_linear_monomials_expr(
assert isinstance(variables, ExpressionBaseMixin), f'{variables=}'
- return LinearMonomialsExprImpl(
+ return polymatrix.expression.impl.impl.LinearMonomialsExprImpl(
underlying=underlying,
variables=variables,
)
diff --git a/polymatrix/expression/init/initmatrixmultexpr.py b/polymatrix/expression/init/initmatrixmultexpr.py
index 9081368..20bffec 100644
--- a/polymatrix/expression/init/initmatrixmultexpr.py
+++ b/polymatrix/expression/init/initmatrixmultexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.matrixmultexprimpl import MatrixMultExprImpl
+import polymatrix.expression.impl.impl
def init_matrix_mult_expr(
left: ExpressionBaseMixin,
right: ExpressionBaseMixin,
):
- return MatrixMultExprImpl(
+ return polymatrix.expression.impl.impl.MatrixMultExprImpl(
left=left,
right=right,
)
diff --git a/polymatrix/expression/init/initmaxdegreeexpr.py b/polymatrix/expression/init/initmaxdegreeexpr.py
index 60fc40a..d232163 100644
--- a/polymatrix/expression/init/initmaxdegreeexpr.py
+++ b/polymatrix/expression/init/initmaxdegreeexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.maxdegreeexprimpl import MaxDegreeExprImpl
+import polymatrix.expression.impl.impl
def init_max_degree_expr(
underlying: ExpressionBaseMixin,
):
- return MaxDegreeExprImpl(
+ return polymatrix.expression.impl.impl.MaxDegreeExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initmaxexpr.py b/polymatrix/expression/init/initmaxexpr.py
index b0b1e4d..41dde90 100644
--- a/polymatrix/expression/init/initmaxexpr.py
+++ b/polymatrix/expression/init/initmaxexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.maxexprimpl import MaxExprImpl
+import polymatrix.expression.impl.impl
def init_max_expr(
underlying: ExpressionBaseMixin,
):
- return MaxExprImpl(
+ return polymatrix.expression.impl.impl.MaxExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initparametrizeexpr.py b/polymatrix/expression/init/initparametrizeexpr.py
index c5b77a3..178d963 100644
--- a/polymatrix/expression/init/initparametrizeexpr.py
+++ b/polymatrix/expression/init/initparametrizeexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.parametrizeexprimpl import ParametrizeExprImpl
+import polymatrix.expression.impl.impl
def init_parametrize_expr(
@@ -9,7 +9,7 @@ def init_parametrize_expr(
if name is None:
name = 'undefined'
- return ParametrizeExprImpl(
+ return polymatrix.expression.impl.impl.ParametrizeExprImpl(
underlying=underlying,
name=name,
)
diff --git a/polymatrix/expression/init/initparametrizematrixexpr.py b/polymatrix/expression/init/initparametrizematrixexpr.py
new file mode 100644
index 0000000..bf90510
--- /dev/null
+++ b/polymatrix/expression/init/initparametrizematrixexpr.py
@@ -0,0 +1,12 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+import polymatrix.expression.impl.impl
+
+
+def init_parametrize_matrix_expr(
+ underlying: ExpressionBaseMixin,
+ name: str,
+):
+ return polymatrix.expression.impl.impl.ParametrizeMatrixExprImpl(
+ underlying=underlying,
+ name=name,
+)
diff --git a/polymatrix/expression/init/initquadraticinexpr.py b/polymatrix/expression/init/initquadraticinexpr.py
index 6555b4b..9569cd3 100644
--- a/polymatrix/expression/init/initquadraticinexpr.py
+++ b/polymatrix/expression/init/initquadraticinexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.quadraticinexprimpl import QuadraticInExprImpl
+import polymatrix.expression.impl.impl
def init_quadratic_in_expr(
@@ -10,7 +10,7 @@ def init_quadratic_in_expr(
assert isinstance(variables, ExpressionBaseMixin), f'{variables=}'
- return QuadraticInExprImpl(
+ return polymatrix.expression.impl.impl.QuadraticInExprImpl(
underlying=underlying,
monomials=monomials,
variables=variables,
diff --git a/polymatrix/expression/init/initquadraticmonomialsexpr.py b/polymatrix/expression/init/initquadraticmonomialsexpr.py
index 190f7df..c965312 100644
--- a/polymatrix/expression/init/initquadraticmonomialsexpr.py
+++ b/polymatrix/expression/init/initquadraticmonomialsexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.quadraticmonomialsexprimpl import QuadraticMonomialsExprImpl
+import polymatrix.expression.impl.impl
def init_quadratic_monomials_expr(
@@ -9,7 +9,7 @@ def init_quadratic_monomials_expr(
assert isinstance(variables, ExpressionBaseMixin), f'{variables=}'
- return QuadraticMonomialsExprImpl(
+ return polymatrix.expression.impl.impl.QuadraticMonomialsExprImpl(
underlying=underlying,
variables=variables,
)
diff --git a/polymatrix/expression/init/initrepmatexpr.py b/polymatrix/expression/init/initrepmatexpr.py
index 2f7fb7c..152fff8 100644
--- a/polymatrix/expression/init/initrepmatexpr.py
+++ b/polymatrix/expression/init/initrepmatexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.repmatexprimpl import RepMatExprImpl
+import polymatrix.expression.impl.impl
def init_rep_mat_expr(
underlying: ExpressionBaseMixin,
repetition: tuple,
):
- return RepMatExprImpl(
+ return polymatrix.expression.impl.impl.RepMatExprImpl(
underlying=underlying,
repetition=repetition,
)
diff --git a/polymatrix/expression/init/initreshapeexpr.py b/polymatrix/expression/init/initreshapeexpr.py
index f95fb00..4e6ab57 100644
--- a/polymatrix/expression/init/initreshapeexpr.py
+++ b/polymatrix/expression/init/initreshapeexpr.py
@@ -1,5 +1,5 @@
+from polymatrix.expression.impl.reshapeexprmixin import ReshapeExprImpl
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.reshapeexprimpl import ReshapeExprImpl
def init_reshape_expr(
diff --git a/polymatrix/expression/init/initsetelementatexpr.py b/polymatrix/expression/init/initsetelementatexpr.py
index 86df5aa..250c35b 100644
--- a/polymatrix/expression/init/initsetelementatexpr.py
+++ b/polymatrix/expression/init/initsetelementatexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.setelementatexprimpl import SetElementAtExprImpl
+import polymatrix.expression.impl.impl
def init_set_element_at_expr(
@@ -7,7 +7,7 @@ def init_set_element_at_expr(
index: tuple,
value: ExpressionBaseMixin,
):
- return SetElementAtExprImpl(
+ return polymatrix.expression.impl.impl.SetElementAtExprImpl(
underlying=underlying,
index=index,
value=value,
diff --git a/polymatrix/expression/init/initsqueezeexpr.py b/polymatrix/expression/init/initsqueezeexpr.py
index d71a9b5..d539453 100644
--- a/polymatrix/expression/init/initsqueezeexpr.py
+++ b/polymatrix/expression/init/initsqueezeexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.squeezeexprimpl import SqueezeExprImpl
+import polymatrix.expression.impl.impl
def init_squeeze_expr(
underlying: ExpressionBaseMixin,
):
- return SqueezeExprImpl(
+ return polymatrix.expression.impl.impl.SqueezeExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initsubstituteexpr.py b/polymatrix/expression/init/initsubstituteexpr.py
index 50cbee0..15a6566 100644
--- a/polymatrix/expression/init/initsubstituteexpr.py
+++ b/polymatrix/expression/init/initsubstituteexpr.py
@@ -3,12 +3,12 @@ import numpy as np
from polymatrix.expression.init.initfromsympyexpr import init_from_sympy_expr
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.substituteexprimpl import SubstituteExprImpl
+import polymatrix.expression.impl.impl
def format_substitutions(
variables: typing.Union[typing.Any, tuple, dict],
- values: typing.Union[float, tuple] = None,
+ values: float | tuple = None,
):
"""
(variables = x, values = 1.0) # ok
@@ -63,12 +63,13 @@ def init_substitute_expr(
def formatted_values(value) -> ExpressionBaseMixin:
if isinstance(value, ExpressionBaseMixin):
return value
+
else:
return init_from_sympy_expr(value)
substitutions = tuple((variable, formatted_values(value)) for variable, value in substitutions)
- return SubstituteExprImpl(
+ return polymatrix.expression.impl.impl.SubstituteExprImpl(
underlying=underlying,
substitutions=substitutions,
)
diff --git a/polymatrix/expression/init/initsubtractmonomialsexpr.py b/polymatrix/expression/init/initsubtractmonomialsexpr.py
index 131401b..de720bd 100644
--- a/polymatrix/expression/init/initsubtractmonomialsexpr.py
+++ b/polymatrix/expression/init/initsubtractmonomialsexpr.py
@@ -1,12 +1,12 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.subtractmonomialsexprimpl import SubtractMonomialsExprImpl
+import polymatrix.expression.impl.impl
def init_subtract_monomials_expr(
underlying: ExpressionBaseMixin,
monomials: ExpressionBaseMixin,
):
- return SubtractMonomialsExprImpl(
+ return polymatrix.expression.impl.impl.SubtractMonomialsExprImpl(
underlying=underlying,
monomials=monomials,
)
diff --git a/polymatrix/expression/init/initsumexpr.py b/polymatrix/expression/init/initsumexpr.py
index 606d86b..288ae72 100644
--- a/polymatrix/expression/init/initsumexpr.py
+++ b/polymatrix/expression/init/initsumexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.sumexprimpl import SumExprImpl
+import polymatrix.expression.impl.impl
def init_sum_expr(
underlying: ExpressionBaseMixin,
):
- return SumExprImpl(
+ return polymatrix.expression.impl.impl.SumExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/initsymmetricexpr.py b/polymatrix/expression/init/initsymmetricexpr.py
index 87be3ed..dc321e5 100644
--- a/polymatrix/expression/init/initsymmetricexpr.py
+++ b/polymatrix/expression/init/initsymmetricexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.symmetricexprimpl import SymmetricExprImpl
+import polymatrix.expression.impl.impl
def init_symmetric_expr(
underlying: ExpressionBaseMixin,
):
- return SymmetricExprImpl(
+ return polymatrix.expression.impl.impl.SymmetricExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/inittoconstantexpr.py b/polymatrix/expression/init/inittoconstantexpr.py
index ead35f8..a0084a1 100644
--- a/polymatrix/expression/init/inittoconstantexpr.py
+++ b/polymatrix/expression/init/inittoconstantexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.toconstantexprimpl import ToConstantExprImpl
+import polymatrix.expression.impl.impl
def init_to_constant_expr(
underlying: ExpressionBaseMixin,
):
- return ToConstantExprImpl(
+ return polymatrix.expression.impl.impl.ToConstantExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/inittoquadraticexpr.py b/polymatrix/expression/init/inittoquadraticexpr.py
index dfc0567..77e6943 100644
--- a/polymatrix/expression/init/inittoquadraticexpr.py
+++ b/polymatrix/expression/init/inittoquadraticexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.toquadraticexprimpl import ToQuadraticExprImpl
+import polymatrix.expression.impl.impl
def init_to_quadratic_expr(
underlying: ExpressionBaseMixin,
):
- return ToQuadraticExprImpl(
+ return polymatrix.expression.impl.impl.ToQuadraticExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/inittosortedvariables.py b/polymatrix/expression/init/inittosortedvariables.py
index 5d669c9..3f5222a 100644
--- a/polymatrix/expression/init/inittosortedvariables.py
+++ b/polymatrix/expression/init/inittosortedvariables.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.tosortedvariablesimpl import ToSortedVariablesImpl
+import polymatrix.expression.impl.impl
def init_to_sorted_variables(
underlying: ExpressionBaseMixin,
):
- return ToSortedVariablesImpl(
+ return polymatrix.expression.impl.impl.ToSortedVariablesImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/inittosymmetricmatrixexpr.py b/polymatrix/expression/init/inittosymmetricmatrixexpr.py
index 89fc46c..68b27fe 100644
--- a/polymatrix/expression/init/inittosymmetricmatrixexpr.py
+++ b/polymatrix/expression/init/inittosymmetricmatrixexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.tosymmetricmatrixexprimpl import ToSymmetricMatrixExprImpl
+import polymatrix.expression.impl.impl
def init_to_symmetric_matrix_expr(
underlying: ExpressionBaseMixin,
):
- return ToSymmetricMatrixExprImpl(
+ return polymatrix.expression.impl.impl.ToSymmetricMatrixExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/inittransposeexpr.py b/polymatrix/expression/init/inittransposeexpr.py
index 9ca9d91..7807e4d 100644
--- a/polymatrix/expression/init/inittransposeexpr.py
+++ b/polymatrix/expression/init/inittransposeexpr.py
@@ -1,10 +1,10 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.transposeexprimpl import TransposeExprImpl
+import polymatrix.expression.impl.impl
def init_transpose_expr(
underlying: ExpressionBaseMixin,
):
- return TransposeExprImpl(
+ return polymatrix.expression.impl.impl.TransposeExprImpl(
underlying=underlying,
)
diff --git a/polymatrix/expression/init/inittruncateexpr.py b/polymatrix/expression/init/inittruncateexpr.py
index 4582bcb..d36db03 100644
--- a/polymatrix/expression/init/inittruncateexpr.py
+++ b/polymatrix/expression/init/inittruncateexpr.py
@@ -1,5 +1,5 @@
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
-from polymatrix.expression.impl.truncateexprimpl import TruncateExprImpl
+import polymatrix.expression.impl.impl
def init_truncate_expr(
@@ -14,7 +14,7 @@ def init_truncate_expr(
if inverse is None:
inverse = False
- return TruncateExprImpl(
+ return polymatrix.expression.impl.impl.TruncateExprImpl(
underlying=underlying,
variables=variables,
degrees=degrees,
diff --git a/polymatrix/expression/init/initvstackexpr.py b/polymatrix/expression/init/initvstackexpr.py
index 1edc716..3d47979 100644
--- a/polymatrix/expression/init/initvstackexpr.py
+++ b/polymatrix/expression/init/initvstackexpr.py
@@ -1,6 +1,6 @@
-from polymatrix.expression.impl.vstackexprimpl import VStackExprImpl
from polymatrix.expression.init.initfromsympyexpr import init_from_sympy_expr
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+import polymatrix.expression.impl.impl
def init_v_stack_expr(
@@ -15,6 +15,6 @@ def init_v_stack_expr(
else:
yield init_from_sympy_expr(e)
- return VStackExprImpl(
+ return polymatrix.expression.impl.impl.VStackExprImpl(
underlying=tuple(gen_underlying()),
)