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
4 Changes between GAP 4.5 and GAP 4.6
3
4
This chapter lists most important changes between GAP 4.5.7 and GAP 4.6.2
5
(i.e. between the last release of GAP 4.5 and the first public release of
6
GAP 4.6). It also contains information about subsequent update releases for
7
GAP 4.6.
8
9
10
4.1 GAP 4.6.2 (February 2013)
11
12
13
4.1-1 Changes in the core GAP system introduced in GAP 4.6
14
15
Improved and extended functionality:
16
17
 It is now possible to declare a name as an operation with two or more
18
arguments (possibly several times) and THEN declare it as an
19
attribute. Previously this was only possible in the other order. This
20
should make the system more independent of the order in which packages
21
are loaded.
22
23
 Words in fp groups are now printed in factorised form if possible and
24
not too time-consuming, i.e. a*b*a*b*a*b will be printed as (a*b)^3.
25
26
 Added methods to calculate Hall subgroups in nonsolvable groups.
27
28
 Added a generic method for IsPSolvable (Reference: IsPSolvable) and a
29
better generic method for IsPNilpotent (Reference: IsPNilpotent) for
30
groups.
31
32
 Improvements to action homomorphisms: image of an element can use
33
existing stabiliser chain of the image group (to reduce the number of
34
images to compute), preimages under linear/projective action
35
homomorphisms use linear algebra to avoid factorisation.
36
37
 To improve efficiency, additional code was added to make sure that the
38
HomePcgs of a permutation group is in IsPcgsPermGroupRep
39
representation in more cases.
40
41
 Added an operation SortBy (Reference: SortBy) with arguments being a
42
function f of one argument and a list l to be sorted in such a way
43
that l(f[i]) <= l(f[i+1]).
44
45
 Added a kernel function MEET_BLIST which returns true if the two
46
boolean lists have true in any common position and false otherwise.
47
This is useful for representing subsets of a fixed set by boolean
48
lists.
49
50
 When assigning to a position in a compressed FFE vector GAP now checks
51
to see if the value being assigned can be converted into an internal
52
FFE element if it isn't one already. This uses new attribute
53
AsInternalFFE (Reference: AsInternalFFE), for which methods are
54
installed for internal FFEs, Conway FFEs and ZmodpZ objects.
55
56
 Replaced ViewObj (Reference: ViewObj) method for fields by ViewString
57
(Reference: ViewString) method to improve the way how polynomial rings
58
over algebraic extenstions of fields are displayed.
59
60
 Made the info string (optional 2nd argument to InstallImmediateMethod
61
(Reference: InstallImmediateMethod)) behave similarly to the info
62
string in InstallMethod (Reference: InstallMethod). In particular,
63
TraceImmediateMethods (Reference: TraceImmediateMethods) now always
64
prints the name of the operation.
65
66
 Syntax errors such as Unbind(x,1) had the unhelpful property that x
67
got unbound before the syntax error was reported. A specific check was
68
added to catch this and similar cases a little earlier.
69
70
 Allow a GAPARGS parameter to the top-level GAP Makefile to pass extra
71
arguments to the GAP used for manual building.
72
73
 Added an attribute UnderlyingRingElement (Reference:
74
UnderlyingRingElement) for Lie objects.
75
76
 The function PrimeDivisors (Reference: PrimeDivisors) now became an
77
attribute. [suggested by Mohamed Barakat]
78
79
 Added an operation DistancePerms (Reference: DistancePerms) with a
80
kernel method for internal permutations and a generic method.
81
82
 Added a method for Subfields (Reference: Subfields) to support large
83
finite fields. [reported by Inneke van Gelder]
84
85
Fixed bugs which could lead to crashes:
86
87
 The extremely old DEBUG_DEADSONS_BAGS compile-time option has not
88
worked correctly for many years and indeed crashes GAP. The type of
89
bug it is there to detect has not arisen in many years and we have
90
certainly not used this option, so it has been removed. [Reported by
91
Volker Braun]
92
93
Other fixed bugs:
94
95
 Scanning of floating point literals collided with iterated use of
96
integers as record field elements in expressions like r.1.2.
97
98
 Fixed two potential problems in NorSerPermPcgs, one corrupting some
99
internal data and one possibly mixing up different pcgs.
100
101
 Fixed a performance problem with NiceMonomorphism (Reference:
102
NiceMonomorphism). [reported by John Bamberg]
103
104
 Fixed a bug in ReadCSV (Reference: ReadCSV) that caused some .csv
105
files being parsed incorrectly.
106
107
No longer supported:
108
109
 The file lib/consistency.g, which contained three undocumented
110
auxiliary functions, has been removed from the library. In addition,
111
the global record Revision is now deprecated, so there is no need to
112
bind its components in GAP packages.
113
114
115
4.1-2 New and updated packages since GAP 4.5.4
116
117
At the time of the release of GAP 4.5 there were 99 packages redistributed
118
with GAP. The first public release of GAP 4.6 contains 106 packages.
119
120
The new packages that have been added to the redistribution since the
121
release of GAP 4.5.4 are:
122
123
 AutoDoc package by S. Gutsche, providing tools for automated
