#5731: Update NTL to 5.5.2 release (latest upstream)
---------------------------------------------+------------------------------
Reporter: mabshoff | Owner:
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-4.7.1
Component: packages | Keywords: upgrade
Work_issues: | Upstream: N/A
Reviewer: Francois Bissey, John Cremona | Author: Martin Raum
Merged: | Dependencies:
---------------------------------------------+------------------------------
Changes (by newvalueoldvalue):
* status: needs_work => needs_review
* reviewer: => Francois Bissey, John Cremona
* author: => Martin Raum
Old description:
> 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 description:
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]
--
Comment:
New spkg upload on google-code, link in updated description. Let's get a
final sign off on this.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5731#comment:12>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.