% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
\documentclass[a4paper,11pt]{report}

\usepackage[top=37mm,bottom=37mm,left=27mm,right=27mm]{geometry}
\sloppy
\pagestyle{myheadings}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\makeindex
\usepackage{color}
\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083}
\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179}
\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894}
\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894}
\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000}
\definecolor{Black}{rgb}{0.0,0.0,0.0}

\definecolor{linkColor}{rgb}{0.0,0.0,0.554}
\definecolor{citeColor}{rgb}{0.0,0.0,0.554}
\definecolor{fileColor}{rgb}{0.0,0.0,0.554}
\definecolor{urlColor}{rgb}{0.0,0.0,0.554}
\definecolor{promptColor}{rgb}{0.0,0.0,0.589}
\definecolor{brkpromptColor}{rgb}{0.589,0.0,0.0}
\definecolor{gapinputColor}{rgb}{0.589,0.0,0.0}
\definecolor{gapoutputColor}{rgb}{0.0,0.0,0.0}

%%  for a long time these were red and blue by default,
%%  now black, but keep variables to overwrite
\definecolor{FuncColor}{rgb}{0.0,0.0,0.0}
%% strange name because of pdflatex bug:
\definecolor{Chapter }{rgb}{0.0,0.0,0.0}
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}


\usepackage{fancyvrb}

\usepackage{mathptmx,helvet}
\usepackage[T1]{fontenc}
\usepackage{textcomp}


\usepackage[
            pdftex=true,
            bookmarks=true,        
            a4paper=true,
            pdftitle={Written with GAPDoc},
            pdfcreator={LaTeX with hyperref package / GAPDoc},
            colorlinks=true,
            backref=page,
            breaklinks=true,
            linkcolor=linkColor,
            citecolor=citeColor,
            filecolor=fileColor,
            urlcolor=urlColor,
            pdfpagemode={UseNone}, 
           ]{hyperref}

\newcommand{\maintitlesize}{\fontsize{50}{55}\selectfont}

