fredrikj.net / blog /
Bordeaux FLINT workshop report
April 4, 2024
The fourth official FLINT workshop took place two weeks ago at LaBRI at the University of Bordeaux. The turnout was similar to last time, with 14 on-site participants and a couple of people working remotely, some discussions taking place on Zulip chat.
Outcome
What did we accomplish? In total, 15 issues and 31 pull requests (25 closed) have been tagged "workshop 2024". There was less commit activity than in Kaiserslautern, but for good reason: there was no big 3.0 release to fix a million little issues for this time (FLINT 3.1 was strategically released a couple of weeks before this workshop). A couple of major features were developed but have not yet been merged.
I'll try to make a very brief overview of the most important developments:
- Kartik Venkatram has nearly finished the generic implementation of sparse vectors and matrices, up to and including sparse linear solvers. Sparse matrices are a crucial missing FLINT feature that has been requested for years. The code looks ready to merge in the near future after fixing a few minor issues.
- Marc Mezzarobba developed an initial Sage wrapper for FLINT's new generics, allowing one to access (almost) all FLINT rings which have not yet been wrapped in Sage. Marc gave a demo of the wrapper on Thursday when we co-hosted the Bordeaux Sage meeting.
- Edgar Costa fixed FLINT's formula in homebrew, implemented nightly releases in CI, and worked on a parser to automatically find mismatches between header files and the documentation.
- Albin Ahlbäck fixed several build issues, worked out error bounds for high multiplication, fixed wrong stack usage in assembly routines, started working on assembly routines for low multiplication, and experimented with AVX512 for fft_small.
- Oscar Benjamin worked on building python-flint using Meson.
- Jean Kieffer worked on optimizing theta functions, especially in the genus 1 case. This work was not finished during the workshop, but hopefully soon!
- Ricardo Buring, Marc Mezzarobba and I agreed on a roadmap and API for D-finite functions and ODEs in FLINT.
- Ricardo Buring worked on generic implementations of Newton iteration and divide-and-conquer to solve systems of linear ODEs with univariate polynomial coefficients.
- Vincent Neiger, participating remotely, fixed a bug in n_primitive_root and made some progress on an nmod small-prime FFT.
- Hartmut Monien contributed example programs for tanh-sinh integration and for computing p-adic roots of integer polynomials.
- Bill Allombert did some benchmarking of FLINT vs Pari/GP, discovering a couple of bottlenecks, and helped improve the example programs.
- Myself, I fixed several bugs reported by participants, refactored the generic power series code, optimized and implemented C fallbacks for some mpn routines, and started working on optimized mpn_mod code (more about that in the future).
Credits
I'd like to thank the following people and entities who ensured that the workshop ran very smoothly:
- Sébastien Labbé who booked rooms and computer equipment and ensured that we had a coffe machine the whole week.
- Andreas Enge who delivered an enormous supply of cookies, fruits, juice and tea.
- Our team assistant Joëlle for travel administration and lunch bookings.
- ANR Nuscap for the funding (thanks to Guillaume Melquiond for approving the use of funds for this purpose).
- The weather, which was exceptionally nice this week.
It was fun to meet everyone again (plus a couple of new faces)! We will try to organize another workshop later this year. Anyone who has preferences for dates and locations (two options discussed so far are Paris and Bristol) should get in touch.
fredrikj.net | Blog index | RSS feed | Follow me on Mastodon | Become a sponsor