| products/Sources/formale Sprachen/GAP/pkg/simpcomp/doc/chap7_mj.html |
 |
<?xml version= "1.0" encoding= "UTF-8"?>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en">
< head>
< script type= "text/javascript"
src= "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</ script>
< title>GAP (simpcomp) - Chapter 7: Functions and operations for SCNormalSurface</ title>
< meta http-equiv= "content-type" content= "text/html; charset=UTF-8" />
< meta name= "generator" content= "GAPDoc2HTML" />
< link rel= "stylesheet" type= "text/css" href= "manual.css" />
< script src= "manual.js" type= "text/javascript"></ script>
< script type= "text/javascript">overwriteStyle();</ script>
</ head>
< body class= "chap7" onload= "jscontent()">
< div class= "chlinktop">< span class= "chlink1">Goto Chapter: </ span>< a href= "chap0_mj.html">Top< /a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chap15_mj.html">15</a> <a href="chap16_mj.html">16</a> <a href="chap17_mj.html">17</a> <a href="chap18_mj.html">18</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap6_mj.html">[Previous Chapter]</a> <a href="chap8_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap7.html">[MathJax off]</a></p>
<p><a id="X8071FAE8806ACAA2" name="X8071FAE8806ACAA2"></a></p>
<div class="ChapSects"><a href="chap7_mj.html#X8071FAE8806ACAA2">7 <span class="Heading">Functions and operations for <code class="code">SCNormalSurface</code></span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7C63CE8578FBB0C7">7.1 <span class="Heading">Creating an <code class="code">SCNormalSurface</code> object</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X7A59063180BD5969">7.1-1 SCNSEmpty</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X86C51E1F7CFA39F9">7.1-2 SCNSFromFacets</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X78F4044683236A97">7.1-3 SCNS</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X8266FAFC7C6B8685">7.1-4 SCNSSlicing</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7E853EF97A3D0220">7.2 <span class="Heading">Generating new objects from discrete normal surfaces</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X80F13BB484B3E9B2">7.2-1 SCCopy</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X7A180D487B8941C5">7.2-2 SCNSTriangulation</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X83A1885E876D7483">7.3 <span class="Heading">Properties of <code class="code">SCNormalSurface</code> objects</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X82C9F57780C0B7F8">7.3-1 SCConnectedComponents</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X82351AAE793DCB68">7.3-2 SCDim</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X788BAE187D584103">7.3-3 SCEulerCharacteristic</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X81F8071385FD9C1D">7.3-4 SCFVector</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X7F8B561C823DDDBA">7.3-5 SCFaceLattice</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X7AE0029985BD0775">7.3-6 SCFaceLatticeEx</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X79F60850875BB683">7.3-7 SCFpBettiNumbers</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X806E6A4C7CD30A96">7.3-8 SCGenus</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X78D66254858CE901">7.3-9 SCHomology</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X81AF20DC814B51A6">7.3-10 SCIsConnected</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X860375D980E9A801">7.3-11 SCIsEmpty</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X78C860DC851167F7">7.3-12 SCIsOrientable</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X8026B46F8236124D">7.3-13 SCSkel</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X84ACF7D580FE8B76">7.3-14 SCSkelEx</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X84CBD2F780A1F63C">7.3-15 SCTopologicalType</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap7_mj.html#X81DA367A813F7599">7.3-16 SCUnion</a></span>
</div></div>
</div>
<h3>7 <span class="Heading">Functions and operations for <code class="code">SCNormalSurface</code></span></h3>
<p><a id="X7C63CE8578FBB0C7" name="X7C63CE8578FBB0C7"></a></p>
<h4>7.1 <span class="Heading">Creating an <code class="code">SCNormalSurface</code> object</span></h4>
<p>This section contains functions to construct discrete normal surfaces that are slicings from a list of <span class="SimpleMath">\(2\)</span>-dimensional facets (triangles and quadrilaterals) or combinatorial <span class="SimpleMath">\(3\)</span>-manifolds.</p>
<p>For a very short introduction to the theory of discrete normal surfaces and slicings see Section <a href="chap2_mj.html#X7BE7221B7C38B27D"><span class="RefLink">2.4</span></a> and Section <a href="chap2_mj.html#X86275D5979B4B531"><span class="RefLink">2.5</span></a>, for an introduction to the <strong class="pkg">GAP</strong> object type <code class="code">SCNormalSurface</code> see <a href="chap5_mj.html#X80F19FA07C71EDDC"><span class="RefLink">5.4</span></a>, for more information see the article <a href="chapBib_mj.html#biBSpreer10NormSurfsCombSlic">[Spr11b]</a>.</p>
<p><a id="X7A59063180BD5969" name="X7A59063180BD5969"></a></p>
<h5>7.1-1 SCNSEmpty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCNSEmpty</code>( )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: discrete normal surface of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Generates an empty complex (of dimension <span class="SimpleMath">\(-1\)</span>), i. e. an object of type <code class="code">SCNormalSurface</code> with empty facet list.</p>
<div class="example"><pre>
gap> SCNSEmpty();
<NormalSurface: empty normal surface | dim = -1>
</pre></div>
<p><a id="X86C51E1F7CFA39F9" name="X86C51E1F7CFA39F9"></a></p>
<h5>7.1-2 SCNSFromFacets</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCNSFromFacets</code>( <var class="Arg">facets</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: discrete normal surface of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Constructor for a discrete normal surface from a facet list, see <code class="func">SCFromFacets</code> (<a href="chap6_mj.html#X7B5A874584FF34A7"><span class="RefLink">6.1-1</span></a>) for details.</p>
<div class="example"><pre>
gap> sl:=SCNSFromFacets([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);
<NormalSurface: unnamed complex 114 | dim = 2>
</pre></div>
<p><a id="X78F4044683236A97" name="X78F4044683236A97"></a></p>
<h5>7.1-3 SCNS</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCNS</code>( <var class="Arg">facets</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: discrete normal surface of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Internally calls <code class="func">SCNSFromFacets</code> (<a href="chap7_mj.html#X86C51E1F7CFA39F9"><span class="RefLink">7.1-2</span></a>).</p>
<div class="example"><pre>
gap> sl:=SCNS([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);
<NormalSurface: unnamed complex 115 | dim = 2>
</pre></div>
<p><a id="X8266FAFC7C6B8685" name="X8266FAFC7C6B8685"></a></p>
<h5>7.1-4 SCNSSlicing</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCNSSlicing</code>( <var class="Arg">complex</var>, <var class="Arg">slicing</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: discrete normal surface of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes a slicing defined by a partition <var class="Arg">slicing</var> of the set of vertices of the <span class="SimpleMath">\(3\)</span>-dimensional combinatorial pseudomanifold <var class="Arg">complex</var>. In particular, <var class="Arg">slicing</var> has to be a pair of lists of vertex labels and has to contain all vertex labels of <var class="Arg">complex</var>.</p>
<div class="example"><pre>
gap> SCLib.SearchByAttribute("F=[ 10, 35, 50, 25 ]");
[ [ 19, "S^3 (VT)" ] ]
gap> c:=SCLib.Load(last[1][1]);;
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);
<NormalSurface: slicing [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ] of S^3 (VT) \
| dim = 2>
gap> sl.Facets;
[ [ [ 1, 6 ], [ 1, 8 ], [ 1, 9 ] ], [ [ 1, 6 ], [ 1, 8 ], [ 3, 6 ], [ 3, 8 ] ]
, [ [ 1, 6 ], [ 1, 9 ], [ 4, 6 ], [ 4, 9 ] ],
[ [ 1, 6 ], [ 3, 6 ], [ 4, 6 ] ], [ [ 1, 8 ], [ 1, 9 ], [ 1, 10 ] ],
[ [ 1, 8 ], [ 1, 10 ], [ 3, 8 ], [ 3, 10 ] ],
[ [ 1, 9 ], [ 1, 10 ], [ 2, 9 ], [ 2, 10 ] ],
[ [ 1, 9 ], [ 2, 9 ], [ 4, 9 ] ], [ [ 1, 10 ], [ 2, 10 ], [ 3, 10 ] ],
[ [ 2, 7 ], [ 2, 9 ], [ 2, 10 ] ],
[ [ 2, 7 ], [ 2, 9 ], [ 4, 7 ], [ 4, 9 ] ],
[ [ 2, 7 ], [ 2, 10 ], [ 5, 7 ], [ 5, 10 ] ],
[ [ 2, 7 ], [ 4, 7 ], [ 5, 7 ] ], [ [ 2, 10 ], [ 3, 10 ], [ 5, 10 ] ],
[ [ 3, 6 ], [ 3, 8 ], [ 5, 6 ], [ 5, 8 ] ], [ [ 3, 6 ], [ 4, 6 ], [ 5, 6 ] ]
, [ [ 3, 8 ], [ 3, 10 ], [ 5, 8 ], [ 5, 10 ] ],
[ [ 4, 6 ], [ 4, 7 ], [ 4, 9 ] ], [ [ 4, 6 ], [ 4, 7 ], [ 5, 6 ], [ 5, 7 ] ]
, [ [ 5, 6 ], [ 5, 7 ], [ 5, 8 ] ], [ [ 5, 7 ], [ 5, 8 ], [ 5, 10 ] ] ]
gap> sl:=SCNSSlicing(c,[[1,3,5,7,9],[2,4,6,8,10]]);
<NormalSurface: slicing [ [ 1, 3, 5, 7, 9 ], [ 2, 4, 6, 8, 10 ] ] of S^3 (VT) \
| dim = 2>
gap> sl.Facets;
[ [ [ 1, 2 ], [ 1, 4 ], [ 3, 2 ], [ 3, 4 ] ],
[ [ 1, 2 ], [ 1, 4 ], [ 9, 2 ], [ 9, 4 ] ],
[ [ 1, 2 ], [ 1, 10 ], [ 3, 2 ], [ 3, 10 ] ],
[ [ 1, 2 ], [ 1, 10 ], [ 9, 2 ], [ 9, 10 ] ],
[ [ 1, 4 ], [ 1, 6 ], [ 3, 4 ], [ 3, 6 ] ],
[ [ 1, 4 ], [ 1, 6 ], [ 9, 4 ], [ 9, 6 ] ],
[ [ 1, 6 ], [ 1, 8 ], [ 3, 6 ], [ 3, 8 ] ],
[ [ 1, 6 ], [ 1, 8 ], [ 9, 6 ], [ 9, 8 ] ],
[ [ 1, 8 ], [ 1, 10 ], [ 3, 8 ], [ 3, 10 ] ],
[ [ 1, 8 ], [ 1, 10 ], [ 9, 8 ], [ 9, 10 ] ],
[ [ 3, 2 ], [ 3, 4 ], [ 5, 2 ], [ 5, 4 ] ],
[ [ 3, 2 ], [ 3, 10 ], [ 5, 2 ], [ 5, 10 ] ],
[ [ 3, 4 ], [ 3, 6 ], [ 5, 4 ], [ 5, 6 ] ],
[ [ 3, 6 ], [ 3, 8 ], [ 5, 6 ], [ 5, 8 ] ],
[ [ 3, 8 ], [ 3, 10 ], [ 5, 8 ], [ 5, 10 ] ],
[ [ 5, 2 ], [ 5, 4 ], [ 7, 2 ], [ 7, 4 ] ],
[ [ 5, 2 ], [ 5, 10 ], [ 7, 2 ], [ 7, 10 ] ],
[ [ 5, 4 ], [ 5, 6 ], [ 7, 4 ], [ 7, 6 ] ],
[ [ 5, 6 ], [ 5, 8 ], [ 7, 6 ], [ 7, 8 ] ],
[ [ 5, 8 ], [ 5, 10 ], [ 7, 8 ], [ 7, 10 ] ],
[ [ 7, 2 ], [ 7, 4 ], [ 9, 2 ], [ 9, 4 ] ],
[ [ 7, 2 ], [ 7, 10 ], [ 9, 2 ], [ 9, 10 ] ],
[ [ 7, 4 ], [ 7, 6 ], [ 9, 4 ], [ 9, 6 ] ],
[ [ 7, 6 ], [ 7, 8 ], [ 9, 6 ], [ 9, 8 ] ],
[ [ 7, 8 ], [ 7, 10 ], [ 9, 8 ], [ 9, 10 ] ] ]
</pre></div>
<p><a id="X7E853EF97A3D0220" name="X7E853EF97A3D0220"></a></p>
<h4>7.2 <span class="Heading">Generating new objects from discrete normal surfaces</span></h4>
<p><strong class="pkg">simpcomp</strong> provides the possibility to copy and / or triangulate normal surfaces. Note that other constructions like the connected sum or the cartesian product do not make sense for (embedded) normal surfaces in general.</p>
<p><a id="X80F13BB484B3E9B2" name="X80F13BB484B3E9B2"></a></p>
<h5>7.2-1 SCCopy</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCCopy</code>( <var class="Arg">complex</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: discrete normal surface of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Copies a <strong class="pkg">GAP</strong> object of type <code class="code">SCNormalSurface</code> (cf. <code class="func">SCCopy</code>).</p>
<div class="example"><pre>
gap> sl:=SCNSSlicing(SCBdSimplex(4),[[1],[2..5]]);
<NormalSurface: slicing [ [ 1 ], [ 2, 3, 4, 5 ] ] of S^3_5 | dim = 2>
gap> sl_2:=SCCopy(sl);
<NormalSurface: slicing [ [ 1 ], [ 2, 3, 4, 5 ] ] of S^3_5 | dim = 2>
gap> IsIdenticalObj(sl,sl_2);
false
</pre></div>
<p><a id="X7A180D487B8941C5" name="X7A180D487B8941C5"></a></p>
<h5>7.2-2 SCNSTriangulation</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCNSTriangulation</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: simplicial complex of type <code class="code">SCSimplicialComplex</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes a simplicial subdivision of a slicing <var class="Arg">sl</var> without introducing new vertices. The subdivision is stored as a property of <var class="Arg">sl</var> and thus is returned as an immutable object. Note that symmetry may be lost during the computation.</p>
<div class="example"><pre>
gap> SCLib.SearchByAttribute("F=[ 10, 35, 50, 25 ]");
[ [ 19, "S^3 (VT)" ] ]
gap> c:=SCLib.Load(last[1][1]);;
gap> sl:=SCNSSlicing(c,[[1,3,5,7,9],[2,4,6,8,10]]);;
gap> sl.F;
[ 25, 50, 0, 25 ]
gap> sc:=SCNSTriangulation(sl);;
gap> sc.F;
[ 25, 75, 50 ]
</pre></div>
<p><a id="X83A1885E876D7483" name="X83A1885E876D7483"></a></p>
<h4>7.3 <span class="Heading">Properties of <code class="code">SCNormalSurface</code> objects</span></h4>
<p>Although some properties of a discrete normal surface can be computed by using the functions for simplicial complexes, there is a variety of properties needing specially designed functions. See below for a list.</p>
<p><a id="X82C9F57780C0B7F8" name="X82C9F57780C0B7F8"></a></p>
<h5>7.3-1 SCConnectedComponents</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCConnectedComponents</code>( <var class="Arg">complex</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a list of simplicial complexes of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes all connected components of an arbitrary normal surface.</p>
<div class="example"><pre>
gap> sl:=SCNSSlicing(SCBdCrossPolytope(4),[[1,2],[3..8]]);
<NormalSurface: slicing [ [ 1, 2 ], [ 3, 4, 5, 6, 7, 8 ] ] of Bd(\beta^4) | di\
m = 2>
gap> cc:=SCConnectedComponents(sl);
[ <NormalSurface: Connected component #1 of slicing [ [ 1, 2 ], [ 3, 4, 5, 6, \
7, 8 ] ] of Bd(\beta^4) | dim = 2>,
<NormalSurface: Connected component #2 of slicing [ [ 1, 2 ], [ 3, 4, 5, 6, \
7, 8 ] ] of Bd(\beta^4) | dim = 2> ]
</pre></div>
<p><a id="X82351AAE793DCB68" name="X82351AAE793DCB68"></a></p>
<h5>7.3-2 SCDim</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCDim</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: an integer upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the dimension of a discrete normal surface (which is always <span class="SimpleMath">\(2\)</span> if the slicing <var class="Arg">sl</var> is not empty).</p>
<div class="example"><pre>
gap> sl:=SCNSEmpty();;
gap> SCDim(sl);
-1
gap> sl:=SCNSFromFacets([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);;
gap> SCDim(sl);
2
</pre></div>
<p><a id="X788BAE187D584103" name="X788BAE187D584103"></a></p>
<h5>7.3-3 SCEulerCharacteristic</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCEulerCharacteristic</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: an integer upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the Euler characteristic of a discrete normal surface <var class="Arg">sl</var>, cf. <code class="func">SCEulerCharacteristic</code>.</p>
<div class="example"><pre>
gap> list:=SCLib.SearchByName("S^2xS^1");;
gap> c:=SCLib.Load(list[1][1]);;
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);;
gap> SCEulerCharacteristic(sl);
4
</pre></div>
<p><a id="X81F8071385FD9C1D" name="X81F8071385FD9C1D"></a></p>
<h5>7.3-4 SCFVector</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCFVector</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a <span class="SimpleMath">\(1\)</span>, <span class="SimpleMath">\(3\)</span> or <span class="SimpleMath">\(4\)</span> tuple of (non-negative) integer values upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the <span class="SimpleMath">\(f\)</span>-vector of a discrete normal surface, i. e. the number of vertices, edges, triangles and quadrilaterals of <var class="Arg">sl</var>, cf. <code class="func">SCFVector</code>.</p>
<div class="example"><pre>
gap> list:=SCLib.SearchByName("S^2xS^1");;
gap> c:=SCLib.Load(list[1][1]);;
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);;
gap> SCFVector(sl);
[ 20, 40, 16, 8 ]
</pre></div>
<p><a id="X7F8B561C823DDDBA" name="X7F8B561C823DDDBA"></a></p>
<h5>7.3-5 SCFaceLattice</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCFaceLattice</code>( <var class="Arg">complex</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a list of facet lists upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the face lattice of a discrete normal surface <var class="Arg">sl</var> in the original labeling. Triangles and quadrilaterals are stored separately (cf. <code class="func">SCSkel</code> (<a href="chap6_mj.html#X8026B46F8236124D"><span class="RefLink">6.9-54</span></a>)).</p>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;
gap> SCFaceLattice(sl);
[ [ [ [ 1, 3 ] ], [ [ 1, 4 ] ], [ [ 1, 5 ] ], [ [ 2, 3 ] ], [ [ 2, 4 ] ],
[ [ 2, 5 ] ] ],
[ [ [ 1, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 1, 5 ] ], [ [ 1, 3 ], [ 2, 3 ] ],
[ [ 1, 4 ], [ 1, 5 ] ], [ [ 1, 4 ], [ 2, 4 ] ], [ [ 1, 5 ], [ 2, 5 ] ],
[ [ 2, 3 ], [ 2, 4 ] ], [ [ 2, 3 ], [ 2, 5 ] ], [ [ 2, 4 ], [ 2, 5 ] ] ]
, [ [ [ 1, 3 ], [ 1, 4 ], [ 1, 5 ] ], [ [ 2, 3 ], [ 2, 4 ], [ 2, 5 ] ] ],
[ [ [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ] ],
[ [ 1, 3 ], [ 1, 5 ], [ 2, 3 ], [ 2, 5 ] ],
[ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ] ] ] ]
gap> sl.F;
[ 6, 9, 2, 3 ]
</pre></div>
<p><a id="X7AE0029985BD0775" name="X7AE0029985BD0775"></a></p>
<h5>7.3-6 SCFaceLatticeEx</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCFaceLatticeEx</code>( <var class="Arg">complex</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a list of face lists upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the face lattice of a discrete normal surface <var class="Arg">sl</var> in the standard labeling. Triangles and quadrilaterals are stored separately (cf. <code class="func">SCSkelEx</code> (<a href="chap6_mj.html#X84ACF7D580FE8B76"><span class="RefLink">6.9-55</span></a>)).</p>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;
gap> SCFaceLatticeEx(sl);
[ [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ] ],
[ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 5 ], [ 3, 6 ], [ 4, 5 ],
[ 4, 6 ], [ 5, 6 ] ], [ [ 1, 2, 3 ], [ 4, 5, 6 ] ],
[ [ 1, 2, 4, 5 ], [ 1, 3, 4, 6 ], [ 2, 3, 5, 6 ] ] ]
gap> sl.F;
[ 6, 9, 2, 3 ]
</pre></div>
<p><a id="X79F60850875BB683" name="X79F60850875BB683"></a></p>
<h5>7.3-7 SCFpBettiNumbers</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCFpBettiNumbers</code>( <var class="Arg">sl</var>, <var class="Arg">p</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a list of non-negative integers upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the Betti numbers modulo <var class="Arg">p</var> of a slicing <var class="Arg">sl</var>. Internally, <var class="Arg">sl</var> is triangulated (using <code class="func">SCNSTriangulation</code> (<a href="chap7_mj.html#X7A180D487B8941C5"><span class="RefLink">7.2-2</span></a>)) and the Betti numbers are computed via <code class="func">SCFpBettiNumbers</code> using the triangulation.</p>
<div class="example"><pre>
gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 633, "(S^2xS^1)#20" ] ]
gap> c:=SCLib.Load(last[1][1]);;
gap> c.F;
[ 27, 298, 542, 271 ]
gap> sl:=SCNSSlicing(c,[[1..13],[14..27]]);;
gap> SCFpBettiNumbers(sl,2);
[ 2, 14, 2 ]
</pre></div>
<p><a id="X806E6A4C7CD30A96" name="X806E6A4C7CD30A96"></a></p>
<h5>7.3-8 SCGenus</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCGenus</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a non-negative integer upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the genus of a discrete normal surface <var class="Arg">sl</var>.</p>
<div class="example"><pre>
gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 633, "(S^2xS^1)#20" ] ]
gap> c:=SCLib.Load(last[1][1]);;
gap> c.F;
[ 27, 298, 542, 271 ]
gap> sl:=SCNSSlicing(c,[[1..12],[13..27]]);;
gap> SCIsConnected(sl);
true
gap> SCGenus(sl);
7
</pre></div>
<p><a id="X78D66254858CE901" name="X78D66254858CE901"></a></p>
<h5>7.3-9 SCHomology</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCHomology</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a list of homology groups upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes the homology of a slicing <var class="Arg">sl</var>. Internally, <var class="Arg">sl</var> is triangulated (cf. <code class="func">SCNSTriangulation</code> (<a href="chap7_mj.html#X7A180D487B8941C5"><span class="RefLink">7.2-2</span></a>)) and simplicial homology is computed via <code class="func">SCHomology</code> using the triangulation.</p>
<div class="example"><pre>
gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 633, "(S^2xS^1)#20" ] ]
gap> c:=SCLib.Load(last[1][1]);;
gap> c.F;
[ 27, 298, 542, 271 ]
gap> sl:=SCNSSlicing(c,[[1..12],[13..27]]);;
gap> sl.Homology;
[ [ 0, [ ] ], [ 14, [ ] ], [ 1, [ ] ] ]
gap> sl:=SCNSSlicing(c,[[1..13],[14..27]]);;
gap> sl.Homology;
[ [ 1, [ ] ], [ 14, [ ] ], [ 2, [ ] ] ]
</pre></div>
<p><a id="X81AF20DC814B51A6" name="X81AF20DC814B51A6"></a></p>
<h5>7.3-10 SCIsConnected</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCIsConnected</code>( <var class="Arg">complex</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Checks if a normal surface <var class="Arg">complex</var> is connected.</p>
<div class="example"><pre>
gap> list:=SCLib.SearchByAttribute("Dim=3 and F[1]=10");;
gap> c:=SCLib.Load(list[1][1]);
<SimplicialComplex: S^3 (VT) | dim = 3 | n = 10>
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);
<NormalSurface: slicing [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ] of S^3 (VT) \
| dim = 2>
gap> SCIsConnected(sl);
true
</pre></div>
<p><a id="X860375D980E9A801" name="X860375D980E9A801"></a></p>
<h5>7.3-11 SCIsEmpty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCIsEmpty</code>( <var class="Arg">complex</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Checks if a normal surface <var class="Arg">complex</var> is the empty complex, i. e. a <code class="code">SCNormalSurface</code> object with empty facet list.</p>
<div class="example"><pre>
gap> sl:=SCNS([]);;
gap> SCIsEmpty(sl);
true
</pre></div>
<p><a id="X78C860DC851167F7" name="X78C860DC851167F7"></a></p>
<h5>7.3-12 SCIsOrientable</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCIsOrientable</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Checks if a discrete normal surface <var class="Arg">sl</var> is orientable.</p>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1,2],[3,4,5]]);
<NormalSurface: slicing [ [ 1, 2 ], [ 3, 4, 5 ] ] of S^3_5 | dim = 2>
gap> SCIsOrientable(sl);
true
</pre></div>
<p><a id="X8026B46F8236124D" name="X8026B46F8236124D"></a></p>
<h5>7.3-13 SCSkel</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCSkel</code>( <var class="Arg">sl</var>, <var class="Arg">k</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a face list (of <var class="Arg">k+1</var>tuples) or a list of face lists upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes all faces of cardinality <var class="Arg">k+1</var> in the original labeling: <var class="Arg">k</var> <span class="SimpleMath">\(= 0\)</span> computes the vertices, <var class="Arg">k</var> <span class="SimpleMath">\(= 1\)</span> computes the edges, <var class="Arg">k</var> <span class="SimpleMath">\(= 2\)</span> computes the triangles, <var class="Arg">k</var> <span class="SimpleMath">\(= 3\)</span> computes the quadrilaterals.</p>
<p>If <var class="Arg">k</var> is a list (necessarily a sublist of <code class="code">[ 0,1,2,3 ]</code>) all faces of all cardinalities contained in <var class="Arg">k</var> are computed.</p>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;
gap> SCSkel(sl,1);
[ [ [ 1, 2 ], [ 1, 3 ] ], [ [ 1, 2 ], [ 1, 4 ] ], [ [ 1, 2 ], [ 1, 5 ] ],
[ [ 1, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 1, 5 ] ], [ [ 1, 4 ], [ 1, 5 ] ] ]
</pre></div>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;
gap> SCSkel(sl,3);
[ ]
gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;
gap> SCSkelEx(sl,3);
[ [ 1, 2, 4, 5 ], [ 1, 3, 4, 6 ], [ 2, 3, 5, 6 ] ]
</pre></div>
<p><a id="X84ACF7D580FE8B76" name="X84ACF7D580FE8B76"></a></p>
<h5>7.3-14 SCSkelEx</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCSkelEx</code>( <var class="Arg">sl</var>, <var class="Arg">k</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a face list (of <var class="Arg">k+1</var>tuples) or a list of face lists upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Computes all faces of cardinality <var class="Arg">k+1</var> in the standard labeling: <var class="Arg">k</var> <span class="SimpleMath">\(= 0\)</span> computes the vertices, <var class="Arg">k</var> <span class="SimpleMath">\(= 1\)</span> computes the edges, <var class="Arg">k</var> <span class="SimpleMath">\(= 2\)</span> computes the triangles, <var class="Arg">k</var> <span class="SimpleMath">\(= 3\)</span> computes the quadrilaterals.</p>
<p>If <var class="Arg">k</var> is a list (necessarily a sublist of <code class="code">[ 0,1,2,3 ]</code>) all faces of all cardinalities contained in <var class="Arg">k</var> are computed.</p>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;
gap> SCSkelEx(sl,1);
[ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]
</pre></div>
<div class="example"><pre>
gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;
gap> SCSkelEx(sl,3);
[ ]
gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;
gap> SCSkelEx(sl,3);
[ [ 1, 2, 4, 5 ], [ 1, 3, 4, 6 ], [ 2, 3, 5, 6 ] ]
</pre></div>
<p><a id="X84CBD2F780A1F63C" name="X84CBD2F780A1F63C"></a></p>
<h5>7.3-15 SCTopologicalType</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCTopologicalType</code>( <var class="Arg">sl</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a string upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Determines the topological type of <var class="Arg">sl</var> via the classification theorem for closed compact surfaces. If <var class="Arg">sl</var> is not connected, the topological type of each connected component is computed.</p>
<div class="example"><pre>
gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 633, "(S^2xS^1)#20" ] ]
gap> c:=SCLib.Load(last[1][1]);;
gap> c.F;
[ 27, 298, 542, 271 ]
gap> for i in [1..26] do sl:=SCNSSlicing(c,[[1..i],[i+1..27]]); Print(sl.TopologicalType,"\n"); od;
S^2
S^2
S^2
S^2
S^2 U S^2
S^2 U S^2
S^2
(T^2)#3
(T^2)#5
(T^2)#4
(T^2)#3
(T^2)#7
(T^2)#7 U S^2
(T^2)#7 U S^2
(T^2)#7 U S^2
(T^2)#8 U S^2
(T^2)#7 U S^2
(T^2)#8
(T^2)#6
(T^2)#6
(T^2)#5
(T^2)#3
(T^2)#2
T^2
S^2
S^2
</pre></div>
<p><a id="X81DA367A813F7599" name="X81DA367A813F7599"></a></p>
<h5>7.3-16 SCUnion</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SCUnion</code>( <var class="Arg">complex1</var>, <var class="Arg">complex2</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: normal surface of type <code class="code">SCNormalSurface</code> upon success, <code class="keyw">fail</code> otherwise.</p>
<p>Forms the union of two normal surfaces <var class="Arg">complex1</var> and <var class="Arg">complex2</var> as the normal surface formed by the union of their facet sets. The two arguments are not altered. Note: for the union process the vertex labelings of the complexes are taken into account, see also <code class="func">Operation Union (SCNormalSurface, SCNormalSurface)</code> (<a href="chap5_mj.html#X8462E960847F8B83"><span class="RefLink">5.6-1</span></a>). Facets occurring in both arguments are treated as one facet in the new complex.</p>
<div class="example"><pre>
gap> list:=SCLib.SearchByAttribute("Dim=3 and F[1]=10");;
gap> c:=SCLib.Load(list[1][1]);
<SimplicialComplex: S^3 (VT) | dim = 3 | n = 10>
gap> sl1:=SCNSSlicing(c,[[1..5],[6..10]]);;
gap> sl2:=sl1+10;;
gap> sl3:=SCUnion(sl1,sl2);;
gap> SCTopologicalType(sl3);
"S^2 U S^2"
</pre></div>
<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap6_mj.html">[Previous Chapter]</a> <a href="chap8_mj.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chap15_mj.html">15</a> <a href="chap16_mj.html">16</a> <a href="chap17_mj.html">17</a> <a href="chap18_mj.html">18</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
¤ Dauer der Verarbeitung: 0.21 Sekunden
¤
*© Formatika GbR, Deutschland
|
|