2 instantiations of PowersOf1e9
System.Runtime.Numerics (2)
System\Number.BigInteger.cs (2)
1175
return new
PowersOf1e9
(cached);
1179
PowersOf1e9 result =
new
((Span<nuint>)buffer);
29 references to PowersOf1e9
System.Runtime.Numerics (29)
System\Number.BigInteger.cs (29)
419
int base1E9Length = (intDigits.Length +
PowersOf1e9
.MaxPartialDigits - 1) /
PowersOf1e9
.MaxPartialDigits;
423
ReadOnlySpan<byte> leadingDigits = intDigits[..(intDigits.Length %
PowersOf1e9
.MaxPartialDigits)];
431
Debug.Assert(intDigits.Length %
PowersOf1e9
.MaxPartialDigits == 0);
435
uint.TryParse(intDigits.Slice(0,
PowersOf1e9
.MaxPartialDigits), out uint partialVal);
437
intDigits = intDigits.Slice(
PowersOf1e9
.MaxPartialDigits);
468
int valueDigits = (base1E9.Length - 1) *
PowersOf1e9
.MaxPartialDigits + FormattingHelpers.CountDigits(base1E9[^1]);
470
int powersOf1e9BufferLength =
PowersOf1e9
.GetBufferSize(Math.Max(valueDigits, trailingZeroCount + 1), out int maxIndex);
471
PowersOf1e9
powersOf1e9 =
PowersOf1e9
.GetCached(powersOf1e9BufferLength);
476
int leadingLength = checked((int)(digitRatio *
PowersOf1e9
.MaxPartialDigits * base1E9.Length) + 3);
492
static void Recursive(in
PowersOf1e9
powersOf1e9, int powersOf1e9Index, ReadOnlySpan<nuint> base1E9, Span<nuint> bits)
511
int multiplierTrailingZeroCount =
PowersOf1e9
.OmittedLength(powersOf1e9Index);
516
int bufferLength = checked((int)(digitRatio *
PowersOf1e9
.MaxPartialDigits * multiplier1E9Length) + 1 + 2);
544
int trailingPartialCount = Math.DivRem(trailingZeroCount,
PowersOf1e9
.MaxPartialDigits, out int remainingTrailingZeroCount);
547
nuint carry = MultiplyAdd(bits.Slice(0, resultLength),
PowersOf1e9
.TenPowMaxPartial, 0);
578
nuint carry = MultiplyAdd(bits.Slice(0, resultLength),
PowersOf1e9
.TenPowMaxPartial, base1E9[i]);
878
int valueDigits = (base1E9Value.Length - 1) *
PowersOf1e9
.MaxPartialDigits + FormattingHelpers.CountDigits(base1E9Value[^1]);
1001
pos = UInt32ToDecChars(destination, pos, (uint)base1E9Value[i],
PowersOf1e9
.MaxPartialDigits);
1002
digits -=
PowersOf1e9
.MaxPartialDigits;
1050
PowersOf1e9
.FloorBufferSize(bits.Length, out int powersOf1e9BufferLength, out int maxIndex);
1051
PowersOf1e9
powersOf1e9 =
PowersOf1e9
.GetCached(powersOf1e9BufferLength);
1055
static void DivideAndConquer(in
PowersOf1e9
powersOf1e9, int powersIndex, ReadOnlySpan<nuint> bits, Span<nuint> base1E9Buffer, out int base1E9Written)
1067
int omittedLength =
PowersOf1e9
.OmittedLength(powersIndex);
1073
omittedLength =
PowersOf1e9
.OmittedLength(powersIndex);
1139
const uint Divisor = (uint)
PowersOf1e9
.TenPowMaxPartial;
1170
public static
PowersOf1e9
GetCached(int bufferLength)
1179
PowersOf1e9
result = new((Span<nuint>)buffer);