Skip to content

Commit bfde82d

Browse files
Merge pull request #2500 from fredrik-johansson/history
Update history
2 parents 09ca038 + 92b3845 commit bfde82d

1 file changed

Lines changed: 106 additions & 4 deletions

File tree

doc/source/history.rst

Lines changed: 106 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,117 @@ History and changes
66
FLINT version history
77
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
88

9-
Future -- FLINT 3.4.0-dev
9+
2025-??-?? -- FLINT 3.4.0-dev
1010
-------------------------------------------------------------------------------
1111

12-
Main contributors: Fredrik Johansson (FJ)
12+
Contributors: Albin Ahlbäck (AA), Andrii Yanovets (AY), Claus Fieker (CF),
13+
David Lowry-Duda (DLD), Dimitri Lesnoff (DL), Daniel Schultz (DS),
14+
Doug Torrance (DT), David Walker (DW), Éric Schost (ES), Fredrik Johansson (FJ),
15+
Guillem Blanco (GB), Joel Dahne (JD), Jean Kieffer (JK), kac3pro (K3),
16+
Lars Göttgens (LG), Mathieu Gouttenoire (MG), Mael Hostettler (MH),
17+
Marc Mezzarobba (MM), Pascal Molin (PM), Ricardo Buring (RB), Remi Prebet (RP),
18+
user202729 (U2), Vincent Neiger (VN).
1319

1420
* Features
1521

16-
* Matrix permanent (``gr_mat_permanent``) (FJ).
22+
* Add ``gr_series`` as a public module (contains both the ``gr_series`` and ``gr_series_mod`` types) (FJ).
23+
* Add directed rounding support for ``nfloat`` (FJ).
24+
* Matrix permanents (``gr_mat_permanent``, ``fmpz_mat_permanent`` and ``fmpq_mat_permanent``) (FJ).
25+
* Add the ``fmpz_mod_mpoly_q`` module for multivariate rational functions over a prime field (AY).
26+
* Gröbner basis computation for ``fmpz_mod_mpoly`` (AY).
27+
* Add ``nmod_poly_minimal_irreducible`` and ``fq_nmod_ctx_init_minimal_weight_ui``
28+
for generating irreducible polynomials with minimal weight for any word-size prime
29+
``p`` and degree ``n``, and use these by default to construct a finite extension field when a Conway polynomial is not available (FJ).
30+
* Fast multipoint evaluation and interpolation on geometrically spaced points for ``nmod_poly`` (ES, VN, MH).
31+
* Add a debug context for generics (``gr_ctx_init_debug``) (FJ).
32+
* Add ``_nmod_vec_invert`` (VN).
33+
* Add ``gr_ctx_ngens`` and ``gr_ctx_gen_name`` (MM).
34+
* Preconditioned modular multiplication for ``nmod_poly`` (FJ).
35+
* Add uniformly random functions for various modular types (including ``_nmod_vec_rand``, ``nmod_mat_rand``, ``fmpz_mod_mat_rand``) (DL).
36+
* Add Kronecker substitution multiplication for ``gr_poly`` (FJ).
37+
* Add ``gr_poly_mullow_complex_reorder`` (FJ).
38+
* Add ``_gr_mpoly_normalise`` to remove zero coefficients (RB).
39+
* Add ``gr_mpoly_derivative`` and ``gr_mpoly_integral`` (RB).
40+
* Add ``gr_derivative_gen``, with implementations for polynomial rings (RB).
41+
* Add ``gr_poly_mullow_classical`` as a standalone function (FJ).
42+
* Support ``truth_t`` in ``flint_printf`` (FJ).
43+
* Add ``delta``, ``eta`` parameters to ``arb_mat_spd_lll_reduce`` and ``arb_mat_spd_is_lll_reduced`` (JK).
44+
* QR and LQ factorization of matrices (``gr_mat_qr``, ``gr_mat_lq``) (FJ).
45+
* Add ``gr_mat_is_orthogonal`` (FJ).
46+
* Add ``gr_mat_randtest_orthogonal`` (FJ).
47+
* Add ``fmpq_poly_discriminant`` (K3).
48+
* Add ``gr_mat_is_row_lll_reduced_naive`` (FJ).
49+
* Add generic Newton solver for series solutions of linear systems of ODEs with rational function coefficients (``gr_mat_gr_poly_solve_lode_newton``) (RB).
50+
* Add ``nfloat_complex_sqrt`` and ``nfloat_complex_rsqrt`` (FJ).
51+
* Generate power series contexts in ``gr_ctx_init_random`` (FJ).
52+
* Functions for converting a ``gr_poly`` between the standard monomial basis and a Newton basis (FJ).
53+
* Polynomial interpolation for ``gr_poly`` (Newton basis and asymptotically fast) (FJ).
54+
* Add ``gr_poly_product_roots`` (FJ).
55+
* Add ``fmpq_poly_interpolate_fmpq_vec`` (RP).
56+
* Add error handling to ``fmpz_poly_interpolate_fmpz_vec`` (FJ).
57+
* Add ``fmpz_poly_interpolate_exact`` for faster exact interpolation without error handling (FJ).
58+
* Add ``gr_ctx_is_rational_vector_space``, ``gr_ctx_is_real_vector_space``, ``gr_ctx_is_complex_vector_space`` (FJ).
1759

