CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

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

Views: 418346
1
<Chapter><Heading>Cubical Complexes</Heading>
2
3
<Table Align="|l|" >
4
5
<Row>
6
<Item>
7
<Index>ArrayToPureCubicalComplex</Index>
8
<C>ArrayToPureCubicalComplexA,n)</C>
9
10
<P/>
11
Inputs an integer array <M>A</M> of dimension <M>d</M>
12
and an integer <M>n</M>.
13
It returns a d-dimensional pure cubical complex corresponding to the
14
black/white "image" determined by the threshold <M>n</M> and the values of the entries in <M>A</M>. (Integers below the threshold correspond to a black pixel, and higher integers correspond to a white pixel.)
15
</Item>
16
</Row>
17
18
<Row>
19
<Item>
20
<Index>PureCubicalComplex</Index>
21
<C>PureCubicalComplexA,n)</C>
22
23
<P/>
24
Inputs a binary array <M>A</M> of dimension <M>d</M>.
25
It returns the corresponding d-dimensional pure cubical complex.
26
</Item>
27
</Row>
28
29
<Row>
30
<Item>
31
<Index>FramedPureCubicalComplex</Index>
32
<C>FramedPureCubicalComplex(M)</C>
33
34
<P/>
35
Inputs a pure cubical complex <M>M</M>
36
and returns the pure cubical complex with a border of zeros attached the each face of the boundary array M!.boundaryArray. This function just adds a bit of space for performing operations such as thickenings to <M>M</M>.
37
</Item>
38
</Row>
39
40
41
<Row>
42
<Item>
43
<Index>RandomCubeOfPureCubicalComplex</Index>
44
<C>RandomCubeOfPureCubicalComplex(M)</C>
45
46
<P/>
47
Inputs a pure cubical complex <M>M</M>
48
and returns a pure cubical complex <M>R</M> with precisely the same dimensions as <M>M</M>. The complex <M>R</M> consist of one cube selected at random
49
from <M>M</M>.
50
51
52
</Item>
53
</Row>
54
55
56
<Row>
57
<Item>
58
<Index>PureCubicalComplexIntersection</Index>
59
<C>PureCubicalComplexIntersection(S,T)</C>
60
61
<P/>
62
Inputs two pure cubical complexes with common dimension and array size. It returns the intersection of the two complexes. (An entry in the binary array of the intersection has value 1 if and only if the corresponding entries in the binary arrays of S and T both have value 1.)
63
</Item>
64
</Row>
65
66
<Row>
67
<Item>
68
<Index>PureCubicalComplexUnion</Index>
69
<C>PureCubicalComplexUnion(S,T)</C>
70
71
<P/>
72
Inputs two pure cubical complexes with common dimension and array size. It returns the union of the two complexes. (An entry in the binary array of the union has value 1 if and only if at least one of the corresponding entries in the binary arrays of S and T has value 1.)
73
74
</Item>
75
</Row>
76
77
78
<Row>
79
<Item>
80
<Index>PureCubicalComplexDifference</Index>
81
<C>PureCubicalComplexDifference(S,T)</C>
82
83
<P/>
84
Inputs two pure cubical complexes with common dimension and array size. It returns the difference S-T. (An entry in the binary array of the difference
85
has value 1 if and only if the corresponding entry in the binary array of S is 1 and the corresponding entry in the binary array of T is 0.)
86
87
</Item>
88
</Row>
89
90
91
<Row>
92
<Item>
93
<Index>ReadImageAsPureCubicalComplex</Index>
94
<C> ReadImageAsPureCubicalComplex("file.png",n)</C>
95
96
97
<P/>
98
Reads an image file ("file.png", "file.eps", "file.bmp" etc)
99
and an integer <M>n</M>
100
between 0 and 765.
101
It returns a 2-dimensional pure cubical complex based on the
102
black/white version of the image determined by the threshold <M>n</M>.
103
</Item>
104
</Row>
105
106
<Row>
107
<Item>
108
<Index>ReadLinkImageAsPureCubicalComplex</Index>
109
<C> ReadLinkImageAsPureCubicalComplex("file.png")</C>
110
<C> ReadLinkImageAsPureCubicalComplex("file.png",n)</C>
111
112
113
<P/>
114
Reads an image file ("file.png", "file.eps", "file.bmp" etc) containing a knot or
115
link diagram,
116
and optionally a positive integer <M>n</M>. The integer <M>n</M> should be a little larger than the line thickness in the link diagram, and if not provided then <M>n</M> is set equal to 10.
117
118
The function tries to output the corresponding knot or link as a 3-dimensional pure cubical complex. Ideally the link diagram should be produced with line thickness 6 in Xfig, and the under-crossing spaces should not be too large or too small or too near one another. The function does not always succeed: it applies several checks, and if one of these checks fails then the function returns "fail".
119
</Item>
120
</Row>
121
122
123
<Row>
124
<Item>
125
<Index>ReadImageSequenceAsPureCubicalComplex</Index>
126
<C>ReadImageSequenceAsPureCubicalComplex("directory",n)</C>
127
128
129
<P/>
130
Reads the name of a directory containing a sequence of image files (ordered alphanumerically), and
131
an integer <M>n</M>
132
between 0 and 765.
133
It returns a 3-dimensional pure cubical complex based on the
134
black/white version of the images determined by the threshold <M>n</M>.
135
</Item>
136
</Row>
137
138
139
140
<Row>
141
<Item>
142
<C>Size(T)</C>
143
144
<P/>
145
This returns the number of non-zero entries in the binary array of the cubical complex, or pure cubical complex T.
146
147
</Item>
148
</Row>
149
150
<Row>
151
<Item>
152
<C>Dimension(T)</C>
153
154
<P/>
155
This returns the dimension of the cubical complex, or pure cubical complex T.
156
157
</Item>
158
</Row>
159
160
161
<Row>
162
<Item>
163
<Index>WritePureCubicalComplexAsImage</Index>
164
<C>WritePureCubicalComplexAsImage(T,"filename","ext")</C>
165
166
167
<P/>
168
Inputs a 2-dimensional pure cubical complex T, and a filename followed by its extension
169
(e.g. "myfile" followed by "png"). A black/white image is saved to the file.
170
171
</Item>
172
</Row>
173
174
<Row>
175
<Item>
176
<Index>ViewPureCubicalComplex</Index>
177
<C>ViewPureCubicalComplex(T)</C>
178
<C>ViewPureCubicalComplex(T,"mozilla")</C>
179
180
181
<P/>
182
Inputs a 2-dimensional pure cubical complex T, and optionally a command such as "mozilla" for viewing image files.
183
A black/white image is displayed.
184
</Item>
185
</Row>
186
187
<Row>
188
<Item>
189
<Index>Homology</Index>
190
<C>Homology(T,n)</C>
191
<C>Homology(T)</C>
192
193
<P/>
194
Inputs a pure cubical complex, or cubical complex, or simplicial complex <M>T</M>
195
and a non-negative integer <M>n</M>. It returns the n-th integral homology of <M>T</M> as a list of torsion integers.
196
If no value of <M>n</M> is input then the list of all homologies of <M>T</M>
197
in dimensions 0 to Dimension(T) is returned .
198
</Item>
199
</Row>
200
201
<Row>
202
<Item>
203
<Index>Bettinumbers</Index>
204
<C>Bettinumbers(T,n)</C>
205
<C>Bettinumbers(T)</C>
206
207
<P/>
208
Inputs a pure cubical complex, or cubical complex, simplicial complex or chain complex <M>T</M> and a non-negative integer <M>n</M>.
209
The rank of the n-th rational homology group <M>H_n(T,\mathbb Q)</M> is returned. If no value for n is input then the list of Betti numbers
210
in dimensions 0 to Dimension(T) is returned .
211
</Item>
212
</Row>
213
214
<Row>
215
<Item>
216
<Index>DirectProductOfPureCubicalComplexes</Index>
217
<C>DirectProductOfPureCubicalComplexes(M,N)</C>
218
219
<P/>
220
Inputs two pure cubical complexes <M>M,N</M> and returns their direct product <M>D</M> as a pure cubical complex. The dimension of <M>D</M> is the sum of the dimensions of <M>M</M> and <M>N</M>.
221
</Item>
222
</Row>
223
224
<Row>
225
<Item>
226
<Index>SuspensionOfPureCubicalComplex</Index>
227
<C>SuspensionOfPureCubicalComplex(M)</C>
228
229
<P/>
230
Inputs a pure cubical complex <M>M</M> and returns a pure cubical complex with the homotopy type of the suspension of <M>M</M>.
231
</Item>
232
</Row>
233
234
235
236
<Row>
237
<Item>
238
<C>EulerCharacteristic(T)</C>
239
240
<P/>
241
Inputs a pure cubical complex, or cubical complex, or simplicial complex
242
<M>T</M>
243
and returns its Euler characteristic.
244
</Item>
245
</Row>
246
247
<Row>
248
<Item>
249
<Index>PathComponentOfPureCubicalComplex</Index>
250
<C>PathComponentOfPureCubicalComplex(T,n)</C>
251
252
<P/>
253
Inputs a pure cubical complex <M>T</M>
254
and an integer <M>n</M> in the rane 1, ..., Bettinumbers(T)[1] . It returns the n-th path component of
255
<M>T</M> as a pure cubical complex. The value <M>n=0</M> is also allowed, in which case the number of path components is returned.
256
</Item>
257
</Row>
258
259
<Row>
260
<Item>
261
262
<C>ChainComplex(T)</C>
263
264
<P/>
265
Inputs a pure cubical complex, or cubical complex, or simplicial complex
266
<M>T</M>
267
and returns the (often very large) cellular chain complex of <M>T</M>.
268
</Item>
269
</Row>
270
271
<Row>
272
<Item>
273
<C>ChainComplexOfPair(T,S)</C>
274
<P/>
275
Inputs a pure cubical complex or cubical complex <M>T</M> and subcomplex <M>S</M>.
276
It returns the quotient <M>C(T)/C(S)</M> of cellular chain complexes.
277
</Item>
278
</Row>
279
280
<Row>
281
<Item>
282
<C>ExcisedPureCubicalPair(T,S)</C>
283
<P/>
284
Inputs a pure cubical complex <M>T</M> and subcomplex <M>S</M>.
285
It returns the pair
286
<M>[T\setminus intS, S\setminus intS])</M> of pure cubical complexes
287
where <M>intS</M> is the pure cubical complex obtained from <M>S</M> by removing its boundary.
288
</Item>
289
</Row>
290
291
292
<Row>
293
<Item>
294
<Index>ChainInclusionOfPureCubicalPair</Index>
295
<C>ChainInclusionOfPureCubicalPair(S,T)</C>
296
297
298
<P/>
299
Inputs a pure cubical complex <M>T</M> and subcomplex <M>S</M>.
300
It returns the chain inclusion <M>C(S) \rightarrow C(T)</M> of cellular chain complexes.
301
</Item>
302
</Row>
303
304
<Row>
305
<Item>
306
<Index>ChainMapOfPureCubicalPairs</Index>
307
<C>ChainMapOfPureCubicalPairs(M,S,N,T)</C>
308
309
310
<P/>
311
Inputs a pure cubical complex <M>N</M> and subcomplexes <M>M</M>, <M>T</M>
312
and <M>S</M> in <M>T</M>.
313
It returns the chain map <M>C(M/S) \rightarrow C(N/T)</M> of quotient cellular chain complexes.
314
</Item>
315
</Row>
316
317
318
<Row>
319
<Item>
320
<Index>ContractPureCubicalComplex</Index>
321
<C>ContractPureCubicalComplex(T)</C>
322
323
324
<P/>
325
Inputs a pure cubical complex <M>T</M> of dimension <M>d</M> and removes <M>d</M>-dimensional cells from <M>T</M>
326
without changing the homotopy type of <M>T</M>.
327
When the function has been applied, no further <M>d</M>-cells can be removed
328
from <M>T</M> without changing its homotopy type. This function modifies <M>T</M>.
329
330
</Item>
331
</Row>
332
333
<Row>
334
<Item>
335
<Index>ContractedComplex</Index>
336
<C>ContractedComplex(T)</C>
337
338
339
<P/>
340
Inputs a pure cubical complex <M>T</M> and returns a structural copy of the complex obtained from <M>T</M> by applying the function ContractPureCubicalComplex(T).
341
342
</Item>
343
</Row>
344
345
<Row>
346
<Item>
347
<Index>ZigZagContractedPureCubicalComplex</Index>
348
<C>ZigZagContractedPureCubicalComplex(T)</C>
349
350
351
<P/>
352
Inputs a pure cubical complex <M>T</M> and returns a homotopy equivalent pure cubical complex <M>S</M>. The aim is for <M>S</M> to involve fewer cells than <M>T</M> and certainly to involve no more cells than <M>T</M>.
353
354
</Item>
355
</Row>
356
357
358
<Row>
359
<Item>
360
<Index>ContractCubicalComplex</Index>
361
<C>ContractCubicalComplex(T)</C>
362
363
364
<P/>
365
Inputs a cubical complex <M>T</M> and removes cells without changing the homotopy type of <M>T</M>. It changes <M>T</M>. In particular, it adds the components T.vectors and T.rewrite of a discrete vector field.
366
367
<P/> At present this function only works for cubical complexes of dimension 2 or 3.
368
</Item>
369
</Row>
370
371
<Row>
372
<Item>
373
<Index>DVFReducedCubicalComplex</Index>
374
<C>DVFReducedCubicalComplex(T)</C>
375
376
377
<P/>
378
Inputs a cubical complex <M>T</M> and returns a non-regular cubical complex <M>R</M> by constructing a discrete vector field. The vector field is designed to minimize the number of critical cells in <M>R</M>
379
at the cost of allowing cell attaching maps that are not homeomorphisms on boundaries.
380
381
<P/>
382
At present this function works only for 2- and 3-dimensional cubical complexes.
383
384
<P/>
385
The function ChainComplex(R) can be used to obtain the cellular chain complex of <M>R</M>.
386
387
</Item>
388
</Row>
389
390
391
<Row>
392
<Item>
393
<Index>SkeletonOfCubicalComplex</Index>
394
<C>SkeletonOfCubicalComplex(T,n)</C>
395
396
397
<P/>
398
Inputs a cubical complex, or pure cubical complex <M>T</M> and positive integer <M>n</M>. It
399
returns the <M>n</M>-skeleton of <M>T</M> as a cubical complex.
400
401
</Item>
402
</Row>
403
404
405
<Row>
406
<Item>
407
<Index>ContractibleSubomplexOfPureCubicalComplex</Index>
408
<C>ContractibleSubomplexOfPureCubicalComplex(T)</C>
409
410
<P/>
411
Inputs a pure cubical complex <M>T</M> and
412
returns a maximal contractible pure cubical subcomplex.
413
</Item>
414
</Row>
415
416
<Row>
417
<Item>
418
<Index>AcyclicSubomplexOfPureCubicalComplex</Index>
419
<C>AcyclicSubomplexOfPureCubicalComplex(T)</C>
420
421
<P/>
422
Inputs a pure cubical complex <M>T</M> and
423
returns a (not necessarily connected) pure cubical subcomplex having trivial homology in all degrees greater than <M>0</M>.
424
</Item>
425
</Row>
426
427
<Row>
428
<Item>
429
<Index>HomotopyEquivalentMaximalPureCubicalSubcomplex</Index>
430
<C>HomotopyEquivalentMaximalPureCubicalSubcomplex(T,S)</C>
431
432
<P/>
433
Inputs a pure cubical complex <M>T</M> together with a pure cubical subcomplex <M>S</M>.
434
It returns a pure cubical subcomplex <M>H</M> of <M>T</M> which contains <M>S</M> and is maximal with respect to the property that it is homotopy equivalent to <M>S</M>.
435
</Item>
436
</Row>
437
438
<Row>
439
<Item>
440
<Index>HomotopyEquivalentMinimalPureCubicalSubcomplex</Index>
441
<C>HomotopyEquivalentMinimalPureCubicalSubcomplex(T,S)</C>
442
443
<P/>
444
Inputs a pure cubical complex <M>T</M> together with a pure cubical
445
subcomplex <M>S</M>.
446
It returns a pure cubical subcomplex <M>H</M> of <M>T</M> which contains <M>S</M> and is minimal with respect to the property that it is homotopy equivalent to <M>T</M>.
447
</Item>
448
</Row>
449
450
451
<Row>
452
<Item>
453
<Index>BoundaryOfPureCubicalComplex</Index>
454
<C>BoundaryOfPureCubicalComplex(T)</C>
455
456
<P/>
457
Inputs a pure cubical complex <M>T</M> and returns its boundary as a
458
pure cubical complex. The boundary consists of all cubes which have one or more facets that lie in just the one cube.
459
460
</Item>
461
</Row>
462
463
<Row>
464
<Item>
465
<Index>SingularitiesOfPureCubicalComplex</Index>
466
<C>SingularitiesOfPureCubicalComplex(T,radius,tolerance)</C>
467
468
469
<P/>
470
Inputs a pure cubical complex <M>T</M> together with a positive integer "radius" and an integer "tolerance" in the range 1..100.
471
It returns the pure cubical subcomplex of those cells in the boundary where the boundary
472
is not differentiable. (The method for deciding differentiability at a point is crude/discrete, prone to errors and depends on the radius and tolerance.)
473
</Item>
474
</Row>
475
476
<Row>
477
<Item>
478
<Index>ThickenedPureCubicalComplex</Index>
479
<C>ThickenedPureCubicalComplex(T)</C>
480
481
<P/>
482
Inputs a pure cubical complex <M>T</M>
483
and returns a pure cubical complex <M>S</M>. If a euclidean cube is
484
in <M>T</M> then this cube and all its neighbouring cubes
485
are included in <M>S</M>.
486
487
</Item>
488
</Row>
489
490
<Row>
491
<Item>
492
<Index>CropPureCubicalComplex</Index>
493
<C>CropPureCubicalComplex(T)</C>
494
495
<P/>
496
Inputs a pure cubical complex <M>T</M>
497
and returns a pure cubical complex <M>S</M> obtained from <M>T</M> by removing any "zero boundary sheets" of the binary array. Thus <M>S</M> and
498
<M>T</M> are isometric as euclidean spaces but there may be fewer zero entries in the binary array for <M>S</M>.
499
</Item>
500
</Row>
501
502
503
<Row>
504
<Item>
505
<Index>BoundingPureCubicalComplex</Index>
506
<C>BoundingPureCubicalComplex(T)</C>
507
508
<P/>
509
Inputs a pure cubical complex <M>T</M>
510
and returns a contractible pure cubical complex <M>S</M> containing <M>T</M>.
511
</Item>
512
</Row>
513
514
515
<Row>
516
<Item>
517
<Index>MorseFiltration</Index>
518
<C>MorseFiltration(M,i,t,bool)</C>
519
<C>MorseFiltration(M,i,t)</C>
520
521
<P/>
522
Inputs a pure cubical complex <M>M</M> of dimension <M>d</M>, an integer
523
<M>i</M> between <M>1</M> and <M>d</M>, a positive integer <M>t</M> and a boolean value True or False. The function returns a list
524
<M>[M_1, M_2, ..., M_t]</M> of pure cubical complexes with <M>M_k</M> a subcomplex of <M>M_{k+1}</M>. The list is constructed by setting all slices of <M>M</M> perpendicular to the <M>i</M>-th axis equal to zero if they meet the <M>i</M>th axis at a sufficiently high coordinate (if bool=True) or sufficiently
525
low coordinate (if bool=False).
526
527
<P/> If the variable bool is not specified then it is assumed to have the value True.
528
</Item>
529
</Row>
530
531
<Row>
532
<Item>
533
<Index>ComplementOfPureCubicalComplex</Index>
534
<C>ComplementOfPureCubicalComplex(T)</C>
535
536
537
<P/>
538
Inputs a pure cubical complex <M>T</M>
539
and returns a pure cubical complex <M>S</M>. A euclidean cube is in <M>S</M> precisely when the cube is not in <M>T</M>.
540
541
</Item>
542
</Row>
543
544
<Row>
545
<Item>
546
<Index>PureCubicalComplexToTextFile</Index>
547
<C>PureCubicalComplexToTextFile(file,M)</C>
548
<P/>
549
Inputs a pure cubical complex <M>M</M> and a string containing the address of a file. A
550
representation of this complex is written to the file in a format that
551
can be read by the CAPD (Computer Assisted Proofs in Dynamics) software developed by Marian Mrozek and others.
552
553
</Item> </Row>
554
555
<Row>
556
<Item>
557
<Index>ThickeningFiltration</Index>
558
<C>ThickeningFiltration(M,n)</C>
559
<C>ThickeningFiltration(M,n,k)</C>
560
<P/>
561
Inputs a pure cubical complex <M>M</M> and a positive integer <M>n</M>. It returns a filtered pure cubical complex constructed frim <M>n</M> thickenings of <M>M</M>.
562
If a positive integer <M>k</M> is supplied as an optional third argument, then each step of the filtration is obtained from a <M>k</M>-fold thickening.
563
</Item> </Row>
564
565
<Row>
566
<Item>
567
<Index>Dendrogram</Index>
568
<C>Dendrogram(M)</C>
569
<P/>
570
Inputs a filtered pure cubical complex <M>M</M> and returns data that specifies the dendrogram (or phylogenetic tree) describing how path components are born and then merge during the filtration.
571
572
</Item> </Row>
573
574
<Row>
575
<Item>
576
<Index>DendrogramDisplay</Index>
577
<C>DendrogramDisplay(M)</C>
578
<P/>
579
Inputs a filtered pure cubical complex <M>M</M>, or alternatively inputs the out from the command Dendrogram(M), and then uses GraphViz software to display the path component dendrogram of <M>M</M>. </Item> </Row>
580
581
<Row>
582
<Item>
583
<Index>DendrogramToPersistenceMat</Index>
584
<C>DendrogramToPersistenceMat(D)</C>
585
<P/>
586
Inputs the output of the function Dendrogram(M) and returns the corresponding degree 0 Betti bar code. </Item> </Row>
587
588
<Row>
589
<Item>
590
<Index>ReadImageAsFilteredPureCubicalComplex</Index>
591
<C>ReadImageAsFilteredPureCubicalComplex(file,n)</C>
592
<P/>
593
Inputs a string containing the path to an image file, together with a positive integer n. It returns a filtered pure cubical complex of filtration length <M>n</M>. </Item> </Row>
594
595
<Row>
596
<Item>
597
<Index>ComplementOfFilteredPureCubicalComplex</Index>
598
<C>ComplementOfFilteredPureCubicalComplex(M)</C>
599
<P/>
600
Inputs a filtered pure cubical complex <M>M</M> and returns the complement as a filtered pure cubical complex. </Item> </Row>
601
602
<Row>
603
<Item>
604
<Index>PersistentHomologyOfFilteredPureCubicalComplex </Index>
605
<C>PersistentHomologyOfFilteredPureCubicalComplex(M,n)</C>
606
<P/>
607
Inputs a filtered pure cubical complex <M>M</M> and a
608
non-negative integer <M>n</M>. It returns the degree <M>n</M> persistent
609
homology of <M> M</M> with rational coefficients.
610
</Item> </Row>
611
612
613
614
615
</Table>
616
</Chapter>
617
618
619
620