gfm.integers.wideint

Provide a 2^N-bit integer type. Guaranteed to never allocate and expected binary layout Recursive implementation with very slow division.

<b>Supports all operations that builtin integers support.</b>

Members

Aliases

int128
alias int128 = wideint!128
Undocumented in source.
int256
alias int256 = wideint!256
Undocumented in source.
uint128
alias uint128 = uwideint!128
Undocumented in source.
uint256
alias uint256 = uwideint!256
Undocumented in source.

Functions

abs
wideIntImpl!(signed, bits) abs(wideIntImpl!(signed, bits) x)
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

wideIntImpl
struct wideIntImpl(bool signed, int bits)

Recursive 2^n integer implementation.

Templates

isWideIntInstantiation
template isWideIntInstantiation(U)
Undocumented in source.
uwideint
template uwideint(int bits)

Wide unsigned integer.

wideint
template wideint(int bits)

Wide signed integer.

Bugs

it's not sure if the unsigned operand would take precedence in a comparison/division. - a < b should be an unsigned comparison if at least one operand is unsigned - a / b should be an unsigned division if at least one operand is unsigned

Meta