mathai 0.2.5__tar.gz → 0.2.8__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.
Files changed (29) hide show
  1. {mathai-0.2.5 → mathai-0.2.8}/PKG-INFO +1 -1
  2. {mathai-0.2.5 → mathai-0.2.8}/mathai/base.py +2 -1
  3. {mathai-0.2.5 → mathai-0.2.8}/mathai/univariate_inequality.py +36 -37
  4. {mathai-0.2.5 → mathai-0.2.8}/mathai.egg-info/PKG-INFO +1 -1
  5. {mathai-0.2.5 → mathai-0.2.8}/setup.py +1 -1
  6. {mathai-0.2.5 → mathai-0.2.8}/README.md +0 -0
  7. {mathai-0.2.5 → mathai-0.2.8}/mathai/__init__.py +0 -0
  8. {mathai-0.2.5 → mathai-0.2.8}/mathai/apart.py +0 -0
  9. {mathai-0.2.5 → mathai-0.2.8}/mathai/console.py +0 -0
  10. {mathai-0.2.5 → mathai-0.2.8}/mathai/diff.py +0 -0
  11. {mathai-0.2.5 → mathai-0.2.8}/mathai/expand.py +0 -0
  12. {mathai-0.2.5 → mathai-0.2.8}/mathai/factor.py +0 -0
  13. {mathai-0.2.5 → mathai-0.2.8}/mathai/fraction.py +0 -0
  14. {mathai-0.2.5 → mathai-0.2.8}/mathai/integrate.py +0 -0
  15. {mathai-0.2.5 → mathai-0.2.8}/mathai/inverse.py +0 -0
  16. {mathai-0.2.5 → mathai-0.2.8}/mathai/limit.py +0 -0
  17. {mathai-0.2.5 → mathai-0.2.8}/mathai/linear.py +0 -0
  18. {mathai-0.2.5 → mathai-0.2.8}/mathai/logic.py +0 -0
  19. {mathai-0.2.5 → mathai-0.2.8}/mathai/parser.py +0 -0
  20. {mathai-0.2.5 → mathai-0.2.8}/mathai/printeq.py +0 -0
  21. {mathai-0.2.5 → mathai-0.2.8}/mathai/simplify.py +0 -0
  22. {mathai-0.2.5 → mathai-0.2.8}/mathai/structure.py +0 -0
  23. {mathai-0.2.5 → mathai-0.2.8}/mathai/tool.py +0 -0
  24. {mathai-0.2.5 → mathai-0.2.8}/mathai/trig.py +0 -0
  25. {mathai-0.2.5 → mathai-0.2.8}/mathai.egg-info/SOURCES.txt +0 -0
  26. {mathai-0.2.5 → mathai-0.2.8}/mathai.egg-info/dependency_links.txt +0 -0
  27. {mathai-0.2.5 → mathai-0.2.8}/mathai.egg-info/requires.txt +0 -0
  28. {mathai-0.2.5 → mathai-0.2.8}/mathai.egg-info/top_level.txt +0 -0
  29. {mathai-0.2.5 → mathai-0.2.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mathai
3
- Version: 0.2.5
3
+ Version: 0.2.8
4
4
  Summary: Mathematics solving Ai tailored to NCERT
5
5
  Home-page: https://github.com/infinity390/mathai4
6
6
  Author: educated indians are having a low iq and are good for nothing
@@ -164,7 +164,7 @@ def factor_generation(eq):
164
164
  if child.children[1].name[:2] != "d_":
165
165
  output.append(child)
166
166
  continue
167
- if child.children[1].name[2:].isdigit():
167
+ if frac(child.children[1]) is not None and frac(child.children[1]).denominator == 1:
168
168
  n = int(child.children[1].name[2:])
169
169
  if n < 0:
170
170
  for i in range(-n):
@@ -176,6 +176,7 @@ def factor_generation(eq):
176
176
  output.append(child)
177
177
  else:
178
178
  output.append(child)
179
+
179
180
  return output
180
181
  import math
181
182
 
@@ -212,7 +212,6 @@ def helper(eq, var="v_0"):
212
212
 
213
213
  eq.children[0] = factor2(eq.children[0])
214
214
 
215
-
216
215
  for item in factor_generation(eq.children[0]):
217
216
  item = simplify(expand(item))
218
217
 
@@ -221,48 +220,45 @@ def helper(eq, var="v_0"):
221
220
  sign = not sign
222
221
  continue
223
222
  v = vlist(item)[0]
224
-
223
+
225
224
  if item.name == "f_pow" and item.children[1].name== "d_-1":
226
225
 
227
226
  item = item.children[0]
228
-
229
- tmp2 = diff(copy.deepcopy(item))
230
- if "v_" in str_form(tmp2):
231
- return None
232
-
233
227
 
234
228
  if diff(diff(item, v), v) != tree_form("d_0"):
235
229
 
236
230
  a = replace(diff(diff(item, v), v), tree_form(v), tree_form("d_0"))/tree_form("d_2")
231
+ if "v_" in str_form(a):
232
+ return None
237
233
  if compute(a) < 0:
238
234
  sign = not sign
239
235
  continue
240
-
241
-
242
- if compute(tmp2)<0:
243
- sign = not sign
244
- item = simplify(item * tree_form("d_-1"))
245
- out = inverse(item, vlist(item)[0])
246
- critical.append(out)
236
+ else:
237
+ tmp2 = diff(copy.deepcopy(item))
238
+ if compute(tmp2)<0:
239
+ sign = not sign
240
+ item = simplify(item * tree_form("d_-1"))
241
+ out = inverse(item, vlist(item)[0])
242
+ critical.append(out)
247
243
  else:
248
- tmp2 = diff(copy.deepcopy(item))
249
- if "v_" in str_form(tmp2):
250
- return None
244
+
251
245
 
252
246
  if diff(diff(item, v), v) != tree_form("d_0"):
253
247
  a = replace(diff(diff(item, v), v), tree_form(v), tree_form("d_0"))/tree_form("d_2")
248
+ if "v_" in str_form(a):
249
+ return None
254
250
  if compute(a) < 0:
255
251
  sign = not sign
256
252
  continue
257
-
258
-
259
- if compute(tmp2)<0:
260
- sign = not sign
261
- item = simplify(item * tree_form("d_-1"))
262
- out = inverse(item, vlist(item)[0])
263
- critical.append(out)
264
- if equ:
265
- equal.append(out)
253
+ else:
254
+ tmp2 = diff(copy.deepcopy(item))
255
+ if compute(tmp2)<0:
256
+ sign = not sign
257
+ item = simplify(item * tree_form("d_-1"))
258
+ out = inverse(item, vlist(item)[0])
259
+ critical.append(out)
260
+ if equ:
261
+ equal.append(out)
266
262
  equal = list(set([simplify(item) for item in equal]))
267
263
  more = list(set([simplify(item) for item in more]))
268
264
  critical = [simplify(item) for item in critical]
@@ -365,9 +361,8 @@ def absolute(equation):
365
361
  equation = TreeNode("f_or", out2)
366
362
  return equation
367
363
  def handle_sqrt(eq):
368
- eq = domain(eq)
369
364
  def helper2(eq):
370
- if eq.name in ["f_lt", "f_gt", "f_le", "f_ge"]:
365
+ if eq.name in ["f_lt", "f_gt", "f_le", "f_ge","f_eq"]:
371
366
  out = []
372
367
  def helper(eq):
373
368
  nonlocal out
@@ -376,15 +371,15 @@ def handle_sqrt(eq):
376
371
  x = [helper(child) for child in eq.children]
377
372
  helper(eq)
378
373
  for item in out:
379
-
380
- eq2, sgn = inverse(simplify(eq.children[0]), str_form(item), True)
381
374
  n = tree_form("d_1")
382
- if sgn == False:
383
- n = tree_form("d_-1")
375
+ if eq.name == "f_eq":
376
+ eq2 = inverse(simplify(eq.children[0]), str_form(item))
377
+ else:
378
+ eq2, sgn = inverse(simplify(eq.children[0]), str_form(item), True)
379
+ if sgn == False:
380
+ n = tree_form("d_-1")
384
381
  eq3 = simplify(expand(simplify(eq2**2)))
385
- eq2 = simplify(eq2)
386
- if "v_" in str_form(eq3) and not (eq2.name == "f_pow" and frac(eq2.children[1]) == Fraction(1,2)):
387
- return simplify(TreeNode(eq.name, [simplify(n*item.children[0]-eq3*n), tree_form("d_0")])) & TreeNode("f_ge", [eq2, tree_form("d_0")])
382
+
388
383
  return simplify(TreeNode(eq.name, [simplify(n*item.children[0]-eq3*n), tree_form("d_0")]))
389
384
  return TreeNode(eq.name, [helper2(child) for child in eq.children])
390
385
  return helper2(eq)
@@ -394,9 +389,13 @@ def domain(eq):
394
389
  def helper2(eq):
395
390
  nonlocal out
396
391
  if eq.name == "f_pow" and frac(eq.children[1]) is not None and frac(eq.children[1]).denominator == 2:
397
- out.append(TreeNode("f_ge", [eq.children[0], tree_form("d_0")]))
392
+ if "v_" in str_form(eq.children[0]):
393
+ out.append(TreeNode("f_ge", [eq.children[0], tree_form("d_0")]))
394
+ out.append(TreeNode("f_ge", [eq, tree_form("d_0")]))
398
395
  if eq.name == "f_pow" and frac(eq.children[1]) is not None and frac(eq.children[1]) <0:
399
- out.append(TreeNode("f_eq", [eq.children[0], tree_form("d_0")]).fx("not"))
396
+ tmp = TreeNode("f_eq", [eq.children[0], tree_form("d_0")]).fx("not")
397
+ if "v_" in str_form(tmp):
398
+ out.append(tmp)
400
399
  x = [helper2(child) for child in eq.children]
401
400
  helper2(eq)
402
401
  out = list(set([simplify(item) for item in out]))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mathai
3
- Version: 0.2.5
3
+ Version: 0.2.8
4
4
  Summary: Mathematics solving Ai tailored to NCERT
5
5
  Home-page: https://github.com/infinity390/mathai4
6
6
  Author: educated indians are having a low iq and are good for nothing
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="mathai",
5
- version="0.2.5",
5
+ version="0.2.8",
6
6
  description="Mathematics solving Ai tailored to NCERT",
7
7
  long_description=open("README.md").read(),
8
8
  long_description_content_type="text/markdown",
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