Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

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

611052 views
1
\Chapter{Differences to XGAP 3}
2
3
This rather short chapter is intended for the user who knows {\XGAP} 3 well
4
and quickly wants to know what has changed. So it covers mainly those
5
parts, where existing code using {\XGAP} has to be changed. For the totally
6
new features and packages there are only a few references to the other
7
parts of the documentation.
8
9
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10
\Section{Concept}
11
12
There are two main changes in the concept. The first is the migration to
13
{\GAP4} with all the bells and whistles like object oriented design with
14
operations, methods and method selection via filters. {\XGAP4} is rewritten
15
nearly totally with these technologies. This should make the reusage of
16
code in the future easier. One can now use big parts of the code of {\XGAP}
17
for own structures by just replacing some methods via overloading.
18
19
The second change is that there is no longer any mathematical ``knowledge''
20
or algorithm in {\XGAP}. It is now only a front end and a graphical user
21
interface. All code for finitely presented groups resides now in the {\GAP}
22
library. This is a much cleaner concept and should make the management of
23
the source code easier. At the same time {\XGAP} has become a much more
24
generic program. Operations for subgroups are for example no longer hard
25
wired into {\XGAP} case by case but there is generic code which can be
26
adapted just by hacking a few tables.
27
28
These generalizations made some sacrifices necessary, because {\XGAP} does
29
no longer know anything about the mathematics it is displaying. It may for
30
example happen that {\XGAP} does no longer adapt its behaviour to the
31
amount of data that is known about some finitely presented groups. The
32
reason for this is, that the generic poset routines cannot know that the
33
vertices stand for groups at all. So sometimes one has to trigger the
34
comparison of subgroups of finitely presented groups manually (see section
35
"Compare Subgroups" for a description how to do this).
36
37
In the old {\GAP3} version of {\XGAP} there were three different programs
38
for the full subgroup lattice of a (finite) group (`GraphicLattice'), the
39
interactive partial subgroup lattice of a finite group
40
(`InteractiveLattice') and the interactive partial subgroup lattice of a
41
finitely presented group (`InteractiveFpLattice') respectively. Now there
42
is only one generic program to display subgroup lattices interactively
43
(`GraphicSubgroupLattice').
44
45
{\XGAP} can now handle subgroups of infinite index. They are either
46
placed in a ``finite size'' level or in an ``infinity'' level. See
47
"levelsintro" for details.
48
49
A new logging facility allows to automatically produce a protocol of
50
the actions the user performs via mouse clicks. This is convenient
51
because the normal {\GAP} command script contains no useful
52
information about the selected entries in the menus. See
53
"loggingfacility" for details.
54
55
There is a new layer to display generic posets that do not have to be
56
subgroup lattices. It can be used to display posets interactively very
57
easily. This is for example used in the new link to the C-MeatAxe written
58
by Michael Ringe. The code for this link is also included in {\XGAP4}.
59
60
Code for the display of graphic graphs is planned but not yet completed.
61
62
The user of {\XGAP} should not realize much of those changes (except of
63
course the name of the function to display a subgroup lattice). The
64
programmer on the other hand has to get used to the new techniques. It was
65
not in all places possible to achieve total compatibility for existing
66
code. Some changes also were introduced deliberately to make the
67
programmers adapt their programs to the new situation!
68
69
70
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
71
\Section{User Interface}
72
73
Some menu entries have been moved to new places, mainly because of the
74
division of generic poset code and specialized code for graphic subgroup
75
lattices. There are some new features and nearly all old features have made
76
it into the new version.
77
78
The handling of the mouse is unchanged. However the introduction of levels
79
gives the user new possibilities.
80
81
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82
\Section{Where code has to be changed}
83
84
All {\GAP} objects corresponding to graphic sheets and graphic objects are
85
no longer records but component objects. This means that the programmer can
86
no longer mess around in the data structures. If you want to add new
87
fields, then you have to use inheritance and define new categories. This
88
means also that the (internal) data structures of sheets has changed
89
massively. Programs that try to access record components of old {\XGAP}
90
structures will no longer work!
91
92
The operation `InstallGSMethod' is no longer present. It is replaced by the
93
``callback'' mechanism with the operations `InstallCallback',
94
`RemoveCallback' and `Callback' (see "GraphicSheet" for details). This
95
means, that mouse events are handled differently. This was changed
96
deliberately because there is a big difference: In {\XGAP4} you can install
97
more than one function for one type of mouse event. All such callback
98
functions are called one after the other. There was only one graphic sheet
99
method for each event in {\XGAP3}. So you can *not* just change the name of
100
the operation to install the callback. You have to think about this
101
difference!
102
103
See the section "Operations for Graphic Objects" for an overview
104
which operations exist now for which graphic objects. The main difference
105
is the introduction of `Revive', `ViewObj' and `WindowId' together with the
106
concept of the `IsAlive' filter.
107
108
There was a bug in {\XGAP3} in the creation of menus: If an entry starts
109
with a minus sign, it will become a separating line instead of a real menu
110
entry. This disturbed the numbering of the menu entries, such that `Enable'
111
and `Check' did not work on the correct entry. This bug is fixed in
112
{\XGAP4} so code which contained a workaround for this bug has to be
113
changed. `Enable' and `Check' behave now like expected and documented in
114
"Enable" and "Check".
115
116
117
%%% Local Variables:
118
%%% mode: latex
119
%%% TeX-master: t
120
%%% End:
121
122