mathai 0.5.2__py3-none-any.whl → 0.5.4__py3-none-any.whl

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/__init__.py CHANGED
@@ -39,7 +39,7 @@ from .logic import logic0, logic1, logic2, logic3
39
39
 
40
40
  from .apart import apart, apart2
41
41
 
42
- from .limit import limit
42
+ from .limit import limit1, limit2, limit0, limit3
43
43
 
44
44
  from .univariate_inequality import wavycurvy, absolute, domain, handle_sqrt
45
45
  from .bivariate_inequality import inequality_solve
mathai/base.py CHANGED
@@ -168,9 +168,11 @@ def factor_generation(eq):
168
168
  if eq.name == "f_mul":
169
169
  for child in eq.children:
170
170
  if child.name == "f_pow":
171
+ '''
171
172
  if child.children[0].name[:2] == "s_":
172
173
  output.append(child)
173
174
  continue
175
+ '''
174
176
  if child.children[1].name[:2] != "d_":
175
177
  output.append(child)
176
178
  continue
@@ -332,7 +334,7 @@ def string_equation_helper(equation_tree):
332
334
  if equation_tree.name == "f_index":
333
335
  return string_equation_helper(equation_tree.children[0])+"["+",".join([string_equation_helper(child) for child in equation_tree.children[1:]])+"]"
334
336
  s = "("
335
- if len(equation_tree.children) == 1 or equation_tree.name[2:] in [chr(ord("A")+i) for i in range(26)]+["subs", "try", "ref", "integrate", "exist", "forall", "sum2", "int", "pdif", "dif", "A", "B", "C", "covariance", "sum"]:
337
+ if len(equation_tree.children) == 1 or equation_tree.name[2:] in [chr(ord("A")+i) for i in range(26)]+["limitpinf", "subs", "try", "ref","limit", "integrate", "exist", "forall", "sum2", "int", "pdif", "dif", "A", "B", "C", "covariance", "sum"]:
336
338
  s = equation_tree.name[2:] + s
337
339
  sign = {"f_not":"~", "f_addw":"+", "f_mulw":"*", "f_intersection":"&", "f_union":"|", "f_sum2":",", "f_exist":",", "f_forall":",", "f_sum":",","f_covariance": ",", "f_B":",", "f_imply":"->", "f_ge":">=", "f_le":"<=", "f_gt":">", "f_lt":"<", "f_cosec":"?" , "f_equiv": "<->", "f_sec":"?", "f_cot": "?", "f_dot": ".", "f_circumcenter":"?", "f_transpose":"?", "f_exp":"?", "f_abs":"?", "f_log":"?", "f_and":"&", "f_or":"|", "f_sub":"-", "f_neg":"?", "f_inv":"?", "f_add": "+", "f_mul": "*", "f_pow": "^", "f_poly": ",", "f_div": "/", "f_sub": "-", "f_dif": ",", "f_sin": "?", "f_cos": "?", "f_tan": "?", "f_eq": "=", "f_sqrt": "?"}
338
340
  arr = []
mathai/integrate.py CHANGED
@@ -79,8 +79,10 @@ def subs_heuristic(eq, var):
79
79
  try_index = []
80
80
  try_lst = []
81
81
  def ref(eq):
82
+ '''
82
83
  if eq.name in ["f_try", "f_ref"]:
83
84
  return eq
85
+ '''
84
86
  if eq.name == "f_integrate":
85
87
  return TreeNode("f_try", [eq.fx("ref"), eq])
86
88
  return TreeNode(eq.name, [ref(child) for child in eq.children])
@@ -98,12 +100,12 @@ def _solve_integrate(eq):
98
100
  if eq.name == "f_ref":
99
101
  return eq
100
102
  if eq.name == "f_subs":
101
- if "f_integrate" not in str_form(eq.children[0]):
103
+ if all(item not in str_form(eq.children[0]) for item in ["f_integrate", "f_subs", "f_try"]):
102
104
  return replace(eq.children[0], eq.children[1], eq.children[2])
103
105
 
104
106
  if eq.name == "f_try":
105
107
  for child in eq.children:
106
- if "f_integrate" not in str_form(child):
108
+ if all(item not in str_form(child) for item in ["f_integrate", "f_subs", "f_try"]):
107
109
  return child
108
110
  return TreeNode(eq.name, [_solve_integrate(child) for child in eq.children])
