Dark Integers

Master branch: CircleCIcodecov

DarkIntegers.jl is a lightweight library for working with unsigned integers and polynomials. It includes:

  • Modulo arithmetic for primitive types;
  • Regular and modulo arithmetic for multi-limb (fixed size) unsigned integers;
  • Arithmetic for cyclic and negacyclic polynomials, including Karatsuba multiplication and multiplication via NTT

It is intended as a partial replacement for Nemo.jl, which requires compilation of C libraries, and is often slower (in particular, because DarkIntegers does not need C calls and heap allocations for operations with multi-limb integers).

Note: the library currently does not provide constant-time guarantees for arithmetic operations.