Rebecca Waldecker

GAP code and comments for groups acting with low fixity

Here is a general reference to GAP. The most important packages for us are
TomLib 1.2.9 (23/10/2019), by T. Merkwitz, L. Naughton and G. Pfeiffer, and
MapClass 1.4.4 (02/12/2018), by A. James, K. Magaard, S. Shpectorov and Helmut Völklein.

The purpose of this website is to collect and explain GAP code that we have used in the low fixity project. "We" currently means Patrick Salfeld, Paula Hähndel and myself, with more to follow! Some of the functions even go back to Kay Magaard with whom the project started.

This page gives an overview, organised along topics, and then we present the code along with some explanations and examples on individual pages.
This page and the sub-pages are very much still in development!

Checking a specific group for low fixity actions.
This page shows code that checks a specific group for actions with a specific fixity. The table of marks for the group needs to be available in GAPfor this to work. There are three versions: fixity2 , fixity , and TestTomF4 , depending on whether or not the fixity should be a parameter in the input and whether we want to know the structure of the point stabilisers. We also give several examples.

The next GAP function has been written by Patrick Salfeld for his PhD thesis.

Calculating the fixed point profile of a specific action.
Given a group that acts transitively on a set and given a point stabiliser, the function FixedPointsTom calculates the number of fixed points of every non-trivial group element. As input we have the table of marks for the group G, and a point stabiliser U and a number num such that RepresentativeTom( tom, num ), in GAP, gives a group isomorphic to U.

FixedPointsTom:=function(tom, num)
local G, indC, mat, CN, l;
if not IsTableOfMarks(tom) then
ErrorNoReturn("the first given parameter is not a table of marks!");
if not num in [1..Length(MarksTom(tom))] then
ErrorNoReturn("the second given parameter is not a number between 1 and Length(MarksTom(tom))!");
G := UnderlyingGroup(tom);;
indC := Filtered ( [2..Length(MarksTom(tom))], i -> IsCyclic( RepresentativeTom( tom, i ) ) );;
mat := MatTom(tom)[num];;
CN := OrdersTom(tom);;
l := List( indC, i -> [ CN[i], Order( Centraliser( G, RepresentativeTom( tom, i ) ) ), mat[i] ] );;
return l;

The output is a list, where each entry is a list of length 3 of the form [order of group element, centraliser order, number of fixed points].