109
111
  def handle_try(eq):
@@ -131,6 +133,7 @@ def inteq(eq):
131
133
  break
132
134
  if eq2 is None:
133
135
  return eq
136
+ printeq(eq)
134
137
  for child in eq.children:
135
138
  if child.name == "f_ref":
136
139
  output.append(child)
@@ -144,6 +147,8 @@ def inteq(eq):
144
147
  output.append(out)
145
148
  else:
146
149
  output.append(child)
150
+ printeq(TreeNode("f_try", output))
151
+ print()
147
152
  return TreeNode("f_try", output)
148
153
  else:
149
154
  return TreeNode(eq.name, [inteq(child) for child in eq.children])
@@ -330,13 +335,20 @@ def byparts(eq):
330
335
  lst = factor_generation(eq)
331
336
  if len(lst) == 3 and len(list(set(lst))) == 1:
332
337
  lst = [(lst[0]**2).copy_tree(), lst[0].copy_tree()]
338
+ if len(lst) == 3 and len(list(set(lst))) == 2:
339
+ lst2 = list(set(lst))
340
+ a, b = lst2
341
+ a = a**lst.count(a)
342
+ b = b**lst.count(b)
343
+ lst = [a.copy_tree(), b.copy_tree()]
333
344
  if len(lst) == 1:
334
345
  lst += [tree_form("d_1")]
335
346
  if len(lst) == 2:
336
347
  for i in range(2):
337
348
 
338
349
  f, g = [lst[i], lst[1-i]]
339
-
350
+ if contain(f, tree_form("s_e")):
351
+ continue
340
352
  out1 = TreeNode("f_integrate", [g.copy_tree(), wrt])
341
353
 
342
354
 
mathai/limit.py CHANGED
@@ -6,7 +6,7 @@ from .expand import expand
6
6
  from .diff import diff
7
7
  from .trig import trig0
8
8
  from .fraction import fraction
9
- from .printeq import printeq_str
9
+ from .printeq import printeq
10
10
  tab=0
11
11
  def substitute_val(eq, val, var="v_0"):
12
12
  eq = replace(eq, tree_form(var), tree_form("d_"+str(val)))
@@ -33,100 +33,124 @@ def check(num, den, var):
33
33
  return simplify(n/d)
34
34
  return False
35
35
  def lhospital(num, den, steps,var):
36
- logs = []
37
36
 
38
37
  out = check(num, den, var)
39
38
 
40
39
  if isinstance(out, TreeNode):
41
- return out,[]
40
+ return out
42
41
  for _ in range(steps):
43
42
  num2, den2 = map(lambda e: simplify(diff(e, var)), (num, den))
44
43
  out = check(num2, den2, var)
45
44
  if out is True:
46
45
  num, den = num2, den2
47
- logs += [(0,"lim x->0 "+printeq_str(simplify(num/den)))]
48
46
  continue
49
47
  if out is False:
50
48
  eq2 = simplify(fraction(simplify(num/den)))
51
- return eq2,logs
52
- return out,logs
49
+ return eq2
50
+ return out
53
51
  def lhospital2(eq, var):
54
52
  eq= simplify(eq)
55
53
  if eq is None:
56
54
  return None
57
55
  if not contain(eq, tree_form(var)):
58
- return eq,[]
56
+ return eq
59
57
  num, dem = [simplify(item) for item in num_dem(eq)]
60
58
  if num is None or dem is None:
61
- return eq,[]
59
+ return eq
62
60
 
63
61
  return lhospital(num, dem, 10,var)