% write page numbers to a .pnr log file for online help
\newwrite\pagenrlog
\immediate\openout\pagenrlog =\jobname.pnr
\immediate\write\pagenrlog{PAGENRS := [}
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
%% were never documented, give conflicts with some additional packages

\newcommand{\GAP}{\textsf{GAP}}

%% nicer description environments, allows long labels
\usepackage{enumitem}
\setdescription{style=nextline}

%% depth of toc
\setcounter{tocdepth}{1}



\usepackage[pdftex]{graphicx}

%% command for ColorPrompt style examples
\newcommand{\gapprompt}[1]{\color{promptColor}{\bfseries #1}}
\newcommand{\gapbrkprompt}[1]{\color{brkpromptColor}{\bfseries #1}}
\newcommand{\gapinput}[1]{\color{gapinputColor}{#1}}


\begin{document}

\logpage{[ 0, 0, 0 ]}
\begin{titlepage}
\mbox{}\vfill

\begin{center}{\maintitlesize \textbf{\textsf{PrimGrp}\\
\mbox{}}}\\
\vfill

\hypersetup{pdftitle={\textsf{PrimGrp}}}
\markright{\scriptsize \mbox{}\hfill \textsf{PrimGrp} \hfill\mbox{}}
{\Huge \textbf{\textsf{GAP} Primitive Permutation Groups Library\\
\mbox{}}}\\
\vfill

{\Huge Version 4.0.3\mbox{}}\\[1cm]
{28 July 2026\mbox{}}\\[1cm]
\mbox{}\\[2cm]
{\Large \textbf{\strut Alexander Hulpke     \strut\mbox{}}}\\
{\Large \textbf{\strut Colva Roney\texttt{\symbol{45}}Dougal     \strut\mbox{}}}\\
{\Large \textbf{\strut Christopher Russell    \strut\mbox{}}}\\
\hypersetup{pdfauthor={Alexander Hulpke    ; Colva Roney\texttt{\symbol{45}}Dougal    ; Christopher Russell   }}
\end{center}\vfill

\mbox{}\\
{\mbox{}\\
\small \noindent \textbf{Alexander Hulpke    }  Email: \href{mailto://hulpke@math.colostate.edu} {\texttt{hulpke@math.colostate.edu}}\\
  Homepage: \href{https://www.math.colostate.edu/~hulpke/} {\texttt{https://www.math.colostate.edu/\texttt{\symbol{126}}hulpke/}}\\
  Address: \begin{minipage}[t]{8cm}\noindent
 Department of Mathematics\\
 Colorado State University\\
 Fort Collins, CO, 80523\texttt{\symbol{45}}1874, USA \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Colva Roney\texttt{\symbol{45}}Dougal    }  Email: \href{mailto://colva.roney-dougal@st-andrews.ac.uk} {\texttt{colva.roney\texttt{\symbol{45}}dougal@st\texttt{\symbol{45}}andrews.ac.uk}}\\
  Homepage: \href{http://www-groups.mcs.st-and.ac.uk/~colva/} {\texttt{http://www\texttt{\symbol{45}}groups.mcs.st\texttt{\symbol{45}}and.ac.uk/\texttt{\symbol{126}}colva/}}\\
  Address: \begin{minipage}[t]{8cm}\noindent
 School of Mathematics and Statistics\\
 University of St Andrews\\
 North Haugh, St Andrews\\
 Fife, KY16 9SXS Scotland \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Christopher Russell   }  Email: \href{mailto://cr66@st-andrews.ac.uk} {\texttt{cr66@st\texttt{\symbol{45}}andrews.ac.uk}}\\
  Address: \begin{minipage}[t]{8cm}\noindent
 School of Mathematics and Statistics\\
 University of St Andrews\\
 North Haugh, St Andrews\\
 Fife, KY16 9SXS Scotland \end{minipage}
}\\
\end{titlepage}

\newpage\setcounter{page}{2}
{\small 
\section*{Abstract}
\logpage{[ 0, 0, 1 ]}
 \index{SCSCP package@\textsf{PrimGrp} package} The \textsf{GAP} package \textsf{PrimGrp} provides the library of primitive permutation groups which includes, up to
permutation isomorphism (i.e., up to conjugacy in the corresponding symmetric
group), all primitive permutation groups of degree {\textless} 4096. \mbox{}}\\[1cm]
{\small 
\section*{Copyright}
\logpage{[ 0, 0, 2 ]}
 {\copyright} 2007\texttt{\symbol{45}}2026 by Alexander Hulpke and Colva
Roney\texttt{\symbol{45}}Dougal

 \textsf{PrimGrp} is free software; you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version. For
details, see the FSF's own site \href{https://www.gnu.org/licenses/gpl.html} {\texttt{https://www.gnu.org/licenses/gpl.html}}. 

 If you obtained \textsf{PrimGrp}, we would be grateful for a short notification sent to one of the authors. 

 If you publish a result which was partially obtained with the usage of \textsf{PrimGrp}, please cite it in the following form: 

 A. Hulpke, C. Roney\texttt{\symbol{45}}Dougal, C. Russell. \emph{PrimGrp \texttt{\symbol{45}}\texttt{\symbol{45}}\texttt{\symbol{45}} GAP
Primitive Permutation Groups Library, Version 4.0.3;} 2026 (\href{https://gap-packages.github.io/primgrp/} {\texttt{https://gap\texttt{\symbol{45}}packages.github.io/primgrp/}}). \mbox{}}\\[1cm]
{\small 
\section*{Acknowledgements}
\logpage{[ 0, 0, 3 ]}
 The conversion of the \textsf{GAP} database of primitive permutation groups to a separate \textsf{GAP} package has been supported by the EPSRC Collaborative Computational Project
EP/M022641/1 CoDiMa (CCP in the area of Computational Discrete Mathematics), \href{https://www.codima.ac.uk/} {\texttt{https://www.codima.ac.uk/}}. \mbox{}}\\[1cm]
\newpage

\def\contentsname{Contents\logpage{[ 0, 0, 4 ]}}

\tableofcontents
\newpage

 
\chapter{\textcolor{Chapter }{Primitive Permutation Groups}}\label{prim}
\logpage{[ 1, 0, 0 ]}
\hyperdef{L}{X7AE00EA7791F2574}{}
{
  
\section{\textcolor{Chapter }{Primitive Permutation Groups}}\label{Primitive Permutation Groups}
\logpage{[ 1, 1, 0 ]}
\hyperdef{L}{X7AE00EA7791F2574}{}
{
  \textsf{GAP} contains a library of primitive permutation groups which includes, up to
permutation isomorphism (i.e., up to conjugacy in the corresponding symmetric
group), all primitive permutation groups of degree $<{\nobreakspace}4096$, calculated in \cite{RoneyDougal05} and \cite{CRDQ11}, in particular, 
\begin{itemize}
\item  the primitive permutation groups up to degree{\nobreakspace}50, calculated by
C.{\nobreakspace}Sims, 
\item  the primitive groups with insoluble socles of degree $<{\nobreakspace}1000$ as calculated in \cite{DixonMortimer88}, 
\item  the solvable (hence affine) primitive permutation groups of degree $<{\nobreakspace}256$ as calculated by M.{\nobreakspace}Short \cite{Sho92}, 
\item  some insolvable affine primitive permutation groups of degree $<{\nobreakspace}256$ as calculated in \cite{Theissen97}. 
\item  The solvable primitive groups of degree up to $999$ as calculated in \cite{EickHoefling02}. 
\item  The primitive groups of affine type of degree up to $999$ as calculated in \cite{RoneyDougal02}. 
\end{itemize}
 

 Not all groups are named, those which do have names use ATLAS notation. Not
all names are necessarily unique! 

 The list given in \cite{RoneyDougal05} is believed to be complete, correcting various omissions in \cite{DixonMortimer88}, \cite{Sho92} and \cite{Theissen97}. 

 In detail, we guarantee the following properties for this and further versions
(but \emph{not} versions which came before \textsf{GAP}{\nobreakspace}4.2) of the library: 

 
\begin{itemize}
\item  All groups in the library are primitive permutation groups of the indicated
degree. 
\item  The positions of the groups in the library are stable. That is \texttt{PrimitiveGroup(\mbox{\texttt{\mdseries\slshape n}},\mbox{\texttt{\mdseries\slshape nr}})} will always give you a permutation isomorphic group. Note however that we do
not guarantee to keep the chosen $S_n$\texttt{\symbol{45}}representative, the generating set or the name for
eternity. 
\item  Different groups in the library are not conjugate in $S_n$. 
\item  If a group in the library has a primitive subgroup with the same socle, this
group is in the library as well. 
\end{itemize}
 

 (Note that the arrangement of groups is not guaranteed to be in increasing
size, though it holds for many degrees.) 

 The selection functions (see{\nobreakspace} (\textbf{Reference: Selection Functions})) for the primitive groups library are \texttt{AllPrimitiveGroups} and \texttt{OnePrimitiveGroup}. They obtain the following properties from the database without having to
compute them anew: 

 \texttt{NrMovedPoints} (\textbf{Reference: NrMovedPoints for a list or collection of permutations}), \texttt{Size} (\textbf{Reference: Size}), \texttt{Transitivity} (\textbf{Reference: Transitivity for a group and an action domain}), \texttt{ONanScottType} (\textbf{Reference: ONanScottType}), \texttt{IsSimpleGroup} (\textbf{Reference: IsSimpleGroup}), \texttt{IsSolvableGroup} (\textbf{Reference: IsSolvableGroup}), and \texttt{SocleTypePrimitiveGroup} (\textbf{Reference: SocleTypePrimitiveGroup}). 

 (Note, that for groups of degree up to 2499, O'Nan\texttt{\symbol{45}}Scott
types 4a, 4b and 5 cannot occur.) 

\subsection{\textcolor{Chapter }{PrimitiveGroupsAvailable}}
\logpage{[ 1, 1, 1 ]}\nobreak
\hyperdef{L}{X81BDF8CA7CCBFC95}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PrimitiveGroupsAvailable({\mdseries\slshape deg})\index{PrimitiveGroupsAvailable@\texttt{PrimitiveGroupsAvailable}}
\label{PrimitiveGroupsAvailable}
}\hfill{\scriptsize (function)}}\\


 To offer a clearer interface to the primitive groups library, this function
checks whether the primitive groups of degree \mbox{\texttt{\mdseries\slshape deg}} are available. }

 

\subsection{\textcolor{Chapter }{PrimitiveGroup}}
\logpage{[ 1, 1, 2 ]}\nobreak
\hyperdef{L}{X7BCEA0C57B6D9F42}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PrimitiveGroup({\mdseries\slshape deg, nr})\index{PrimitiveGroup@\texttt{PrimitiveGroup}}
\label{PrimitiveGroup}
}\hfill{\scriptsize (function)}}\\


 returns the primitive permutation group of degree \mbox{\texttt{\mdseries\slshape deg}} with number \mbox{\texttt{\mdseries\slshape nr}} from the list. 

 The arrangement of the groups of degrees not greater than 50 differs from the
arrangement of primitive groups in the list of C.{\nobreakspace}Sims, which
was used in \textsf{GAP}{\nobreakspace}3. See \texttt{SimsNo} (\ref{SimsNo}). }

 

\subsection{\textcolor{Chapter }{NrPrimitiveGroups}}
\logpage{[ 1, 1, 3 ]}\nobreak
\hyperdef{L}{X8564FECC8477F199}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{NrPrimitiveGroups({\mdseries\slshape deg})\index{NrPrimitiveGroups@\texttt{NrPrimitiveGroups}}
\label{NrPrimitiveGroups}
}\hfill{\scriptsize (function)}}\\


 returns the number of primitive permutation groups of degree \mbox{\texttt{\mdseries\slshape deg}} in the library. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@NrPrimitiveGroups(25);|
  28
  !gapprompt@gap>| !gapinput@PrimitiveGroup(25,19);|
  5^2:((Q(8):3)'4)
  !gapprompt@gap>| !gapinput@PrimitiveGroup(25,20);|
  ASL(2, 5)
  !gapprompt@gap>| !gapinput@PrimitiveGroup(25,22);|
  AGL(2, 5)
  !gapprompt@gap>| !gapinput@PrimitiveGroup(25,23);|
  (A(5) x A(5)):2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AllPrimitiveGroups}}
\logpage{[ 1, 1, 4 ]}\nobreak
\hyperdef{L}{X86EF380E8007D304}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AllPrimitiveGroups({\mdseries\slshape attr1, val1, attr2, val2, ...})\index{AllPrimitiveGroups@\texttt{AllPrimitiveGroups}}
\label{AllPrimitiveGroups}
}\hfill{\scriptsize (function)}}\\


 This is a selection function which permits to select all groups from the
Primitive Group Library that have a given set of properties. It accepts
arguments as specified in Section  (\textbf{Reference: Selection Functions}) of the \textsf{GAP} reference manual. }

 

\subsection{\textcolor{Chapter }{OnePrimitiveGroup}}
\logpage{[ 1, 1, 5 ]}\nobreak
\hyperdef{L}{X82870C177DB70470}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{OnePrimitiveGroup({\mdseries\slshape attr1, val1, attr2, val2, ...})\index{OnePrimitiveGroup@\texttt{OnePrimitiveGroup}}
\label{OnePrimitiveGroup}
}\hfill{\scriptsize (function)}}\\


 This is a selection function which permits to select at most one group from
the Primitive Group Library that have a given set of properties. It accepts
arguments as specified in Section  (\textbf{Reference: Selection Functions}) of the \textsf{GAP} reference manual. }

 

\subsection{\textcolor{Chapter }{PrimitiveGroupsIterator}}
\logpage{[ 1, 1, 6 ]}\nobreak
\hyperdef{L}{X7B1D4C0483A7F444}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PrimitiveGroupsIterator({\mdseries\slshape attr1, val1, attr2, val2, ...})\index{PrimitiveGroupsIterator@\texttt{PrimitiveGroupsIterator}}
\label{PrimitiveGroupsIterator}
}\hfill{\scriptsize (function)}}\\


 returns an iterator through \texttt{AllPrimitiveGroups(\mbox{\texttt{\mdseries\slshape attr1}},\mbox{\texttt{\mdseries\slshape val1}},\mbox{\texttt{\mdseries\slshape attr2}},\mbox{\texttt{\mdseries\slshape val2}},...)} without creating all these groups at the same time. }

 

\subsection{\textcolor{Chapter }{COHORTS{\textunderscore}PRIMITIVE{\textunderscore}GROUPS}}
\logpage{[ 1, 1, 7 ]}\nobreak
\hyperdef{L}{X81329B9B7F5FF8DE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{COHORTS{\textunderscore}PRIMITIVE{\textunderscore}GROUPS\index{COHORTS{\textunderscore}PRIMITIVE{\textunderscore}GROUPS@\texttt{COH}\-\texttt{O}\-\texttt{R}\-\texttt{T}\-\texttt{S{\textunderscore}}\-\texttt{P}\-\texttt{R}\-\texttt{I}\-\texttt{M}\-\texttt{I}\-\texttt{T}\-\texttt{I}\-\texttt{V}\-\texttt{E{\textunderscore}}\-\texttt{G}\-\texttt{R}\-\texttt{OUPS}}
\label{COHORTSuScorePRIMITIVEuScoreGROUPS}
}\hfill{\scriptsize (global variable)}}\\


 In \cite{DixonMortimer88} the primitive groups are sorted in ``cohorts'' according to their socle. For each degree less than 2500, the variable \texttt{COHORTS{\textunderscore}PRIMITIVE{\textunderscore}GROUPS} contains a list of the cohorts for the primitive groups of this degree. Each
cohort is represented by a list of length 2, the first entry specifies the
socle type (see \texttt{SocleTypePrimitiveGroup} (\textbf{Reference: SocleTypePrimitiveGroup})), the second entry listing the index numbers of the groups in this degree. 

 For example in degree 49, we have four cohorts with socles $({\ensuremath{\mathbb Z}} / 7 {\ensuremath{\mathbb Z}})^2$, $L_2(7)^2$, $A_7^2$ and $A_{49}$ respectively. the group \texttt{PrimitiveGroup(49,36)}, which is isomorphic to $(A_7 \times A_7):2^2$, lies in the third cohort with socle $(A_7 \times A_7)$. 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@COHORTS_PRIMITIVE_GROUPS[49];|
  [ [ rec( parameter := 7, series := "Z", width := 2 ), 
        [ 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 ] ], 
    [ rec( parameter := [ 2, 7 ], series := "L", width := 2 ), [ 34 ] ], 
    [ rec( parameter := 7, series := "A", width := 2 ), [ 35, 36, 37, 38 ] ], 
    [ rec( parameter := 49, series := "A", width := 1 ), [ 39, 40 ] ] ]
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{Index numbers of primitive groups}}\label{Index numbers of primitive groups}
\logpage{[ 1, 2, 0 ]}
\hyperdef{L}{X7DA239CC848F6CAE}{}
{
  

\subsection{\textcolor{Chapter }{PrimitiveIdentification}}
\logpage{[ 1, 2, 1 ]}\nobreak
\hyperdef{L}{X870400597FD4E392}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PrimitiveIdentification({\mdseries\slshape G})\index{PrimitiveIdentification@\texttt{PrimitiveIdentification}}
\label{PrimitiveIdentification}
}\hfill{\scriptsize (attribute)}}\\


 For a primitive permutation group for which an $S_n$\texttt{\symbol{45}}conjugate exists in the library of primitive permutation
