Flint 2.6.0 Released!

Skip to first unread message

Bill Hart

Jun 5, 2020, 1:09:23 PM6/5/20
to flint-devel, osca...@mathematik.uni-kl.de, sage-...@googlegroups.com, mpir-devel, nemo-devel
Hi all,

It is with pleasure that we announce the release of Flint-2.6.0. This
is the first update of Flint in five years and probably the largest
release ever!

Flint is now almost 500,000 lines of code.

It is available for download from our website in the download section
[1]. Flint documentation is now available online in our new Sphinx
documentation [2].

Flint now supports (native) Windows, Linux, OSX, FreeBSD and OpenBSD.

For MSVC solution files please access Brian Gladman's port [3].

Please note the following deprecations for this release. The functions
have been renamed and the original symbols will be removed in a later

n_gcd_full -> n_gcd
fmpz_poly_is_x -> fmpz_poly_is_gen
fmpz_mod_poly_is_x -> fmpz_mod_poly_is_gen
fmpq_poly_is_x -> fmpq_poly_is_gen

New Features

Here are the main new features:

* multivariate polynomials over most standard rings (sparse distributed)
* APR-CL primality proving
* elliptic curve integer factoring
* minpoly and charpoly
* improved quadratic sieve for integer factoring
* embeddings of finite fields
* pollard rho integer factoring
* p+1 integer factoring
* best of breed smooth integer factoring routine
* best of breed general integer factoring routine
* howell and strong echelon form
* large speedups for solve and hence inverse over Z and Q
* randprime and nextprime functions
* pernet-stein HNF improvements
* moller-granlund precomputed inverses
* resultant_modular_div
* fibonacci polynomials
* exception mechanism/flint_abort
* sqrt of series and polynomials
* division of series over Z
* power sums
* improved base cases of various power series functions
* ability to switch memory allocators
* fast recurrence for Hermite polys
* shifted Legendre polynomials
* Laguerre polynomials
* Gegenbauer polys
* sphinx documentation
* van hoeij with gradual feeding implementation of polynomial factoring over Z
* perfect power detection
* divisibility testing for polynomials
* fast block based memory manager for bundling fmpz allocations
* uniform random generation
* CMake build system
* linear algebra speedups when everything can be kept in longs
* nmod module for integers mod (small) n
* fmpz_mod_mat module for matrices over integers mod multiprecision n
* kronecker product (tensor product)
* random primitive polys (for finite fields)
* thread pool implementation
* threading of FFT for integer and polynomial multiplication over Z
* threading of quadratic sieve for integer factoring
* improved threading of factoring of polynomials mod p
* threading for multivariate polynomial multiplication, division and GCD
* threaded multiplication of matrices mod p
* Berlekamp-Massey (nmod)
* fmpz_mod module for integers mod multiprecision n
* Pohlig-Hellman (discrete log)
* farey_neighbours
* remove openMP option
* additional integer division variants
* speed up mpn_mulmod_preinv
* fft precaching
* cyclotomic polynomial detection
* polynomial root finding over finite fields
* GMP 6.2 support
* MPIR 3.0.0 support
* many small speedups and additional convenience functions added


This release would not have been possible without an extraordinary
number of contributions. Here are the main contributors to this

* Daniel Schultz - multivariate polynomials, root finding, thread
pool, many speedups and bug fixes
* Fredrik Johansson - Speedup of inverse and solve, speedup of
basecases with small entries, Sphinx documentation, many other
improvements, maintenance and patch review
* William Hart - Maintainer, qsieve, ecm, threading, polynomial
factoring, minpoly, charpoly, fft precaching, speedup of inverse and
solve, many other improvements
* Vladimir Glazachev - APRCL
* Kushagra Singh - qsieve improvements, pollard rho
* Nitin Kumar - qsieve improvements
* Tommy Hofmann - matrix normal forms, bug fixes
* Dan Roche - randprime, nextprime, some work on minpoly
* Claus Fieker - flint_abort, qadics without Conway polynomials, bug fixes
* Alex Best - integer factor improvements, bug fixes
* Shrivin Srivastava - Fibonacci polynomials, speed up linear
composition, bug fixes
* Ralf Stephan - Hermite, Laguerre, Shifted Legendre, Gegenbauer polynomials
* Isuru Fernando - testing, build issues, bug fixes
* Vincent Delecroix - power sums, polynomial speedups, root counting
* Luca De Feo - Embeddings of finite fields
* Martin Raum - Kronecker product
* xoviat - CMake support
* Edouard Rousseau - Embeddings of finite fields
* David Einstein - documentation proofreading, CMake fixes
* Jerry James - memory leak fixes, array overrun fixes
* Brian Gladman - Windows MSVC support

We wish to give special thanks to two contributors, namely Daniel
Schultz and Isuru Fernando. Daniel because of the extraordinary amount
of outstanding new code contributed (well over 100,000 lines of code)
and Fernando for going above and beyond in helping track down curly
build issues and bugs and being super responsive when it most

We wish to also thank the following people who made smaller patches,
did testing, made extensive bug reports or other useful contributions:

Apoorv Mishra, Tobias Hansen, Curtis Bright, sourcekris, yuri@FreeBSD,
vinklein, Michele orru, Frederik Chapoton, Peter Frentrep, Eric Bray,
Julian Ruth, Edgar Costa, Raphael Fourquet, John Palmieri, Benjamin
Lorenz, Mahrud Sayrafi, Max Horn, Kiran Kedlaya, JP Flori, lzmths,
Volker Braun, Aaditya Thakkar, Pascal Mollin, Srajan Garg, Peter
Luschny, Dejan Latinovic, Dima Pasechnik, Bob Smith, Lars Kastner,
Gregory Vanuxum, Julien Puydt.

There were also very many other people who contributed bug reports,
who we wish to thank.

And we wish to thank all the other contributors that we have missed,
who wrote to us by private email, sent patches or communicated issues
verbally, which aren't tracked on GitHub.

If you believe your name is missing above or in our contributor list
on our website, please contact us immediately so we can add your name.

Thank you also to all the package maintainers in the distributions,
especially the ones who have tested Flint during our alpha/rc phase.

Thank you all! Flint could not be what it is without you!

Best Wishes,

The Flint Development Team.

[1] http://flintlib.org/
[2] http://flintlib.org/doc/
[3] https://github.com/BrianGladman/flint
Reply all
Reply to author
0 new messages