Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bib Ind

### 7 Functions and operations for SCNormalSurface

#### 7.1 Creating an SCNormalSurface object

This section contains functions to construct discrete normal surfaces that are slicings from a list of 2-dimensional facets (triangles and quadrilaterals) or combinatorial 3-manifolds.

For a very short introduction to the theory of discrete normal surfaces and slicings see Section 2.4 and Section 2.5, for an introduction to the GAP object type SCNormalSurface see 5.4, for more information see the article [Spr11b].

##### 7.1-1 SCNSEmpty
 ‣ SCNSEmpty( ) ( function )

Returns: discrete normal surface of type SCNormalSurface upon success, fail otherwise.

Generates an empty complex (of dimension -1), i. e. an object of type SCNormalSurface with empty facet list.

 gap> SCNSEmpty();
[NormalSurface

Properties known: Dim, FacetsEx, Name, Vertices.

Name="empty normal surface"
Dim=-1

/NormalSurface]


##### 7.1-2 SCNSFromFacets
 ‣ SCNSFromFacets( facets ) ( method )

Returns: discrete normal surface of type SCNormalSurface upon success, fail otherwise.

Constructor for a discrete normal surface from a facet list, see SCFromFacets (6.1-1) for details.

 gap> sl:=SCNSFromFacets([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);
[NormalSurface

Properties known: Dim, FacetsEx, Name, Vertices.

Name="unnamed complex 86"
Dim=2

/NormalSurface]


##### 7.1-3 SCNS
 ‣ SCNS( facets ) ( method )

Returns: discrete normal surface of type SCNormalSurface upon success, fail otherwise.

Internally calls SCNSFromFacets (7.1-2).

 gap> sl:=SCNS([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);
[NormalSurface

Properties known: Dim, FacetsEx, Name, Vertices.

Name="unnamed complex 87"
Dim=2

/NormalSurface]


##### 7.1-4 SCNSSlicing
 ‣ SCNSSlicing( complex, slicing ) ( function )

Returns: discrete normal surface of type SCNormalSurface upon success, fail otherwise.

Computes a slicing defined by a partition slicing of the set of vertices of the 3-dimensional combinatorial pseudomanifold complex. In particular, slicing has to be a pair of lists of vertex labels and has to contain all vertex labels of complex.

 gap> SCLib.SearchByAttribute("F=[ 10, 35, 50, 25 ]");
[ [ 19, "S^3 (VT)" ] ]
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);
[NormalSurface

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
e, Vertices.

Name="slicing [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ] of S^3 (VT)"
Dim=2
FVector=[ 17, 36, 12, 9 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface]
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

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
e, Vertices.

Name="slicing [ [ 1, 3, 5, 7, 9 ], [ 2, 4, 6, 8, 10 ] ] of S^3 (VT)"
Dim=2
FVector=[ 25, 50, 0, 25 ]
EulerCharacteristic=0
IsOrientable=true
TopologicalType="T^2"

/NormalSurface]
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 ] ] ]


#### 7.2 Generating new objects from discrete normal surfaces

simpcomp 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.

##### 7.2-1 SCCopy
 ‣ SCCopy( complex ) ( method )

Returns: discrete normal surface of type SCNormalSurface upon success, fail otherwise.

Copies a GAP object of type SCNormalSurface (cf. SCCopy).

 gap> sl:=SCNSSlicing(SCBdSimplex(4),[[1],[2..5]]);