groups (see{\nobreakspace}\ref{Primitive Permutation Groups}), this attribute returns the index position. That is \mbox{\texttt{\mdseries\slshape G}} is conjugate to \texttt{PrimitiveGroup(NrMovedPoints(\mbox{\texttt{\mdseries\slshape G}}),PrimitiveIdentification(\mbox{\texttt{\mdseries\slshape G}}))}. 

 Methods only exist if the primitive groups library is installed. 

 Note: As this function uses the primitive groups library, the result is only
guaranteed to the same extent as this library. If it is incomplete, \texttt{PrimitiveIdentification} might return an existing index number for a group not in the library. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@PrimitiveIdentification(Group((1,2),(1,2,3)));|
  2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SimsNo}}
\logpage{[ 1, 2, 2 ]}\nobreak
\hyperdef{L}{X790D50447ABDF7EE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{SimsNo({\mdseries\slshape G})\index{SimsNo@\texttt{SimsNo}}
\label{SimsNo}
}\hfill{\scriptsize (attribute)}}\\


 If \mbox{\texttt{\mdseries\slshape G}} is a primitive group of degree not greater than 50, obtained by \texttt{PrimitiveGroup} (\ref{PrimitiveGroup}) (respectively one of the selection functions), then this attribute contains
the number of the isomorphic group in the original list of
C.{\nobreakspace}Sims. (This is the arrangement as it was used in \textsf{GAP}{\nobreakspace}3.) 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@g:=PrimitiveGroup(25,2);|
  5^2:S(3)
  !gapprompt@gap>| !gapinput@SimsNo(g);|
  3
