Important:
Anyone reading the code for this project will notice that it isn't well
commented and the code is hard to read/understand.
This is due to the fact that I'm using this code to explore ideas I get
during my research; as I get ideas I write functions to help me compute
something interesting and check out if there is anything worth investigating
further. I write these functions quickly and without concern for readability
and I am sorry for that to anyone trying to reade the code.
So beware of the messy code if your interested in reading it.