diff options
Diffstat (limited to 'pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch')
-rw-r--r-- | pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch | 479 |
1 files changed, 0 insertions, 479 deletions
diff --git a/pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch b/pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch deleted file mode 100644 index 22f274d608d4..000000000000 --- a/pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch +++ /dev/null @@ -1,479 +0,0 @@ -diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py -index 3a417d9d5c..fadaadbaf6 100644 ---- a/src/sage/calculus/calculus.py -+++ b/src/sage/calculus/calculus.py -@@ -231,7 +231,7 @@ Another example:: - sage: f(x=3) - arcsinh(1) - sage: f.derivative(x) -- 1/3/sqrt(1/9*x^2 + 1) -+ 1/sqrt(x^2 + 9) - - We compute the length of the parabola from 0 to 2:: - -@@ -1509,8 +1509,8 @@ def laplace(ex, t, s, algorithm='maxima'): - Testing SymPy:: - - sage: laplace(t^n, t, s, algorithm='sympy') -- (s^(-n)*gamma(n + 1)/s, 0, -re(n) < 1) -- -+ (gamma(n + 1)/(s*s^n), 0, -re(n) < 1) -+ - Testing Maxima:: - - sage: laplace(t^n, t, s, algorithm='maxima') -diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py -index 1fc2db5c94..f3e49b9cdb 100644 ---- a/src/sage/functions/hypergeometric.py -+++ b/src/sage/functions/hypergeometric.py -@@ -34,7 +34,7 @@ Simplification (note that ``simplify_full`` does not yet call - sage: a.simplify_hypergeometric() - 1/((-e^x + 1)^e^x) - sage: a.simplify_hypergeometric(algorithm='sage') -- (-e^x + 1)^(-e^x) -+ 1/((-e^x + 1)^e^x) - - Equality testing:: - -@@ -145,7 +145,7 @@ Series expansions of confluent hypergeometric functions:: - - sage: hypergeometric_M(2, 2, x).series(x, 3) - 1 + 1*x + 1/2*x^2 + Order(x^3) -- sage: hypergeometric_U(2, 2, x).series(x == 3, 100).subs(x=1).n() -+ sage: hypergeometric_U(2, 2, x).series(x == 3, 100).subs(x=1).n() # known bug (see :trac:`25688`) - 0.403652637676806 - sage: hypergeometric_U(2, 2, 1).n() - 0.403652637676806 -@@ -773,7 +773,7 @@ def closed_form(hyp): - sage: closed_form(hypergeometric([], [], z)) - e^z - sage: closed_form(hypergeometric([a], [], z)) -- (-z + 1)^(-a) -+ 1/((-z + 1)^a) - sage: closed_form(hypergeometric([1, 1, 2], [1, 1], z)) - (z - 1)^(-2) - sage: closed_form(hypergeometric([2, 3], [1], x)) -@@ -1121,7 +1121,7 @@ class Hypergeometric_U(BuiltinFunction): - sage: var('a b z') - (a, b, z) - sage: hypergeometric_U(a, b, z).generalized() -- z^(-a)*hypergeometric((a, a - b + 1), (), -1/z) -+ hypergeometric((a, a - b + 1), (), -1/z)/z^a - sage: hypergeometric_U(1, 3, 1/2).generalized() - 2*hypergeometric((1, -1), (), -2) - sage: hypergeometric_U(3, I, 2).generalized() -diff --git a/src/sage/functions/log.py b/src/sage/functions/log.py -index 75d1bf8060..61968582af 100644 ---- a/src/sage/functions/log.py -+++ b/src/sage/functions/log.py -@@ -518,17 +518,17 @@ class Function_polylog(GinacFunction): - - sage: BF = RealBallField(100) - sage: polylog(2, BF(1/3)) -- [0.36621322997706348761674629766 +/- 4.51e-30] -+ [0.36621322997706348761674629766... +/- ...] - sage: polylog(2, BF(4/3)) -- nan -+ [2.27001825336107090380391448586 +/- 5.64e-30] + [-0.90377988538400159956755721265 +/- 8.39e-30]*I - sage: parent(_) -- Real ball field with 100 bits of precision -+ Complex ball field with 100 bits of precision - sage: polylog(2, CBF(1/3)) -- [0.366213229977063 +/- 5.85e-16] -+ [0.366213229977063 +/- ...] - sage: parent(_) - Complex ball field with 53 bits of precision - sage: polylog(2, CBF(1)) -- [1.644934066848226 +/- 6.59e-16] -+ [1.644934066848226 +/- ...] - sage: parent(_) - Complex ball field with 53 bits of precision - """ -diff --git a/src/sage/functions/trig.py b/src/sage/functions/trig.py -index e7e7a311cd..1f2926d6c9 100644 ---- a/src/sage/functions/trig.py -+++ b/src/sage/functions/trig.py -@@ -529,13 +529,8 @@ class Function_arcsin(GinacFunction): - arcsin - sage: asin(complex(1,1)) - (0.6662394324925152+1.0612750619050357j) -- -- Check that :trac:`22823` is fixed:: -- -- sage: bool(asin(SR(2.1)) == NaN) -- True -- sage: asin(SR(2.1)).is_real() -- False -+ sage: asin(SR(2.1)) -+ 1.57079632679490 - 1.37285914424258*I - """ - GinacFunction.__init__(self, 'arcsin', latex_name=r"\arcsin", - conversions=dict(maxima='asin', sympy='asin', fricas="asin", giac="asin")) -@@ -595,13 +590,8 @@ class Function_arccos(GinacFunction): - arccos - sage: acos(complex(1,1)) - (0.9045568943023814-1.0612750619050357j) -- -- Check that :trac:`22823` is fixed:: -- -- sage: bool(acos(SR(2.1)) == NaN) -- True -- sage: acos(SR(2.1)).is_real() -- False -+ sage: acos(SR(2.1)) -+ 1.37285914424258*I - """ - GinacFunction.__init__(self, 'arccos', latex_name=r"\arccos", - conversions=dict(maxima='acos', sympy='acos', fricas='acos', giac='acos')) -@@ -807,7 +797,7 @@ class Function_arcsec(GinacFunction): - sage: arcsec(2).n(100) - 1.0471975511965977461542144611 - sage: arcsec(1/2).n(100) -- NaN -+ 1.3169578969248167086250463473*I - sage: RDF(arcsec(2)) # abs tol 1e-15 - 1.0471975511965976 - sage: arcsec(1 + I) -@@ -958,7 +948,9 @@ class Function_arctan2(GinacFunction): - sage: atan2(0,0,hold=True) - arctan2(0, 0) - sage: atan2(0,0,hold=True).n() -- NaN -+ Traceback (most recent call last): -+ ... -+ RuntimeError: atan2(): division by zero - - Check if :trac:`10062` is fixed, this was caused by - ``(I*I).is_positive()`` returning ``True``:: -diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py -index 3b5c8d1729..1c6b73a16c 100644 ---- a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py -+++ b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py -@@ -1422,8 +1422,10 @@ class HyperbolicGeodesicUHP(HyperbolicGeodesic): - expressions do not generate runtime errors. :: - - sage: g=HyperbolicPlane().UHP().get_geodesic(-1+I,1+I) -- sage: g.midpoint() -- Point in UHP 1/2*(sqrt(2)*e^(1/2*arccosh(3)) - sqrt(2) + (I - 1)*e^(1/2*arccosh(3)) + I - 1)/((1/4*I - 1/4)*sqrt(2)*e^(1/2*arccosh(3)) - (1/4*I - 1/4)*sqrt(2) + 1/2*e^(1/2*arccosh(3)) + 1/2) -+ sage: point = g.midpoint(); point -+ Point in UHP -1/2*(sqrt(2)*... -+ sage: QQbar(point.coordinates()).radical_expression() -+ I*sqrt(2) - - Check that floating points remain floating points - in :meth:`midpoint` :: -diff --git a/src/sage/interfaces/fricas.py b/src/sage/interfaces/fricas.py -index 82aae78e37..8501ea2a18 100644 ---- a/src/sage/interfaces/fricas.py -+++ b/src/sage/interfaces/fricas.py -@@ -1084,14 +1084,14 @@ class FriCASElement(ExpectElement): - 0.451026811796262, - 0.732815101786507, - 0.837981225008390, -- NaN, -- NaN, -+ 1.57079632679490 - 0.467145308103262*I, -+ 0.467145308103262*I, - 1.11976951499863, - 0.451026811796262, - 0.732815101786507, - 0.837981225008390, -- NaN, -- NaN] -+ 1.57079632679490 - 0.467145308103262*I, -+ 0.467145308103262*I] - sage: l = [tanh, sinh, cosh, coth, sech, csch, asinh, acosh, atanh, acoth, asech, acsch, arcsinh, arccosh, arctanh, arccoth, arcsech, arccsch] - sage: [f(x)._fricas_().sage().subs(x=0.9) for f in l] # optional - fricas - [0.716297870199024, -diff --git a/src/sage/libs/pynac/pynac.pyx b/src/sage/libs/pynac/pynac.pyx -index 9e9d8f664b..e3406f007e 100644 ---- a/src/sage/libs/pynac/pynac.pyx -+++ b/src/sage/libs/pynac/pynac.pyx -@@ -1824,7 +1824,7 @@ cdef py_atan2(x, y): - sage: atan2(CC(I), CC(I+1)) - 0.553574358897045 + 0.402359478108525*I - sage: atan2(CBF(I), CBF(I+1)) -- [0.55357435889705 +/- 5.58e-15] + [0.402359478108525 +/- 7.11e-16]*I -+ [0.55357435889705 +/- ...] + [0.402359478108525 +/- ...]*I - - Check that :trac:`23776` is fixed and RDF input gives real output:: - -diff --git a/src/sage/matrix/matrix_symbolic_dense.pyx b/src/sage/matrix/matrix_symbolic_dense.pyx -index 46a15e53eb..7a0beb437b 100644 ---- a/src/sage/matrix/matrix_symbolic_dense.pyx -+++ b/src/sage/matrix/matrix_symbolic_dense.pyx -@@ -200,7 +200,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): - sage: eval, [evec], mult = es[0] - sage: delta = eval*evec - evec*A - sage: abs(abs(delta)) < 1e-10 -- sqrt(9/25*((2*sqrt(6) - 3)*(sqrt(6) - 2) + 7*sqrt(6) - 18)^2 + 9/25*((sqrt(6) - 2)*(sqrt(6) - 4) + 6*sqrt(6) - 14)^2) < (1.00000000000000e-10) -+ 3/5*sqrt(((2*sqrt(6) - 3)*(sqrt(6) - 2) + 7*sqrt(6) - 18)^2 + ((sqrt(6) - 2)*(sqrt(6) - 4) + 6*sqrt(6) - 14)^2) < (1.00000000000000e-10) - sage: abs(abs(delta)).n() < 1e-10 - True - -diff --git a/src/sage/modules/matrix_morphism.py b/src/sage/modules/matrix_morphism.py -index 17a1d6e290..03892ceec0 100644 ---- a/src/sage/modules/matrix_morphism.py -+++ b/src/sage/modules/matrix_morphism.py -@@ -214,9 +214,9 @@ class MatrixMorphism_abstract(sage.categories.morphism.Morphism): - sage: f((1, 0)) - Traceback (most recent call last): - ... -- TypeError: Unable to coerce entries (=[1.00000000000000*I, 0.000000000000000]) to coefficients in Real Field with 53 bits of precision -+ TypeError: Unable to coerce entries (=[1.00000000000000*I, 0]) to coefficients in Real Field with 53 bits of precision - sage: f((1, 0), coerce=False) -- (1.00000000000000*I, 0.000000000000000) -+ (1.00000000000000*I, 0) - - """ - if self.domain().is_ambient(): -diff --git a/src/sage/plot/plot.py b/src/sage/plot/plot.py -index 77cdeb8c46..e501e74036 100644 ---- a/src/sage/plot/plot.py -+++ b/src/sage/plot/plot.py -@@ -2061,7 +2061,7 @@ def _plot(funcs, xrange, parametric=False, - plot properly (:trac:`13246`):: - - sage: parametric_plot((x, arcsec(x)), (x, -2, 2)) -- Graphics object consisting of 1 graphics primitive -+ Graphics object consisting of 2 graphics primitives - - """ - from sage.plot.colors import Color -diff --git a/src/sage/repl/display/formatter.py b/src/sage/repl/display/formatter.py -index 8ce2e839d7..948207c95e 100644 ---- a/src/sage/repl/display/formatter.py -+++ b/src/sage/repl/display/formatter.py -@@ -25,11 +25,11 @@ generally, all sage expression as an ASCII art object:: - sage: shell = get_test_shell() - sage: shell.run_cell('%display ascii_art') - sage: shell.run_cell('integral(x^2/pi^x, x)') -- / 2 2 \ -x*log(pi) -- -\x *log (pi) + 2*x*log(pi) + 2/*e -- --------------------------------------------- -- 3 -- log (pi) -+ -x / 2 2 \ -+ -pi *\x *log (pi) + 2*x*log(pi) + 2/ -+ -------------------------------------- -+ 3 -+ log (pi) - sage: shell.run_cell("i = var('i')") - sage: shell.run_cell('sum(i*x^i, i, 0, 10)') - 10 9 8 7 6 5 4 3 2 -diff --git a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py -index d8ebbf4f76..8c60f65e99 100644 ---- a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py -+++ b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py -@@ -151,8 +151,8 @@ A multiple point example (Example 6.5 of [RaWi2012]_):: - [(x + 2*y - 1, 1), (2*x + y - 1, 1)]) - sage: F1 = decomp[1] - sage: F1.asymptotics(p, alpha, 2) -- (-3*((2*a^2 - 5*a*b + 2*b^2)*r^2 + (a + b)*r + 3)*((1/3)^(-a)*(1/3)^(-b))^r, -- (1/3)^(-a)*(1/3)^(-b), -3*(2*a^2 - 5*a*b + 2*b^2)*r^2 - 3*(a + b)*r - 9) -+ (-3*((2*a^2 - 5*a*b + 2*b^2)*r^2 + (a + b)*r + 3)*(1/((1/3)^a*(1/3)^b))^r, -+ 1/((1/3)^a*(1/3)^b), -3*(2*a^2 - 5*a*b + 2*b^2)*r^2 - 3*(a + b)*r - 9) - sage: alpha = [4, 3] - sage: decomp = F.asymptotic_decomposition(alpha) - sage: F1 = decomp[1] -@@ -2159,7 +2159,7 @@ class FractionWithFactoredDenominator(RingElement): - sage: p = {x: 1/3, y: 1/3} - sage: alpha = (var('a'), var('b')) - sage: F.asymptotics_multiple(p, alpha, 2, var('r')) # long time -- (3*((1/3)^(-a)*(1/3)^(-b))^r*e^(2/3), (1/3)^(-a)*(1/3)^(-b), 3*e^(2/3)) -+ (3*(1/((1/3)^a*(1/3)^b))^r*e^(2/3), 1/((1/3)^a*(1/3)^b), 3*e^(2/3)) - """ - from itertools import product - from sage.calculus.functions import jacobian -diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py -index 16a268a02c..5fd244e93b 100644 ---- a/src/sage/stats/basic_stats.py -+++ b/src/sage/stats/basic_stats.py -@@ -183,7 +183,7 @@ def std(v, bias=False): - sage: std([]) - NaN - sage: std([I, sqrt(2), 3/5]) -- sqrt(1/450*(10*sqrt(2) - 5*I - 3)^2 + 1/450*(5*sqrt(2) - 10*I + 3)^2 + 1/450*(5*sqrt(2) + 5*I - 6)^2) -+ 1/15*sqrt(1/2)*sqrt((10*sqrt(2) - 5*I - 3)^2 + (5*sqrt(2) - 10*I + 3)^2 + (5*sqrt(2) + 5*I - 6)^2) - sage: std([RIF(1.0103, 1.0103), RIF(2)]) - 0.6998235813403261? - sage: import numpy -diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx -index ab4c05de3a..60f0dc549a 100644 ---- a/src/sage/symbolic/expression.pyx -+++ b/src/sage/symbolic/expression.pyx -@@ -622,7 +622,7 @@ cdef class Expression(CommutativeRingElement): - sage: x^(-5) - x^(-5) - sage: x^(-y) -- x^(-y) -+ 1/(x^y) - sage: 2*x^(-1) - 2/x - sage: i*x -@@ -3621,14 +3621,14 @@ cdef class Expression(CommutativeRingElement): - sage: repl_dict = {b_0: b_0, b_3: b_1, b_2: b_3, b_1: b_2} - sage: P = precomp.substitute(repl_dict) - sage: P.expand() -- -2^(-b_0)*2^(-b_2)*2^b_3 - 2^b_0*2^(-b_2)*2^b_3 - -- 2^(-b_0)*2^b_2*2^b_3 + 2^b_0*2^b_2*2^b_3 - 2*2^(-b_0)*2^(-b_2) -- - 2*2^b_0*2^(-b_2) - 2*2^(-b_0)*2^b_2 + 2*2^b_0*2^b_2 + -- 2^(-b_0)*2^b_3 + 2^b_0*2^b_3 + 2^(-b_2)*2^b_3 + 2^b_2*2^b_3 + -- 2*2^(-b_0) + 2*2^b_0 + 2*2^(-b_2) + 2*2^b_2 - 9*2^b_3 - -- 2^(-b_0)*2^(-b_2)/2^b_3 - 2^b_0*2^(-b_2)/2^b_3 - -- 2^(-b_0)*2^b_2/2^b_3 + 2^b_0*2^b_2/2^b_3 + 2^(-b_0)/2^b_3 + -- 2^b_0/2^b_3 + 2^(-b_2)/2^b_3 + 2^b_2/2^b_3 - 9/2^b_3 - 18 -+ 2^b_0*2^b_2*2^b_3 + 2*2^b_0*2^b_2 + 2^b_0*2^b_3 + 2^b_2*2^b_3 + -+ 2*2^b_0 + 2*2^b_2 - 9*2^b_3 + 2^b_0*2^b_2/2^b_3 - -+ 2^b_0*2^b_3/2^b_2 - 2^b_2*2^b_3/2^b_0 - 2*2^b_0/2^b_2 - -+ 2*2^b_2/2^b_0 + 2^b_0/2^b_3 + 2^b_2/2^b_3 + 2^b_3/2^b_0 + -+ 2^b_3/2^b_2 + 2/2^b_0 + 2/2^b_2 - 2^b_0/(2^b_2*2^b_3) - -+ 2^b_2/(2^b_0*2^b_3) - 9/2^b_3 - 2^b_3/(2^b_0*2^b_2) - -+ 2/(2^b_0*2^b_2) + 1/(2^b_0*2^b_3) + 1/(2^b_2*2^b_3) - -+ 1/(2^b_0*2^b_2*2^b_3) - 18 - - sage: _0,b_1,b_2=var('b_0,b_1,b_2') - sage: f = 1/27*b_2^2/(2^b_2)^2 + 1/27*b_1^2/(2^b_1)^2 + \ -@@ -3809,7 +3809,7 @@ cdef class Expression(CommutativeRingElement): - - sage: x = SR.symbol('x', domain='real') - sage: (x^3)^(1/3) -- (x^3)^(1/3) -+ x - sage: (x^4)^(1/4) - abs(x) - sage: (x^8)^(1/4) -@@ -3872,7 +3872,7 @@ cdef class Expression(CommutativeRingElement): - sage: 2^(x/log(2)) - e^x - sage: 2^(-x^2/2/log(2)) -- e^(-1/2*x^2) -+ 1/e^(1/2*x^2) - sage: x^(x/log(x)) - x^(x/log(x)) - sage: assume(x > 0) -@@ -4816,18 +4816,24 @@ cdef class Expression(CommutativeRingElement): - sage: ((x+y)^(x+y)).match(w0^w0) - {$0: x + y} - sage: t = ((a+b)*(a+c)).match((a+w0)*(a+w1)) -- sage: t[w0], t[w1] -- (c, b) -+ sage: set([t[w0], t[w1]]) == set([b, c]) -+ True - sage: ((a+b)*(a+c)).match((w0+b)*(w0+c)) - {$0: a} - sage: t = ((a+b)*(a+c)).match((w0+w1)*(w0+w2)) -- sage: t[w0], t[w1], t[w2] -- (a, c, b) -- sage: print(((a+b)*(a+c)).match((w0+w1)*(w1+w2))) -- None -+ sage: t[w0] -+ a -+ sage: set([t[w1], t[w2]]) == set([b, c]) -+ True -+ sage: t = ((a+b)*(a+c)).match((w0+w1)*(w1+w2)) -+ sage: t[w1] -+ a -+ sage: set([t[w0], t[w2]]) == set([b, c]) -+ True - sage: t = (a*(x+y)+a*z+b).match(a*w0+w1) -- sage: t[w0], t[w1] -- (x + y, a*z + b) -+ sage: s = set([t[w0], t[w1]]) -+ sage: s == set([x+y, a*z+b]) or s == set([z, a*(x+y)+b]) -+ True - sage: print((a+b+c+d+f+g).match(c)) - None - sage: (a+b+c+d+f+g).has(c) -@@ -4836,7 +4842,7 @@ cdef class Expression(CommutativeRingElement): - {$0: a + b + d + f + g} - sage: (a+b+c+d+f+g).match(c+g+w0) - {$0: a + b + d + f} -- sage: (a+b).match(a+b+w0) -+ sage: (a+b).match(a+b+w0) # known bug - {$0: 0} - sage: print((a*b^2).match(a^w0*b^w1)) - None -@@ -5009,7 +5015,7 @@ cdef class Expression(CommutativeRingElement): - a^3 + b^3 + (x + y)^3 - - sage: t.subs(w0 == w0^2) -- (x^2 + y^2)^18 + a^16 + b^16 -+ a^8 + b^8 + (x^2 + y^2)^6 - - sage: t.subs(a == b, b == c) - (x + y)^3 + b^2 + c^2 -@@ -8392,9 +8398,13 @@ cdef class Expression(CommutativeRingElement): - sage: SR(I).arctan2(1) - arctan2(I, 1) - sage: SR(CDF(0,1)).arctan2(1) -- NaN + +infinity*I -- sage: SR(1).arctan2(CDF(0,1)) # known bug -- 0.7853981633974484 - 19.012501686914433*I -+ Traceback (most recent call last): -+ ... -+ ValueError: power::eval(): division by zero -+ sage: SR(1).arctan2(CDF(0,1)) -+ Traceback (most recent call last): -+ ... -+ ValueError: power::eval(): division by zero - - sage: arctan2(0,oo) - 0 -@@ -8656,7 +8666,7 @@ cdef class Expression(CommutativeRingElement): - 1/2*I*pi - sage: SR(1/2).arccosh() - arccosh(1/2) -- sage: SR(CDF(1/2)).arccosh() # rel tol 1e-15 -+ sage: SR(CDF(1/2)).arccosh() # rel tol 1e-15 - 1.0471975511965976*I - sage: maxima('acosh(0.5)') - 1.04719755119659...*%i -@@ -11687,7 +11697,7 @@ cdef class Expression(CommutativeRingElement): - sage: a.solve(t) - [] - sage: b = a.canonicalize_radical(); b -- -23040.0*(-2.0*e^(1800*t) + 25.0*e^(900*t) - 32.0)*e^(-2400*t) -+ (46080.0*e^(1800*t) - 576000.0*e^(900*t) + 737280.0)*e^(-2400*t) - sage: b.solve(t) - [] - sage: b.solve(t, to_poly_solve=True) -@@ -12163,14 +12173,14 @@ cdef class Expression(CommutativeRingElement): - - sage: (n,k,j)=var('n,k,j') - sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) -- -(-1)^(-j)*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) -+ -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) - sage: assume(j>-1) - sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) - 1 - sage: forget() - sage: assume(n>=j) - sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) -- -(-1)^(-j)*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) -+ -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) - sage: forget() - sage: assume(j==-1) - sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) -@@ -12178,7 +12188,7 @@ cdef class Expression(CommutativeRingElement): - sage: forget() - sage: assume(j<-1) - sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) -- -(-1)^(-j)*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) -+ -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) - sage: forget() - - Check that :trac:`16176` is fixed:: -diff --git a/src/sage/symbolic/relation.py b/src/sage/symbolic/relation.py -index da6f0eef42..4bd65ef572 100644 ---- a/src/sage/symbolic/relation.py -+++ b/src/sage/symbolic/relation.py -@@ -895,7 +895,7 @@ def solve(f, *args, **kwds): - sage: (r[0][x], r[0][y]) - (2*lambert_w(1/2), 1) - sage: solve(-2*x**3 + 4*x**2 - 2*x + 6 > 0, x, algorithm='sympy') -- [x < (1/6*sqrt(77) + 79/54)^(1/3) + 1/9/(1/6*sqrt(77) + 79/54)^(1/3) + 2/3] -+ [x < 1/3*(1/2)^(1/3)*(9*sqrt(77) + 79)^(1/3) + 2/3*(1/2)^(2/3)/(9*sqrt(77) + 79)^(1/3) + 2/3] - sage: solve(sqrt(2*x^2 - 7) - (3 - x),x,algorithm='sympy') - [x == -8, x == 2] - sage: solve(sqrt(2*x + 9) - sqrt(x + 1) - sqrt(x + 4),x,algorithm='sympy') |