2 instantiations of PowersOf1e9
System.Runtime.Numerics (2)
System\Number.BigInteger.cs (2)
1168
return new
PowersOf1e9
(cached);
1172
PowersOf1e9 result =
new
((Span<nuint>)buffer);
29 references to PowersOf1e9
System.Runtime.Numerics (29)
System\Number.BigInteger.cs (29)
418
int base1E9Length = (intDigits.Length +
PowersOf1e9
.MaxPartialDigits - 1) /
PowersOf1e9
.MaxPartialDigits;
422
ReadOnlySpan<byte> leadingDigits = intDigits[..(intDigits.Length %
PowersOf1e9
.MaxPartialDigits)];
430
Debug.Assert(intDigits.Length %
PowersOf1e9
.MaxPartialDigits == 0);
434
uint.TryParse(intDigits.Slice(0,
PowersOf1e9
.MaxPartialDigits), out uint partialVal);
436
intDigits = intDigits.Slice(
PowersOf1e9
.MaxPartialDigits);
467
int valueDigits = (base1E9.Length - 1) *
PowersOf1e9
.MaxPartialDigits + FormattingHelpers.CountDigits(base1E9[^1]);
469
int powersOf1e9BufferLength =
PowersOf1e9
.GetBufferSize(Math.Max(valueDigits, trailingZeroCount + 1), out int maxIndex);
470
PowersOf1e9
powersOf1e9 =
PowersOf1e9
.GetCached(powersOf1e9BufferLength);
475
int leadingLength = checked((int)(digitRatio *
PowersOf1e9
.MaxPartialDigits * base1E9.Length) + 3);
491
static void Recursive(in
PowersOf1e9
powersOf1e9, int powersOf1e9Index, ReadOnlySpan<nuint> base1E9, Span<nuint> bits)
510
int multiplierTrailingZeroCount =
PowersOf1e9
.OmittedLength(powersOf1e9Index);
515
int bufferLength = checked((int)(digitRatio *
PowersOf1e9
.MaxPartialDigits * multiplier1E9Length) + 1 + 2);
543
int trailingPartialCount = Math.DivRem(trailingZeroCount,
PowersOf1e9
.MaxPartialDigits, out int remainingTrailingZeroCount);
546
nuint carry = MultiplyAdd(bits.Slice(0, resultLength),
PowersOf1e9
.TenPowMaxPartial, 0);
577
nuint carry = MultiplyAdd(bits.Slice(0, resultLength),
PowersOf1e9
.TenPowMaxPartial, base1E9[i]);
886
int valueDigits = (base1E9Value.Length - 1) *
PowersOf1e9
.MaxPartialDigits + FormattingHelpers.CountDigits(base1E9Value[^1]);
1019
bufferEnd = UInt32ToDecChars(bufferEnd, (uint)base1E9Value[i],
PowersOf1e9
.MaxPartialDigits);
1020
digits -=
PowersOf1e9
.MaxPartialDigits;
1043
PowersOf1e9
.FloorBufferSize(bits.Length, out int powersOf1e9BufferLength, out int maxIndex);
1044
PowersOf1e9
powersOf1e9 =
PowersOf1e9
.GetCached(powersOf1e9BufferLength);
1048
static void DivideAndConquer(in
PowersOf1e9
powersOf1e9, int powersIndex, ReadOnlySpan<nuint> bits, Span<nuint> base1E9Buffer, out int base1E9Written)
1060
int omittedLength =
PowersOf1e9
.OmittedLength(powersIndex);
1066
omittedLength =
PowersOf1e9
.OmittedLength(powersIndex);
1132
const uint Divisor = (uint)
PowersOf1e9
.TenPowMaxPartial;
1163
public static
PowersOf1e9
GetCached(int bufferLength)
1172
PowersOf1e9
result = new((Span<nuint>)buffer);