Currently the fastest library for factorization and primality checking in the interval 0;2^64 that is available in Crates.io and possibly in the entire Rust-lang ecosystem. Algebraic definitions of primality and factorization are used, permitting checks like -127.is_prime() to return true and unique factorizations to be considered unsigned.

Note that this current implementation requires compiler optimizations to be on for primality testing and consequently nearly all functionality.

Currently implements these functions

Usage is fairly simple ```rust

use numbertheory::traits::NumberTheory; // include NT functions use numbertheory::arithmetic::mpz::Mpz; // include arbitrary-precision arithmetic //use numbertheory::arithmetic::sign::Sign; // Sign, generally unnecessary for ENT let mersenne = Mpz::ufromstring("127"); // unsigned from string, defaults to Sign::Positive asserteq!(mersenne.is_prime(), true); ```