\end{Verbatim}
 

 As mentioned in the previous section, the index numbers of primitive groups in \textsf{GAP} are guaranteed to remain stable. (Thus, missing groups will be added to the
library at the end of each degree.) In particular, it is safe to refer to a
primitive group of type \mbox{\texttt{\mdseries\slshape deg}}, \mbox{\texttt{\mdseries\slshape nr}} in the \textsf{GAP} library. }

 

\subsection{\textcolor{Chapter }{PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA}}
\logpage{[ 1, 2, 3 ]}\nobreak
\hyperdef{L}{X784820DA86D0E6F4}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA\index{PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA@\texttt{PRI}\-\texttt{M}\-\texttt{I}\-\texttt{T}\-\texttt{I}\-\texttt{V}\-\texttt{E{\textunderscore}}\-\texttt{I}\-\texttt{N}\-\texttt{D}\-\texttt{I}\-\texttt{C}\-\texttt{E}\-\texttt{S{\textunderscore}}\-\texttt{M}\-\texttt{AGMA}}
\label{PRIMITIVEuScoreINDICESuScoreMAGMA}
}\hfill{\scriptsize (global variable)}}\\


 The system \textsf{Magma} also provides a list of primitive groups (see \cite{RoneyDougal02}). For historical reasons, its indexing up to degree 999 differs from the one
