summaryrefslogtreecommitdiffstats
path: root/polymatrix/expression/init
diff options
context:
space:
mode:
Diffstat (limited to 'polymatrix/expression/init')
-rw-r--r--polymatrix/expression/init/initcombinationsexpr.py12
-rw-r--r--polymatrix/expression/init/initevalexpr.py2
-rw-r--r--polymatrix/expression/init/initeyeexpr.py10
-rw-r--r--polymatrix/expression/init/initgetitemexpr.py14
-rw-r--r--polymatrix/expression/init/initlinearin2expr.py12
-rw-r--r--polymatrix/expression/init/initpolymatrix.py4
-rw-r--r--polymatrix/expression/init/initsqueezeexpr.py10
-rw-r--r--polymatrix/expression/init/initsumexpr.py10
-rw-r--r--polymatrix/expression/init/initsymmetricexpr.py10
-rw-r--r--polymatrix/expression/init/inittoconstantexpr.py10
10 files changed, 87 insertions, 7 deletions
diff --git a/polymatrix/expression/init/initcombinationsexpr.py b/polymatrix/expression/init/initcombinationsexpr.py
new file mode 100644
index 0000000..7a1df2f
--- /dev/null
+++ b/polymatrix/expression/init/initcombinationsexpr.py
@@ -0,0 +1,12 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.combinationsexprimpl import CombinationsExprImpl
+
+
+def init_combinations_expr(
+ underlying: ExpressionBaseMixin,
+ number: int,
+):
+ return CombinationsExprImpl(
+ underlying=underlying,
+ number=number,
+)
diff --git a/polymatrix/expression/init/initevalexpr.py b/polymatrix/expression/init/initevalexpr.py
index 525a697..49bb0a3 100644
--- a/polymatrix/expression/init/initevalexpr.py
+++ b/polymatrix/expression/init/initevalexpr.py
@@ -15,7 +15,7 @@ def init_eval_expr(
variables, values = tuple(zip(*variables))
elif isinstance(values, np.ndarray):
- values = tuple(values)
+ values = tuple(values.reshape(-1))
elif not isinstance(values, tuple):
values = (values,)
diff --git a/polymatrix/expression/init/initeyeexpr.py b/polymatrix/expression/init/initeyeexpr.py
new file mode 100644
index 0000000..e691b03
--- /dev/null
+++ b/polymatrix/expression/init/initeyeexpr.py
@@ -0,0 +1,10 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.eyeexprimpl import EyeExprImpl
+
+
+def init_eye_expr(
+ variable: ExpressionBaseMixin,
+):
+ return EyeExprImpl(
+ variable=variable,
+)
diff --git a/polymatrix/expression/init/initgetitemexpr.py b/polymatrix/expression/init/initgetitemexpr.py
index 140fa3a..5fea7a5 100644
--- a/polymatrix/expression/init/initgetitemexpr.py
+++ b/polymatrix/expression/init/initgetitemexpr.py
@@ -1,12 +1,22 @@
+from numpy import isin
from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
from polymatrix.expression.impl.getitemexprimpl import GetItemExprImpl
def init_get_item_expr(
underlying: ExpressionBaseMixin,
- index: tuple,
+ index: tuple[tuple[int, ...], tuple[int, ...]],
):
+
+ def get_hashable_slice(index):
+ if isinstance(index, slice):
+ return 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(
underlying=underlying,
- index=index,
+ index=proper_index,
)
diff --git a/polymatrix/expression/init/initlinearin2expr.py b/polymatrix/expression/init/initlinearin2expr.py
new file mode 100644
index 0000000..7225510
--- /dev/null
+++ b/polymatrix/expression/init/initlinearin2expr.py
@@ -0,0 +1,12 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.linearin2exprimpl import LinearIn2ExprImpl
+
+
+def init_linear_in2_expr(
+ underlying: ExpressionBaseMixin,
+ expression: ExpressionBaseMixin,
+):
+ return LinearIn2ExprImpl(
+ underlying=underlying,
+ expression=expression,
+)
diff --git a/polymatrix/expression/init/initpolymatrix.py b/polymatrix/expression/init/initpolymatrix.py
index e6a6cde..d0c9577 100644
--- a/polymatrix/expression/init/initpolymatrix.py
+++ b/polymatrix/expression/init/initpolymatrix.py
@@ -4,13 +4,9 @@ from polymatrix.expression.impl.polymatriximpl import PolyMatrixImpl
def init_poly_matrix(
terms: dict,
shape: tuple,
- aux_terms: tuple[dict[tuple[int, ...], float]] = None,
):
- if aux_terms is None:
- aux_terms = tuple()
return PolyMatrixImpl(
terms=terms,
shape=shape,
- # aux_terms=aux_terms,
)
diff --git a/polymatrix/expression/init/initsqueezeexpr.py b/polymatrix/expression/init/initsqueezeexpr.py
new file mode 100644
index 0000000..d71a9b5
--- /dev/null
+++ b/polymatrix/expression/init/initsqueezeexpr.py
@@ -0,0 +1,10 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.squeezeexprimpl import SqueezeExprImpl
+
+
+def init_squeeze_expr(
+ underlying: ExpressionBaseMixin,
+):
+ return SqueezeExprImpl(
+ underlying=underlying,
+)
diff --git a/polymatrix/expression/init/initsumexpr.py b/polymatrix/expression/init/initsumexpr.py
new file mode 100644
index 0000000..606d86b
--- /dev/null
+++ b/polymatrix/expression/init/initsumexpr.py
@@ -0,0 +1,10 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.sumexprimpl import SumExprImpl
+
+
+def init_sum_expr(
+ underlying: ExpressionBaseMixin,
+):
+ return SumExprImpl(
+ underlying=underlying,
+)
diff --git a/polymatrix/expression/init/initsymmetricexpr.py b/polymatrix/expression/init/initsymmetricexpr.py
new file mode 100644
index 0000000..87be3ed
--- /dev/null
+++ b/polymatrix/expression/init/initsymmetricexpr.py
@@ -0,0 +1,10 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.symmetricexprimpl import SymmetricExprImpl
+
+
+def init_symmetric_expr(
+ underlying: ExpressionBaseMixin,
+):
+ return SymmetricExprImpl(
+ underlying=underlying,
+)
diff --git a/polymatrix/expression/init/inittoconstantexpr.py b/polymatrix/expression/init/inittoconstantexpr.py
new file mode 100644
index 0000000..ead35f8
--- /dev/null
+++ b/polymatrix/expression/init/inittoconstantexpr.py
@@ -0,0 +1,10 @@
+from polymatrix.expression.mixins.expressionbasemixin import ExpressionBaseMixin
+from polymatrix.expression.impl.toconstantexprimpl import ToConstantExprImpl
+
+
+def init_to_constant_expr(
+ underlying: ExpressionBaseMixin,
+):
+ return ToConstantExprImpl(
+ underlying=underlying,
+)