In this section we give a brief description of how to start using Semigroups.
It is assumed that you have a working copy of GAP with version number 4.12.0 or higher. The most up-to-date version of GAP and instructions on how to install it can be obtained from the main GAP webpage https://www.gap-system.org.
The following is a summary of the steps that should lead to a successful installation of Semigroups:
ensure that the datastructures package version 0.2.5 or higher is available. datastructures must be compiled before Semigroups can be loaded.
ensure that the Digraphs package version 1.6.2 or higher is available. Digraphs must be compiled before Semigroups can be loaded.
ensure that the genss package version 1.6.5 or higher is available.
ensure that the images package version 1.3.1 or higher is available.
ensure that the IO package version 4.5.1 or higher is available. IO must be compiled before Semigroups can be loaded.
ensure that the orb package version 4.8.2 or higher is available. orb and Semigroups both perform better if orb is compiled.
download the package archive semigroups-5.3.7.tar.gz
from the Semigroups package webpage.
unzip and untar the file, this should create a directory called semigroups-5.3.7
.
locate your GAP directory, the one containing the directories lib
, doc
and so on. Move the directory semigroups-5.3.7.tar.gz
into the pkg
subdirectory of your GAP directory.
from version 3.0.0, it is necessary to compile the Semigroups package. Semigroups uses the libsemigroups C++ library, which requires a compiler implementing the C++14 standard. Inside the pkg/semigroups-5.3.7
directory, in your terminal type
./configure && make
Further information about this step can be found in Section 2.2.
start GAP in the usual way (i.e. type gap
at the command line).
type LoadPackage("semigroups");
Please note that from version 3.0.0: Semigroups can only be loaded if it has been compiled.
If you want to check that the package is working correctly, you should run some of the tests described in Section 2.4.
As of version 3.0.0, the Semigroups package has a kernel module written in C++ and this must be compiled. The kernel module contains the interface to the C++ library libsemigroups . It is not possible to use the Semigroups package without compiling it.
To compile the kernel component inside the pkg/semigroups-5.3.7.tar.gz
directory, type
./configure && make
If you are using GCC to compile Semigroups, then version 5.0 or higher is required. Trying to compile Semigroups with an earlier version of GCC will result in an error at compile time. Semigroups only supports GCC version 5.0 or higher, and clang version 5.0 or higher.
If you installed the package in a pkg
directory other than the standard pkg
directory in your GAP installation, then you have to do two things. Firstly during compilation you have to use the option --with-gaproot=PATH
of the configure
script where PATH
is a path to the main GAP root directory (if not given the default ../..
is assumed).
If you installed GAP on several architectures, you must execute the configure/make step for each of the architectures. You can either do this immediately after configuring and compiling GAP itself on this architecture, or alternatively set the environment variable CONFIGNAME
to the name of the configuration you used when compiling GAP before running ./configure
. Note however that your compiler choice and flags (environment variables CC
and CFLAGS
) need to be chosen to match the setup of the original GAP compilation. For example you have to specify 32-bit or 64-bit mode correctly!
The Semigroups package comes complete with pdf, html, and text versions of the documentation. However, you might find it necessary, at some point, to rebuild the documentation. To rebuild the documentation the GAPDoc and AutoDoc packages are required. To rebuild the documentation type:
gap makedoc.g
when you're inside the pkg/semigroups-5.3.7
directory.
In this section we describe how to test that Semigroups is working as intended. To quickly test that Semigroups is installed correctly use SemigroupsTestInstall
(2.4-1). For more extensive tests use SemigroupsTestStandard
(2.4-2). Finally, for lengthy benchmarking tests use SemigroupsTestExtreme
(2.4-3).
If something goes wrong, then please review the instructions in Section 2.1 and ensure that Semigroups has been properly installed. If you continue having problems, please use the issue tracker to report the issues you are having.
‣ SemigroupsTestInstall ( ) | ( function ) |
Returns: true
or false
.
This function should be called with no argument to test your installation of Semigroups is working correctly. These tests should take no more than a few seconds to complete. To more comprehensively test that Semigroups is installed correctly use SemigroupsTestStandard
(2.4-2).
‣ SemigroupsTestStandard ( ) | ( function ) |
Returns: A list indicating which tests passed and failed and the time take to run each file.
This function should be called with no argument to comprehensively test that Semigroups is working correctly. These tests should take no more than a few minutes to complete. To quickly test that Semigroups is installed correctly use SemigroupsTestInstall
(2.4-1).
Each test file is run twice, once when the methods for IsActingSemigroup
(6.1-2) are enabled and once when they are disabled.
‣ SemigroupsTestExtreme ( ) | ( function ) |
Returns: A list indicating which tests passed and failed and the time take to run each file.
This function should be called with no argument to run some long-running tests, which could be used to benchmark Semigroups or test your hardware. These tests should take no more than around half an hour to complete. To quickly test that Semigroups is installed correctly use SemigroupsTestInstall
(2.4-1), or to test all aspects of the package use SemigroupsTestStandard
(2.4-2).
Each test file is run twice, once when the methods for semigroups satisfying IsActingSemigroup
(6.1-2) are enabled and once when they are disabled.
‣ SemigroupsTestAll ( ) | ( function ) |
Returns: true
or false
.
This function should be called with no argument to compile the Semigroups package's documentation, run the standard suite of tests, and run all the examples from the documentation to ensure that their output is correct. The value returned is true
if all the tests succeed, and false
otherwise. The whole process should take no more than a few minutes.
See SemigroupsTestStandard
(2.4-2).
‣ InfoSemigroups | ( info class ) |
InfoSemigroups
is the info class of the Semigroups package. The info level is initially set to 0 and no info messages are displayed. To increase the amount of information displayed during a computation increase the info level to 2 or 3. To stop all info messages from being displayed, set the info level to 0. See also Reference: Info Functions and SetInfoLevel
(Reference: InfoLevel).
generated by GAPDoc2HTML