GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X11 [33X[0;0YPolyhedral Morse theory[133X[101X23[33X[0;0YIn this chapter we present some useful functions dealing with polyhedral4Morse theory. See Section [14X2.5[114X for a very short introduction to the field,5see [K{\95] for more information. Note: this is not to be confused with6Robin Forman's discrete Morse theory for cell complexes which is described7in Chapter [14X12[114X.[133X89[33X[0;0YIf [22XM[122X is a combinatorial [22Xd[122X-manifold with [22Xn[122X-vertices a rsl-function will be10represented as an ordering on the set of vertices, i. e. a list of length [22Xn[122X11containing all vertex labels of the corresponding simplicial complex.[133X121314[1X11.1 [33X[0;0YPolyhedral Morse theory related functions[133X[101X1516[1X11.1-1 SCIsTight[101X1718[29X[2XSCIsTight[102X( [3Xcomplex[103X ) [32X method19[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X2021[33X[0;0YChecks whether a simplicial complex [10Xcomplex[110X ([10Xcomplex[110X must satisfy the weak22pseudomanifold property and must be closed) is a tight triangulation (with23respect to the field with two elements) or not. A simplicial complex with [22Xn[122X24vertices is said to be a tight triangulation if it can be tightly embedded25into the [22X(n-1)[122X-simplex. See Section [14X2.7[114X for a short introduction to the26field of tightness.[133X2728[33X[0;0YFirst, if [10Xcomplex[110X is a [22X(k+1)[122X-neighborly [22X2k[122X-manifold (cf. [K{\95], Corollary294.7), or [10Xcomplex[110X is of dimension [22Xd≥ 4[122X, [22X2[122X-neighborly and all its vertex links30are stacked spheres (i.e. the complex is in Walkup's class [22XK(d)[122X, see31[Eff11b]) [9Xtrue[109X is returned as the complex is a tight triangulation in these32cases. If [10Xcomplex[110X is of dimension [22Xd = 3[122X, [9Xtrue[109X is returned if and only if33[10Xcomplex[110X is [22X2[122X-neighborly and stacked (i.e. tight-neighbourly, see [BDSS15]),34otherwise [9Xfalse[109X is returned, see [BDS16].[133X3536[33X[0;0YNote that, for dimension [22Xd ≥ 4[122X, it is not computed whether or not [10Xcomplex[110X is37a combinatorial manifold as this computation might take a long time. Hence,38only if the manifold flag of the complex is set (this can be achieved by39calling [2XSCIsManifold[102X ([14X12.1-17[114X) and the complex indeed is a combinatorial40manifold) these checks are performed.[133X4142[33X[0;0YIn a second step, the algorithm first checks certain rsl-functions allowing43slicings between minimal non faces and the rest of the complex. In most44cases where [10Xcomplex[110X is not tight at least one of these rsl-functions is not45perfect and thus [10Xfalse[110X is returned as the complex is not a tight46triangulation.[133X4748[33X[0;0YIf the complex passed all checks so far, the remaining rsl-functions are49checked for being perfect functions. As there are ``only'' [22X2^n[122X different50multiplicity vectors, but [22Xn![122X different rsl-functions, a lookup table51containing all possible multiplicity vectors is computed first. Note that52nonetheless the complexity of this algorithm is [22XO(n!)[122X.[133X5354[33X[0;0YIn order to reduce the number of rsl-functions that need to be checked, the55automorphism group of [10Xcomplex[110X is computed first using [2XSCAutomorphismGroup[102X56([14X6.9-2[114X). In case it is [22Xk[122X-transitive, the complexity is reduced by the factor57of [22Xn ⋅ (n-1) ⋅ dots ⋅ (n-k+1)[122X.[133X5859[4X[32X Example [32X[104X60[4X[28X gap> list:=SCLib.SearchByName("S^2~S^1 (VT)"){[1..9]};[128X[104X61[4X[28X [ [ 12, "S^2~S^1 (VT)" ], [ 27, "S^2~S^1 (VT)" ], [ 28, "S^2~S^1 (VT)" ], [128X[104X62[4X[28X [ 43, "S^2~S^1 (VT)" ], [ 47, "S^2~S^1 (VT)" ], [ 49, "S^2~S^1 (VT)" ], [128X[104X63[4X[28X [ 89, "S^2~S^1 (VT)" ], [ 90, "S^2~S^1 (VT)" ], [ 111, "S^2~S^1 (VT)" ] ][128X[104X64[4X[28X gap> s2s1:=SCLib.Load(list[1][1]);[128X[104X65[4X[28X [SimplicialComplex[128X[104X66[4X[28X [128X[104X67[4X[28X Properties known: AltshulerSteinberg, AutomorphismGroup, [128X[104X68[4X[28X AutomorphismGroupSize, AutomorphismGroupStructure, [128X[104X69[4X[28X AutomorphismGroupTransitivity, ConnectedComponents, [128X[104X70[4X[28X Dim, DualGraph, EulerCharacteristic, FVector, [128X[104X71[4X[28X FacetsEx, GVector, GeneratorsEx, HVector, [128X[104X72[4X[28X HasBoundary, HasInterior, Homology, Interior, [128X[104X73[4X[28X IsCentrallySymmetric, IsConnected, [128X[104X74[4X[28X IsEulerianManifold, IsManifold, IsOrientable, [128X[104X75[4X[28X IsPseudoManifold, IsPure, IsStronglyConnected, [128X[104X76[4X[28X MinimalNonFacesEx, Name, Neighborliness, [128X[104X77[4X[28X NumFaces[], Orientation, Reference, SkelExs[], [128X[104X78[4X[28X Vertices.[128X[104X79[4X[28X [128X[104X80[4X[28X Name="S^2~S^1 (VT)"[128X[104X81[4X[28X Dim=3[128X[104X82[4X[28X AltshulerSteinberg=250838208[128X[104X83[4X[28X AutomorphismGroupSize=18[128X[104X84[4X[28X AutomorphismGroupStructure="D18"[128X[104X85[4X[28X AutomorphismGroupTransitivity=1[128X[104X86[4X[28X EulerCharacteristic=0[128X[104X87[4X[28X FVector=[ 9, 36, 54, 27 ][128X[104X88[4X[28X GVector=[ 4, 10 ][128X[104X89[4X[28X HVector=[ 5, 15, 5, 1 ][128X[104X90[4X[28X HasBoundary=false[128X[104X91[4X[28X HasInterior=true[128X[104X92[4X[28X Homology=[ [ 0, [ ] ], [ 1, [ ] ], [ 0, [ 2 ] ], [ 0, [ ] ] ][128X[104X93[4X[28X IsCentrallySymmetric=false[128X[104X94[4X[28X IsConnected=true[128X[104X95[4X[28X IsEulerianManifold=true[128X[104X96[4X[28X IsOrientable=false[128X[104X97[4X[28X IsPseudoManifold=true[128X[104X98[4X[28X IsPure=true[128X[104X99[4X[28X IsStronglyConnected=true[128X[104X100[4X[28X Neighborliness=2[128X[104X101[4X[28X [128X[104X102[4X[28X /SimplicialComplex][128X[104X103[4X[28X gap> SCInfoLevel(2); # print information while running[128X[104X104[4X[28X true[128X[104X105[4X[28X gap> SCIsTight(s2s1); time;[128X[104X106[4X[28X #I SCIsTight: complex is 3-dimensional and tight neighbourly, and thus tight.[128X[104X107[4X[28X true[128X[104X108[4X[28X 4[128X[104X109[4X[28X [128X[104X110[4X[32X[104X111112[4X[32X Example [32X[104X113[4X[28X gap> SCLib.SearchByAttribute("F[1] = 120");[128X[104X114[4X[28X [ [ 7647, "Bd(600-cell)" ] ][128X[104X115[4X[28X gap> id:=last[1][1];;[128X[104X116[4X[28X gap> c:=SCLib.Load(id);;[128X[104X117[4X[28X gap> SCIsTight(c); time;[128X[104X118[4X[28X #I SCIsTight: complex is connected but not 2-neighbourly, and thus not tight.[128X[104X119[4X[28X false[128X[104X120[4X[28X 12[128X[104X121[4X[28X [128X[104X122[4X[32X[104X123124[4X[32X Example [32X[104X125[4X[28X gap> SCInfoLevel(0);[128X[104X126[4X[28X true[128X[104X127[4X[28X gap> SCLib.SearchByName("K3"); [128X[104X128[4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X129[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X130[4X[28X gap> SCIsManifold(c);[128X[104X131[4X[28X true[128X[104X132[4X[28X gap> SCInfoLevel(1);[128X[104X133[4X[28X true[128X[104X134[4X[28X gap> c.IsTight; [128X[104X135[4X[28X #I SCIsTight: complex is (k+1)-neighborly 2k-manifold and thus tight.[128X[104X136[4X[28X true[128X[104X137[4X[28X [128X[104X138[4X[32X[104X139140[4X[32X Example [32X[104X141[4X[28X gap> SCInfoLevel(1);[128X[104X142[4X[28X true[128X[104X143[4X[28X gap> dc:=[ [ 1, 1, 1, 1, 45 ], [ 1, 2, 1, 27, 18 ], [ 1, 27, 9, 9, 3 ], [128X[104X144[4X[28X > [ 4, 7, 20, 9, 9 ], [ 9, 9, 11, 9, 11 ], [ 6, 9, 9, 17, 8 ], [128X[104X145[4X[28X > [ 6, 10, 8, 17, 8 ], [ 8, 8, 8, 8, 17 ], [ 5, 6, 9, 9, 20 ] ];;[128X[104X146[4X[28X gap> c:=SCBoundary(SCFromDifferenceCycles(dc));;[128X[104X147[4X[28X gap> SCAutomorphismGroup(c);;[128X[104X148[4X[28X gap> SCIsTight(c);[128X[104X149[4X[28X true[128X[104X150[4X[28X [128X[104X151[4X[32X[104X152153[4X[32X Example [32X[104X154[4X[28X gap> list:=SCLib.SearchByName("S^3xS^1");[128X[104X155[4X[28X [ [ 55, "S^3xS^1 (VT)" ], [ 128, "S^3xS^1 (VT)" ], [ 399, "S^3xS^1 (VT)" ], [128X[104X156[4X[28X [ 459, "S^3xS^1 (VT)" ], [ 460, "S^3xS^1 (VT)" ], [ 461, "S^3xS^1 (VT)" ], [128X[104X157[4X[28X [ 462, "S^3xS^1 (VT)" ], [ 588, "S^3xS^1 (VT)" ], [ 612, "S^3xS^1 (VT)" ], [128X[104X158[4X[28X [ 699, "S^3xS^1 (VT)" ], [ 700, "S^3xS^1 (VT)" ], [ 701, "S^3xS^1 (VT)" ], [128X[104X159[4X[28X [ 703, "S^3xS^1 (VT)" ], [ 1078, "S^3xS^1 (VT)" ], [ 1080, "S^3xS^1 (VT)" ],[128X[104X160[4X[28X [ 1081, "S^3xS^1 (VT)" ], [ 1082, "S^3xS^1 (VT)" ], [128X[104X161[4X[28X [ 1083, "S^3xS^1 (VT)" ], [ 1084, "S^3xS^1 (VT)" ], [128X[104X162[4X[28X [ 1085, "S^3xS^1 (VT)" ], [ 1086, "S^3xS^1 (VT)" ], [128X[104X163[4X[28X [ 1087, "S^3xS^1 (VT)" ], [ 1088, "S^3xS^1 (VT)" ], [128X[104X164[4X[28X [ 1089, "S^3xS^1 (VT)" ], [ 1091, "S^3xS^1 (VT)" ], [128X[104X165[4X[28X [ 2413, "S^3xS^1 (VT)" ], [ 2470, "S^3xS^1 (VT)" ], [128X[104X166[4X[28X [ 2471, "S^3xS^1 (VT)" ], [ 2472, "S^3xS^1 (VT)" ], [128X[104X167[4X[28X [ 2473, "S^3xS^1 (VT)" ], [ 2474, "S^3xS^1 (VT)" ], [128X[104X168[4X[28X [ 2475, "S^3xS^1 (VT)" ], [ 2476, "S^3xS^1 (VT)" ], [128X[104X169[4X[28X [ 3413, "S^3xS^1 (VT)" ], [ 3414, "S^3xS^1 (VT)" ], [128X[104X170[4X[28X [ 3415, "S^3xS^1 (VT)" ], [ 3416, "S^3xS^1 (VT)" ], [128X[104X171[4X[28X [ 3417, "S^3xS^1 (VT)" ], [ 3418, "S^3xS^1 (VT)" ], [128X[104X172[4X[28X [ 3419, "S^3xS^1 (VT)" ], [ 3420, "S^3xS^1 (VT)" ], [128X[104X173[4X[28X [ 3421, "S^3xS^1 (VT)" ], [ 3422, "S^3xS^1 (VT)" ], [128X[104X174[4X[28X [ 3423, "S^3xS^1 (VT)" ], [ 3424, "S^3xS^1 (VT)" ], [128X[104X175[4X[28X [ 3425, "S^3xS^1 (VT)" ], [ 3426, "S^3xS^1 (VT)" ], [128X[104X176[4X[28X [ 3427, "S^3xS^1 (VT)" ], [ 3428, "S^3xS^1 (VT)" ], [128X[104X177[4X[28X [ 3429, "S^3xS^1 (VT)" ], [ 3430, "S^3xS^1 (VT)" ], [128X[104X178[4X[28X [ 3431, "S^3xS^1 (VT)" ], [ 3432, "S^3xS^1 (VT)" ], [128X[104X179[4X[28X [ 3433, "S^3xS^1 (VT)" ], [ 3434, "S^3xS^1 (VT)" ] ][128X[104X180[4X[28X gap> c:=SCLib.Load(list[1][1]); [128X[104X181[4X[28X [SimplicialComplex[128X[104X182[4X[28X [128X[104X183[4X[28X Properties known: AltshulerSteinberg, AutomorphismGroup, [128X[104X184[4X[28X AutomorphismGroupSize, AutomorphismGroupStructure, [128X[104X185[4X[28X AutomorphismGroupTransitivity, ConnectedComponents, [128X[104X186[4X[28X Dim, DualGraph, EulerCharacteristic, FVector, [128X[104X187[4X[28X FacetsEx, GVector, GeneratorsEx, HVector, [128X[104X188[4X[28X HasBoundary, HasInterior, Homology, Interior, [128X[104X189[4X[28X IsCentrallySymmetric, IsConnected, [128X[104X190[4X[28X IsEulerianManifold, IsManifold, IsOrientable, [128X[104X191[4X[28X IsPseudoManifold, IsPure, IsStronglyConnected, [128X[104X192[4X[28X MinimalNonFacesEx, Name, Neighborliness, [128X[104X193[4X[28X NumFaces[], Orientation, Reference, SkelExs[], [128X[104X194[4X[28X Vertices.[128X[104X195[4X[28X [128X[104X196[4X[28X Name="S^3xS^1 (VT)"[128X[104X197[4X[28X Dim=4[128X[104X198[4X[28X AltshulerSteinberg=737125273600[128X[104X199[4X[28X AutomorphismGroupSize=22[128X[104X200[4X[28X AutomorphismGroupStructure="D22"[128X[104X201[4X[28X AutomorphismGroupTransitivity=1[128X[104X202[4X[28X EulerCharacteristic=0[128X[104X203[4X[28X FVector=[ 11, 55, 110, 110, 44 ][128X[104X204[4X[28X GVector=[ 5, 15, -20 ][128X[104X205[4X[28X HVector=[ 6, 21, 1, 16, -1 ][128X[104X206[4X[28X HasBoundary=false[128X[104X207[4X[28X HasInterior=true[128X[104X208[4X[28X Homology=[ [ 0, [ ] ], [ 1, [ ] ], [ 0, [ ] ], [ 1, [ ] ], [ 1, [ ] ] ][128X[104X209[4X[28X IsCentrallySymmetric=false[128X[104X210[4X[28X IsConnected=true[128X[104X211[4X[28X IsEulerianManifold=true[128X[104X212[4X[28X IsOrientable=true[128X[104X213[4X[28X IsPseudoManifold=true[128X[104X214[4X[28X IsPure=true[128X[104X215[4X[28X IsStronglyConnected=true[128X[104X216[4X[28X Neighborliness=2[128X[104X217[4X[28X [128X[104X218[4X[28X /SimplicialComplex][128X[104X219[4X[28X gap> SCInfoLevel(0);[128X[104X220[4X[28X true[128X[104X221[4X[28X gap> SCIsManifold(c);[128X[104X222[4X[28X true[128X[104X223[4X[28X gap> SCInfoLevel(2); [128X[104X224[4X[28X true[128X[104X225[4X[28X gap> c.IsTight; [128X[104X226[4X[28X #I SCIsInKd: complex has transitive automorphism group, only checking one link.[128X[104X227[4X[28X #I SCIsInKd: checking link 1/1[128X[104X228[4X[28X #I SCIsKStackedSphere: checking if complex is a 1-stacked sphere...[128X[104X229[4X[28X #I SCIsKStackedSphere: try 1/1[128X[104X230[4X[28X #I round 0[128X[104X231[4X[28X Reduced complex, F: [ 9, 26, 34, 17 ][128X[104X232[4X[28X #I round 1[128X[104X233[4X[28X Reduced complex, F: [ 8, 22, 28, 14 ][128X[104X234[4X[28X #I round 2[128X[104X235[4X[28X Reduced complex, F: [ 7, 18, 22, 11 ][128X[104X236[4X[28X #I round 3[128X[104X237[4X[28X Reduced complex, F: [ 6, 14, 16, 8 ][128X[104X238[4X[28X #I round 4[128X[104X239[4X[28X Reduced complex, F: [ 5, 10, 10, 5 ][128X[104X240[4X[28X #I SCReduceComplexEx: computed locally minimal complex after 5 rounds.[128X[104X241[4X[28X #I SCIsKStackedSphere: complex is a 1-stacked sphere.[128X[104X242[4X[28X #I SCIsInKd: complex has transitive automorphism group, all links are 1-stacked.[128X[104X243[4X[28X #I SCIsTight: complex is in class K(1) and 2-neighborly, thus tight.[128X[104X244[4X[28X true[128X[104X245[4X[28X [128X[104X246[4X[32X[104X247248[1X11.1-2 SCMorseIsPerfect[101X249250[29X[2XSCMorseIsPerfect[102X( [3Xc[103X, [3Xf[103X ) [32X method251[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X252253[33X[0;0YChecks whether the rsl-function [10Xf[110X is perfect on the simplicial complex [10Xc[110X or254not. A rsl-function is said to be perfect, if it has the minimum number of255critical points, i. e. if the sum of its critical points equals the sum of256the Betti numbers of [10Xc[110X.[133X257258[4X[32X Example [32X[104X259[4X[28X gap> c:=SCBdCyclicPolytope(4,6);;[128X[104X260[4X[28X gap> SCMinimalNonFaces(c);[128X[104X261[4X[28X [ [ ], [ ], [ [ 1, 3, 5 ], [ 2, 4, 6 ] ] ][128X[104X262[4X[28X gap> SCMorseIsPerfect(c,[1..6]);[128X[104X263[4X[28X true[128X[104X264[4X[28X gap> SCMorseIsPerfect(c,[1,3,5,2,4,6]); [128X[104X265[4X[28X false[128X[104X266[4X[28X [128X[104X267[4X[32X[104X268269[1X11.1-3 SCSlicing[101X270271[29X[2XSCSlicing[102X( [3Xcomplex[103X, [3Xslicing[103X ) [32X method272[6XReturns:[106X [33X[0;10Ya facet list of a polyhedral complex or a [10XSCNormalSurface[110X object273upon success, [9Xfail[109X otherwise.[133X274275[33X[0;0YReturns the pre-image [22Xf^-1 (α )[122X of a rsl-function [22Xf[122X on the simplicial276complex [3Xcomplex[103X where [22Xf[122X is given in the second argument [3Xslicing[103X by a277partition of the set of vertices [3Xslicing[103X[22X=[ V_1 , V_2 ][122X such that [22Xf(v_1)[122X278([22Xf(v_2)[122X) is smaller (greater) than [22Xα[122X for all [22Xv_1 ∈ V_1[122X ([22Xv_2 ∈ V_2[122X).[133X279280[33X[0;0YIf [3Xcomplex[103X is of dimension [22X3[122X, a [5XGAP[105X object of type [10XSCNormalSurface[110X is281returned. Otherwise only the facet list is returned. See also [2XSCNSSlicing[102X282([14X7.1-4[114X).[133X283284[33X[0;0YThe vertex labels of the returned slicing are of the form [22X(v_1 , v_2)[122X where285[22Xv_1 ∈ V_1[122X and [22Xv_2 ∈ V_2[122X. They represent the center points of the edges [22X⟩ v_1286, v_2 ⟨[122X defined by the intersection of [3Xslicing[103X with [3Xcomplex[103X.[133X287288[4X[32X Example [32X[104X289[4X[28X gap> c:=SCBdCyclicPolytope(4,6);;[128X[104X290[4X[28X gap> v:=SCVertices(c);[128X[104X291[4X[28X [ 1, 2, 3, 4, 5, 6 ][128X[104X292[4X[28X gap> SCMinimalNonFaces(c);[128X[104X293[4X[28X [ [ ], [ ], [ [ 1, 3, 5 ], [ 2, 4, 6 ] ] ][128X[104X294[4X[28X gap> ns:=SCSlicing(c,[v{[1,3,5]},v{[2,4,6]}]); [128X[104X295[4X[28X [NormalSurface[128X[104X296[4X[28X [128X[104X297[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X298[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X299[4X[28X e, Vertices.[128X[104X300[4X[28X [128X[104X301[4X[28X Name="slicing [ [ 1, 3, 5 ], [ 2, 4, 6 ] ] of Bd(C_4(6))"[128X[104X302[4X[28X Dim=2[128X[104X303[4X[28X FVector=[ 9, 18, 0, 9 ][128X[104X304[4X[28X EulerCharacteristic=0[128X[104X305[4X[28X IsOrientable=true[128X[104X306[4X[28X TopologicalType="T^2"[128X[104X307[4X[28X [128X[104X308[4X[28X /NormalSurface][128X[104X309[4X[28X [128X[104X310[4X[32X[104X311312[4X[32X Example [32X[104X313[4X[28X gap> c:=SCBdSimplex(5);;[128X[104X314[4X[28X gap> v:=SCVertices(c);[128X[104X315[4X[28X [ 1, 2, 3, 4, 5, 6 ][128X[104X316[4X[28X gap> slicing:=SCSlicing(c,[v{[1,3,5]},v{[2,4,6]}]);[128X[104X317[4X[28X [ [ [ 1, 2 ], [ 1, 4 ], [ 3, 2 ], [ 3, 4 ], [ 5, 2 ], [ 5, 4 ] ], [128X[104X318[4X[28X [ [ 1, 2 ], [ 1, 4 ], [ 1, 6 ], [ 3, 2 ], [ 3, 4 ], [ 3, 6 ] ], [128X[104X319[4X[28X [ [ 1, 2 ], [ 1, 6 ], [ 3, 2 ], [ 3, 6 ], [ 5, 2 ], [ 5, 6 ] ], [128X[104X320[4X[28X [ [ 1, 2 ], [ 1, 4 ], [ 1, 6 ], [ 5, 2 ], [ 5, 4 ], [ 5, 6 ] ], [128X[104X321[4X[28X [ [ 1, 4 ], [ 1, 6 ], [ 3, 4 ], [ 3, 6 ], [ 5, 4 ], [ 5, 6 ] ], [128X[104X322[4X[28X [ [ 3, 2 ], [ 3, 4 ], [ 3, 6 ], [ 5, 2 ], [ 5, 4 ], [ 5, 6 ] ] ][128X[104X323[4X[28X [128X[104X324[4X[32X[104X325326[1X11.1-4 SCMorseMultiplicityVector[101X327328[29X[2XSCMorseMultiplicityVector[102X( [3Xc[103X, [3Xf[103X ) [32X method329[6XReturns:[106X [33X[0;10Ya list of [22X(d+1)[122X-tuples if [10Xc[110X is a [22Xd[122X-dimensional simplicial complex330upon success, [9Xfail[109X otherwise.[133X331332[33X[0;0YComputes all multiplicity vectors of a rsl-function [10Xf[110X on a simplicial333complex [10Xc[110X. [10Xf[110X is given as an ordered list [22X(v_1 , ... v_n)[122X of all vertices of334[10Xc[110X where [10Xf[110X is defined by [10Xf[110X[22X(v_i) = fraci-1n-1[122X. The [22Xi[122X-th entry of the returned335list denotes the multiplicity vector of vertex [22Xv_i[122X.[133X336337[4X[32X Example [32X[104X338[4X[28X gap> SCLib.SearchByName("K3"); [128X[104X339[4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X340[4X[28X gap> c:=SCLib.Load(last[1][1]);; [128X[104X341[4X[28X gap> f:=SCVertices(c); [128X[104X342[4X[28X [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ][128X[104X343[4X[28X gap> SCMorseMultiplicityVector(c,f);[128X[104X344[4X[28X [ [ 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], [128X[104X345[4X[28X [ 0, 0, 2, 0, 0 ], [ 0, 0, 1, 0, 0 ], [ 0, 0, 4, 0, 0 ], [ 0, 0, 3, 0, 0 ], [128X[104X346[4X[28X [ 0, 0, 3, 0, 0 ], [ 0, 0, 4, 0, 0 ], [ 0, 0, 1, 0, 0 ], [ 0, 0, 2, 0, 0 ], [128X[104X347[4X[28X [ 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1 ] ][128X[104X348[4X[28X [128X[104X349[4X[32X[104X350351[1X11.1-5 SCMorseNumberOfCriticalPoints[101X352353[29X[2XSCMorseNumberOfCriticalPoints[102X( [3Xc[103X, [3Xf[103X ) [32X method354[6XReturns:[106X [33X[0;10Yan integer and a list upon success, [9Xfail[109X otherwise.[133X355356[33X[0;0YComputes the number of critical points of each index of a rsl-function [10Xf[110X on357a simplicial complex [10Xc[110X as well as the total number of critical points.[133X358359[4X[32X Example [32X[104X360[4X[28X gap> SCLib.SearchByName("K3"); [128X[104X361[4X[28X [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ][128X[104X362[4X[28X gap> c:=SCLib.Load(last[1][1]);; [128X[104X363[4X[28X gap> f:=SCVertices(c); [128X[104X364[4X[28X [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ][128X[104X365[4X[28X gap> SCMorseNumberOfCriticalPoints(c,f);[128X[104X366[4X[28X [ 24, [ 1, 0, 22, 0, 1 ] ][128X[104X367[4X[28X [128X[104X368[4X[32X[104X369370371372