GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X3 [33X[0;0YThe new GAP object types of [5Xsimpcomp[105X[101X[1X[133X[101X23[33X[0;0YIn order to meet the particular requirements of piecewise linear geometric4objects and their invariants, [5Xsimpcomp[105X defines a number of new [5XGAP[105X object5types.[133X67[33X[0;0YAll new object types are derived from the object type [10XSCPropertyObject[110X which8is a subtype of [10XRecord[110X. It is a [5XGAP[105X object consisting of permanent and9temporary attributes. While [5Xsimpcomp[105X makes use of [5XGAP[105X's internal attribute10caching mechanism for permanent attributes (see below), this is not the case11for temporary ones.[133X1213[33X[0;0YThe temporary properties of a [10XSCPropertyObject[110X can be accessed directly with14the functions [10XSCPropertyTmpByName[110X and changed with [10XSCPropertyTmpSet[110X. But15this direct access to property objects is discouraged when working with16[5Xsimpcomp[105X, as the internal consistency of the objects cannot be guaranteed17when the properties of the objects are modified in this way.[133X1819[33X[0;0YImportant note: The temporary properties of [10XSCPropertyObject[110X are not used to20hold properties (in the [5XGAP[105X sense) of simplicial complexes or other21geometric objects. This is done by the GAP4 type system [BL98]. Instead, the22properties handled by [5Xsimpcomp[105X's own caching mechanism are used to store23changing information, e.g. the complex library (see Section [14X13[114X) of the24package or any other data which possibly is subject to changes (and thus not25suited to be stored by the [5XGAP[105X type system).[133X2627[33X[0;0YTo realize its complex library (see Section [14X13[114X), [5Xsimpcomp[105X defines a [5XGAP[105X28object type [10XSCLibRepository[110X which provides the possibility to store, load,29etc. any defined geometric object to and from the build-in complex library30as well as customized user libraries. In addition, a searching mechanism is31provided.[133X3233[33X[0;0YGeometric objects are represented by the [5XGAP[105X object type34[10XSCPolyhedralComplex[110X, which as well is a subtype of [10XSCPropertyObject[110X.35[10XSCPolyhedralComplex[110X is designed to represent any kind of piecewise linear36geometric object given by a certain cell decomposition. Here, as already37mentioned, the GAP4 type system [BL98] is used to cache properties of the38object. In this way, a property is not calculated multiple times in case the39object is not altered (see [2XSCPropertiesDropped[102X ([14X5.1-4[114X) for a way of dropping40previously calculated properties).[133X4142[33X[0;0YAs of Version 1.4, [5Xsimpcomp[105X makes use of two different subtypes of43[10XSCPolyhedralComplex[110X: [10XSCSimplicialComplex[110X to handle simplicial complexes and44[10XSCNormalSurface[110X to deal with discrete normal surfaces (slicings of dimension452). Whenever possible, only one method per operations is implemented to deal46with all subtypes of [10XSCPolyhedralComplex[110X, these functions are described in47Chapter [14X4[114X. For all other operations, the different methods for48[10XSCSimplicialComplex[110X and [10XSCNormalSurface[110X are documented separately.[133X495051[1X3.1 [33X[0;0YAccessing properties of a [10XSCPolyhedralComplex[110X[101X[1X object[133X[101X5253[33X[0;0YAs described above the object type [10XSCPolyhedralComplex[110X (and thus also the54[5XGAP[105X object types [10XSCSimplicialComplex[110X and [10XSCNormalSurface[110X) has properties55that are handled by the GAP4 type system. Hence, GAP takes care of the56internal consistency of objects of type [10XSCSimplicialComplex[110X.[133X5758[33X[0;0YThere are two ways of accessing properties of a [10XSCPolyhedralComplex[110X object.59The first is to call a property handler function of the property one wishes60to calculate. The first argument of such a property handler function is61always the simplicial complex for which the property should be calculated,62in some cases followed by further arguments of the property handler63function. An example would be:[133X6465[4X[32X Example [32X[104X66[4X[25Xgap>[125X [27Xc:=SCBdSimplex(3);; # create a SCSimplicialComplex object[127X[104X67[4X[25Xgap>[125X [27XSCFVector(c);[127X[104X68[4X[28X[ 4, 6, 4 ][128X[104X69[4X[25Xgap>[125X [27XSCSkel(c,0);[127X[104X70[4X[28X[ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ][128X[104X71[4X[32X[104X7273[33X[0;0YHere the functions [10XSCFVector[110X and [10XSCSkel[110X are the property handler functions,74see Chapter [14X16[114X for a list of all property handlers of a [10XSCPolyhedralComplex[110X,75[10XSCSimplicialComplex[110X or [10XSCNormalSurface[110X object. Apart from this (standard)76method of calling the property handlers directly with a [10XSCPolyhedralComplex[110X77object, [5Xsimpcomp[105X provides the user with another more object oriented method78which calls property handlers of a [10XSCPolyhedralComplex[110X object indirectly and79more conveniently:[133X8081[4X[32X Example [32X[104X82[4X[25Xgap>[125X [27Xc:=SCBdSimplex(3);; # create a SCSimplicialComplex object[127X[104X83[4X[25Xgap>[125X [27Xc.F;[127X[104X84[4X[28X[ 4, 6, 4 ][128X[104X85[4X[25Xgap>[125X [27Xc.Skel(0);[127X[104X86[4X[28X[ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ][128X[104X87[4X[32X[104X8889[33X[0;0YNote that the code in this example calculates the same properties as in the90first example above, but the properties of a [10XSCPolyhedralComplex[110X object are91accessed via the [10X.[110X operator (the record access operator).[133X9293[33X[0;0YFor each property handler of a [10XSCPolyhedralComplex[110X object the object94oriented form of this property handler equals the name of the corresponding95operation. However, in most cases abbreviations are available: Usually the96prefix ``[10XSC[110X'' can be dropped, in other cases even shorter names are97available. See Chapter [14X16[114X for a complete list of all abbreviations98available.[133X99100101102