
                    Version history of the ResClasses package
                    =========================================

Initial version: 1.0 (January 2004)

Changes between version 1.0 and version 1.1:

 - The output routines have been improved.

 - An attribute `Density' has been added.

Changes between version 1.1 and version 2.0 (June 3, 2004):

 - A function `AllResidueClassesModulo' has been added.

 - Support for unions of residue classes with fixed representatives has been
   added. These domains behave different than `ordinary' unions of residue
   classes:

   1. They behave like sets of single residue classes with fixed
      representative rather than like sets of ring elements.

   2. The residue classes are not necessarily disjoint, thus the unions can
      be viewed as multisets of ring elements.

Changes between version 2.0 and version 2.0.2:

 - A bug in a `Union2' method for unions of residue classes has been fixed
   (ExcludedElements were not treated correctly). This bug caused wrong
   results in some cases.

Changes between version 2.0.2 and version 2.0.5:

 - The manual has been cleaned up and compacted.

 - An operation `SplittedClass' has been added.

 - Minor improvements in the manual have been made, and a few trivial
   methods covering pathological cases have been added.

Changes between version 2.0.5 and version 2.0.6:

 - The following name changes have been made:
   `DELTA' --> `Delta' and `RHO' --> `Rho'.

 - A bug in `RepresentativeStabilizingRefinement' has been fixed.
   This bug caused wrong results in certain situations. Test code:

   gap> U := ResidueClassUnionWithFixedReps([[-1,3],[1,3],[3,3]]);;
   gap> U = RepresentativeStabilizingRefinement(U,0);
   true

Changes between version 2.0.6 and version 2.1.0 (August 8, 2005):

 - Significant performance improvements in `Union', `Intersection',
   `Difference' and `AsUnionOfFewClasses' for `sparse' unions of
   residue classes have been obtained.

Changes between version 2.1.0 and version 2.1.1:

 - An adaptation to an incompatible change in GAP 4.4.6 w.r.t.
   `InstallValue' for families has been made.

Changes between version 2.1.1 and version 2.1.2:

 - A property `IsResidueClass' has been added.

Changes between version 2.1.2 and version 2.2.0 (February 14, 2006):

 - The output of the `View' and `Display' methods for unions of residue
   classes has been improved.

 - `AsUnionOfFewClasses' has been made another bit more efficient.

Changes between version 2.2.0 and version 2.2.1:

 - For convenience, `ResidueClass' now accepts also a list [r,m] as argument.

 - The output of `Display' for unions of residue classes has been improved
   a bit further.

Changes between version 2.2.1 and version 2.2.2:

 - A couple of minor output formatting improvements have been made.

Changes between version 2.2.2 and version 2.3.0 (May 30, 2006):

The main change is that the manual has been revised.

Further a couple of trivial methods have been added, some of which
are needed by RCWA.

Changes between version 2.3.0 and version 2.3.1:

 - For convenience, an operation `Residue' has been introduced.

Changes between version 2.3.1 and version 2.3.2:

 - A few trivial methods have been added, and some undocumented
   global functions have been made local.

Changes between version 2.3.2 and version 2.3.3:

 - A few minor internal changes have been made.

Changes between version 2.3.3 and version 2.3.4:

 - An operation `RandomPartitionIntoResidueClasses' has been introduced.

Changes between version 2.3.4 and version 2.3.5:

 - A method for `AsUnionOfFewClasses' for unions of residue classes of the
   rings Z_pi and GF(q)[x] has been added.

 - The function `AllResidues' has been turned into an operation, and
   an operation `NumberOfResidues' has been introduced.

 - The documentation has been slightly improved.

Changes between version 2.3.5 and version 2.3.6:

 - A problem w.r.t. residue classes vs. ideals has been fixed.
   This problem has caused a `no method found' message when trying
   to form a principal ideal by multiplying a ring by one of its
   elements.

 - A missing `Difference' method for two times the same ring has been added.

 - For consistency, the representation `IsResidueClassUnionSparseRep' has
   been renamed to `IsResidueClassUnionResidueListRep'. This change will not
   affect the use of this package.

 - A bug in the \< method for residue class unions has been fixed.
   This bug caused an error message when sorting lists of residue class
   unions (in rare cases).

Changes between version 2.3.6 and version 2.3.7:

 - Synonyms `IsResidueClassUnion[OfZ|OfZ_pi|OfZorZ_pi|OfGFqx]' for the five
   categories `IsUnionOfResidueClasses[OfZ|OfZ_pi|OfZorZ_pi|OfGFqx]' have
   been defined.

 - The documentation has been improved in a few places.

Changes between version 2.3.7 and version 2.4.0 (February 9, 2007):

 - The support for residue class unions of polynomial rings GF(q)[x] has
   been improved. For example there are now methods for `SplittedClass'
   and `RandomPartitionIntoResidueClasses' which are applicable to residue
   classes of GF(q)[x] resp. to GF(q)[x] itself. Further the `Viev'ing and
   `Display' format for residue class unions of GF(q)[x] has been
   improved.

 - A "cleanup" of the source files has taken place -- many comments have
   been improved, and the declarations / implementations have been rearranged
   and grouped together in sections by "topic".

 - The two-argument form ResidueClass( <r>, <m> ) is now also available
   for rings other than Z.

 - The documentation now uses consistently the term "residue class union"
   for the objects returned by `ResidueClassUnion' (instead of "union of
   residue classes").

Changes between version 2.4.0 and version 2.4.1:

 - Minor changes.

Changes between version 2.4.1 and version 2.4.2:

 - A bug in the `View' method for residue class unions of polynomial rings
   has been fixed.

Changes between version 2.4.2 and version 2.4.3:

 - A quirk with the style file for the HTML version of the manual has
   been fixed.

Changes between version 2.4.3 and version 2.4.4:

 - Now ResClasses needs GAPDoc 0.99999.

Changes between version 2.4.4 and version 2.5.0:

 - An operation `PartitionsIntoResidueClasses' has been added.
   This operation returns a sorted list of all partitions of a given ring
   into a given number of residue classes.

 - The index of the manual has been improved.

 - Methods for `ExtRepOfObj' and `ObjByExtRep' for residue class unions
   have been added.

 - A property `IsResidueClassWithFixedRepresentative' has been introduced.

 - A couple of auxiliary trivial methods have been added.

 - A bug in `RepresentativeStabilizingRefinement' has been fixed --
   the simplification did not work in case of negative moduli.

 - The bibliography format has been changed from BibTeX to GAPDoc XML.

Changes between version 2.5.0 and version 2.5.1:

 - Some minor adjustments have been made, and ResClasses needs now the
   recently released version 1.0 of GAPDoc.

Changes between version 2.5.1 and version 2.5.2:

 - Functions `SendEmail' and `EmailLogFile' have been added.

Changes between version 2.5.2 and version 2.5.3:

 - The line length used in the examples has been reduced to 75 in order to
   improve their appearance in the online help with standard settings.


