2 instantiations of PowersOf1e9
System.Runtime.Numerics (2)
System\Number.BigInteger.cs (2)
1124
return new
PowersOf1e9
(cached);
1128
PowersOf1e9 result =
new
((Span<nuint>)buffer);
29 references to PowersOf1e9
System.Runtime.Numerics (29)
System\Number.BigInteger.cs (29)
374
int base1E9Length = (intDigits.Length +
PowersOf1e9
.MaxPartialDigits - 1) /
PowersOf1e9
.MaxPartialDigits;
378
ReadOnlySpan<byte> leadingDigits = intDigits[..(intDigits.Length %
PowersOf1e9
.MaxPartialDigits)];
386
Debug.Assert(intDigits.Length %
PowersOf1e9
.MaxPartialDigits == 0);
390
uint.TryParse(intDigits.Slice(0,
PowersOf1e9
.MaxPartialDigits), out uint partialVal);
392
intDigits = intDigits.Slice(
PowersOf1e9
.MaxPartialDigits);
423
int valueDigits = (base1E9.Length - 1) *
PowersOf1e9
.MaxPartialDigits + FormattingHelpers.CountDigits(base1E9[^1]);
425
int powersOf1e9BufferLength =
PowersOf1e9
.GetBufferSize(Math.Max(valueDigits, trailingZeroCount + 1), out int maxIndex);
426
PowersOf1e9
powersOf1e9 =
PowersOf1e9
.GetCached(powersOf1e9BufferLength);
431
int leadingLength = checked((int)(digitRatio *
PowersOf1e9
.MaxPartialDigits * base1E9.Length) + 3);
447
static void Recursive(in
PowersOf1e9
powersOf1e9, int powersOf1e9Index, ReadOnlySpan<nuint> base1E9, Span<nuint> bits)
466
int multiplierTrailingZeroCount =
PowersOf1e9
.OmittedLength(powersOf1e9Index);
471
int bufferLength = checked((int)(digitRatio *
PowersOf1e9
.MaxPartialDigits * multiplier1E9Length) + 1 + 2);
499
int trailingPartialCount = Math.DivRem(trailingZeroCount,
PowersOf1e9
.MaxPartialDigits, out int remainingTrailingZeroCount);
502
nuint carry = MultiplyAdd(bits.Slice(0, resultLength),
PowersOf1e9
.TenPowMaxPartial, 0);
533
nuint carry = MultiplyAdd(bits.Slice(0, resultLength),
PowersOf1e9
.TenPowMaxPartial, base1E9[i]);
842
int valueDigits = (base1E9Value.Length - 1) *
PowersOf1e9
.MaxPartialDigits + FormattingHelpers.CountDigits(base1E9Value[^1]);
975
bufferEnd = UInt32ToDecChars(bufferEnd, (uint)base1E9Value[i],
PowersOf1e9
.MaxPartialDigits);
976
digits -=
PowersOf1e9
.MaxPartialDigits;
999
PowersOf1e9
.FloorBufferSize(bits.Length, out int powersOf1e9BufferLength, out int maxIndex);
1000
PowersOf1e9
powersOf1e9 =
PowersOf1e9
.GetCached(powersOf1e9BufferLength);
1004
static void DivideAndConquer(in
PowersOf1e9
powersOf1e9, int powersIndex, ReadOnlySpan<nuint> bits, Span<nuint> base1E9Buffer, out int base1E9Written)
1016
int omittedLength =
PowersOf1e9
.OmittedLength(powersIndex);
1022
omittedLength =
PowersOf1e9
.OmittedLength(powersIndex);
1088
const uint Divisor = (uint)
PowersOf1e9
.TenPowMaxPartial;
1119
public static
PowersOf1e9
GetCached(int bufferLength)
1128
PowersOf1e9
result = new((Span<nuint>)buffer);