64
- ls = [parse("sin(A)"), parse("A^B-1"),parse("log(1+A)"), parse("cos(A)")]
65
- ls= [simplify(item) for item in ls]
66
-
67
- def approx(eq, var):
68
- n, d= num_dem(eq)
69
- n, d = solve(n), solve(d)
70
- n, d = expand(n), expand(d)
71
- out = []
72
- for equation in [n, d]:
73
- for item in factor_generation(equation):
74
- tmp = structure(item, ls[0])
75
- if tmp is not None and contain(tmp["v_-1"], var):
76
- item2 = substitute_val(tmp["v_-1"], 0, var.name)
77
- if tree_form("d_0") == expand(simplify(item2)):
78
- equation = equation/item
79
- equation = equation*tmp["v_-1"]
80
- break
81
- elif tree_form("d_0") == expand(simplify(tree_form("s_pi") - item2)):
82
- equation = equation/item
83
- equation = equation*(tree_form("s_pi") - tmp["v_-1"])
84
- break
85
- tmp = structure(item, ls[1])
86
- if tmp is not None and contain(tmp["v_-1"], var) and not contain(tmp["v_-2"], var):
87
- item2 = substitute_val(tmp["v_-1"], 0, var.name)
88
- item2 = expand(solve(item2))
89
- if tree_form("d_0") == item2:
90
- equation = equation/item
91
- equation = solve(equation*tmp["v_-1"]*tmp["v_-2"].fx("log"))
92
- break
93
- tmp = structure(item, ls[2])
94
- if tmp is not None and contain(tmp["v_-1"], var):
95
-
96
- item2 = substitute_val(tmp["v_-1"], 0, var.name)
97
- item2 = expand(solve(item2))
98
- if tree_form("d_0") == item2:
99
- equation = equation/item
100
- equation = solve(equation*tmp["v_-1"])
101
- break
102
- tmp = structure(item, ls[3])
103
- if tmp is not None and contain(tmp["v_-1"], var):
104
- item2 = substitute_val(item, 0, var.name)
105
-
106
- if tree_form("d_0") == expand(solve(item2)):
107
-
108
- equation = equation/item
109
- equation = equation*(tree_form("d_1") - tmp["v_-1"]**tree_form("d_2"))
110
- break
62
+ def limit0(equation):
63
+ if equation.name == "f_ref":
64
+ return equation
65
+ eq2 = equation
66
+ g = ["f_limit", "f_limitpinf", "f_limitninf"]
67
+ if eq2.name in g and contain(eq2.children[0], eq2.children[1]):
68
+ equation = eq2.children[0]
69
+ wrt = eq2.children[1]
70
+ lst = factor_generation(equation)
71
+
72
+ lst_const = [item for item in lst if not contain(item, wrt)]
73
+ if lst_const != []:
74
+
75
+ equation = product([item for item in lst if contain(item, wrt)]).copy_tree()
76
+ const = product(lst_const)
77
+ const = simplify(const)
78
+
79
+ if not contain(const, tree_form("s_i")):
111
80
 
112
- equation = solve(equation)
113
- out.append(equation)
114
- return simplify(out[0]/out[1])
115
- def approx_limit(equation, var):
116
- return dowhile(equation, lambda x: approx(x, var))
81
+ return limit0(TreeNode(equation.name,[equation, wrt])) *const
82
+ equation = eq2
83
+ return TreeNode(equation.name, [limit0(child) for child in equation.children])
84
+ def limit2(eq):
85
+ g = ["f_limit", "f_limitpinf", "f_limitninf"]
86
+ if eq.name in g and eq.children[0].name == "f_add":
87
+ eq = summation([TreeNode(eq.name, [child, eq.children[1]]) for child in eq.children[0].children])
88
+ return TreeNode(eq.name, [limit2(child) for child in eq.children])
89
+ def limit1(eq):
90
+ if eq.name == "f_limit":
91
+ a, b = limit(eq.children[0], eq.children[1].name)
92
+ if b:
93
+ return a
94
+ else:
95
+ return TreeNode(eq.name, [a, eq.children[1]])
96
+ return TreeNode(eq.name, [limit1(child) for child in eq.children])
97
+ def fxinf(eq):
98
+ if eq is None:
99
+ return None
100
+ if eq.name == "f_add":
101
+ if tree_form("s_inf") in eq.children and -tree_form("s_inf") in eq.children:
102
+ return None
103
+ if tree_form("s_inf") in eq.children:
104
+ return tree_form("s_inf")
105
+ if -tree_form("s_inf") in eq.children:
106
+ return -tree_form("s_inf")
107
+ if eq.name == "f_mul":
108
+ lst = factor_generation(eq)
109
+ if tree_form("s_inf") in lst:
110
+ eq = TreeNode(eq.name, [dowhile(child, fxinf) for child in eq.children])
111
+ if None in eq.children:
112
+ return None
113
+ lst = factor_generation(eq)
114
+ if tree_form("d_0") in lst:
115
+ return tree_form("d_0")
116
+ lst2 = [item for item in lst if "v_" in str_form(item)]
117
+ sign = True
118
+ if len([item for item in lst if "v_" not in str_form(item) and not contain(item, tree_form("s_inf")) and compute(item)<0]) % 2==1:
119
+ sign = False
120
+ if lst2 == []:
121
+ if sign:
122
+ return tree_form("s_inf")
123
+ else:
124
+ return -tree_form("s_inf")
125
+ if eq.name == "f_pow":
126
+ if "v_" not in str_form(eq.children[0]) and not contain(eq.children[0], tree_form("s_inf")) and compute(eq.children[0])>0:
127
+ if eq.children[1] == -tree_form("s_inf"):
128
+ return tree_form("d_0")
129
+
130
+ eq = TreeNode(eq.name, [fxinf(child) for child in eq.children])
131
+ if None in eq.children:
132
+ return None
133
+ return eq
134
+ def limit3(eq):
135
+
136
+ if eq.name == "f_limitpinf":
137
+ if not contain(eq, eq.children[1]):
138
+ return eq.children[0]
139
+ eq2 = replace(eq.children[0], eq.children[1], tree_form("s_inf"))
140
+ eq2 = dowhile(eq2, fxinf)
141
+ if not contain(eq2, tree_form("s_inf")) and not contain(eq2, eq.children[1]):
142
+ return simplify(eq2)
143
+ return TreeNode(eq.name, [limit3(child) for child in eq.children])
117
144
 
