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.
toDecimalString(x)
toHex(x)

Structs

NameDescription
BigInt A struct representing an arbitrary precision integer.

Authors

Don Clugston

License

Boost License 1.0.