used by \textsf{GAP}. The variable \texttt{PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA} can be used to obtain this correspondence. The magma index number of the \textsf{GAP} group \texttt{PrimitiveGroup(\mbox{\texttt{\mdseries\slshape deg}},\mbox{\texttt{\mdseries\slshape nr}})} is stored in the entry \texttt{PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA[\mbox{\texttt{\mdseries\slshape deg}}][\mbox{\texttt{\mdseries\slshape nr}}]}, for degree at most 999. 

 Vice versa, the group of degree \mbox{\texttt{\mdseries\slshape deg}} with \textsf{Magma} index number \mbox{\texttt{\mdseries\slshape nr}} has the \textsf{GAP} index 

 \texttt{Position(PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA[\mbox{\texttt{\mdseries\slshape deg}}],\mbox{\texttt{\mdseries\slshape nr}})}, in particular it can be obtained by the \textsf{GAP} command 

 \texttt{PrimitiveGroup(\mbox{\texttt{\mdseries\slshape deg}},Position(PRIMITIVE{\textunderscore}INDICES{\textunderscore}MAGMA[\mbox{\texttt{\mdseries\slshape deg}}],\mbox{\texttt{\mdseries\slshape nr}}));} }

 }

 }

 
\chapter{\textcolor{Chapter }{Irreducible Matrix Groups}}\label{irredsol}
\logpage{[ 2, 0, 0 ]}
\hyperdef{L}{X78C56BAA804A56A1}{}
{
   
\section{\textcolor{Chapter }{Irreducible Solvable Matrix Groups}}\label{Irreducible Solvable Matrix Groups}
\logpage{[ 2, 1, 0 ]}
\hyperdef{L}{X82FD673384BF353B}{}
{
  

\subsection{\textcolor{Chapter }{IrreducibleSolvableGroupMS}}
\logpage{[ 2, 1, 1 ]}\nobreak
\hyperdef{L}{X7DF4B4D683A727E8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IrreducibleSolvableGroupMS({\mdseries\slshape n, p, i})\index{IrreducibleSolvableGroupMS@\texttt{IrreducibleSolvableGroupMS}}
\label{IrreducibleSolvableGroupMS}
}\hfill{\scriptsize (function)}}\\


 This function returns a representative of the \mbox{\texttt{\mdseries\slshape i}}\texttt{\symbol{45}}th conjugacy class of irreducible solvable subgroup of GL(\mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}), where \mbox{\texttt{\mdseries\slshape n}} is an integer $> 1$, \mbox{\texttt{\mdseries\slshape p}} is a prime, and $\mbox{\texttt{\mdseries\slshape p}}^{\mbox{\texttt{\mdseries\slshape n}}} < 256$. 

 The numbering of the representatives should be considered arbitrary. However,
