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

2 Installing Semigroups
 2.1 For those in a hurry
 2.2 Package dependencies
 2.3 Compiling the kernel module
 2.4 Rebuilding the documentation
 2.5 Testing your installation
 2.6 More information during a computation

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.9.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 http://www.gap-system.org.

The following is a summary of the steps that should lead to a successful installation of 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.5.

2.2 Package dependencies

The Semigroups package is written in GAP and C++ and requires the Orb, IO, Digraphs and genss packages. The Orb package is used to efficiently compute components of actions, which underpin many of the features of Semigroups. The IO package is used to read and write elements of a semigroup to a file. The genss package is used in a non-deterministic version of the operation Normalizer (14.11-1) and in calculating the stabiliser of a Rees 0-matrix semigroup's matrix. The Digraphs package is used in a variety of ways in the Semigroups package, in particular, to apply standard graph theoretic algorithms to certain data structures.

2.3 Compiling the kernel module

As of version 3.0.0, the Semigroups package has a GAP kernel module written in C/C++ and this must be compiled. The kernel module contains low-level functions relating to the enumeration of certain types of semigroups, and it is not possible to use the Semigroups package without compiling it.

To compile the kernel component inside the pkg/semigroups-3.1.2 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 supports GCC version 5.0 or higher, and clang version 5.0 or higher.

If you installed the package in another 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.4 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 use the SemigroupsMakeDoc (2.4-1).

2.4-1 SemigroupsMakeDoc
‣ SemigroupsMakeDoc( )( function )

Returns: Nothing.

This function should be called with no argument to compile the Semigroups documentation.

2.5 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.5-1) - this will take a few seconds. For more extensive tests use SemigroupsTestStandard (2.5-2) - this may take several minutes. Finally, for lengthy benchmarking tests use SemigroupsTestExtreme (2.5-3) - this may take more than half an hour.

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.5-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.5-2).

2.5-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.5-1).

Each test file is run twice, once when the methods for IsActingSemigroup (6.1-3) are enabled and once when they are disabled.

2.5-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.5-1), or to test all aspects of the package use SemigroupsTestStandard (2.5-2).

Each test file is run twice, once when the methods for semigroups satisfying IsActingSemigroup (6.1-3) are enabled and once when they are disabled.

2.5-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 SemigroupsMakeDoc (2.4-1) and SemigroupsTestStandard (2.5-2).

2.6 More information during a computation

2.6-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 19 20 Bib Ind

generated by GAPDoc2HTML