[NormalSurface

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
e, Vertices.

Name="slicing [ [ 1 ], [ 2, 3, 4, 5 ] ] of S^3_5"
Dim=2
FVector=[ 4, 6, 4 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface]
gap> sl_2:=SCCopy(sl);
[NormalSurface

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
e, Vertices.

Name="slicing [ [ 1 ], [ 2, 3, 4, 5 ] ] of S^3_5"
Dim=2
FVector=[ 4, 6, 4 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface]
gap> IsIdenticalObj(sl,sl_2);
false


##### 7.2-2 SCNSTriangulation
 ‣ SCNSTriangulation( sl ) ( method )

Returns: simplicial complex of type SCSimplicialComplex upon success, fail otherwise.

Computes a simplicial subdivision of a slicing sl without introducing new vertices. The subdivision is stored as a property of sl and thus is returned as an immutable object. Note that symmetry may be lost during the computation.

 gap> SCLib.SearchByAttribute("F=[ 10, 35, 50, 25 ]");
[ [ 19, "S^3 (VT)" ] ]
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 ]


#### 7.3 Properties of SCNormalSurface objects

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.

##### 7.3-1 SCConnectedComponents
 ‣ SCConnectedComponents( complex ) ( method )

Returns: a list of simplicial complexes of type SCNormalSurface upon success, fail otherwise.

Computes all connected components of an arbitrary normal surface.

 gap> sl:=SCNSSlicing(SCBdCrossPolytope(4),[[1,2],[3..8]]);
[NormalSurface

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalType, Vert\
ices.

Name="slicing [ [ 1, 2 ], [ 3, 4, 5, 6, 7, 8 ] ] of Bd(\beta^4)"
Dim=2
FVector=[ 12, 24, 16 ]
EulerCharacteristic=4
IsOrientable=true
TopologicalType="S^2 U S^2"

/NormalSurface]
gap> cc:=SCConnectedComponents(sl);
[ [NormalSurface

Properties known: Dim, EulerCharacteristic, FVector, FacetsEx, Genus, IsC\
onnected, IsOrientable, NSTriangulation, Name, TopologicalType, Vertices.

Name="unnamed complex 302_cc_#1"
Dim=2
FVector=[ 6, 12, 8 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface], [NormalSurface

Properties known: Dim, EulerCharacteristic, FVector, FacetsEx, Genus, IsC\
onnected, IsOrientable, NSTriangulation, Name, TopologicalType, Vertices.

Name="unnamed complex 302_cc_#2"
Dim=2
FVector=[ 6, 12, 8 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface] ]


##### 7.3-2 SCDim
 ‣ SCDim( sl ) ( method )

Returns: an integer upon success, fail otherwise.

Computes the dimension of a discrete normal surface (which is always 2 if the slicing sl is not empty).

 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


##### 7.3-3 SCEulerCharacteristic
 ‣ SCEulerCharacteristic( sl ) ( method )

Returns: an integer upon success, fail otherwise.

Computes the Euler characteristic of a discrete normal surface sl, cf. SCEulerCharacteristic.

 gap> list:=SCLib.SearchByName("S^2xS^1");;
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);;
gap> SCEulerCharacteristic(sl);
4


##### 7.3-4 SCFVector
 ‣ SCFVector( sl ) ( method )

Returns: a 1, 3 or 4 tuple of (non-negative) integer values upon success, fail otherwise.

Computes the f-vector of a discrete normal surface, i. e. the number of vertices, edges, triangles and quadrilaterals of sl, cf. SCFVector.

 gap> list:=SCLib.SearchByName("S^2xS^1");;
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);;
gap> SCFVector(sl);
[ 20, 40, 16, 8 ]


##### 7.3-5 SCFaceLattice
 ‣ SCFaceLattice( complex ) ( method )

Returns: a list of facet lists upon success, fail otherwise.

Computes the face lattice of a discrete normal surface sl in the original labeling. Triangles and quadrilaterals are stored separately (cf. SCSkel (6.9-54)).

 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 ]


##### 7.3-6 SCFaceLatticeEx
 ‣ SCFaceLatticeEx( complex ) ( method )

Returns: a list of face lists upon success, fail otherwise.

Computes the face lattice of a discrete normal surface sl in the standard labeling. Triangles and quadrilaterals are stored separately (cf. SCSkelEx (6.9-55)).

 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 ]


##### 7.3-7 SCFpBettiNumbers
 ‣ SCFpBettiNumbers( sl, p ) ( method )

