File: technica.xml

package info (click to toggle)
gap-atlasrep 2.1.9-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,688 kB
  • sloc: xml: 20,993; javascript: 155; makefile: 113; sh: 1
file content (295 lines) | stat: -rwxr-xr-x 9,517 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295

<!-- %W  technica.xml    GAP 4 package AtlasRep             Thomas Breuer -->


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Chapter Label="chap:Technicalities of the AtlasRep Package">
<Heading>Technicalities of the &AtlasRep; Package</Heading>

This chapter describes those parts of the &GAP; interface to the
&ATLAS; of Group Representations that do not belong to the user interface
(cf.&nbsp;Chapter&nbsp;<Ref Chap="chap:The User Interface of the AtlasRep Package"/>).
<P/>
Besides global variables used for administrational purposes
(see Section&nbsp;<Ref Sect="sect:Global Variables Used by the AtlasRep Package"/>)
and several sanity checks
(see Section&nbsp;<Ref Sect="sect:AGR Sanity Checks"/>),
they can be regarded as
the interface between the data actually contained in the files and
the corresponding &GAP; objects
(see
Section&nbsp;<Ref Sect="sect:How to Customize the Access to Data files"/>,
<Ref Sect="sect:Reading and Writing MeatAxe Format Files"/>,
<Ref Sect="sect:Reading and Writing Atlas Straight Line Programs"/>,
and&nbsp;<Ref Sect="sect:Data Types Used in the AGR"/>),
and the interface between the remote and the local version of the database
(see Section&nbsp;<Ref Sect="sect:Filenames Used in the AGR"/>
and&nbsp;<Ref Sect="sect:The Tables of Contents of the AGR"/>).
The former interface contains functions to read and write files in
&MeatAxe; format, which may be interesting for users familiar with
&MeatAxe; standalones (see for example&nbsp;<Cite Key="CMeatAxe"/>).
Other low level functions may be undocumented in the sense that they are
not described in this manual.
Users interested in them may look at the actual implementation in the
<F>gap</F> directory of the package,
but it may happen that this will be changed
in future versions of the package.


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Global Variables Used by the AtlasRep Package">
<Heading>Global Variables Used by the &AtlasRep; Package</Heading>

For debugging purposes, &AtlasRep; functions print information depending on
the info level of the info classes <Ref InfoClass="InfoAtlasRep"/>,
<Ref InfoClass="InfoCMeatAxe"/>, and <Ref InfoClass="InfoBBox"/>
(cf.&nbsp;<Ref Sect="Info Functions" BookName="ref"/>).

<P/>

The info level of an info class can be changed using
<Ref Func="SetInfoLevel" BookName="ref"/>.
For example, the info level of <Ref InfoClass="InfoAtlasRep"/> can be set
to the nonnegative integer <M>n</M> using
<C>SetInfoLevel( InfoAtlasRep, </C><M>n</M><C> )</C>.

<P/>

<#Include Label="InfoAtlasRep">
<#Include Label="InfoCMeatAxe">
<#Include Label="InfoBBox">

<P/>

<#Include Label="AGR">
<#Include Label="AtlasOfGroupRepresentationsInfo">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:How to Customize the Access to Data files">
<Heading>How to Customize the Access to Data files</Heading>

<#Include Label="AccessFunctionsDefault">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Reading and Writing MeatAxe Format Files">
<Heading>Reading and Writing MeatAxe Format Files</Heading>

<Index Subkey="MeatAxe format">matrix</Index>
<Index Subkey="MeatAxe format">permutation</Index>

<#Include Label="ScanMeatAxeFile">
<#Include Label="MeatAxeString">
<#Include Label="FFList">
<#Include Label="CMtxBinaryFFMatOrPerm">
<#Include Label="FFMatOrPermCMtxBinary">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Reading and Writing Atlas Straight Line Programs">
<Heading>Reading and Writing &ATLAS; Straight Line Programs</Heading>

<#Include Label="ScanStraightLineProgram">
<#Include Label="AtlasStringOfProgram">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Data Types Used in the AGR">
<Heading>Data Types Used in the &AtlasRep; Package</Heading>

Each representation or program that is administrated by the
&AtlasRep; package belongs to a unique <E>data type</E>.
Informally, examples of data types are
<Q>permutation representation</Q>,
<Q>matrix representation over the integers</Q>, or
<Q>straight line program for computing class representatives</Q>.

<P/>

The idea is that for each data type, there can be
<List>
<Item>
  a column of its own in the output produced by
  <Ref Func="DisplayAtlasInfo"/>
  when called without arguments or with only argument a list of
  group names,
</Item>
<Item>
  a line format of its own for the output produced by
  <Ref Func="DisplayAtlasInfo"/>
  when called with first argument a group name,
