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


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Chapter Label="chap:utilities">
<Heading>New &GAP; Objects and Utility Functions provided by the
&AtlasRep; Package</Heading>

This chapter describes &GAP; objects and functions that are provided by the
&AtlasRep; package but that might be of general interest.

<P/>

The new objects are straight line decisions
(see Section&nbsp;<Ref Sect="sect:Straight Line Decisions"/>) and
black box programs (see Section&nbsp;<Ref Sect="sect:Black Box Programs"/>).

<P/>

The new functions are concerned with representations of minimal degree,
see Section&nbsp;<Ref Sect="sect:Representations of Minimal Degree"/>,
and a JSON interface, see Section&nbsp;<Ref Sect="sect:JSON"/>.


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Straight Line Decisions">
<Heading>Straight Line Decisions</Heading>

<#Include Label="StraightLineDecisionIntro">
<#Include Label="IsStraightLineDecision">
<#Include Label="LinesOfStraightLineDecision">
<#Include Label="NrInputsOfStraightLineDecision">
<#Include Label="ScanStraightLineDecision">
<#Include Label="StraightLineDecision">
<#Include Label="ResultOfStraightLineDecision">
<#Include Label="Semi-Presentations">
<#Include Label="AsStraightLineDecision">
<#Include Label="StraightLineProgramFromStraightLineDecision">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Black Box Programs">
<Heading>Black Box Programs</Heading>

<#Include Label="BBoxIntro">
<#Include Label="IsBBoxProgram">
<#Include Label="ScanBBoxProgram">
<#Include Label="RunBBoxProgram">
<#Include Label="ResultOfBBoxProgram">
<#Include Label="AsBBoxProgram">
<#Include Label="AsStraightLineProgram">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:Representations of Minimal Degree">
<Heading>Representations of Minimal Degree</Heading>

This section deals with minimal degrees of permutation and matrix
representations.
We do not provide an algorithm that computes these degrees for an arbitrary
group,
we only provide some tools for evaluating known databases,
mainly concerning <Q>bicyclic extensions</Q>
(see <Cite Key="CCN85" Where="Section&nbsp;6.5"/>) of simple groups,
in order to derive the minimal degrees,
see Section&nbsp;<Ref Subsect="subsect:minimality-criteria"/>.
<P/>
In the &AtlasRep; package,
this information can be used for prescribing <Q>minimality conditions</Q> in
<Ref Func="DisplayAtlasInfo"/>,
<Ref Func="OneAtlasGeneratingSetInfo"/>, and
<Ref Func="AllAtlasGeneratingSetInfos"/>.
An overview of the stored minimal degrees can be shown with
<Ref Func="BrowseMinimalDegrees"/>.

<#Include Label="MinimalRepresentationInfo">
<#Include Label="MinimalRepresentationInfoData">
<#Include Label="SetMinimalRepresentationInfo">
<#Include Label="subsect:minimality-criteria">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="sect:JSON">
<Heading>A JSON Interface</Heading>

<#Include Label="JsonIntro">
<#Include Label="AGR.JsonText">
<#Include Label="AGR.GapObjectOfJsonText">

</Section>


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

</Chapter>

