3.2.2
Release Tour
Sage 3.2.2 was released on December 30, 2008 (changelog), 105 tickets (PRs) merged, 41 contributors.
Algebra
- Using Python's (version 2.5) pickling protocols (Burcin Erocal) -- Changed
sage.structure.element.Element
to use Python's pickling protocol via__getstate__()
and__setstate__()
. The previous pickling implementation insage.structure.element.make_element
is retained for backward compatibility. - Method
injvar()
is deprecated (John Palmieri) -- The methodinjvar()
insage/structure/category_object.pyx
is now deprecated. One should instead useinject_variables()
in order to make variable names available for interactive use.
Basic Arithmetic
- Fraction fields (Burcin Erocal) -- Updated the
sage.rings.fraction_field.FractionField_generic
class to the new coercion model, and Cythonize thesage.rings.fraction_field_element.FractionFieldElement
class. Homomorphisms of fraction fields now work, and therandom_element()
method of fraction fields returns sensible results.
Build
- Controlling the number of threads used for parallel testing (Dan Drake) -- Added the
NUM_THREADS
variable to the fileSAGE_ROOT/makefile
to make it easier to control the number of threads used during parallel testing. Previously the number of threads was hard coded intoSAGE_ROOT/makefile
at various places, which made the file rather difficult to maintain.
Calculus
- Derivative of a vector and a matrix (Jason Grout) -- Given a vector or matrix of differentiable expressions, the entries in that vector or matrix can be differentiated. This is handy for working with differential equations when we want to do differentiation and integration of matrices and vectors, with the exact same answer as obtained by using the
apply_map
method. - Cleaned up implementation of piecewise-defined functions (Mike Hansen, Paul Butler) -- Some updating of the class
sage/functions/piecewise.py
. This includes not explicitly using Maxima where not necessary in order to take advantage of pynac in the future. When differentiating piecewise functions where some piece uses multiplication, the expression that is passed to Maxima is properly formatted for Maxima to work with that expression.
Coercion
- A factory and pickling framework (Robert Bradshaw) -- Uniqueness of parents makes Sage operate much more smoothly. This leads to an enormous amount of nearly identical caching code scattered throughout the library. This factory handles all the caching and also provides a good pickling mechanism.
Words
- A library for studying and manipulating words (Arnaud Bergeron, Amy Glen, Sebastien Labbe, Franco Saliola) -- This adds lots of functionality for combinatorics on words. The new features are highlighted in this Sage worksheet:
WordsWorksheet.pdf
Full Changelog: 3.2.1...3.2.2