Technicalities of the &AtlasRep; Package

This chapter describes those parts of the &GAP; interface to the &ATLAS; of Group Representations that do not belong to the user interface (cf. Chapter ).

Besides global variables used for administrational purposes (see Section ) and several sanity checks (see Section ), they can be regarded as the interface between the data actually contained in the files and the corresponding &GAP; objects (see Section , , , and ), and the interface between the remote and the local version of the database (see Section and ). 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 ). 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 gap directory of the package, but it may happen that this will be changed in future versions of the package.

Global Variables Used by the &AtlasRep; Package

For debugging purposes, &AtlasRep; functions print information depending on the info level of the info classes , , and (cf. ).

The info level of an info class can be changed using . For example, the info level of can be set to the nonnegative integer n using SetInfoLevel( InfoAtlasRep, n ).

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

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

How to Customize the Access to Data files
<#Include Label="AccessFunctionsDefault">

Reading and Writing MeatAxe Format Files
matrix
permutation
<#Include Label="ScanMeatAxeFile"> <#Include Label="MeatAxeString"> <#Include Label="FFList"> <#Include Label="CMtxBinaryFFMatOrPerm"> <#Include Label="FFMatOrPermCMtxBinary">

Reading and Writing &ATLAS; Straight Line Programs
<#Include Label="ScanStraightLineProgram"> <#Include Label="AtlasStringOfProgram">

Data Types Used in the &AtlasRep; Package

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

The idea is that for each data type, there can be a column of its own in the output produced by when called without arguments or with only argument a list of group names, a line format of its own for the output produced by when called with first argument a group name, an input format of its own for , an input format of its own for , and specific tests for the data of this data type; these functions are used by the global tests described in Section .

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">

Filenames Used in the &AtlasRep; Package
<#Include Label="[1]{access}">

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

The record component identifier used by the &AtlasRep; Package

The functions , , , , and return records which have a component identifier. The value of this component describes the record in the sense that one can reconstruct the whole record from it, and the identifier value can be used as an input for , , , , and .

The identifier component has the following format.

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

Here gapname is the &GAP; name of the group in question, files defines the data files, std is the standardization of its generators, and info 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.

The files entry has one of the following formats:

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

Up to version 1.5 of the &AtlasRep; package, a different identifier format was used for files from extensions of the database. Namely, the first entry of the list was a pair [ tocid, groupname ], 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 can be used to convert between the two formats.

<#Include Label="AtlasRepIdentifier">

The Tables of Contents of the &AtlasRep; Package
<#Include Label="toc">

Sanity Checks for the &AtlasRep; Package
<#Include Label="tests">

Finally, we reset the user preference and the info level which had been set at the beginning of Chapter .

gap> SetUserPreference( "AtlasRep", "DisplayFunction", origpref ); gap> SetInfoLevel( InfoAtlasRep, globallevel );