it is guaranteed that the \mbox{\texttt{\mdseries\slshape i}}\texttt{\symbol{45}}th group on this list will lie in the same conjugacy class
in all future versions of \textsf{GAP}, unless two (or more) groups on the list are discovered to be duplicates, in
which case \texttt{IrreducibleSolvableGroupMS} will return \texttt{fail} for all but one of the duplicates. 

 For values of \mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}, and \mbox{\texttt{\mdseries\slshape i}} admissible to \texttt{IrreducibleSolvableGroup} (\ref{IrreducibleSolvableGroup}), \texttt{IrreducibleSolvableGroupMS} returns a representative of the same conjugacy class of subgroups of GL(\mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}) as \texttt{IrreducibleSolvableGroup} (\ref{IrreducibleSolvableGroup}). Note that it currently adds two more groups (missing from the original list
by Mark Short) for \mbox{\texttt{\mdseries\slshape n}} $= 2$, \mbox{\texttt{\mdseries\slshape p}} $= 13$. }

 

\subsection{\textcolor{Chapter }{NumberIrreducibleSolvableGroups}}
\logpage{[ 2, 1, 2 ]}\nobreak
\hyperdef{L}{X836AEF4A7E494724}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{NumberIrreducibleSolvableGroups({\mdseries\slshape n, p})\index{NumberIrreducibleSolvableGroups@\texttt{NumberIrreducibleSolvableGroups}}
\label{NumberIrreducibleSolvableGroups}
}\hfill{\scriptsize (function)}}\\


 This function returns the number of conjugacy classes of irreducible solvable
