CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
6 Overview of updates for GAP 4.4
3
4
This chapter lists changes in the main system (excluding packages) that have
5
been corrected or added in bugfixes and updates for GAP 4.4.
6
7
8
6.1 GAP 4.4 Bugfix 2 (April 2004)
9
10
Fixed bugs which could lead to crashes:
11
12
 A crash when incorrect types of arguments are passed to FileString.
13
14
Other fixed bugs:
15
16
 A bug in DerivedSubgroupTom and DerivedSubgroupsTom.
17
18
 An error in the inversion of certain ZmodnZObj elements.
19
20
 A wrong display string of the numerator in rational functions returned
21
by MolienSeriesWithGivenDenominator (in the case that the constant
22
term of this numerator is zero).
23
24
25
6.2 GAP 4.4 Bugfix 3 (May 2004)
26
27
Fixed bugs which could produce wrong results:
28
29
 Incorrect setting of system variables (e.g., home directory and
30
command line options) after loading a workspace.
31
32
 Wrong handling of integer literals within functions or loops on 64-bit
33
architectures (only integers in the range from 2^28 to 2^60).
34
35
Fixed bugs which could lead to crashes:
36
37
 A problem in the installation of the multiplication routine for
38
matrices that claimed to be applicable for more general list
39
multiplications.
40
41
 A problem when computing weight distributions of codes with weights >
42
2^28.
43
44
Other fixed bugs:
45
46
 Problems with the online help with some manual sections.
47
48
 Problems of the online help on Windows systems.
49
50
 A problem in GQuotients when mapping from a finitely presented group
51
which has a free direct factor.
52
53
 A bug in the function DisplayRevision.
54
55
 The trivial finitely presented group on no generators was not
56
recognized as finitely presented.
57
58
 A problem with Process.
59
60
 A problem when intersecting subgroups of finitely presented groups
61
that are represented in quotient representation with the quotient not
62
apermutation group.
63
64
 A bug in the generic Intersection2 method for vector spaces, in the
65
case that both spaces are trivial.
66
67
 Enable ReeGroup(q) for q = 3.
68
69
70
6.3 GAP 4.4 Bugfix 4 (December 2004)
71
72
Fixed bugs which could produce wrong results:
73
74
 An error in the Order method for matrices over cyclotomic fields which
75
caused this method to return infinity for matrices of finite order in
76
certain cases.
77
78
 Representations computed by IrreducibleRepresentations in
79
characteristic 0 erraneously claimed to be faithful.
80
81
 A primitive representation of degree 574 for PSL(2,41) has been
82
missing in the classification on which the GAP library was built.
83
84
 A bug in Append for compressed vectors over GF(2): if the length of
85
the result is 1 mod 32 (or 64) the last entry was forgotten to copy.
86
87
 A problem with the Ree group Ree(3) of size 1512 claiming to be
88
simple.
89
90
 An error in the membership test for groups GU(n,q) and SU(n,q) for
91
non-prime q.
92
93
 An error in the kernel code for ranges which caused e.g. -1 in [1..2]
94
to return true.
95
96
 An error recording boolean lists in saved workspaces.
97
98
 A problem in the selection function for primitive and transitive
99
groups if no degree is given.
100
101
 ReducedConfluentRewritingSystem returning a cached result that might
102
not conform to the ordering specified.
103
104
Other fixed bugs:
105
106
 A problem with the function SuggestUpdates to check for the most
107
recent version of packages available.
108
109
 A problem that caused MatrixOfAction to produce an error when the
110
algebra module was constructed as a direct sum.
111
112
 Problems with computing n-th power maps of character tables, where n
113
is negative and the table does not yet store its irreducible
114
characters.
115
116
 Element conjugacy in large-base permutation groups sometimes was
117
unnecessarily inefficient.
118
119
 A missing method for getting the letter representation of an associate
120
word in straight line program representation.
121
122
 A problem with the construction of vector space bases where the given
123
list of basis vectors is itself an object that was returned by Basis.
124
125
 A problem of AbelianInvariantsMultiplier insisting that a result of
126
IsomorphismFpGroup is known to be surjective.
127
128
 An error in the routine for Resultant if one of the polynomials has
129
degree zero.
130
131
132
6.4 GAP 4.4 Update 5 (May 2005)
133
134
Fixed bugs which could produce wrong results:
135
136
 GroupWithGenerators (Reference: GroupWithGenerators) returned a
137
meaningless group object instead of signaling an error when it was
138
called with an empty list of generators.
139
140
 When computing preimages under an embedding into a direct product of
141
permutation groups, if the element was not in the image of the
142
embedding then a permutation had been returned instead of fail.
143
144
 Two problems with PowerMod (Reference: PowerMod) for polynomials.
145
[Reported by Jack Schmidt]
146
147
 Some methods for computing the sum of ideals returned the first
148
summand instead of the sum. [Reported by Alexander Konovalov]
149
150
 Wrong result in Intersection (Reference: Intersection) for pc groups.
151
152
 The function CompareVersionNumbers (Reference: CompareVersionNumbers)
153
erroneously ignored leading non-digit characters.
154
155
A new feature in the corrected version is an optional third argument
156
"equal", which causes the function to return true only if the first
157
two arguments describe equal version numbers; documentation is
158
available in the ext-manual. This new feature is used in LoadPackage
159
(Reference: LoadPackage), now one can require a specific version of a
160
package.
161
162
The library code still contained parts of the handling of completion
163
files for packages, which does not work and therefore had already been
164
removed from the documentation. This code has now been removed.
165
166
Now a new component PreloadFile is supported in The PackageInfo.g File
167
(Reference: The PackageInfo.g File) files; if it is bound then the
168
file in question is read immediately before the package or its
169
documentation is loaded.
170
171
 The result of String (Reference: String) for strings not in
172
IsStringRep (Reference: IsStringRep) that occur as list entries or
173
record components was erroneously missing the double quotes around the
174
strings.
175
176
 A bug which caused InducedPcgs (Reference: InducedPcgs) to return a
177
pcgs which is not induced wrt. the parent pcgs of pcgs. This may cause
178
unpredictable behaviour, e. g. when SiftedPcElement is used
179
subsequently. [Reported by Alexander Konovalov]
180
181
 Fixed a bug in SmallGroupsInformation(512).
182
183
 PowerModCoeffs (Reference: PowerModCoeffs) with exponent 1 for
184
compressed vectors did not reduce (a copy of) the input vector before
185
returning it. [Reported by Frank Lübeck]
186
187
 Sorting a mutable non-plain list (e.g., a compressed matrix over
188
fields of order < 257) could potentially destroy that object.
189
[Reported by Alexander Hulpke]
190
191
 Under rare circumstances computing the closure of a permutation group
192
by a normalizing element could produce a corrupted stabilizer chain.
193
(The underlying algorithm uses random elements, probability of failure
194
was below 1 percent). [Reported by Thomas Breuer]
195
196
Fixed bugs which could lead to crashes:
197
198
 Some code and comments in the GAP kernel assumed that there is no
199
garbage collection during the core printing function Pr, which is not
200
correct. This could cause GAP in rare cases to crash during printing
201
permutations, cyclotomics or strings with zero bytes. [Reported by
202
Warwick Harvey]
203
204
Other fixed bugs:
205
206
 A rare problem with the choice of prime in the Dixon-Schneider
