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

Path: gap4r8 / doc / tut / chap1.txt
Views: 418346
1
2
1 Preface
3
4
Welcome to GAP. This preface serves not only to introduce this manual, the
5
GAP Tutorial, but also as an introduction to the system as a whole.
6
7
GAP stands for Groups, Algorithms and Programming. The name was chosen to
8
reflect the aim of the system, which is introduced in this tutorial manual.
9
Since that choice, the system has become somewhat broader, and you will also
10
find information about algorithms and programming for other algebraic
11
structures, such as semigroups and algebras.
12
13
In addition to this manual, there is the GAP Reference Manual containing
14
detailed documentation of the mathematical functionality of GAP, and the
15
manual called GAP - Changes from Earlier Versions which describes most
16
essential changes from previous GAP releases.
17
18
A lot of the functionality of the system and a number of contributed
19
extensions are provided as GAP packages and each of these has its own
20
manual.
21
22
Subsequent sections of this preface explain the structure of the system and
23
list sources of further information about GAP.
24
25
26
1.1 The GAP System
27
28
GAP is a free, open and extensible software package for computation in
29
discrete abstract algebra. The terms free and open describe the conditions
30
under which the system is distributed -- in brief, it is free of charge
31
(except possibly for the immediate costs of delivering it to you), you are
32
free to pass it on within certain limits, and all of the workings of the
33
system are open for you to examine and change. Details of these conditions
34
can be found in Section 'Reference: Copyright and License'.
35
36
The system is extensible in that you can write your own programs in the GAP
37
language, and use them in just the same way as the programs which form part
38
of the system (the library). Indeed, we actively support the contribution,
39
refereeing and distribution of extensions to the system, in the form of GAP
40
packages. Further details of this can be found in chapter 'Reference: Using
41
GAP Packages', and on our website.
42
43
Development of GAP began at Lehrstuhl D für Mathematik, RWTH-Aachen, under
44
the leadership of Joachim Neubüser in 1985. Version 2.4 was released in 1988
45
and version 3.1 in 1992. In 1997 coordination of GAP development, now very
46
much an international effort, was transferred to St Andrews. A complete
47
internal redesign and almost complete rewrite of the system was completed
48
over the following years and version 4.1 was released in July 1999. A sign
49
of the further internationalization of the project was the GAP 4.4 release
50
in 2004, which has been coordinated from Colorado State University, Fort
51
Collins.
52
53
More information on the motivation and development of GAP to date, can be
54
found on our Web pages in a section entitled Release history and Prefaces.
55
56
For those readers who have used an earlier version of GAP, an overview of
57
the changes from GAP 4.4 and a brief summary of changes from earlier
58
versions is given in a separate manual 'Changes: Changes between GAP 4.4 and
59
GAP 4.5'.
60
61
The system that you are getting now consists of a core system and a number
62
of packages. The core system consists of four main parts.
63
64
1 A kernel, written in C, which provides the user with
65
66
 automatic dynamic storage management, which the user needn't
67
bother about in his programming;
68
69
 a set of time-critical basic functions, e.g. arithmetic,
70
operations for integers, finite fields, permutations and words,
71
as well as natural operations for lists and records;
72
73
 an interpreter for the GAP language, an untyped imperative
74
programming language with functions as first class objects and
75
some extra built-in data types such as permutations and finite
76
field elements. The language supports a form of object-oriented
77
programming, similar to that supported by languages like C++ and
78
Java but with some important differences.
79
80
 a small set of system functions allowing the GAP programmer to
81
handle files and execute external programs in a uniform way,
82
regardless of the particular operating system in use.
83
84
 a set of programming tools for testing, debugging, and timing
85
algorithms.
86
87
 a read-eval-view style user interface.
