diff --git a/src/.relint.yml b/src/.relint.yml index 97bf2ac1dbc..61dcf109c88 100644 --- a/src/.relint.yml +++ b/src/.relint.yml @@ -71,4 +71,4 @@ magic doctest comments should appear on the "sage:" line, not "....:" lines # see optional_regex in src/sage/doctest/parsing.py # "indirect doctest" is from src/bin/sage-coverage - pattern: '^[ ]*[.][.][.][.]:.*#.*(arb216|arb218|py2|py3|long time|not implemented|not tested|known bug|optional|indirect doctest)' + pattern: '^[ ]*[.][.][.][.]:.*#.*(py2|py3|long time|not implemented|not tested|known bug|optional|indirect doctest)' diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index 2973e9f6c64..58d4d53dbb9 100644 --- a/src/sage/doctest/control.py +++ b/src/sage/doctest/control.py @@ -58,14 +58,6 @@ auto_optional_tags = set() -try: - from sage.libs.arb.arb_version import version as arb_vers - arb_tag = 'arb2' + arb_vers().split('.')[1] - auto_optional_tags.add(arb_tag) -except ImportError: - pass - - class DocTestDefaults(SageObject): """ This class is used for doctesting the Sage doctest module. diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index 3e5b0a98975..31c27ddd4f2 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -95,7 +95,7 @@ def fake_RIFtol(*args): ansi_escape_sequence = re.compile(r"(\x1b[@-Z\\-~]|\x1b\[.*?[@-~]|\x9b.*?[@-~])") special_optional_regex = ( - "arb216|arb218|py2|long time|not implemented|not tested|optional|needs|known bug" + "py2|long time|not implemented|not tested|optional|needs|known bug" ) tag_with_explanation_regex = r"((?:\w|[.])*)\s*(?:\((?P.*?)\))?" optional_regex = re.compile( @@ -136,8 +136,6 @@ def parse_optional_tags( - ``'not tested'`` - ``'known bug'`` (possible values are ``None``, ``linux`` and ``macos``) - ``'py2'`` - - ``'arb216'`` - - ``'arb218'`` - ``'optional - FEATURE...'`` or ``'needs FEATURE...'`` -- the dictionary will just have the key ``'FEATURE'`` diff --git a/src/sage/libs/arb/arb_version.pyx b/src/sage/libs/arb/arb_version.pyx deleted file mode 100644 index b8ab4d725e5..00000000000 --- a/src/sage/libs/arb/arb_version.pyx +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -from sage.cpython.string cimport char_to_str - - -cdef extern from "arb_wrap.h": - char * arb_version - - -def version(): - """ - Get arb version - - TESTS:: - - sage: from sage.libs.arb.arb_version import version - sage: version().split('.')[0] - '2' - """ - try: - py_string = char_to_str(arb_version) - finally: - pass - return py_string diff --git a/src/sage/libs/flint/flint_wrap.h b/src/sage/libs/flint/flint_wrap.h index fcfe660a1f6..1302973779e 100644 --- a/src/sage/libs/flint/flint_wrap.h +++ b/src/sage/libs/flint/flint_wrap.h @@ -136,8 +136,6 @@ #include #include #include -#include -#include #include #include #include diff --git a/src/sage/libs/flint/fmpq.pxd b/src/sage/libs/flint/fmpq.pxd index 41f075326fe..61ebabac2b0 100644 --- a/src/sage/libs/flint/fmpq.pxd +++ b/src/sage/libs/flint/fmpq.pxd @@ -41,14 +41,12 @@ cdef extern from "flint_wrap.h": void fmpq_height(fmpz_t height, const fmpq_t x) noexcept flint_bitcnt_t fmpq_height_bits(const fmpq_t x) noexcept void fmpq_set_fmpz_frac(fmpq_t res, const fmpz_t p, const fmpz_t q) noexcept - void fmpq_get_mpz_frac(mpz_t a, mpz_t b, fmpq_t c) noexcept void fmpq_set_si(fmpq_t res, slong p, ulong q) noexcept void _fmpq_set_si(fmpz_t rnum, fmpz_t rden, slong p, ulong q) noexcept void fmpq_set_ui(fmpq_t res, ulong p, ulong q) noexcept void _fmpq_set_ui(fmpz_t rnum, fmpz_t rden, ulong p, ulong q) noexcept void fmpq_set_mpq(fmpq_t dest, const mpq_t src) noexcept int fmpq_set_str(fmpq_t dest, const char * s, int base) noexcept - void fmpq_init_set_mpz_frac_readonly(fmpq_t z, const mpz_t p, const mpz_t q) noexcept double fmpq_get_d(const fmpq_t f) noexcept void fmpq_get_mpq(mpq_t dest, const fmpq_t src) noexcept int fmpq_get_mpfr(mpfr_t dest, const fmpq_t src, mpfr_rnd_t rnd) noexcept diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx index b7384f628dc..31d1baf0f38 100644 --- a/src/sage/rings/complex_arb.pyx +++ b/src/sage/rings/complex_arb.pyx @@ -4792,18 +4792,14 @@ cdef class ComplexBall(RingElement): sage: n = CBF(1,1) sage: m = CBF(-2/3, 3/5) - sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb216 - [0.8934793755173 +/- ...e-14] + [0.95707868710750 +/- ...e-15]*I - sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb218 - this is a regression, see :trac:28623 + sage: n.elliptic_pi_inc(CBF.pi()/2, m) # this is a regression, see :trac:28623 nan + nan*I sage: n.elliptic_pi(m) [0.8934793755173...] + [0.957078687107...]*I sage: n = CBF(2, 3/7) sage: m = CBF(-1/3, 2/9) - sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb216 - [0.2969588746419 +/- ...e-14] + [1.3188795332738 +/- ...e-14]*I - sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb218 - this is a regression, see :trac:28623 + sage: n.elliptic_pi_inc(CBF.pi()/2, m) # this is a regression, see :trac:28623 nan + nan*I sage: n.elliptic_pi(m) [0.296958874641...] + [1.318879533273...]*I diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx index 8509b19cc66..5769123c6d2 100644 --- a/src/sage/rings/real_arb.pyx +++ b/src/sage/rings/real_arb.pyx @@ -294,11 +294,7 @@ cdef int arb_to_mpfi(mpfi_t target, arb_t source, const long precision) except - EXAMPLES:: - sage: RIF(RBF(2)**(2**100)) # arb216 # indirect doctest - Traceback (most recent call last): - ... - ArithmeticError: Error converting arb to mpfi. Overflow? - sage: RIF(RBF(2)**(2**100)) # arb218 # indirect doctest + sage: RIF(RBF(2)**(2**100)) [5.8756537891115869e1388255822130839282 .. +infinity] # 64-bit [2.098... .. +infinity] # 32-bit @@ -1729,11 +1725,7 @@ cdef class RealBall(RingElement): :: sage: b = RBF(2)^(2^1000) - sage: b.mid() # arb216 - Traceback (most recent call last): - ... - RuntimeError: unable to convert to MPFR (exponent out of range?) - sage: b.mid() # arb218 + sage: b.mid() +infinity .. SEEALSO:: :meth:`rad`, :meth:`squash` diff --git a/src/sage/symbolic/ginac/useries-flint.h b/src/sage/symbolic/ginac/useries-flint.h index 7ecd4d50107..08847273e2e 100644 --- a/src/sage/symbolic/ginac/useries-flint.h +++ b/src/sage/symbolic/ginac/useries-flint.h @@ -27,9 +27,6 @@ #include "flint/fmpq_poly.h" #include "flint/fmpq.h" -extern "C" void fmpq_get_mpz_frac(mpz_t a, mpz_t b, fmpq_t c); -extern "C" void fmpq_init_set_mpz_frac_readonly(fmpq_t z, const mpz_t p, const mpz_t q); - #include diff --git a/src/sage/symbolic/ginac/useries.cpp b/src/sage/symbolic/ginac/useries.cpp index b9a8b867648..7649e36b49a 100644 --- a/src/sage/symbolic/ginac/useries.cpp +++ b/src/sage/symbolic/ginac/useries.cpp @@ -550,14 +550,16 @@ void power::useries(flint_series_t& fp, int order) const mpz_t cnum, cden; mpz_init(cnum); mpz_init(cden); - fmpq_get_mpz_frac(cnum, cden, c); + fmpz_get_mpz(cnum, fmpq_numref(c)); + fmpz_get_mpz(cden, fmpq_denref(c)); if (not mpz_perfect_square_p(cnum) or not mpz_perfect_square_p(cden)) throw flint_error(); mpz_sqrt(cnum, cnum); mpz_sqrt(cden, cden); fmpq_t cc; - fmpq_init_set_mpz_frac_readonly(cc, cnum, cden); + fmpz_init_set_readonly(fmpq_numref(cc), cnum); + fmpz_init_set_readonly(fmpq_denref(cc), cden); mpz_clear(cnum); mpz_clear(cden);