<p>This manual describes the <strong class="pkg">Smallsemi</strong> package (Version 0.7.2) for <strong class="pkg">GAP</strong>.</p>
<p>The <strong class="pkg">Smallsemi</strong> package is a data library of semigroups of small size. It provides all semigroups with at most 8 elements as well as various information about these objects. The reason that semigroups of higher orders are not included is the huge number of such objects. The numbers of semigroups of sizes 1 to 9 are given in the table below (orders not included in the library are in italics). The number of semigroups of size 10 is not known at the time of writing.</p>
<p>The initial idea for <strong class="pkg">Smallsemi</strong> was developed out of the wish for an extensive number of examples of semigroups of moderate size. This lead to the idea of an electronical database. As an existing example the <strong class="pkg">SmallGroups Library</strong> <a href="chapBib.html#biBsmallgroups">[BEO02]</a> was an inspiration on how such a project could be established. Unfortunately the number of semigroups is so much bigger, and most of them bare so little structure, that new techniques to store and handle the semigroups had to be developed. Of course, the first step was to actually construct all the semigroups.</p>
<p>In the remainder of the introduction we explain what you need to do to install and optimize <strong class="pkg">Smallsemi</strong>; see Subsections <a href="chap1.html#X85A08CF187A6D986"><span class="RefLink">1.1</span></a> and <a href="chap1.html#X796A04C37CB7AC04"><span class="RefLink">1.2</span></a>.</p>
<p>In Chapter <a href="chap2.html#X7E933CC381DA3D7C"><span class="RefLink">2</span></a> we explain how the semigroups where obtained, what exactly is stored and how, and which additional properties have been precomputed.</p>
<p>The the types of use <strong class="pkg">Smallsemi</strong> is intended for and its limitations are described in Chapter <a href="chap3.html#X7CDC63A27F7790AA"><span class="RefLink">3</span></a>. The extensive examples can be used as a quick-start guide and as something to come back to after reading the technical details about available functionality in the subsequent sections.</p>
<p>Chapter <a href="chap4.html#X87F1120883F5B4D0"><span class="RefLink">4</span></a> has all the information about available functions.</p>
<p>This software is written for <strong class="pkg">GAP</strong> 4. It requires an existing installation of <strong class="pkg">GAP</strong> in version 4.5 or higher.</p>
<p>It is recommended but not necessary to have the <strong class="pkg">GAP</strong> 4 packages <strong class="pkg">Citrus</strong> and <strong class="pkg">sgpviz</strong> installed as well. <strongclass="pkg">Citrus</strong> provides a wide range of functionality for working with semigroups which is not available in the <strong class="pkg">GAP</strong> core system while <strong class="pkg">sgpviz</strong> is recommended for its ability to graphically represent small semigroups.</p>
<p>The current version of <strong class="pkg">Smallsemi</strong> was created for use under Unix. It will also work under Windows but only if all files in the directory <code class="file">smallsemi/data</code> and all of its subdirectories are uncompressed. See Subsection <a href="chap1.html#X87E4E0377BF1EAC6"><span class="RefLink">1.1-3</span></a> for additional comments on working with <strong class="pkg">Smallsemi</strong> under Windows.</p>
<p>Working with <strong class="pkg">Smallsemi</strong> can be memory expensive. We recommend to have at least 1 GB of RAM available. With less than 512 MB not all the semigroups of size 8 can be accessed.</p>
<p>You should be able to use the semigroups of orders 1 through 7 having 128 MB of RAM only. If you have a system with little memory or want to use as little memory as possible for the <strong class="pkg">GAP</strong> process try using <code class="func">UnloadSmallsemiData</code> (<a href="chap4.html#X841BB74986A73272"><span class="RefLink">4.1-9</span></a>) to free memory after every access to the library. This is likely to slow down computations though.</p>
<p>For further information on how <strong class="pkg">GAP</strong> uses memory see <a href="chap1.html#X803939AE7C3565DA"><span class="RefLink">1.2-4</span></a> or <a href="../../../doc/ref/chap3_mj.html#X782751D5858A6EAF"><span class="RefLink">Reference: Command Line Options</span></a>.</p>
<p>As the data in the library is compressed, 30 MB of disk space will be sufficient to install <strong class="pkg">Smallsemi</strong> under Unix. To use the library under Windows the data has to be uncompressed and will then occupy approx. 1.6 GB.</p>
<p>All data files are compressed using <code class="file">gzip</code>. Under Unix <strong class="pkg">GAP</strong> can access the original contents of a gzipped file without uncompressing it as a whole by using a pipe. On 32-bit systems this might fail in extreme circumstances. In that case <strong class="pkg">GAP</strong> has to be restarted. This functionality is <em>not</em> currently available under Windows (or for any other compression type).</p>
<p>It should be possible to use <strong class="pkg">Smallsemi</strong> under Windows after unzipping all data files. (These are located in the directory <code class="file">data</code> and its subdirectories and have the file extension <code class="file">.gz</code>.)</p>
<h5>1.2-1 <span class="Heading">Download and Extract <strong class="pkg">Smallsemi</strong></span></h5>
<p>The installation follows standard <strong class="pkg">GAP</strong> rules as outlined in the following two steps; see <a href="../../../doc/ref/chap76_mj.html#X82473E4B8756C6CD"><span class="RefLink">Reference: Installing a GAP Package</span></a> for further details.</p>
<ol>
<li><p>Download one of the archives <code class="file">smallsemi-0.7.2.tar.gz</code> or <code class="file">smallsemi-0.7.2.tar.bz2</code> from <br /> <span class="URL"><a href="http://www-groups.mcs.st-andrews.ac.uk/~jamesm/smallsemi.php">http://www-groups.mcs.st-andrews.ac.uk/~jamesm/smallsemi.php</a></span></p>
</li>
<li><p>Move the archive inside a <code class="file">pkg</code> directory. This can be either the main <code class="file">pkg</code> directory in your <strong class="pkg">GAP</strong> installation or your personal <code class="file">pkg</code> directory.</p>
</li>
<li><p>Complete the installation by unpacking the archive, e.g. under Linux type <code class="file">tar -xzf smallsemi-0.7.2.tar.gz</code> at the prompt for the gzipped <code class="file">tar</code>-archive. A subdirectory <code class="file">smallsemi</code> will be created inside the <codeclass="file">pkg</code> directory.</p>
<p>To use the package, start a <strong class="pkg">GAP</strong> session and type <code class="code">LoadPackage("smallsemi");</code> at the <strong class="pkg">GAP</strong> prompt. You should see the following:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">LoadPackage("smallsemi");</span>
-----------------------------------------------------------------------------
Smallsemi - A library of small semigroups
by Andreas Distler & James Mitchell
For contents, type: ?Smallsemi:
Loading Smallsemi &VERSION; ...
-----------------------------------------------------------------------------
true
</pre></div>
<p>You might want to start <strong class="pkg">GAP</strong> with a specified amount of memory; see Subsection <a href="chap1.html#X803939AE7C3565DA"><span class="RefLink">1.2-4</span></a>.</p>
<p>As mentioned in Subsection <a href="chap1.html#X78F27CCA81555251"><span class="RefLink">1.1-2</span></a>, working with <strong class="pkg">smallsemi </strong> can be memory expensive. It is therefore necessary to either:</p>
<ol>
<li><p>start <strong class="pkg">GAP</strong> with 1 GB of memory (if possible), for example, by typing <code class="code">gap -m 1g</code>; or</p>
</li>
<li><p>extend the amount memory used by typing <code class="code">return;</code> in the break-loop whenever <strong class="pkg">GAP</strong> runs out of memory. For example,</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s := SmallSemigroup(8, 183244314);</span>
#I Loading 'smallsemi' data. Please be patient.
#I Loading 'smallsemi' data.
Error, exceeded the permitted memory (`-o' command line option)
SplitString( StringFile( file ), "\n" ) called from
READ_3NIL_DATA( diag ); called from
RecoverMultiplicationTable( size, nr ) called from
<function>( <arguments> ) called from read-eval-loop
you can 'return;'
<span class="GAPbrkprompt">brk></span>
</pre></div>
<p>You should verify the success of the installation by running the test file. This is done by the following command and should return a similar output (the timings will differ depending on the speed of your machine):</p>
testing: smallsemi/tst/coclass.tst
2350 ms (323 ms GC) and 471MB allocated for coclass.tst
testing: smallsemi/tst/enums.tst
3452 ms (923 ms GC) and 2.69GB allocated for enums.tst
testing: smallsemi/tst/greensstar.tst
173 ms (109 ms GC) and 90.1MB allocated for greensstar.tst
testing: smallsemi/tst/properties.tst
574 ms (233 ms GC) and 213MB allocated for properties.tst
testing: smallsemi/tst/small.tst
322 ms (201 ms GC) and 174MB allocated for small.tst
testing: smallsemi/tst/smallsemi01.tst
323 ms (56 ms GC) and 128MB allocated for smallsemi01.tst
testing: smallsemi/tst/smallsemi02.tst
2079 ms (587 ms GC) and 1.23GB allocated for smallsemi02.tst
-----------------------------------
total 9273 ms (2432 ms GC) and 4.98GB allocated
0 failures in 7 files
<p>If you are using <strong class="pkg">Smallsemi</strong> regularly you might want to put the command <code class="code">LoadPackage("smallsemi");</code> into your <code class="file">.gaprc</code> file; see <a href="../../../doc/ref/chap3_mj.html#X7FD66F977A3B02DF"><span class="RefLink">Reference: The gap.ini and gaprc files</span></a>. Another option is to save a workspace after loading <strong class="pkg">Smallsemi</strong> and executing the following commands</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallSemigroup(7, 1);; MOREDATA2TO8;;</span>
#I smallsemi: loading data for semigroups of size 7.
#I smallsemi: loading data for semigroup properties. Please be patient.
<span class="GAPprompt">gap></span> <span class="GAPinput">SaveWorkspace("<filename for the workspace>");</span>
</pre></div>
<p>Doing this will mean that it is not necessary to load the data from the library every time you start a new <strong class="pkg">GAP</strong> session; see <a href="../../../doc/ref/chap3_mj.html#X7CB282757ACB1C09"><span class="RefLink">Reference: Saving and Loading a Workspace</span></a>.</p>
<p>The size of the file containing the saved workspace will be around 76 MB. Loading this workspace is much quicker than starting a new <strong class="pkg">GAP</strong> session and all the data for semigroups of orders 1 through 7 is immediately available. (If you are working under Unix you can make use of the functionality mentioned in Subsection <a href="chap1.html#X87E4E0377BF1EAC6"><span class="RefLink">1.1-3</span></a> and compress the workspace with gzip to roughly 10 MB.)</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.