207
algorithm for computing the character table of a group. [Reported by
208
Jack Schmidt]
209
210
 DirectProduct (Reference: DirectProduct) for trivial permutation
211
groups returned a strange object.
212
213
 A problem with PolynomialReduction (Reference: PolynomialReduction)
214
running into an infinite loop.
215
216
 Adding linear mappings with different image domains was not possible.
217
[Reported by Pasha Zusmanovich]
218
219
 Multiplying group ring elements with rationals was not possible.
220
[Reported by Laurent Bartholdi]
221
222
 Random (Reference: Random) now works for finite fields of size larger
223
than 2^28. [Reported by Jack Schmidt]
224
225
 Univariate polynomial creators did modify the coefficient list passed.
226
[Reported by Jürgen Müller]
227
228
 Fixed IntHexString (Reference: IntHexString) to accept arguments not
229
in IsStringRep; the argument is now first converted if necessary.
230
[Reported by Kenn Heinrich]
231
232
 The library code for stabilizer chains contained quite some explicit
233
references to the identity (). This is unfortunate if one works with
234
permutation groups, the elements of which are not plain permutations
235
but objects which carry additional information like a memory, how they
236
were obtained from the group generators. For such cases it is much
237
cleaner to use the One(...) operation instead of (), such that the
238
library code can be used for a richer class of group objects. This fix
239
contains only rather trivial changes () to One(...) which were
240
carefully checked by me. The tests for permutation groups all run
241
without a problem. However, it is relatively difficult to provide test
242
code for this particular change, since the "improvement" only shows up
243
when one generates new group objects. This is for example done in the
244
package recog which is in preparation. [Reported by Akos Seress and
245
Max Neunhöffer]
246
247
 Using {} to select elements of a known inhomogenous dense list
248
produced a list that might falsely claim to be known inhomogenous,
249
which could lead to a segfault if the list typing code tried to mark
250
it homogenous, since the code intended to catch such errors also had a
251
bug. [Reported by Steve Linton]
252
253
 The record for the generic iterator construction of subspaces domains
254
of non-row spaces was not complete.
255
256
 When a workspace has been created without packages(-A option) and is
257
loaded into a GAP session without packages (same option) then an error
258
message is printed.
259
260
 So far the functions IsPrimeInt (Reference: IsPrimeInt) and
261
IsProbablyPrimeInt (Reference: IsProbablyPrimeInt) are essentially the
262
same except that IsPrimeInt issues an additional warning when
263
(non-proven) probable primes are considered as primes.
264
265
These warnings now print the probable primes in question as well; if a
266
probable prime is used several times then the warning is also printed
267
several times; there is no longer a warning for some known large
268
primes; the warnings can be switched off. See IsPrimeInt (Reference:
269
IsPrimeInt) for more details.
270
271
If we get a reasonable primality test in GAP we will change the
272
definition of IsPrimeInt to do a proper test.
273
274
 Corrected some names of primitive groups in degree 26. [Reported by
275
Robert F. Bailey]
276
277
New or improved functionality:
278
279
 Several changes for ConwayPolynomial (Reference: ConwayPolynomial):
280
281
 many new pre-computed polynomials
282
283
 put data in several separate files (only read when needed)
284
285
 added info on origins of pre-computed polynomials
286
287
 improved performance of ConwayPolynomial (Reference:
288
ConwayPolynomial) and IsPrimitivePolynomial (Reference:
289
IsPrimitivePolynomial) for p < 256
290
291
 improved documentation of ConwayPolynomial
292
293
 added and documented new functions IsCheapConwayPolynomial
294
(Reference: IsCheapConwayPolynomial) and
295
RandomPrimitivePolynomial (Reference: RandomPrimitivePolynomial)
296
297
 Added method for NormalBase (Reference: NormalBase) for extensions of
298
finite fields.
299
300
 Added more help viewers for the HTML version of the documentation
301
(firefox, mozilla, konqueror, w3m, safari).
302
303
 New function ColorPrompt (Reference: ColorPrompt). (Users of former
304
versions of a colorprompt.g file: Now you just need a
305
ColorPrompt(true); in your .gaprc file.)
306
307
 Specialised kernel functions to support GUAVA 2.0. GAP will only load
308
GUAVA in version at least 2.002 after this update.
309
310
 Now there is a kernel function CYC_LIST for converting a list of
311
rationals into a cyclotomic, without arithmetics overhead.
312
313
 New functions ContinuedFractionExpansionOfRoot (Reference:
314
ContinuedFractionExpansionOfRoot) and
315
ContinuedFractionApproximationOfRoot (Reference:
316
ContinuedFractionApproximationOfRoot) for computing continued fraction
317
expansions and continued fraction approximations of real roots of
318
polynomials with integer coefficients.
319
320
 A method for computing structure descriptions for finite groups,
321
available via StructureDescription (Reference: StructureDescription).
322
323
 This change contains the new, extended version of the SmallGroups
324
package. For example, the groups of orders p^4, p^5, p^6 for arbitrary
325
primes p, the groups of square-free order and the groups of cube-free
326
order at most 50000 are included now. For more detailed information
327
see the announcement of the extended package.
328
329
 The function ShowPackageVariables gives an overview of the global
330
variables in a package. It is thought as a utility for package authors
331
and referees. (It uses the new function IsDocumentedVariable.)
332
333
 The mechanisms for testing GAP has been improved:
334
335
 The information whether a test file belongs to the list in
336
tst/testall.g is now stored in the test file itself.
337
338
 Some targets for testing have been added to the Makefile in the
339
GAP root directory, the output of the tests goes to the new
340
directory dev/log.
341
342
 Utility functions for testing are in the new file