Returns: a list of non-negative integers upon success, fail otherwise.

Computes the Betti numbers modulo p of a slicing sl. Internally, sl is triangulated (using SCNSTriangulation (7.2-2)) and the Betti numbers are computed via SCFpBettiNumbers using the triangulation.

 gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 7617, "(S^2xS^1)#20" ] ]
gap> c.F;
[ 27, 298, 542, 271 ]
gap> sl:=SCNSSlicing(c,[[1..13],[14..27]]);;
gap> SCFpBettiNumbers(sl,2);
[ 2, 14, 2 ]


##### 7.3-8 SCGenus
 ‣ SCGenus( sl ) ( method )

Returns: a non-negative integer upon success, fail otherwise.

Computes the genus of a discrete normal surface sl.

 gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 7617, "(S^2xS^1)#20" ] ]
gap> c.F;
[ 27, 298, 542, 271 ]
gap> sl:=SCNSSlicing(c,[[1..12],[13..27]]);;
gap> SCIsConnected(sl);
true
gap> SCGenus(sl);
7


##### 7.3-9 SCHomology
 ‣ SCHomology( sl ) ( method )

Returns: a list of homology groups upon success, fail otherwise.

Computes the homology of a slicing sl. Internally, sl is triangulated (cf. SCNSTriangulation (7.2-2)) and simplicial homology is computed via SCHomology using the triangulation.

 gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 7617, "(S^2xS^1)#20" ] ]
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, [  ] ] ]


##### 7.3-10 SCIsConnected
 ‣ SCIsConnected( complex ) ( method )

Returns: true or false upon success, fail otherwise.

Checks if a normal surface complex is connected.

 gap> list:=SCLib.SearchByAttribute("Dim=3 and F[1]=10");;
[SimplicialComplex

Properties known: AltshulerSteinberg, AutomorphismGroup,
AutomorphismGroupSize, AutomorphismGroupStructure,
AutomorphismGroupTransitivity, ConnectedComponents,
Dim, DualGraph, EulerCharacteristic, FVector,
FacetsEx, GVector, GeneratorsEx, HVector,
HasBoundary, HasInterior, Homology, Interior,
IsCentrallySymmetric, IsConnected,
IsEulerianManifold, IsManifold, IsOrientable,
IsPseudoManifold, IsPure, IsStronglyConnected,
MinimalNonFacesEx, Name, Neighborliness,
NumFaces[], Orientation, Reference, SkelExs[],
Vertices.

Name="S^3 (VT)"
Dim=3
AltshulerSteinberg=0
AutomorphismGroupSize=200
AutomorphismGroupStructure="(D10 x D10) : C2"
AutomorphismGroupTransitivity=1
EulerCharacteristic=0
FVector=[ 10, 35, 50, 25 ]
GVector=[ 5, 5 ]
HVector=[ 6, 11, 6, 1 ]
HasBoundary=false
HasInterior=true
Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
IsCentrallySymmetric=false
IsConnected=true
IsEulerianManifold=true
IsOrientable=true
IsPseudoManifold=true
IsPure=true
IsStronglyConnected=true
Neighborliness=1

/SimplicialComplex]
gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);
[NormalSurface

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
e, Vertices.

Name="slicing [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ] of S^3 (VT)"
Dim=2
FVector=[ 17, 36, 12, 9 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface]
gap> SCIsConnected(sl);
true


##### 7.3-11 SCIsEmpty
 ‣ SCIsEmpty( complex ) ( method )

Returns: true or false upon success, fail otherwise.

Checks if a normal surface complex is the empty complex, i. e. a SCNormalSurface object with empty facet list.

 gap> sl:=SCNS([]);;
gap> SCIsEmpty(sl);
true


##### 7.3-12 SCIsOrientable
 ‣ SCIsOrientable( sl ) ( method )

Returns: true or false upon success, fail otherwise.

Checks if a discrete normal surface sl is orientable.

 gap> c:=SCBdSimplex(4);;
gap> sl:=SCNSSlicing(c,[[1,2],[3,4,5]]);
[NormalSurface

Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
e, Vertices.

Name="slicing [ [ 1, 2 ], [ 3, 4, 5 ] ] of S^3_5"
Dim=2
FVector=[ 6, 9, 2, 3 ]
EulerCharacteristic=2
IsOrientable=true
TopologicalType="S^2"

/NormalSurface]
gap> SCIsOrientable(sl);
true


##### 7.3-13 SCSkel
 ‣ SCSkel( sl, k ) ( method )

Returns: a face list (of k+1tuples) or a list of face lists upon success, fail otherwise.

Computes all faces of cardinality k+1 in the original labeling: k = 0 computes the vertices, k = 1 computes the edges, k = 2 computes the triangles, k = 3 computes the quadrilaterals.

If k is a list (necessarily a sublist of [ 0,1,2,3 ]) all faces of all cardinalities contained in k are computed.

 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 ] ] ]

 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 ] ]


