diff options
author | Michael Schneeberger <michael.schneeberger@fhnw.ch> | 2024-02-26 10:03:13 +0100 |
---|---|---|
committer | Michael Schneeberger <michael.schneeberger@fhnw.ch> | 2024-02-26 10:03:13 +0100 |
commit | 323ed564cc78cdeef181906d3d78acc739c1e942 (patch) | |
tree | 74c752dd42394a0e166eb6f1feb4e60c4bfd33df /examples/main.py | |
parent | clean ups (diff) | |
download | polymatrix-323ed564cc78cdeef181906d3d78acc739c1e942.tar.gz polymatrix-323ed564cc78cdeef181906d3d78acc739c1e942.zip |
update readme
Diffstat (limited to 'examples/main.py')
-rw-r--r-- | examples/main.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/main.py b/examples/main.py new file mode 100644 index 0000000..ff81589 --- /dev/null +++ b/examples/main.py @@ -0,0 +1,36 @@ +import sympy +import polymatrix + +state = polymatrix.init_expression_state() + +x1, x2 = sympy.symbols('x1, x2') +x = polymatrix.from_((x1, x2)) + +f1 = polymatrix.from_(x1 + x2) +f2 = polymatrix.from_(x1 + x1*x2) + +f3 = f1 + f2 + +# prints the data structure of the expression +# AdditionExprImpl(left=FromSympyExprImpl(data=((x1 + x2,),)), right=FromSympyExprImpl(data=((x1*x2 + x1,),))) +print(f3) + +state, poly_matrix = f3.apply(state) + +# prints the data structure of the polynomial matrix +# PolyMatrixImpl(terms={(0, 0): {((0, 1), (1, 1)): 1, ((0, 1),): 2, ((1, 1),): 1}}, shape=(1, 1)) +print(poly_matrix) + +state, sympy_repr = polymatrix.to_sympy(f3,).apply(state) + +# prints the sympy representation of the polynomial matrix +# [[x1*x2 + 2*x1 + x2]] +print(sympy_repr) + +state, dense_repr = polymatrix.to_dense((f3,), x).apply(state) + +# prints the numpy matrix representations of the polynomial matrix +# array([[2., 1.]]) +# array([[0. , 0.5, 0.5, 0. ]]) +print(dense_repr.data[0][1]) # numpy array +print(dense_repr.data[0][2].toarray()) # sparse scipy array
\ No newline at end of file |