<p><strong class="pkg">simpcomp</strong> is a <strong class="pkg">GAP</strong> package that provides the user with functions to do calculations and constructions with simplicial complexes in the context of combinatorial topology (see abstract). If possible, it makes use of the <strong class="pkg">GAP</strong> packages <strong class="pkg">homology</strong> <a href="chapBib.html#biBDumas04Homology">[DHSW11]</a> by J.-G. Dumas et al. and <strong class="pkg">GRAPE</strong> <a href="chapBib.html#biBSoicher06GRAPE">[Soi12]</a> by L. Soicher.</p>
<p>Most parts of this manual can be accessed directly from within <strong class="pkg">GAP</strong> using its internal help system.</p>
<h4>1.1 <span class="Heading">What is new</span></h4>
<p><strong class="pkg">simpcomp</strong> is a package for working with simplicial complexes. It claims to provide the user with a broad spectrum of functionality regarding simplicial constructions.</p>
<p><strong class="pkg">simpcomp</strong> allows the user to interactively construct complexes and to compute their properties in the <strong class="pkg">GAP</strong> shell. Furthermore, it makes use of <strong class="pkg">GAP</strong>'s expertise in groups and group operations. For example, automorphism groups and fundamental groups of complexes can be computed and examined further within the GAP system. Apart from supplying a facet list, the user can as well construct simplicial complexes from a set of generators and a prescribed automorphism group -- the latter form being the common in which a complex is presented in a publication. This feature is to our knowledge unique to simpcomp. Furthermore, simpcomp as of Version 1.3.0 supports the construction of simplicial complexes of prescribed dimension, vertex number and transitive automorphism group as described in [Lut03], [CK01] and a number of functions (function prefix SCSeries...) provide infinite series of combinatorial manifolds with transitive automorphism group.
<p>As of Version 1.4.0, <strong class="pkg">simpcomp</strong> provides the possibility to perform a combinatorial version of algebraic blowups, so-called simplicial blowups, for combinatorial <span class="SimpleMath">4</span>-manfolds as described in <a href="chapBib.html#biBSpreer09CombPorpsOfK3">[SK11]</a> and <a href="chapBib.html#biBSpreer10Diss">[Spr11a]</a>. The implementation can be used as well to resolve isolated singularities of combinatorial <span class="SimpleMath">4</span>-pseudomanifolds. It seems that this feature, too, is unique to <strong class="pkg">simpcomp</strong>.</p>
<p>Starting from Version 1.5.4, <strong class="pkg">simpcomp</strong> comes with more efficient code to perform bistellar moves implemented in <code class="code">C</code> (see function <code class="func">SCReduceComplexFast</code> (<a href="chap9.html#X8714A0A578A281C0"><span class="RefLink">9.2-15</span></a>)). However, this feature is completely optional.</p>
<p>The origin of <strong class="pkg">simpcomp</strong> is a collection of scripts of the two authors <a href="chapBib.html#biBEffenberger10Diss">[Eff11a]</a>, <a href="chapBib.html#biBSpreer10Diss">[Spr11a]</a> that provide basic and often-needed functions and operations for working with simplicial complexes. Apart from some optional code dealing with bistellar moves (see Section <a href="chap9.html#X82F1CE7A79A3CA47"><span class="RefLink">9</span></a> and in particular <code class="func">SCReduceComplexFast</code> (<a href="chap9.html#X8714A0A578A281C0"><span class="RefLink">9.2-15</span></a>)), it is written entirely in the <strong class="pkg">GAP</strong> scripting language, thus giving the user the possibility to see behind the scenes and to customize or alter <strong class="pkg">simpcomp</strong> functions if needed.</p>
<p>The main benefit when working with <strong class="pkg">simpcomp</strong> over implementing the needed functions from scratch is that <strong class="pkg">simpcomp</strong> encapsulates all methods and properties of a simplicial complex in a new <strong class="pkg">GAP</strong> object type (as an abstract data type). This way, among other things, <strong class="pkg">simpcomp</strong> can transparently cache properties already calculated, thus preventing unnecessary double calculations. It also takes care of the error-prone vertex labeling of a complex. As of Version 1.5, <strong class="pkg">simpcomp</strong> makes use of <strong class="pkg">GAP</strong>'s caching mechanism (as described in [BL98]) to cache all known properties of a simplicial complex. In addition, a customized data structure is provided to organize the complex library and to cache temporary information about a complex.
<p><strong class="pkg">simpcomp</strong> provides the user with functions to save and load the simplicial complexes to and from files and to import and export a complex in various formats (e.g. from and to <strong class="pkg">polymake/TOPAZ</strong> <a href="chapBib.html#biBJoswig00Polymake">[GJ00]</a>, <strong class="pkg">SnapPea</strong> <a href="chapBib.html#biBSnapPea">[Wee99]</a> and <strong class="pkg">Regina</strong> <a href="chapBib.html#biBregina">[BBP+14]</a> (via the <strong class="pkg">SnapPea</strong> file format), <strong class="pkg">Macaulay2</strong> <a href="chapBib.html#biBM2">[GS]</a>, LaTeX, etc.).</p>
<p>In contrast to the software package <strong class="pkg">polymake</strong> <a href="chapBib.html#biBJoswig00Polymake">[GJ00]</a> providing the most efficient algorithms for each task in form of a heterogeneous package (where algorithms are implemented in various languages), the primary goal when developing <strong class="pkg">simpcomp</strong> was not efficiency (this is already limited by the <strong class="pkg">GAP</strong> scripting language), but rather ease of use and ease of extensibility by the user in the <strong class="pkg">GAP</strong> language with all its mathematical and algebraic capabilities. Extending <strong class="pkg">simpcomp</strong> is possible directly from within <strong class="pkg">GAP</strong>, without having to compile anything, see Chapter <a href="chap18.html#X8478539A7A292D1A"><span class="RefLink">18</span></a>.</p>
<h4>1.3 <span class="Heading">How to save time reading this document</span></h4>
<p>The core component in <strong class="pkg">simpcomp</strong> is the newly defined object types <code class="code">SCPropertyObject</code> and its derived subtype <code class="code">SCSimplicialComplex</code>. When working with this package it is important to understand how objects of these types can be created, accessed and modified. The reader is therefore advised to first skim over the Chapters <a href="chap3.html#X83DEEDF8835622AD"><span class="RefLink">3</span></a> and <a href="chap5.html#X78B454D3799549A9"><span class="RefLink">5</span></a>.</p>
<p>The impatient reader may then directly skip to Chapter <a href="chap17.html#X78CC1D0D809E5D2E"><span class="RefLink">17</span></a> to see <strong class="pkg">simpcomp</strong> in action.</p>
<p>The next advised step is to have a look at the functions for creating objects of type <code class="code">SCSimplicialComplex</code>, see the first section of Chapter <a href="chap6.html#X82BDBFFC81D080D1"><span class="RefLink">6</span></a>.</p>
<p>The rest of Chapter <a href="chap6.html#X82BDBFFC81D080D1"><span class="RefLink">6</span></a> contains most of the functions that <strong class="pkg">simpcomp</strong> provides, except for the functions related to (co-)homology, bistellar flips, simplicial blowups, polyhedral Morse theory, slicings (discrete normal surfaces) and the simplicial complex library that are described in the Chapters <a href="chap8.html#X7B0C706A848A2542"><span class="RefLink">8</span></a> to <a href="chap13.html#X82F59668851B5E80"><span class="RefLink">13</span></a>. Functions for the more general <strong class="pkg">GAP</strong> object type <code class="code">SCPolyhedralComplex</code> are described in Chapter <a href="chap4.html#X840691C285AB3AAD"><span class="RefLink">4</span></a> .</p>
<h4>1.4 <span class="Heading">Organization of this document</span></h4>
<p>This manual accompanying <strong class="pkg">simpcomp</strong> is organized as follows.</p>
<ul>
<li><p>Chapter <a href="chap2.html#X7E15BCD07F132C67"><span class="RefLink">2</span></a> provides a short introduction into the theory of simplicial complexes and PL-topology.</p>
</li>
<li><p>Chapter <a href="chap3.html#X83DEEDF8835622AD"><span class="RefLink">3</span></a> gives a short overview about the newly defined <strong class="pkg">GAP</strong> object types <strong class="pkg">simpcomp</strong> is working with.</p>
</li>
<li><p>Chapter <a href="chap4.html#X840691C285AB3AAD"><span class="RefLink">4</span></a> is devoted to the description of the <strong class="pkg">GAP</strong> object type <code class="code">SCPolyhedralComplex</code> that is defined by <strong class="pkg">simpcomp</strong>.</p>
</li>
<li><p>Chapter <a href="chap5.html#X78B454D3799549A9"><span class="RefLink">5</span></a> introduce the <strong class="pkg">GAP</strong> object types <code class="code">SCSimplicialComplex</code> and <code class="code">SCNormalSurface</code> which are both derived from <code class="code">SCPolyhedralComplex</code>.</p>
</li>
<li><p>In Chapter <a href="chap6.html#X82BDBFFC81D080D1"><span class="RefLink">6</span></a> functions for working with simplicial complexes are described.</p>
</li>
<li><p>Chapter <a href="chap7.html#X8071FAE8806ACAA2"><span class="RefLink">7</span></a> gives an overview over functions related to slicings / discrete normal surfaces.</p>
</li>
<li><p>Chapter <a href="chap8.html#X7B0C706A848A2542"><span class="RefLink">8</span></a> describes the homology- and cohomology-related functions of <strong class="pkg">simpcomp</strong>.</p>
</li>
<li><p>Chapter <a href="chap9.html#X82F1CE7A79A3CA47"><span class="RefLink">9</span></a> contains a description of the functions related to bistellar flips provided by <strong class="pkg">simpcomp</strong>.</p>
</li>
<li><p>In Chapter <a href="chap10.html#X7E1BE673859191F0"><span class="RefLink">10</span></a> simplicial blowups and resolutions of singularities of combinatorial <span class="SimpleMath">4</span>-pseudomanifolds are explained.</p>
</li>
<li><p>In Chapter <a href="chap11.html#X78438FF584D18B8A"><span class="RefLink">11</span></a> polyhedral Morse theory is discussed.</p>
</li>
<li><p>In Chapter <a href="chap13.html#X82F59668851B5E80"><span class="RefLink">13</span></a> the simplicial complex library and the inputoutput functionality that <strong class="pkg">simpcomp</strong> provides is described in detail.</p>
</li>
<li><p>Chapter <a href="chap15.html#X8308D685809A4E2F"><span class="RefLink">15</span></a> contains descriptions of functions not fitting in the other chapters, such as the error handling and the email notification system of <strong class="pkg">simpcomp</strong>.</p>
</li>
<li><p>Chapter <a href="chap16.html#X79E5133F86718164"><span class="RefLink">16</span></a> contains a list of all property handlers allowing to access properties of a <code class="code">SCSimplicialComplex</code> object, a <code class="code">SCNormalSurface</code> object or a <code class="code">SCLibRepository</code> object via the dot operator (pseudo object orientation).</p>
</li>
<li><p>Chapter <a href="chap17.html#X78CC1D0D809E5D2E"><span class="RefLink">17</span></a> contains the transcript of a demo session with <strong class="pkg">simpcomp</strong> showing some of the constructions and calculations with simplicial complexes that can also be used as a first overview of things possible with this package.</p>
</li>
<li><p>Finally, Chapter <a href="chap18.html#X8478539A7A292D1A"><span class="RefLink">18</span></a> focuses on the description of the internal structure of <strong class="pkg">simpcomp</strong> and deals with aspects of extending the functionality of the package.</p>
<h4>1.5 <span class="Heading">How to assure <strong class="pkg">simpcomp</strong> works correctly</span></h4>
<p>As with all software, it is important to test whether <strong class="pkg">simpcomp</strong> functions correctly on your system after installing it. <strong class="pkg">GAP</strong> has an internal testing mechanism and <strong class="pkg">simpcomp</strong> ships with a short testing file that does some sample computations and verifies that the results are correct.</p>
<p>To test the functionality of <strong class="pkg">simpcomp</strong> you can run the function <code class="func">SCRunTest</code> (<a href="chap15.html#X7A26BD457A6E7AC3"><span class="RefLink">15.3-1</span></a>) from the <strong class="pkg">GAP</strong> console:</p>
<p><code class="func">SCRunTest</code> (<a href="chap15.html#X7A26BD457A6E7AC3"><span class="RefLink">15.3-1</span></a>) should return <code class="keyw">true</code>, otherwise the correct functionality of simpcomp cannot be guaranteed.</p>
<p>Note that the verbosity of the output of information to the screen during calls to functions of the package <strong class="pkg">simpcomp</strong> can be controlled by setting the info level parameter via the function <code class="func">SCInfoLevel</code> (<a href="chap15.html#X79815139873FF4CF"><span class="RefLink">15.1-1</span></a>).</p>
<h4>1.7 <span class="Heading">How to cite <strong class="pkg">simpcomp</strong></span></h4>
<p>If you would like to cite <strong class="pkg">simpcomp</strong> using BibTeX, you can use the following BibTeX entry for the current <strong class="pkg">simpcomp</strong> version (remember to include the <code class="code">url</code> package in your LaTeX document):</p>
<pre class="normal">
@manual{simpcomp,
author = "Felix Effenberger and Jonathan Spreer", title = "{\tt simpcomp} - a {\tt GAP} toolkit for simplicial complexes,
{V}ersion 2.1.14",
year = "2022",
url = "\url{https://github.com/simpcomp-team/simpcomp}",
}
</pre>
<p>If you are not using BibTeX, you can use the following entry inside the bibliography environment of LaTeX.</p>
<pre class="normal">
\bibitem{simpcomp}
F.~Effenberger and J.~Spreer,
\emph{{\tt simpcomp} -- a {\tt GAP} toolkit for simplicial complexes},
Version 2.1.14,
2022,
\url{https://github.com/simpcomp-team/simpcomp}.
¤ 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.16Bemerkung:
(vorverarbeitet)
¤
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.