symengine 0.14.1__cp314-cp314t-macosx_10_13_x86_64.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.
Files changed (78) hide show
  1. symengine/.dylibs/libflint.20.0.dylib +0 -0
  2. symengine/.dylibs/libgmp.10.dylib +0 -0
  3. symengine/.dylibs/libmpc.3.dylib +0 -0
  4. symengine/.dylibs/libmpfr.6.dylib +0 -0
  5. symengine/.dylibs/libz.1.3.1.dylib +0 -0
  6. symengine/.dylibs/libzstd.1.5.7.dylib +0 -0
  7. symengine/__init__.py +79 -0
  8. symengine/__pycache__/__init__.cpython-314.pyc +0 -0
  9. symengine/__pycache__/functions.cpython-314.pyc +0 -0
  10. symengine/__pycache__/printing.cpython-314.pyc +0 -0
  11. symengine/__pycache__/sympy_compat.cpython-314.pyc +0 -0
  12. symengine/__pycache__/test_utilities.cpython-314.pyc +0 -0
  13. symengine/__pycache__/utilities.cpython-314.pyc +0 -0
  14. symengine/functions.py +10 -0
  15. symengine/lib/__init__.py +0 -0
  16. symengine/lib/__pycache__/__init__.cpython-314.pyc +0 -0
  17. symengine/lib/pywrapper.h +220 -0
  18. symengine/lib/symengine.pxd +955 -0
  19. symengine/lib/symengine_wrapper.cpython-314t-darwin.so +0 -0
  20. symengine/lib/symengine_wrapper.pxd +83 -0
  21. symengine/printing.py +33 -0
  22. symengine/sympy_compat.py +4 -0
  23. symengine/test_utilities.py +95 -0
  24. symengine/tests/__init__.py +0 -0
  25. symengine/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  26. symengine/tests/__pycache__/test_arit.cpython-314.pyc +0 -0
  27. symengine/tests/__pycache__/test_cse.cpython-314.pyc +0 -0
  28. symengine/tests/__pycache__/test_dict_basic.cpython-314.pyc +0 -0
  29. symengine/tests/__pycache__/test_eval.cpython-314.pyc +0 -0
  30. symengine/tests/__pycache__/test_expr.cpython-314.pyc +0 -0
  31. symengine/tests/__pycache__/test_functions.cpython-314.pyc +0 -0
  32. symengine/tests/__pycache__/test_lambdify.cpython-314.pyc +0 -0
  33. symengine/tests/__pycache__/test_logic.cpython-314.pyc +0 -0
  34. symengine/tests/__pycache__/test_matrices.cpython-314.pyc +0 -0
  35. symengine/tests/__pycache__/test_ntheory.cpython-314.pyc +0 -0
  36. symengine/tests/__pycache__/test_number.cpython-314.pyc +0 -0
  37. symengine/tests/__pycache__/test_pickling.cpython-314.pyc +0 -0
  38. symengine/tests/__pycache__/test_printing.cpython-314.pyc +0 -0
  39. symengine/tests/__pycache__/test_sage.cpython-314.pyc +0 -0
  40. symengine/tests/__pycache__/test_series_expansion.cpython-314.pyc +0 -0
  41. symengine/tests/__pycache__/test_sets.cpython-314.pyc +0 -0
  42. symengine/tests/__pycache__/test_solve.cpython-314.pyc +0 -0
  43. symengine/tests/__pycache__/test_subs.cpython-314.pyc +0 -0
  44. symengine/tests/__pycache__/test_symbol.cpython-314.pyc +0 -0
  45. symengine/tests/__pycache__/test_sympify.cpython-314.pyc +0 -0
  46. symengine/tests/__pycache__/test_sympy_compat.cpython-314.pyc +0 -0
  47. symengine/tests/__pycache__/test_sympy_conv.cpython-314.pyc +0 -0
  48. symengine/tests/__pycache__/test_var.cpython-314.pyc +0 -0
  49. symengine/tests/test_arit.py +261 -0
  50. symengine/tests/test_cse.py +17 -0
  51. symengine/tests/test_dict_basic.py +28 -0
  52. symengine/tests/test_eval.py +67 -0
  53. symengine/tests/test_expr.py +28 -0
  54. symengine/tests/test_functions.py +432 -0
  55. symengine/tests/test_lambdify.py +863 -0
  56. symengine/tests/test_logic.py +124 -0
  57. symengine/tests/test_matrices.py +757 -0
  58. symengine/tests/test_ntheory.py +254 -0
  59. symengine/tests/test_number.py +186 -0
  60. symengine/tests/test_pickling.py +59 -0
  61. symengine/tests/test_printing.py +38 -0
  62. symengine/tests/test_sage.py +175 -0
  63. symengine/tests/test_series_expansion.py +22 -0
  64. symengine/tests/test_sets.py +118 -0
  65. symengine/tests/test_solve.py +25 -0
  66. symengine/tests/test_subs.py +82 -0
  67. symengine/tests/test_symbol.py +179 -0
  68. symengine/tests/test_sympify.py +63 -0
  69. symengine/tests/test_sympy_compat.py +200 -0
  70. symengine/tests/test_sympy_conv.py +835 -0
  71. symengine/tests/test_var.py +68 -0
  72. symengine/utilities.py +280 -0
  73. symengine-0.14.1.dist-info/METADATA +40 -0
  74. symengine-0.14.1.dist-info/RECORD +78 -0
  75. symengine-0.14.1.dist-info/WHEEL +6 -0
  76. symengine-0.14.1.dist-info/licenses/AUTHORS +41 -0
  77. symengine-0.14.1.dist-info/licenses/LICENSE +431 -0
  78. symengine-0.14.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,68 @@
