Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

1035322 views
1
2
3 The new GAP object types of simpcomp
3
4
In order to meet the particular requirements of piecewise linear geometric
5
objects and their invariants, simpcomp defines a number of new GAP object
6
types.
7
8
All new object types are derived from the object type SCPropertyObject which
9
is a subtype of Record. It is a GAP object consisting of permanent and
10
temporary attributes. While simpcomp makes use of GAP's internal attribute
11
caching mechanism for permanent attributes (see below), this is not the case
12
for temporary ones.
13
14
The temporary properties of a SCPropertyObject can be accessed directly with
15
the functions SCPropertyTmpByName and changed with SCPropertyTmpSet. But
16
this direct access to property objects is discouraged when working with
17
simpcomp, as the internal consistency of the objects cannot be guaranteed
18
when the properties of the objects are modified in this way.
19
20
Important note: The temporary properties of SCPropertyObject are not used to
21
hold properties (in the GAP sense) of simplicial complexes or other
22
geometric objects. This is done by the GAP4 type system [BL98]. Instead, the
23
properties handled by simpcomp's own caching mechanism are used to store
24
changing information, e.g. the complex library (see Section 13) of the
25
package or any other data which possibly is subject to changes (and thus not
26
suited to be stored by the GAP type system).
27
28
To realize its complex library (see Section 13), simpcomp defines a GAP
29
object type SCLibRepository which provides the possibility to store, load,
30
etc. any defined geometric object to and from the build-in complex library
31
as well as customized user libraries. In addition, a searching mechanism is
32
provided.
33
34
Geometric objects are represented by the GAP object type
35
SCPolyhedralComplex, which as well is a subtype of SCPropertyObject.
36
SCPolyhedralComplex is designed to represent any kind of piecewise linear
37
geometric object given by a certain cell decomposition. Here, as already
38
mentioned, the GAP4 type system [BL98] is used to cache properties of the
39
object. In this way, a property is not calculated multiple times in case the
40
object is not altered (see SCPropertiesDropped (5.1-4) for a way of dropping
41
previously calculated properties).
42
43
As of Version 1.4, simpcomp makes use of two different subtypes of
44
SCPolyhedralComplex: SCSimplicialComplex to handle simplicial complexes and
45
SCNormalSurface to deal with discrete normal surfaces (slicings of dimension
46
2). Whenever possible, only one method per operations is implemented to deal
47
with all subtypes of SCPolyhedralComplex, these functions are described in
48
Chapter 4. For all other operations, the different methods for
49
SCSimplicialComplex and SCNormalSurface are documented separately.
50
51
52
3.1 Accessing properties of a SCPolyhedralComplex object
53
54
As described above the object type SCPolyhedralComplex (and thus also the
55
GAP object types SCSimplicialComplex and SCNormalSurface) has properties
56
that are handled by the GAP4 type system. Hence, GAP takes care of the
57
internal consistency of objects of type SCSimplicialComplex.
58
59
There are two ways of accessing properties of a SCPolyhedralComplex object.
60
The first is to call a property handler function of the property one wishes
61
to calculate. The first argument of such a property handler function is
62
always the simplicial complex for which the property should be calculated,
63
in some cases followed by further arguments of the property handler
64
function. An example would be:
65
66
 Example 
67
gap> c:=SCBdSimplex(3);; # create a SCSimplicialComplex object
68
gap> SCFVector(c);
69
[ 4, 6, 4 ]
70
gap> SCSkel(c,0);
71
[ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
72

73
74
Here the functions SCFVector and SCSkel are the property handler functions,
75
see Chapter 16 for a list of all property handlers of a SCPolyhedralComplex,
76
SCSimplicialComplex or SCNormalSurface object. Apart from this (standard)
77
method of calling the property handlers directly with a SCPolyhedralComplex
78
object, simpcomp provides the user with another more object oriented method
79
which calls property handlers of a SCPolyhedralComplex object indirectly and
80
more conveniently:
81
82
 Example 
83
gap> c:=SCBdSimplex(3);; # create a SCSimplicialComplex object
84
gap> c.F;
85
[ 4, 6, 4 ]
86
gap> c.Skel(0);
87
[ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
88

89
90
Note that the code in this example calculates the same properties as in the
91
first example above, but the properties of a SCPolyhedralComplex object are
92
accessed via the . operator (the record access operator).
93
94
For each property handler of a SCPolyhedralComplex object the object
95
oriented form of this property handler equals the name of the corresponding
96
operation. However, in most cases abbreviations are available: Usually the
97
prefix ``SC'' can be dropped, in other cases even shorter names are
98
available. See Chapter 16 for a complete list of all abbreviations
99
available.
100
101
102