This is a very fast implementation of Euler's Totient Function using C++, GMP, and Primesieve. Arbitrary precision functionality is still on the works, it's tricky to implement and buffer overflows are a constant nuisance . This drinks heavily from clarsen's design, but aims to improve it for the particular purpose of arbitrary precision.
- primesieve - Fast prime generation
- GMP - Arbitrary precision
Simply #include "totient.hpp"
in your code.
- Use GMP instead of cpp_int ✅
- Better usage documentation 🕓
- Clean up auxiliary test libraries ❌
- Use Baillie-PSW for primality instead of Miller-Rabin 🕓
- Generate primes using multithreading ❌
- Re-write prime generator to use arbitrary precision ❌
✅ - Done, 🕓 - On the works, ❌ - To do