1
+ # Tests for var are in their own file, because var pollutes global namespace.
2
+
3
+ from symengine import Symbol, var
4
+ from symengine.test_utilities import raises
5
+ # make z1 with call-depth = 1
6
+
7
+
8
+ def _make_z1():
9
+ var("z1")
10
+
11
+ # make z2 with call-depth = 2
12
+
13
+
14
+ def __make_z2():
15
+ var("z2")
16
+
17
+
18
+ def _make_z2():
19
+ __make_z2()
20
+
21
+
22
+ def test_var():
23
+ var("a")
24
+ assert a == Symbol("a")
25
+
26
+ var("b bb cc zz _x")
27
+ assert b == Symbol("b")
28
+ assert bb == Symbol("bb")
29
+ assert cc == Symbol("cc")
30
+ assert zz == Symbol("zz")
31
+ assert _x == Symbol("_x")
32
+
33
+ v = var(['d', 'e', 'fg'])
34
+ assert d == Symbol('d')
35
+ assert e == Symbol('e')
36
+ assert fg == Symbol('fg')
37
+
38
+ # check return value
39
+ assert v == [d, e, fg]
40
+
41
+
42
+ def test_var_global_namespace():
43
+ # see if var() really injects into global namespace
44
+ raises(NameError, lambda: z1)
45
+ _make_z1()
46
+ assert z1 == Symbol("z1")
47
+
48
+ raises(NameError, lambda: z2)
49
+ _make_z2()
50
+ assert z2 == Symbol("z2")
51
+
52
+
53
+ def test_var_return():
54
+ raises(ValueError, lambda: var(''))
55
+ v2 = var('q')
56
+ v3 = var('q p')
57
+
58
+ assert v2 == Symbol('q')
59
+ assert v3 == (Symbol('q'), Symbol('p'))
60
+
61
+
62
+ def test_var_accepts_comma():
63
+ v1 = var('x y z')
64
+ v2 = var('x,y,z')
65
+ v3 = var('x,y z')
66
+
67
+ assert v1 == v2
68
+ assert v1 == v3
symengine/utilities.py ADDED
@@ -0,0 +1,280 @@
1
+ from .lib.symengine_wrapper import Symbol, Basic
2
+ from itertools import combinations, permutations, product, product as cartes
3
+ import re as _re
4
+ import string
5
+ import sys
6
+
7
+
8
+ _range = _re.compile('([0-9]*:[0-9]+|[a-zA-Z]?:[a-zA-Z])')
9
+
10
+
11
+ def symbols(names, **args):
12
+ r"""
13
+ Transform strings into instances of :class:`Symbol` class.
14
+ :func:`symbols` function returns a sequence of symbols with names taken
15
+ from ``names`` argument, which can be a comma or whitespace delimited
16
+ string, or a sequence of strings::
17
+ >>> from symengine import symbols
18
+ >>> x, y, z = symbols('x,y,z')
19
+ >>> a, b, c = symbols('a b c')
20
+ The type of output is dependent on the properties of input arguments::
21
+ >>> symbols('x')
22
+ x
23
+ >>> symbols('x,')
24
+ (x,)
25
+ >>> symbols('x,y')
26
+ (x, y)
27
+ >>> symbols(('a', 'b', 'c'))
28
+ (a, b, c)
29
+ >>> symbols(['a', 'b', 'c'])
30
+ [a, b, c]
31
+ >>> symbols(set(['a', 'b', 'c']))
32
+ set([a, b, c])
33
+ If an iterable container is needed for a single symbol, set the ``seq``
34
+ argument to ``True`` or terminate the symbol name with a comma::
35
+ >>> symbols('x', seq=True)
36
+ (x,)
37
+ To reduce typing, range syntax is supported to create indexed symbols.
38
+ Ranges are indicated by a colon and the type of range is determined by
39
+ the character to the right of the colon. If the character is a digit
40
+ then all contiguous digits to the left are taken as the nonnegative
41
+ starting value (or 0 if there is no digit left of the colon) and all
42
+ contiguous digits to the right are taken as 1 greater than the ending
43
+ value::
44
+ >>> symbols('x:10')
45
+ (x0, x1, x2, x3, x4, x5, x6, x7, x8, x9)
46
+ >>> symbols('x5:10')
47
+ (x5, x6, x7, x8, x9)
48
+ >>> symbols('x5(:2)')
49
+ (x50, x51)
50
+ >>> symbols('x5:10,y:5')
51
+ (x5, x6, x7, x8, x9, y0, y1, y2, y3, y4)
52
+ >>> symbols(('x5:10', 'y:5'))
53
+ ((x5, x6, x7, x8, x9), (y0, y1, y2, y3, y4))
54
+ If the character to the right of the colon is a letter, then the single
55
+ letter to the left (or 'a' if there is none) is taken as the start
56
+ and all characters in the lexicographic range *through* the letter to
57
+ the right are used as the range::
58
+ >>> symbols('x:z')
59
+ (x, y, z)
60
+ >>> symbols('x:c') # null range
61
+ ()
62
+ >>> symbols('x(:c)')
63
+ (xa, xb, xc)
64
+ >>> symbols(':c')
65
+ (a, b, c)
66
+ >>> symbols('a:d, x:z')
67
+ (a, b, c, d, x, y, z)
68
+ >>> symbols(('a:d', 'x:z'))
69
+ ((a, b, c, d), (x, y, z))
70
+ Multiple ranges are supported; contiguous numerical ranges should be
71
+ separated by parentheses to disambiguate the ending number of one
72
+ range from the starting number of the next::
73
+ >>> symbols('x:2(1:3)')
74
+ (x01, x02, x11, x12)
75
+ >>> symbols(':3:2') # parsing is from left to right
76
+ (00, 01, 10, 11, 20, 21)
77
+ Only one pair of parentheses surrounding ranges are removed, so to
78
+ include parentheses around ranges, double them. And to include spaces,
79
+ commas, or colons, escape them with a backslash::
80
+ >>> symbols('x((a:b))')
81
+ (x(a), x(b))
82
+ >>> symbols('x(:1\,:2)') # or 'x((:1)\,(:2))'
83
+ (x(0,0), x(0,1))
84
+ """
85
+ result = []
86
+
87
+ if isinstance(names, str):
88
+ marker = 0
89
+ literals = [r'\,', r'\:', r'\ ']
90
+ for i in range(len(literals)):
91
+ lit = literals.pop(0)
92
+ if lit in names:
93
+ while chr(marker) in names:
94
+ marker += 1
95
+ lit_char = chr(marker)
96
+ marker += 1
97
+ names = names.replace(lit, lit_char)
98
+ literals.append((lit_char, lit[1:]))
99
+
100
+ def literal(s):
101
+ if literals:
102
+ for c, l in literals:
103
+ s = s.replace(c, l)
104
+ return s
105
+
106
+ names = names.strip()
107
+ as_seq = names.endswith(',')
108
+ if as_seq:
109
+ names = names[:-1].rstrip()
110
+ if not names:
111
+ raise ValueError('no symbols given')
112
+
113
+ # split on commas
114
+ names = [n.strip() for n in names.split(',')]
115
+ if not all(n for n in names):
116
+ raise ValueError('missing symbol between commas')
117
+ # split on spaces
118
+ for i in range(len(names) - 1, -1, -1):
119
+ names[i: i + 1] = names[i].split()
120
+
121
+ cls = args.pop('cls', Symbol)
122
+ seq = args.pop('seq', as_seq)
123
+
124
+ for name in names:
125
+ if not name:
126
+ raise ValueError('missing symbol')
127
+
128
+ if ':' not in name:
129
+ symbol = cls(literal(name), **args)
130
+ result.append(symbol)
131
+ continue
132
+
133
+ split = _range.split(name)
134
+ # remove 1 layer of bounding parentheses around ranges
135
+ for i in range(len(split) - 1):
136
+ if i and ':' in split[i] and split[i] != ':' and \
137
+ split[i - 1].endswith('(') and \
138
+ split[i + 1].startswith(')'):
139
+ split[i - 1] = split[i - 1][:-1]
140
+ split[i + 1] = split[i + 1][1:]
141
+ for i, s in enumerate(split):
142
+ if ':' in s:
143
+ if s[-1].endswith(':'):
144
+ raise ValueError('missing end range')
145
+ a, b = s.split(':')
146
+ if b[-1] in string.digits:
147
+ a = 0 if not a else int(a)
148
+ b = int(b)
149
+ split[i] = [str(c) for c in range(a, b)]
150
+ else:
151
+ a = a or 'a'
152
+ split[i] = [string.ascii_letters[c] for c in range(
153
+ string.ascii_letters.index(a),
154
+ string.ascii_letters.index(b) + 1)] # inclusive
155
+ if not split[i]:
156
+ break
157
+ else:
158
+ split[i] = [s]
159
+ else:
160
+ seq = True
161
+ if len(split) == 1:
162
+ names = split[0]
163
+ else:
164
+ names = [''.join(s) for s in cartes(*split)]
165
+ if literals:
166
+ result.extend([cls(literal(s), **args) for s in names])
167
+ else:
168
+ result.extend([cls(s, **args) for s in names])
169
+
170
+ if not seq and len(result) <= 1:
171
+ if not result:
172
+ return ()
173
+ return result[0]
174
+
175
+ return tuple(result)
176
+ else:
177
+ for name in names:
178
+ result.append(symbols(name, **args))
179
+
180
+ return type(names)(result)
181
+
182
+
183
+ def var(names, **args):
184
+ """
185
+ Create symbols and inject them into the global namespace.
186
+
187
+ INPUT:
188
+ - s -- a string, either a single variable name, or
189
+ - a space separated list of variable names, or
190
+ - a list of variable names.
191
+
192
+ This calls :func:`symbols` with the same arguments and puts the results
193
+ into the *global* namespace. It's recommended not to use :func:`var` in
194
+ library code, where :func:`symbols` has to be used::
195
+
196
+ Examples
197
+ ========
198
+
199
+ >>> from symengine import var
200
+
201
+ >>> var('x')
202
+ x
203
+ >>> x
204
+ x
205
+
206
+ >>> var('a,ab,abc')
207
+ (a, ab, abc)
208
+ >>> abc
209
+ abc
210
+
211
+ See :func:`symbols` documentation for more details on what kinds of
212
+ arguments can be passed to :func:`var`.
213
+
214
+ """
215
+ def traverse(symbols, frame):
216
+ """Recursively inject symbols to the global namespace. """
217
+ for symbol in symbols:
218
+ if isinstance(symbol, Basic):
219
+ frame.f_globals[symbol.__str__()] = symbol
220
+ # Once we hace an undefined function class
221
+ # implemented, put a check for function here
222
+ else:
223
+ traverse(symbol, frame)
224
+
225
+ from inspect import currentframe
226
+ frame = currentframe().f_back
227
+
228
+ try:
229
+ syms = symbols(names, **args)
230
+
231
+ if syms is not None:
232
+ if isinstance(syms, Basic):
233
+ frame.f_globals[syms.__str__()] = syms
234
+ # Once we hace an undefined function class
235
+ # implemented, put a check for function here
236
+ else:
237
+ traverse(syms, frame)
238
+ finally:
239
+ del frame # break cyclic dependencies as stated in inspect docs
240
+
241
+ return syms
242
+
243
+
244
+ class NotIterable:
245
+ """
246
+ Use this as mixin when creating a class which is not supposed to return
247
+ true when iterable() is called on its instances. I.e. avoid infinite loop
248
+ when calling e.g. list() on the instance
249
+ """
250
+ pass
251
+
252
+
253
+ def iterable(i, exclude=(str, dict, NotIterable)):
254
+ """
255
+ Return a boolean indicating whether ``i`` is SymPy iterable.
256
+ True also indicates that the iterator is finite, i.e. you e.g.
257
+ call list(...) on the instance.
258
+
259
+ When SymPy is working with iterables, it is almost always assuming
260
+ that the iterable is not a string or a mapping, so those are excluded
261
+ by default. If you want a pure Python definition, make exclude=None. To
262
+ exclude multiple items, pass them as a tuple.
263
+ """
264
+ try:
265
+ iter(i)
266
+ except TypeError:
267
+ return False
268
+ if exclude:
269
+ return not isinstance(i, exclude)
270
+ return True
271
+
272
+
273
+ def is_sequence(i):
274
+ """
275
+ Return a boolean indicating whether ``i`` is a sequence in the SymPy
276
+ sense. If anything that fails the test below should be included as
277
+ being a sequence for your application, set 'include' to that object's
278
+ type; multiple types should be passed as a tuple of types.
279
+ """
280
+ return hasattr(i, '__getitem__') and iterable(i)
@@ -0,0 +1,40 @@
1
+ Metadata-Version: 2.4
2
+ Name: symengine
3
+ Version: 0.14.1
4
+ Summary: Python library providing wrappers to SymEngine
5
+ Home-page: https://github.com/symengine/symengine.py
6
+ Author: SymEngine development team
7
+ Author-email: symengine@googlegroups.com
8
+ License: MIT
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Topic :: Scientific/Engineering
13
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
14
+ Classifier: Topic :: Scientific/Engineering :: Physics
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.9,<4
21
+ License-File: LICENSE
22
+ License-File: AUTHORS
23
+ Dynamic: author
24
+ Dynamic: author-email
25
+ Dynamic: classifier
26
+ Dynamic: description
27
+ Dynamic: home-page
28
+ Dynamic: license
29
+ Dynamic: license-file
30
+ Dynamic: requires-python
31
+ Dynamic: summary
32
+
33
+
34
+ SymEngine is a standalone fast C++ symbolic manipulation library.
35
+ Optional thin Python wrappers (SymEngine) allow easy usage from Python and
36
+ integration with SymPy and Sage.
37
+
38
+ See https://github.com/symengine/symengine.py for information about License
39
+ and dependencies of wheels
40
+
@@ -0,0 +1,78 @@
1
+ symengine/functions.py,sha256=LNfGb-yI6aXo9BszdmJWfFjZhQFCSYF44fXGMDhLwb8,425
2
+ symengine/test_utilities.py,sha256=Pk8RHape9EeGatC3nUE5M-IJoL-U3_WHRS6TdRVWg6g,3086
3
+ symengine/__init__.py,sha256=4YfiCPDHEwlmrzp7S4Uvix_FUhGwSk3p1bEiHxPGi2o,2403
4
+ symengine/sympy_compat.py,sha256=pmISwghw-gwE3yM-cpJ2gYWyzO43GQrFVAzeDCLeFRM,171
5
+ symengine/utilities.py,sha256=bn22sbLtKRQVR_G17O4-iO3K7Bo2kOvRZnkjl7IPrR8,9604
6
+ symengine/printing.py,sha256=BKOTrj3voT6enkYZYvimM32ibVcBdLNVF4eIgIjHHW8,1115
7
+ symengine/tests/test_lambdify.py,sha256=06jS9ivhHnTlLSHOClU5YO-9zTTHQGomA85D-lauPQo,29318
8
+ symengine/tests/test_sage.py,sha256=kp_UzeS6vuIlLIc6f3PnykdBMNVKP8k2lZppsX29aOI,5400
9
+ symengine/tests/test_sympy_compat.py,sha256=T24NXeFuStVKvzfZU4HL26RxXkH_2CHCBvdpJsWOd8s,4959
10
+ symengine/tests/test_solve.py,sha256=MnAdXm3ZyX09FnQixaMNDG7vqMX-rr46U9UF5BpBZoY,935
11
+ symengine/tests/test_subs.py,sha256=HlX_iYSSWqJQmSg7x8vRckHgre7Pl8ly6HdbTU-GYTw,1810
12
+ symengine/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ symengine/tests/test_matrices.py,sha256=RH-5dDBkTaM0_krJg2TqFQsM5k6LKK3MCC50gEhX5Ww,20648
14
+ symengine/tests/test_series_expansion.py,sha256=GfgoubMmPB30nasMB6t9JR-5uVg3xYOk9oAWDr0DWYY,741
15
+ symengine/tests/test_sympy_conv.py,sha256=uR_6ThIEyDSq-dbrlE8x52eC3wbdnij0tLbEokLqF04,27637
16
+ symengine/tests/test_cse.py,sha256=9SMfCrdQ7ZDoTkbcOk28UhXD2ZDFFbDFiAxOjWM5Ofk,469
17
+ symengine/tests/test_arit.py,sha256=VEigtuYdMjyHP04UMIOTtuI1yCKxoeKlGjO43MDZ-9E,5693
18
+ symengine/tests/test_pickling.py,sha256=lkRqJkkmg8Cot9ng2WnoVkVQH_LyeOtqx-SZorqZLj0,1562
19
+ symengine/tests/test_printing.py,sha256=9_t5rlV1NQUZvolvFKiuuCtpwjS_6hb8FBMXkoGKV-o,1286
20
+ symengine/tests/test_functions.py,sha256=Ctw1o-I3JV3FFiT8SkFha0qXtm8LpI2hmsY2W5WeoG4,11575
21
+ symengine/tests/test_dict_basic.py,sha256=ger2sexbuua1tAxc3JfXlXGrnG2iRAThxGLc01j3jGc,640
22
+ symengine/tests/test_var.py,sha256=q-6R2GVi9AF5eD16jiy_kks2xH4ReUqudZ_S-Zf7O90,1286
23
+ symengine/tests/test_expr.py,sha256=pjkUfuLSXQtAQv110uiF0hJJyw_8i3XXU2A-q51GHl0,1037
24
+ symengine/tests/test_number.py,sha256=F3WIKwBwfWdyHaY7cu9yOtTm4AaGPO71s256tQih3dA,5041
25
+ symengine/tests/test_sympify.py,sha256=yL8JRRdnocswCHQM0S38KDbLB_6VwgZJl3R_HB1M-v4,1868
26
+ symengine/tests/test_ntheory.py,sha256=jMjJVc1pomRDOWXRqqhQTHHUE-npOki4KxKMvWg6m1k,6312
27
+ symengine/tests/test_sets.py,sha256=QWcZHWlK5pD5SZrF72uhYZjhYXm4fbmV5OzrQwqYeYQ,4177
28
+ symengine/tests/test_symbol.py,sha256=5ARwhVtox-fH5kSBgM8JuPbUJK4BJ3HCUo-LiVf39To,5296
29
+ symengine/tests/test_logic.py,sha256=Htbekxw7rQgSShfbcBwZpEi-T7Tb3lZPJ8_kJQWI7as,3546
30
+ symengine/tests/test_eval.py,sha256=xIPgDolURXLoc7qehkYKdr8F4reNz5b-Gy9ptJcTbCc,1743
31
+ symengine/tests/__pycache__/test_logic.cpython-314.pyc,sha256=MyzEEfcB2T_shJ_zW0Mwl3NfRX7KvAaQbW8sassn3_A,8690
32
+ symengine/tests/__pycache__/test_var.cpython-314.pyc,sha256=md8UVH-Z3UoGZyW-7-ng6uNb1bB7wuBi-9J6nyrjryw,3101
33
+ symengine/tests/__pycache__/test_series_expansion.cpython-314.pyc,sha256=Gq_FIXpmsNJlxgbiZT_2zW_tfYei2zMzIdHoMHIij4Q,1956
34
+ symengine/tests/__pycache__/test_eval.cpython-314.pyc,sha256=sqVx9QQyADagDfU31J1gZq6Rs9sETpuQtCWOH0KpR-A,5142
35
+ symengine/tests/__pycache__/test_matrices.cpython-314.pyc,sha256=mKQRCX0SWUq5jmefaCbrATa0xqSIPaIyZLMsYyg1n0Q,43222
36
+ symengine/tests/__pycache__/test_sympify.cpython-314.pyc,sha256=AMGYEYO6H04cr4q8wLcQRfhFZ74HIZTsRKEtAkVamWE,5155
37
+ symengine/tests/__pycache__/test_symbol.cpython-314.pyc,sha256=Wsmjp1BMzrc3Dt38u0PZpiuWNboQNR2OBHE3ufViQ5Q,10084
38
+ symengine/tests/__pycache__/test_functions.cpython-314.pyc,sha256=majMx6b8Ag7q5-a2udzulRmMoOEPsRKYl2Ohx-VIRiw,28312
39
+ symengine/tests/__pycache__/test_printing.cpython-314.pyc,sha256=sBrueK-ZK_p_nWTsv3hXOH96JqNCHI_DqC12XoACsEk,3160
40
+ symengine/tests/__pycache__/test_expr.cpython-314.pyc,sha256=Z__54c7o640Vhni18MLbLw6qrlQ42dQOKMNP-WUWlw4,2708
41
+ symengine/tests/__pycache__/test_number.cpython-314.pyc,sha256=T9Un5BD-OF55637t0jqN0w_1B_URx5g7Y6eYLDSQKnI,10601
42
+ symengine/tests/__pycache__/test_ntheory.cpython-314.pyc,sha256=oKPcnPBmTHwKBVjMEOUfxsAoVIx4kG3j3X9wj6KGaT8,15014
43
+ symengine/tests/__pycache__/test_lambdify.cpython-314.pyc,sha256=yJ8WN1zG3GZktEFK0VPQbbcE3oSkXDznF-UsYLpmudA,68919
44
+ symengine/tests/__pycache__/test_dict_basic.cpython-314.pyc,sha256=oo-EFRqG4McKazftUvwZM6Ht31ZM_ZqISa5H6D5urm8,1782
45
+ symengine/tests/__pycache__/test_sympy_conv.cpython-314.pyc,sha256=kQBrqPx56DzJNQ-SL4ps6SBTNPBns3gAhANuac4fzp0,66001
46
+ symengine/tests/__pycache__/test_arit.cpython-314.pyc,sha256=Pa94NgVWCqGYpm0UR-7Spk61KymOHBz-82oxOcaFT3g,16318
47
+ symengine/tests/__pycache__/test_sets.cpython-314.pyc,sha256=WYD4YUzjVekgry1L08V3Xv5-msmkFJzVmpUofHyFYZQ,9102
48
+ symengine/tests/__pycache__/test_pickling.cpython-314.pyc,sha256=BvMZYWYvoehkpchSAggJR-1S23zpSYdqq7jNdAJrhHY,4347
49
+ symengine/tests/__pycache__/test_solve.cpython-314.pyc,sha256=4r36dvMZaL1Thpt82l7O5i1P-M6zmlrhbpgvpzelo6Y,2350
50
+ symengine/tests/__pycache__/test_subs.cpython-314.pyc,sha256=wKRgF-Av9LO_9A3JK5FdF0nEmOa4nZ5BSc1xQm_o5gw,4861
51
+ symengine/tests/__pycache__/__init__.cpython-314.pyc,sha256=eLZQ9cGJ_IahEr42uZP0qAxaSloPh-kPRFPFKmEVfVw,166
52
+ symengine/tests/__pycache__/test_cse.cpython-314.pyc,sha256=8QoxucX3UGMYK3MbJLcrUNG5UBTnrLfzwfe7RAfkYiU,1227
53
+ symengine/tests/__pycache__/test_sympy_compat.cpython-314.pyc,sha256=Av2hRwoWzQCu8os-FDInQKgAMNJ_ltqzWfED6pFH31c,11609
54
+ symengine/tests/__pycache__/test_sage.cpython-314.pyc,sha256=kIkOYm8jqXevBlnAFrCI8SCB9MrxDQoDEgD_X7lya2M,10777
55
+ symengine/__pycache__/utilities.cpython-314.pyc,sha256=2kGhq8LnsQVYrzUR_20ua5T1-UncPUX80F9hfvgq29c,11613
56
+ symengine/__pycache__/sympy_compat.cpython-314.pyc,sha256=LEafBnlvY4cYPEtxU-eO-TyzLEDUlnypc0FLdcbPOOE,386
57
+ symengine/__pycache__/printing.cpython-314.pyc,sha256=Vq_BsK7sHNByPBwsV1wqsAXNc55B7Kboc1pM9Q2EIkI,2037
58
+ symengine/__pycache__/test_utilities.cpython-314.pyc,sha256=LqGYXD9ecU8z5kWi5q6GTT08PIVjmaMSMDGjoj97q9A,3505
59
+ symengine/__pycache__/__init__.cpython-314.pyc,sha256=bfXAxKlf4nMvuVwsi2f9F-sjZEj7M6A_O4WmU2aVvOQ,4329
60
+ symengine/__pycache__/functions.cpython-314.pyc,sha256=IKbmMfgKbi7CF_fWlRGRM3ivdlJQ82uQXScR4S2woQY,1045
61
+ symengine/.dylibs/libflint.20.0.dylib,sha256=RVNLsOwe2mm9xyTXU0rgWlqoWHj_pBAN66ed5ic-UIg,12939344
62
+ symengine/.dylibs/libmpc.3.dylib,sha256=DOX73EO5Yp6PCItFKEsw3vMGtu_uB0fTaVtDa5aCHCI,113408
63
+ symengine/.dylibs/libz.1.3.1.dylib,sha256=I8VSdQ93YFgqi2syGx6xD2H9Uvnd0-gD1gILP5UQJGs,103424
64
+ symengine/.dylibs/libgmp.10.dylib,sha256=3qA0jNnS-LBZjr92qp6eTjvOWDRrujtpDvjYHvRgZLA,625744
65
+ symengine/.dylibs/libmpfr.6.dylib,sha256=hTowEeuaMukzB6ApaxBGfdas3QLeEbSVpSH-aLh070M,477232
66
+ symengine/.dylibs/libzstd.1.5.7.dylib,sha256=TJuLFtsfLvGLA8PnYIfOxDdZ56HMa49qAeh2fwNKOeM,1002512
67
+ symengine/lib/symengine.pxd,sha256=OroamiaClbihMgQK1QVAHeFMyfSW6TynaugoYWhhLAw,44619
68
+ symengine/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ symengine/lib/pywrapper.h,sha256=5FeCXvth1dlnftGzPNYvSiUTcEl0eXCutJOZ5QgdVbg,8503
70
+ symengine/lib/symengine_wrapper.cpython-314t-darwin.so,sha256=jwVmmSIQTJqdrhMtKRofFVI2Pz_LokVjfDnfB_3LTS0,54201456
71
+ symengine/lib/symengine_wrapper.pxd,sha256=tyR6XjwXckcZqWjGk8iibwZNm6YhtqIU4BLwqKdJbHs,3313
72
+ symengine/lib/__pycache__/__init__.cpython-314.pyc,sha256=DltYAqxLXUXem-HWJ-XQMT1uMEw2CutGDQIcZZy7z-Y,164
73
+ symengine-0.14.1.dist-info/RECORD,,
74
+ symengine-0.14.1.dist-info/WHEEL,sha256=UlOYVXZUoedBznR7TtcHLe8dLSyBBw50dixq5hWMaMI,139
75
+ symengine-0.14.1.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
76
+ symengine-0.14.1.dist-info/METADATA,sha256=AYniqyfGIWVIkIjtV8YQQWpJTJFxLj_XxkE7i4S5pck,1335
77
+ symengine-0.14.1.dist-info/licenses/LICENSE,sha256=-xvtDIH_TwP5gAwjI6rTRHZ2ofLSlrlHhxpjXIsY-NA,20487
78
+ symengine-0.14.1.dist-info/licenses/AUTHORS,sha256=Cs77zqfNEGj1BZ_36dUoOcX2qfMhc7HzpgZQEYb3Juw,1710
@@ -0,0 +1,6 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp314-cp314t-macosx_10_13_x86_64
5
+ Generator: delocate 0.13.0
6
+
@@ -0,0 +1,41 @@
1
+ All people who contributed to symengine.py by sending at least a patch or more
2
+ (Note that this repository was a subfolder of symengine repo and early contributors
3
+ to the python bindings maybe listed in AUTHORS of symengine repo).
4
+ You can generate this file by: bin/update_authors.sh.
5
+
6
+ Ondřej Čertík <ondrej@certik.us>
7
+ Thilina Bandara Rathanyake <thilinarmtb@gmail.com>
8
+ Isuru Fernando <isuruf@gmail.com>
9
+ Sushant Hiray <hiraysushant@gmail.com>
10
+ Peter Brady <petertbrady@gmail.com>
11
+ Thilina Bandara Rathnayake <thilinarmtb@gmail.com>
12
+ Shivam Vats <shivamvats.iitkgp@gmail.com>
13
+ Sumith Kulal <sumith1896@gmail.com>
14
+ Connor Behan <connor.behan@gmail.com>
15
+ Ralf Stephan <ralf@ark.in-berlin.de>
16
+ Björn Dahlgren <bjodah@gmail.com>
17
+ Indrek Mandre <indrek@mare.ee>
18
+ Abhinav Agarwal <abhinavagarwal1996@gmail.com>
19
+ Matt Wala <wala1@illinois.edu>
20
+ Shikhar Jaiswal <jaiswalshikhar87@gmail.com>
21
+ Nilay Pochhi <pochhi.nilay@gmail.com>
22
+ xoviat <xoviat@users.noreply.github.com>
23
+ Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
24
+ Moritz E. Beber <morbeb@biosustain.dtu.dk>
25
+ Alan Hu <alanlh2@illinois.edu>
26
+ Richard Otis <richard.otis@outlook.com>
27
+ Erik Jansson Agnvall <erikjansson90@gmail.com>
28
+ Simon Stelter <stelter@uni-bremen.de>
29
+ Jialin Ma <marlin@inventati.org>
30
+ Rikard Nordgren <rikard.nordgren@farmaci.uu.se>
31
+ Rohit Goswami <rgoswami@ieee.org>
32
+ Matthew Treinish <mtreinish@kortar.org>
33
+ Michał Górny <mgorny@gentoo.org>
34
+ Garming Sam <garming@catalyst.net.nz>
35
+ Pieter Eendebak <pieter.eendebak@gmail.com>
36
+ Ayush Kumar <ayushk7102@gmail.com>
37
+ Christian Clauss <cclauss@me.com>
38
+ Moraxyc <i@qaq.li>
39
+ Aaron Miller <78561124+aaron-skydio@users.noreply.github.com>
40
+ Firat Bezir <bezir.1@osu.edu>
41
+ Adrian Ostrowski <adrian.ostrowski@intel.com>