mathai 0.6.5__tar.gz → 0.6.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mathai-0.6.5 → mathai-0.6.7}/PKG-INFO +1 -1
- {mathai-0.6.5 → mathai-0.6.7}/mathai/base.py +3 -2
- {mathai-0.6.5 → mathai-0.6.7}/mathai/matrix.py +1 -1
- {mathai-0.6.5 → mathai-0.6.7}/mathai/parser.py +3 -1
- {mathai-0.6.5 → mathai-0.6.7}/mathai/simplify.py +2 -1
- {mathai-0.6.5 → mathai-0.6.7}/mathai.egg-info/PKG-INFO +1 -1
- {mathai-0.6.5 → mathai-0.6.7}/setup.py +1 -1
- {mathai-0.6.5 → mathai-0.6.7}/README.md +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/__init__.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/apart.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/bivariate_inequality.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/console.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/diff.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/expand.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/factor.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/fraction.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/integrate.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/inverse.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/limit.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/linear.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/logic.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/ode.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/parsetab.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/printeq.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/structure.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/tool.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/trig.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai/univariate_inequality.py +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai.egg-info/SOURCES.txt +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai.egg-info/dependency_links.txt +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai.egg-info/requires.txt +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/mathai.egg-info/top_level.txt +0 -0
- {mathai-0.6.5 → mathai-0.6.7}/setup.cfg +0 -0
|
@@ -19,7 +19,7 @@ class TreeNode:
|
|
|
19
19
|
children = copy.deepcopy(children)
|
|
20
20
|
self.name = name
|
|
21
21
|
|
|
22
|
-
if name == "f_add" or (name == "f_mul" and
|
|
22
|
+
if name == "f_add" or (name == "f_mul" and TreeNode.matmul is None):
|
|
23
23
|
keyed = [(str_form(c), c) for c in children]
|
|
24
24
|
self.children = [c for _, c in sorted(keyed)]
|
|
25
25
|
|
|
@@ -366,7 +366,8 @@ def product(lst):
|
|
|
366
366
|
def flatten_tree(node, add=[]):
|
|
367
367
|
if not node.children:
|
|
368
368
|
return node
|
|
369
|
-
|
|
369
|
+
ad = []
|
|
370
|
+
if node.name in ["f_add", "f_mul", "f_and", "f_or", "f_wmul"]:
|
|
370
371
|
merged_children = []
|
|
371
372
|
for child in node.children:
|
|
372
373
|
flattened_child = flatten_tree(child, add)
|
|
@@ -217,7 +217,7 @@ def use(eq):
|
|
|
217
217
|
def _matrix_solve(eq):
|
|
218
218
|
if TreeNode.matmul == True:
|
|
219
219
|
TreeNode.matmul = False
|
|
220
|
-
eq =
|
|
220
|
+
eq = dowhile(eq, lambda x: fold_wmul(flat(x)))
|
|
221
221
|
TreeNode.matmul = True
|
|
222
222
|
return eq
|
|
223
223
|
def matrix_solve(eq):
|
|
@@ -152,11 +152,13 @@ def parse(equation, funclist=None):
|
|
|
152
152
|
return tree_form("v_" + str(int(tree_node.name[3:])+100))
|
|
153
153
|
tree_node.children = [rfx(child) for child in tree_node.children]
|
|
154
154
|
return tree_node
|
|
155
|
+
def use(eq):
|
|
156
|
+
return TreeNode(eq.name, [use(child) for child in eq.children])
|
|
155
157
|
tree_node = rfx(tree_node)
|
|
156
158
|
tree_node = flatten_tree(tree_node, ["f_wmul"])
|
|
157
159
|
if TreeNode.matmul == True:
|
|
158
160
|
TreeNode.matmul = False
|
|
159
|
-
tree_node = tree_form(str_form(tree_node).replace("f_w","f_"))
|
|
161
|
+
tree_node = use(tree_form(str_form(tree_node).replace("f_w","f_")))
|
|
160
162
|
TreeNode.matmul = True
|
|
161
163
|
else:
|
|
162
164
|
tree_node = tree_form(str_form(tree_node).replace("f_w","f_"))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|