##### 7.3-14 SCSkelEx
 ‣ SCSkelEx( sl, k ) ( method )

Returns: a face list (of k+1tuples) or a list of face lists upon success, fail otherwise.

Computes all faces of cardinality k+1 in the standard labeling: k = 0 computes the vertices, k = 1 computes the edges, k = 2 computes the triangles, k = 3 computes the quadrilaterals.

If k is a list (necessarily a sublist of [ 0,1,2,3 ]) all faces of all cardinalities contained in k are computed.

 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 ] ]

 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 ] ]


##### 7.3-15 SCTopologicalType
 ‣ SCTopologicalType( sl ) ( method )

Returns: a string upon success, fail otherwise.

Determines the topological type of sl via the classification theorem for closed compact surfaces. If sl is not connected, the topological type of each connected component is computed.

 gap> SCLib.SearchByName("(S^2xS^1)#20");
[ [ 7617, "(S^2xS^1)#20" ] ]
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


##### 7.3-16 SCUnion
 ‣ SCUnion( complex1, complex2 ) ( method )

Returns: normal surface of type SCNormalSurface upon success, fail otherwise.

Forms the union of two normal surfaces complex1 and complex2 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 Operation Union (SCNormalSurface, SCNormalSurface) (5.6-1). Facets occurring in both arguments are treated as one facet in the new complex.

 gap> list:=SCLib.SearchByAttribute("Dim=3 and F[1]=10");;
[SimplicialComplex

Properties known: AltshulerSteinberg, AutomorphismGroup,
AutomorphismGroupSize, AutomorphismGroupStructure,
AutomorphismGroupTransitivity, ConnectedComponents,
Dim, DualGraph, EulerCharacteristic, FVector,
FacetsEx, GVector, GeneratorsEx, HVector,
HasBoundary, HasInterior, Homology, Interior,
IsCentrallySymmetric, IsConnected,
IsEulerianManifold, IsManifold, IsOrientable,
IsPseudoManifold, IsPure, IsStronglyConnected,
MinimalNonFacesEx, Name, Neighborliness,
NumFaces[], Orientation, Reference, SkelExs[],
Vertices.

Name="S^3 (VT)"
Dim=3
AltshulerSteinberg=0
AutomorphismGroupSize=200
AutomorphismGroupStructure="(D10 x D10) : C2"
AutomorphismGroupTransitivity=1
EulerCharacteristic=0
FVector=[ 10, 35, 50, 25 ]
GVector=[ 5, 5 ]
HVector=[ 6, 11, 6, 1 ]
HasBoundary=false
HasInterior=true
Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
IsCentrallySymmetric=false
IsConnected=true
IsEulerianManifold=true
IsOrientable=true
IsPseudoManifold=true
IsPure=true
IsStronglyConnected=true
Neighborliness=1

/SimplicialComplex]
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"

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bib Ind

generated by GAPDoc2HTML