FLINT 3.6 released

43 views
Skip to first unread message

Fredrik Johansson

unread,
Jun 29, 2026, 5:08:02 AMJun 29
to flint-devel, sage-devel, de...@oscar-system.org
Dear all,

I'm pleased to announce FLINT 3.6: https://github.com/flintlib/flint/releases/tag/v3.6.0

Highlights:

* Power series composition in O(M(n) log n) using the new Kinoshita-Li algorithm.

* New implementation of p-adic numbers 'padic_radix' which is superior to the
  classic 'padic' in many ways (builtin error tracking; works with FLINT's
  generic rings; ~5x faster arithmetic at high precision; supports both
  absolute and relative precision modes; O(1) digit extraction).

* Real root isolation and root refinement for fmpz_poly (much faster than the
  existing complex root isolation).

* Fixed a long-standing bug in FLINT's quadratic sieve that would cause
  fmpz_factor to hang for some input (e.g. for
  500000000000000000000000000000000000000017711).

* Many speedups to linear algebra, polynomial factorisation, integer
  factorisation, Groebner bases, and other operations.

* Added several trigonometric functions for power series, added Bessel
  functions of the first kind for power series, and optimised existing
  trigonometric functions.

Plus many other new features and fixes, for example:

* Division with remainder for Ore polynomials
* Added many matrix and permutation utility functions
* Subresultant-based resultant and XGCD for polynomials over generic UFDs
* Added arb_get_simplest_fmpq
* Added an implementation of the 'secondary zeta function'
* Improved accuracy in acb_dft

See https://flintlib.org/doc/history.html for a complete list of changes. For this version, we've merged 73 pull requests with code from the following 13 authors:

* Albin Ahlbäck
* Chenxin Zhong
* Edgar Costa
* Elias Tsigaridas
* Fredrik Johansson
* Joel Dahne
* Lars Göttgens
* Maria Neagoie
* Mathieu Gouttenoire
* Ricardo Buring
* user202729
* Vincent Delecroix
* Vincent Neiger

Thanks to everyone who contributed! Thanks also to everyone who participated in our June workshop where a lot of this work was done.

Best wishes on behalf of the FLINT team,
Fredrik

Claus Fieker

unread,
Jul 10, 2026, 5:58:22 AM (11 days ago) Jul 10
to flint...@googlegroups.com


Is there a "legal" way of creating a qqbar element from the minpoly and
the embedding?

Background: someone was asking of a compositum of number fields with
given, fixed embeddings
K = Q(a), L = Q(b) where a and b have fixed images in qqbar

This makes the compositum KL = Q(a, b) = Q(c) well defined. Via some
detours, c is usually choses as a+ib for some i, but this also fixes the
embedding automatically.

Here, the way it was tried is to factor the minpoly of b over Q(a), pick
the correct factor (where the embedding of b gives a root) and then
proceed.

Doing this testing directly in qqbar is quite slow as qqbar does not
really understand that this is in a fixed field, so every arithmetic
operations uses resultants, factoring, ..., so I am doing the
evaluations in arb/ acb (with possibly growing precision).

In the end, I have the minpoly for c = a+ib, I have embeddings for a and
b, thus c and would like to create the qqbar element.

The "legal" ways I've found make me compute all roots of the minpoly as
qqbar elements and the identify the correct one. This seems to be
slightly ineffective....

I desired, I can provide the julia/Hecke code for it...

Thanks
 Claus

Fredrik Johansson

unread,
Jul 10, 2026, 6:32:13 AM (11 days ago) Jul 10
to flint-devel
Hi Claus,

You can write an fmpz_poly directly to QQBAR_POLY(x) if you have a valid polynomial (minimal, primitive, positive leading coefficient) and an acb directly to QQBAR_ENCLOSURE(x) if you have a valid isolating enclosure (containing exactly one root). I assume that you can guarantee that the acb contains a root; if you are unsure whether it is isolated from all other roots, you can check with _qqbar_validate_uniqueness (if this check fails, refine to higher precision).

For best performance the enclosure should be accurate to about 128 bits or more, but this is not a requirement.

Fredrik


--

---
You received this message because you are subscribed to the Google Groups "flint-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to flint-devel...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/flint-devel/CAA9NTHJeGh3qhwEQCTU38t7V%2BTgwa7WKGNRKU0TqiBezHQS8FA%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages