From b37cad141304f782657a446ef46b226917c649b0 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 5 Dec 2014 08:41:06 -0700 Subject: [PATCH] Update to 0.7.6. Also: - Drop upstreamed -test and -is-tangent patches - Drop obsolete bug workarounds - Add python(3)-fastcache BR and R - Recommend python-theano - Fix executable bits on tm_sympy --- .gitignore | 2 +- sources | 2 +- sympy-0.7.5-is-tangent.patch | 13 - sympy-0.7.5-test.patch | 86 ---- ...=> sympy-0.7.6-strip-internal-mpmath.patch | 462 ++++++++++-------- sympy.spec | 60 ++- 6 files changed, 285 insertions(+), 340 deletions(-) delete mode 100644 sympy-0.7.5-is-tangent.patch delete mode 100644 sympy-0.7.5-test.patch rename sympy-0.7.5-strip-internal-mpmath.patch => sympy-0.7.6-strip-internal-mpmath.patch (60%) diff --git a/.gitignore b/.gitignore index 070709d..9885830 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/sympy-0.7.5.tar.gz +/sympy-0.7.6.tar.gz diff --git a/sources b/sources index 81d4080..9d45cf5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7de1adb49972a15a3dd975e879a2bea9 sympy-0.7.5.tar.gz +3d04753974306d8a13830008e17babca sympy-0.7.6.tar.gz diff --git a/sympy-0.7.5-is-tangent.patch b/sympy-0.7.5-is-tangent.patch deleted file mode 100644 index d5181b3..0000000 --- a/sympy-0.7.5-is-tangent.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ./sympy/geometry/ellipse.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/geometry/ellipse.py 2014-09-03 12:30:00.000000000 -0600 -@@ -768,8 +768,8 @@ class Ellipse(GeometryEntity): - inter = self.intersection(o) - if isinstance(inter, Ellipse): - return False -- return (inter is not None and isinstance(inter[0], Point) -- and len(inter) == 1) -+ return (inter is not None and len(inter) == 1 and -+ isinstance(inter[0], Point)) - elif isinstance(o, LinearEntity): - inter = self._do_line_intersection(o) - if inter is not None and len(inter) == 1: diff --git a/sympy-0.7.5-test.patch b/sympy-0.7.5-test.patch deleted file mode 100644 index dc435de..0000000 --- a/sympy-0.7.5-test.patch +++ /dev/null @@ -1,86 +0,0 @@ ---- ./sympy/physics/vector/tests/test_printing.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/physics/vector/tests/test_printing.py 2014-03-14 15:34:37.122395476 -0600 -@@ -1,4 +1,4 @@ --from sympy import symbols, sin, cos, sqrt, Function -+from sympy import symbols, sin, cos, sqrt, Function, pprint_use_unicode - from sympy.core.compatibility import u - from sympy.physics.vector import ReferenceFrame, dynamicsymbols - from sympy.physics.vector.printing import (VectorPrettyPrinter, -@@ -35,16 +35,26 @@ def test_vector_pretty_print(): - - pp = VectorPrettyPrinter() - -- expected = u(' 2\na \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m + b \x1b[94m' -- '\x1b[1mn_y\x1b[0;0m\x1b[0;0m + c\u22c5sin(\u03b1) \x1b[9' -- '4m\x1b[1mn_z\x1b[0;0m\x1b[0;0m') -+ if (pprint_use_unicode()): -+ expected = u(' 2\na \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m + b \x1b[94m' -+ '\x1b[1mn_y\x1b[0;0m\x1b[0;0m + c\u22c5sin(\u03b1) \x1b[9' -+ '4m\x1b[1mn_z\x1b[0;0m\x1b[0;0m') -+ else: -+ expected = u(' 2\na \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m + b \x1b[94m' -+ '\x1b[1mn_y\x1b[0;0m\x1b[0;0m + c*sin(alpha) \x1b[9' -+ '4m\x1b[1mn_z\x1b[0;0m\x1b[0;0m') - - assert expected == pp.doprint(v) - assert expected == v._pretty().render() - -- expected = u('\u03b1 \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m + sin(\u03c9' -- ') \x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m + \u03b1\u22c5' -- '\u03b2 \x1b[94m\x1b[1mn_z\x1b[0;0m\x1b[0;0m') -+ if (pprint_use_unicode()): -+ expected = u('\u03b1 \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m + sin(\u03c9' -+ ') \x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m + \u03b1\u22c5' -+ '\u03b2 \x1b[94m\x1b[1mn_z\x1b[0;0m\x1b[0;0m') -+ else: -+ expected = u('alpha \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m + sin(omega' -+ ') \x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m + alpha*' -+ 'beta \x1b[94m\x1b[1mn_z\x1b[0;0m\x1b[0;0m') - - assert expected == pp.doprint(w) - assert expected == w._pretty().render() -@@ -128,20 +138,34 @@ def test_vector_latex_with_functions(): - - def test_dyadic_pretty_print(): - -- expected = u(' 2\na \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m\u2297\x1b[94' -- 'm\x1b[1mn_y\x1b[0;0m\x1b[0;0m + b \x1b[94m\x1b[1mn_y\x1b' -- '[0;0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m' -- ' + c\u22c5sin(\u03b1) \x1b[94m\x1b[1mn_z\x1b[0;0m\x1b[0;' -- '0m\u2297\x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m') -+ if (pprint_use_unicode()): -+ expected = u(' 2\na \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m\u2297\x1b[94' -+ 'm\x1b[1mn_y\x1b[0;0m\x1b[0;0m + b \x1b[94m\x1b[1mn_y\x1b' -+ '[0;0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m' -+ ' + c\u22c5sin(\u03b1) \x1b[94m\x1b[1mn_z\x1b[0;0m\x1b[0;' -+ '0m\u2297\x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m') -+ else: -+ expected = u(' 2\na \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m\u2297\x1b[94' -+ 'm\x1b[1mn_y\x1b[0;0m\x1b[0;0m + b \x1b[94m\x1b[1mn_y\x1b' -+ '[0;0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m' -+ ' + c*sin(alpha) \x1b[94m\x1b[1mn_z\x1b[0;0m\x1b[0;' -+ '0m\u2297\x1b[94m\x1b[1mn_y\x1b[0;0m\x1b[0;0m') - result = y._pretty().render() - - assert expected == result - -- expected = u('\u03b1 \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m\u2297\x1b[94' -- 'm\x1b[1mn_x\x1b[0;0m\x1b[0;0m + sin(\u03c9) \x1b[94m\x1b' -- '[1mn_y\x1b[0;0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_z\x1b[0;0' -- 'm\x1b[0;0m + \u03b1\u22c5\u03b2 \x1b[94m\x1b[1mn_z\x1b[0' -- ';0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m') -+ if (pprint_use_unicode()): -+ expected = u('\u03b1 \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m\u2297\x1b[94' -+ 'm\x1b[1mn_x\x1b[0;0m\x1b[0;0m + sin(\u03c9) \x1b[94m\x1b' -+ '[1mn_y\x1b[0;0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_z\x1b[0;0' -+ 'm\x1b[0;0m + \u03b1\u22c5\u03b2 \x1b[94m\x1b[1mn_z\x1b[0' -+ ';0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m') -+ else: -+ expected = u('alpha \x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m\u2297\x1b[94' -+ 'm\x1b[1mn_x\x1b[0;0m\x1b[0;0m + sin(omega) \x1b[94m\x1b' -+ '[1mn_y\x1b[0;0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_z\x1b[0;0' -+ 'm\x1b[0;0m + alpha*beta \x1b[94m\x1b[1mn_z\x1b[0' -+ ';0m\x1b[0;0m\u2297\x1b[94m\x1b[1mn_x\x1b[0;0m\x1b[0;0m') - - result = x._pretty().render() - diff --git a/sympy-0.7.5-strip-internal-mpmath.patch b/sympy-0.7.6-strip-internal-mpmath.patch similarity index 60% rename from sympy-0.7.5-strip-internal-mpmath.patch rename to sympy-0.7.6-strip-internal-mpmath.patch index b4d0c43..36c14ff 100644 --- a/sympy-0.7.5-strip-internal-mpmath.patch +++ b/sympy-0.7.6-strip-internal-mpmath.patch @@ -1,5 +1,5 @@ ---- ./examples/advanced/autowrap_ufuncify.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./examples/advanced/autowrap_ufuncify.py 2014-03-12 21:00:00.000000000 -0600 +--- ./examples/advanced/autowrap_ufuncify.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./examples/advanced/autowrap_ufuncify.py 2014-12-04 10:30:58.017350207 -0700 @@ -25,7 +25,7 @@ np = import_module('numpy') if not np: sys.exit("Cannot import numpy. Exiting.") @@ -9,8 +9,8 @@ from sympy.utilities.autowrap import ufuncify from sympy.utilities.lambdify import implemented_function from sympy import symbols, legendre, Plot, pprint ---- ./examples/advanced/pidigits.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./examples/advanced/pidigits.py 2014-03-12 21:00:00.000000000 -0600 +--- ./examples/advanced/pidigits.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./examples/advanced/pidigits.py 2014-12-04 10:30:58.017350207 -0700 @@ -6,8 +6,8 @@ Example shows arbitrary precision using computation of the digits of pi. """ @@ -22,11 +22,11 @@ import math from time import clock ---- ./setup.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./setup.py 2014-03-12 21:00:00.000000000 -0600 -@@ -70,11 +70,6 @@ modules = [ - 'sympy.logic.utilities', +--- ./setup.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./setup.py 2014-12-04 10:30:58.017350207 -0700 +@@ -73,11 +73,6 @@ modules = [ 'sympy.matrices', + 'sympy.matrices.benchmarks', 'sympy.matrices.expressions', - 'sympy.mpmath', - 'sympy.mpmath.calculus', @@ -36,7 +36,7 @@ 'sympy.ntheory', 'sympy.parsing', 'sympy.physics', -@@ -240,7 +235,6 @@ tests = [ +@@ -246,7 +241,6 @@ tests = [ 'sympy.logic.tests', 'sympy.matrices.expressions.tests', 'sympy.matrices.tests', @@ -44,8 +44,8 @@ 'sympy.ntheory.tests', 'sympy.parsing.tests', 'sympy.physics.hep.tests', ---- ./sympy/combinatorics/permutations.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/combinatorics/permutations.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/combinatorics/permutations.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/combinatorics/permutations.py 2014-12-04 10:30:58.018350206 -0700 @@ -9,7 +9,7 @@ from sympy.utilities.iterables import (f has_dups, runs) from sympy.polys.polytools import lcm @@ -55,18 +55,19 @@ def _af_rmul(a, b): ---- ./sympy/core/evalf.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/evalf.py 2014-03-12 21:00:00.000000000 -0600 -@@ -6,19 +6,19 @@ from __future__ import print_function, d +--- ./sympy/core/evalf.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/evalf.py 2014-12-04 14:05:59.235169407 -0700 +@@ -6,20 +6,20 @@ from __future__ import print_function, d import math -import sympy.mpmath.libmp as libmp --from sympy.mpmath import make_mpc, make_mpf, mp, mpc, mpf, nsum, quadts, quadosc +-from sympy.mpmath import ( ++import mpmath.libmp as libmp ++from mpmath import ( + make_mpc, make_mpf, mp, mpc, mpf, nsum, quadts, quadosc, workprec) -from sympy.mpmath import inf as mpmath_inf -from sympy.mpmath.libmp import (from_int, from_man_exp, from_rational, fhalf, -+import mpmath.libmp as libmp -+from mpmath import make_mpc, make_mpf, mp, mpc, mpf, nsum, quadts, quadosc +from mpmath import inf as mpmath_inf +from mpmath.libmp import (from_int, from_man_exp, from_rational, fhalf, fnan, fnone, fone, fzero, mpf_abs, mpf_add, @@ -86,8 +87,8 @@ from .compatibility import SYMPY_INTS from .sympify import sympify ---- ./sympy/core/expr.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/expr.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/core/expr.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/expr.py 2014-12-04 11:07:54.359742059 -0700 @@ -8,7 +8,7 @@ from .evalf import EvalfMixin, pure_comp from .decorators import _sympifyit, call_highest_priority from .cache import cacheit @@ -97,11 +98,20 @@ from collections import defaultdict ---- ./sympy/core/function.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/function.py 2014-03-12 21:00:00.000000000 -0600 -@@ -50,8 +50,8 @@ from sympy.core.compatibility import str - from sympy.utilities import default_sort_key +@@ -384,7 +384,7 @@ class Expr(Basic, EvalfMixin): + # increase the precision up to the default maximum + # precision to see if we can get any significance + +- from sympy.mpmath.libmp.libintmath import giant_steps ++ from mpmath.libmp.libintmath import giant_steps + from sympy.core.evalf import DEFAULT_MAXPREC as target + + # evaluate +--- ./sympy/core/function.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/function.py 2014-12-04 10:30:58.020350202 -0700 +@@ -51,8 +51,8 @@ from sympy.utilities import default_sort from sympy.utilities.iterables import uniq + from sympy.core.evaluate import global_evaluate -from sympy import mpmath -import sympy.mpmath.libmp as mlib @@ -110,7 +120,7 @@ import inspect -@@ -453,7 +453,7 @@ class Function(Application, Expr): +@@ -460,7 +460,7 @@ class Function(Application, Expr): try: args = [arg._to_mpmath(prec + 5) for arg in self.args] def bad(m): @@ -119,7 +129,7 @@ # the precision of an mpf value is the last element # if that is 1 (and m[1] is not 1 which would indicate a # power of 2), then the eval failed; so check that none of -@@ -1234,7 +1234,7 @@ class Derivative(Expr): +@@ -1223,7 +1223,7 @@ class Derivative(Expr): When we can represent derivatives at a point, this should be folded into the normal evalf. For now, we need a special method. """ @@ -128,8 +138,8 @@ from sympy.core.expr import Expr if len(self.free_symbols) != 1 or len(self.variables) != 1: raise NotImplementedError('partials and higher order derivatives') ---- ./sympy/core/numbers.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/numbers.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/core/numbers.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/numbers.py 2014-12-04 10:30:58.021350201 -0700 @@ -16,11 +16,11 @@ from .cache import cacheit, clear_cache from sympy.core.compatibility import ( as_int, integer_types, long, string_types, with_metaclass, HAS_GMPY, @@ -147,32 +157,21 @@ finf as _mpf_inf, fninf as _mpf_ninf, fnan as _mpf_nan, fzero as _mpf_zero, _normalize as mpf_normalize, prec_to_dps) ---- ./sympy/core/power.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/power.py 2014-03-12 21:00:00.000000000 -0600 -@@ -13,7 +13,7 @@ from sympy.core.function import (_coeff_ - from sympy.core.logic import fuzzy_bool - from sympy.core.compatibility import as_int, xrange +--- ./sympy/core/power.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/power.py 2014-12-04 10:30:58.021350201 -0700 +@@ -14,7 +14,7 @@ from .logic import fuzzy_bool + from .compatibility import as_int, xrange + from .evaluate import global_evaluate -from sympy.mpmath.libmp import sqrtrem as mpmath_sqrtrem +from mpmath.libmp import sqrtrem as mpmath_sqrtrem from sympy.utilities.iterables import sift ---- ./sympy/core/sets.py.orig 2014-03-12 21:00:00.000000000 -0600 -+++ ./sympy/core/sets.py 2014-03-12 21:00:00.000000000 -0600 -@@ -9,7 +9,7 @@ from sympy.core.evalf import EvalfMixin - from sympy.core.numbers import Float - from sympy.core.compatibility import iterable, with_metaclass - --from sympy.mpmath import mpi, mpf -+from mpmath import mpi, mpf - from sympy.logic.boolalg import And, Or, true, false - - from sympy.utilities import default_sort_key ---- ./sympy/core/tests/test_evalf.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/tests/test_evalf.py 2014-03-12 21:00:00.000000000 -0600 -@@ -3,9 +3,9 @@ from sympy import (Add, ceiling, cos, E, - sin, sqrt, sstr, Sum, sympify, S, integrate, atan, product) +--- ./sympy/core/tests/test_evalf.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/tests/test_evalf.py 2014-12-04 10:31:03.063341891 -0700 +@@ -4,9 +4,9 @@ from sympy import (Add, ceiling, cos, E, + Sum, Product, Integral) from sympy.core.evalf import complex_accuracy, PrecisionExhausted, scaled_zero from sympy.core.compatibility import long -from sympy.mpmath import inf, ninf, nan @@ -183,8 +182,8 @@ from sympy.utilities.pytest import raises, XFAIL ---- ./sympy/core/tests/test_numbers.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/tests/test_numbers.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/core/tests/test_numbers.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/tests/test_numbers.py 2014-12-04 10:56:49.005878896 -0700 @@ -6,9 +6,9 @@ from sympy.core.basic import _aresame from sympy.core.compatibility import long, u from sympy.core.power import integer_nthroot @@ -197,7 +196,7 @@ def test_integers_cache(): -@@ -1347,8 +1347,8 @@ def test_issue_1073(): +@@ -1355,8 +1355,8 @@ def test_issue_4172(): @XFAIL def test_mpmath_issues(): @@ -208,7 +207,7 @@ rnd = mlib.round_nearest mpf = (0, long(0), -123, -1, 53, rnd) # nan assert _normalize(mpf, 53) != (0, long(0), 0, 0) -@@ -1357,7 +1357,7 @@ def test_mpmath_issues(): +@@ -1365,7 +1365,7 @@ def test_mpmath_issues(): mpf = (1, long(0), -789, -3, 53, rnd) # -inf assert _normalize(mpf, 53) != (0, long(0), 0, 0) @@ -217,28 +216,17 @@ assert mlib.mpf_eq(fnan, fnan) -@@ -1388,7 +1388,7 @@ def test_int_NumberSymbols(): +@@ -1396,7 +1396,7 @@ def test_int_NumberSymbols(): - def test_3541(): + def test_issue_6640(): - from sympy.mpmath.libmp.libmpf import ( + from mpmath.libmp.libmpf import ( _normalize as mpf_normalize, finf, fninf, fzero) # fnan is not included because Float no longer returns fnan, # but otherwise, the same sort of test could apply ---- ./sympy/core/tests/test_sets.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/tests/test_sets.py 2014-03-12 21:00:00.000000000 -0600 -@@ -2,7 +2,7 @@ from sympy import (Symbol, Set, Union, I - GreaterThan, LessThan, Max, Min, And, Or, Eq, Ge, Le, Gt, Lt, Float, - FiniteSet, Intersection, imageset, I, true, false, ProductSet, E - ) --from sympy.mpmath import mpi -+from mpmath import mpi - - from sympy.utilities.pytest import raises - from sympy.utilities.pytest import raises, XFAIL ---- ./sympy/core/tests/test_sympify.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/tests/test_sympify.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/core/tests/test_sympify.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/tests/test_sympify.py 2014-12-04 10:31:04.375339729 -0700 @@ -11,7 +11,7 @@ from sympy.functions.combinatorial.facto from sympy.abc import _clash, _clash1, _clash2 from sympy.core.compatibility import exec_, HAS_GMPY @@ -247,9 +235,9 @@ +import mpmath - def test_439(): ---- ./sympy/core/tests/test_wester.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/core/tests/test_wester.py 2014-03-12 21:00:00.000000000 -0600 + def test_issue_3538(): +--- ./sympy/core/tests/test_wester.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/core/tests/test_wester.py 2014-12-04 10:31:04.377339726 -0700 @@ -6,6 +6,7 @@ See also http://math.unm.edu/~wester/cas each tested system. """ @@ -265,21 +253,21 @@ - LambertW, N, apart, sqrtdenest, factorial2, powdenest, Mul, S, mpmath, ZZ, + LambertW, N, apart, sqrtdenest, factorial2, powdenest, Mul, S, ZZ, Poly, expand_func, E, Q, And, Or, Ne, Eq, Le, Lt, - ask, refine, AlgebraicNumber, - elliptic_e, elliptic_f, powsimp, hessian, wronskian, fibonacci, sign, -@@ -24,7 +25,7 @@ from sympy.functions.special.zeta_functi + ask, refine, AlgebraicNumber, continued_fraction_iterator as cf_i, + continued_fraction_periodic as cf_p, continued_fraction_convergents as cf_c, +@@ -26,7 +27,7 @@ from sympy.functions.special.zeta_functi from sympy.integrals.deltafunctions import deltaintegrate - from sympy.utilities.pytest import XFAIL, slow + from sympy.utilities.pytest import XFAIL, slow, SKIP, skip, ON_TRAVIS from sympy.utilities.iterables import partitions -from sympy.mpmath import mpi, mpc +from mpmath import mpi, mpc from sympy.matrices import Matrix, GramSchmidt, eye from sympy.matrices.expressions.blockmatrix import BlockMatrix, block_collapse from sympy.matrices.expressions import MatrixSymbol, ZeroMatrix ---- ./sympy/external/tests/test_numpy.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/external/tests/test_numpy.py 2014-03-12 21:00:00.000000000 -0600 -@@ -27,7 +27,7 @@ from sympy import (Rational, Symbol, lis - symarray, symbols, Integer) +--- ./sympy/external/tests/test_numpy.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/external/tests/test_numpy.py 2014-12-04 10:31:04.378339724 -0700 +@@ -21,7 +21,7 @@ from sympy import (Rational, Symbol, lis + Matrix, lambdify, symarray, symbols, Integer) import sympy -from sympy import mpmath @@ -287,20 +275,20 @@ from sympy.abc import x, y, z from sympy.utilities.decorator import conserve_mpmath_dps ---- ./sympy/functions/combinatorial/numbers.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/functions/combinatorial/numbers.py 2014-03-12 21:00:00.000000000 -0600 -@@ -15,8 +15,8 @@ from sympy.core.compatibility import as_ - from sympy.core.cache import cacheit +--- ./sympy/functions/combinatorial/numbers.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/functions/combinatorial/numbers.py 2014-12-04 10:59:59.605872355 -0700 +@@ -21,8 +21,8 @@ from sympy.functions.elementary.exponent + from sympy.functions.elementary.trigonometric import sin, cos, cot from sympy.functions.combinatorial.factorials import factorial --from sympy.mpmath import bernfrac +-from sympy.mpmath import bernfrac, workprec -from sympy.mpmath.libmp import ifib as _ifib -+from mpmath import bernfrac ++from mpmath import bernfrac, workprec +from mpmath.libmp import ifib as _ifib def _product(a, b): -@@ -631,7 +631,7 @@ class euler(Function): +@@ -706,7 +706,7 @@ class euler(Function): if m.is_odd: return S.Zero if m.is_Integer and m.is_nonnegative: @@ -309,7 +297,7 @@ m = m._to_mpmath(mp.prec) res = mp.eulernum(m, exact=True) return Integer(res) -@@ -650,7 +650,7 @@ class euler(Function): +@@ -725,7 +725,7 @@ class euler(Function): m = self.args[0] if m.is_Integer and m.is_nonnegative: @@ -317,9 +305,9 @@ + from mpmath import mp from sympy import Expr m = m._to_mpmath(prec) - oprec = mp.prec ---- ./sympy/functions/special/bessel.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/functions/special/bessel.py 2014-03-12 21:00:00.000000000 -0600 + with workprec(prec): +--- ./sympy/functions/special/bessel.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/functions/special/bessel.py 2014-12-04 11:01:02.478869466 -0700 @@ -706,8 +706,8 @@ def jn_zeros(n, k, method="sympy", dps=1 from math import pi @@ -335,22 +323,22 @@ raise ArgumentIndexError(self, argindex) def _eval_evalf(self, prec): -- from sympy.mpmath import mp -+ from mpmath import mp +- from sympy.mpmath import mp, workprec ++ from mpmath import mp, workprec from sympy import Expr z = self.args[0]._to_mpmath(prec) - oprec = mp.prec -@@ -1367,7 +1367,7 @@ class airybiprime(AiryBase): + with workprec(prec): +@@ -1365,7 +1365,7 @@ class airybiprime(AiryBase): raise ArgumentIndexError(self, argindex) def _eval_evalf(self, prec): -- from sympy.mpmath import mp -+ from mpmath import mp +- from sympy.mpmath import mp, workprec ++ from mpmath import mp, workprec from sympy import Expr z = self.args[0]._to_mpmath(prec) - oprec = mp.prec ---- ./sympy/functions/special/error_functions.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/functions/special/error_functions.py 2014-03-12 21:00:00.000000000 -0600 + with workprec(prec): +--- ./sympy/functions/special/error_functions.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/functions/special/error_functions.py 2014-12-04 10:31:04.380339721 -0700 @@ -1339,7 +1339,7 @@ class li(Function): We can even compute Soldner's constant by the help of mpmath: @@ -360,28 +348,28 @@ >>> findroot(li, 2) 1.45136923488338 ---- ./sympy/functions/special/gamma_functions.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/functions/special/gamma_functions.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/functions/special/gamma_functions.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/functions/special/gamma_functions.py 2014-12-04 14:05:59.241169397 -0700 @@ -296,7 +296,7 @@ class lowergamma(Function): return (cls(a + 1, x) + x**a * C.exp(-x))/a def _eval_evalf(self, prec): -- from sympy.mpmath import mp -+ from mpmath import mp +- from sympy.mpmath import mp, workprec ++ from mpmath import mp, workprec from sympy import Expr a = self.args[0]._to_mpmath(prec) z = self.args[1]._to_mpmath(prec) -@@ -397,7 +397,7 @@ class uppergamma(Function): +@@ -395,7 +395,7 @@ class uppergamma(Function): raise ArgumentIndexError(self, argindex) def _eval_evalf(self, prec): -- from sympy.mpmath import mp -+ from mpmath import mp +- from sympy.mpmath import mp, workprec ++ from mpmath import mp, workprec from sympy import Expr a = self.args[0]._to_mpmath(prec) z = self.args[1]._to_mpmath(prec) ---- ./sympy/functions/special/hyper.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/functions/special/hyper.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/functions/special/hyper.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/functions/special/hyper.py 2014-12-04 10:31:04.381339719 -0700 @@ -600,7 +600,8 @@ class meijerg(TupleParametersBase): # (carefully so as not to loose the branch information), and evaluate # G(z'**(1/r)) = G(z'**n) = G(z). @@ -392,19 +380,19 @@ z = self.argument znum = self.argument._eval_evalf(prec) if znum.has(exp_polar): ---- ./sympy/functions/special/spherical_harmonics.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/functions/special/spherical_harmonics.py 2014-03-12 21:00:00.000000000 -0600 -@@ -217,7 +217,7 @@ class Ynm(Function): +--- ./sympy/functions/special/spherical_harmonics.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/functions/special/spherical_harmonics.py 2014-12-04 14:05:59.242169395 -0700 +@@ -219,7 +219,7 @@ class Ynm(Function): # Note: works without this function by just calling # mpmath for Legendre polynomials. But using # the dedicated function directly is cleaner. -- from sympy.mpmath import mp -+ from mpmath import mp +- from sympy.mpmath import mp, workprec ++ from mpmath import mp, workprec from sympy import Expr n = self.args[0]._to_mpmath(prec) m = self.args[1]._to_mpmath(prec) ---- ./sympy/geometry/ellipse.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/geometry/ellipse.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/geometry/ellipse.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/geometry/ellipse.py 2014-12-04 10:31:04.383339716 -0700 @@ -24,7 +24,7 @@ from .entity import GeometryEntity from .point import Point from .line import LinearEntity, Line @@ -414,8 +402,8 @@ import random ---- ./sympy/liealgebras/weyl_group.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/liealgebras/weyl_group.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/liealgebras/weyl_group.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/liealgebras/weyl_group.py 2014-12-04 10:31:04.383339716 -0700 @@ -3,7 +3,7 @@ from sympy.core import Basic, Rational from sympy.core.numbers import igcd @@ -425,9 +413,9 @@ from operator import itemgetter from itertools import groupby from sympy.matrices import Matrix, eye ---- ./sympy/matrices/matrices.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/matrices/matrices.py 2014-03-12 21:00:00.000000000 -0600 -@@ -1214,7 +1214,7 @@ class MatrixBase(object): +--- ./sympy/matrices/matrices.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/matrices/matrices.py 2014-12-04 10:31:04.384339714 -0700 +@@ -1238,7 +1238,7 @@ class MatrixBase(object): """Solve the linear system Ax = rhs for x where A = self. This is for symbolic matrices, for real or complex ones use @@ -436,7 +424,7 @@ See Also ======== -@@ -1591,7 +1591,7 @@ class MatrixBase(object): +@@ -1615,7 +1615,7 @@ class MatrixBase(object): to use QRsolve. This is mainly for educational purposes and symbolic matrices, for real @@ -445,8 +433,8 @@ See Also ======== ---- ./sympy/ntheory/partitions_.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/ntheory/partitions_.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/ntheory/partitions_.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/ntheory/partitions_.py 2014-12-04 10:31:04.384339714 -0700 @@ -1,6 +1,6 @@ from __future__ import print_function, division @@ -455,8 +443,8 @@ from_man_exp, from_int, from_rational, fone, fhalf, bitcount, to_int, to_str, mpf_mul, mpf_div, mpf_sub, mpf_add, mpf_sqrt, mpf_pi, mpf_cosh_sinh, pi_fixed, mpf_cos) ---- ./sympy/physics/quantum/constants.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/physics/quantum/constants.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/physics/quantum/constants.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/physics/quantum/constants.py 2014-12-04 10:31:04.384339714 -0700 @@ -6,7 +6,7 @@ from sympy.core.numbers import NumberSym from sympy.core.singleton import Singleton from sympy.core.compatibility import u, with_metaclass @@ -466,8 +454,8 @@ #----------------------------------------------------------------------------- # Constants ---- ./sympy/physics/quantum/qubit.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/physics/quantum/qubit.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/physics/quantum/qubit.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/physics/quantum/qubit.py 2014-12-04 10:31:04.385339712 -0700 @@ -24,7 +24,7 @@ from sympy.physics.quantum.represent imp from sympy.physics.quantum.matrixutils import ( numpy_ndarray, scipy_sparse_matrix @@ -477,8 +465,8 @@ __all__ = [ 'Qubit', ---- ./sympy/polys/domains/groundtypes.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/polys/domains/groundtypes.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/polys/domains/groundtypes.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/domains/groundtypes.py 2014-12-04 10:31:04.385339712 -0700 @@ -69,7 +69,7 @@ else: gmpy_qdiv = None @@ -488,8 +476,8 @@ def python_sqrt(n): ---- ./sympy/polys/domains/mpelements.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/polys/domains/mpelements.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/polys/domains/mpelements.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/domains/mpelements.py 2014-12-04 10:31:04.385339712 -0700 @@ -4,11 +4,11 @@ from __future__ import print_function, d from sympy.polys.domains.domainelement import DomainElement @@ -505,8 +493,8 @@ from sympy.utilities import public ---- ./sympy/polys/modulargcd.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/polys/modulargcd.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/polys/modulargcd.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/modulargcd.py 2014-12-04 10:31:04.386339711 -0700 @@ -7,7 +7,7 @@ from sympy.polys.polyerrors import Modul from sympy.polys.domains import PolynomialRing @@ -516,9 +504,9 @@ from sympy import Dummy import random ---- ./sympy/polys/numberfields.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/polys/numberfields.py 2014-03-12 21:00:00.000000000 -0600 -@@ -43,7 +43,7 @@ from sympy.core.exprtools import Factors +--- ./sympy/polys/numberfields.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/numberfields.py 2014-12-04 10:31:04.386339711 -0700 +@@ -47,7 +47,7 @@ from sympy.core.exprtools import Factors from sympy.simplify.simplify import _mexpand, _is_sum_surds from sympy.ntheory import sieve from sympy.ntheory.factor_ import divisors @@ -527,20 +515,28 @@ from sympy.core.compatibility import reduce from sympy.core.compatibility import xrange ---- ./sympy/polys/polytools.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/polys/polytools.py 2014-03-12 21:00:00.000000000 -0600 -@@ -47,7 +47,7 @@ from sympy.polys.polyerrors import ( +--- ./sympy/polys/polytools.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/polytools.py 2014-12-04 11:04:04.672827949 -0700 +@@ -47,8 +47,8 @@ from sympy.polys.polyerrors import ( from sympy.utilities import group, sift, public import sympy.polys -import sympy.mpmath +-from sympy.mpmath.libmp.libhyper import NoConvergence +import mpmath ++from mpmath.libmp.libhyper import NoConvergence - from sympy.polys.domains import FF, QQ + from sympy.polys.domains import FF, QQ, ZZ from sympy.polys.constructor import construct_domain -@@ -3370,17 +3370,17 @@ class Poly(Expr): - coeffs = [coeff.evalf(n=n).as_real_imag() - for coeff in f.all_coeffs()] +@@ -3391,18 +3391,18 @@ class Poly(Expr): + coeffs = [coeff.evalf(n=n).as_real_imag() + for coeff in f.all_coeffs()] + try: +- coeffs = [sympy.mpmath.mpc(*coeff) for coeff in coeffs] ++ coeffs = [mpmath.mpc(*coeff) for coeff in coeffs] + except TypeError: + raise DomainError("Numerical domain expected, got %s" % \ + f.rep.dom) - dps = sympy.mpmath.mp.dps - sympy.mpmath.mp.dps = n @@ -548,42 +544,71 @@ + mpmath.mp.dps = n try: - try: -- coeffs = [sympy.mpmath.mpc(*coeff) for coeff in coeffs] -+ coeffs = [mpmath.mpc(*coeff) for coeff in coeffs] - except TypeError: - raise DomainError( - "numerical domain expected, got %s" % f.rep.dom) + # We need to add extra precision to guard against losing accuracy. + # 10 times the degree of the polynomial seems to work well. +- roots = sympy.mpmath.polyroots(coeffs, maxsteps=maxsteps, ++ roots = mpmath.polyroots(coeffs, maxsteps=maxsteps, + cleanup=cleanup, error=False, extraprec=f.degree()*10) -- result = sympy.mpmath.polyroots( -+ result = mpmath.polyroots( - coeffs, maxsteps=maxsteps, cleanup=cleanup, error=error) - - if error: -@@ -3390,7 +3390,7 @@ class Poly(Expr): - - roots = list(map(sympify, sorted(roots, key=lambda r: (r.real, r.imag)))) + # Mpmath puts real roots first, then complex ones (as does all_roots) +@@ -3414,7 +3414,7 @@ class Poly(Expr): + 'convergence to root failed; try n < %s or maxsteps > %s' % ( + n, maxsteps)) finally: - sympy.mpmath.mp.dps = dps + mpmath.mp.dps = dps - if error is not None: - return roots, sympify(error) ---- ./sympy/polys/rootoftools.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/polys/rootoftools.py 2014-03-12 21:00:00.000000000 -0600 -@@ -25,8 +25,8 @@ from sympy.polys.polyerrors import ( + return roots + +--- ./sympy/polys/ring_series.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/ring_series.py 2014-12-04 11:09:16.774704452 -0700 +@@ -3,10 +3,10 @@ + from sympy.polys.domains import QQ + from sympy.polys.rings import ring, PolyElement + from sympy.polys.monomials import monomial_min, monomial_mul +-from sympy.mpmath.libmp.libintmath import ifac ++from mpmath.libmp.libintmath import ifac + from sympy.core.numbers import Rational + from sympy.core.compatibility import as_int +-from sympy.mpmath.libmp.libintmath import giant_steps ++from mpmath.libmp.libintmath import giant_steps + import math + + def _invert_monoms(p1): +--- ./sympy/polys/rootoftools.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/rootoftools.py 2014-12-04 14:05:59.247169386 -0700 +@@ -28,8 +28,8 @@ from sympy.polys.polyerrors import ( from sympy.polys.domains import QQ --from sympy.mpmath import mp, mpf, mpc, findroot +-from sympy.mpmath import mp, mpf, mpc, findroot, workprec -from sympy.mpmath.libmp.libmpf import prec_to_dps -+from mpmath import mp, mpf, mpc, findroot ++from mpmath import mp, mpf, mpc, findroot, workprec +from mpmath.libmp.libmpf import prec_to_dps from sympy.utilities import lambdify, public ---- ./sympy/printing/latex.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/printing/latex.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/polys/tests/test_polyroots.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/polys/tests/test_polyroots.py 2014-12-04 14:06:31.622109815 -0700 +@@ -17,6 +17,7 @@ from sympy.utilities.iterables import ca + from sympy.utilities.pytest import raises, XFAIL + from sympy.utilities.randtest import verify_numerically + import sympy ++import mpmath + + + a, b, c, d, e, q, t, x, y, z = symbols('a,b,c,d,e,q,t,x,y,z') +@@ -584,7 +585,7 @@ def test_nroots1(): + n = 64 + p = legendre_poly(n, x, polys=True) + +- raises(sympy.mpmath.mp.NoConvergence, lambda: p.nroots(n=3, maxsteps=5)) ++ raises(mpmath.mp.NoConvergence, lambda: p.nroots(n=3, maxsteps=5)) + + roots = p.nroots(n=3) + # The order of roots matters. They are ordered from smallest to the +--- ./sympy/printing/latex.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/printing/latex.py 2014-12-04 10:31:04.391339702 -0700 @@ -15,8 +15,8 @@ from .printer import Printer from .conventions import split_super_sub, requires_partial from .precedence import precedence, PRECEDENCE @@ -595,8 +620,8 @@ from sympy.core.compatibility import default_sort_key, xrange from sympy.utilities.iterables import has_variety ---- ./sympy/printing/repr.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/printing/repr.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/printing/repr.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/printing/repr.py 2014-12-04 10:31:04.392339701 -0700 @@ -9,8 +9,8 @@ from __future__ import print_function, d from sympy.core.function import AppliedUndef @@ -608,8 +633,8 @@ class ReprPrinter(Printer): ---- ./sympy/printing/str.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/printing/str.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/printing/str.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/printing/str.py 2014-12-04 10:31:04.392339701 -0700 @@ -10,8 +10,8 @@ from sympy.core.numbers import Integer from .printer import Printer from sympy.printing.precedence import precedence, PRECEDENCE @@ -621,9 +646,31 @@ from sympy.utilities import default_sort_key ---- ./sympy/simplify/simplify.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/simplify/simplify.py 2014-03-12 21:00:00.000000000 -0600 -@@ -33,7 +33,7 @@ from sympy.ntheory.factor_ import multip +--- ./sympy/sets/sets.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/sets/sets.py 2014-12-04 11:10:31.446662910 -0700 +@@ -13,7 +13,7 @@ from sympy.core.decorators import deprec + from sympy.core.mul import Mul + from sympy.sets.contains import Contains + +-from sympy.mpmath import mpi, mpf ++from mpmath import mpi, mpf + from sympy.logic.boolalg import And, Or, Not, true, false + from sympy.utilities import default_sort_key, subsets + +--- ./sympy/sets/tests/test_sets.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/sets/tests/test_sets.py 2014-12-04 11:10:10.615676162 -0700 +@@ -2,7 +2,7 @@ from sympy import (Symbol, Set, Union, I + GreaterThan, LessThan, Max, Min, And, Or, Eq, Ge, Le, Gt, Lt, Float, + FiniteSet, Intersection, imageset, I, true, false, ProductSet, E, + sqrt, Complement, EmptySet, sin, cos, Lambda, ImageSet, pi) +-from sympy.mpmath import mpi ++from mpmath import mpi + + from sympy.utilities.pytest import raises + from sympy.utilities.pytest import raises, XFAIL +--- ./sympy/simplify/simplify.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/simplify/simplify.py 2014-12-04 10:31:04.393339699 -0700 +@@ -34,7 +34,7 @@ from sympy.ntheory.factor_ import multip from sympy.polys import (Poly, together, reduced, cancel, factor, ComputationFailed, lcm, gcd) @@ -632,8 +679,8 @@ def _mexpand(expr): ---- ./sympy/solvers/solvers.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/solvers/solvers.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/solvers/solvers.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/solvers/solvers.py 2014-12-04 10:31:04.394339698 -0700 @@ -47,7 +47,7 @@ from sympy.utilities.lambdify import lam from sympy.utilities.misc import filldedent from sympy.utilities.iterables import uniq, generate_bell, flatten @@ -643,7 +690,7 @@ from sympy.solvers.polysys import solve_poly_system from sympy.solvers.inequalities import reduce_inequalities -@@ -2399,8 +2399,8 @@ def nsolve(*args, **kwargs): +@@ -2417,8 +2417,8 @@ def nsolve(*args, **kwargs): Overdetermined systems are supported. >>> from sympy import Symbol, nsolve @@ -654,8 +701,8 @@ >>> x1 = Symbol('x1') >>> x2 = Symbol('x2') >>> f1 = 3 * x1**2 - 2 * x2**2 - 1 ---- ./sympy/solvers/tests/test_numeric.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/solvers/tests/test_numeric.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/solvers/tests/test_numeric.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/solvers/tests/test_numeric.py 2014-12-04 10:31:04.395339696 -0700 @@ -1,5 +1,5 @@ from sympy import Eq, Matrix, pi, sin, sqrt, Symbol, Integral, Piecewise, symbols -from sympy.mpmath import mnorm, mpf @@ -663,30 +710,8 @@ from sympy.solvers import nsolve from sympy.utilities.lambdify import lambdify from sympy.utilities.pytest import raises, XFAIL ---- ./sympy/statistics/distributions.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/statistics/distributions.py 2014-03-12 21:00:00.000000000 -0600 -@@ -213,7 +213,7 @@ class Normal(ContinuousProbability): - # error function is not yet implemented in SymPy but can easily be - # computed numerically - -- from sympy.mpmath import mpf, erfinv -+ from mpmath import mpf, erfinv - - # calculate y = ierf(p) by solving erf(y) - p = 0 - y = erfinv(mpf(p)) ---- ./sympy/statistics/tests/test_statistics.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/statistics/tests/test_statistics.py 2014-03-12 21:00:00.000000000 -0600 -@@ -3,7 +3,7 @@ from sympy.functions import erf - - from operator import abs - --from sympy.mpmath import mp -+from mpmath import mp - - from sympy.utilities.tests.test_pickling import check - ---- ./sympy/utilities/decorator.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/utilities/decorator.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/utilities/decorator.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/utilities/decorator.py 2014-12-04 10:31:06.039336987 -0700 @@ -81,7 +81,7 @@ def conserve_mpmath_dps(func): """After the function finishes, resets the value of mpmath.mp.dps to the value it had before the function was run.""" @@ -696,9 +721,9 @@ def func_wrapper(): dps = mpmath.mp.dps ---- ./sympy/utilities/lambdify.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/utilities/lambdify.py 2014-03-12 21:00:00.000000000 -0600 -@@ -87,7 +87,7 @@ NUMPY_TRANSLATIONS = { +--- ./sympy/utilities/lambdify.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/utilities/lambdify.py 2014-12-04 10:31:06.040336985 -0700 +@@ -93,7 +93,7 @@ NUMEXPR_TRANSLATIONS = {} # Available modules: MODULES = { "math": (MATH, MATH_DEFAULT, MATH_TRANSLATIONS, ("from math import *",)), @@ -707,19 +732,28 @@ "numpy": (NUMPY, NUMPY_DEFAULT, NUMPY_TRANSLATIONS, ("import_module('numpy')",)), "sympy": (SYMPY, SYMPY_DEFAULT, {}, ( "from sympy.functions import *", ---- ./sympy/utilities/runtests.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/utilities/runtests.py 2014-03-12 21:00:00.000000000 -0600 -@@ -552,7 +552,7 @@ def _doctest(*paths, **kwargs): +--- ./sympy/utilities/runtests.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/utilities/runtests.py 2014-12-04 11:05:35.646805355 -0700 +@@ -473,7 +473,7 @@ def _test(*paths, **kwargs): + split = kwargs.get('split', None) + blacklist = kwargs.get('blacklist', []) + blacklist.extend([ +- "sympy/mpmath", # needs to be fixed upstream ++ "mpmath", # needs to be fixed upstream + ]) + blacklist = convert_to_native_paths(blacklist) + r = PyTestReporter(verbose=verbose, tb=tb, colors=colors, +@@ -607,7 +607,7 @@ def _doctest(*paths, **kwargs): split = kwargs.get('split', None) blacklist.extend([ "doc/src/modules/mpmath", # needs to be fixed upstream - "sympy/mpmath", # needs to be fixed upstream + "mpmath", # needs to be fixed upstream "doc/src/modules/plotting.rst", # generates live plots - "sympy/statistics", # prints a deprecation - "doc/src/modules/statistics.rst", # warning (the module is deprecated) ---- ./sympy/utilities/tests/diagnose_imports.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/utilities/tests/diagnose_imports.py 2014-03-12 21:00:00.000000000 -0600 + "sympy/utilities/compilef.py", # needs tcc + "sympy/physics/gaussopt.py", # raises deprecation warning +--- ./sympy/utilities/tests/diagnose_imports.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/utilities/tests/diagnose_imports.py 2014-12-04 10:31:06.041336983 -0700 @@ -117,7 +117,7 @@ if __name__ == "__main__": """Is module relevant for import checking? @@ -729,11 +763,11 @@ sorted_messages = [] ---- ./sympy/utilities/tests/test_lambdify.py.orig 2014-02-22 12:13:32.000000000 -0700 -+++ ./sympy/utilities/tests/test_lambdify.py 2014-03-12 21:00:00.000000000 -0600 +--- ./sympy/utilities/tests/test_lambdify.py.orig 2014-11-20 13:00:41.000000000 -0700 ++++ ./sympy/utilities/tests/test_lambdify.py 2014-12-04 10:31:06.041336983 -0700 @@ -3,7 +3,7 @@ from sympy import ( - symbols, lambdify, sqrt, sin, cos, pi, atan, Rational, Float, - Matrix, Lambda, exp, Integral, oo, I, Abs, Function, true, false) + symbols, lambdify, sqrt, sin, cos, tan, pi, atan, acos, acosh, Rational, + Float, Matrix, Lambda, exp, Integral, oo, I, Abs, Function, true, false) from sympy.printing.lambdarepr import LambdaPrinter -from sympy import mpmath +import mpmath diff --git a/sympy.spec b/sympy.spec index 5d403e7..225508c 100644 --- a/sympy.spec +++ b/sympy.spec @@ -1,19 +1,13 @@ Name: sympy -Version: 0.7.5 -Release: 4%{?dist} +Version: 0.7.6 +Release: 1%{?dist} Summary: A Python library for symbolic mathematics License: BSD URL: http://sympy.org/ Source0: https://github.com/%{name}/%{name}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz # Upstream tried to graft in another project as a private copy; we rip # it out (rhbz# 551576): -Patch0: %{name}-0.7.5-strip-internal-mpmath.patch -# The test driver disables Unicode output, but the printing test expects to -# see Unicode output. Until upstream fixes this, patch the test so that it -# expects Unicode output if Unicode output is active, otherwise ASCII output. -Patch1: %{name}-0.7.5-test.patch -# Fix a bug in ellipse.is_tangent (bz 1135677) -Patch2: %{name}-0.7.5-is-tangent.patch +Patch0: %{name}-0.7.6-strip-internal-mpmath.patch BuildArch: noarch BuildRequires: gcc-gfortran @@ -24,6 +18,7 @@ BuildRequires: librsvg2-tools BuildRequires: numpy python3-numpy BuildRequires: numpy-f2py python3-numpy-f2py BuildRequires: python2-devel python3-devel +BuildRequires: python-fastcache python3-fastcache BuildRequires: python-gmpy2 python3-gmpy2 BuildRequires: python-matplotlib python3-matplotlib BuildRequires: python-mpmath python3-mpmath @@ -34,11 +29,14 @@ BuildRequires: tex-dvipng BuildRequires: xorg-x11-fonts-Type1 BuildRequires: xorg-x11-server-Xvfb +Requires: python-fastcache Requires: python-gmpy2 Requires: python-matplotlib Requires: python-mpmath Requires: python-pyglet +Recommends: python-theano + %description SymPy aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be @@ -47,11 +45,14 @@ Python and does not require any external libraries. %package -n python3-%{name} Summary: A Python3 library for symbolic mathematics +Requires: python3-fastcache Requires: python3-gmpy2 Requires: python3-matplotlib Requires: python3-mpmath Requires: python3-pyglet +Recommends: python3-theano + %description -n python3-%{name} SymPy aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be @@ -75,6 +76,7 @@ This package contains example input for sympy. %package doc Summary: Documentation for sympy Requires: %{name} = %{version}-%{release} +Provides: bundled(jquery) %description doc HTML documentation for sympy. @@ -82,25 +84,20 @@ HTML documentation for sympy. %prep %setup -q %patch0 -b .mpmath -%patch1 -%patch2 rm -rf sympy/mpmath doc/src/modules/mpmath rm -rf %{name}-%{version}/sympy/mpmath %{name}-%{version}/doc/src/module/mpmath -# Workaround for bz 1075826. Remove this when that bug is resolved. -mkdir -p doc/_build/html -cp -p doc/src/_static/sympylogo.png doc - -# Workaround for mpmath brokenness (bz 1127796) -sed -e 's/import raises/&, XFAIL/' \ - -e '/^def test_roots_preprocessed():/i@XFAIL' \ - -i sympy/polys/tests/test_polyroots.py -sed -i '/^def test_nroots():/i@XFAIL' sympy/polys/tests/test_polytools.py - # Make a copy for building the python3 version rm -rf %{py3dir} cp -a . %{py3dir} +# One plotting test expects one warning, which happens with python < 3.4, but +# the same warning is triggered in a different spot with python 3.4, leading +# to an assertion failure. +sed -e 's/import warnings/&, XFAIL/' \ + -e '/^def test_matplotlib():/i@XFAIL' \ + -i %{py3dir}/sympy/plotting/tests/test_plot_implicit.py + %build # Build the python2 version python2 setup.py build @@ -125,7 +122,8 @@ python3 setup.py install -O1 --skip-build --root %{buildroot} sed -i 's/env python/python3/' %{buildroot}%{_bindir}/isympy touch -r bin/isympy %{buildroot}%{_bindir}/isympy mv %{buildroot}%{_bindir}/isympy %{buildroot}%{_bindir}/python3-isympy -ln -s isympy.1.gz %{buildroot}%{_mandir}/man1/python3-isympy.1.gz +mv %{buildroot}%{_mandir}/man1/isympy.1 \ + %{buildroot}%{_mandir}/man1/python3-isympy.1 popd # Install the python2 version @@ -139,6 +137,7 @@ rm -f %{buildroot}%{_bindir}/{,doc}test ## Install the TeXmacs integration sed 's/python/python3/' data/TeXmacs/bin/tm_sympy > \ %{buildroot}%{_bindir}/tm_sympy +chmod a+x %{buildroot}%{_bindir}/tm_sympy touch -r data/TeXmacs/bin/tm_sympy %{buildroot}%{_bindir}/tm_sympy mkdir -p %{buildroot}%{_datadir}/TeXmacs/plugins/sympy cp -a data/TeXmacs/progs %{buildroot}%{_datadir}/TeXmacs/plugins/sympy @@ -152,6 +151,9 @@ cp -a doc/_build/html %{buildroot}%{_docdir}/%{name}-doc rm -f %{buildroot}%{_docdir}/%{name}-doc/html/.buildinfo rm -fr %{buildroot}%{_docdir}/%{name}-doc/i18n +# Stash the python3 build of the cheatsheet where %%doc can find it +cp -p %{py3dir}/doc/_build/cheatsheet/combinatoric_cheatsheet.pdf . + %check # The python3 tests fail with Unicode errors without this export LC_ALL=en_US.UTF-8 @@ -163,7 +165,7 @@ xvfb-run -n $dnum python3 setup.py test popd %files -%doc AUTHORS doc/_build/cheatsheet/cheatsheet.pdf +%doc AUTHORS README.rst doc/_build/cheatsheet/combinatoric_cheatsheet.pdf %license LICENSE %{python2_sitelib}/sympy/ %{python2_sitelib}/sympy-%{version}-*.egg-info @@ -171,7 +173,7 @@ popd %{_mandir}/man1/isympy.1* %files -n python3-%{name} -%doc AUTHORS doc/_build/cheatsheet/cheatsheet.pdf +%doc AUTHORS README.rst combinatoric_cheatsheet.pdf %license LICENSE %{python3_sitelib}/sympy/ %{python3_sitelib}/sympy-%{version}-*.egg-info @@ -191,8 +193,16 @@ popd %{_docdir}/%{name}-doc/html %changelog +* Fri Dec 5 2014 Jerry James - 0.7.6-1 +- Update to 0.7.6 +- Drop upstreamed -test and -is-tangent patches +- Drop obsolete bug workarounds +- Add python(3)-fastcache BR and R +- Recommend python-theano +- Fix executable bits on tm_sympy + * Tue Sep 16 2014 Jerry James - 0.7.5-4 -- Drop python3-six BR and R now that bz1140413 is fixed +- Drop python3-six BR and R now that bz 1140413 is fixed - Use gmpy2 * Wed Sep 3 2014 Jerry James - 0.7.5-3