public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/e-antic] rawhide: Rebuild for flint 3.6.0
@ 2026-08-17 17:07 Jerry James
  0 siblings, 0 replies; only message in thread
From: Jerry James @ 2026-08-17 17:07 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/e-antic
            Branch : rawhide
            Commit : 307a6adc623cf2e6f70e07c6cde036d5737b8d55
            Author : Jerry James <loganjerry@gmail.com>
            Date   : 2026-08-17T11:07:04-06:00
            Stats  : +114/-0 in 2 file(s)
            URL    : https://src.fedoraproject.org/rpms/e-antic/c/307a6adc623cf2e6f70e07c6cde036d5737b8d55?branch=rawhide

            Log:
            Rebuild for flint 3.6.0

- Remove some functions that are now part of flint

---
diff --git a/e-antic.spec b/e-antic.spec
index 75bc2e8..7e89719 100644
--- a/e-antic.spec
+++ b/e-antic.spec
@@ -13,6 +13,10 @@ Source:         %{giturl}/archive/%{version}/%{name}-%{version}.tar.gz
 # been incorporated into the Fedora versions.  Make e-antic skip attempts to
 # build the patched files.
 Patch:          %{name}-unpatch.patch
+# Some functions were moved from e-antic to flint in flint 3.6.0.  There has
+# not yet been a new e-antic release, so we remove the duplicated functions
+# manually.  Thanks to the Debian maintainers for the patch.
+Patch:          https://sources.debian.org/data/main/e/e-antic/2.1.1+ds-2/debian/patches/isolate-real-roots.patch
 
 # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
 ExcludeArch:    %{ix86}

