diff options
Diffstat (limited to 'polymatrix/expression/init')
-rw-r--r-- | polymatrix/expression/init/initcombinationsexpr.py | 12 | ||||
-rw-r--r-- | polymatrix/expression/init/initevalexpr.py | 2 | ||||
-rw-r--r-- | polymatrix/expression/init/initeyeexpr.py | 10 | ||||
-rw-r--r-- | polymatrix/expression/init/initgetitemexpr.py | 14 | ||||
-rw-r--r-- | polymatrix/expression/init/initlinearin2expr.py | 12 | ||||
-rw-r--r-- | polymatrix/expression/init/initpolymatrix.py | 4 | ||||
-rw-r--r-- | polymatrix/expression/init/initsqueezeexpr.py | 10 | ||||
-rw-r--r-- | polymatrix/expression/init/initsumexpr.py | 10 | ||||
-rw-r--r-- | polymatrix/expression/init/initsymmetricexpr.py | 10 | ||||
-rw-r--r-- | polymatrix/expression/init/inittoconstantexpr.py | 10 |
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, +) |