Skip to content

Organization

NickG-Math edited this page Sep 23, 2019 · 11 revisions

The repository is split into 5 folders as follows:

General:

This folder contains general purpose functions such as the Smith Normal Form, the homology of a complex and the box product of chains of Mackey functors. It also contains transfer and restriction functions that work with power 2 cyclic groups but can be easily modified to work with prime power cyclic groups. Eventually they will get general enough to include all cyclic groups.

C4 Specific:

Contains the functions that (together with the general purpose ones) compute the C4 homology of a point. They can serve as a template for the more general C2n case with the only important change is the differentials in the standard chains of our spheres (right now they are only implemented for C4).

C4 Data:

When using the functions in General or C4 specific, there are a few calculations that are constantly repeated. This folder contains functions that can perform these calculations once and save the results in .mat files. These results are then loaded into a single variable Data and then fed as input to many of the functions in the other two folders. Data also includes variables that are fixed, such as dictionary between Lewis diagrams and the names of Mackey functors that appear in our paper, so it is necessary to load this variable for our some of our functions to even work. There is another variable use_Data that can be set to 0 if we don't want to use any precomputed Data.

Factorization:

The aforementioned functions can multiply any two generators and write the product as a linear combinations of the generators in its degree. However if we want to express the answer in terms of Euler+orientation classes, these generators need to be factorized. The functions in Factorization use the multiplication table created by the processes in the other folders, and recursively transverse it in order to factorize denominators and numerators.

Test C4:

Contains functions that test the output of the C4 specific algorithms against the results in our paper. They can be used to either test those results (if one trusts the code), or the code (if one trusts the math). Another important use is regression testing: If a change is made in the code it's best to run these tests to make sure we get the same results as before and that we have not increased execution time.