46 references to BitsPerLimb
System.Runtime.Numerics (46)
System\Number.BigInteger.cs (5)
398
double digitRatio = 0.10381025297 * 32.0 / BigIntegerCalculator.
BitsPerLimb
; // log_{2^BitsPerLimb}(10)
430
double digitRatio = 0.10381025297 * 32.0 / BigIntegerCalculator.
BitsPerLimb
;
470
double digitRatio = 0.10381025297 * 32.0 / BigIntegerCalculator.
BitsPerLimb
;
832
double digitRatio = 1.070328873472 * BigIntegerCalculator.
BitsPerLimb
/ 32.0;
1396
return (MaxPartialDigits * (1 << index)) / BigIntegerCalculator.
BitsPerLimb
;
System\Numerics\BigInteger.cs (19)
38
internal static int MaxLength => Array.MaxLength / BigIntegerCalculator.
BitsPerLimb
;
215
int bitsPerLimb = BigIntegerCalculator.
BitsPerLimb
;
1756
nuint highBitMask = (nuint)1 << (BigIntegerCalculator.
BitsPerLimb
- 1);
1813
int bitsPerLimb = BigIntegerCalculator.
BitsPerLimb
;
2027
int bitsPerLimb = BigIntegerCalculator.
BitsPerLimb
;
2583
(int digitShift, int smallShift) = Math.DivRem(shift, BigIntegerCalculator.
BitsPerLimb
);
2598
: bits[^1] >> (BigIntegerCalculator.
BitsPerLimb
- smallShift);
2636
: m >> (BigIntegerCalculator.
BitsPerLimb
- smallShift);
2677
(int digitShift, int smallShift) = Math.DivRem(shift, BigIntegerCalculator.
BitsPerLimb
);
3089
long bitLength = (long)bitsArrayLength * BigIntegerCalculator.
BitsPerLimb
-
3299
&& (leadingZeroCount != bits.Length - 1 || bits[^1] != ((nuint)1 << (BigIntegerCalculator.
BitsPerLimb
- 1))))
3361
result += (uint)BigIntegerCalculator.
BitsPerLimb
;
3395
int result = (bits.Length - 1) * BigIntegerCalculator.
BitsPerLimb
;
3399
result += BigIntegerCalculator.
BitsPerLimb
- BitOperations.LeadingZeroCount(bits[^1]);
3414
result += BigIntegerCalculator.
BitsPerLimb
+ 1 - BitOperations.LeadingZeroCount(~part);
3631
? (BigInteger)((BigIntegerCalculator.
BitsPerLimb
- 1) ^ BitOperations.LeadingZeroCount((nuint)value._sign | 1))
3632
: (BigInteger)(((long)value._bits.Length * BigIntegerCalculator.
BitsPerLimb
- 1) ^ BitOperations.LeadingZeroCount(value._bits[^1]));
5013
(int digitShift, int smallShift) = Math.DivRem(shiftAmount, BigIntegerCalculator.
BitsPerLimb
);
5052
nuint signBit = (nuint)1 << (BigIntegerCalculator.
BitsPerLimb
- 1);
System\Numerics\BigIntegerCalculator.DivRem.cs (5)
197
int backShift =
BitsPerLimb
- shift;
353
Debug.Assert((uint)sigmaSmall <=
BitsPerLimb
);
364
int carryShift =
BitsPerLimb
- sigmaSmall;
432
Debug.Assert((uint)sigmaSmall <=
BitsPerLimb
);
434
int carryShift =
BitsPerLimb
- sigmaSmall;
System\Numerics\BigIntegerCalculator.PowMod.cs (7)
175
for (int j = 0; j <
BitsPerLimb
; j++)
462
int bits = (length - 1) *
BitsPerLimb
;
464
bits +=
BitsPerLimb
- (int)nuint.LeadingZeroCount(topLimb);
475
return (int)((value[(int)((uint)bitIndex / (uint)
BitsPerLimb
)] >> (bitIndex & (
BitsPerLimb
- 1))) & 1);
753
for (int j = 0; j <
BitsPerLimb
; j++)
815
for (int j = 0; j <
BitsPerLimb
; j++)
System\Numerics\BigIntegerCalculator.ShiftRot.cs (7)
16
int digitShiftMax = (int)(0x80000000 /
BitsPerLimb
);
25
(digitShift, smallShift) = Math.DivRem(-(int)rotateLeftAmount,
BitsPerLimb
);
34
(digitShift, smallShift) = Math.DivRem((int)rotateLeftAmount,
BitsPerLimb
);
104
Debug.Assert((uint)shift <
BitsPerLimb
);
112
int back =
BitsPerLimb
- shift;
178
Debug.Assert((uint)shift <
BitsPerLimb
);
186
int back =
BitsPerLimb
- shift;
System\Numerics\BigIntegerCalculator.SquMul.cs (3)
611
Debug.Assert(pm2[^1] < ((nuint)1 << (
BitsPerLimb
- 1)));
1050
carry = bits[i] >> (
BitsPerLimb
- 1);
1061
carry = bits[i] << (
BitsPerLimb
- 1);