This library provides a pure implementation for arbitrary precision integers in Nim.
It can be installed through nimble with:
nimble install https://github.com/nim-lang/bigints
bigints provides a BigInt type and related operations with standard Nim syntax:
- creation of
BigIntfrom all standard integer types (initBigInt) - comparisons (
<,<=,==) - addition, negation and subtraction (
+,-,+=-=) - multiplication (
*,*=) - bit shifts (
shr,shl) - bitwise
not,and,orandxor(behave as if negative numbers were represented in 2's complement) - integer division and modulo operation (
div,mod) - conversion of
BigIntfrom/to strings supporting bases from 2 to 36 (initBigInt,$) - iteration utilities (
inc,dec,countdown,countup,..,..<)
- not expected to work on 32 bit
- arithmetic operations such as addition, multiplication and division are not optimized for performance (e.g. Karatsuba multiplication is not implemented)
The documentation is available at https://nim-lang.github.io/bigints.