88
89
2 A much larger library of GAP functions that implement algebraic and
90
other algorithms. Since this is written entirely in the GAP language,
91
the GAP language is both the main implementation language and the user
92
language of the system. Therefore the user can as easily as the
93
original programmers investigate and vary algorithms of the library
94
and add new ones to it, first for own use and eventually for the
95
benefit of all GAP users.
96
97
3 A library of group theoretical data which contains various libraries
98
of groups, including the library of small groups (containing all
99
groups of order at most 2000, except those of order 1024) and others.
100
Large libraries of ordinary and Brauer character tables and Tables of
101
Marks are included as packages.
102
103
4 The documentation. This is available as on-line help, as printable
104
files in PDF format and as HTML for viewing with a Web browser.
105
106
Also included with the core system are some test files and a few small
107
utilities which we hope you will find useful.
108
109
GAP packages are self-contained extensions to the core system. A package
110
contains GAP code and its own documentation and may also contain data files
111
or external programs to which the GAP code provides an interface. These
112
packages may be loaded into GAP using the LoadPackage (Reference:
113
LoadPackage) command, and both the package and its documentation are then
114
available just as if they were parts of the core system. Some packages may
115
be loaded automatically, when GAP is started, if they are present. Some
116
packages, because they depend on external programs, may only be available on
117
the operating systems where those programs are available (usually UNIX). You
118
should note that, while the packages included with this release are the most
119
recent versions ready for release at this time, new packages and new
120
versions may be released at any time and can be easily installed in your
121
copy of GAP.
122
123
With GAP there are two packages (the library of ordinary and Brauer
124
character tables, and the library of tables of marks) which contain
125
functionality developed from parts of the GAP core system. These have been
126
moved into packages for ease of maintenance and to allow new versions to be
127
released independently of new releases of the core system. The library of
128
small groups should also be regarded as a package, although it does not
129
currently use the standard package mechanism. Other packages contain
130
functionality which has never been part of the core system, and may extend
131
it substantially, implementing specific algorithms to enhance its
132
capabilities, providing data libraries, interfaces to other computer algebra
133
systems and data sources such as the electronic version of the Atlas of
134
Finite Group Representations; therefore, installation and usage of packages
135
is recommended.
136
137
Further details about GAP packages can be found in chapter 'Reference: Using
138
GAP Packages', and on the GAP website here:
139
https://www.gap-system.org/Packages/packages.html.
140
141
142
1.2 Further Information about GAP
143
144
Information about GAP is best obtained from the GAP website
145
146
https://www.gap-system.org
147
148
There you will find, amongst other things
149
150
 directions to the sites from which you can download the current GAP
151
distribution, all accepted and deposited GAP packages, and a selection
152
of other contributions.
153
154
 the GAP manual and an archive of the gap-forum mailing list, formatted
155
for reading with a Web browser, and indexed for searching.
156
157
 information about GAP developers, and about the email addresses
158
available for comment, discussion and support.
159
160
We would particularly ask you to note the following things:
161
162
 The GAP Forum – an email discussion forum for comments, discussions or
163
questions about GAP. You must subscribe to the list before you can
164
post to it, see the website for details. In particular we will
165
announce new releases in this mailing list.
166
167
 The email address mailto:[email protected] to which you are asked
168
to send any questions or bug reports which do not seem likely to be of
169
interest to the whole GAP Forum. Please give a (short, if possible)
170
self-contained excerpt of a GAP session containing both input and
171
output that illustrates your problem (including comments of why you
172
think it is a bug) and state the type of the machine, operating
173
system, (compiler used, if UNIX/Linux) and the version of GAP you are
174
using (the first line after the GAP 4 banner starting GAP, Version
175
4...).
176
177
 We also ask you to send a brief message to
178
mailto:[email protected] when you install GAP.
179
180
 The correct form of citation of GAP, which we ask you use whenever you
181
publish scientific results obtained using GAP.
182
183
It finally remains for us to wish you all pleasure and success in using GAP,
184
and to invite your constructive comment and criticism.
185
186
The GAP Group,
187
188
15-Jan-2018
189
190
191