GitHub Link: https://github.com/EpsilonNought117/libapac
I have inspired my API and naming scheme from GMP's public API, but the internals are (to the best of my knowledge) completely my own. The library uses a runtime dispatch to micro-arch specific versions of assembly functions on x86-64 CPUs currently for Unix-like and Windows OS, with future support planned on ARM64 on both as well. I have handwritten all the assembly routines (probably obvious by the writing style) using MASM and GAS assemblers, with a few SIMD based routines written with compiler intrinsic functions.
The performance (so far) seems to be on par with GMP for small to medium-sized Big Integers (performance graphs in README). I have implemented a few algorithms such as the Karatsuba Algorithm and Divide-&-Conquer division (Balanced and Unbalanced) with more algorithms on the way as needed. The books "Modern Computer Arithmetic" by Brent and Zimmerman and "Hacker's Delight" by Henry Warren Jr have really helped a lot.
Still largely WIP.
Interested in any feedback and/or criticisms. Happy to answer any questions.
And if you really want to go down a rabbit hole, there's the Computer Arithmetic[3] conference[4] proceedings[5].
[1]: https://en.wikipedia.org/wiki/Hacker%27s_Delight
[2]: https://www.amazon.com/Computer-Arithmetic-Volumes-Earl-Swar...
[3]: https://en.wikipedia.org/wiki/Computer_arithmetic
[4]: https://en.wikipedia.org/wiki/ARITH_Symposium_on_Computer_Ar...
[1] Neuromorphic Chips https://www.technologyreview.com/s/526506/neuromorphic-chips...
[2] Numenta papers/videos http://numenta.com/papers-videos-and-more/
It would also be good to see a major chip manufacturer or cloud provider that makes its own chips (Google/IBM) get serious about graph processing chips [3,4] and moving beyond floating point [5].
[3] Novel Graph Processor Architecture https://www.ll.mit.edu/publications/journal/pdf/vol20_no1/20...
[4] Novel Graph Processor Architecture, Prototype System, and Results https://arxiv.org/pdf/1607.06541.pdf
[5] Stanford Seminar: Beyond Floating Point: Next Generation Computer Arithmetic https://www.youtube.com/watch?v=aP0Y1uAA-2Y