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