symengine 0.9.2__cp38-cp38-win_amd64.whl → 0.11.0__cp38-cp38-win_amd64.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.
- symengine/lib/{flint-16.dll → flint-17.dll} +0 -0
- symengine/lib/mpc.dll +0 -0
- symengine/lib/mpfr.dll +0 -0
- symengine/lib/pywrapper.h +22 -5
- symengine/lib/symengine.pxd +274 -432
- symengine/lib/symengine_wrapper.cp38-win_amd64.lib +0 -0
- symengine/lib/symengine_wrapper.cp38-win_amd64.pyd +0 -0
- symengine/lib/symengine_wrapper.pxd +77 -86
- symengine/lib/zlib.dll +0 -0
- symengine/lib/zstd.dll +0 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/__init__.py +9 -3
- {symengine → symengine-0.11.0.data/purelib/symengine}/printing.py +3 -3
- symengine-0.11.0.data/purelib/symengine/test_utilities.py +95 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_arit.py +21 -10
- symengine-0.11.0.data/purelib/symengine/tests/test_cse.py +17 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_dict_basic.py +4 -4
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_eval.py +2 -2
- symengine-0.11.0.data/purelib/symengine/tests/test_expr.py +28 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_functions.py +2 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_lambdify.py +1 -6
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_logic.py +4 -2
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_matrices.py +22 -10
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_ntheory.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_number.py +1 -1
- symengine-0.11.0.data/purelib/symengine/tests/test_pickling.py +59 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_printing.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_series_expansion.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_sets.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_solve.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_subs.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_symbol.py +5 -5
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_sympify.py +2 -2
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_sympy_compat.py +2 -2
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_sympy_conv.py +40 -3
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_var.py +1 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/utilities.py +0 -93
- {symengine-0.9.2.dist-info → symengine-0.11.0.dist-info}/AUTHORS +1 -0
- {symengine-0.9.2.dist-info → symengine-0.11.0.dist-info}/METADATA +31 -33
- symengine-0.11.0.dist-info/RECORD +49 -0
- {symengine-0.9.2.dist-info → symengine-0.11.0.dist-info}/WHEEL +1 -1
- symengine-0.11.0.dist-info/top_level.txt +1 -0
- symengine/__pycache__/__init__.cpython-38.pyc +0 -0
- symengine/__pycache__/functions.cpython-38.pyc +0 -0
- symengine/__pycache__/printing.cpython-38.pyc +0 -0
- symengine/__pycache__/sympy_compat.cpython-38.pyc +0 -0
- symengine/__pycache__/utilities.cpython-38.pyc +0 -0
- symengine/lib/__pycache__/__init__.cpython-38.pyc +0 -0
- symengine/lib/config.pxi +0 -6
- symengine/tests/__pycache__/__init__.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_arit.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_dict_basic.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_eval.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_expr.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_functions.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_lambdify.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_logic.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_matrices.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_ntheory.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_number.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_printing.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_sage.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_series_expansion.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_sets.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_solve.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_subs.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_symbol.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_sympify.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_sympy_compat.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_sympy_conv.cpython-38.pyc +0 -0
- symengine/tests/__pycache__/test_var.cpython-38.pyc +0 -0
- symengine/tests/test_expr.py +0 -14
- symengine-0.9.2.dist-info/RECORD +0 -74
- symengine-0.9.2.dist-info/top_level.txt +0 -1
- {symengine → symengine-0.11.0.data/purelib/symengine}/functions.py +0 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/lib/__init__.py +0 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/sympy_compat.py +0 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/__init__.py +0 -0
- {symengine → symengine-0.11.0.data/purelib/symengine}/tests/test_sage.py +0 -0
- {symengine-0.9.2.dist-info → symengine-0.11.0.dist-info}/LICENSE +0 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
from symengine import symbols, sin, sinh, have_numpy, have_llvm, cos, Symbol
|
2
|
+
from symengine.test_utilities import raises
|
3
|
+
import pickle
|
4
|
+
import unittest
|
5
|
+
|
6
|
+
|
7
|
+
def test_basic():
|
8
|
+
x, y, z = symbols('x y z')
|
9
|
+
expr = sin(cos(x + y)/z)**2
|
10
|
+
s = pickle.dumps(expr)
|
11
|
+
expr2 = pickle.loads(s)
|
12
|
+
assert expr == expr2
|
13
|
+
|
14
|
+
|
15
|
+
class MySymbolBase(Symbol):
|
16
|
+
def __init__(self, name, attr):
|
17
|
+
super().__init__(name=name)
|
18
|
+
self.attr = attr
|
19
|
+
|
20
|
+
def __eq__(self, other):
|
21
|
+
if not isinstance(other, MySymbolBase):
|
22
|
+
return False
|
23
|
+
return self.name == other.name and self.attr == other.attr
|
24
|
+
|
25
|
+
|
26
|
+
class MySymbol(MySymbolBase):
|
27
|
+
def __reduce__(self):
|
28
|
+
return (self.__class__, (self.name, self.attr))
|
29
|
+
|
30
|
+
|
31
|
+
def test_pysymbol():
|
32
|
+
a = MySymbol("hello", attr=1)
|
33
|
+
b = pickle.loads(pickle.dumps(a + 2)) - 2
|
34
|
+
try:
|
35
|
+
assert a == b
|
36
|
+
finally:
|
37
|
+
a._unsafe_reset()
|
38
|
+
b._unsafe_reset()
|
39
|
+
|
40
|
+
a = MySymbolBase("hello", attr=1)
|
41
|
+
try:
|
42
|
+
raises(NotImplementedError, lambda: pickle.dumps(a))
|
43
|
+
raises(NotImplementedError, lambda: pickle.dumps(a + 2))
|
44
|
+
finally:
|
45
|
+
a._unsafe_reset()
|
46
|
+
|
47
|
+
|
48
|
+
@unittest.skipUnless(have_llvm, "No LLVM support")
|
49
|
+
@unittest.skipUnless(have_numpy, "Numpy not installed")
|
50
|
+
def test_llvm_double():
|
51
|
+
import numpy as np
|
52
|
+
from symengine import Lambdify
|
53
|
+
args = x, y, z = symbols('x y z')
|
54
|
+
expr = sin(sinh(x+y) + z)
|
55
|
+
l = Lambdify(args, expr, cse=True, backend='llvm')
|
56
|
+
ss = pickle.dumps(l)
|
57
|
+
ll = pickle.loads(ss)
|
58
|
+
inp = [1, 2, 3]
|
59
|
+
assert np.allclose(l(inp), ll(inp))
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from symengine.
|
1
|
+
from symengine.test_utilities import raises
|
2
2
|
from symengine.lib.symengine_wrapper import (Interval, EmptySet, UniversalSet,
|
3
3
|
FiniteSet, Union, Complement, ImageSet, ConditionSet, Reals, Rationals,
|
4
4
|
Integers, And, Or, oo, Symbol, true, Ge, Eq, Gt)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from symengine import Symbol, symbols, symarray, has_symbol, Dummy
|
2
|
-
from symengine.
|
2
|
+
from symengine.test_utilities import raises
|
3
3
|
import unittest
|
4
4
|
import platform
|
5
5
|
|
@@ -48,7 +48,7 @@ def test_symbols():
|
|
48
48
|
|
49
49
|
assert symbols(('x', 'y', 'z')) == (x, y, z)
|
50
50
|
assert symbols(['x', 'y', 'z']) == [x, y, z]
|
51
|
-
assert symbols(
|
51
|
+
assert symbols({'x', 'y', 'z'}) == {x, y, z}
|
52
52
|
|
53
53
|
raises(ValueError, lambda: symbols(''))
|
54
54
|
raises(ValueError, lambda: symbols(','))
|
@@ -104,13 +104,13 @@ def test_symbols():
|
|
104
104
|
assert sym('a0:4') == '(a0, a1, a2, a3)'
|
105
105
|
assert sym('a2:4,b1:3') == '(a2, a3, b1, b2)'
|
106
106
|
assert sym('a1(2:4)') == '(a12, a13)'
|
107
|
-
assert sym(
|
108
|
-
assert sym(
|
107
|
+
assert sym('a0:2.0:2') == '(a0.0, a0.1, a1.0, a1.1)'
|
108
|
+
assert sym('aa:cz') == '(aaz, abz, acz)'
|
109
109
|
assert sym('aa:c0:2') == '(aa0, aa1, ab0, ab1, ac0, ac1)'
|
110
110
|
assert sym('aa:ba:b') == '(aaa, aab, aba, abb)'
|
111
111
|
assert sym('a:3b') == '(a0b, a1b, a2b)'
|
112
112
|
assert sym('a-1:3b') == '(a-1b, a-2b)'
|
113
|
-
assert sym('a:2\,:2' + chr(0)) == '(a0,0%s, a0,1%s, a1,0%s, a1,1%s)' % (
|
113
|
+
assert sym(r'a:2\,:2' + chr(0)) == '(a0,0%s, a0,1%s, a1,0%s, a1,1%s)' % (
|
114
114
|
(chr(0),)*4)
|
115
115
|
assert sym('x(:a:3)') == '(x(a0), x(a1), x(a2))'
|
116
116
|
assert sym('x(:c):1') == '(xa0, xb0, xc0)'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from symengine.
|
1
|
+
from symengine.test_utilities import raises
|
2
2
|
|
3
3
|
from symengine import (Symbol, Integer, sympify, SympifyError, true, false, pi, nan, oo,
|
4
4
|
zoo, E, I, GoldenRatio, Catalan, Rational, sqrt, Eq)
|
@@ -44,7 +44,7 @@ def test_S():
|
|
44
44
|
|
45
45
|
|
46
46
|
def test_sympify_error1a():
|
47
|
-
class Test
|
47
|
+
class Test:
|
48
48
|
pass
|
49
49
|
raises(SympifyError, lambda: sympify(Test()))
|
50
50
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from symengine.sympy_compat import (Integer, Rational, S, Basic, Add, Mul,
|
2
2
|
Pow, symbols, Symbol, log, sin, cos, sech, csch, zeros, atan2, nan, Number, Float,
|
3
3
|
Min, Max, RealDouble, have_mpfr, Abs)
|
4
|
-
from symengine.
|
4
|
+
from symengine.test_utilities import raises
|
5
5
|
|
6
6
|
|
7
7
|
def test_Integer():
|
@@ -183,7 +183,7 @@ def test_subclass_symbol():
|
|
183
183
|
return Symbol.__new__(cls, name)
|
184
184
|
|
185
185
|
def __init__(self, name, extra_attribute):
|
186
|
-
super(
|
186
|
+
super().__init__(name)
|
187
187
|
self.extra_attribute = extra_attribute
|
188
188
|
|
189
189
|
# Instantiate the subclass
|
@@ -2,8 +2,8 @@ from symengine import (Symbol, Integer, sympify, SympifyError, log,
|
|
2
2
|
function_symbol, I, E, pi, oo, zoo, nan, true, false,
|
3
3
|
exp, gamma, have_mpfr, have_mpc, DenseMatrix, sin, cos, tan, cot,
|
4
4
|
csc, sec, asin, acos, atan, acot, acsc, asec, sinh, cosh, tanh, coth,
|
5
|
-
asinh, acosh, atanh, acoth, Add, Mul, Pow, diff, GoldenRatio,
|
6
|
-
Catalan, EulerGamma, UnevaluatedExpr)
|
5
|
+
asinh, acosh, atanh, acoth, atan2, Add, Mul, Pow, diff, GoldenRatio,
|
6
|
+
Catalan, EulerGamma, UnevaluatedExpr, RealDouble)
|
7
7
|
from symengine.lib.symengine_wrapper import (Subs, Derivative, RealMPFR,
|
8
8
|
ComplexMPC, PyNumber, Function, LambertW, zeta, dirichlet_eta,
|
9
9
|
KroneckerDelta, LeviCivita, erf, erfc, lowergamma, uppergamma,
|
@@ -171,6 +171,7 @@ def test_conv7():
|
|
171
171
|
assert acot(x/3) == acot(sympy.Symbol("x") / 3)
|
172
172
|
assert acsc(x/3) == acsc(sympy.Symbol("x") / 3)
|
173
173
|
assert asec(x/3) == asec(sympy.Symbol("x") / 3)
|
174
|
+
assert atan2(x/3, y) == atan2(sympy.Symbol("x") / 3, sympy.Symbol("y"))
|
174
175
|
|
175
176
|
assert sin(x/3)._sympy_() == sympy.sin(sympy.Symbol("x") / 3)
|
176
177
|
assert sin(x/3)._sympy_() != sympy.cos(sympy.Symbol("x") / 3)
|
@@ -185,6 +186,22 @@ def test_conv7():
|
|
185
186
|
assert acot(x/3)._sympy_() == sympy.acot(sympy.Symbol("x") / 3)
|
186
187
|
assert acsc(x/3)._sympy_() == sympy.acsc(sympy.Symbol("x") / 3)
|
187
188
|
assert asec(x/3)._sympy_() == sympy.asec(sympy.Symbol("x") / 3)
|
189
|
+
assert atan2(x/3, y)._sympy_() == sympy.atan2(sympy.Symbol("x") / 3, sympy.Symbol("y"))
|
190
|
+
|
191
|
+
assert sympy.sympify(sin(x/3)) == sympy.sin(sympy.Symbol("x") / 3)
|
192
|
+
assert sympy.sympify(sin(x/3)) != sympy.cos(sympy.Symbol("x") / 3)
|
193
|
+
assert sympy.sympify(cos(x/3)) == sympy.cos(sympy.Symbol("x") / 3)
|
194
|
+
assert sympy.sympify(tan(x/3)) == sympy.tan(sympy.Symbol("x") / 3)
|
195
|
+
assert sympy.sympify(cot(x/3)) == sympy.cot(sympy.Symbol("x") / 3)
|
196
|
+
assert sympy.sympify(csc(x/3)) == sympy.csc(sympy.Symbol("x") / 3)
|
197
|
+
assert sympy.sympify(sec(x/3)) == sympy.sec(sympy.Symbol("x") / 3)
|
198
|
+
assert sympy.sympify(asin(x/3)) == sympy.asin(sympy.Symbol("x") / 3)
|
199
|
+
assert sympy.sympify(acos(x/3)) == sympy.acos(sympy.Symbol("x") / 3)
|
200
|
+
assert sympy.sympify(atan(x/3)) == sympy.atan(sympy.Symbol("x") / 3)
|
201
|
+
assert sympy.sympify(acot(x/3)) == sympy.acot(sympy.Symbol("x") / 3)
|
202
|
+
assert sympy.sympify(acsc(x/3)) == sympy.acsc(sympy.Symbol("x") / 3)
|
203
|
+
assert sympy.sympify(asec(x/3)) == sympy.asec(sympy.Symbol("x") / 3)
|
204
|
+
assert sympy.sympify(atan2(x/3, y)) == sympy.atan2(sympy.Symbol("x") / 3, sympy.Symbol("y"))
|
188
205
|
|
189
206
|
|
190
207
|
@unittest.skipIf(not have_sympy, "SymPy not installed")
|
@@ -204,6 +221,7 @@ def test_conv7b():
|
|
204
221
|
assert sympify(sympy.acot(x/3)) == acot(Symbol("x") / 3)
|
205
222
|
assert sympify(sympy.acsc(x/3)) == acsc(Symbol("x") / 3)
|
206
223
|
assert sympify(sympy.asec(x/3)) == asec(Symbol("x") / 3)
|
224
|
+
assert sympify(sympy.atan2(x/3, y)) == atan2(Symbol("x") / 3, Symbol("y"))
|
207
225
|
|
208
226
|
|
209
227
|
@unittest.skipIf(not have_sympy, "SymPy not installed")
|
@@ -515,7 +533,7 @@ def test_zeta():
|
|
515
533
|
e1 = sympy.zeta(sympy.Symbol("x"), sympy.Symbol("y"))
|
516
534
|
e2 = zeta(x, y)
|
517
535
|
assert sympify(e1) == e2
|
518
|
-
assert e2._sympy_() == e1
|
536
|
+
assert e2._sympy_() == e1
|
519
537
|
|
520
538
|
|
521
539
|
@unittest.skipIf(not have_sympy, "SymPy not installed")
|
@@ -796,3 +814,22 @@ def test_construct_dense_matrix():
|
|
796
814
|
B = DenseMatrix(A)
|
797
815
|
assert B.shape == (2, 2)
|
798
816
|
assert list(B) == [1, 2, 3, 5]
|
817
|
+
|
818
|
+
|
819
|
+
@unittest.skipIf(not have_sympy, "SymPy not installed")
|
820
|
+
def test_conv_doubles():
|
821
|
+
f = 4.347249999999999
|
822
|
+
a = sympify(f)
|
823
|
+
assert isinstance(a, RealDouble)
|
824
|
+
assert sympify(a._sympy_()) == a
|
825
|
+
assert float(a) == f
|
826
|
+
assert float(a._sympy_()) == f
|
827
|
+
|
828
|
+
def test_conv_large_integers():
|
829
|
+
a = Integer(10)**10000
|
830
|
+
# check that convert to python int does not throw
|
831
|
+
b = int(a)
|
832
|
+
# check that convert to sympy int does not throw
|
833
|
+
if have_sympy:
|
834
|
+
c = a._sympy_()
|
835
|
+
d = sympify(c)
|
@@ -241,99 +241,6 @@ def var(names, **args):
|
|
241
241
|
return syms
|
242
242
|
|
243
243
|
|
244
|
-
try:
|
245
|
-
import py
|
246
|
-
from py.test import skip, raises
|
247
|
-
USE_PYTEST = getattr(sys, '_running_pytest', False)
|
248
|
-
except ImportError:
|
249
|
-
USE_PYTEST = False
|
250
|
-
|
251
|
-
if not USE_PYTEST:
|
252
|
-
def raises(expectedException, code=None):
|
253
|
-
"""
|
254
|
-
Tests that ``code`` raises the exception ``expectedException``.
|
255
|
-
|
256
|
-
``code`` may be a callable, such as a lambda expression or function
|
257
|
-
name.
|
258
|
-
|
259
|
-
If ``code`` is not given or None, ``raises`` will return a context
|
260
|
-
manager for use in ``with`` statements; the code to execute then
|
261
|
-
comes from the scope of the ``with``.
|
262
|
-
|
263
|
-
``raises()`` does nothing if the callable raises the expected
|
264
|
-
exception, otherwise it raises an AssertionError.
|
265
|
-
|
266
|
-
Examples
|
267
|
-
========
|
268
|
-
|
269
|
-
>>> from symengine.pytest import raises
|
270
|
-
|
271
|
-
>>> raises(ZeroDivisionError, lambda: 1/0)
|
272
|
-
>>> raises(ZeroDivisionError, lambda: 1/2)
|
273
|
-
Traceback (most recent call last):
|
274
|
-
...
|
275
|
-
AssertionError: DID NOT RAISE
|
276
|
-
|
277
|
-
>>> with raises(ZeroDivisionError):
|
278
|
-
... n = 1/0
|
279
|
-
>>> with raises(ZeroDivisionError):
|
280
|
-
... n = 1/2
|
281
|
-
Traceback (most recent call last):
|
282
|
-
...
|
283
|
-
AssertionError: DID NOT RAISE
|
284
|
-
|
285
|
-
Note that you cannot test multiple statements via
|
286
|
-
``with raises``:
|
287
|
-
|
288
|
-
>>> with raises(ZeroDivisionError):
|
289
|
-
... n = 1/0 # will execute and raise, aborting the ``with``
|
290
|
-
... n = 9999/0 # never executed
|
291
|
-
|
292
|
-
This is just what ``with`` is supposed to do: abort the
|
293
|
-
contained statement sequence at the first exception and let
|
294
|
-
the context manager deal with the exception.
|
295
|
-
|
296
|
-
To test multiple statements, you'll need a separate ``with``
|
297
|
-
for each:
|
298
|
-
|
299
|
-
>>> with raises(ZeroDivisionError):
|
300
|
-
... n = 1/0 # will execute and raise
|
301
|
-
>>> with raises(ZeroDivisionError):
|
302
|
-
... n = 9999/0 # will also execute and raise
|
303
|
-
|
304
|
-
"""
|
305
|
-
if code is None:
|
306
|
-
return RaisesContext(expectedException)
|
307
|
-
elif callable(code):
|
308
|
-
try:
|
309
|
-
code()
|
310
|
-
except expectedException:
|
311
|
-
return
|
312
|
-
raise AssertionError("DID NOT RAISE")
|
313
|
-
elif isinstance(code, str):
|
314
|
-
raise TypeError(
|
315
|
-
'\'raises(xxx, "code")\' has been phased out; '
|
316
|
-
'change \'raises(xxx, "expression")\' '
|
317
|
-
'to \'raises(xxx, lambda: expression)\', '
|
318
|
-
'\'raises(xxx, "statement")\' '
|
319
|
-
'to \'with raises(xxx): statement\'')
|
320
|
-
else:
|
321
|
-
raise TypeError(
|
322
|
-
'raises() expects a callable for the 2nd argument.')
|
323
|
-
|
324
|
-
class RaisesContext(object):
|
325
|
-
def __init__(self, expectedException):
|
326
|
-
self.expectedException = expectedException
|
327
|
-
|
328
|
-
def __enter__(self):
|
329
|
-
return None
|
330
|
-
|
331
|
-
def __exit__(self, exc_type, exc_value, traceback):
|
332
|
-
if exc_type is None:
|
333
|
-
raise AssertionError("DID NOT RAISE")
|
334
|
-
return issubclass(exc_type, self.expectedException)
|
335
|
-
|
336
|
-
|
337
244
|
class NotIterable:
|
338
245
|
"""
|
339
246
|
Use this as mixin when creating a class which is not supposed to return
|
@@ -1,33 +1,31 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: symengine
|
3
|
-
Version: 0.
|
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
|
-
|
10
|
-
Classifier:
|
11
|
-
Classifier:
|
12
|
-
Classifier:
|
13
|
-
Classifier: Topic :: Scientific/Engineering
|
14
|
-
Classifier: Topic :: Scientific/Engineering ::
|
15
|
-
Classifier:
|
16
|
-
Classifier: Programming Language :: Python :: 3.
|
17
|
-
Classifier: Programming Language :: Python :: 3.
|
18
|
-
Classifier: Programming Language :: Python :: 3.
|
19
|
-
Classifier: Programming Language :: Python :: 3.
|
20
|
-
Requires-Python: >=3.
|
21
|
-
License-File: LICENSE
|
22
|
-
License-File: AUTHORS
|
23
|
-
|
24
|
-
|
25
|
-
SymEngine is a standalone fast C++ symbolic manipulation library.
|
26
|
-
Optional thin Python wrappers (SymEngine) allow easy usage from Python and
|
27
|
-
integration with SymPy and Sage.
|
28
|
-
|
29
|
-
See https://github.com/symengine/symengine.py for information about License
|
30
|
-
and dependencies of wheels
|
31
|
-
|
32
|
-
|
33
|
-
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: symengine
|
3
|
+
Version: 0.11.0
|
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.8
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
20
|
+
Requires-Python: >=3.8,<4
|
21
|
+
License-File: LICENSE
|
22
|
+
License-File: AUTHORS
|
23
|
+
|
24
|
+
|
25
|
+
SymEngine is a standalone fast C++ symbolic manipulation library.
|
26
|
+
Optional thin Python wrappers (SymEngine) allow easy usage from Python and
|
27
|
+
integration with SymPy and Sage.
|
28
|
+
|
29
|
+
See https://github.com/symengine/symengine.py for information about License
|
30
|
+
and dependencies of wheels
|
31
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
symengine/lib/flint-17.dll,sha256=1dVCVFCzpRWLZfEEAxTIoM3fphsZZlMni_LE2lNWqyY,7675904
|
2
|
+
symengine/lib/mpc.dll,sha256=evUU326S9KR7-BJpgtMyUFG_nvh0Cpm7-pXxryNEvGo,99328
|
3
|
+
symengine/lib/mpfr.dll,sha256=9BF4BLf8tOXwdCt0dc1AWdqwx8FTd5xn5zFbZkHu5eg,515584
|
4
|
+
symengine/lib/mpir.dll,sha256=CNkBuXqYfdIwI-9Cc9JvxuD_f83c26a2453AV5Ma-ZQ,612352
|
5
|
+
symengine/lib/pthreadVSE2.dll,sha256=c4c6nbKPnbnWCLy_UL8Ffcuo9Q12CLZkOG2snbtFPEE,58368
|
6
|
+
symengine/lib/pywrapper.h,sha256=5FeCXvth1dlnftGzPNYvSiUTcEl0eXCutJOZ5QgdVbg,8503
|
7
|
+
symengine/lib/symengine.pxd,sha256=60hdRcCRKWBqu44EGyJlGLcj4_qlzMxZQTZQuxXJmqw,44443
|
8
|
+
symengine/lib/symengine_wrapper.cp38-win_amd64.lib,sha256=VlP8yJi0T1wnybOZMNYW1IW3Xo44FQZrjBHmpuhx28o,5602
|
9
|
+
symengine/lib/symengine_wrapper.cp38-win_amd64.pyd,sha256=6kmNGgC4JNSvU3NKYJ7aNlmBE3xRzj4mgh9RqA-MBTI,30286848
|
10
|
+
symengine/lib/symengine_wrapper.pxd,sha256=pUDxGIiIiymJ-wIr5PQJjfqE-KZUC78wI5AUR55LImY,2986
|
11
|
+
symengine/lib/zlib.dll,sha256=vden14yC8r1TlXchB_W_2_uSt8ToNsw9eLy1TfSBXsU,89088
|
12
|
+
symengine/lib/zstd.dll,sha256=Mjzh_dBxp--uWtchXWrZgckM7SjvipFdh22vphJdF_g,651264
|
13
|
+
symengine-0.11.0.data/purelib/symengine/functions.py,sha256=LNfGb-yI6aXo9BszdmJWfFjZhQFCSYF44fXGMDhLwb8,425
|
14
|
+
symengine-0.11.0.data/purelib/symengine/printing.py,sha256=BKOTrj3voT6enkYZYvimM32ibVcBdLNVF4eIgIjHHW8,1115
|
15
|
+
symengine-0.11.0.data/purelib/symengine/sympy_compat.py,sha256=pmISwghw-gwE3yM-cpJ2gYWyzO43GQrFVAzeDCLeFRM,171
|
16
|
+
symengine-0.11.0.data/purelib/symengine/test_utilities.py,sha256=Pk8RHape9EeGatC3nUE5M-IJoL-U3_WHRS6TdRVWg6g,3086
|
17
|
+
symengine-0.11.0.data/purelib/symengine/utilities.py,sha256=bn22sbLtKRQVR_G17O4-iO3K7Bo2kOvRZnkjl7IPrR8,9604
|
18
|
+
symengine-0.11.0.data/purelib/symengine/__init__.py,sha256=jivdJwZbwFHgTBg2eOLWPa2kGAvyTp_VOhhWWuaksx4,2403
|
19
|
+
symengine-0.11.0.data/purelib/symengine/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_arit.py,sha256=poIp4bb1pAnLCt0EvJL1B_m7Ap0wVJlHSi1IvlEjxik,5611
|
21
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_cse.py,sha256=9SMfCrdQ7ZDoTkbcOk28UhXD2ZDFFbDFiAxOjWM5Ofk,469
|
22
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_dict_basic.py,sha256=ger2sexbuua1tAxc3JfXlXGrnG2iRAThxGLc01j3jGc,640
|
23
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_eval.py,sha256=xIPgDolURXLoc7qehkYKdr8F4reNz5b-Gy9ptJcTbCc,1743
|
24
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_expr.py,sha256=pjkUfuLSXQtAQv110uiF0hJJyw_8i3XXU2A-q51GHl0,1037
|
25
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_functions.py,sha256=bBJYHB3mtOh82oTA3NMHZumCJoKqWmiAnTN1j19CIIA,11297
|
26
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_lambdify.py,sha256=06jS9ivhHnTlLSHOClU5YO-9zTTHQGomA85D-lauPQo,29318
|
27
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_logic.py,sha256=j6cUwRw4GXEroWPxbQnJASrSKLew8MXIWvNF0BSVxYQ,3441
|
28
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_matrices.py,sha256=JNzb4pyuiSX6A5IkrMwHUfvIFDH3nBdfdzOnHtKH6tc,20620
|
29
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_ntheory.py,sha256=jMjJVc1pomRDOWXRqqhQTHHUE-npOki4KxKMvWg6m1k,6312
|
30
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_number.py,sha256=F3WIKwBwfWdyHaY7cu9yOtTm4AaGPO71s256tQih3dA,5041
|
31
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_pickling.py,sha256=lkRqJkkmg8Cot9ng2WnoVkVQH_LyeOtqx-SZorqZLj0,1562
|
32
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_printing.py,sha256=9_t5rlV1NQUZvolvFKiuuCtpwjS_6hb8FBMXkoGKV-o,1286
|
33
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_sage.py,sha256=kp_UzeS6vuIlLIc6f3PnykdBMNVKP8k2lZppsX29aOI,5400
|
34
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_series_expansion.py,sha256=GfgoubMmPB30nasMB6t9JR-5uVg3xYOk9oAWDr0DWYY,741
|
35
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_sets.py,sha256=QWcZHWlK5pD5SZrF72uhYZjhYXm4fbmV5OzrQwqYeYQ,4177
|
36
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_solve.py,sha256=MnAdXm3ZyX09FnQixaMNDG7vqMX-rr46U9UF5BpBZoY,935
|
37
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_subs.py,sha256=e4o1vadTucwfqgPJkVH9HZqdmMCDUkvbWbzKWNAm24g,1681
|
38
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_symbol.py,sha256=5ARwhVtox-fH5kSBgM8JuPbUJK4BJ3HCUo-LiVf39To,5296
|
39
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_sympify.py,sha256=yL8JRRdnocswCHQM0S38KDbLB_6VwgZJl3R_HB1M-v4,1868
|
40
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_sympy_compat.py,sha256=T24NXeFuStVKvzfZU4HL26RxXkH_2CHCBvdpJsWOd8s,4959
|
41
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_sympy_conv.py,sha256=uR_6ThIEyDSq-dbrlE8x52eC3wbdnij0tLbEokLqF04,27637
|
42
|
+
symengine-0.11.0.data/purelib/symengine/tests/test_var.py,sha256=q-6R2GVi9AF5eD16jiy_kks2xH4ReUqudZ_S-Zf7O90,1286
|
43
|
+
symengine-0.11.0.data/purelib/symengine/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
44
|
+
symengine-0.11.0.dist-info/AUTHORS,sha256=lU0uh2rx9y7oPdDIHVn6UPhKr-C6XViL8sOdYm3DbAM,1553
|
45
|
+
symengine-0.11.0.dist-info/LICENSE,sha256=G8qShIi9pC5Eyg0nX_rm672s0L7EATun_ePvfjw0PV4,22201
|
46
|
+
symengine-0.11.0.dist-info/METADATA,sha256=Yq6xDwgLDmuH1DuELrsUzcTmZNxZNLawlp6SAqRYDxE,1186
|
47
|
+
symengine-0.11.0.dist-info/RECORD,,
|
48
|
+
symengine-0.11.0.dist-info/top_level.txt,sha256=ASxf76lo8f1n_6UL_Z5t27oeMUmkRSMzTAtYdzc1ZM8,10
|
49
|
+
symengine-0.11.0.dist-info/WHEEL,sha256=F0Sy4cJpUFRte6B8tVdzEjn2lJG_nQtLehByM-2DED0,100
|
@@ -0,0 +1 @@
|
|
1
|
+
symengine
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
symengine/lib/config.pxi
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
symengine/tests/test_expr.py
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
from symengine import Add, Mul, Symbol, Integer
|
2
|
-
from symengine.utilities import raises
|
3
|
-
|
4
|
-
|
5
|
-
def test_as_coefficients_dict():
|
6
|
-
x = Symbol('x')
|
7
|
-
y = Symbol('y')
|
8
|
-
check = [x, y, x*y, Integer(1)]
|
9
|
-
assert [(3*x + 2*x + y + 3).as_coefficients_dict()[i] for i in check] == \
|
10
|
-
[5, 1, 0, 3]
|
11
|
-
assert [(3*x*y).as_coefficients_dict()[i] for i in check] == \
|
12
|
-
[0, 0, 3, 0]
|
13
|
-
assert (3.0*x*y).as_coefficients_dict()[3.0*x*y] == 0
|
14
|
-
assert (3.0*x*y).as_coefficients_dict()[x*y] == 3.0
|