View source code
Display the source code in std/bigint.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module std.bigint

Arbitrary-precision ('bignum') arithmetic.

Performance is optimized for numbers below ~1000 decimal digits. For X86 machines, highly optimised assembly routines are used.

The following algorithms are currently implemented:

  • Karatsuba multiplication
  • Squaring is optimized independently of multiplication
  • Divide-and-conquer division
  • Binary exponentiation

For very large numbers, consider using the GMP library instead.

Functions

NameDescription
absUnsign(x) Returns the absolute value of x converted to the corresponding unsigned type.
divMod(dividend, divisor, quotient, remainder) Finds the quotient and remainder for the given dividend and divisor in one operation.
powmod(base, exponent, modulus) Fast power modulus calculation for BigInt operands.
toDecimalString(x)
toHex(x)

Structs

NameDescription
BigInt A struct representing an arbitrary precision integer.

Authors

Don Clugston

License

Boost License 1.0.