Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/overview.xml
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ the one used here. See <URL>https://gap-packages.github.io/sotgrps/</URL>.
<#Include Label="IdsOfAllSmallGroups">
<#Include Label="IdGap3SolvableGroup">
<#Include Label="SmallGroupsInformation">
<#Include Label="SmallGroupsInformationRecord">
<#Include Label="SmallGroupsAddLayer">
<#Include Label="UnloadSmallGroupsData">
<#Include Label="SMALL_GROUPS_OLD_ORDER">
Expand Down
18 changes: 15 additions & 3 deletions gap/addlayer.gi
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,17 @@ SMALL_GROUPS_LAYERS.SmallGrp := rec(
information := function( size, inforec, num )
SMALL_GROUPS_INFORMATION[ inforec.func ]( size, inforec, num );
end,
informationRecord := function( size, inforec, num )
local r;
# orders added the old way may come without a record
if not IsBound( SMALL_GROUPS_INFORMATION_RECORDS[ inforec.func ] ) then
return fail;
fi;
r := SMALL_GROUPS_INFORMATION_RECORDS[ inforec.func ]
( size, inforec, num );
r.sources := SMALL_GROUPS_SOURCES( inforec );
return r;
end,
);

SMALL_GROUPS_LAYER_LIST[ 1 ] := SMALL_GROUPS_LAYERS.SmallGrp;
Expand Down Expand Up @@ -149,8 +160,8 @@ InstallGlobalFunction( SmallGroupsAddLayer, function( desc )
fi;

known := [ "name", "available", "group", "id", "idAvailable", "number",
"properties", "information", "select", "count",
"before", "after" ];
"properties", "information", "informationRecord", "select",
"count", "before", "after" ];
for comp in RecNames( desc ) do
if not comp in known then
Error( "unknown component <desc>.", comp );
Expand All @@ -168,7 +179,8 @@ InstallGlobalFunction( SmallGroupsAddLayer, function( desc )
Error( "a layer named \"", desc.name, "\" is already registered" );
fi;
for comp in [ "available", "group", "id", "idAvailable", "number",
"properties", "information", "select", "count" ] do
"properties", "information", "informationRecord",
"select", "count" ] do
if IsBound( desc.( comp ) ) and not IsFunction( desc.( comp ) ) then
Error( "<desc>.", comp, " must be a function" );
fi;
Expand Down
88 changes: 88 additions & 0 deletions gap/small.gd
Original file line number Diff line number Diff line change
Expand Up @@ -977,6 +977,83 @@ DeclareGlobalFunction( "IdStandardPresented512Group" );
##
DeclareGlobalFunction( "SmallGroupsInformation" );

#############################################################################
##
#F SmallGroupsInformationRecord( <order> )
##
## <#GAPDoc Label="SmallGroupsInformationRecord">
## <ManSection>
## <Func Name="SmallGroupsInformationRecord" Arg='order'/>
##
## <Description>
## returns the information that <Ref Func="SmallGroupsInformation"/> prints
## as a record, or <K>fail</K> if the groups of order <A>order</A> are not
## available. Its components are:
## <List>
## <Mark><C>order</C>, <C>number</C></Mark>
## <Item>
## the order and the number of groups of that order.
## </Item>
## <Mark><C>layer</C></Mark>
## <Item>
## the name of the layer that provides the groups, see
## <Ref Func="SmallGroupsAddLayer"/>; it is <C>"SmallGrp"</C> for the
## layers of this package, which are then numbered by
## <C>layerNumber</C> as in Chapter <Ref Chap="Organisation"/>.
## </Item>
## <Mark><C>idAvailable</C></Mark>
## <Item>
## whether <Ref Attr="IdSmallGroup"/> is available for this order.
## </Item>
## <Mark><C>indexed</C></Mark>
## <Item>
## the names of the selection criteria that the selection functions know
## for this order without constructing groups.
## </Item>
## <Mark><C>ranges</C></Mark>
## <Item>
## a list describing how the groups are arranged, possibly empty. Each
## entry is a record with components <C>from</C> and <C>to</C>, the first
## and the last index of a range of groups; <C>text</C>, a description
## of what these groups have in common; and <C>values</C>, a record
## mapping names of attributes to the value that all these groups have.
## </Item>
## <Mark><C>sortedBy</C></Mark>
## <Item>
## optional, a description of the invariant by which the groups are
## sorted.
## </Item>
## <Mark><C>comment</C></Mark>
## <Item>
## optional, further text about these groups.
## </Item>
## <Mark><C>sources</C></Mark>
## <Item>
## optional, the keys of the publications that determined these groups,
## in the bibliography of the package providing the layer.
## </Item>
## <Mark><C>description</C></Mark>
## <Item>
## optional, the text that <Ref Func="SmallGroupsInformation"/> prints
## between the number of groups and the indexed selection criteria.
## </Item>
## </List>
## <Example><![CDATA[
## gap> r := SmallGroupsInformationRecord( 32 );;
## gap> r.number;
## 51
## gap> r.ranges[ 2 ];
## rec( from := 2, text := "rank 2", to := 20, values := rec( RankPGroup := 2 ) )
## gap> r.sources;
## [ "OBr90", "JNO90", "OBr91", "BescheEick98", "BescheEick1000",
## "BescheEick768" ]
## ]]></Example>
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareGlobalFunction( "SmallGroupsInformationRecord" );

#############################################################################
##
#F SmallGroupsAddLayer( <desc> )
Expand Down Expand Up @@ -1039,6 +1116,17 @@ DeclareGlobalFunction( "SmallGroupsInformation" );
## <Ref Func="SmallGroupsInformation"/> should say about that order
## beyond the number of groups.
## </Item>
## <Mark><C>informationRecord</C></Mark>
## <Item>
## optional, a function
## <C>( <A>order</A>, <A>inforec</A>, <A>number</A> )</C> returning
## <K>fail</K> or a record with some of the components <C>ranges</C>,
## <C>sortedBy</C>, <C>comment</C>, <C>sources</C> and
## <C>description</C> described in
## <Ref Func="SmallGroupsInformationRecord"/>. If it returns a
## <C>description</C>, <Ref Func="SmallGroupsInformation"/> prints that
## instead of calling <C>information</C>.
## </Item>
## <Mark><C>properties</C></Mark>
## <Item>
## optional, a function <C>( <A>order</A>, <A>inforec</A> )</C> reporting
Expand Down
Loading
Loading