1103 lines
39 KiB
Plaintext
1103 lines
39 KiB
Plaintext
|
v 1.0 -- 2-Dec-07 :
|
||
|
|
||
|
* First version of FLINT, includes fmpz_poly, fmpz and mpQS
|
||
|
|
||
|
v 1.0.1 -- 7-Dec-07 :
|
||
|
|
||
|
* Fixed a bug in _fmpz_poly_maxbits1 on 32 bit machines, reported by Michael Abshoff and Carl Witty
|
||
|
* Removed some instances of u_int64_t and replaced them with uint64_t, reported by Michael Abshoff
|
||
|
* Replaced sys/types.h with stdint.h
|
||
|
* Added FLINT macros to documentation
|
||
|
* Corrected numerous typos in documentation
|
||
|
|
||
|
v 1.0.2 -- 10-Dec-07
|
||
|
|
||
|
* Rewrote tuning code for integer multiplication functions, making it more robust and fixing a bug
|
||
|
which showed up on 32 bit machines (reported by Michael Abshoff and Jaap Spies). Factored the tuning
|
||
|
code out into a number of macros.
|
||
|
|
||
|
v 1.0.3 -- 16-Dec-07
|
||
|
|
||
|
* Fixed a bug in the polynomial memory managment code which caused a segfault
|
||
|
* Fixed a bug in the pseudo division code which caused a block overrun
|
||
|
|
||
|
v 1.0.4 -- 04-Jan-08
|
||
|
|
||
|
* Fixed a bug in the bernoulli_zmod example program and associated polynomial zmod code which caused memory corruption.
|
||
|
* Fixed a bug in the fmpz-test code which manifested on 32 bit machines, reported by David Harvey.
|
||
|
* Fixed some bugs in the pari profiling code.
|
||
|
|
||
|
v 1.0.5 -- 05-Jan-08
|
||
|
|
||
|
* Fixed some inline issues which cause problems because of the C99 inline rules (reported by David Harvey).
|
||
|
* Fixed a makefile issue reported (and solved) by David Harvey when *not* linking against NTL.
|
||
|
|
||
|
v 1.0.6 -- 17-Jan-08
|
||
|
|
||
|
* Fixed an issue with FLINT_BIT_COUNT on certain machines (probably due to arithmetic shift issues)
|
||
|
|
||
|
v 1.0.7 -- 22-Jan-08
|
||
|
|
||
|
* Made F_mpn_mul binary compatible with the way mpn_mul *operates* in practice.
|
||
|
|
||
|
v 1.0.8 -- 15-Feb-08
|
||
|
|
||
|
* Fixed a bug in fmpz_poly_right_shift (reported by Kiran Kedlaya)
|
||
|
|
||
|
v 1.0.9 -- 11-Mar-08
|
||
|
|
||
|
* Fixed a memory allocation bug in fmpz_poly_power
|
||
|
|
||
|
v 1.0.10 -- 16-Jun-08:
|
||
|
|
||
|
* integer gcd (this just wraps the GMP gcd code)
|
||
|
* polynomial content
|
||
|
* convert to and from FLINT and NTL integers and polynomials
|
||
|
* get a coefficient of a polynomial efficiently as a read only mpz_t
|
||
|
* print polynomials in a prettified format with a specified variable
|
||
|
|
||
|
v 1.0.11 -- 9-Jul-08
|
||
|
|
||
|
* Fixed a bug in z_ll_mod_precomp on ia64 (reported by Michael Abshoff and William Stein)
|
||
|
|
||
|
v 1.0.12 -- 11-Jul-08
|
||
|
* Removed some Opteron tuning flags which cause illegal instruction errors on Pentium4
|
||
|
* Fixed numerous memory leaks in fmpz_poly test code
|
||
|
* Fixed memory leak in fmpz_poly_power_trunc_n
|
||
|
* Fixed major memory leaks in fmpz_poly_xgcd_modular
|
||
|
* Rewrote __fmpz_poly_mul_karatrunc_recursive and _fmpz_poly_mul_karatsuba_trunc to "prove code" and got rid of some dirty memory issues
|
||
|
* Fixed some potential illegal memory accesses to do with cache prefetching in fmpz_poly.c
|
||
|
|
||
|
v 1.0.13 -- 13-Jul-08
|
||
|
* Fixed memory leaks and dirty memory issues in test code for numerous modules.
|
||
|
* Removed further issues with cache prefetching in mpn_extras.c
|
||
|
|
||
|
v 1.0.14 -- 23-Sep-08
|
||
|
* Update long_extras and test code for the sake of new quadratic sieve (new functions in long_extras remain undocumented)
|
||
|
* Removed many bugs from tinyQS and mpQS and joined them into a single program for factoring integers
|
||
|
|
||
|
v 1.0.15 -- 15-Oct-08
|
||
|
* Fixed a bug which causes a segfault when setting a coefficient of the zero polynomial to zero
|
||
|
* Fixed build bug in longlong.h on s390 platform
|
||
|
|
||
|
v 1.0.16 -- 22-Oct-08
|
||
|
* Fixed a segfault when trying to truncate a polynomial to an longer length than it currently is, with the function fmpz_poly_truncate (reported by Craig Citro)
|
||
|
|
||
|
v 1.0.17 -- 30-Nov-08
|
||
|
* Fixed a segfault caused by left shifting of polynomials with zero limbs allocated in division and pseudo division functions.
|
||
|
* Fixed a bound used in fmpz_gcd_modular to use a proven bound
|
||
|
* Fixed a bug in fmpz_poly-profile where the top bit of random coefficients of n bits was always set
|
||
|
|
||
|
v 1.0.18 -- 05-Dec-08
|
||
|
* Fixed another bug in the fmpz_poly_set_coeff_* functions which resulted in dirty coefficients
|
||
|
|
||
|
v 1.0.19 -- 12-Dec-08
|
||
|
* Fixed a bug in z_remove_precomp
|
||
|
|
||
|
v 1.0.20 -- 13-Dec-08
|
||
|
* Fixed some bugs in conversion of zmod_poly's to and from strings
|
||
|
|
||
|
v 1.0.21 -- 25-Dec-08
|
||
|
* Fixed the Christmas bug reported by Michael Abshoff which causes a test failure in fmpz_poly_gcd_modular and a hang in fmpz_poly_invmod_modular on 32 bit machines
|
||
|
|
||
|
v 1.1.0 -- 21-Dec-08 (some of the following features were previewed in FLINT 1.0.11):
|
||
|
|
||
|
* integer gcd (this just wraps the GMP gcd code)
|
||
|
* polynomial content
|
||
|
* primitive part
|
||
|
* convert to and from FLINT and NTL integers and polynomials
|
||
|
* get a coefficient of a polynomial efficiently as a read only mpz_t
|
||
|
* print polynomials in a prettified format with a specified variable
|
||
|
* Sped up integer multiplication
|
||
|
* Convert to and from zmod_polys from fmpz_polys
|
||
|
* Chinese remainder for fmpz_polys
|
||
|
* Leading coeff macro
|
||
|
* Euclidean norm of polynomials
|
||
|
* Exact division testing of polynomials
|
||
|
* Polynomial GCD (subresultant, heuristic, modular)
|
||
|
* Modular inversion of polynomials
|
||
|
* Resultant
|
||
|
* XGCD (Pohst-Zassenhaus)
|
||
|
* Multimodular polynomial multiplication
|
||
|
* Rewritten karatsuba_trunc function
|
||
|
* Rewritten division functions
|
||
|
* Polynomial derivative
|
||
|
* Polynomial evaluation
|
||
|
* Polynomial composition
|
||
|
* Addition and subtraction of zmod_polys
|
||
|
* Sped up multiplication of zmod_polys
|
||
|
* Extended multiplication of zmod_polys to allow up to 63 bit moduli
|
||
|
* zmod_poly subpolynomials
|
||
|
* zmod_poly reverse
|
||
|
* Truncated multiplication for zmod_polys (left, right, classical and KS)
|
||
|
* Scalar multiplication
|
||
|
* Division for zmod_polys (divrem and div, classical, divide and conquer and newton)
|
||
|
* Series inversion for zmod_polys
|
||
|
* Series division for zmod_polys
|
||
|
* Resultant for zmod_polys
|
||
|
* GCD for zmod_polys including half-gcd
|
||
|
* Inversion modulo a polynomial for zmod_polys
|
||
|
* XGCD for zmod_polys
|
||
|
* Squarefree factorisation for zmod_polys
|
||
|
* Berlekamp factorisation for zmod_polys
|
||
|
* Irreducibility testing for zmod_polys
|
||
|
* Derivative for zmod_polys
|
||
|
* Middle product for zmod_polys (sped up newton division)
|
||
|
* addmod, submod and divmod for ulongs
|
||
|
* Sped up limb sized integer square root
|
||
|
* Partial factoring of ulongs
|
||
|
* z_randbits
|
||
|
* Pocklington-Lehmer primality testing
|
||
|
* BSPW pseudo-primality testing
|
||
|
* Fermat pseudo-primality testing
|
||
|
* Fast Legendre symbol computation
|
||
|
* Chinese remainder for fmpzs
|
||
|
* Square root with remainder for fmpzs
|
||
|
* Left and right shift for fmpzs
|
||
|
* Reduction modulo a ulong for fmpzs
|
||
|
* Montgomery redc, mulmod, divmod and mod for fmpzs
|
||
|
* Multimodular reduction and CRT for fmpzs
|
||
|
* fmpz_mulmod and fmpz_divmod
|
||
|
* fmpz_invert for inversion modulo an fmpz
|
||
|
* Dramatically sped up gcd for small fmpzs
|
||
|
* Computation of 1D, 2D and some 3D theta functions
|
||
|
* Example program for multiplying theta functions
|
||
|
* Test code now times test functions
|
||
|
* Quick and dirty timing function for profiler
|
||
|
* Tiny quadratic sieve for small one and two limb integers
|
||
|
* Completely rewritten self initialising multiple polynomial quadratic sieve
|
||
|
* Build fix for 64 bit OSX dylibs (reported by Michael Abshoff)
|
||
|
|
||
|
v 1.1.1 -- 11-Feb-09
|
||
|
|
||
|
* Fixed bugs in _fmpz_poly_scalar_mul_fmpz, fmpz_poly_gcd_heuristic and fmpz_poly_gcd_subresultant and fixed bugs in test__fmpz_poly_scalar_div_fmpz, test_fmpz_poly_scalar_div_fmpz and test_fmpz_poly_scalar_div_mpz.
|
||
|
|
||
|
v 1.1.2 -- 1-Mar-09
|
||
|
|
||
|
* Fixed some memory allocation slowdowns and bugs in fmpz_poly division and pseudo division functions (reported by William Stein).
|
||
|
|
||
|
v 1.1.3 -- 1-Mar-09
|
||
|
|
||
|
* Inserted some missing return values in zmod_poly test code.
|
||
|
|
||
|
v 1.2.0 -- 10-Mar-09
|
||
|
|
||
|
* made memory manager, fmpz and fmpz_poly threadsafe
|
||
|
* Code for running tests in parallel (not activated)
|
||
|
* Sped up fmpz_poly_scalar_div_ui/si when scalar is 1/-1
|
||
|
* Parallelise _fmpz_poly_mul_modular
|
||
|
* fmpz_mul_modular_packed to pack coefficients to the byte before running _fmpz_poly_mul_modular
|
||
|
* fmpz_poly_pseudo_rem_cohen (not documented)
|
||
|
* special case for leading coeff 1/-1 in fmpz_poly_pseudo_divrem_basecase
|
||
|
* removed a memory allocation bug which caused a massive slowdown in fmpz_poly_pseudo_divrem_basecase
|
||
|
* fmpz_poly_pseudo_rem_basecase (not documented)
|
||
|
* fmpz_poly_pseudo_rem (not asymptotically fast)
|
||
|
* fmpz_poly_signature (not asymptotically fast)
|
||
|
* basic fmpz_poly_is_squarefree function
|
||
|
* included zn_poly in trunk and made FLINT build zn_poly as part of its build process
|
||
|
* switched to using zn_poly for polynomial multiplication, newton inversion, scalar multiplication in zmod_poly
|
||
|
* Integer cube root of word sized integers
|
||
|
* Fibonacci pseudoprime test
|
||
|
* BSPW probable prime test
|
||
|
* n - 1 primality test
|
||
|
* Complete implementation of z_issquarefree
|
||
|
* Significantly improved the thetaproduct example program.
|
||
|
* Fixed bug in fmpz_poly_byte_pack which is triggered when trying to pack into fields a multiple of 8 bytes (could cause a segfault)
|
||
|
* Fixed a bug in fmpz_poly_pseudo_divrem (relied on an uninitialised poly to have length 0)
|
||
|
* Fixed bug in fmpz_multi_CRT_ui (could segfault)
|
||
|
* Fixed bug in fmpz_multi_mod_ui (could segfault)
|
||
|
* Fixed memory leak in zmod_poly_factor_squarefree
|
||
|
* Fixed memory leak in zmod_poly_from_string
|
||
|
|
||
|
v 1.2.1 -- 14-Mar-09
|
||
|
|
||
|
* Removed some FLINT 2.0 code which was interfering with the build of the NTL-interface
|
||
|
* Removed an omp.h from fmpz_poly.c.
|
||
|
|
||
|
v 1.2.2 -- 20-Mar-09
|
||
|
|
||
|
* Fixed a memory leak in zmod_poly_factor
|
||
|
* Fixed zmod_poly-profile build
|
||
|
|
||
|
v 1.2.3 -- 31-Mar-09
|
||
|
|
||
|
* Fixed bugs in all fmpz_poly evaluation functions, identified by Burcin Erocal.
|
||
|
|
||
|
v 1.2.4 -- 4-Apr-09
|
||
|
|
||
|
* Defined THREAD to be blank on Apple CC and __thread for thread local storage on other gcc's (where it's defined)
|
||
|
* #undef ulong in profiler.h where time.h and other system time headers are included (both reported by M. Abshoff)
|
||
|
|
||
|
v 1.2.5 -- 18-Apr-09
|
||
|
|
||
|
* Upgraded to zn_poly-0.9 to avoid a serious error in squaring of large polynomials over Z/nZ
|
||
|
|
||
|
v 1.3.0 -- 09-Jun-09
|
||
|
|
||
|
* Added new code for checking 2nd, 3rd and 5th roots
|
||
|
* Fixed a bug in z_factor
|
||
|
* Connected quadratic sieve for factoring large ulongs
|
||
|
* Added one line factor algorithm
|
||
|
* constructed best of breed factor algorithm
|
||
|
* Fixed termination conditions for z_intcuberoot and z_intfifthroot which were broken
|
||
|
* Added some code for special cases which cause infinite loops in cuberoot and fifthroot
|
||
|
* Went back to ceil(pow(n, 0.33333333)) and ceil(pow(n, 0.2)) for initial guesses in cube and fifth root functions as these were about 50% faster than sqrt(n) and sqrt(sqrt(n)) respectively.
|
||
|
* Added test code for z_intfifthroot
|
||
|
* Added test code for z_factor_235power
|
||
|
* Fixed some uninitialised data found by valgrind in intcuberoot and intfifthroot
|
||
|
* Fixed multiply defined PRIME_COUNT in long_extras-test
|
||
|
* Got rid of gotos in some functions in long_extras
|
||
|
* Knocked optimisation level back to -O2 because it miscompiles on sage.math
|
||
|
* Changed tables to use uint64_t's instead of ulongs which are not 64 bits on a 32 bit machine
|
||
|
* Only checked MAX_HOLF on 64 bit machine
|
||
|
* Changed MAX_SQUFOF to WORD(-1)
|
||
|
* Check constant 0x3FFFFFFFFUL only on a 64 bit machine
|
||
|
* Fixed a bug in z_oddprime_lt_4096 on 32 bit machines
|
||
|
* Fixed some TLS issues with Cygwin
|
||
|
* Fixed some typos in makefile
|
||
|
* Fixed a wrong path in fmpz.c
|
||
|
|
||
|
v 1.4.0 -- 06-Jul-09
|
||
|
|
||
|
* Sped up zmod_poly division in case where operands are the same length
|
||
|
* Sped up zmod_poly division in case where operands have lengths differing by 1
|
||
|
* Fixed a bug in zmod_poly_gcd for polynomials of zero length
|
||
|
* Sped up zmod_poly_gcd considerably (both euclidean and half gcd)
|
||
|
* Sped up zmod_poly_gcd_invert and zmod_poly_xgcd considerably
|
||
|
* Made zmod_poly_gcd_invert and zmod_poly_xgcd asymptotically fast
|
||
|
* Made zmod_poly_resultant asymptotically fast
|
||
|
* Added optimised zmod_poly_rem function
|
||
|
* Fixed a divide by zero bug in zmod_poly_factor_berlekamp
|
||
|
* Added test code for z_factor_tinyQS and z_factor_HOLF
|
||
|
* Fixed many bugs in the z_factor code, tinyQS and mpQS
|
||
|
* Corrected numerous typos in the documentation and added missing descriptions
|
||
|
* Added F_mpz_cmp function
|
||
|
* Added documentation to the manual for the new F_mpz module
|
||
|
|
||
|
v 1.5.0 -- 22-Sep-09
|
||
|
|
||
|
* Added multimodular reduction and CRT to F_mpz module
|
||
|
* Fixed some bugs in F_mpz module and numerous bugs in test code
|
||
|
* Added zmod_poly_compose
|
||
|
* Added zmod_poly_evaluate
|
||
|
* Added functions for reduced evaluation and composition to fmpz_poly module (contributed by Burcin Erocal)
|
||
|
* Fixed bugs in the primality tests in long_extras
|
||
|
* Removed all polynomial multimodular multiplication functions
|
||
|
* Added new thetaproduct code used in the 1 trillion triangles computation
|
||
|
* Fixed a severe bug in the fmpz_poly_pseudo_div function reported by Sebastian Pancratz
|
||
|
* Added fmpz_comb_temp_init/clear functions
|
||
|
* Fixed a normalisation buglet in fmpz_poly_pack_bytes
|
||
|
* Added F_mpz_pow_ui function (contributed by Andy Novocin)
|
||
|
* Fixed a severe bug in the FFT reported by William Stein and Mariah Lennox (fix contributed by David Harvey)
|
||
|
* Removed some memory leaks from F_mpz test code
|
||
|
* Fixed bug in zmod_poly_evaluate test code
|
||
|
|
||
|
v 1.6.0 -- 24-Dec-10
|
||
|
|
||
|
Bugs:
|
||
|
====
|
||
|
|
||
|
* Fixed a memory leak in mpz_poly_to_string_pretty
|
||
|
* Fixed a bug inherited from an old version of fpLLL
|
||
|
* Makefile to respect CC and CXX
|
||
|
* Fixed bug in F_mpz_set_si
|
||
|
* Fixed bug in F_mpz_equal
|
||
|
* Most for loops to C90 standard (for easier MSVC porting)
|
||
|
* Better Cygwin support
|
||
|
* Fixed a bug in zmod_poly_resultant
|
||
|
* Fixed bug in F_mpz_mul_KS/2
|
||
|
* Fixed bug in tinyQS
|
||
|
* Worked around some known bugs in older GMP/MPIR's
|
||
|
|
||
|
Major new functionality
|
||
|
=======================
|
||
|
* F_mpz_poly_factor_zassenhaus
|
||
|
* F_mpz_poly_factor (incl. fmpz_poly_factor wrapper) using new vH-N approach
|
||
|
(see the paper of van Hoeij and Novocin and the paper of van Hoeij, Novocin
|
||
|
and Hart)
|
||
|
* Implementation of new CLD bounds function for polynomial factors
|
||
|
(see the paper of van Hoeij, Novocin and Hart
|
||
|
* Restartable Hensel lifting
|
||
|
* Heuristic LLL implementations using doubles and mpfr
|
||
|
* LLL implementations optimised for knapsack lattices
|
||
|
* New (probably subquadratic) LLL implementation (ULLL)
|
||
|
* zmod_poly_factor_cantor_zassenhaus
|
||
|
* New F_mpz_mod_poly module for polynomials over Z/pZ for multiprec. p
|
||
|
|
||
|
Some of the other new functions added
|
||
|
=====================================
|
||
|
|
||
|
F_mpz:
|
||
|
|
||
|
* F_mpz_gcd
|
||
|
* F_mpz_smod
|
||
|
* F_mpz_mod_preinv
|
||
|
* F_mpz_fdiv_qr
|
||
|
* F_mpz_get/set_mpfr/2exp
|
||
|
* F_mpz_sscanf
|
||
|
* F_mpz_set_d
|
||
|
|
||
|
F_mpz_poly:
|
||
|
|
||
|
* read F_mpz_poly to_string/from_string/fprint/print/fread/pretty
|
||
|
* F_mpz_poly_to/from_zmod_poly
|
||
|
* F_mpz_poly_scalar_div_exact
|
||
|
* F_mpz_poly_smod
|
||
|
* F_mpz_poly_derivative, F_mpz_poly_content, F_mpz_poly_eval_horner_d/2exp
|
||
|
* F_mpz_poly_scalar_abs
|
||
|
* F_mpz_poly_set_d_2exp
|
||
|
* F_mpz_poly_div/divrem
|
||
|
* F_mpz_poly_gcd
|
||
|
* F_mpz_poly_is_squarefree
|
||
|
* F_mpz_poly_factor_squarefree
|
||
|
* F_mpz_poly_mul_trunc_left
|
||
|
* F_mpz_poly_pseudo_div
|
||
|
* F_mpz_poly_set_coeff
|
||
|
* F_mpz_poly_pow_ui
|
||
|
* Inflation/deflation trick for factorisation
|
||
|
|
||
|
zmod_poly:
|
||
|
|
||
|
* Inflation/deflation trick for factorisation
|
||
|
|
||
|
mpz_mat:
|
||
|
|
||
|
* mpz_mat_from_string/to_string/fprint/fread/pretty
|
||
|
|
||
|
mpq_mat:
|
||
|
|
||
|
* mpq_mat_init/clear
|
||
|
* Gramm-schmidt Orthogonalisation
|
||
|
|
||
|
F_mpz_mat:
|
||
|
|
||
|
* F_mpz_mat_print/fprint/fread/pretty
|
||
|
* F_mpz_mat_mul_classical
|
||
|
* F_mpz_mat_max_bits/2
|
||
|
* F_mpz_mat_scalar_mul/div_2exp
|
||
|
* F_mpz_mat_col_equal
|
||
|
* F_mpz_mat_smod
|
||
|
* F_mpz_vec_scalar_product/norm
|
||
|
* F_mpz_vec_add/submul_ui/si/F_mpz/2exp
|
||
|
|
||
|
zmod_mat:
|
||
|
|
||
|
* classical multiplication
|
||
|
* strassen multiplication
|
||
|
* scalar multiplication
|
||
|
* zmod_mat_equal
|
||
|
* zmod_mat_add/sub
|
||
|
* zmod_mat_addmul_classical
|
||
|
|
||
|
d_mat:
|
||
|
|
||
|
* d_vec_norm, d_vec_scalar_product
|
||
|
|
||
|
mpfr_mat:
|
||
|
|
||
|
* mpfr_vec_scalar_product/norm
|
||
|
|
||
|
v 2.0 -- 16 Jan 2011
|
||
|
N.B: FLINT 2 is a complete rewrite of flint from scratch
|
||
|
It includes the following modules:
|
||
|
|
||
|
ulong_extras: (word sized integers and modular arithmetic)
|
||
|
* random numbers (randint, randbits, randprime, randint)
|
||
|
* powering
|
||
|
* reverse binary
|
||
|
* mod, divrem, mulmod all with precomputed inverses
|
||
|
* gcd, invgcd, xgcd
|
||
|
* jacobi symbols
|
||
|
* addmod, submod, invmod, powmod
|
||
|
* prime sieve, nextprime, prime-pi, nth-prime
|
||
|
* primality testing (small, binary search, Pocklington-Lehmer, Pseudosquare)
|
||
|
* probably prime tests (strong base-a, Fermat, Fibonacci, BPSW, Lucas)
|
||
|
* sqrt, sqrtrem, is-square, perfect-power (2,3,5)
|
||
|
* remove, is-squarefree
|
||
|
* factorisation (trial-range, trial, power (2,3,5), one-line, SQUFOF)
|
||
|
* Moebius mu, Euler phi
|
||
|
|
||
|
fmpz: (memory managed multiple precision integers)
|
||
|
* memory management (init, clear)
|
||
|
* random numbers (randbits, randm)
|
||
|
* conversion to and from long, ulong, doubles, mpz's, strings
|
||
|
* read/write to file, stdin, stdout
|
||
|
* sizeinbase, bits, size, sgn, swap, set, zero
|
||
|
* cmp, cmp-ui, cmpabs, equal, is-zero, is-one
|
||
|
* neg, abs, add, add-ui, sub, sub-ui, mul, mul-si, mul-ui, mul-2exp
|
||
|
* addmul, addmul-ui, submul, submul-ui
|
||
|
* cdiv-q, cdiv-q-si, cdiv-q-ui
|
||
|
* fdiv-q, fdiv-q-si, fdiv-q-ui, fdiv-qr, fdiv-q-2exp
|
||
|
* tdiv-q, tdiv-q-si
|
||
|
* divexact, divexact-si, divexact-ui
|
||
|
* mod, mod-ui
|
||
|
* powering
|
||
|
* sqrt, sqrt-rem
|
||
|
* factorial
|
||
|
* gcd, invmod
|
||
|
* bit-pack, bit-unpack
|
||
|
* multimodular reduction, CRT
|
||
|
|
||
|
fmpz_vec: (vectors over fmpz's)
|
||
|
* memory management (init, clear)
|
||
|
* random vectors
|
||
|
* max-bits, max-limbs
|
||
|
* read/write to file/stdin/stdout
|
||
|
* set, swap, zero, neg
|
||
|
* equal, is-zero
|
||
|
* sort
|
||
|
* add, sub
|
||
|
* scalar multiplication by fmpz, ulong, long, 2exp
|
||
|
* exact division by fmpz, long, ulong
|
||
|
* fdiv-q by fmpz, long, ulong, 2exp
|
||
|
* tdiv-q by fmpq, long, ulong
|
||
|
* addmul by fmpz, long, long by 2exp
|
||
|
* submul by fmpz, long, long by 2exp
|
||
|
* Gaussian content
|
||
|
|
||
|
fmpz_poly: (polys over fmpz's)
|
||
|
* memory management (init, realloc, fit-length, clear)
|
||
|
* random polys
|
||
|
* normalise, set-length, truncate
|
||
|
* length, degree, max-limbs, max-bits
|
||
|
* set, set-si, set-ui, set-fmpz, set-str
|
||
|
* get-str, get-str-pretty
|
||
|
* zero, one, zero-coeffs
|
||
|
* swap, reverse
|
||
|
* get/set coeffs from fmpz, long, ulong
|
||
|
* get-coeff-ptr, lead
|
||
|
* equal, is-zero
|
||
|
* add, sub
|
||
|
* scalar multiplication by fmpz, long, ulong
|
||
|
* scalar addmul/submul by fmpz
|
||
|
* scalar fdiv by fmpz, long, ulong
|
||
|
* scalar tdiv by fmpz, long, ulong
|
||
|
* scalar divexact by fmpz, long, ulong
|
||
|
* bit pack, bit unpack
|
||
|
* multiplication (classical, karatsuba, KS)
|
||
|
* mullow (classical, karatsuba, KS)
|
||
|
* mulhigh (classical, karatsuba)
|
||
|
* middle product (classical)
|
||
|
* powering (small, binary exponent, binomial, multinomial, addition chains)
|
||
|
* truncated powering (binary exponent)
|
||
|
* shift left/right
|
||
|
* euclidean norm
|
||
|
* gcd (subresultant)
|
||
|
* resultant
|
||
|
* content, primitive part
|
||
|
* divrem (basecase, divide-and-conquer)
|
||
|
* div (basecase, divide-and-conquer)
|
||
|
* rem (basecase)
|
||
|
* invert series (basecase, Newton)
|
||
|
* div series
|
||
|
* pseudo divrem (basecase, divide-and-conquer, Cohen)
|
||
|
* rem (Cohen)
|
||
|
* div
|
||
|
* evaluate (Horner) at fmpz, mpq, a mod n
|
||
|
* composition (Horner, divide-and-conquer)
|
||
|
* signature
|
||
|
* read/write to file/stdin/stdout
|
||
|
|
||
|
fmpq_poly: (polynomials over Q stored as poly over fmpz with fmpz denominator)
|
||
|
* memory management (init, realloc, fit-length, clear)
|
||
|
* random polys
|
||
|
* set-length, canonicalise, normalise, truncate
|
||
|
* is-canonical, length, degree
|
||
|
* reference to numerator, denominator
|
||
|
* set, set-si, set-ui, set-fmpz, set-mpz, set-mpq
|
||
|
* set-array-mpq, set-str
|
||
|
* get-str, get-str-pretty
|
||
|
* zero, neg, swap
|
||
|
* invert
|
||
|
* set coefficient to mpq, long, ulong, fmpz, mpz
|
||
|
* get coefficient as mpq
|
||
|
* equal, cmp, is-one, is-zero
|
||
|
* add, sub
|
||
|
* scalar multiplication by long, ulong, fmpz, mpq
|
||
|
* scalar division by fmpz, long, ulong, mpq
|
||
|
* multiplication, mullow
|
||
|
* powering
|
||
|
* shift left/right
|
||
|
* divrem, div, rem
|
||
|
* invert series (Newton iteration)
|
||
|
* divide series
|
||
|
* derivative
|
||
|
* evaluate at fmpz, mpq
|
||
|
* composition, scale by constant
|
||
|
* content, primitive part
|
||
|
* make-monic, is-monic
|
||
|
* is-squarefree
|
||
|
* read/write to file/stdin/stdout
|
||
|
|
||
|
nmod_vec: (vectors over Z/nZ for n fitting in a machine word)
|
||
|
* memory management (init/clear)
|
||
|
* macros for efficient reduction of 1, 2 and 3 limb integers mod n
|
||
|
* macro for addmul mod n
|
||
|
* add/sub/neg individual coefficients mod n
|
||
|
* random vectors
|
||
|
* set, zero, swap
|
||
|
* reduce, max-bits
|
||
|
* equal
|
||
|
* add, sub, neg
|
||
|
* scalar multiplication by a value reduced mod n
|
||
|
* scalar addmul by a value reduced mod n
|
||
|
|
||
|
nmod_poly: (polynomials over Z/nZ for n fitting in a machine word)
|
||
|
* memory management (init, realloc, fit-length, clear)
|
||
|
* random polys
|
||
|
* normalise, truncate
|
||
|
* length, degree, modulus, max-bits
|
||
|
* set, swap, zero, reverse
|
||
|
* get/set coefficients as ulongs, strings
|
||
|
* read/write to file, stdin, stdout
|
||
|
* equal, is-zero
|
||
|
* shift left/right
|
||
|
* add, sub, neg
|
||
|
* scalar multiplication by a value reduced mod n
|
||
|
* make-monic
|
||
|
* bit pack, bit unpack
|
||
|
* multiplication (classical, KS)
|
||
|
* mullow (classical, KS)
|
||
|
* mulhigh (classical)
|
||
|
* powering (binary exponent)
|
||
|
* pow-trunc (binary exponent)
|
||
|
* divrem (basecase, divide-and-conquer, Newton iteration)
|
||
|
* div (basecase, divide-and-conquer, Newton iteration)
|
||
|
* invert series (basecase, Newton iteration)
|
||
|
* divide series (Newton iteration)
|
||
|
* derivative
|
||
|
* evaluation at a value taken mod n
|
||
|
* composition (Horner, divide-and-conquer)
|
||
|
* gcd (euclidean)
|
||
|
|
||
|
fmpz_mat: (matrices over fmpz's)
|
||
|
* memory management (init, clear)
|
||
|
* random matrices (bits, integer relations, simultaneous diophantine equations
|
||
|
NTRU-like, ajtai, permutation of rows and cols of a diagonal matrix, random
|
||
|
of given rank, random of given determinant, random elementary operations)
|
||
|
* set, init-set, swap, entry pointer
|
||
|
* write to file or stdout
|
||
|
* equal
|
||
|
* transpose
|
||
|
* multiplication (classical, multimodular)
|
||
|
* inverse
|
||
|
* determinant
|
||
|
* row reduce (Gaussian and Gauss-Jordan fraction-free elimination)
|
||
|
* rank
|
||
|
* solve Ax = b, solve AX = B
|
||
|
* fraction free LU decomposition
|
||
|
|
||
|
nmod_mat: (matrices over Z/nZ for n fitting in a machine word)
|
||
|
* memory management (init, clear)
|
||
|
* random matrices (uniform, full, permutations of diagonal matrix, random of
|
||
|
given rank, random elementary operations)
|
||
|
* set, equal
|
||
|
* print to stdout
|
||
|
* add
|
||
|
* transpose
|
||
|
* multiplication (classical, Strassen, A*B^T)
|
||
|
* row reduction (Gaussian and Gauss-Jordan)
|
||
|
* determinant
|
||
|
* rank
|
||
|
* solve (Ax = b, AX = B, solve with precomputed LU)
|
||
|
* invert
|
||
|
|
||
|
arith: (arithmetic functions)
|
||
|
* Bernoulli numbers
|
||
|
* Bernoulli polynomials
|
||
|
* primorials (product of primes up to n)
|
||
|
* harmonic numbers
|
||
|
* Stirling numbers
|
||
|
* Euler phi function
|
||
|
* Moebius mu function
|
||
|
* Sigma (sum of powers of divisors)
|
||
|
* Ramanujan tau function
|
||
|
|
||
|
|
||
|
examples: (example programs)
|
||
|
* compute coefficients of q-series of Delta function
|
||
|
|
||
|
mpfr_vec: (vectors over mpfr reals)
|
||
|
* memory management (init, clear)
|
||
|
* add
|
||
|
* set, zero
|
||
|
* scalar multiplication by mpfr, 2exp
|
||
|
* scalar product
|
||
|
|
||
|
mpfr_mat: (matrices over mpfr reals)
|
||
|
* memory management (init, clear)
|
||
|
|
||
|
v 2.1 -- 9 Mar 2011
|
||
|
|
||
|
fmpz
|
||
|
----
|
||
|
* Simplified interface for fast multimodular reduction and CRT reconstruction
|
||
|
* Fixed segmentation fault in fmpz_multi_mod_ui when the input exceeds the product of the moduli
|
||
|
* Added simple incremental CRT functions (fmpz_CRT_ui, fmpz_CRT_ui_unsigned) to complement the existing fast ones
|
||
|
* Added example programs for CRT
|
||
|
* Added random number generators designed for testing modular code (fmpz_randtest_mod, fmpz_randtest_mod_signed)
|
||
|
* Added fmpz_fdiv_ui for remainder on division by an ulong
|
||
|
* Added fmpz_bin_uiui for computing binomial coefficients
|
||
|
* Added fmpz_mul2_uiui and fmpz_divexact2_uiui for multiplying or dividing an fmpz by a pair of ulongs (efficiently when their product fits in a single limb)
|
||
|
|
||
|
fmpz_mat
|
||
|
--------
|
||
|
* Added utility functions for basic arithmetic and creating unit matrices
|
||
|
* Added multimodular determinant computation (certified or heuristic)
|
||
|
* Added support for computing right nullspaces (fmpz_mat_kernel). Fast only for small matrices.
|
||
|
* Some internal code cleanup and various small fixes
|
||
|
|
||
|
nmod_mat
|
||
|
--------
|
||
|
* Faster Gaussian elimination for small moduli
|
||
|
* Faster determinants
|
||
|
* Faster matrix inversion and nonsingular solving
|
||
|
|
||
|
nmod_poly
|
||
|
---------
|
||
|
* Added nmod_poly_integral for computing integrals
|
||
|
* Added fast square root and inverse square root of power series
|
||
|
* Added fast transcendental functions of power series (log, exp, sin, cos, tan, sinh, cosh, tanh, asin, atan, asinh, atanh)
|
||
|
* Made nmod_poly_inv_series_newton more memory efficient
|
||
|
|
||
|
fmpq_poly
|
||
|
---------
|
||
|
* Added fmpq_poly_integral for computing integrals
|
||
|
* Added fast transcendental functions of power series (log, exp, sin, cos, tan, sinh, cosh, tanh, asin, atan, asinh, atanh)
|
||
|
|
||
|
arith
|
||
|
-----
|
||
|
* Made computation of vectors of Bernoulli numbers faster
|
||
|
* Added fast computation of single Bernoulli numbers
|
||
|
* Added a separate function for computing denominators of Bernoulli numbers
|
||
|
* Added fast computation of Bell numbers (vector and single)
|
||
|
* Added fast computation of Euler numbers (vector and single)
|
||
|
* Added fast computation of Euler polynomials
|
||
|
* Added fast computation of Swinnerton-Dyer polynomials
|
||
|
* Added fast computation of Legendre polynomials
|
||
|
* Added fast vector computation of the partition function
|
||
|
* Added fast vector computation of Landau's function
|
||
|
|
||
|
ulong_extras
|
||
|
------------
|
||
|
* Added a function for computing factorials mod n
|
||
|
|
||
|
build system
|
||
|
------------
|
||
|
* Added support for building static and shared libraries
|
||
|
* All object files and test/profile/example binaries now build in separate build directory
|
||
|
|
||
|
documentation
|
||
|
-------------
|
||
|
* Large number of corrections
|
||
|
|
||
|
v 2.2 -- 4 Jun 2011
|
||
|
|
||
|
fmpq (multiprecision rational numbers)
|
||
|
--------------------------------------
|
||
|
* Basic arithmetic functions
|
||
|
* Utility functions
|
||
|
* Rational reconstruction
|
||
|
* Functions for enumerating the rationals
|
||
|
|
||
|
fmpq_mat (matrices over Q)
|
||
|
--------------------------
|
||
|
* Basic arithmetic functions
|
||
|
* Utility functions
|
||
|
* Fast multiplication
|
||
|
* Classical and fraction-free reduced row echelon form
|
||
|
* Determinants
|
||
|
* Fast non-singular solving
|
||
|
|
||
|
fmpz_poly_mat (matrices over Z[x]
|
||
|
---------------------------------
|
||
|
* Basic arithmetic functions
|
||
|
* Utility functions
|
||
|
* Fraction-free row reduction and determinants
|
||
|
* Fast determinants (experimental)
|
||
|
|
||
|
fmpz_mat
|
||
|
--------
|
||
|
* Added more utility functions (scalar multiplication, etc)
|
||
|
* Added Dixon's p-adic algorithm (used by fast nonsingular rational system
|
||
|
solving)
|
||
|
* Added reduced row echelon form
|
||
|
* Added conversions between fmpz_mat and nmod_mat
|
||
|
* Added CRT functions for fmpz_mats
|
||
|
* Faster matrix multiplication for small to medium dimensions
|
||
|
|
||
|
longlong.h
|
||
|
----------
|
||
|
* Added x86 assembly macros for accumulating sums of two limb operands
|
||
|
|
||
|
nmod_mat
|
||
|
--------
|
||
|
* Sped up arithmetic for moduli close to FLINT_BITS
|
||
|
|
||
|
arith
|
||
|
-----
|
||
|
* Changed interface of various functions to use new fmpq type
|
||
|
|
||
|
fmpz
|
||
|
----
|
||
|
* Added fmpz_set_ui_mod
|
||
|
* Inlined fmpz_neg, fmpz_set_si, fmpz_set_ui for better performance
|
||
|
* Added fmpz_lcm
|
||
|
* Small performance improvement to fmpz_CRT_ui
|
||
|
|
||
|
fmpz_vec
|
||
|
--------
|
||
|
* Added _fmpz_vec_lcm
|
||
|
|
||
|
fmpz_poly_q (rational functions over Q, modeled as quotients of fmpz_polys)
|
||
|
---------------------------------------------------------------------------
|
||
|
* Basic arithmetic functions
|
||
|
* Conversion and IO functions
|
||
|
* Evaluation
|
||
|
|
||
|
padic (p-adic numbers -- experimental)
|
||
|
-------------------------------------
|
||
|
* Basic arithmetic
|
||
|
* Data conversion and IO
|
||
|
* Inverse and square root using Newton iteration
|
||
|
* Teichmuller lifts (not optimised)
|
||
|
* p-adic exponential function (not optimised)
|
||
|
|
||
|
fmpz_poly
|
||
|
---------
|
||
|
* Added fmpz_poly_gcd_modular (and fmpz_poly_gcd wrapper)
|
||
|
* Added fmpz_poly_xgcd_modular (and fmpz_poly_xgcd wrapper)
|
||
|
* Added conversions between fmpz_poly and nmod_poly
|
||
|
* Added CRT functions
|
||
|
* Added multipoint evaluation and interpolation
|
||
|
|
||
|
nmod_poly
|
||
|
---------
|
||
|
* Added nmod_poly_xgcd_euclidean (and nmod_poly_xgcd wrapper)
|
||
|
* nmod_poly_gcd wrapper
|
||
|
|
||
|
mpn_extras
|
||
|
----------
|
||
|
* Added MPN_NORM and MPN_SWAP macros.
|
||
|
* Added mpn_gcd_full to remove some of the restrictions from the usual mpn_gcd
|
||
|
|
||
|
build fixes
|
||
|
------------
|
||
|
* fixed make install to create nonexistent dirs (reported by Serge Torres)
|
||
|
* -L use /usr instead of /usr/local by default (reported by Serge Torres)
|
||
|
* guards for system headers because of flint's use of ulong
|
||
|
|
||
|
v 2.3 -- 1 Jul 2012
|
||
|
|
||
|
general
|
||
|
-------
|
||
|
* many changes to the build system
|
||
|
* added NTL interface
|
||
|
* switched to custom memory allocation functions flint_malloc etc
|
||
|
* in addition to the entries below, fixed a large number of memory leaks,
|
||
|
problems with the test code, and bugs in corner cases of various functions
|
||
|
* added _fmpz_cleanup_mpz_content as an alternative to _fmpz_cleanup
|
||
|
* support MinGW32
|
||
|
* support Cygwin
|
||
|
* bugfix on ia64
|
||
|
* support sparc32/sparc64
|
||
|
* support OSX
|
||
|
* support Solaris, NetBSD, OpenBSD, etc (if bash, GNU Make present)
|
||
|
|
||
|
ulong_extras
|
||
|
------------
|
||
|
* implemented the improved Lehman algorithm
|
||
|
* added n_jacobi_unsigned to allow n > WORD_MAX
|
||
|
* fixed n_sqrtmod for n > WORD_MAX
|
||
|
* fixed bug causing n_sqrtmod to hang
|
||
|
* added sublinear algorithm for computing factorials mod p
|
||
|
* added n_sqrtmod_primepow, n_sqrtmodn and associated functions for
|
||
|
computing square roots modulo composite integers
|
||
|
* fixed bugs in n_is_prime_pocklington
|
||
|
* fixed UWORD_MAX case in powmod and powmod2
|
||
|
* fixed problems with the random number generators
|
||
|
* fixed rare bug in n_mod_precomp
|
||
|
* fixed rare bug in n_is_prime_pseudosquare
|
||
|
|
||
|
long_extras
|
||
|
-----------
|
||
|
* added z_sizeinbase
|
||
|
|
||
|
qsieve
|
||
|
------
|
||
|
* new module implementing a quadratic sieve for numbers up to two limbs
|
||
|
|
||
|
fft
|
||
|
---
|
||
|
* new module providing an efficient Schoenhage-Strassen FFT
|
||
|
|
||
|
longlong
|
||
|
--------
|
||
|
* added assembly code for ia64 and ARM
|
||
|
* fixed bug in fallback version of add_sssaaaaaa
|
||
|
|
||
|
fmpz
|
||
|
----
|
||
|
* added fmpz_fib_ui
|
||
|
* added double precision natural logarithm
|
||
|
* added fmpz_val2 for 2-valuation
|
||
|
* added mul_2exp, div_2exp, cdiv_q_2exp, tdiv_q_2exp, fdiv_r, fdiv_r_2exp,
|
||
|
tdiv_ui, mul_tdiv_q_2exp
|
||
|
* added get_d/set_d
|
||
|
* added fmpz_divisible, divisible_si
|
||
|
* optimised fmpz_powm and fmpz_powm_ui
|
||
|
* added clog, clog_ui, flog, flog_ui for computing logarithms
|
||
|
* added abs_lbound_ui_2exp, ubound_ui_2exp
|
||
|
* added fmpz_rfac_ui and fmpz_rfac_uiui for rising factorials
|
||
|
* added functions to obtain read-only fmpz_t's from mpz_t's
|
||
|
* added fmpz_init_set, init_set_ui
|
||
|
* added fmpz_gcdinv
|
||
|
* added fmpz_is_square
|
||
|
* added fmpz_tstbit, setbit, clrbit, complement, combit, and, or, xor, popcnt
|
||
|
* added a sign flag for CRT instead of using separate methods
|
||
|
* fixed bugs in fmpz_sqrtmod
|
||
|
* fixed a bug in fmpz_bit_unpack that could cause corruption of the global
|
||
|
fmpz array when compiled in single mode
|
||
|
* fixed a bug in fmpz_sub_ui that could cause memory corruption
|
||
|
|
||
|
fmpz_vec
|
||
|
--------
|
||
|
* added functions for obtaining the largest absolute value coefficient
|
||
|
* added functions for computing the sum and product of an integer vector
|
||
|
* made max_bits much faster
|
||
|
* added _fmpz_vec_mod_fmpz
|
||
|
* made randtest produce sparse output
|
||
|
|
||
|
fmpz_poly
|
||
|
---------
|
||
|
* added fmpz_poly_sqr, fmpz_poly_sqrlow for squaring a polynomial
|
||
|
* added fmpz_poly_lcm
|
||
|
* made multipoint interpolation faster by using the Newton basis
|
||
|
* added a function for fast division by a linear polynomial
|
||
|
* added power series composition (classical and Brent-Kung)
|
||
|
* added power series reversion (classical, Newton, fast Lagrange)
|
||
|
* added a function for obtaining the largest absolute value coefficient
|
||
|
* fixed quadratic memory usage and stack overflow when performing
|
||
|
unbalanced division or pseudo division using the divconquer algorithm
|
||
|
* fixed a bug in poly_zero_coeffs
|
||
|
* fixed a bug in xgcd_modular
|
||
|
* allowing +/-1 in the constant term of power series inversion
|
||
|
* fixed aliasing bug in divrem
|
||
|
* added restartable Hensel lifting and associated utility functions
|
||
|
* fixed rem, which used to only call the basecase algorithm
|
||
|
* fixed pseudo_divrem, which used to only call the basecase algorithm
|
||
|
* implemented Schoenhage-Strassen multiplication (mul_SS, mullow_SS)
|
||
|
and enabled this by default
|
||
|
* fixed a bug in the heuristic GCD algorithm
|
||
|
* added functions for Newton basis conversion
|
||
|
* added functions for fast Taylor shift
|
||
|
* added fmpz_poly_sqrt implementing a basecase algorithm
|
||
|
* added scalar mul_2exp, fdiv_2exp, tdiv_2exp
|
||
|
* made randtest produce sparse output
|
||
|
* added fmpz_poly_equal_fmpz
|
||
|
* improved performance by always using basecase multiplicatio
|
||
|
when one polynomial is short
|
||
|
* improved algorithm selection for fmpz_poly_gcd
|
||
|
* fixed several bugs in gcd_modular
|
||
|
* improved performance of gcd_modular
|
||
|
|
||
|
fmpz_poly_factor
|
||
|
----------------
|
||
|
* new module for factorisation of fmpz_polys
|
||
|
* added a naive implementation of the Zassenhaus algorithm
|
||
|
|
||
|
fmpz_mod_poly
|
||
|
-------------
|
||
|
* new module for polynomials modulo over Z/nZ for arbitrary-precision n
|
||
|
* multiplication, powering
|
||
|
* classical and divconquer division
|
||
|
* series inversion
|
||
|
* Euclidean GCD and XGCD
|
||
|
* invmod
|
||
|
* radix conversion
|
||
|
* divconquer composition
|
||
|
* GCD and division functions that test invertibility of the
|
||
|
leading coefficient
|
||
|
|
||
|
fmpz_mat
|
||
|
--------
|
||
|
* added det_divisor for computing a random divisor of the determinant
|
||
|
* faster determinant computation using divisor trick
|
||
|
* faster determinant computation by using multimodular updates
|
||
|
* fixed n x 0 x m product not zeroing the result
|
||
|
* various interface improvements
|
||
|
* faster implementation of Cramer's rule for multiple right hand sides
|
||
|
* added fmpz_mat_fread and read
|
||
|
* added multi CRT/mod functions
|
||
|
* added trace
|
||
|
|
||
|
fmpz_poly_mat
|
||
|
-------------
|
||
|
* fixed n x 0 x m product not zeroing the result
|
||
|
* added inverse
|
||
|
* added rank computation
|
||
|
* added reduced row echelon form and nullspace computation
|
||
|
* added more utility functions
|
||
|
* added squaring and exponentiation
|
||
|
* added balanced product of a sequence of matrices
|
||
|
* added truncate, mullow, sqrlow, pow_trunc
|
||
|
* added trace
|
||
|
|
||
|
fmpz_factor
|
||
|
-----------
|
||
|
* new module providing interface for integer factorisation
|
||
|
* fast expansion of a factored integer
|
||
|
|
||
|
fmpq
|
||
|
----
|
||
|
* cleaned up and improved performance of rational reconstruction code
|
||
|
* allow separate numerator and denominator bounds for rational
|
||
|
reconstruction
|
||
|
* added continued fraction expansion
|
||
|
* added functions for summation using binary splitting
|
||
|
* added fmpq_swap
|
||
|
* added fmpq_print, fmpq_get_str
|
||
|
* added fmpq_pow_si
|
||
|
* added functions to obtain read-only fmpq_t's from mpq_t's
|
||
|
* added fmpq_cmp
|
||
|
|
||
|
fmpq_mat
|
||
|
--------
|
||
|
* fixed n x 0 x m product not zeroing the result
|
||
|
* added fmpq_mat_transpose
|
||
|
* added trace
|
||
|
|
||
|
fmpq_poly
|
||
|
---------
|
||
|
* improved speed of multipoint interpolation using _fmpz_poly_div_root
|
||
|
* fmpq_poly: added power series composition (classical and Brent-Kung)
|
||
|
* fmpq_poly: added power series reversion (classical, Newton, fast Lagrange)
|
||
|
* fixed bug wherein set_array_mpq modified the input
|
||
|
* added gcd, xgcd, lcm, resultant
|
||
|
* added fmpq_poly_set_fmpq
|
||
|
* added fmpq_poly_get_slice, fmpq_poly_reverse
|
||
|
* fixed aliasing bug in divrem
|
||
|
* changed some functions to use FLINT scalar types instead of MPIR data types
|
||
|
* added fmpq_poly_get_numerator
|
||
|
|
||
|
nmod_poly
|
||
|
---------
|
||
|
* implemented the half gcd algorithm for subquadratic gcd and xgcd
|
||
|
* added multipoint evaluation and interpolation
|
||
|
* added asymptotically fast multipoint evaluation and interpolation
|
||
|
* added a function for forming the product of linear factors
|
||
|
* added a function for fast division by a linear polynomial
|
||
|
* added power series composition (classical and Brent-Kung)
|
||
|
* added power series reversion (classical, Newton, fast Lagrange)
|
||
|
* added nmod_poly_mulmod, powmod and related functions
|
||
|
(ported from flint1)
|
||
|
* added squarefree, irreducibility tests (ported from flint1)
|
||
|
* added Berlekamp and Cantor-Zassenhaus factoring (ported from flint1)
|
||
|
* fixed quadratic memory usage and stack overflow when performing
|
||
|
unbalanced division using the divconquer algorithm
|
||
|
* added compose_series_divconquer
|
||
|
* added resultant
|
||
|
* fixed aliasing bug in divrem
|
||
|
* added rem functions
|
||
|
* added divrem_q0, q1 for special cases of division
|
||
|
* added functions for fast Taylor shift
|
||
|
* added nmod_poly_sqrt
|
||
|
* made fread read the modulus from the file
|
||
|
* made randtest produce sparse output
|
||
|
* fixed bug in xgcd_euclidean with scalar inputs
|
||
|
|
||
|
nmod_vec
|
||
|
--------
|
||
|
* added functions and macros for computing dot products
|
||
|
* made randtest produce sparse output
|
||
|
|
||
|
nmod_mat
|
||
|
--------
|
||
|
* added addmul/submul functions
|
||
|
* asymptotically fast solving of triangular systems
|
||
|
* asymptotically fast LUP decomposition
|
||
|
* asymptotically fast determinant and rank computation
|
||
|
* asymptotically fast reduced row echelon form and nullspace
|
||
|
* asymptotically fast nonsingular solving
|
||
|
* asymptotically fast inverse
|
||
|
* tidied some interfaces
|
||
|
* fixed n x 0 x m product not zeroing the result
|
||
|
* added trace
|
||
|
* made multiplication faster for tiny moduli by means of bit packing
|
||
|
|
||
|
nmod_poly_mat
|
||
|
-------------
|
||
|
* new module for matrices over Z/nZ[x], with similar
|
||
|
functionality as the fmpz_poly_mat module
|
||
|
* determinant, rank, solving, reduced echelon form, nullspace
|
||
|
* fraction-free Gaussian elimination
|
||
|
* multiplication using bit packing
|
||
|
* multiplication using evaluation-interpolation
|
||
|
* determinant using evaluation-interpolation
|
||
|
|
||
|
padic
|
||
|
-----
|
||
|
* restructured and improved much of the code
|
||
|
* added padic_log
|
||
|
* improved log and exp using rectangular splitting
|
||
|
* added asymptotically fast log and exp based on binary splitting
|
||
|
|
||
|
perm
|
||
|
----
|
||
|
* added the perm module for permutation matrices
|
||
|
* computing the parity of a permutation
|
||
|
* inverting a permutation
|
||
|
|
||
|
arith
|
||
|
-----
|
||
|
* added generation of cyclotomic polynomials
|
||
|
* added functions for evaluating Dedekind sums
|
||
|
* fast computation of the partition function
|
||
|
* added a function for factoring a Hardy-Ramanujan-Rademacher
|
||
|
type exponential sum
|
||
|
* added Chebyshev polynomials T and U
|
||
|
* added computation of the minimal polynomial of cos(2pi/n)
|
||
|
* added asymptotically fast high-precision approximation of zeta(n)
|
||
|
* added asymptotically fast computation of Euler's constant
|
||
|
* added new algorithms and functions for computing Bell numbers
|
||
|
* fast computation of pi (adapting code written by Hanhong Xue)
|
||
|
* added functions for computing the number of sum of squares
|
||
|
representations of an integer
|
||
|
* renamed functions to have an arith_ prefix
|
||
|
|
||
|
v 2.4 -- 20 Nov 2013
|
||
|
|
||
|
* C++ expressions template wrapper
|
||
|
* Fast factorisation of polynomials over Z/nZ
|
||
|
* improved p-adics
|
||
|
* polynomials/matrices over p-adics
|
||
|
* qadics
|
||
|
* Finite fields (small and large F_q), polynomials/matrices over F_q
|
||
|
* Finite fields with Zech logarithm representation
|
||
|
* Fast factorisation of polynomials over F_q
|
||
|
* Faster Brent-Kung modular composition
|
||
|
* New prime sieving code
|
||
|
* Lambert-W function
|
||
|
* Precomputed inverses for polynomials and large integers
|
||
|
* Williams' P+1 integer factoring algorithm
|
||
|
* Harvey's KS2/KS4 polynomial multiplication
|
||
|
* Faster primality testing up to 64 bits
|
||
|
* Support for Cygwin64 and MinGW64
|
||
|
* Support for Clang
|
||
|
* Support for GMP
|
||
|
* Support for Boehm-Demers-Weiser GC
|
||
|
* Support for flint extension modules
|
||
|
|
||
|
v 2.4.1 -- 2 Jan 2014
|
||
|
|
||
|
* Fixed a bug in the NTL interface tests (reported by Francois Bissey)
|
||
|
|
||
|
v 2.4.2 -- 11 Mar 2014
|
||
|
|
||
|
* Fix bug in ARM assembly
|
||
|
|
||
|
v 2.4.3 -- 01 Apr 2014
|
||
|
|
||
|
* Fix a linker issue on Mac OSX.
|
||
|
|