
                       Version history of the RCWA package
                       ===================================

Initial version: 1.0.0 (April 26, 2005)

Changes between version 1.0.0 and version 1.0.2:

 - Several cosmetic improvements have been made; no new functionality
   has been added.

Changes between version 1.0.2 and version 1.0.3:

 - `View' - methods for certain group rings of rcwa groups and their elements
   have been added (compact form to save space; not documented yet).

Changes between version 1.0.3 and version 1.1.0 (June 16, 2005):

 - The `Display' - method for rcwa mappings over the integers now recognizes
   an option `xdvi'. If this option is set, a LaTeX representation of the
   rcwa mapping is written to a file, LaTeX'ed and shown with xdvi.
   Try e.g. Display(Random(RCWA(Integers)):xdvi);.

 - An example "A group which acts 2-transitively on the positive integers"
   has been added to the manual. In this example, the 2-transitivity of
   a given wild rcwa group is checked computationally.

Changes between version 1.1.0 and version 1.2.0 (August 8, 2005):

 - An example "A group which acts 3-transitively, but not 4-transitively on Z"
   has been added to the manual. In this example, the 3-transitivity and
   non-4-transitivity of the action of a given wild rcwa group on Z is
   checked computationally.

 - The example which has been added in the previous version has been extended
   -- now it is checked that the given group acts even 4-transitively on the
   positive integers.

 - A `RepresentativeAction' method for RCWA(Z) and two unions of residue
   classes has been added.

Changes between version 1.2.0 and version 1.2.1:

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

Changes between version 1.2.1 and version 1.2.2:

 - Some code which was misplaced in RCWA has been moved to the GAP library
   (rudimentary support for floats, `PadicValuation',
   `EpimorphismFromFreeGroup').

 - An example has been added to the manual in which finite quotients of
   Grigorchuk groups are constructed.

Changes between version 1.2.2 and version 1.3.0 (November 22, 2005):

 - Operations `Induction', `RightInverse' and `CommonRightInverse'
   have been added.

 - The code for `Restriction' has been improved.

 - RepresentativeAction(RCWA(Integers),P1,P2) works now also in cases
   where P1 and P2 do not consist entirely of single residue classes,
   but of unions of residue classes.

 - The multiplication of rcwa mappings is now slightly faster due to making
   use of a better bound for the modulus of the product.

 - The archive file now includes a copy of the author's thesis
   "Restklassenweise affine Gruppen" as well as an english translation of it.

Changes between version 1.3.0 and version 1.3.1:

 - A list of a few (harmless!) errata for the author's thesis has been added.

Changes between version 1.3.1 and version 1.3.4:

 - The errata known on 29/12/2005 have been corrected in the copy of the
   thesis distributed with this package.

 - A bunch of typo's in the english translation of the thesis has been
   corrected.

Changes between version 1.3.4 and version 1.3.5:

 - The package documentation has been made autoloaded.

Changes between version 1.3.5 and version 1.3.6:

 - A bug in `FactorizationIntoGenerators' which caused an infinite loop under
   certain circumstances has been fixed.

 - The shortening of the respected partition in the last factoring step in
   `FactorizationIntoGenerators' has been made much faster.

 - A special method for `RepresentativeActionOp' has been added.

 - A new test file tst/Ngens.tst has been added (corresponds to a preprint
   on minimal normal subgroups of RCWA(Z)).

Changes between version 1.3.6 and version 1.4.0 (January 27, 2006):

 - Significant parts of the documentation have been rewritten.

 - A synonym `Support' for `MovedPoints', a generic method
   for `NrMovedPoints' and an operation `Ball' have been added.

Changes between version 1.4.0 and version 1.4.1:

 - The attribute `FactorizationIntoGenerators' has been renamed to
   `FactorizationIntoCSCRCT', and the method for computing such
   factorizations has been installed as a method for `Factorization'.
   The old name remains available as a synonym.

 - The mappings used in a preprint `Symmetrizing the 3n+1 Tree' and a few
   related examples have been added to examples/examples.g.

 - An example `Forward orbits of a monoid with two generators' has been
   added to the manual. In this example, it is checked by means of
   computation that the forward orbit of any positive integer under the
   action of the monoid generated by the two mappings
   T5+/-: n -> (n/2 if n even, (5n+/-1)/2 if n odd) contains 1.

Changes between version 1.4.1 and version 1.4.2:

 - Functions `ConjugatingCTs' and `TreeSortingPerm' have been added to
   the examples file (rcwa/examples/examples.g):
 
   `ConjugatingCTs' is a function which, given two class transpositions
                    ct1 and ct2, returns a 6-tuple of class transpositions
                    ct3 .. ct8 such that ct1^(ct3 * .. * ct8) = ct2.
                    The existence of such a tuple of class transpositions
                    is used in the proof that the group generated by all
                    class transpositions is simple.

   `TreeSortingPerm' is a mapping which is a permutation of the positive
                     integers if and only if the 3n+1 Conjecture holds.

 - A couple of minor / technical changes have been made, e.g. some newly
   introduced features of ResClasses are now used. RCWA requires now
   ResClasses 2.2.1.

Changes between version 1.4.2 and version 1.4.4:

 - An attribute `FixedPointsOfAffinePartialMappings' has been introduced.

 - Functions `LocalizedRcwaMapping' and `SemilocalizedRcwaMapping' have been
   added.

 - A function `mKnot' has been added. This function constructs bijective
   rcwa mappings of the type discussed in

   Timothy P. Keller. Finite Cycles of Certain Periodically Linear
   Permutations. Missouri J. Math. Sci. 11(1999), no. 3, 152-157.

Changes between version 1.4.4 and version 1.5.1 (March 29, 2006):

 - Attributes `Sources', `Sinks' and `Loops' have been introduced.

 - A larger number of method descriptions has been made more intuitive.

 - The names of some filters have been changed in order to make the naming
   scheme more consistent and more intuitive. These are:

   `IsIntegralRcwaMapping'          -> `IsRcwaMappingOfZ'
   `IsSemilocalIntegralRcwaMapping' -> `IsRcwaMappingOfZ_pi'
   `IsModularRcwaMapping'           -> `IsRcwaMappingOfGFqx'

   `IsIntegralRcwaGroup'            -> `IsRcwaGroupOverZ'
   `IsSemilocalIntegralRcwaGroup'   -> `IsRcwaGroupOverZ_pi'
   `IsModularRcwaGroup'             -> `IsRcwaGroupOverGFqx'

 - Some minor adjustments to output formatting improvements in
   ResClasses 2.2.2 have been made. RCWA requires now ResClasses 2.2.2.

Changes between version 1.5.1 and version 1.5.2:

 - An example "Representations of the free group of rank 2" has been added
   to the manual. This example shows a transfer of the construction of the
   Schottky groups from PSL(2,C) to RCWA(Z).

 - An example "A representation of the modular group PSL(2,Z)" has been
   added to the manual.

 - A bug in the `Size' method for tame rcwa groups which are not class-wise
   order-preserving has been fixed. In certain situations this bug falsely
   caused the method to return `infinity'.

Changes between version 1.5.2 and version 1.6.0 (April 18, 2006):

 - Two Methods for `WreathProduct' have been added:

     * for an rcwa group over Z and a finite permutation group, and
     * for an rcwa group over Z and an infinite cyclic group.

 - An `IsomorphismRcwaGroup' method for free groups has been added.

 - Properties `IsClassShift', `IsClassReflection', `IsClassTransposition'
   and `IsPrimeSwitch' have been introduced.

 - An attribute `TransposedClasses' for class transpositions has been
   introduced.

Changes between version 1.6.0 and version 1.6.2:

 - A method for `IsomorphismRcwaGroup' for free products of finite groups
   has been added.

 - Methods for `CyclicGroup', `DihedralGroup' and `AbelianGroup' have been
   added.

Changes between version 1.6.2 and version 1.7.0 (April 28, 2006):

 - A method for `Root' which extracts k-th roots of class-wise
   order-preserving rcwa mappings of finite order has been added.

 - Methods for `RepresentativeAction' for RCWA(Z) and two integers
   and for RCWA(Z) and two tuples of integers have been added.

 - The functions `Trajectory', `TrajectoryModulo' and
   `CoefficientsOnTrajectory' have been merged into an operation
   `Trajectory'.

 - The functions `IncreasingOn' and `DecreasingOn' have been turned
   into attributes.

 - The function `TransitionMatrix' has been turned into an operation.

 - Some cleanup "behind the scenes" has been made. In particular some code
   has been improved or simplified, and a number of undocumented global
   variables have been made local.

Changes between version 1.7.0 and version 1.7.1:

 - The method for `Root' has been improved.
   The modulus of the result is now often significantly smaller.

 - Some minor improvements of code and documentation have been made.

Changes between version 1.7.1 and version 1.7.2:

 - The length of the used respected partitions of tame rcwa mappings
   and -groups has been reduced.

Changes between version 1.7.2 and version 1.8.0 (May 18, 2006):

 - The method for the operation `KernelOfActionOnRespectedPartition' works
   now also for tame rcwa groups which are not class-wise order-preserving,
   and has been documented. RCWA needs now the package Polycyclic.

 - An operation `SplittedClassTransposition' has been introduced, and the
   function `ClassPairs' has been documented.

 - The documentation has been improved in some places, and a couple of
   general auxiliary functions have been documented.

 - An example "embeddings of graphs with 4 vertices in the class
   transposition graph" has been added to examples/examples.g.

 - Various little "internal" improvements have been made.

Changes between version 1.8.0 and version 2.0.0 (May 30, 2006):

The main change is that the manual has been revised.

Further changes:

 - `ClassTransposition', `ClassShift' and `ClassReflection' now work
   also over rings other than Z.

 - Methods for `Multiplier' and `Divisor' for rcwa groups have been added.

 - Some further minor extentions of the functionality have been made,
   e.g. there is now a method for `ShortCycles' analogous to `ShortOrbits',
   and a function `InjectiveAsMappingFrom' has been added.

 - The code has been improved in various places.

Changes between version 2.0.0 and version 2.0.2:

 - Operations `Projections' and `RespectsPartition' have been introduced.

Changes between version 2.0.2 and version 2.1.0 (June 6, 2006):

 - A method for `StructureDescription' with basic functionality has been
   added.

Changes between version 2.1.0 and version 2.1.1:

 - Some improvements to `StructureDescription' and to the membership test
   have been made.

Changes between version 2.1.1 and version 2.1.2:

 - A method for the operation `Index' for rcwa groups has been added.

 - A method for computing factor groups G/N of rcwa groups has been
   added. This method covers the case that the normal subgroup N has
   finite index in G.

 - A few internal code improvements have been made.

Changes between version 2.1.2 and version 2.1.3:

 - Some additional criteria for disproving membership of a given
   rcwa permutation in a given rcwa group are now tested.

 - The output string of `StructureDescription' is now a bit nicer
   in certain cases.

Changes between version 2.1.3 and version 2.1.4:

 - Some information in the chapter `The Algorithms Implemented in RCWA'
   of the manual has been updated.

 - A method for computing conjugates of GAP permutations under bijective
   rcwa mappings has been added.

Changes between version 2.1.4 and version 2.1.5:

 - The abstract and the preface of the manual have been revised.

Changes between version 2.1.5 and version 2.1.6:

 - A bug in the application of a non-membership criterion for rcwa groups
   has been fixed (the error has been identified in the code, no example
   has been constructed).

 - Some cleanup of comments and declarations in the source code
   has been made.

Changes between version 2.1.6 and version 2.1.7:

 - A function `GluckTaylorInvariant' has been added.

 - A bug in `KernelOfActionOnRespectedPartition' has been fixed.

Changes between version 2.1.7 and version 2.2.0 (September 20, 2006):

 - Improvements of the documentation have been made:
   In particular the abstract, the preface and the readme file have been
   updated, improved and shortened.

 - The author's thesis is no longer distributed with the package, since more
   and better results on residue-class-wise affine groups have been found in
   the meantime.

Changes between version 2.2.0 and version 2.2.1:

 - Some minor code and documentation improvements have been made.
   Now RCWA needs ResClasses 2.3.5.

Changes between version 2.2.1 and version 2.2.2:

 - The implementation of the methods for checking some wildness criteria
   has been improved.

 - The documentation has been improved in some places.

 - A little "spelling reform" has taken place -- the longer the author looks
   at it, the more he is convinced that "residue-class-wise affine" looks
   better than "residue class-wise affine".

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

 - Graphics functions `SaveAsBitmapPicture' and `DrawOrbitPicture'
   have been added.

 - A `DirectProductOp' method has been moved to Polycyclic.
   Therefore RCWA now requires Polycyclic 2.1.

 - A couple of minor improvements in the code and in the documentation
   have been made.

Changes between version 2.3.0 and version 2.3.1:

 - A graphics function `ReadFromBitmapPicture' has been added.

 - The code of the function `SaveAsBitmapPicture' has been improved,
   and the requirement that the width of a bitmap picture must be a multiple
   of 32 has been removed.

 - A test file tst/bmptest.g for RCWA's graphics functionality has been
   added.

Changes between version 2.3.1 and version 2.3.2:

 - A copy of my thesis is distributed with the package again
   (somebody had asked for it).

Changes between version 2.3.2 and version 2.3.3:

 - Now there is a new preprint on algorithms and methods for rcwa groups,
   in which many of the algorithms and methods implemented in this package
   are described in detail. A reference to this preprint has been added
   to the manual.

 - A couple of minor improvements of the code and the documentation have
   been made. For example, the method for computing the order of a bijective
   rcwa mapping has been improved, and the number of stored generators of
   wreath products of rcwa groups with finite permutation groups has been
   reduced.

 - There is now a two-argument version of the function `ClassPairs', which
   supports the rings Z_pi and GF(q)[x] as well. The ring has to be given as
   the first argument.

Changes between version 2.3.3 and version 2.4.0 (February 20, 2007):

 - The groups CT(R) are now available as GAP objects.

 - More methods for `RepresentativeAction' have been added:

     - For RCWA(GF(q)[x]) resp. RCWA(Z_(pi)) and two partitions
       of GF(q)[x] resp. Z_(pi) into residue classes.

     - For RCWA(GF(q)[x]) resp. RCWA(Z_(pi)) and two unions of
       residue classes of GF(q)[x] resp. Z_(pi).

 - An operation `ClassRotation' has been introduced.

 - A method for `Permuted' for a list of residue classes and an
   rcwa permutation has been added.

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

 - The documentation has been improved in a few places.

 - Now RCWA needs ResClasses 2.4.0, which provides improved support for
   unions of residue classes of rings Z_(pi) and GF(q)[x].

Changes between version 2.4.0 and version 2.4.1:

 - Some improvements of the documentation have been made.

Changes between version 2.4.1 and version 2.4.2:

 - A method IsomorphismRcwaGroup( <G>, <R> ) for the case that <R> is
   a (semi-) localization of Z has been added.

 - The `Order' method for rcwa permutations of polynomial rings GF(q)[x]
   has been improved.

 - The membership test for rcwa groups over polynomial rings GF(q)[x]
   has been improved. This also includes improved or new methods for
   a couple of related operations.

Changes between version 2.4.2 and version 2.4.3:

 - The documentation has been improved in a few places.

 - The HTML version of the manual has been made a bit nicer by adding
   a couple of images for displayed formulae.

 - A few formulae in ASCII art have been added to the text version of
   the manual.

 - 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.5.0 (May 25, 2007):

 - Some functionality for rcwa monoids has been added --
   see the short new manual chapter "Residue-Class-Wise Affine Monoids".

 - The manual has undergone a revision.
   Nothing has been rewritten completely, but lots of improvements and
   updates have been made in many places, and the chapter "The Algorithms
   Implemented in RCWA" has been extended considerably.

 - Iterators for rcwa groups have been implemented.
   These iterators can be used for finitely generated infinite groups
   in general.

 - The functionality for orbits under the action of rcwa groups has been
   improved. There are now orbit objects representing possibly infinite
   orbits. There are methods to compare such orbits, and to loop over them.

 - An operation `EpimorphismFromFpGroup' has been introduced.

 - A `SymmetricGroup' method for partitions of a ring into residue classes
   has been added.

 - The `IsomorphismRcwaGroup' method for finite groups has been improved.
   It works now over all rings which are currently supported by RCWA.

 - An `Exponent' method for rcwa groups has been added.

 - Methods for `Action' and `ActionHomomorphism' to compute the action of
   an rcwa group on a subset of its underlying ring have been added.

 - Basic functionality for subgroups of rcwa groups "by property" has
   been implemented.

 - A method to construct a dihedral group acting on a given residue class
   has been added.  

 - Methods for `ExtRepOfObj' and `ObjByExtRep' for rcwa mappings have
   been added.

 - Attributes `ShiftsUpOn' and `ShiftsDownOn' as well as a property
   `IsSignPreserving' have been introduced.

 - Class shifts, class reflections, class rotations and class transpositions
   can now be given user-defined names via an option `Name'.

 - The methods for `PreImagesElm', `PreImagesRepresentative' and
   `PreImagesSet' have been generalized to rcwa mappings of rings other
   than Z.

 - "Generalized class transpositions" have been introduced.
   The difference between them and "usual" class transpositions is that
   the former interchange given pairs of disjoint residue classes *with
   fixed representatives and signed moduli*.

 - The operation `RcwaGroupByPermGroup' / `RcwaGroupOverZByPermGroup' is
   no longer needed, and has been removed.

 - The Attributes `SetOnWhichMappingIs ...' have been given shorter names.
   Now they are called `ClassWiseOrderPreservingOn', `ClassWiseConstantOn'
   and `ClassWiseOrderReversingOn'.

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

 - Now RCWA needs ResClasses 2.5.0 and GAPDoc 0.99999.

Changes between version 2.5.0 and version 2.5.1:

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

Changes between version 2.5.1 and version 2.5.2:

 - The action of subgroups of CT(Z) on FR's periodic lists by permuting the
   list entries has been implemented. An analogous action has been imple-
   mented for non-bijective rcwa mappings.

 - A method for `EquivalenceClasses' has been added.
   The arguments are either a list and a function computing a class invariant
   of a list entry or a list and a function describing an equivalence
   relation on the entries of the list.

 - A function `RestrictedPartitionsWithoutRepetitions' has been added.
   This is similar to `RestrictedPartitions', but the difference is that
   no part may occur twice.

 - The documentation has been improved in a few places, and a couple of
   comments in the source files have been improved as well.

Changes between version 2.5.2 and version 2.5.3:

 - A bug concerning SymmetricGroup([]) has been fixed -- the empty list
   was wrongly interpreted as empty list of residue classes, rather than
   as empty list of integers. This caused an error message.
   Thanks to John McDermott for reporting this bug.

Changes between version 2.5.3 and version 2.5.4:

 - A function `RunDemonstration' has been added.
   The purpose of this function is to present demonstrations of this package
   and possibly also of other GAP code.

 - 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.



