<h4>2.1 <span class="Heading">For those in a hurry</span></h4>
<p>In this section we give a brief description of how to start using <strong class="pkg">Semigroups</strong>.</p>
<p>It is assumed that you have a working copy of <strong class="pkg">GAP</strong> with version number 4.12.1 or higher. The most up-to-date version of <strong class="pkg">GAP</strong> and instructions on how to install it can be obtained from the main <strong class="pkg">GAP</strong> webpage <spanclass="URL"><a href="https://www.gap-system.org">https://www.gap-system.org</a></span>.</p>
<p>The following is a summary of the steps that should lead to a successful installation of <strongclass="pkg">Semigroups</strong>:</p>
<ul>
<li><p>ensure that the <span class="URL"><a href="https://gap-packages.github.io/datastructures">datastructures</a></span> package version 0.2.5 or higher is available. <span class="URL"><a href="https://gap-packages.github.io/datastructures">datastructures</a></span> must be compiled before <strong class="pkg">Semigroups</strong> can be loaded.</p>
</li>
<li><p>ensure that the <strong class="pkg">digraphs</strong> package version 1.6.2 or higher is available. <strong class="pkg">digraphs</strong> must be compiled before <strong class="pkg">Semigroups</strong> can be loaded.</p>
</li>
<li><p>ensure that the <span class="URL"><a href="https://gap-packages.github.io/genss">genss</a></span> package version 1.6.5 or higher is available.</p>
</li>
<li><p>ensure that the <span class="URL"><a href="https://gap-packages.github.io/images/">images</a></span> package version 1.3.1 or higher is available.</p>
</li>
<li><p>ensure that the <span class="URL"><a href="https://gap-packages.github.io/io">IO</a></span> package version 4.5.1 or higher is available. <span class="URL"><a href="https://gap-packages.github.io/io">IO</a></span> must be compiled before <strong class="pkg">Semigroups</strong> can be loaded.</p>
</li>
<li><p>ensure that the <span class="URL"><a href="https://gap-packages.github.io/orb">orb</a></span> package version 4.8.2 or higher is available. <span class="URL"><a href="https://gap-packages.github.io/orb">orb</a></span> and <strong class="pkg">Semigroups</strong> both perform better if <span class="URL"><a href="https://gap-packages.github.io/orb">orb</a></span> is compiled.</p>
</li>
<li><p>download the package archive <code class="file">semigroups-5.5.4.tar.gz</code> from <spanclass="URL"><a href="https://semigroups.github.io/Semigroups">the Semigroups package webpage</a></span>.</p>
</li>
<li><p>unzip and untar the file, this should create a directory called <code class="file">semigroups-5.5.4</code>.</p>
</li>
<li><p>locate your <strong class="pkg">GAP</strong> directory, the one containing the directories <code class="file">lib</code>, <code class="file">doc</code> and so on. Move the directory <code class="file">semigroups-5.5.4.tar.gz</code> into the <code class="file">pkg</code> subdirectory of your <strong class="pkg">GAP</strong> directory.</p>
</li>
<li><p>from version 3.0.0, it is necessary to compile the <strong class="pkg">Semigroups</strong> package. <strong class="pkg">Semigroups</strong> uses the <span class="URL"><a href=" https://libsemigroups.github.io/libsemigroups/ ">libsemigroups</a></span> C++ library, which requires a compiler implementing the C++14 standard. Inside the <code class="file">pkg/semigroups-5.5.4</code> directory, in your terminal type</p>
<div class="example"><pre>
./configure && make
</pre></div>
<p>Further information about this step can be found in Section <a href="chap2_mj.html#X849F6196875A6DF5"><span class="RefLink">2.2</span></a>.</p>
</li>
<li><p>start <strong class="pkg">GAP</strong> in the usual way (i.e. type <code class="code">gap</code> at the command line).</p>
</li>
</ul>
<p><em><strong class="button">Please note that</strong> from version 3.0.0: <strong class="pkg">Semigroups</strong> can only be loaded if it has been compiled.</em></p>
<p>If you want to check that the package is working correctly, you should run some of the tests described in Section <a href="chap2_mj.html#X7862D3F37C5BBDEF"><span class="RefLink">2.4</span></a>.</p>
<h4>2.2 <span class="Heading">Compiling the kernel module</span></h4>
<p>As of version 3.0.0, the <strong class="pkg">Semigroups</strong> package has a kernel module written in C++ and this must be compiled. The kernel module contains the interface to the C++ library <span class="URL"><a href="https://libsemigroups.readthedocs.io/en/latest/">libsemigroups</a></span> . It is not possible to use the <strong class="pkg">Semigroups</strong> package without compiling it.</p>
<p>To compile the kernel component inside the <code class="file">pkg/semigroups-5.5.4.tar.gz</code> directory, type</p>
<div class="example"><pre>
./configure && make
</pre></div>
<p>If you are using GCC to compile <strong class="pkg">Semigroups</strong>, then version 5.0 or higher is required. Trying to compile <strong class="pkg">Semigroups</strong> with an earlier version of GCC will result in an error at compile time. <strong class="pkg">Semigroups</strong> only supports GCC version 5.0 or higher, and clang version 5.0 or higher.</p>
<p>If you installed the package in a <code class="file">pkg</code> directory other than the standard <code class="file">pkg</code> directory in your <strong class="pkg">GAP</strong> installation, then you have to do two things. Firstly during compilation you have to use the option <code class="code">--with-gaproot=PATH</code> of the <code class="code">configure</code> script where <code class="code">PATH</code> is a path to the main <strong class="pkg">GAP</strong> root directory (if not given the default <code class="code">../..</code> is assumed).</p>
<p>If you installed <strong class="pkg">GAP</strong> 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 <strong class="pkg">GAP</strong> itself on this architecture, or alternatively set the environment variable <code class="code">CONFIGNAME</code> to the name of the configuration you used when compiling <strong class="pkg">GAP</strong> before running <code class="code">./configure</code>. Note however that your compiler choice and flags (environment variables <code class="code">CC</code> and <code class="code">CFLAGS</code>) need to be chosen to match the setup of the original <strong class="pkg">GAP</strong> compilation. For example you have to specify 32-bit or 64-bit mode correctly!</p>
<h4>2.3 <span class="Heading">Rebuilding the documentation</span></h4>
<p>The <strong class="pkg">Semigroups</strong> 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 <strong class="pkg">GAPDoc</strong> and <span class="URL"><a href="https://gap-packages.github.io/AutoDoc">AutoDoc</a></span> packages are required. To rebuild the documentation type:</p>
<div class="example"><pre>
gap makedoc.g
</pre></div>
<p>when you're inside the <code class="file">pkg/semigroups-5.5.4</code> directory.</p>
<h4>2.4 <span class="Heading">Testing your installation</span></h4>
<p>In this section we describe how to test that <strong class="pkg">Semigroups</strong> is working as intended. To quickly test that <strong class="pkg">Semigroups</strong> is installed correctly use <code class="func">SemigroupsTestInstall</code> (<a href="chap2_mj.html#X80F85B577A3DFCF9"><span class="RefLink">2.4-1</span></a>). For more extensive tests use <code class="func">SemigroupsTestStandard</code> (<a href="chap2_mj.html#X7C2D57708006AB63"><span class="RefLink">2.4-2</span></a>). Finally, for lengthy benchmarking tests use <code class="func">SemigroupsTestExtreme</code> (<a href="chap2_mj.html#X7ED2F9C784B554D8"><span class="RefLink">2.4-3</span></a>).</p>
<p>If something goes wrong, then please review the instructions in Section <a href="chap2_mj.html#X7DA3059C79842BF3"><span class="RefLink">2.1</span></a> and ensure that <strong class="pkg">Semigroups</strong> has been properly installed. If you continue having problems, please use the <span class="URL"><a href="https://github.com/semigroups/Semigroups/issues">issue tracker</a></span> to report the issues you are having.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupsTestInstall</code>( )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code>.</p>
<p>This function should be called with no argument to test your installation of <strong class="pkg">Semigroups</strong> is working correctly. These tests should take no more than a few seconds to complete. To more comprehensively test that <strong class="pkg">Semigroups</strong> is installed correctly use <code class="func">SemigroupsTestStandard</code> (<a href="chap2_mj.html#X7C2D57708006AB63"><span class="RefLink">2.4-2</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupsTestStandard</code>( )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: A list indicating which tests passed and failed and the time take to run each file.</p>
<p>This function should be called with no argument to comprehensively test that <strong class="pkg">Semigroups</strong> is working correctly. These tests should take no more than a few minutes to complete. To quickly test that <strong class="pkg">Semigroups</strong> is installed correctly use <code class="func">SemigroupsTestInstall</code> (<a href="chap2_mj.html#X80F85B577A3DFCF9"><span class="RefLink">2.4-1</span></a>).</p>
<p>Each test file is run twice, once when the methods for <code class="func">IsActingSemigroup</code> (<a href="chap6_mj.html#X7F69D8FC7D578A0C"><span class="RefLink">6.1-2</span></a>) are enabled and once when they are disabled.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupsTestExtreme</code>( )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: A list indicating which tests passed and failed and the time take to run each file.</p>
<p>This function should be called with no argument to run some long-running tests, which could be used to benchmark <strong class="pkg">Semigroups</strong> or test your hardware. These tests should take no more than around half an hour to complete. To quickly test that <strong class="pkg">Semigroups</strong> is installed correctly use <code class="func">SemigroupsTestInstall</code> (<a href="chap2_mj.html#X80F85B577A3DFCF9"><span class="RefLink">2.4-1</span></a>), or to test all aspects of the package use <code class="func">SemigroupsTestStandard</code> (<a href="chap2_mj.html#X7C2D57708006AB63"><span class="RefLink">2.4-2</span></a>).</p>
<p>Each test file is run twice, once when the methods for semigroups satisfying <code class="func">IsActingSemigroup</code> (<a href="chap6_mj.html#X7F69D8FC7D578A0C"><span class="RefLink">6.1-2</span></a>) are enabled and once when they are disabled.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupsTestAll</code>( )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code>.</p>
<p>This function should be called with no argument to compile the <strong class="pkg">Semigroups</strong> 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 <code class="keyw">true</code> if all the tests succeed, and <code class="keyw">false</code> otherwise. The whole process should take no more than a few minutes.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InfoSemigroups</code></td><td class="tdright">( info class )</td></tr></table></div>
<p><code class="code">InfoSemigroups</code> is the info class of the <strong class="pkg">Semigroups</strong> 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 <a href="../../../doc/ref/chap7_mj.html#X7A9C902479CB6F7C"><span class="RefLink">Reference: Info Functions</span></a> and <code class="func">SetInfoLevel</code> (<a href="../../../doc/ref/chap7_mj.html#X7B2ADC37783104B9"><span class="RefLink">Reference: InfoLevel</span></a>).</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.0.15Bemerkung:
(vorverarbeitet am 2026-05-06)
¤
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 und die Messung sind noch experimentell.