id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,merged,author,reviewer,upstream,work_issues,branch,commit,dependencies,stopgaps
5731,Update NTL to 5.5.2 release (latest upstream),mabshoff,,"From http://www.shoup.net/ntl/doc/tour-changes.html (03.09.2010):
== 2009.08.14: Changes between NTL 5.5.1 and 5.5.2 ==
* New routines {{{MulAddTo}}} and {{{MulSubFrom}}} for computing {{{x += a*b}}} and {{{x -= a*b}}}, where {{{x}}} and {{{a}}} are {{{ZZ}}}'s and {{{b}}} is a {{{ZZ}}} or a {{{long}}}. In the case where {{{b}}} is a {{{long}}}, this may be much faster than writing {{{mul(t, a, b); add(x, x, t)}}}. See [http://www.shoup.net/ntl/doc/ZZ.txt ZZ.txt] for details. These new routines are used in a number of places in NTL to get faster algorithms (for example, the {{{LLL}}} routine).
* Fixed a relatively benign indexing bug in {{{GF2EX}}} discovered by Berend-Benjamin Tams using the {{{valgrind}}} tool.
== 2009.05.05: Changes between NTL 5.5 and 5.5.1 ==
* If using GMP (via either {{{NTL_GMP_LIP}}} or {{{NTL_GMP_HACK}}}), then the new version (4.3.0) of GMP implements the {{{XGCD}}} functionality differently, so that the coefficients do not always agree with those returned by the classical extended Euclidean algorithm. This version of NTL corrects the coefficients, so that the ""classical"" coefficients are always produced, regardless of GMP's implementation. This version of NTL also works around a bug in GMP 4.3.0's {{{XGCD}}} code (although that bug should be fixed in GMP 4.3.1).
* The {{{configure}}} script has been slightly modified: there is a new configuration variable {{{DEF_PREFIX}}}, whose value can be used to set {{{PREFIX}}}, {{{GMP_PREFIX}}}, and {{{GF2X_PREFIX}}} in one stroke. Also, the (somewhat esoteric) {{{configure}}} variables {{{GMP_LIBDIR}}}, {{{GMP_INCDIR}}}, {{{GF2X_LIBDIR}}}, and {{{GF2X_INCDIR}}} have slightly different meanings now.
== 2009.04.08: Changes between NTL 5.4.2 and 5.5 ==
* Added the ability to generate a ''shared'' library (with help from Tim Abbott). [http://www.shoup.net/ntl/doc/tour-unix.html#shared Details.]
* Fixed some standardization issues (with help from Tim Abbott): default location of installed documentation files now conforms to standards; use of {{{EOF}}} now conforms to standards.
* Added a callback mechanism to NTL's error reporting function. See {{{ErrorCallback}}} in [http://www.shoup.net/ntl/doc/tools.txt tools.txt].
* Added support for the {{{gf2x}}} library for speeding up arithmetic in {{{GF2X}}} (with help from Emmanuel Thomé). [http://www.shoup.net/ntl/doc/tour-gf2x.html Details.]
* In conjuction with the above, I also changed the {{{GF2X}}} so that it works better with very large polynomials: large blocks of memory are released, recursive HalfGCD algorithms are used for large polynomials.
* Fixed a bug in {{{void TraceMod(zz_p& x, const zz_pX& a, const zz_pXModulus& F)}}} (reported by Luca De Feo).
* Fixed a performance issue in various versions of {{{SetCoeff}}} (reported by Luca De Feo).
* Fixed the declaration of {{{mat_zz_p transpose(const mat_zz_p& a)}}} (reported by Benoit Lacelle).
----
So we should be able to drop a couple custom patches.
Cheers,
Michael
----
The current version in Sage (4.5.3) is NTL 5.4.2[.p12].
New spkg: [http://spkg-upload.googlecode.com/files/ntl-5.5.2.spkg]
",enhancement,closed,major,sage-4.7.1,packages: standard,fixed,upgrade,cremona,sage-4.7.1.alpha3,Martin Raum,"François Bissey, John Cremona",N/A,,,,,