GithubHelp home page GithubHelp logo

nickg-math / c4-homology Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.8 MB

The RO(C4) homology of a point as a Green Functor, and beyond. Superseded by C++ project "Mackey".

MATLAB 100.00%
matlab homology equivariant math mackey

c4-homology's Introduction

C4-Homology

This project computes the RO(C4) homology of a point as a Green Functor and more. This has been supplanted by the C++ library Mackey.

Read the Wiki for the full documentation. What follows is an FAQ; if you want to verify the results of our paper, in your preferred finite range, look no further than what's below.

What do I need to run this code?

All you need is a version of MATLAB (the base installation). I have only tested it with v. R2019a but it should probably work with previous versions of MATLAB or freeware like Octave that can run MATLAB code.

How do I compute the RO(C4) homology of a point?

Download the repository and add it to your MATLAB path. Then type the following in the command line:

write_Data(1,1);
Data=load_Data;
test_Pure_Homology(8,7,0,Data);

The last command will perform three operations:

  • Compute the homology of for n=0,...,8 and m=0,...,7

  • Check the answer against the tables in our paper, sending out an error message if there is a mismatch

  • Print the answer in the form

The k homology of the (n,m) sphere is MackeyFunctorSymbol

where MackeyFunctorSymbol is our notation of the corresponding Mackey functor.

Since the MATLAB display output does not support Latex, MackeyFunctorSymbol is more or less the Latex code of the symbol from our paper. For example, overline Z/2 stands for .

If you want to verify a different range, say n=0,...,rangeN, m=0,...,rangeM, run

test_Pure_Homology(rangeN,rangeM,0,Data);

If you want to check the homology of (in the usual range n=0,...,rangeN and m=0,...,rangeM), run

test_Pure_Cohomology(rangeN,rangeM,0,Data);

To check run

test_Sigma_Minus_Lambda(rangeN,rangeM,0,Data);

Finally to check run

test_Lambda_Minus_Sigma(rangeN,rangeM,0,Data);

But what about the multiplicative structure?

For the multiplicative generators of run

test_Pure_Homology_Mult(rangeN1,rangeN2,rangeM1,rangeM2,0,Data);

The input variables rangeN1, rangeN2, rangeM1, rangeM2 specify the sets that the exponents of the Euler and orientation classes aσ, u, aλ, uλ are allowed to range in, respectively.

The command above does three things:

  • Computes the product of these Euler and orientation classes and checks if it's a generator

  • Checks the answer against our tables sending out an error message if not

  • Prints the answer in a form that looks like

Top Generator verified: asigma^2*alambda^3

or like

Mid Generator verified: usigma^4*bar(ulambda^2)

There's no reason to check the bottom level generators as that just involves the nonequivariant homology of spheres.

To check the rest of the tables run any of the following

test_Pure_Cohomology_Mult(rangeN1,rangeN2,rangeM1,rangeM2,0,Data);
test_Sigma_Minus_Lambda_Mult(rangeN1,rangeN2,rangeM1,rangeM2,0,Data);
test_Lambda_Minus_Sigma_Mult(rangeN1,rangeN2,rangeM1,rangeM2,0,Data);

Can I make the program run faster?

Significant speed improvements can be achieved by precomputing data so as to avoid repeat calculations. Just run the test functions with the third input being 1 eg

test_Pure_Homology(rangeN,rangeM,1,Data);

Warning: If you run

test_Sigma_Minus_Lambda_Mult(rangeN1,rangeN2,rangeM1,rangeM2,1,Data);
test_Lambda_Minus_Sigma_Mult(rangeN1,rangeN2,rangeM1,rangeM2,1,Data);

you will get an error Index in position 3 exceeds array bounds (must not exceed 1). This is because these two functions involve triple box products and extra data must be precomputed. So you must first run

write_Data(1,LargeNumber);
Data=load_Data;

for a large enough LargeNumber depending on the ranges you are using.

The larger the LargeNumber you select the more precomputed data you have available and the wider the ranges you can check. LargeNumber=100 should be more than enough for any reasonable ranges (increasing it much further will make write_Data(1,LargeNumber) a lot slower).

How about even faster?

Try parallel processing.

For more details please consult the Wiki!

c4-homology's People

Contributors

nickg-math avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.