GAP (Semigroups) - Chapter 2: Installing Semigroups

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

2 Installing Semigroups
2.1 For those in a hurry
2.2 Compiling the kernel module
2.3 Rebuilding the documentation
2.4 Testing your installation
2.4-1 SemigroupsTestInstall
2.4-2 SemigroupsTestStandard
2.4-3 SemigroupsTestExtreme
2.4-4 SemigroupsTestAll
2.5 More information during a computation
2.5-1 InfoSemigroups

### 2 Installing Semigroups

#### 2.1 For those in a hurry

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.1 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.5.0.tar.gz` from the Semigroups package webpage.

- unzip and untar the file, this should create a directory called `semigroups-5.5.0`.

- locate your GAP directory, the one containing the directories `lib`, `doc` and so on. Move the directory `semigroups-5.5.0.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.5.0` 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.

#### 2.2 Compiling the kernel module

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.5.0.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!

#### 2.3 Rebuilding the documentation

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.5.0` directory.

#### 2.4 Testing your installation

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.

##### 2.4-1 SemigroupsTestInstall

`‣ 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).

##### 2.4-2 SemigroupsTestStandard

`‣ 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.

##### 2.4-3 SemigroupsTestExtreme

`‣ 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.

##### 2.4-4 SemigroupsTestAll

`‣ 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).

#### 2.5 More information during a computation

##### 2.5-1 InfoSemigroups

`‣ 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).

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bib Ind

generated by GAPDoc2HTML