std.internal.math.biguintcore
Fundamental operations for arbitrary-precision arithmetic
These functions are for internal use only.
Types 3
aliasmultibyteAdd = multibyteAddSub!('+')
aliasmultibyteSub = multibyteAddSub!('-')
structBigUint
BigUint performs memory management and wraps the low-level calls.
Methods
char [] toHexString(int frontExtraBytes, char separator = 0,
int minPadding = 0, char padChar = '0',
LetterCase letterCase = LetterCase.upper) const pure nothrow @safe scopeConvert to a hex string, printing a minimum number of digits 'minPadding', allocating an additional 'frontExtraBytes' at the start of the string. Padding is done with padChar, which may be '0' or '...bool fromHexString(Range)(Range s) if (isBidirectionalRange!Range && isSomeChar!(ElementType!Range)) scopebool fromDecimalString(Range)(Range s) if (isForwardRange!Range && isSomeChar!(ElementType!Range)) scopevoid fromMagnitude(Range)(Range magnitude) if (isInputRange!Range
&& (isForwardRange!Range || hasLength!Range)
&& isUnsigned!(ElementType!Range)) scopeBigUint opBinary(string op, Tulong)(Tulong y) if (op == ">>" && is (Tulong == ulong)) pure nothrow @safe const return scopeBigUint opBinary(string op, Tulong)(Tulong y) if (op == "<<" && is (Tulong == ulong)) pure nothrow @safe const scopeBigUint addOrSubInt(Tulong)(const scope BigUint x, Tulong y, bool wantSub, ref bool sign) if (is(Tulong == ulong)) static pure nothrow @safeBigUint addOrSub(scope BigUint x, scope BigUint y, bool wantSub, ref bool sign) static pure nothrow @safeBigUint divInt(T)(return scope BigUint x, T y_) if ( is(immutable T == immutable uint) ) static pure nothrow @safeBigUint divInt(T)(scope BigUint x, T y) if ( is(immutable T == immutable ulong) ) static pure nothrow @safevoid divMod(BigUint x, scope BigUint y,
out BigUint quotient, out BigUint remainder) static pure nothrow @safeBigUint bitwiseOp(string op)(scope BigUint x, scope BigUint y, bool xSign, bool ySign, ref bool resultSign) if (op == "|" || op == "^" || op == "&") static pure nothrow @safeFunctions 1
Templates 1
tmplmaxBigDigits(T)
if (isIntegral!T)