60+
* Bug fixes
61+
62+
* Fix erroneous bounds in ``_fmpz_mat_bound_ovals_of_cassini``, which would lead ``fmpz_mat_minpoly`` to compute wrong results for some matrices (CF).
63+
* Fix ``fmpq_poly_resultant_modular_div``, ``fmpz_poly_resultant_modular_div`` and ``nf_elem_norm_div`` with non-monic polynomials (CF).
64+
* Fix initial value selection in ``acb_poly_find_roots`` preventing convergence for certain polynomials with coefficients in geometric progression (FJ).
65+
* Fix ``gr_re`` and ``gr_conj`` for ``nfloat_complex`` (FJ).
66+
* Fix memory corruption bug in ``nmod_mpoly_divides_heap_threaded`` (FJ, DS).
67+
* Fix and test edge cases in ``fmpz_set_str`` (DW).
68+
* Enable accidently disabled ``gr_poly`` test (MM).
69+
* Consistently throw ``FLINT_DIVZERO`` when trying to divide by zero (LG).
70+
* Fix bug in ``gr_poly_div_series_basecase``: this would previously return ``GR_DOMAIN`` in some cases where the quotient actually exists (FJ).
71+
* Correct semantics for generic series: operations on ``gr_series`` should no longer create enclosures for elements that don't exist (FJ).
72+
* Fix ``gr_poly_shift_equivalent`` in positive characteristic (MM).
73+
* Fix a memory leak in nmod_mpoly_gcd and improve test coverage of this function (FJ).
74+
75+
* Performance
76+
77+
* Use ``nfloat``, ``arf`` and ``arb`` arithmetic instead of ``mpf``, ``mpfr`` and ``fmpq`` in ``fmpz_lll``, greatly speeding up multiprecision LLL (FJ).
78+
* Use SQUFOF in ``fmpz_factor`` to speed up factorisations of cofactors in the 65-80 bit range (FJ).
79+
* Reduce multiplication depth in ``_gr_poly_compose_axnc`` (U2).
80+
* Improve precision in ``arb_set_str``, making it more likely to round to nearest (DW).
81+
* Minor speedup for ``fmpz_poly_compose`` (U2).
82+
* Speed up ``n_is_prime`` by replacing the BPSW test with smarter strong probable prime tests and other optimisations (FJ).
83+
* Speed up ``n_factor_one_line`` and ``n_factor_SQUFOF`` by improving the square root computation (FJ).
84+
* Speed up ``n_factor`` by optimising trial division, doing earlier primality testing, and using the one line factor algorithm for larger bit sizes (FJ).
85+
* When possible speed up ``nmod_poly`` multiplication via ``fft_small`` by a factor two for tiny moduli by packing a linear polynomial into each coefficient (FJ).
86+
* Add AVX2 version of ``nmod_vec_dot_half`` (VN).
87+
* Improve speed and accuracy for ``arb_min`` and ``arb_max`` with non-overlapping input (JD).
88+
* Speed up ``_fmpz_vec_scalar_divexact_si``, ``_fmpz_vec_scalar_divexact_ui`` and small-divisor ``_fmpz_vec_scalar_divexact_fmpz`` (FJ).
89+
* Make multivariate polynomial multiplication via nested ``gr_poly`` over various ground types asymptotically fast (FJ).
90+
* Speed up ``_nmod_poly_divrem_newton_n_preinv`` for sparse moduli by handling these specially (FJ).
91+
* Incorporate trial division in ``nmod_poly_is_irreducible`` when the prime is small (FJ).
92+
* Speed up ``nmod_poly`` modular composition by using rectangular splitting instead of Horner for the third step of Brent-Kung (FJ).
93+
* Faster preconditioned multiplication and polynomial GCD for ``mpn_mod`` (FJ).
94+
* Improve ``fmpq_poly_interpolate_fmpz_vec`` by incorporating an asymptotically fast multimodular algorithm and other improvements (RP).
95+
* Improve ``fmpz_poly_interpolate_fmpz_vec`` by incorporating an asymptotically fast multimodular algorithm and other improvements (FJ).
96+
* Make various ``gr_poly`` functions more robust or performant when dealing with inexact representations of zero (FJ).
97+
98+
* Build system, general maintenance
99+
100+
* Fix issues with profiling code on Clang (AA).
101+
* Mark many internal functions as ``static`` (AA).
102+
* Compile with ``-Wmissing-prototypes`` by default (AA).
103+
* Fix many compiler warnings (AA).
104+
* Fix ``acb_theta_all`` and ``acb_theta_one`` disappearing from the shared library (AA).
105+
* Add V Makefile variable for verbose builds (DT).
106+
* Add link-time optimization configure option (MG).
107+
* Fix situations where the compiler runs out of registers for inline assembly on x86 (AA).
108+
* Fix static linkage of ``d_randtest`` (AA).
109+
* Remove the obsolete ``mpfr_vec`` and ``mpfr_mat`` modules (FJ).
110+
* Refactor ``fmpz_lll`` to reduce code size and improve clarity (FJ).
111+
* Refactor power series code (FJ).
112+
* Add ``FLINT_NORETURN`` to function pointer argument (AA).
113+
* Test ``msolve`` in CI (VN).
114+
* Corrections and improvements to the documentation (AA, DL, DLD, GB, LG, U2).
115+
116+
* Example programs
117+
118+
* Add example program to compute pi using AGM iteration (FJ).
119+
* Add example program for computing coefficients of modular forms (PM).
18120

19121
2025-06-16 -- FLINT 3.3.1
20122
-------------------------------------------------------------------------------
@@ -2818,7 +2920,7 @@ Calcium version history
28182920

28192921
* Vectors of multivariate polynomials.
28202922
* Construction of elementary symmetric polynomials.
2821-
* Gröbner basis computation (naive Buchberger algorithm).
2923+
* Gröbner basis computation (naive Buchberger algorithm).
28222924

28232925
* Documentation and presentation
28242926

0 commit comments

Comments
 (0)