</Item>
<Item>
  an input format of its own for <Ref Func="AtlasProgram"/>,
</Item>
<Item>
  an input format of its own for <Ref Func="OneAtlasGeneratingSetInfo"/>,
  and
</Item>
<Item>
  specific tests for the data of this data type;
  these functions are used by the global tests described in
  Section&nbsp;<Ref Sect="sect:AGR Sanity Checks"/>.
</Item>
</List>

<P/>

Formally, a data type is defined by a record whose components are used by
the interface functions.
The details are described in the following.

<#Include Label="AGRDeclareDataType">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Filenames Used in the AGR">
<Heading>Filenames Used in the &AtlasRep; Package</Heading>

<#Include Label="[1]{access}">

<P/>

<#Include Label="AGRParseFilenameFormat">
<#Include Label="AGRFileContents">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:identifier component">
<Heading>The record component <C>identifier</C> used by the &AtlasRep; Package</Heading>

The functions
<Ref Func="AtlasGenerators"/>,
<Ref Func="AtlasProgram"/>,
<Ref Func="AtlasProgramInfo"/>,
<Ref Func="OneAtlasGeneratingSetInfo"/>, and
<Ref Func="AllAtlasGeneratingSetInfos"/>
return records which have a component <C>identifier</C>.
The value of this component describes the record
in the sense that one can reconstruct the whole record from it,
and the <C>identifier</C> value can be used as an input for
<Ref Func="AtlasGenerators"/>,
<Ref Func="AtlasProgram"/>,
<Ref Func="AtlasProgramInfo"/>,
<Ref Func="AtlasGroup" Label="for various arguments"/>, and
<Ref Func="AtlasSubgroup"
Label="for a group name (and various arguments) and a number"/>.

<P/>

The <C>identifier</C> component has the following format.

<P/>

<List>
<Item>
For records describing representations,
it is a list of the form <C>[ gapname, files, std, info ]</C>.
</Item>
<Item>
For records describing straight line programs and straight line decisions,
it is a list of the form <C>[ gapname, files, std ]</C>.
</Item>
</List>

<P/>

Here <C>gapname</C> is the &GAP; name of the group in question,
<C>files</C> defines the data files,
<C>std</C> is the standardization of its generators,
and <C>info</C> is some information that depends on the type of the
representation, for example the number of moved points in the case of a
permutation representation.

<P/>

The <C>files</C> entry has one of the following formats:

<P/>

<List>
<Item>
  a string, in the case that exactly one file is needed
  that does not belong to a private extension;
  an example of such an <C>identifier</C> value is
  <C>[ "J1", "J1G1-cycW1", 1 ]</C>
</Item>
<Item>
  a list whose entries are strings
  (which refer to files from the core part of the database)
  and pairs of the form <C>[ tocid, file ]</C>
  (which refer to files from the extension given by <C>tocid</C>);
  examples of <C>identifier</C> values are
  <C>[ "A5", [ "A5G1-p5B0.m1", "A5G1-p5B0.m2" ], 1, 5 ]</C>,
  <C>[ "2.M12", [ [ "mfer", "2M12G1-cclsW1" ] ], 1 ]</C>,
  <C>[ "2.M12", [ "M12G1-max1W1", [ "internal", "2M12G1-kerM12W1" ] ], 1 ]</C>,
  <C>[ "2.M12", [ [ "mfer", "2M12G1-p24bB0.m1" ],
  [ "mfer", "2M12G1-p24bB0.m2" ] ], 1, 24 ]</C>.
</Item>
</List>

<P/>

Up to version&nbsp;1.5 of the &AtlasRep; package,
a different <C>identifier</C> format was used for files from
extensions of the database.
Namely, the first entry of the list was a pair <C>[ tocid, groupname ]</C>,
and the second entry was either a string or a list of strings.
Note that with that old format,
it was not possible to describe a combination of several files
from different sources (core part and extension, or different extensions).
The function <Ref Func="AtlasRepIdentifier"
Label="convert an old type identifier to a new type one"/>
can be used to convert between the two formats.

<#Include Label="AtlasRepIdentifier">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:The Tables of Contents of the AGR">
<Heading>The Tables of Contents of the &AtlasRep; Package</Heading>

<#Include Label="toc">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:AGR Sanity Checks">
<Heading>Sanity Checks for the &AtlasRep; Package</Heading>

<#Include Label="tests">


Finally, we reset the user preference and the info level
which had been set at the beginning of Chapter <Ref Chap="chap:tutorial"/>.

<P/>

<Example><![CDATA[
gap> SetUserPreference( "AtlasRep", "DisplayFunction", origpref );
gap> SetInfoLevel( InfoAtlasRep, globallevel );
]]></Example>

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->

</Chapter>