diff options
Diffstat (limited to 'pkgs/applications/science/math/sage/patches/arb-2.13.0.patch')
-rw-r--r-- | pkgs/applications/science/math/sage/patches/arb-2.13.0.patch | 427 |
1 files changed, 427 insertions, 0 deletions
diff --git a/pkgs/applications/science/math/sage/patches/arb-2.13.0.patch b/pkgs/applications/science/math/sage/patches/arb-2.13.0.patch new file mode 100644 index 000000000000..a20f1670a256 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/arb-2.13.0.patch @@ -0,0 +1,427 @@ +commit c885927e25b29bd23869e02379c2918da430323e +Author: Timo Kaufmann <timokau@zoho.com> +Date: Sat Jun 30 02:26:15 2018 +0200 + +diff --git a/build/pkgs/arb/checksums.ini b/build/pkgs/arb/checksums.ini +index 1924ee03c3..9323b97391 100644 +--- a/build/pkgs/arb/checksums.ini ++++ b/build/pkgs/arb/checksums.ini +@@ -1,4 +1,4 @@ + tarball=arb-VERSION.tar.gz +-sha1=27476d0529e48a07d92da90bd0fb80dd18f443e3 +-md5=733285d9705d10b8024e551ffa81952f +-cksum=2391183744 ++sha1=44eda7bf8eaa666c45b1fc2c1b5bd08756d94b58 ++md5=fa24de9fffe4394fb6a7a6792e2ecc5f ++cksum=3689220688 +diff --git a/build/pkgs/arb/package-version.txt b/build/pkgs/arb/package-version.txt +index c8810e9bdb..fb2c0766b7 100644 +--- a/build/pkgs/arb/package-version.txt ++++ b/build/pkgs/arb/package-version.txt +@@ -1 +1 @@ +-2.12.0.p0 ++2.13.0 +diff --git a/build/pkgs/arb/patches/arb-pie-hardening-conflict.patch b/build/pkgs/arb/patches/arb-pie-hardening-conflict.patch +deleted file mode 100644 +index 3e5c0e708b..0000000000 +--- a/build/pkgs/arb/patches/arb-pie-hardening-conflict.patch ++++ /dev/null +@@ -1,17 +0,0 @@ +-In newer binutils, ld options -r and -pie conflict. +-Patch due to Jörg-Volker Peetz +-(source : https://groups.google.com/d/msg/sage-devel/TduebNoZuBE/sEULolL0BQAJ), +-packaged by Emmanuel Charpentier +- +-diff -ru arb-2.8.1-orig/Makefile.subdirs arb-2.8.1-new/Makefile.subdirs +---- arb-2.8.1-orig/Makefile.subdirs 2015-12-31 17:30:01.000000000 +0100 +-+++ arb-2.8.1-new/Makefile.subdirs 2016-11-07 18:50:34.540051779 +0100 +-@@ -52,7 +52,7 @@ +- $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@ -MMD -MP -MF "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$@" +- +- $(MOD_LOBJ): $(LOBJS) +-- $(QUIET_CC) $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib +-+ $(QUIET_CC) $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib +- +- -include $(LOBJS:.lo=.d) +- +diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx +index 70d51e655a..00e7caea2c 100644 +--- a/src/sage/rings/complex_arb.pyx ++++ b/src/sage/rings/complex_arb.pyx +@@ -857,14 +857,14 @@ class ComplexBallField(UniqueRepresentation, Field): + [0.500000000000000 +/- 2.09e-16] + + sage: CBF.integral(lambda x, _: x.gamma(), 1 - CBF(i), 1 + CBF(i)) +- [+/- 3.95e-15] + [1.5723926694981 +/- 4.53e-14]*I ++ [+/- 4...e-15] + [1.5723926694981 +/- 4...e-14]*I + + sage: C = ComplexBallField(100) + sage: C.integral(lambda x, _: x.cos() * x.sin(), 0, 1) + [0.35403670913678559674939205737 +/- 8.89e-30] + + sage: CBF.integral(lambda x, _: (x + x.exp()).sin(), 0, 8) +- [0.34740017266 +/- 6.36e-12] ++ [0.34740017266 +/- 6...e-12] + + sage: C = ComplexBallField(2000) + sage: C.integral(lambda x, _: (x + x.exp()).sin(), 0, 8) # long time +@@ -879,14 +879,14 @@ class ComplexBallField(UniqueRepresentation, Field): + ....: else: + ....: return z.sqrt() + sage: CBF.integral(my_sqrt, -1 + CBF(i), -1 - CBF(i)) +- [+/- 1.14e-14] + [-0.4752076627926 +/- 5.18e-14]*I ++ [+/- 1.14e-14] + [-0.4752076627926 +/- 5...e-14]*I + + Note, though, that proper handling of the ``analytic`` flag is required + even when the path does not touch the branch cut:: + + sage: correct = CBF.integral(my_sqrt, 1, 2); correct + [1.21895141649746 +/- 3.73e-15] +- sage: RBF(integral(sqrt(x), x, 1, 2)) ++ sage: RBF(integral(sqrt(x), x, 1, 2)) # long time + [1.21895141649746 +/- 1.79e-15] + sage: wrong = CBF.integral(lambda z, _: z.sqrt(), 1, 2) # WRONG! + sage: correct - wrong +@@ -915,9 +915,9 @@ class ComplexBallField(UniqueRepresentation, Field): + the integrand is unbounded:: + + sage: CBF.integral(lambda x, _: 1/x, -1, 1) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + sage: CBF.integral(lambda x, _: 1/x, 10^-1000, 1) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + sage: CBF.integral(lambda x, _: 1/x, 10^-1000, 1, abs_tol=1e-10) + [2302.5850930 +/- 1.26e-8] + +@@ -928,14 +928,15 @@ class ComplexBallField(UniqueRepresentation, Field): + sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, abs_tol=1e-450) + [2.304377150950e-439 +/- 9.74e-452] + sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, abs_tol=0) +- [2.304377150949e-439 +/- 7.53e-452] +- sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, rel_tol=1e-4, abs_tol=0) +- [2.30438e-439 +/- 3.90e-445] ++ [2.304377150950e-439 +/- 7...e-452] ++ sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, rel_tol=1e-2, abs_tol=0) ++ [2.30438e-439 +/- 5.94e-445] + +- sage: CBF.integral(lambda x, _: x*(1/x).sin(), 0, 1) +- [+/- 0.644] +- sage: CBF.integral(lambda x, _: x*(1/x).sin(), 0, 1, use_heap=True) +- [0.3785300 +/- 4.32e-8] ++ sage: epsi = CBF(1e-10) ++ sage: CBF.integral(lambda x, _: x*(1/x).sin(), epsi, 1) ++ [0.38 +/- 8.54e-3] ++ sage: CBF.integral(lambda x, _: x*(1/x).sin(), epsi, 1, use_heap=True) ++ [0.37853002 +/- 8.73e-9] + + ALGORITHM: + +@@ -951,12 +952,12 @@ class ComplexBallField(UniqueRepresentation, Field): + + sage: i = QuadraticField(-1).gen() + sage: CBF.integral(lambda x, _: (1 + i*x).gamma(), -1, 1) +- [1.5723926694981 +/- 4.53e-14] + [+/- 3.95e-15]*I ++ [1.5723926694981 +/- 4...e-14] + [+/- 4...e-15]*I + +- sage: ComplexBallField(10000).integral(lambda x, _: x.sin(), 0, 1, rel_tol=1e-400) +- [0.459... +/- ...e-4...] ++ sage: ComplexBallField(10000).integral(lambda x, _: x.sin(), 0, 1, rel_tol=1e-300) ++ [0.459... +/- ...e-3...] + sage: CBF.integral(lambda x, _: x.sin(), 0, 100, rel_tol=10) +- [+/- 7.61] ++ [0.138 +/- 5.53e-4] + + sage: ComplexBallField(10000).integral(lambda x, _: x.sin(), 0, 1, abs_tol=1e-400) + [0.459697... +/- ...e-4...] +@@ -2389,9 +2390,9 @@ cdef class ComplexBall(RingElement): + sage: ~CBF(i/3) + [-3.00000000000000 +/- 9.44e-16]*I + sage: ~CBF(0) +- [+/- inf] ++ nan + sage: ~CBF(RIF(10,11)) +- [0.1 +/- 9.53e-3] ++ [0.1 +/- 9.10e-3] + """ + cdef ComplexBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -2512,9 +2513,9 @@ cdef class ComplexBall(RingElement): + sage: CBF(-2, 1)/CBF(1, 1/3) + [-1.500000000000000 +/- 8.83e-16] + [1.500000000000000 +/- 5.64e-16]*I + sage: CBF(2+I)/CBF(0) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + sage: CBF(1)/CBF(0) +- [+/- inf] ++ nan + sage: CBF(1)/CBF(RBF(0, 1.)) + nan + """ +@@ -2543,9 +2544,9 @@ cdef class ComplexBall(RingElement): + sage: CBF(0)^(1/3) + 0 + sage: CBF(0)^(-1) +- [+/- inf] ++ nan + sage: CBF(0)^(-2) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + + TESTS:: + +@@ -2656,12 +2657,12 @@ cdef class ComplexBall(RingElement): + sage: CBF(1).rising_factorial(5) + 120.0000000000000 + sage: CBF(1/3, 1/2).rising_factorial(300) +- [-3.87949484514e+612 +/- 5.23e+600] + [-3.52042209763e+612 +/- 5.55e+600]*I ++ [-3.87949484514e+612 +/- 5...e+600] + [-3.52042209763e+612 +/- 5...e+600]*I + + sage: CBF(1).rising_factorial(-1) + nan + sage: CBF(1).rising_factorial(2**64) +- [+/- 2.30e+347382171305201370464] ++ [+/- 2.30e+347382171326740403407] + sage: ComplexBallField(128)(1).rising_factorial(2**64) + [2.343691126796861348e+347382171305201285713 +/- 4.71e+347382171305201285694] + sage: CBF(1/2).rising_factorial(CBF(2,3)) +@@ -2700,7 +2701,7 @@ cdef class ComplexBall(RingElement): + [1.000000000000000 +/- 2.83e-16] + [-0.441271200305303 +/- 2.82e-16]*I + + sage: CBF('inf').log() +- nan + nan*I ++ [+/- inf] + sage: CBF(2).log(0) + nan + nan*I + """ +@@ -2808,7 +2809,7 @@ cdef class ComplexBall(RingElement): + sage: CBF(pi/2, 1/10).tan() + [+/- 2.87e-14] + [10.0333111322540 +/- 2.36e-14]*I + sage: CBF(pi/2).tan() +- [+/- inf] ++ nan + """ + cdef ComplexBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -2825,7 +2826,7 @@ cdef class ComplexBall(RingElement): + sage: CBF(pi, 1/10).cot() + [+/- 5.74e-14] + [-10.0333111322540 +/- 2.81e-14]*I + sage: CBF(pi).cot() +- [+/- inf] ++ nan + """ + cdef ComplexBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -3211,9 +3212,9 @@ cdef class ComplexBall(RingElement): + 1.000000000000000*I + + sage: CBF(2+3*I).hypergeometric([1/4,1/3],[1/2]) +- [0.7871684267473 +/- 7.34e-14] + [0.2749254173721 +/- 9.23e-14]*I ++ [0.7871684267473 +/- 7...e-14] + [0.2749254173721 +/- 9...e-14]*I + sage: CBF(2+3*I).hypergeometric([1/4,1/3],[1/2],regularized=True) +- [0.4441122268685 +/- 3.96e-14] + [0.1551100567338 +/- 5.75e-14]*I ++ [0.4441122268685 +/- 3...e-14] + [0.1551100567338 +/- 5...e-14]*I + + sage: CBF(5).hypergeometric([2,3], [-5]) + nan + nan*I +@@ -4041,9 +4042,9 @@ cdef class ComplexBall(RingElement): + + sage: phi = CBF(1,1) + sage: (CBF.pi()/2).elliptic_e_inc(phi) +- [1.283840957898 +/- 3.23e-13] + [-0.5317843366915 +/- 7.79e-14]*I ++ [1.283840957898 +/- 3...e-13] + [-0.5317843366915 +/- 7...e-14]*I + sage: phi.elliptic_e() +- [1.2838409578982 +/- 5.90e-14] + [-0.5317843366915 +/- 3.35e-14]*I ++ [1.2838409578982 +/- 5...e-14] + [-0.5317843366915 +/- 3...e-14]*I + + sage: phi = CBF(2, 3/7) + sage: (CBF.pi()/2).elliptic_e_inc(phi) +@@ -4312,8 +4313,7 @@ cdef class ComplexBall(RingElement): + sage: CBF(10).laguerre_L(3, 2) + [-6.666666666667 +/- 4.15e-13] + sage: CBF(5,7).laguerre_L(CBF(2,3), CBF(1,-2)) +- [5515.315030271 +/- 4.37e-10] + [-12386.942845271 +/- 5.47e-10]*I +- ++ [5515.315030271 +/- 4...e-10] + [-12386.942845271 +/- 5...e-10]*I + """ + cdef ComplexBall my_n = self._parent.coerce(n) + cdef ComplexBall my_m = self._parent.coerce(m) +@@ -4357,9 +4357,9 @@ cdef class ComplexBall(RingElement): + EXAMPLES:: + + sage: CBF(1/2).legendre_P(5) +- [0.08984375000000000 +/- 4.5...e-18] ++ [0.0898437500000000 +/- 7...e-17] + sage: CBF(1,2).legendre_P(CBF(2,3), CBF(0,1)) +- [0.10996180744364 +/- 7.45e-15] + [0.14312767804055 +/- 8.38e-15]*I ++ [0.10996180744364 +/- 7.12e-15] + [0.14312767804055 +/- 8.07e-15]*I + sage: CBF(-10).legendre_P(5, 325/100) + [-22104403.487377 +/- 6.81e-7] + [53364750.687392 +/- 7.25e-7]*I + sage: CBF(-10).legendre_P(5, 325/100, type=3) +@@ -4393,9 +4393,9 @@ cdef class ComplexBall(RingElement): + sage: CBF(1/2).legendre_Q(5) + [0.55508089057168 +/- 2.79e-15] + sage: CBF(1,2).legendre_Q(CBF(2,3), CBF(0,1)) +- [0.167678710 +/- 4.60e-10] + [-0.161558598 +/- 7.47e-10]*I ++ [0.167678710 +/- 3.91e-10] + [-0.161558598 +/- 6.77e-10]*I + sage: CBF(-10).legendre_Q(5, 325/100) +- [-83825154.36008 +/- 4.94e-6] + [-34721515.80396 +/- 5.40e-6]*I ++ [-83825154.36008 +/- 5.02e-6] + [-34721515.80396 +/- 5.42e-6]*I + sage: CBF(-10).legendre_Q(5, 325/100, type=3) + [-4.797306921692e-6 +/- 6.82e-19] + [-4.797306921692e-6 +/- 6.57e-19]*I + +diff --git a/src/sage/rings/polynomial/polynomial_complex_arb.pyx b/src/sage/rings/polynomial/polynomial_complex_arb.pyx +index c436d4705b..ef611a566b 100644 +--- a/src/sage/rings/polynomial/polynomial_complex_arb.pyx ++++ b/src/sage/rings/polynomial/polynomial_complex_arb.pyx +@@ -543,7 +543,7 @@ cdef class Polynomial_complex_arb(Polynomial): + sage: (1 - x/3).inverse_series_trunc(3) + ([0.1111111111111111 +/- 5.99e-17])*x^2 + ([0.3333333333333333 +/- 7.04e-17])*x + 1.000000000000000 + sage: x.inverse_series_trunc(1) +- [+/- inf] ++ nan + sage: Pol(0).inverse_series_trunc(2) + (nan + nan*I)*x + nan + nan*I + +@@ -671,7 +671,7 @@ cdef class Polynomial_complex_arb(Polynomial): + sage: pol._sqrt_series(2) + ([+/- 7.51e-3] + [+/- 0.501]*I)*x + [+/- 5.01e-3] + [+/- 1.01]*I + sage: x._sqrt_series(2) +- ([+/- inf] + [+/- inf]*I)*x ++ (nan + nan*I)*x + """ + cdef Polynomial_complex_arb res = self._new() + if n < 0: +diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx +index c9f68e38d7..76e3037a9a 100644 +--- a/src/sage/rings/real_arb.pyx ++++ b/src/sage/rings/real_arb.pyx +@@ -161,7 +161,7 @@ values and should be preferred:: + + sage: RBF(NaN) < RBF(infinity) + False +- sage: 1/RBF(0) <= RBF(infinity) ++ sage: RBF(0).add_error(infinity) <= RBF(infinity) + True + + TESTS:: +@@ -252,6 +252,8 @@ cdef void mpfi_to_arb(arb_t target, const mpfi_t source, const long precision): + (+infinity, +infinity) + sage: RBF(RIF(-infinity)).endpoints() + (-infinity, -infinity) ++ sage: RBF(RIF(-infinity, infinity)).endpoints() ++ (-infinity, +infinity) + sage: RIF(RBF(infinity)).endpoints() + (+infinity, +infinity) + sage: RIF(RBF(-infinity)).endpoints() +@@ -266,10 +268,11 @@ cdef void mpfi_to_arb(arb_t target, const mpfi_t source, const long precision): + if _do_sig(precision): sig_on() + mpfi_get_left(left, source) + mpfi_get_right(right, source) +- arb_set_interval_mpfr(target, left, right, precision) +- # Work around weakness of arb_set_interval_mpfr(tgt, inf, inf) +- if mpfr_equal_p(left, right): +- mag_zero(arb_radref(target)) ++ if mpfr_inf_p(left) and mpfr_inf_p(right) and mpfr_sgn(left) < 0 < mpfr_sgn(right): ++ # Work around a weakness of arb_set_interval_mpfr(tgt, -inf, inf) ++ arb_zero_pm_inf(target) ++ else: ++ arb_set_interval_mpfr(target, left, right, precision) + if _do_sig(precision): sig_off() + + mpfr_clear(left) +@@ -649,17 +652,15 @@ class RealBallField(UniqueRepresentation, Field): + EXAMPLES:: + + sage: RBF.some_elements() +- [1.000000000000000, +- [0.3333333333333333 +/- 7.04e-17], ++ [0, 1.000000000000000, [0.3333333333333333 +/- 7.04e-17], + [-4.733045976388941e+363922934236666733021124 +/- 3.46e+363922934236666733021108], +- [+/- inf], +- [+/- inf], +- nan] ++ [+/- inf], [+/- inf], [+/- inf], nan] + """ + import sage.symbolic.constants +- return [self(1), self(1)/3, ++ inf = self(sage.rings.infinity.Infinity) ++ return [self(0), self(1), self(1)/3, + -self(2)**(Integer(2)**80), +- self(sage.rings.infinity.Infinity), ~self(0), ++ inf, -inf, self.zero().add_error(inf), + self.element_class(self, sage.symbolic.constants.NotANumber())] + + def _sum_of_products(self, terms): +@@ -881,7 +882,7 @@ class RealBallField(UniqueRepresentation, Field): + sage: RBF.gamma(5) + 24.00000000000000 + sage: RBF.gamma(10**20) +- [+/- 5.92e+1956570551809674821757] ++ [+/- 5.50e+1956570552410610660600] + sage: RBF.gamma(1/3) + [2.678938534707747 +/- 8.99e-16] + sage: RBF.gamma(-5) +@@ -2247,7 +2248,7 @@ cdef class RealBall(RingElement): + sage: inf = RBF(+infinity) + sage: other_inf = RBF(+infinity, 42.r) + sage: neg_inf = RBF(-infinity) +- sage: extended_line = 1/RBF(0) ++ sage: extended_line = RBF(0).add_error(infinity) + sage: exact_nan = inf - inf + sage: exact_nan.mid(), exact_nan.rad() + (NaN, 0.00000000) +@@ -2659,7 +2660,7 @@ cdef class RealBall(RingElement): + sage: ~RBF(5) + [0.2000000000000000 +/- 4.45e-17] + sage: ~RBF(0) +- [+/- inf] ++ nan + sage: RBF(RIF(-0.1,0.1)) + [+/- 0.101] + +@@ -2739,7 +2740,7 @@ cdef class RealBall(RingElement): + sage: RBF(pi)/RBF(e) + [1.155727349790922 +/- 8.43e-16] + sage: RBF(2)/RBF(0) +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -2765,7 +2766,7 @@ cdef class RealBall(RingElement): + sage: RBF(-1)^(1/3) + nan + sage: RBF(0)^(-1) +- [+/- inf] ++ nan + sage: RBF(-e)**RBF(pi) + nan + +@@ -3129,7 +3130,7 @@ cdef class RealBall(RingElement): + sage: RBF(1).tan() + [1.557407724654902 +/- 3.26e-16] + sage: RBF(pi/2).tan() +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -3146,7 +3147,7 @@ cdef class RealBall(RingElement): + sage: RBF(1).cot() + [0.642092615934331 +/- 4.79e-16] + sage: RBF(pi).cot() +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -3257,7 +3258,7 @@ cdef class RealBall(RingElement): + sage: RBF(1).coth() + [1.313035285499331 +/- 4.97e-16] + sage: RBF(0).coth() +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() |