subgroup of GL(\mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}). }

 

\subsection{\textcolor{Chapter }{AllIrreducibleSolvableGroups}}
\logpage{[ 2, 1, 3 ]}\nobreak
\hyperdef{L}{X7DAC64F17C8B49A2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{AllIrreducibleSolvableGroups({\mdseries\slshape func1, val1, func2, val2, ...})\index{AllIrreducibleSolvableGroups@\texttt{AllIrreducibleSolvableGroups}}
\label{AllIrreducibleSolvableGroups}
}\hfill{\scriptsize (function)}}\\


 This function returns a list of conjugacy class representatives $G$ of matrix groups over a prime field such that $f(G) = v$ or $f(G) \in v$, for all pairs $(f,v)$ in (\mbox{\texttt{\mdseries\slshape func1}}, \mbox{\texttt{\mdseries\slshape val1}}), (\mbox{\texttt{\mdseries\slshape func2}}, \mbox{\texttt{\mdseries\slshape val2}}), $\ldots$. The following possibilities for the functions $f$ are particularly efficient, because the values can be read off the information
in the data base: \texttt{DegreeOfMatrixGroup} (or \texttt{Dimension} (\textbf{Reference: Dimension}) or \texttt{DimensionOfMatrixGroup} (\textbf{Reference: DimensionOfMatrixGroup})) for the linear degree, \texttt{Characteristic} (\textbf{Reference: Characteristic}) for the field characteristic, \texttt{Size} (\textbf{Reference: Size}), \texttt{IsPrimitiveMatrixGroup} (or \texttt{IsLinearlyPrimitive}), and \texttt{MinimalBlockDimension}{\textgreater}. }

 

\subsection{\textcolor{Chapter }{OneIrreducibleSolvableGroup}}
\logpage{[ 2, 1, 4 ]}\nobreak
\hyperdef{L}{X844E60B87FC48D1B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{OneIrreducibleSolvableGroup({\mdseries\slshape func1, val1, func2, val2, ...})\index{OneIrreducibleSolvableGroup@\texttt{OneIrreducibleSolvableGroup}}
\label{OneIrreducibleSolvableGroup}
}\hfill{\scriptsize (function)}}\\


 This function returns one solvable subgroup $G$ of a matrix group over a prime field such that $f(G) = v$ or $f(G) \in v$, for all pairs $(f,v)$ in (\mbox{\texttt{\mdseries\slshape func1}}, \mbox{\texttt{\mdseries\slshape val1}}), (\mbox{\texttt{\mdseries\slshape func2}}, \mbox{\texttt{\mdseries\slshape val2}}), $\ldots$. The following possibilities for the functions $f$ are particularly efficient, because the values can be read off the information