diff --git a/isolate-real-roots.patch b/isolate-real-roots.patch
new file mode 100644
index 0000000..836b288
--- /dev/null
+++ b/isolate-real-roots.patch
@@ -0,0 +1,110 @@
+Description: Remove real root isolation functions (moved to FLINT)
+Author: Doug Torrance <dtorrance@debian.org>
+Bug: https://github.com/flatsurf/e-antic/issues/308
+Bug-Debian: https://bugs.debian.org/1142091
+Last-Update: 2026-07-15
+
+--- a/libeantic/e-antic/fmpz_poly_extra.h
++++ b/libeantic/e-antic/fmpz_poly_extra.h
+@@ -45,10 +45,6 @@
+ /// [`a`, `b`] becomes the interval [0,1]
+ LIBEANTIC_API void _fmpz_poly_scale_0_1_fmpq(fmpz * pol, slong len, fmpq_t a, fmpq_t b);
+ 
+-/// Return 1 if the polynomial `pol` has a real root and 0 otherwise
+-LIBEANTIC_API int _fmpz_poly_has_real_root(fmpz * pol, slong len);
+-LIBEANTIC_API int fmpz_poly_has_real_root(fmpz_poly_t pol);
+-
+ /// Return an upper bound on the bitsize of largest real root of `pol`.
+ LIBEANTIC_API slong fmpz_poly_positive_root_upper_bound_2exp(const fmpz_poly_t pol);
+ 
+@@ -57,40 +53,6 @@
+ 
+ LIBEANTIC_API slong _fmpz_poly_positive_root_upper_bound_2exp_local_max(const fmpz * pol, slong len);
+ 
+-/// Return an upper bound on the number of real roots of the polynomial
+-/// `pol` (currently using Descartes' rule of sign).
+-LIBEANTIC_API slong fmpz_poly_num_real_roots_upper_bound(fmpz_poly_t pol);
+-
+-/// Return an upper bound on the number of real roots between 0 and 1
+-/// of the polynomial `(p, len)` using Descartes' rule of sign. If
+-/// the result is larger than `bound` then `WORD_MAX` is
+-/// returned.
+-LIBEANTIC_API slong _fmpz_poly_descartes_bound_0_1(fmpz * p, slong len, slong bound);
+-
+-LIBEANTIC_API slong _fmpz_poly_descartes_bound(fmpz * p, slong len, slong bound);
+-
+-/// Isolate the real roots of `(pol, len)` contained in the
+-/// interval \f$(0, 1)\f$. The array `exact_roots` will be set by
+-/// the exact dyadic roots found by the algorithm and
+-/// `n_exact_roots` updated accordingly. The arrays
+-/// `c_array` and `k_array` are set to be interval data
+-/// that enclose the remaining roots and `n_interval` is
+-/// updated accordingly. A data `c = c_array + i` and
+-/// `k = k_array[i]` represents the open interval
+-/// \f$(c 2^k, (c + 1) 2^k)\f$.
+-LIBEANTIC_API void _fmpz_poly_isolate_real_roots_0_1_vca(fmpq * exact_roots, slong * n_exact_roots, fmpz * c_array, slong * k_array, slong * n_intervals, fmpz * pol, slong len);
+-
+-/// Isolate the real roots of `pol`. The array
+-/// `exact_roots` will be set by the exact dyadic roots found
+-/// by the algorithm and `n_exact_roots` updated accordingly.
+-/// The arrays `c_array` and `k_array` are set to be
+-/// interval data that enclose the remaining roots and
+-/// `n_interval` is updated accordingly. A data
+-/// `c = c_array + i` and `k = k_array[i]` represents the
+-/// open interval \f$(c 2^k, (c + 1) 2^k)\f$.
+-LIBEANTIC_API void fmpz_poly_isolate_real_roots(fmpq * exact_roots, slong * n_exact, fmpz * c_array, slong * k_array, slong * n_interval, fmpz_poly_t pol);
+-///@}
+-
+ //// \name Root refinement
+ ///@{
+ LIBEANTIC_API int _fmpz_poly_newton_step_arb(arb_t res, const fmpz * pol, const fmpz * der, slong len, arb_t a, slong prec);
+@@ -103,23 +65,9 @@
+ 
+ LIBEANTIC_API int fmpz_poly_bisection_step_arb(arb_t res, const fmpz_poly_t pol, arb_t a, slong prec);
+ 
+-LIBEANTIC_API void fmpz_poly_squarefree_part(fmpz_poly_t res, fmpz_poly_t poly);
+-
+-
+ LIBEANTIC_API void fmpz_poly_evaluate_at_one(fmpz_t res, fmpz * p, slong len);
+ ///@}
+ 
+-/// \name Miscellaneous
+-///@{
+-LIBEANTIC_API slong fmpz_poly_num_real_roots_0_1_sturm(fmpz_poly_t pol);
+-
+-LIBEANTIC_API slong fmpz_poly_num_real_roots_0_1_vca(fmpz_poly_t pol);
+-
+-LIBEANTIC_API slong fmpz_poly_num_real_roots_0_1(fmpz_poly_t pol);
+-
+-LIBEANTIC_API slong fmpz_poly_num_real_roots_vca(fmpz_poly_t pol);
+-///@}
+-
+ /// \name FLINT, Arb extra
+ ///@{
+ /// Set `res` to be the polynomial whose coefficients are the absolute values
+--- a/libeantic/src/Makefile.am
++++ b/libeantic/src/Makefile.am
+@@ -33,23 +33,14 @@
+ # fmpz_poly_extra/
+ libeantic_la_SOURCES +=                              \
+     fmpz_poly_extra/bisection_step_arb.c             \
+-    fmpz_poly_extra/descartes_bound.c                \
+-    fmpz_poly_extra/descartes_bound_0_1.c            \
+     fmpz_poly_extra/evaluate.c                       \
+     fmpz_poly_extra/randtest_irreducible.c           \
+     fmpz_poly_extra/scale_0_1_fmpq.c                 \
+-    fmpz_poly_extra/squarefree_part.c                \
+-    fmpz_poly_extra/has_real_root.c                  \
+     fmpz_poly_extra/newton_step_arb.c                \
+-    fmpz_poly_extra/num_real_roots_0_1.c             \
+-    fmpz_poly_extra/num_real_roots_0_1_sturm.c       \
+     fmpz_poly_extra/positive_root_upper_bound_2exp.c \
+-    fmpz_poly_extra/isolate_real_roots.c             \
+     fmpz_poly_extra/relative_condition_number_2exp.c \
+     fmpz_poly_extra/abs.c                            \
+     fmpz_poly_extra/evaluate_at_one.c                \
+-    fmpz_poly_extra/num_real_roots_0_1_vca.c         \
+-    fmpz_poly_extra/num_real_roots_vca.c             \
+     fmpz_poly_extra/set_str_pretty.c
+ 
+ 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-17 17:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-17 17:07 [rpms/e-antic] rawhide: Rebuild for flint 3.6.0 Jerry James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox