GAP 4.4 Update 6 (September 2005)
Fixed bugs which could produce wrong results
1. The perfect group library does not contain any information on
the trivial group, so the trivial group must be handled
specially. PerfectGroup and NrPerfectLibraryGroups were changed
to indicate that the trivial group is not part of the library.
2. The descriptions of PerfectGroup(734832,3) and PerfectGroup
(864000,3) were corrected in the library of perfect groups.
3. The functions EpimorphismSchurCover and
AbelianInvariantsMultiplier may have produced wrong results
without warning. These problems are fixed. However, the methods
currently used can be expected to be slower than the ones used
before; we hope to fix this for the next version of GAP.
4. DerivedSubgroup and CommutatorSubgroup for permutation groups
sometimes returned groups with an incorrect stabilizer chain due
to a missing verification step after a random Schreier Sims.
5. NaturalHomomorphismByNormalSubgroup for FpGroups did unnecessary
6. The alternating group A3 incorrectly claimed to be not simple.
7. ExponentSyllable for straight line program elements gave a wrong
8. PrimePGroup is defined to return fail for trivial groups, but if
the group was constructed as a factor or subgroup of a known
p-group, the value of p was retained.
9. The functions TestPackageAvailability and LoadPackage did not
work correctly when one asked for a particular version of the
package, via a version number starting with the character =, in
the sense that a version with a larger version number was loaded
if it was available. [Reported by Burkhard H�fling]
10. The generator names constructed by AlgebraByStructureConstants
11. The undocumented function (but recently advertised on gap-dev)
COPY_LIST_ENTRIES did not handle overlapping source and
destination areas correctly in some cases.
12. The elements in a free magma ring have the filter
IsAssociativeElement set whenever the elements in the underlying
magma and in the coefficients ring have this filter set.
[Reported by Randy Cone]
13. The function InstallValue must not be used for objects in the
filter IsFamily because these objects are compared via
IsIdenticalObj. [Reported by Max Neunh�ffer]
Fixed bugs which could lead to crashes
1. Problem in composition series for permutation groups for
non-Frobenius groups with regular point stabilizer.
2. After lots of computations with compressed GF(2) vectors GAP
occasionally crashed. The reason were three missing CHANGED_BAGs
in SemiEchelonPListGF2Vecs. They were missing, because a garbage
collection could be triggered during the computation such that
newly created bags could become "old". Test code is not possible
to provide because the error condition cannot easily be
reproduced. [Reported by Klaus Lux]
3. Minor bug that crashed GAP: The type of IMPLICATIONS could not
be determined in a fresh session. [Reported by Marco Costantini]
4. Assert caused an infinite loop if called as the first line of a
function called from another function.
Other fixed bugs
1. Wrong choice of prime in Dixon-Schneider if prime is bigger than
group order (if group has large exponent).
2. Groebner basis code ran into problems when comparing monomial
3. When testing for conjugacy of a primitive group to an
imprimitive group, GAP runs into an error in EARNS calculation.
[Reported by John Jones]
4. The centre of a magma is commonly defined to be the set of
elements that commute and associate with all elements. The
previous definition left out 'associate' and caused problems
with extending the functionality to nonassociative loops.
[Reported by Petr Vojtechovsky]
5. New kernel methods for taking the intersection and difference
between sets of substantially different sizes give a big
6. The commands IsNaturalSymmetricGroup and
IsNaturalAlternatingGroup are faster and should run much less
often into inefficient tests.
7. The perfect group library is split into several files which are
loaded and unloaded to keep memory usage down. The global
variable PERFSELECT is a blist which indicates which orders are
currently loaded. An off-by-one error wrongly added the last
order of the previous file into the list of valid orders when a
new file was loaded. A subsequent access to this order raises an
8. Up to now, the method installed for testing the membership of
rationals in the field of rationals via IsRat was not called;
instead a more general method was used that called Conductor and
thus was much slower. Now the special method has been ranked up
by changing the requirements in the method installation.
9. Fixed a bug in APPEND_VEC8BIT, which was triggered in the
following situation: Let e be the number of field elements
stored in one byte. If a compressed 8bit-vector v had length not
divisible by e and another compressed 8bit-vector w was
appended, such that the sum of the lengths became divisible by
e, then one 0 byte too much was written which destroyed the TNUM
of the next GAP object in memory. [Reported by Klaus Lux]
10. PermutationCycle returned fail if the cycle was not a contiguous
subset of the specified domain. [Reported by Luc Teirlinck]
11. Now Inverse correctly returns fail for zeros in finite fields
(and does no longer enter a break loop).
12. Up to now, CharacterDegrees ignored the attribute Irr if the
argument was a group that knew that it was solvable.
13. The function Debug now prints a meaningful message if the user
tries to debug an operation. Also, the help file for vi is now
available in the case of several GAP root directories.
14. It is no longer possible to create corrupt objects via ranges of
length >2^28, resp. >2^60 (depending on the architecture). The
limitation concerning the arguments of ranges is documented.
[Reported by Stefan Kohl]
15. Now IsElementaryAbelian and
ClassPositionsOfMinimalNormalSubgroups are available for
ordinary character tables. Now the operation
CharacterTableIsoclinic is an attribute, and there is another
new attribute SourceOfIsoclinicTable that points back to the
original table; this is used for computing the Brauer tables of
those tables in the character table library that are computed
using CharacterTableIsoclinic. Now
ClassPositionsOfDerivedSubgroup avoids calling Irr, since
LinearCharacters is sufficient. Now
ClassPositionsOfElementaryAbelianSeries works also for the table
of the trivial group. Restrictions of character objects know
that they are characters.
A few formulations in the documentation concerning character
tables have been improved slightly.
16. Up to now, IsPGroup has rarely been set. Now many basic
operations such as SylowSubgroupOp set this attribute on the
17. Computing an enumerator for a semigroup required too much time
because it used all elements instead of the given generators.
[Reported by Manuel Delgado]
18. Avoid potential error message when working with automorphism
19. Fixed wrong page references in manual indices.
20. Make "MutableCopyMat" an operation and install the former
function which does call List with ShallowCopy the default
method for lists. Also use this in a few appropriate places.
21. An old DEC compiler doesn't like C preprocessor directives that
are preceded by whitespace. Removed such whitespace. [Reported
by Chris Wensley]
New or improved functionality
1. The primitive groups library has been extended to degree 2499.
2. New operation Remove and extended functionality of Add with an
optional argument giving the position of the insertion. They are
based on an efficient kernel function COPY_LIST_ENTRIES.
3. Added fast kernel implementation of Tarjan's algorithm for
strongly connected components of a directed graph.
4. Now IsProbablyPrimeInt can be used with larger numbers. (Made
internal function TraceModQF non-recursive.)
5. A new operation PadicValuation and a corresponding method for
6. A new operation PartialFactorization has been added, and a
corresponding method for integers has been installed. This
method allows one to specify the amount of work to be spent on
looking for factors.
7. The generators of full s. c. algebras can now be accessed with
the dot operator. [Reported by Marcus Bishop]
8. New Conway polynomials computed by Kate Minola, John Bray,
9. A new attribute EpimorphismFromFreeGroup. The code has been
written by Alexander Hulpke.
10. The functions Lambda, Phi, Sigma, and Tau have been turned into
operations, to admit the installation of methods for arguments
other than integers.
11. Up to now, one could assign only lists with
InstallFlushableValue. Now also records are admitted.
12. InstallMethod now admits entering a list of strings instead of a
list of required filters. Each such string must evaluate to a
filter when used as the argument of EvalString. The advantage of
this variant is that these strings are used to compose an info
string (which is shown by ApplicableMethod) that reflects
exactly the required filters.
13. In test files that are read with ReadTest, the assertion level
is set to 2 between START_TEST and STOP_TEST. This may result in
runtimes for the tests that are substantially longer than the
usual runtimes with default assertion level 0. In particular
this is the reason why some of the standard test files require
more time in GAP 4.4.6 than in GAP 4.4.5.
14. Some very basic functionality for floats.
The GAP Group, September 2005