124
generation of GAPDoc manuals.
125
126
 Congruence package by A. Konovalov, which provides functions to
127
construct various canonical congruence subgroups in SL_2(ℤ), and also
128
intersections of a finite number of such subgroups, implements the
129
algorithm for generating Farey symbols for congruence subgroups and
130
uses it to produce a system of independent generators for these
131
subgroups.
132
133
 Convex package by S. Gutsche, which provides structures and algorithms
134
for convex geometry.
135
136
 Float package by L. Bartholdi, which extends GAP floating-point
137
capabilities by providing new floating-point handlers for
138
high-precision real, interval and complex arithmetic using MPFR, MPFI,
139
MPC or CXSC external libraries. It also contains a very
140
high-performance implementation of the LLL (Lenstra-Lenstra-Lovász)
141
lattice reduction algorithm via the external library FPLLL.
142
143
 PolymakeInterface package by T. Baechler and S. Gutsche, providing a
144
link to the callable library of the polymake system
145
(http://www.polymake.org).
146
147
 ToolsForHomalg package by M. Barakat, S. Gutsche and M.
148
Lange-Hegermann, which provides some auxiliary functionality for the
149
homalg project (http://homalg.math.rwth-aachen.de/).
150
151
 ToricVarieties package by S. Gutsche, which provides data structures
152
to handle toric varieties by their commutative algebra structure and
153
by their combinatorics.
154
155
Furthermore, some packages have been upgraded substantially since the
156
GAP 4.5.4 release:
157
158
 Starting from 2.x.x, the functionality for iterated monodromy groups
159
has been moved from the FR package by L. Bartholdi to a separate
160
package IMG (currently undeposited, available from
161
https://github.com/laurentbartholdi/img). This completely removes the
162
dependency of FR on external library modules, and should make its
163
installation much easier.
164
165
166
4.2 GAP 4.6.3 (March 2013)
167
168
Improved functionality:
169
170
 Several changes were made to IdentityMat (Reference: IdentityMat) and
171
NullMat (Reference: NullMat). First off, the documentation was changed
172
to properly state that these functions support arbitrary rings, and
173
not just fields. Also, more usage examples were added to the manual.
174
175
For NullMat, it is now also always possible to specify a ring element
176
instead of a ring, and this is documented. This matches existing
177
IdentityMat behavior, and partially worked before (undocumented), but
178
in some cases could run into error or infinite recursion.
179
180
In the other direction, if a finite field element, IdentityMat now
181
really creates a matrix over the smallest field containing that
182
element. Previously, a matrix over the prime field was created
183
instead, contrary to the documentation.
184
185
Furthermore, IdentityMat over small finite fields is now substantially
186
faster when creating matrices of large dimension (say a thousand or
187
so).
188
189
Finally, MutableIdentityMat (Reference: MutableIdentityMat) and
190
MutableNullMat (Reference: MutableNullMat) were explicitly declared
191
obsolete (and may be removed in GAP 4.7). They actually were
192
deprecated since GAP 4.1, and their use discouraged by the manual.
193
Code using them should switch to IdentityMat (Reference: IdentityMat)
194
respectively NullMat (Reference: NullMat).
195
196
 Two new PerfectResiduum (Reference: PerfectResiduum) methods were
197
added for solvable and perfect groups, handling these cases optimally.
198
Moreover, the existing generic method was improved by changing it to
199
use DerivedSeriesOfGroup (Reference: DerivedSeriesOfGroup).
200
Previously, it would always compute the derived series from scratch
201
and then throw away the result.
202
203
 A new MinimalGeneratingSet (Reference: MinimalGeneratingSet) method
204
for groups handled by a nice monomorphisms was added, similar to the
205
existing SmallGeneratingSet (Reference: SmallGeneratingSet) method.
206
This is useful if the nice monomorphism is already mapping into a pc
207
or pcp group.
208
209
 Added a special method for DerivedSubgroup (Reference:
210
DerivedSubgroup) if the group is known to be abelian.
211
212
Fixed bugs:
213
214
 Fixed a bug in PowerModInt (Reference: PowerModInt) computing r^e mod
215
m in a special case when e=0 and m=0. [Reported by Ignat Soroko]
216
217
 CoefficientsQadic (Reference: CoefficientsQadic) now better checks its
218
arguments to avoid an infinite loop when being asked for a q-adic
219
representation for q=1. [Reported by Ignat Soroko]
220
221
 Methods for SylowSubgroupOp (see SylowSubgroup (Reference:
222
SylowSubgroup)) for symmetric and alternating group did not always set
223
IsPGroup (Reference: IsPGroup) and PrimePGroup (Reference:
224
PrimePGroup) for the returned Sylow subgroup.
225
226
 Display of matrices consisting of Conway field elements (which are
227
displayed as polynomials) did not print constant 1 terms.
228
229
 Added an extra check and a better error message in the method to
230
access natural generators of domains using the . operator (see
231
GeneratorsOfDomain (Reference: GeneratorsOfDomain)).
232
233
 Trying to solve the word problem in an fp group where one or more
234
generators has a name of more than one alphabetic character led to a
235
break loop.
236
237
 Provided the default method for AbsoluteIrreducibleModules (Reference:
238
AbsoluteIrreducibleModules) as a temporary workaround for the problem
239
which may cause returning wrong results or producing an error when
240
being called for a non-prime field.
241
242
 A bug in the GAP kernel caused RNamObj to error out when called with a
243
string that had the IsSSortedList (Reference: IsSSortedList) property
244
set (regardless of whether it was set to true or false). This in turn
245
would lead to strange (and inappropriate) errors when using such a
246
string to access entries of a record.
247
248
 GAP can store vectors over small finite fields (size at most 256) in a
249
special internal data representation where each entry of the vector
250
uses exactly one byte. Due to an off-by-one bug, the case of a field
251
with exactly 256 elements was not handled properly. As a result, GAP
252
failed to convert a vector to the special data representation, which
253
in some situations could lead to a crash. The off-by-one error was
254
fixed and now vectors over GF(256) work as expected.
255
256
 A bug in the code for accessing sublist via the list{poss} syntax
257
could lead to GAP crashing. Specifically, if the list was a compressed
258
vector over a finite field, and the sublist syntax was nested, as in
259
vec{poss1}{poss2}. This now correctly triggers an error instead of
260
crashing.
261
262
New packages added for the redistribution with GAP:
263
264
 SpinSym package by L. Maas, which contains Brauer tables of Schur
265
covers of symmetric and alternating groups and provides some related
266
functionalities.
267
268
269
4.3 GAP 4.6.4 (April 2013)
270
271
New functionality:
272
273
 New command line option -O was introduced to disable loading obsolete
274
variables. This option may be used, for example, to check that they
275
are not used in a GAP package or one's own GAP code. For further
276
details see Reference: options and Reference: Replaced and Removed
277
Command Names.
278
279
Fixed bugs which could lead to incorrect results:
280
281
 Fixed the bug in NewmanInfinityCriterion (Reference:
282
NewmanInfinityCriterion) which may cause returning true instead of
283
false. [Reported by Lev Glebsky]
284
285
Fixed bugs which could lead to crashes:
286
287
 Fixed the kernel method for Remove (Reference: Remove) which did not
288
raise an error in case of empty lists, but corrupted the object. The
289
error message in a library method is also improved. [Reported by
290
Roberto Ràdina]
291
292
Fixed bugs that could lead to break loops:
293
294
 Fixed requirements in a method to multiply a list and an algebraic
295
element. [Reported by Sebastian Gutsche]
296
297
 Fixed a bug in NaturalCharacter (Reference: NaturalCharacter for a
298
group) entering a break loop when being called on a homomorphism whose
299
image is not a permutation group. [Reported by Sebastian Gutsche]
300
301
 Fixed a bug in ExponentsConjugateLayer (Reference:
302
ExponentsConjugateLayer) which occured, for example, in some calls of
303
SubgroupsSolvableGroup (Reference: SubgroupsSolvableGroup) [Reported
304
by Ramon Esteban-Romero]
305
306
 Fixed a problem with displaying function fields, e.g.
307
Field(Indeterminate(Rationals,"x")). [Reported by Jan Willem Knopper]
308
309
 Fixed two bugs in the code for NaturalHomomorphismByIdeal (Reference:
310
NaturalHomomorphismByIdeal) for polynomial rings. [Reported by Martin
311
Leuner]
312
313
 Added missing method for String (Reference: String) for -infinity.
314
315
 Fixed the bug with ONanScottType (Reference: ONanScottType) not
316
recognising product action properly in some cases.
317
318
 The method for SlotUsagePattern (Reference: SlotUsagePattern) for
319
straight line programs had a bug which triggered an error, if the
320
straight line program contained unnecessary steps.
321
322
323
4.4 GAP 4.6.5 (July 2013)
324
325
Improved functionality:
326
327
 TraceMethods (Reference: TraceMethods for operations) and
328
UntraceMethods (Reference: UntraceMethods for operations) now better
329
check their arguments and provide a sensible error message if being
330
called without arguments. Also, both variants of calling them are now
331
documented.
332
333
 Library methods for Sortex (Reference: Sortex) are now replaced by
334
faster ones using the kernel SortParallel (Reference: SortParallel)
335
functionality instead of making expensive zipped lists.
336
337
Fixed bugs which could lead to incorrect results:
338
339
 IntHexString (Reference: IntHexString) wrongly produced a large
340
integer when there were too many leading zeros. [Reported by Joe
341
Bohanon]
342
343
Fixed bugs that could lead to break loops:
344
345
 A bug that may occur in some cases while calling
346
TransitiveIdentification (Reference: TransitiveIdentification).
347
[Reported by Izumi Miyamoto]
348
349
 The new code for semidirect products of permutation groups, introduced
350
in GAP 4.6, had a bug which was causing problems for Projection
351
(Reference: Projection). [Reported by Graham Ellis]
352
353
354