118
145
  def limit(equation, var="v_0"):
119
- logs = [(0,"lim x->0 "+printeq_str(simplify(equation)))]
146
+
120
147
  eq2 = dowhile(replace(equation, tree_form(var), tree_form("d_0")), lambda x: trig0(simplify(x)))
121
148
  if eq2 is not None and not contain(equation, tree_form(var)):
122
- return eq2,logs
149
+ return eq2, True
123
150
 
124
- equation, tmp = lhospital2(equation, var)
151
+ equation = lhospital2(equation, var)
125
152
  equation = simplify(expand(simplify(equation)))
126
153
  if not contain(equation, tree_form(var)):
127
- return equation,logs+tmp
128
- '''
129
- if equation.name == "f_add":
130
- return simplify(summation([limit(child, var) for child in equation.children]))
131
- '''
132
- return equation,logs+tmp
154
+ return equation, True
155
+
156
+ return equation, False
mathai/parser.py CHANGED
@@ -59,7 +59,7 @@ grammar = """
59
59
  | ESCAPED_STRING -> string
60
60
  | CAPITAL_ID -> matrix
61
61
 
62
- FUNC_NAME: "midpoint" | "ref" | "subs" | "try" | "forall" | "imply" | "exist" | "len" | "sum" | "angle" | "line" | "sum2" | "charge" | "electricfield" | "perm" | "point" | "equationrhs" | "transpose" | "equationlhs" | "equation" | "error" | "covariance" | "variance" | "expect" | "mag" | "rad" | "laplace" | "diverge" | "pdif" | "gradient" | "curl" | "point1" | "point2" | "dot" | "point3" | "line1" | "line2" | "line3" | "sin" | "circumcenter" | "eqtri" | "linesegment" | "cos" | "tan" | "log" | "sqrt" | "integrate" | "dif" | "abs" | "cosec" | "sec" | "cot" | "arctan" | "arcsin" | "arccos" | "log10"
62
+ FUNC_NAME: "midpoint" | "ref" | "subs" | "try" | "limit" | "forall" | "limitpinf" | "imply" | "exist" | "len" | "sum" | "angle" | "line" | "sum2" | "charge" | "electricfield" | "perm" | "point" | "equationrhs" | "transpose" | "equationlhs" | "equation" | "error" | "covariance" | "variance" | "expect" | "mag" | "rad" | "laplace" | "diverge" | "pdif" | "gradient" | "curl" | "point1" | "point2" | "dot" | "point3" | "line1" | "line2" | "line3" | "sin" | "circumcenter" | "eqtri" | "linesegment" | "cos" | "tan" | "log" | "sqrt" | "integrate" | "dif" | "abs" | "cosec" | "sec" | "cot" | "arctan" | "arcsin" | "arccos" | "log10"
63
63
 
64
64
  VARIABLE: /[a-z]/ | "nabla" | "pi" | "kc" | "hbar" | "em" | "ec" | "anot" | "false" | "true"
65
65
 
@@ -130,7 +130,7 @@ def parse(equation, funclist=None):
130
130
  if tree_node.name == "pass_through":
131
131
  return fxchange(tree_node.children[0])
132
132
  return TreeNode(
133
- "f_" + tree_node.name if tree_node.name in tmp3 + ["try", "ref", "sqrt","imply","forall","exist","exclude","union","intersection","len","index","angle","charge","sum2","electricfield","line","point","sum","transpose","equationrhs","equationlhs","equation","covariance","variance","expect","error","laplace","dot","curl","pdif","diverge","gradient","rad","ge","le","gt","lt","eqtri","linesegment","midpoint","mag","point1","point2","point3","line1","line2","line3","log10","arcsin","arccos","arctan","list","cosec","sec","cot","equiv","or","not","and","circumcenter","eq","sub","add","sin","cos","tan","mul","integrate","dif","pow","div","log","abs"] else "d_" + tree_node.name,
133
+ "f_" + tree_node.name if tree_node.name in tmp3 + ["limitpinf", "limit", "try", "ref", "sqrt","imply","forall","exist","exclude","union","intersection","len","index","angle","charge","sum2","electricfield","line","point","sum","transpose","equationrhs","equationlhs","equation","covariance","variance","expect","error","laplace","dot","curl","pdif","diverge","gradient","rad","ge","le","gt","lt","eqtri","linesegment","midpoint","mag","point1","point2","point3","line1","line2","line3","log10","arcsin","arccos","arctan","list","cosec","sec","cot","equiv","or","not","and","circumcenter","eq","sub","add","sin","cos","tan","mul","integrate","dif","pow","div","log","abs"] else "d_" + tree_node.name,
134
134
  [fxchange(child) for child in tree_node.children]
135
135
  )
136
136
 
mathai/simplify.py CHANGED
@@ -173,6 +173,7 @@ def clear_div(eq, denom=False):
173
173
  return solve(product(lst2)),sign
174
174
 
175
175
  def simplify(eq):
176
+
176
177
  if "v_" not in str_form(eq):
177
178
  n = frac(eq)
178
179
  if n is not None:
@@ -182,6 +183,9 @@ def simplify(eq):
182
183
  return tree_form("d_"+str(n.numerator))/tree_form("d_"+str(n.denominator))
183
184
  else:
184
185
  return tree_form("d_"+str(n.numerator))
186
+
187
+ if contain(eq, tree_form("s_inf")):
188
+ return eq
185
189
  error = False
186
190
  eq = flatten_tree(eq)
187
191
  if eq.name in ["f_and", "f_or", "f_not"]:
@@ -301,6 +305,7 @@ def simplify(eq):
301
305
  error = True
302
306
  else:
303
307
  eq = tree_form("d_0")
308
+
304
309
  if eq.name =="f_pow" and eq.children[0] == tree_form("s_i") and frac(eq.children[1])is not None and frac(eq.children[1]).denominator == 1:
305
310
  n = frac(eq.children[1]).numerator
306
311
  eq = {0:tree_form("d_1"), 1:tree_form("s_i"), 2:tree_form("d_-1"), 3:-tree_form("s_i")}[n%4]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mathai
3
- Version: 0.5.2
3
+ Version: 0.5.4
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
@@ -1,27 +1,27 @@
1
- mathai/__init__.py,sha256=GciRnhsCDfd_xjC2VoDWVmbapNtR4YlVGEa4ibJi32w,1514
1
+ mathai/__init__.py,sha256=LNmGQztU8xBh7mjgbPemQZKRXythLwif56rDv3ksjs4,1539
2
2
  mathai/apart.py,sha256=VSS3khE9PNuxiRvdU5JDl4IN-KJBSIFjwR17pkhviXI,4197
3
- mathai/base.py,sha256=Ma1oCRbaZP0bp0Qnt_ZjKAh3rt9nZXQ_rmJL0sAoz5c,12730
3
+ mathai/base.py,sha256=pduS0fRpFZR8O-MP-7lDuq1dU603mwfDpmBcT2FyJgI,12793
4
4
  mathai/bivariate_inequality.py,sha256=FJOC2zKU5zWCMybCrhEQ7nVDgRO_w19Zko8WPTaDTSo,11411
5
5
  mathai/console.py,sha256=Sn58iwYE79MLEh67s8X3q6vZjw6g7f9XM1T8_dBBR2o,3048
6
6
  mathai/diff.py,sha256=YUBpRsz0qmBkq5vGxeGnvR4nMKjdOQiIXlNMxpij2ns,3051
7
7
  mathai/expand.py,sha256=SnBltkpIENMGkP0AYmbMlSc4H-CF5RslO2PcBEkn1BQ,3359
8
8
  mathai/factor.py,sha256=muPDOcClrqc2XyVlbyIrhiIqI0QxauYL3e2mq3qa6OI,11533
9
9
  mathai/fraction.py,sha256=Q2ztsh5Bpz6YhML2QU0tfufbAs0Q6J319AhlzKephIY,4396
10
- mathai/integrate.py,sha256=ewV46QDD0-oiTWpSkmcpcZhBz9StcntbTV1tBLCo1Wo,16502
10
+ mathai/integrate.py,sha256=LMj7om6vTGbYiUwqN-y11fiD4YR_XMbL33AWgI2893o,16982
11
11
  mathai/inverse.py,sha256=QCvDrzKquWsZv-BDAzZd9HnU0c3gZvcc44UztHVO5LQ,2919
12
- mathai/limit.py,sha256=bn7eofIOJv4AIh0-FmLppZ3DKnGfbwOzXks2XOPTOs0,4932
12
+ mathai/limit.py,sha256=DoTBMGdbc47WPN2yo6XwES6Gc-GDDArDhF5uyDFPSC4,5710
13
13
  mathai/linear.py,sha256=Mmmnn4IdnADRMuv6crB0a_Ba2drGUFXOh7eqIIkirYA,5709
14
14
  mathai/logic.py,sha256=UvHzRmKcO9AD51tRzHmpNSEhgW5gmaf4XPaQKFjGfC4,9653
15
15
  mathai/matrix.py,sha256=dWIXF5oInIL3SZ3naRzKN5ElI5drXJNiVTDM48hfZOw,972
16
16
  mathai/ode.py,sha256=zxxTXAOpt7oSsfpgI4vHsCWKXevmM96ZOBZWWs-vj8Y,4801
17
- mathai/parser.py,sha256=f7bemieFmp0sbup1NlraMLvZDVFvqKGFknEVtlFRMVk,6979
17
+ mathai/parser.py,sha256=K6O5TR1PGl9LbSdGpcbwiwQva8r5-SwZ5fSp84oA8co,7025
18
18
  mathai/printeq.py,sha256=gIes-pstFOa6FcnpVIVvkjVKuWdsVdo11LlEnmHhakU,1303
19
- mathai/simplify.py,sha256=EGyEld0ZpOuHLeMmOKhvv0rTejEWjfkwkNJQx3lHSQc,17127
19
+ mathai/simplify.py,sha256=4-7yps_I_OQBd8NthF96H0R-ofA3cFSxgM4wDE45OvU,17217
20
20
  mathai/structure.py,sha256=4Ww2IAx62RcQSO7_17TZES-DjMWBpcFQtL939FBIHwY,4103
21
21
  mathai/tool.py,sha256=r8ejBY4Bnk_t8USYQCuxwmmJ4M-5H5OR6A3VbV7W-5w,6066
22
22
  mathai/trig.py,sha256=BQd_Gl_u0g5ZuZIwKozuXKbMinqb6K-OYicrtftn7eg,11174
23
23
  mathai/univariate_inequality.py,sha256=3Yr7d9mE-mUNkwOPQyFPBDp0-gKkqrpzEYeHFQ8JcXA,15060
24
- mathai-0.5.2.dist-info/METADATA,sha256=sjO-RkjnEu_-D6ahvZq-z_Ad0ZX9GSkM1qZICMmPcmg,7103
25
- mathai-0.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
- mathai-0.5.2.dist-info/top_level.txt,sha256=ROP4l3OhGYw3ihkQGASr18xM9GsK4z3_6whV5AyXLwE,7
27
- mathai-0.5.2.dist-info/RECORD,,
24
+ mathai-0.5.4.dist-info/METADATA,sha256=WIcw95PJtFwsEyhCKVJJuNpQLUlROTfErTRC76nqUX8,7103
25
+ mathai-0.5.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
+ mathai-0.5.4.dist-info/top_level.txt,sha256=ROP4l3OhGYw3ihkQGASr18xM9GsK4z3_6whV5AyXLwE,7
27
+ mathai-0.5.4.dist-info/RECORD,,
File without changes