in the data base: \texttt{DegreeOfMatrixGroup} (or \texttt{Dimension} (\textbf{Reference: Dimension}) or \texttt{DimensionOfMatrixGroup} (\textbf{Reference: DimensionOfMatrixGroup})) for the linear degree, \texttt{Characteristic} (\textbf{Reference: Characteristic}) for the field characteristic, \texttt{Size} (\textbf{Reference: Size}), \texttt{IsPrimitiveMatrixGroup} (or \texttt{IsLinearlyPrimitive}), and \texttt{MinimalBlockDimension}{\textgreater}. }

 

\subsection{\textcolor{Chapter }{PrimitiveIndexIrreducibleSolvableGroup}}
\logpage{[ 2, 1, 5 ]}\nobreak
\hyperdef{L}{X81B11EE77EFA745E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PrimitiveIndexIrreducibleSolvableGroup\index{PrimitiveIndexIrreducibleSolvableGroup@\texttt{Primitive}\-\texttt{Index}\-\texttt{Irreducible}\-\texttt{Solvable}\-\texttt{Group}}
\label{PrimitiveIndexIrreducibleSolvableGroup}
}\hfill{\scriptsize (global variable)}}\\


 This variable provides a way to get from irreducible solvable groups to
primitive groups and vice versa. For the group $G$ = \texttt{IrreducibleSolvableGroup( \mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}, \mbox{\texttt{\mdseries\slshape k}} )} and $d = p^n$, the entry \texttt{PrimitiveIndexIrreducibleSolvableGroup[d][i]} gives the index number of the semidirect product $p^n:G$ in the library of primitive groups. 

 Searching for an index in this list with \texttt{Position} (\textbf{Reference: Position}) gives the translation in the other direction. }

 

\subsection{\textcolor{Chapter }{IrreducibleSolvableGroup}}
\logpage{[ 2, 1, 6 ]}\nobreak
\hyperdef{L}{X816FF4DD8267B4A7}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IrreducibleSolvableGroup({\mdseries\slshape n, p, i})\index{IrreducibleSolvableGroup@\texttt{IrreducibleSolvableGroup}}
\label{IrreducibleSolvableGroup}
}\hfill{\scriptsize (function)}}\\


 This function is obsolete, because for \mbox{\texttt{\mdseries\slshape n}} $= 2$, \mbox{\texttt{\mdseries\slshape p}} $= 13$, two groups were missing from the underlying database. It has been replaced
by the function \texttt{IrreducibleSolvableGroupMS} (\ref{IrreducibleSolvableGroupMS}). Please note that the latter function does not guarantee any ordering of the
groups in the database. However, for values of \mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}, and \mbox{\texttt{\mdseries\slshape i}} admissible to \texttt{IrreducibleSolvableGroup}, \texttt{IrreducibleSolvableGroupMS} (\ref{IrreducibleSolvableGroupMS}) returns a representative of the same conjugacy class of subgroups of GL(\mbox{\texttt{\mdseries\slshape n}}, \mbox{\texttt{\mdseries\slshape p}}) as \texttt{IrreducibleSolvableGroup} did before. }

 }

 }

 \def\bibname{References\logpage{[ "Bib", 0, 0 ]}
\hyperdef{L}{X7A6F98FD85F02BFE}{}
}

\bibliographystyle{alpha}
\bibliography{manualbib.xml}

\addcontentsline{toc}{chapter}{References}

\def\indexname{Index\logpage{[ "Ind", 0, 0 ]}
\hyperdef{L}{X83A0356F839C696F}{}
}

\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Index}


\printindex

\immediate\write\pagenrlog{["Ind", 0, 0], \arabic{page},}
\newpage
\immediate\write\pagenrlog{["End"], \arabic{page}];}
\immediate\closeout\pagenrlog
\end{document}
