## Sage 3.2.3 released

It took me some time to write this release tour for Sage 3.2.3, but here goes.

Sage 3.2.3 was released on January 5th, 2009. For the official, comprehensive release note, see sage-3.2.3.txt. The following points are some of the foci of this release:

- Fixed performance regression in eisenstein_submodule.py introduced in Sage 3.2.2.
- Fixed readline build troubles on OpenSUSE 11.1.
- Disabled DSage tests.
- Merged some last minute non-invasive small tickets.

Alexander Hupfer made his first contribution in this release. Here’s a summary of features in this release, categorized under various headings.

**Algebra**

- Powers of polynomial variables (Alex Ghitza) — Report an error message when a determinate of a (multivariate) polynomial is raised to a fractional exponent. Previously, raising a polynomial determinate to a fractional power has the effect of rounding the exponent to an integer. As yet, fractional powers are not supported.
- Extensions of finite fields (Alex Ghitza) — Implements methods random_element() and order() for quotients of polynomial rings. The method order() returns the number of elements of a quotient ring, and random_element() returns a random element of a quotient ring.
- Conjugates for integer, rational and real numbers (Alex Ghitza) — Implements trivial conjugate() methods for elements over the integers, rationals, and reals. Conjugates work (trivially) for matrices over rings that embed canonically into the real numbers.
- Square roots of Galois field elements (John Cremona, William Stein) — Improve the square root of an element of a Galois field GF(2^e), where e > 15. Previously, this works fine except for the square root of 1, where 1 is an element of GF(2^e) for e > 15.

**Build**

- Upgrade ATLAS in Sage to version 3.8.2 (Michael Abshoff) — An update of the ATLAS spkg to the upstream version 3.8.2. This upstream version now provides: (1) better detection of Pentium D and E; (2) detect more Core 2 Duo cores; and (3) properly detect Dunnington cores. Versions 3.8.x for x < 2 sometimes detect a modern CPU architecture as an older architecture, hence causing a massive blow up in the time it takes to compile ATLAS on systems like Xeon core 2 quad, Itanium 2, and Xeon E5420.
- Update optional Sage package polymake (Michael Abshoff) — The updated optional Sage package is polymake-2.2.p5. Earlier versions hard coded spkg versions of cddlib and gmp, and could cause polymake to break in Sage versions 3.0.3 and 3.0.4.

**Coercion**

- Fix performance regression in eisenstein_submodule.py (Robert Bradshaw) — Performance regression in eisenstein_submodule.py was due to cyclotomic coercion. Previously, it would take about 73.3 seconds to run all doctests in eisenstein_submodule.py. Now, the performance is substantially increased such that all dotests in eisenstein_submodule.py should now take about 3.4 seconds.

**Doctest**

- Disable DSage doctests (Michael Abshoff) — Doctesting DSage is disabled for now due to a number of problems in the doctests. This issue is expected to be revisited in the 3.4.x series, the earliest one probably is 3.4.alpha0. It will not be considered in Sage 3.3 since that release is mainly concerned with sphinxifying the Sage documentation.
- Numerical noise in Sage 3.2.2 (Michael Abshoff) — Compiling with GCC 4.3.2, the module sage/rings/number_field/number_field_morphisms.pyx exhibited numerical noise during doctesting.
- matrix1.pyx reference related doctest crash (William Stein).

**Graphics**

- Some fixes to matrix_plot() and the plotting of gamma(x) (Mike Hansen, Robert Bradshaw).
- Fix fallout in refactoring the plotting module (William Stein, Mike Hansen) — Sage 3.2.1 refactored plot.py so that it was splitted up into multiple modules. However, the functions xmin/xmax/ymin/ymax were all removed without deprecating them. These are now added back exactly as before, since they are depended upon by a lot of plotting code.

**Linear Algebra**

- Upgrade ATLAS to version 3.8.2 (Michael Abshoff).

**Miscellaneous**

- Remove ancient files (Michael Abshoff) — The following files are now removed from Sage:
- sage/functions/elementary.py
- sage/schemes/elliptic_curves/heegner.py
- sage/rings/interval.py

**Notebook**

- By default, the twisted package is no longer imported at startup (William Stein).
- Support “application shortcut” in chrome and gears (Alexander Hupfer, Timothy Clemans).

**Packages**

- Upgrade FLINT to version 1.0.21 (Michael Abshoff).
- Upgrade ECM to version 6.2.1 (Michael Abshoff).

A big thank you to all the Sage bug report/patch authors who made my life as a release tour author easier through your comprehensive and concise documentation. Thanks also go to Martin Albrecht for correcting some of my mistakes in an earlier draft of this release note. The latest release tour note can always be found here.