343
tst/testutil.g. Now the loops over (some or all) files tst/*.tst
344
can be performed with a function call, and the file
345
tst/testall.g can be created automatically; the file
346
tst/testfull.g is now obsolete. The remormalization of the
347
scaling factors can now be done using a GAP function, so the
348
file tst/renorm.g is obsolete.
349
350
 Now the functions START_TEST and STOP_TEST use components in
351
GAPInfo instead of own globals, and the random number generator
352
is always reset in START_TEST.
353
354
 GAPInfo.SystemInformation now takes two arguments, now one can
355
use it easier in the tests.
356
357
 MultiplicationTable (Reference: MultiplicationTable) is now an
358
attribute, and the construction of a magma, monoid, etc. from
359
multiplication tables has been unified.
360
361
362
6.5 GAP 4.4 Update 6 (September 2005)
363
364
Attribution of bugfixes and improved functionalities to those who reported
365
or provided these, respectively, is still fairly incomplete and inconsistent
366
with this update. We apologise for this fact and will discuss until the next
367
update how to improve this feature.
368
369
Fixed bugs which could produce wrong results:
370
371
 The perfect group library does not contain any information on the
372
trivial group, so the trivial group must be handled specially.
373
PerfectGroup (Reference: PerfectGroup) and NrPerfectLibraryGroups were
374
changed to indicate that the trivial group is not part of the library.
375
376
 The descriptions of PerfectGroup(734832,3) and PerfectGroup(864000,3)
377
were corrected in the Finite Perfect Groups (Reference: Finite Perfect
378
Groups) library of perfect groups.
379
380
 The functions EpimorphismSchurCover (Reference: EpimorphismSchurCover)
381
and AbelianInvariantsMultiplier (Reference:
382
AbelianInvariantsMultiplier) may have produced wrong results without
383
warning [Reported by Colin Ingalls]. These problems are fixed.
384
However, the methods currently used can be expected to be slower than
385
the ones used before; we hope to fix this in the next version of GAP.
386
387
 DerivedSubgroup (Reference: DerivedSubgroup) and CommutatorSubgroup
388
(Reference: CommutatorSubgroup) for permutation groups sometimes
389
returned groups with an incorrect stabilizer chain due to a missing
390
verification step after a random Schreier Sims.
391
392
 NaturalHomomorphismByNormalSubgroup (Reference:
393
NaturalHomomorphismByNormalSubgroup) for FpGroups did unnecessary
394
rewrites.
395
396
 The alternating group A_3 incorrectly claimed to be not simple.
397
398
 ExponentSyllable (Reference: ExponentSyllable) for straight line
399
program elements gave a wrong result.
400
401
 PrimePGroup (Reference: PrimePGroup) is defined to return fail for
402
trivial groups, but if the group was constructed as a factor or
403
subgroup of a known p-group, the value of p was retained.
404
405
 The functions TestPackageAvailability (Reference:
406
TestPackageAvailability) and LoadPackage (Reference: LoadPackage) did
407
not work correctly when one asked for a particular version of the
408
package, via a version number starting with the character =, in the
409
sense that a version with a larger version number was loaded if it was
410
available. [Reported by Burkhard Höfling]
411
412
 The generator names constructed by AlgebraByStructureConstants
413
(Reference: AlgebraByStructureConstants) were nonsense.
414
415
 The undocumented function (but recently advertised on gap-dev)
416
COPY_LIST_ENTRIES did not handle overlapping source and destination
417
areas correctly in some cases.
418
419
 The elements in a free magma ring have the filter IsAssociativeElement
420
(Reference: IsAssociativeElement) set whenever the elements in the
421
underlying magma and in the coefficients ring have this filter set.
422
[Reported by Randy Cone]
423
424
 The function InstallValue (Reference: InstallValue) must not be used
425
for objects in the filter IsFamily because these objects are compared
426
via IsIdenticalObj (Reference: IsIdenticalObj). [Reported by Max
427
Neunhöffer]
428
429
Fixed bugs which could lead to crashes:
430
431
 Problem in composition series for permutation groups for non-Frobenius
432
groups with regular point stabilizer.
433
434
 After lots of computations with compressed GF(2) vectors GAP
435
occasionally crashed. The reason were three missing CHANGED_BAGs in
436
SemiEchelonPListGF2Vecs. They were missing, because a garbage
437
collection could be triggered during the computation such that newly
438
created bags could become old. It is not possible to provide test code
439
because the error condition cannot easily be reproduced. [Reported by
440
Klaus Lux]
441
442
 Minor bug that crashed GAP: The type of IMPLICATIONS could not be
443
determined in a fresh session. [Reported by Marco Costantini]
444
445
 Assert (Reference: Assert) caused an infinite loop if called as the
446
first line of a function called from another function.
447
448
Other fixed bugs:
449
450
 Wrong choice of prime in Dixon-Schneider if prime is bigger than group
451
order (if group has large exponent).
452
453
 Groebner basis code ran into problems when comparing monomial
454
orderings.
455
456
 When testing for conjugacy of a primitive group to an imprimitive
457
group,GAP runs into an error in EARNS calculation. [Reported by John
458
Jones]
459
460
 The centre of a magma is commonly defined to be the set of elements
461
that commute and associate with all elements. The previous definition
462
left out associate and caused problems with extending the
463
functionality to nonassociative loops. [Reported by Petr Vojtechovsky]
464
465
 New kernel methods for taking the intersection and difference between
466
sets of substantially different sizes give a big performance increase.
467
468
 The commands IsNaturalSymmetricGroup (Reference:
469
IsNaturalSymmetricGroup) and IsNaturalAlternatingGroup (Reference:
470
IsNaturalAlternatingGroup) are faster and should run much less often
471
into inefficient tests.
472
473
 The perfect group library, see Finite Perfect Groups (Reference:
474
Finite Perfect Groups), is split into several files which are loaded
475
and unloaded to keep memory usage down. The global variable PERFSELECT
476
is a blist which indicates which orders are currently loaded. An
477
off-by-one error wrongly added the last order of the previous file
478
into the list of valid orders when a new file was loaded. A subsequent
479
access to this order raises an error.
480
481
 Up to now, the method installed for testing the membership of
482
rationals in the field of rationals via IsRat (Reference: IsRat) was
483
not called; instead a more general method was used that called
484
Conductor (Reference: Conductor for a cyclotomic) and thus was much
485
slower. Now the special method has been ranked up by changing the
486
requirements in the method installation.
487
488
 Fixed a bug in APPEND_VEC8BIT, which was triggered in the following
489
situation: Let e be the number of field elements stored in one byte.
490
If a compressed 8bit-vector v had length not divisible by e and
491
another compressed 8-bit vector w was appended, such that the sum of
492
the lengths became divisible by e, then one 0 byte too much was
493
written, which destroyed the TNUM of the next GAP object in memory.
494
[Reported by Klaus Lux]
495
496
 PermutationCycle (Reference: PermutationCycle) returned fail if the
497
cycle was not a contiguous subset of the specified domain. [Reported
498
by Luc Teirlinck]
499
500
 Now Inverse (Reference: Inverse) correctly returns fail for zeros in
501
finite fields (and does no longer enter a break loop).
502
503
 Up to now, CharacterDegrees (Reference: CharacterDegrees) ignored the
504
attribute Irr (Reference: Irr) if the argument was a group that knew
505
that it was solvable.
506
507
 The function Debug now prints a meaningful message if the user tries
508
to debug an operation. Also, the help file for vi is now available in
509
the case of several GAP root directories.
510
511
 It is no longer possible to create corrupt objects via ranges of
512
length >2^28, resp. >2^60 (depending on the architecture). The
513
limitation concerning the arguments of ranges is documented. [Reported
514
by Stefan Kohl]
515
516
 Now IsElementaryAbelian (Reference: IsElementaryAbelian) and
517
ClassPositionsOfMinimalNormalSubgroups (Reference:
518
ClassPositionsOfMinimalNormalSubgroups) are available for ordinary
519
character tables. Now the operation CharacterTableIsoclinic
520
(Reference: CharacterTableIsoclinic) is an attribute, and there is
521
another new attribute SourceOfIsoclinicTable (Reference:
522
SourceOfIsoclinicTable) that points back to the original table; this
523
is used for computing the Brauer tables of those tables in the
524
character table library that are computed using
525
CharacterTableIsoclinic. Now ClassPositionsOfDerivedSubgroup
526
(Reference: ClassPositionsOfDerivedSubgroup) avoids calling Irr
527
(Reference: Irr), since LinearCharacters (Reference: LinearCharacters)
528
is sufficient. Now ClassPositionsOfElementaryAbelianSeries (Reference:
529
ClassPositionsOfElementaryAbelianSeries) works also for the table of
530
the trivial group. Restrictions of character objects know that they
531
are characters.
532
533
A few formulations in the documentation concerning character tables
534
have been improved slightly.
535
536
 Up to now, IsPGroup (Reference: IsPGroup) has rarely been set. Now
537
many basic operations such as SylowSubgroup (Reference: SylowSubgroup)
538
set this attribute on the returned result.
539
540
 Computing an enumerator for a semigroup required too much time because
541
it used all elements instead of the given generators. [Reported by
542
Manuel Delgado]
543
544
 Avoid potential error message when working with automorphism groups.
545
546
 Fixed wrong page references in manual indices.
547
548
 Make MutableCopyMat an operation and install the former function which
549
does call List (Reference: Lists) with ShallowCopy (Reference:
550
ShallowCopy) the default method for lists. Also use this in a few
551
appropriate places.
552
553
 An old DEC compiler doesn't like C preprocessor directives that are
554
preceded by whitespace. Removed such whitespace. [Reported by Chris
555
Wensley]
556
557
New or improved functionality:
558
559
 The primitive groups library has been extended to degree 2499.
560
561
 New operation Remove (Reference: Remove) and extended functionality of
562
Add (Reference: Add) with an optional argument giving the position of
563
the insertion. They are based on an efficient kernel function
564
COPY_LIST_ENTRIES.
565
566
 Added fast kernel implementation of Tarjan's algorithm for strongly
567
connected components of a directed graph.
568
569
 Now IsProbablyPrimeInt (Reference: IsProbablyPrimeInt) can be used
570
with larger numbers. (Made internal function TraceModQF
571
non-recursive.)
572
573
 A new operation PadicValuation (Reference: PadicValuation) and a
574
corresponding method for rationals.
575
576
 A new operation PartialFactorization (Reference: PartialFactorization)
577
has been added, and a corresponding method for integers has been
578
installed. This method allows one to specify the amount of work to be
579
spent on looking for factors.
580
581
 The generators of full s. c. algebras can now be accessed with the dot
582
operator. [Reported by Marcus Bishop]
583
584
 New Conway polynomials computed by Kate Minola, John Bray, Richard
585
Parker.
586
587
 A new attribute EpimorphismFromFreeGroup (Reference:
588
EpimorphismFromFreeGroup). The code has been written by Alexander
589
Hulpke.
590
591
 The functions Lambda (Reference: Lambda), Phi (Reference: Phi), Sigma
592
(Reference: Sigma), and Tau (Reference: Tau) have been turned into
593
operations, to admit the installation of methods for arguments other
594
than integers.
595
596
 Up to now, one could assign only lists with InstallFlushableValue
597
(Reference: InstallFlushableValue). Now also records are admitted.
598
599
 InstallMethod (Reference: InstallMethod) now admits entering a list of
600
strings instead of a list of required filters. Each such string must
601
evaluate to a filter when used as the argument of EvalString
602
(Reference: EvalString). The advantage of this variant is that these
603
strings are used to compose an info string (which is shown by
604
ApplicableMethod) that reflects exactly the required filters.
605
606
 In test files that are read with ReadTest, the assertion level is set
607
to 2 between START_TEST and STOP_TEST. This may result in runtimes for
608
the tests that are substantially longer than the usual runtimes with
609
default assertion level 0. In particular this is the reason why some
610
of the standard test files require more time in GAP 4.4.6 than in GAP
611
4.4.5.
612
613
 Some very basic functionality for floats.
614
615
616
6.6 GAP 4.4 Update 7 (March 2006)
617
618
New or improved functionality:
619
620
 The Display (Reference: Display) functionality for character tables
621
has been extended by addition of an option to show power maps and
622
centralizer orders in a format similar to that used in the ATLAS.
623
Furthermore the options handling is now hierarchical, in order to
624
admit more flexible overloading.
625
626
 For the function LowIndexSubgroupsFpGroup (Reference:
627
LowIndexSubgroupsFpGroup), there is now an iterator variant
628
LowIndexSubgroupsFpGroupIterator. [Suggested (and based on code
629
contributed) by Michael Hartley]
630
631
 Semigroup functionality in GAP has been improved and extended. Green's
632
relations are now stored differently, making the system more amenable
633
to new methods for computing these relations in special cases. It is
634
now possible to calculate Green's classes etc. without computing the
635
entire semigroup or necessarily loading the package MONOID.
636
Furthermore, the Froidure-Pin algorithm has now been implemented in
637
GAP.
638
639
 Functionality for creating free products of any list of groups for
640
which a finite presentation can be determined had been added. This
641
function returns a finitely presented group. This functionality
642
includes the Embedding operation. As an application of this new code a
643
specialized direct product operation has been added for finitely
644
presented groups which returns a finitely presented group. This
645
application includes Embedding and Projection functionality.
646
647
 Some new Straight Line Program (SLP) functionality has been added. The
648
new functions take given SLPs and create new ones by restricting to a
649
subset of the results, or to an intermediate result or by calculating
650
the product of the results of two SLPs.
651
652
 New code has been added to allow group elements with memory; that is,
653
they store automatically how they were derived from some given set of
654
generators. Note that there is not yet documentation for this
655
functionality, but some packages already use it.
656
657
 New code has been added to handle matrices and vectors in such a way
658
that they do not change their representation in a generic manner.
659
660
 The Irr (Reference: Irr) method for p-solvable p-modular Brauer tables
661
now keeps the order of the irreducibles in the ordinary table.
662
663
 GAP can now handle any finite field for which the Conway polynomial is
664
known or can be computed.
665
666
 New Conway polynomials provided by John Bray and Kate Minola have been
667
added.
668
669
 The ReadTest methods for strings (filenames) and streams now
670
automatically set the screen width (see SizeScreen (Reference:
671
SizeScreen)) to 80 before the tests, and reset it afterwards.
672
673
 Now a few more checks are done during the configure phase of compiling
674
for future use of some I/O functions of the C-library in a package.
675
Also the path to the GAP binaries for the GAP compiler is now handled
676
via autoconf. Finally, now autoconf version 2.59 is used.
677
678
Fixed bugs which could produce wrong results:
679
680
 Some technical errors in the functions for compressed vectors and
681
matrices which could lead to corruption of internal data structures
682
and so to crashes or conceivably to wrong results. [Reported by Roman
683
Schmied]
684
685
 A potential problem in the generic method for the undocumented
686
operation DirectFactorsOfGroup: It was silently assumed that
687
NormalSubgroups (Reference: NormalSubgroups) delivers the trivial
688
subgroup as first and the whole group as last entry of the resulting
689
list.
690
691
 The code for sublists of compressed vectors created by vec{range} may
692
write one byte beyond the space allocated for the new vector,
693
overwriting part of the next object in the workspace. Thanks to Jack
694
Schmidt for narrowing down the problem.
695
696
 Given a class function object of value zero, an Arithmetic Operations
697
for Class Functions (Reference: Arithmetic Operations for Class
698
Functions) method for a class function erroneously did not return
699
fail. [Reported by Jack Schmidt]
700
701
 The Arithmetic Operations for Class Functions (Reference: Arithmetic
702
Operations for Class Functions) method for a class function
703
erroneously returned a finite number if one of the values was nonreal,
704
not a cyclotomic integer, and had norm 1.
705
706
 Two missing perfect groups were added, and the permutation degree
707
lowered on the perfect groups with the largest degrees. [Reported by
708
Jack Schmidt]
709
710
 When a character table was displayed with Printing Character Tables
711
(Reference: Printing Character Tables), the centralizer order
712
displayed for the first class shown was not correct if it did not
713
involve all prime divisors of the group. [Reported by Jack Schmidt]
714
715
 The first argument of the function VectorSpace (Reference:
716
VectorSpace) must be a field. This is checked from now on. [Reported
717
by Laurent Bartholdi]
718
719
 Up to now, it was possible to create a group object from a semigroup
720
of cyclotomics using AsGroup (Reference: AsGroup), although groups of
721
cyclotomics are not admissible. [Reported by Alexander Konovalov]
722
723
 The documentation of CharacteristicPolynomial(F,mat) was ambiguous if
724
FieldOfMatrix(mat) <= F < DefaultFieldOfMatrix(mat). In particular,
725
the result was representation dependent. This was fixed by introducing
726
a second field which specifies the vector space which mat acts upon.
727
[Reported by Jack Schmidt]
728
729
 AssociatedReesMatrixSemigroupOfDClass produced an incorrect sandwich
730
matrix for the semigroup created. This matrix is an attribute set when
731
creating the Rees matrix semigroup but is not used for creating the
732
semigroup. The incorrect result was returned when SandwichMatrix was
733
called. [Reported by Nelson Silva and Joao Araujo]
734
735
 The literal "compiled" was given an incorrect length. The kernel was
736
then unable to find compiled library code as the search path was
737
incorrect. Also the documentation example had an error in the path
738
used to invoke the gac compiler.
739
740
 The twisting group in a generic wreath product might have had
741
intransitive action. [Reported by Laurent Bartholdi]
742
743
 There was an arithmetic bug in the polynomial reduction code.
744
745
Fixed bugs which could lead to crashes:
746
747
 Bug 1 in the list of fixed bugs which could lead to wrong results
748
could also potentially lead to crashes.
749
750
Other fixed bugs:
751
752
 The matrices of invariant forms stored as values of the attributes
753
InvariantBilinearForm (Reference: InvariantBilinearForm),
754
InvariantQuadraticForm (Reference: InvariantQuadraticForm), and
755
InvariantSesquilinearForm (Reference: InvariantSesquilinearForm), for
756
matrix groups over finite fields, are now in the (compressed) format
757
returned by ImmutableMatrix (Reference: ImmutableMatrix).
758
759
 String now returns an immutable string, by making a copy before
760
changing the argument.
761
762
 permutation^0 and permutation^1 were not handled with special code in
763
the kernel, hence were very slow for big permutations. [Reported by
764
Max Neunhöffer]
765
766
 Added code to cache the induced pcgs for an arbitrary parent pcgs.
767
(This code was formerly part of the CRISP package.)
768
769
 This fix consists of numerous changes to improve support for direct
770
products, including: - new methods for PcgsElementaryAbelianSeries,
771
PcgsChiefSeries, ExponentsOfPcElement, DepthOfPcElement for direct
772
products - fixed EnumeratorOfPcgs to test for membership first - new
773
methods for membership test in groups which have an induced pcgs -
774
added GroupOfPcgs attribute to pcgs in various methods - fixed
775
declarations of PcgsElementaryAbelianSeries, PcgsChiefSeries (the
776
declared argument was a pcgs, not a group) [Reported by Roman Schmied]
777
778
 Corrected a term ordering problem encountered by the basis
779
construction code for finite dimensional vector spaces of multivariate
780
rational functions. [Reported by Jan Draisma]
781
782
 When the factor of a finite dimensional group ring by an ideal was
783
formed, a method intended for free algebras modulo relations was used,
784
and the returned factor algebra could be used for (almost) nothing.
785
[Reported by Heiko Dietrich]
786
787
 Up to now, PowerMap (Reference: PowerMap) ran into an error when one
788
asked for the n-th power map where n was not a small integer. This
789
happened in some GAP library functions if the exponent of the
790
character table in question was not a small integer.
791
792
 Up to now, the test whether a finite field element was contained in a
793
group of finite field elements ran into an error if the element was
794
not in the field generated by the group elements. [Reported by Heiko
795
Dietrich]
796
797
 Conjugacy classes of natural (special) linear groups are now always
798
returned with trivial class first.
799
800
 Up to now, it could happen that CheckFixedPoints (Reference:
801
CheckFixedPoints) reduced an entry in its second argument to a list
802
containing only one integer but did not replace the list by that
803
integer; according to the conventions, this replacement should be
804
done.
805
806
 The functions PrintTo and AppendTo did not work correctly for streams.
807
[Reported by Marco Costantini]
808
809
 The function Basis did not return a value when it was called with the
810
argument Rationals. [Reported by Klaus Lux]
811
812
 For certain matrix groups, the function StructureDescription raised an
813
error message. The reason for this was that a trivial method for
814
IsGeneralLinearGroup for matrix groups in lib/grpmat.gi which is
815
ranked higher than the nontrivial method for generic groups in
816
lib/grpnames.gi called the operation IsNaturalGL, for which there was
817
no nontrivial method available. [Reported by Nilo de Roock]
818
819
 Action on sets of length 1 was not correctly handled. [Reported by
820
Mathieu Dutour]
821
822
 Now WriteByte admits writing zero characters to all streams. [Reported
823
by Marco Costantini]
824
825
 The conjugacy test for subgroups tests for elementary abelian regular
826
normal subgroup (EARNS) conjugacy. The fix will catch this in the case
827
that the second group has no EARNS. [Reported by Andrew Johnson]
828
829
 So far, the UNIX installation didn't result in a correct gap.sh if the
830
installation path contained space characters. Now it should handle
831
this case correctly, as well as other unusual characters in path names
832
(except for double quotes).
833
834
835
6.7 GAP 4.4 Update 8 (September 2006)
836
837
New or improved functionality:
838
839
 A function Positions (Reference: Positions) with underlying operation
840
PositionsOp, which returns the list of all positions at which a given
841
object appears in a given list.
842
843
 LogFFE (Reference: LogFFE) now returns fail when the element is not a
844
power of the base.
845
846
 It is now allowed to continue long integers, strings or identifiers by
847
ending a line with a backslash or with a backslash and carriage return
848
character. So, files with GAP code and DOS/Windows-style line breaks
849
are now valid input on all architectures.
850
851
 The command line for starting the session and the system environment
852
are now available in GAPInfo.SystemCommandLine and
853
GAPInfo.SystemEnvironment.
854
855
 Names of all bound global variables and all component names are
856
available on GAP level.
857
858
 Added a few new Conway polynomials computed by Kate Minola and John
859
Bray.
860
861
 There is a new concept of random sources, see IsRandomSource
862
(Reference: IsRandomSource), which provides random number generators
863
which are independent of each other. There is kernel code for the
864
Mersenne twister random number generator (based on the code by Makoto
865
Matsumoto distributed at
866
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html). It provides
867
fast 32-bit pseudorandom integers with a period of length 2^19937-1
868
and a 623-dimensional equidistribution. The library methods for random
869
elements of lists and for random (long) integers are using the
870
Mersenne twister now.
871
872
 In line editing mode (usual input mode without -n option) in lines
873
starting with gap> , >  or brk>  this beginning part is immediately
874
removed. This is a convenient feature that allows one to cut and paste
875
input lines from other sessions or from manual examples into the
876
current session.
877
878
Fixed bugs which could produce wrong results:
879
880
 The function Decomposition (Reference: Decomposition) returned
881
coefficient vectors also in certain situations where in fact no
882
decomposition exists. This happened only if the matrix entered as the
883
first argument contained irrational values and a row in the matrix
884
entered as the second argument did not respect the algebraic conjugacy
885
relations between the columns of the first argument. So there was no
886
problem for the usual cases that the two matrices are integral or that
887
they are lists of Brauer characters. [Reported by Jürgen Müller]
888
889
 PC group homomorphisms can claim a wrong kernel after composition.
890
[Reported by Serge Bouc]
891
892
 The return value of OctaveAlgebra (Reference: OctaveAlgebra) had an
893
inconsistent defining structure constants table for the case of
894
coefficients fields not containing the integer zero. [Reported by
895
Gábor Nagy]
896
897
 The manual guarantees that a conjugator automorphism has a conjugating
898
element in the group if possible. This was not guaranteed.
899
900
 StabChain (Reference: StabChain for a group (and a record)) for
901
symmetric groups gave a wrong result if fixed points were prescribed
902
for base.
903
904
 Contrary to what is documented the function POW_OBJ_INT returned an
905
immutable result for POW_OBJ_INT(m,1) for a mutable object m. This is
906
triggered by the code m^1.
907
908
 PseudoRandom (Reference: PseudoRandom) for a group had a problem if
909
the group had lots of equal generators. The produced elements were
910
extremely poorly distributed in that case. This is now fixed for the
911
case that elements of the group can easily be sorted.
912
913
 Fixed the bug that the type of a boolean list (see More about Boolean
914
Lists (Reference: More about Boolean Lists)) was computed wrongly: The
915
type previously had IS_PLIST_REP instead of IS_BLIST_REP in its filter
916
list.
917
918
 Orbits (Reference: Orbits) did not respect a special PositionCanonical
919
(Reference: PositionCanonical) method for right transversals.
920
[Reported by Steve Costenoble]
921
922
 Wrong results for GcdInt (Reference: GcdInt) for some arguments on 64
923
bit systems only. [Reported by Robert Morse]
924
925
 When prescribing a subgroup to be included, the low index algorithm
926
for fp groups sometimes returned subgroups which are in fact
927
conjugate. (No subgroups are missing.) [Reported by Ignaz Soroko]
928
929
Fixed bugs which could lead to crashes:
930
931
 The command line option -x allowed arguments > 256 which can then
932
result in internal buffers overflowing. Now bigger numbers in the
933
argument are equivalent to -x 256. [Reported by Michael Hartley]
934
935
Other fixed bugs:
936
937
 Two special methods for the operation CompositionMapping2 (Reference:
938
CompositionMapping2) were not correct, such that composing (and
939
multiplying) certain group homomorphisms did not work. [Reported by
940
Peter Mayr]
941
942
 In the definition of FrobeniusCharacterValue (Reference:
943
FrobeniusCharacterValue), it had been stated erroneously that the
944
value must lie in the field of p^n-th roots of unity; the correct
945
condition is that the value must lie in the field of (p^n-1)-th roots
946
of unity. [Reported by Jack Schmidt]
947
948
 The function DirectProduct (Reference: DirectProduct) failed when one
949
of the factors was known to be infinite.
950
951
 For a linear action homomorphism PreImageElm was very slow because
952
there was no good method to check for injectivity, which is needed for
953
nearly all good methods for PreImageElm. This change adds such a new
954
method for IsInjective. [Reported by Akos Seress]
955
956
 Rare errors in the complement routine for permutation groups.
957
958
 Blocks code now uses jellyfish-style random elements to avoid bad
959
Schreier trees.
960
961
 A method for IsPolycyclicGroup (Reference: IsPolycyclicGroup) has been
962
added. Such a method was missing so far.
963
964
 Corrected EpimorphismSchurCover (Reference: EpimorphismSchurCover) to
965
handle the trivial group correctly. Added new methods that follow
966
immediately from computing the Schur Cover of a group. The attribute
967
Epicentre (Reference: Epicentre), the operations
968
NonabelianExteriorSquare (Reference: NonabelianExteriorSquare) and
969
EpimorphismNonabelianExteriorSquare (Reference:
970
EpimorphismNonabelianExteriorSquare), and the property IsCentralFactor
971
(Reference: IsCentralFactor) are added to the library with
972
documentation and references.
973
974
 Display the correct expression in a call stack trace if an operation
975
was called somewhere up due to the evaluation of a unary or binary
976
operation.
977
978
 Made StripMemory an operation rather than a global function. Added
979
ForgetMemory operation.
980
981
 Adjust things slightly to make later conversion to new
982
vectors/matrices easier. Nothing of this should be visible.
983
984
 Corrected some details in the documentation of the GAP language.
985
[Reported by Alexander Konovalov]
986
987
 Now PositionSorted (Reference: PositionSorted) is much faster on long
988
mutable plain lists. (The former operation is substituted by a
989
function and a new operation PositionSortedOp.) [Reported by Silviu
990
Radu]
991
992
 Now it is possible to switch repeated warnings off when working with
993
iterative polynomial rings.
994
995
996
6.8 GAP 4.4 Update 9 (November 2006)
997
998
Fixed bugs which could produce wrong results:
999
1000
 The methods of ReadByte (Reference: ReadByte) for reading from files
1001
or terminals returned wrong results for characters in the range
1002
[128..255]. [Reported by Yevgen Muntyan]
1003
1004
Other fixed bugs:
1005
1006
 A method for the operation PseudoRandom (Reference: PseudoRandom) did
1007
not succeed.
1008
1009
 A fix for Orbits with a set of points as a seed.
1010
1011
 Added a generic method such that Positions (Reference: Positions)
1012
works with all types of lists.
1013
1014
 Fixed a problem in choosing the prime in the Dixon-Schneider
1015
algorithm. [Reported by Toshio Sumi]
1016
1017
New or improved functionality:
1018
1019
 ReducedOrdinary was used in the manual, but was not documented, being
1020
a synonym for the documented ReducedCharacters. Changed manual
1021
examples to use the latter form. [Reported by Vahid Dabbaghian]
1022
1023
1024
6.9 GAP 4.4 Update 10 (October 2007)
1025
1026
New or improved functionality:
1027
1028
 Files in the cnf directory of the GAP distribution are now archived as
1029
binary files. Now GAP can be installed with UNIX or with WINDOWS style
1030
line breaks on any system and should work without problems.
1031
1032
 Since large finite fields are available, some restrictions in the code
1033
for computing irreducible modules over finite fields are no longer
1034
necessary. (They had been introduced in order to give better error
1035
messages.)
1036
1037
 Made PositionSublist faster in case the search string does not contain
1038
repetitive patterns.
1039
1040
 The function MakeImmutable now returns its argument.
1041
1042
 Dynamically loaded modules now work on Mac OS X. As a consequence,
1043
this allows to work with the Browse, EDIM and IO packages on Mac OS X.
1044
1045
 Introduced ViewObj and PrintObj methods for algebraic number fields.
1046
Made them applicable to AlgebraicExtension by adding the property
1047
IsNumberField in the infinite field case.
1048
1049
 The function CharacterTableRegular (Reference: CharacterTableRegular)
1050
is documented now.
1051
1052
 The function ScalarProduct (Reference: ScalarProduct for characters)
1053
now accepts also Brauer characters as arguments.
1054
1055
 The function QuaternionAlgebra (Reference: QuaternionAlgebra) now
1056
accepts also a list of field elements instead of a field. Also, now
1057
the comparison of return values (w.r.t. equality, containment) yields
1058
true if the parameters coincide and the ground fields fit.
1059
1060
 The function RemoveCharacters (Reference: RemoveCharacters) is now
1061
documented.
1062
1063
 Lists in GAP sometimes occupy memory for possible additional entries.
1064
Now plain lists and strings read by GAP and the lists returned by List
1065
(Reference: Lists) only occupy the memory they really need. For more
1066
details see the documentation of the new function EmptyPlist
1067
(Reference: EmptyPlist).
1068
1069
 There are some new Conway polynomials in characteristic 2 and 3
1070
provided by Kate Minola.
1071
1072
 A new operation MemoryUsage determines the memory usage in bytes of an
1073
object and all its subobjects. It does not consider families and types
1074
but handles arbitrary self-referential structures of objects.
1075
1076
Fixed bugs which could produce wrong results:
1077
1078
 When forming the semidirect product of a matrix group with a vector
1079
space over a non-prime field the embedding of the vector space gave a
1080
wrong result. [Reported by anvita21]
1081
1082
 DefaultRing failed for constant polynomials over nonprime fields.
1083
[Reported by Stefan Kohl]
1084
1085
 The method in ffeconway.gi that gets coefficients WRT to the canonical
1086
basis of the field from the representation is only correct if the
1087
basis is over the prime field. Added a TryNextMethod if this is not
1088
the case. [Reported by Alla Detinko]
1089
1090
 Creating a large (>2^16) field over a non-prime subfield went
1091
completely wrong. [Reported by Jack Schmidt, from Alla Detinko]
1092
1093
 A method for Coefficients for Conway polynomial FFEs didn't check that
1094
the basis provided was the canonical basis of the RIGHT field.
1095
[Reported by Bettina Eick]
1096
1097
 An elementary abelian series was calculated wrongly. [Reported by N.
1098
Sieben]
1099
1100
 Orbits on sets of transformations failed.
1101
1102
 Wrong methods for GeneratorsOfRing (Reference: GeneratorsOfRing) and
1103
GeneratorsOfRingWithOne (Reference: GeneratorsOfRingWithOne) have been
1104
removed. These methods were based on the assumption that one can
1105
obtain a set of ring generators by taking the union of a known set of
1106
field generators, the set of the inverses of these field generators
1107
and {1}.
1108
1109
 The name of a group of order 117600 and degree 50 was incorrect in the
1110
Primitive Permutation Groups (Reference: Primitive Permutation Groups)
1111
Primitive Permutation Groups library. In particular, a group was
1112
wrongly labelled as PGL(2, 49).
1113
1114
 There was a possible error in SubgroupsSolvableGroup when computing
1115
subgroups within a subgroup.
1116
1117
 An error in 2-Cohomology computation for pc groups was fixed.
1118
1119
 IsConjugate used normality in a wrong supergroup
1120
1121
Fixed bugs which could lead to crashes:
1122
1123
 GAP crashed when the PATH environment variable was not set. [Reported
1124
by Robert F. Morse]
1125
1126
 GAP could crash when started with option -x 1. Now the number of
1127
columns is initialized with at least 2. [Reported by Robert F. Morse]
1128
1129
 After loading a saved workspace GAP crashed when one tried to slice a
1130
compressed vector over a field with 2 < q <= 256 elements, which had
1131
already existed in the saved workspace. [Reported by Laurent
1132
Bartholdi]
1133
1134
 FFECONWAY.WriteOverSmallestCommonField tripped up when the common
1135
field is smaller than the field over which some of the vector elements
1136
are written, because it did a test based on the degree of the element,
1137
not the field it is written over. [Reported by Thomas Breuer]
1138
1139
 Fixed the following error: When an FFE in the Conway polynomial
1140
representation actually lied in a field that is handled in the
1141
internal representation (eg GF(3)) and you tried to write it over a
1142
bigger field that is ALSO handled internally (eg GF(9)) you got an
1143
element written over the larger field, but in the Conway polynomial
1144
representation, which is forbidden. [Reported by Jack Schmidt]
1145
1146
 Attempting to compress a vector containing elements of a small finite
1147
field represented as elements of a bigger (external) field caused a
1148
segfault. [Reported by Edmund Robertson]
1149
1150
 GAP crashed when BlistList was called with a range and a list
1151
containing large integers or non-integers. [Reported by Laurent
1152
Bartholdi]
1153
1154
 GAP no longer crashes when OnTuples is called with a list that
1155
contains holes. [Reported by Thomas Breuer]
1156
1157
Other fixed bugs:
1158
1159
 Socle for the trivial group could produce an error message.
1160
1161
 DirectoryContents (Reference: DirectoryContents) ran into an error for
1162
immutable strings without trailing slash as argument. [Reported by
1163
Thomas Breuer]
1164
1165
 The functions IsInjective (Reference: IsInjective) and IsSingleValued
1166
(Reference: IsSingleValued) did not work for general linear mappings
1167
with trivial (pre)image. [Reported by Alper Odabas]
1168
1169
 Creating an enumerator for a prime field with more than 65536 elements
1170
ran into an infinite recursion. [Reported by Akos Seress]
1171
1172
 The performance of List, Filtered, Number, ForAll and ForAny if
1173
applied to non-internally represented lists was improved. Also the
1174
performance of iterators for lists was slightly improved.
1175
1176
 Finite field elements now know that they can be sorted easily which
1177
improves performance in certain lookups.
1178
1179
 A method for IsSubset (Reference: IsSubset) was missing for the case
1180
that exactly one argument is an inhomogeneous list. [Reported by
1181
Laurent Bartholdi]
1182
1183
 Long integers in expressions are now printed (was not yet
1184
implemented). [Reported by Thomas Breuer]
1185
1186
 Fixed kernel function for printing records.
1187
1188
 New C library interfaces (e.g., to ncurses in the Browse package) need
1189
some more memory to be allocated with malloc. The default value of GAP
1190
-a option is now 2m>.
1191
1192
 Avoid warnings about pointer types by newer gcc compilers.
1193
1194
 IsBound(l[pos]) was failing for a large integer pos only when coded
1195
(e.g. in a loop or function body).
1196
1197
 ZmodpZObj is now a synonym for ZmodnZObj such that from now on such
1198
objects print in a way that can be read back into GAP.
1199
1200
 The outdated note that binary streams are not yet implemented has been
1201
removed.
1202
1203
1204
6.10 GAP 4.4 Update 11 (December 2008)
1205
1206
Fixed bugs which could produce wrong results:
1207
1208
 MemoryUsage (Reference: MemoryUsage) on objects with no subobjects
1209
left them in the cache and thus reported 0 in subsequent calls to
1210
MemoryUsage for the same object. [Reported by Stefan Kohl]
1211
1212
 Irr (Reference: Irr) might be missing characters. [Reported by Angel
1213
del Rio]
1214
1215
 Up to now, it was allowed to call the function
1216
FullMatrixAlgebraCentralizer (Reference: FullMatrixAlgebraCentralizer)
1217
with a field and a list of matrices such that the entries of the
1218
matrices were not contained in the field; in this situation, the
1219
result did not fit to the documentation. Now the entries of the
1220
matrices are required to lie in the field, if not then an error is
1221
signaled.
1222
1223
 For those finite fields that are regarded as field extensions over
1224
non-prime fields (one can construct such fields with AsField
1225
(Reference: AsField)), the function DefiningPolynomial (Reference:
1226
DefiningPolynomial) erroneously returned a polynomial w.r.t. the
1227
extension of the prime field. [Reported by Stefan Kohl]
1228
1229
 Since the release of GAP 4.4.10, the return values of the function
1230
QuaternionAlgebra (Reference: QuaternionAlgebra) were not consistent
1231
w.r.t. the attribute GeneratorsOfAlgebra (Reference:
1232
GeneratorsOfAlgebra); the returned list could have length four or
1233
five. Now always the list of elements of the canonical basis is
1234
returned.
1235
1236
 MonomialGrevlexOrdering (Reference: MonomialGrevlexOrdering)
1237
calculated a wrong ordering in certain cases. [Reported by Paul Smith]
1238
1239
 The (GAP kernel) method for the operation IntersectSet (Reference:
1240
IntersectSet) for ranges had two bugs, which could yield a result
1241
range with either too few or too many elements. As a consequence, for
1242
example the Intersection (Reference: Intersection) results for ranges
1243
could be wrong. [Reported by Matthew Fayers]
1244
1245
 Fixed a bug in the short-form display of elements of larger finite
1246
fields, a bug in some cross-field conversions and some inefficiencies
1247
and a missing method in the LogFFE (Reference: LogFFE) code. [Reported
1248
by Jia Huang]
1249
1250
 In rare cases SmithNormalFormIntegerMatTransforms (Reference:
1251
SmithNormalFormIntegerMatTransforms) returned a wrong normal form (the
1252
version without transforming matrices did not have this problem). This
1253
is fixed. [Reported by Alexander Hulpke]
1254
1255
 The variant of the function StraightLineProgram (Reference:
1256
StraightLineProgram for a list of lines (and the number of
1257
generators)) that takes a string as its first argument returned wrong
1258
results if the last character of this string was a closing bracket.
1259
1260
 The code for central series in a permutation group used too tight a
1261
bound and thus falsely return a nilpotent permutation group as
1262
non-nilpotent.
1263
1264
Fixed bugs which could lead to crashes:
1265
1266
 Under certain circumstances the kernel code for position in blists
1267
would access a memory location just after the end of the blist. If
1268
this location was not accessible, a crash could result. This was
1269
corrected and the code was cleaned up. [Reported by Alexander Hulpke]
1270
1271
Other fixed bugs:
1272
1273
 The function IsomorphismTypeInfoFiniteSimpleGroup (Reference:
1274
IsomorphismTypeInfoFiniteSimpleGroup) can be called with a positive
1275
integer instead of a group, and then returns information about the
1276
simple group(s) of this order. (This feature is currently
1277
undocumented.) For the argument 1, however, it ran into an infinite
1278
loop.
1279
1280
 A lookup in an empty dictionary entered a break loop. Now returns
1281
fail. [Reported by Laurent Bartholdi]
1282
1283
 The c++ keyword and can no longer be used as a macro parameter in the
1284
kernel. [Reported by Paul Smith]
1285
1286
 The operation KernelOfMultiplicativeGeneralMapping (Reference:
1287
KernelOfMultiplicativeGeneralMapping) has methods designed to handle
1288
maps between permutation groups in a two-step approach, but did not
1289
reliably trigger the second step. This has now been fixed, preventing
1290
a slow infinite loop repeating the first step. This was normally only
1291
seen as part of a larger calculation.
1292
1293
 There were two methods for the operation Intersection2 (Reference:
1294
Intersection2) which have implicitly assumed that finiteness of a
1295
collection can always be decided. Now, these methods check for
1296
IsFinite (Reference: IsFinite) and CanComputeSize (Reference:
1297
CanComputeSize) prior to calling IsFinite (Reference: IsFinite).
1298
1299
 Made error message in case of corrupted help book information
1300
(manual.six file) shorter and more informative. [Reported by Alexander
1301
Hulpke]
1302
1303
 GAP cannot call methods with more than six arguments. Now the
1304
functions NewOperation (Reference: NewOperation), DeclareOperation
1305
(Reference: DeclareOperation), and InstallMethod (Reference:
1306
InstallMethod) signal an error if one attempts to declare an operation
1307
or to install a method with more than six arguments.
1308
1309
 Up to now, IsOne (Reference: IsOne) had a special method for general
1310
mappings, which was much worse than the generic method; this special
1311
method has now been removed.
1312
1313
 When printing elements of an algebraic extension parentheses around
1314
coefficients were missing. [Reported by Maxim Hendriks]
1315
1316
New or improved functionality:
1317
1318
 Make dynamic loading of modules possible on CYGWIN using a DLL based
1319
approach. Also move to using autoconf version 2.61.
1320
1321
 One can now call Basis (Reference: Basis), Iterator (Reference:
1322
Iterator) etc. with the return value of the function
1323
AlgebraicExtension (Reference: AlgebraicExtension).
1324
1325
 The function FrobeniusCharacterValue (Reference:
1326
FrobeniusCharacterValue) returned fail for results that require a
1327
finite field with more than 65536 elements. Meanwhile GAP can handle
1328
larger finite fields, so this restriction was removed. (It is still
1329
possible that FrobeniusCharacterValue (Reference:
1330
FrobeniusCharacterValue) returns fail.)
1331
1332
 Methods for testing membership in general linear groups and special
1333
linear groups over the integers have been added.
1334
1335
 Methods for String (Reference: String) and ViewString for full row
1336
modules have been added. Further, a default method for IsRowModule
1337
(Reference: IsRowModule) has been added, which returns false for
1338
objects which are not free left modules.
1339
1340
 A ViewString method for objects with name has been added.
1341
1342
 The method for View (Reference: View) for polynomial rings has been
1343
improved, and methods for String (Reference: String) and ViewString
1344
for polynomial rings have been added.
1345
1346
 Binomial (Reference: Binomial) now works with huge n.
1347
1348
 The function InducedClassFunctionsByFusionMap (Reference:
1349
InducedClassFunctionsByFusionMap) is now documented.
1350
1351
 The return values of the function QuaternionAlgebra (Reference:
1352
QuaternionAlgebra) now store that they are division rings (if optional
1353
parameters are given then of course ths depends on these parameters).
1354
1355
1356
6.11 GAP 4.4 Update 12 (December 2008)
1357
1358
Fixed bugs which could lead to crashes:
1359
1360
 A bug whereby leaving an incomplete statement on a line (for instance
1361
typing while and then return) when prompt colouring was in use could
1362
lead to GAP crashing.
1363
1364
Other fixed bugs:
1365
1366
 A bug which made the command-line editor unusable in a 64-bit version
1367
of GAP on Mac OS X.
1368
1369
1370