<!-- intro.xml FinInG package documentation John Bamberg Anton Betten Philippe Cara Jan De Beule Michel Lavrauw Max Neunhoeffer
Copyright (C) 2018, Colorado State University Sabancı Üniversitesi Università degli Studi di Padova Universiteit Gent University of St. Andrews University of Western Australia Vrije Universiteit Brussel This chapter gives a short introduction and explains the philosophy behind the package.
<Package>FinInG</Package> (pronunciation: [<Alt Only="LaTeX">\textipa{f\;I{}n\;I{}N}</Alt><Alt Only="HTML">fɪnɪŋ</Alt>])
is a package for computation in
Finite Incidence Geometry. It provides users with the basic tools to
work in various areas of finite geometry from the realms of
projective spaces to the flat lands of generalised polygons.
The algebraic power of GAP is employed, particularly in its
facility with matrix and permutation groups.<P/>
<Alt Only="HTML">A sample making FinInG's pronunciation crystal clear can be found <a href="fining1.m4a">here</a>.
<p><audio controls>
<source src="fining1.m4a"type="audio/mpeg"/>
<embed height="50" width="100" src="fining1.m4a"/>
</audio>
</Alt>
</Section>
<Section Label="cite">
<Heading>How to cite <Package>FinInG</Package></Heading>
The development group of <Package>FinInG</Package> welcomes contact with users. In case you have obtained the
package as a deposited package part of archive during the installation of GAP,
we call on your beneficence to register at <Homepage>http://www.fining.org</Homepage> when you use <Package>FinInG</Package> or to
tell us by sending a message to <Email>council@fining.org</Email>.<P/>
Please tell us about the use of <Package>FinInG</Package> in your research or teaching. We are very interested in results obtained
using <Package>FinInG</Package> and we might refer to your work in the future.
If your work is published, we ask you to cite <Package>FinInG</Package> like a journal article or book.<P/>
If you are using BibTeX, you can use the following BibTeX entry for the current <Package>FinInG</Package> version:
<Example>
@manual{fining,
Author = {Bamberg, John and Betten, Anton and Cara, Philippe and
De Beule, Jan and Lavrauw, Michel and Neunh\"offer, Max },
Key = {fining},
Title = {{FinInG -- Finite Incidence Geometry, Version &VERSION;}}, Url = {\verb+(http://www.fining.org)+},
Year = &YEAR;}
</Example>
Here is the bibliography entry produced by BibTeX (in bibliography style `alpha'), to
be pasted directly inside the bibliography environment of your LaTeX document:
<Example>
\bibitem[FinInG]{fining}
J.~Bamberg, A.~Betten, {Ph}. Cara, J.~De~Beule, M.~Lavrauw, and
M.~Neunh\"offer.
\newblock {\em Finite Incidence Geometry}.
\newblock FInInG -- a {GAP} package, version &VERSION;, &YEAR;.
</Example>
When linking to FinInG from a web page you can use the link
<Section Label="overview">
<Heading>Overview of this manual</Heading>
This chapter (section <Ref Sect="install"/>) describes the installation of the package. Chapter <Ref
Chap="examples"/> contains some extended examples to introduce the user to the basic functionality and philosophy to get started. Chapter <Ref Chap="incidencegeometry"/> contains a rigorous description of the basic structures. This chapter can be omitted at first reading, since the set of consequent chapters is also self contained. Chapters <Ref Chap="projective_spaces"/>, <Ref Chap="projgroup"/> and <Ref Chap="polaritiesofps"/>
deal with projective spaces, projective semilinear groups and polarities of projective spaces, respectively.
In Chapter <Ref Chap="classicalpolarspaces"/> the functionality for classical polar spaces is treated and in Chapter <Ref Chap="affine"/> affine spaces and their groups are considered. <E>Geometry morphisms</E> between various geometries that are
available in the package, are introduced and discussed in Chapter <Ref Chap="morphisms"/>. The final three chapters, <Ref Chap="varieties"/>, <Ref Chap="gpolygons"/>, and <Ref Chap="diagramgeometries"/> explain the basic functionality which is provided for algebraic varieties (in projective or affine spaces), generalised polygons, of which several models can be constructed, and finally coset geometries and diagrams.
</Section>
<Section Label="install">
<Heading>Getting and installing <Package>FinInG</Package></Heading>
<Index><Package>FinInG</Package></Index>
Since version 4.7.8, the official &GAP; distribution includes the <Package>FinInG</Package> package. The
<Package>FinInG</Package> package requires the GAP packages <Package>GAPDoc</Package>, version 1.6 or higher,
<Package>Forms</Package>, version 1.2.3 or higher, <Package>Orb</Package>, version 4.7.6 or higher,
<Package>GenSS</Package>, version 1.6.4 or higher, and <Package>GRAPE</Package>, version 4.7 or higher,
and <Package>cvec</Package>, version 2.5.7 or higher. These required packages
are all part of the standard &GAP; distribution. However, the packages <Package>cvec</Package>, <Package>GRAPE</Package>,
<Package>IO</Package>, and <Package>Orb</Package> may require additional compilation (cfr. infra for detailed instructions).
Note that the <Package>IO</Package> is a package required by <Package>cvec</Package> and <Package>Orb</Package>, and
is also part of the standard &GAP; distribution.
Shortly summarized, to get <Package>FinInG</Package> working, download and install &GAP; as explained in its installation
instructions, and, under UNIX like systems (including MacOS), make sure that the compilation of the
packages <Package>cvec</Package>, <Package>GRAPE</Package>, <Package>IO</Package>, and <Package>Orb</Package> is done. Note
that the windows distribution of &GAP; contains precompiled binaries of these packages, so under Windows,
no further steps are required after installing &GAP; according to its installation instructions.
In the next section we summarize the installation procedure under UNIX like systems.
<!--Finally note that currently, one <Package>FinInG</Package> function will use the <Package>Design</Package> package. This package is part of the standard &GAP;
distribution too, but it is not a requirement.-->
<Subsection>
<Heading>Installation procedure under UNIX like systems</Heading>
The installation of &GAP; itself is generic for each UNIX like system, including the different flavours of
Mac OS. You only need a terminal application, and you need access to the standard unix tools gunzip and tar,
and the make tools. Detailed information on how to install &GAP;, can be found in the documentation of &GAP;.
The installation procedure for <Package>FinInG</Package>, a standard GAP package, does <E>not</E>
require compilation, however the packages <Package>cvec</Package>, <Package>GRAPE</Package>, <Package>IO</Package>,
and <Package>Orb</Package> do. First install &GAP; according to the installation instructions.
If you start &GAP; the output might look like in the example below. Note that <Package>IO</Package> is not
listed as loaded package (see line starting with 'Packages' in the example output). This means that
<Package>IO</Package> has not been compiled. Trying to load the <Package>IO</Package> will result in an error message.
<Example>
jdebeule ~ $ gap4r8
+-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
| GAP | https://www.gap-system.org
+-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64
Libs used: gmp
Loading the library and packages ...
Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.1, AutPGrp 1.8,
CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2,
FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IRREDSOL 1.4, LAGUNA 3.7.0,
Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7, ResClasses 4.6.0,
Sophus 1.23, SpinSym 1.5, TomLib 1.2.6, Utils 0.46
Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap> LoadPackage("io");
#I IO package is not available. To see further details, enter
#I SetInfoLevel(InfoPackageLoading,4); and try to load the package again.
fail
</Example>
</Subsection>
<Subsection>
<Heading>Compiling packages</Heading>
In this subsection it is explained how to compile the necessary packages in case this is not yet done
for your &GAP; installation. We assume that you have write access to the &GAP; installation on your computer.
If this is not the case, you should ask your system administrator to do this for you.
Locate your &GAP; installation. The examples below are generated using a GAP4.8.8 installation residing
in "/opt/gap4r8". Clearly, subsequent versions of gap will reside in a differently named directory, e.g. "/opt/gap4r9". Another commonly used directory under UNIX like systems to install software is "/usr/local", so
gap might reside in "/usr/local/gap4r8" too. In all examples in this section, we assume your &GAP; installation
resides in "/opt/gap4r8". Therefore, replace any occurrence of "/opt/gap4r8" with the actual directory
of your &GAP; installation when executing the installation steps.
Three steps will be necessary to compile the <Package>IO</Package> package: go into the correct directory, and
issue the 'configure' command and then issue the 'make' command. Note that the directory name
of the package is dependent on its version number. The correct name can be found as follows:
<Example>
jdebeule ~ $ ls /opt/gap4r8/pkg/ |grep io-
io-4.4.6
</Example>
From this output, it can be determined that the <Package>IO</Package> resides in "/opt/gap4r8/pkg/io-4.4.6/". The three
steps to be taken to compile <Package>io</Package> are demonstrated in the example below.
<Example>
root ~ $ cd /opt/gap4r8/pkg/io-4.4.6/
root /opt/gap4r8/pkg/io-4.4.6 $ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... cnf/install-sh -c -d
...
...lots of output
...
config.status: creating Makefile
config.status: creating src/pkgconfig.h
config.status: src/pkgconfig.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
root /opt/gap4r8/pkg/io-4.4.6 $ make
CC src/io_la-io.lo
CCLD io.la
cnf/install-sh -c -d ./bin/x86_64-apple-darwin16.7.0-gcc-default64
cp .libs/io.so bin/x86_64-apple-darwin16.7.0-gcc-default64/io.so
</Example>
Now starting &GAP; should produce the following output, notice the presence
of "IO 4.4.6" as one of the loaded packages.
<Example>
jdebeule ~ $ gap4r8
+-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
| GAP | https://www.gap-system.org
+-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64
Libs used: gmp
Loading the library and packages ...
Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.1, AutPGrp 1.8,
CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2,
FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IO 4.4.6, IRREDSOL 1.4,
LAGUNA 3.7.0, Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7,
ResClasses 4.6.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.6,
Utils 0.46
Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap>
</Example>
Similar steps are now necessary to compile the package <Package>cvec</Package>, <Package>Orb</Package>, and <Package>grape</Package>:
go into the correct directory, and issue the 'configure' and 'make' command. In the example below, we include
the determination of the correct directory names. Note that the directory name of the <Package>grape</Package> package
is not dependent on its version number, so it resides in "/opt/gap4r8/pkg/grape".
<Example>
root /opt/gap4r8/pkg/cvec-2.5.7 $ cd
root ~ $ ls /opt/gap4r8/pkg/ |grep cvec-
cvec-2.5.7
root ~ $ cd /opt/gap4r8/pkg/cvec-2.5.7/
root /opt/gap4r8/pkg/cvec-2.5.7 $ ./configure
...
...lots of output
...
config.status: executing libtool commands
root /opt/gap4r8/pkg/cvec-2.5.7 $ make
CC src/cvec_la-cvec.lo
CCLD cvec.la
cnf/install-sh -c -d ./bin/x86_64-apple-darwin16.7.0-gcc-default64
cp .libs/cvec.so bin/x86_64-apple-darwin16.7.0-gcc-default64/cvec.so
root ~ $ ls /opt/gap4r8/pkg/ |grep orb-
orb-4.7.6
root ~ $ cd /opt/gap4r8/pkg/orb-4.7.6/
root /opt/gap4r8/pkg/orb-4.7.6 $ ./configure
...
...lots of output
...
config.status: executing libtool commands
root /opt/gap4r8/pkg/orb-4.7.6 $ make
...some output
cp .libs/orb.so bin/x86_64-apple-darwin16.7.0-gcc-default64/orb.so
root ~ $ cd /opt/gap4r8/pkg/grape
root /opt/gap4r8/pkg/grape $ ./configure
root /opt/gap4r8/pkg/grape $ make
...lots of output
root /opt/gap4r8/pkg/grape $
</Example>
Note that warnings may occur during the compilation process, which can all be ignored. If compilation of
these packages has been successful, restart &GAP; and load <Package>FinInG</Package> using "LoadPackage("fining")".
The output should look as follows.
<Example>
jdebeule ~ $ gap4r8
+-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
| GAP | https://www.gap-system.org
+-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64
Libs used: gmp
Loading the library and packages ...
Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.1, AutPGrp 1.8,
CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2,
FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IO 4.4.6, IRREDSOL 1.4,
LAGUNA 3.7.0, Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7,
ResClasses 4.6.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.6,
Utils 0.46
Try '??help' for help. See also '?copyright', '?cite' and '?authors'
New releases of <Package>FinInG</Package> will be distributed automatically with new releases of &GAP;. However,
it is possible easily to update <Package>FinInG</Package> in an existing installation of &GAP;, provided
the new version of <Package>FinInG</Package> does not require newer versions of existing packages in the
installation. It is also possible to have different versions of <Package>FinInG</Package> installed on
one system.
To update <Package>FinInG</Package> it is sufficient to download and unpack the archive containing the new release. First find the
location of your existing &GAP; installation. We assume in the example below that it is
<Log>/opt/gap4r8/</Log>
Make sure you have write permission on this location. If this is not the case, you must ask your system administrator to do
this. Download the <Package>FinInG</Package> archive "fining-....tgz" to this location, and unpack the archive. This can be done by issuing
<Log>gunzip fining-....tgz</Log>
which yields a file "fining-....tar", in the pkg directory, after which issuing the command
<Log>tar -xf fining-....tar</Log>
Unpack the archive in a subdirectory fining. Starting &GAP; and loading <Package>FinInG</Package> the usual
way should give you the newly installed version.
Please notice that you can unpack your archive in your favorite local "./pkg" directory, e.g. "/home/yourself/pkg/", in case you are using
&GAP; on a server on which you have only a restricted access.
In this case, i.e. if you installed <Package>FinInG</Package> in your local pkg directory,
e.g. "/home/yourself/pkg/", then move to "/home/yourself", and issue the command
<Log>gap -l "/opt/gap4r8;./"</Log>
This will cause gap to startup and use as pkg directory both its own central pkg directory, i.e. "/opt/gap4r8/pkg/", as well as your local pkg directory, i.e. "/home/yourself/pkg/".
You should see something like the following output.
<Example>
+-------+ GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
| GAP | https://www.gap-system.org
+-------+ Architecture: x86_64-apple-darwin16.7.0-gcc-default64
Libs used: gmp
Loading the library and packages ...
Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6,
Browse 1.8.6, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6,
CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.4.4,
IRREDSOL 1.2.4, LAGUNA 3.7.0, Polenta 1.3.2, Polycyclic 2.11,
RadiRoot 2.7, ResClasses 3.4.0, Sophus 1.23, SpinSym 1.5,
TomLib 1.2.5
Try '?help' for help. See also '?copyright' and '?authors'
gap> LoadPackage("fining");
---------------------------------------------------------------------
Loading 'Forms' 1.2.5 (21/09/2017)
by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
Jan De Beule (http://www.debeule.eu)
For help, type: ?Forms
---------------------------------------------------------------------
---------------------------------------------------------------------
Loading orb 4.7.6 (Methods to enumerate orbits)
by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller),
Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and
Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
Homepage: https://gap-packages.github.io/orb
---------------------------------------------------------------------
---------------------------------------------------------------------
Loading cvec 2.5.7 (Compact vectors over finite fields)
by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef).
Homepage: https://gap-packages.github.io/cvec
---------------------------------------------------------------------
---------------------------------------------------------------------
Loading genss 1.6.4 (Generic Schreier-Sims)
by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and
Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
Homepage: https://gap-packages.github.io/genss
---------------------------------------------------------------------
---------------------------------------------------------------------
Loading GRAPE 4.7 (GRaph Algorithms using PErmutation groups)
by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/).
Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/
---------------------------------------------------------------------
-------------------------------------------------------------------------------
______________ ________ _________ __________ __
___ ____/__(_)__________ _/________ ____/ __< /_ // /
__ /_ __ /__ __ __ / __ __ / __ __ /_ // /_
_ __/ _ / _ / / /_/ / _ / / / /_/ / _ /_/__ __/
/_/ /_/ /_/ /_//___/ /_/ /_/____/ /_/_(_)/_/
-------------------------------------------------------------------------------
Loading FinInG 1.4.1 (Finite Incidence Geometry)
by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
Anton Betten (http://www.math.colostate.edu/~betten)
Jan De Beule (http://www.debeule.eu)
Philippe Cara (http://homepages.vub.ac.be/~pcara)
Michel Lavrauw (http://people.sabanciuniv.edu/~mlavrauw/)
Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef/)
For help, type: ?FinInG
---------------------------------------------------------------------
true
</Example>
</Subsection>
</Section>
<Section>
<Heading>The Development Team</Heading>
This is the development team (without Anton), meeting in St. Andrews in September 2008,
from left to right: Philippe Cara, Michel Lavrauw, Max Neunhöffer, Jan De Beule and John Bamberg.
<P/>
<Alt Only="HTML"><img src="./graphics/devteamstasep08.jpg"></img></Alt>
<Alt Only="LaTeX">\includegraphics[scale=0.6]{./graphics/devteamstasep08.jpg}</Alt><P/>
The development team meeting again (without Anton and Max), now
in Vicenza in april 2011. from left to right: Michel Lavrauw, John Bamberg, Philippe
Cara, Jan De Beule.<P/>
<Alt Only="HTML"><img src="./graphics/devteamvicapr11.jpg"></img></Alt>
<Alt Only="LaTeX">\includegraphics[scale=0.6]{./graphics/devteamvicapr11.jpg}</Alt><P/>
Survivors of the first version of <Package>FinInG</Package>, enjoying a trip to Chioggia, december 2011.
<P/>
<Alt Only="HTML"><img src="./graphics/devteamchidec11.jpg"></img></Alt>
<Alt Only="LaTeX">\includegraphics[scale=0.6]{./graphics/devteamchidec11.jpg}</Alt><P/>
The same survivors, staring at the destiny.
<P/>
<Alt Only="HTML"><img src="./graphics/devteamdestiny.jpg"></img></Alt>
<Alt Only="LaTeX">\includegraphics[scale=0.6]{./graphics/devteamdestiny.jpg}</Alt><P/>
Anton Betten, during a milestone meeting at the finite geometries conference in Irsee, september 2014.
<P/>
<Alt Only="HTML"><img src="./graphics/anton_irsee2014.jpg"></img></Alt>
<Alt Only="LaTeX">\includegraphics[scale=0.6]{./graphics/anton_irsee2014}</Alt><P/>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.