GAP

Main Branches

Download   Overview   Data Libraries   Packages   Documentation   Contacts   FAQ   GAP 3  

GAP 4.4 Update 11 (December 2008)

Fixed bugs which could produce wrong results

  1. MemoryUsage on objects with no subobjects left them in the cache and thus reported 0 in subsequent calls to MemoryUsage for the same object. [Reported by Stefan Kohl]
  2. Irr(G) might be missing characters. [Reported by Angel del Rio]
  3. Up to now, it was allowed to call the function FullMatrixAlgebraCentralizer with a field and a list of matrices such that the entries of the matrices were not contained in the field; in this situation, the result did not fit to the documentation. Now the entries of the matrices are required to lie in the field, if not then an error is signaled.
  4. For those finite fields that are regarded as field extensions over non-prime fields (one can construct such fields with AsField), the function DefiningPolynomial erroneously returned a polynomial w.r.t. the extension of the prime field. [Reported by Stefan Kohl]
  5. Since the release of GAP 4.4.10, the return values of the function QuaternionAlgebra were not consistent w.r.t. the attribute GeneratorsOfAlgebra; the returned list could have length four or five. Now always the list of elements of the canonical basis is returned.
  6. MonomialGrevlexOrdering calculated a wrong ordering in certain cases. [Reported by Paul Smith]
  7. The (GAP kernel) method for the operation IntersectSet for ranges had two bugs, which could yield a result range with either too few or too many elements. As a consequence, for example the Intersection results for ranges could be wrong. [Reported by Matthew Fayers]
  8. Fixed a bug in the short-form display of elements of larger finite fields, a bug in some cross-field conversions and some inefficiencies and a missing method in the LogFFE code. [Reported by Jia Huang]
  9. In rare cases SmithNormalFormIntegerMatTransforms returned a wrong normal form (the version without transforming matrices did not have this problem). This is fixed. [Reported by AH]
  10. The variant of the function StraightLineProgram that takes a string as its first argument returned wrong results if the last character of this string was a closing bracket.
  11. The code for central series in a permutation group used too tight a bound and thus falsely return a nilpotent permutation group as non-nilpotent.

Fixed bugs which could lead to crashes

  1. Under certain circumstances the kernel code for position in blists would access a memory location just after the end of the blist. If this location was not accessible, a crash could result. This was corrected and the code was cleaned up. [Reported by AH]

Other fixed bugs

  1. The function IsomorphismTypeInfoFiniteSimpleGroup can be called with a positive integer instead of a group, and then returns information about the simple group(s) of this order. (This feature is currently undocumented.) For the argument 1, however, it ran into an infinite loop.
  2. A lookup in an empty dictionary entered a break loop. Now returns 'fail'. [Reported by Laurent Bartholdi]
  3. The c++ keyword 'and' is no longer be used as a macro parameter in the kernel. [Reported by Paul Smith]
  4. The operation KernelOfMultiplicativeGeneralMapping has methods designed to handle maps between permutation groups in a two-step approach, but did not reliably trigger the second step. This has now been fixed, preventing a slow infinite loop repeating the first step. This was normally only seen as part of a larger calculation.
  5. There were two methods for the operation Intersection2 which have implicitly assumed that finiteness of a collection can always be decided. Now, these methods check for HasIsFinite and CanComputeSize prior to calling IsFinite.
  6. Made error message in case of corrupted help book information (manual.six file) shorter and more informative. [Reported by AH]
  7. GAP cannot call methods with more than six arguments. Now the functions NewOperation, DeclareOperation, and InstallMethod signal an error if one attempts to declare an operation or to install a method with more than six arguments.
  8. Up to now, IsOne had a special method for general mappings, which was much worse than the generic method; this special method has now been removed.
  9. When printing elements of an algebraic extension parentheses around coefficients were missing. [Reported by Maxim Hendriks]

New or improved functionality

  1. Make dynamic loading of modules possible on CYGWIN using a DLL based approach. Also move to using autoconf version 2.61.
  2. One can now call Basis, Iterator etc. with the return value of the function AlgebraicExtension.
  3. The function FrobeniusCharacterValue returned fail for results that require a finite field with more than 65536 elements. Meanwhile GAP can handle larger finite fields, so this restriction was removed. (It is still possible that FrobeniusCharacterValue returns fail.)
  4. Methods for testing membership in general linear groups and special linear groups over the integers have been added.
  5. Methods for String and ViewString for full row modules have been added. Further, a default method for IsRowModule has been added, which returns false for objects which are not free left modules.
  6. A ViewString method for objects with name has been added.
  7. The method for View for polynomial rings has been improved, and methods for String and ViewString for polynomial rings have been added.
  8. Binomial(n, k) now works with huge n.
  9. The function InducedClassFunctionsByFusionMap is now documented.
  10. The return values of the function QuaternionAlgebra now store that they are division rings (if optional parameters are given then of course ths depends on these parameters).