28 writes to _bits
System.Runtime.Numerics (28)
System\Numerics\BigInteger.cs (28)
59_bits = null; 70_bits = null; 75_bits = new uint[1]; 86_bits = null; 108_bits = new uint[1]; 113_bits = new uint[2]; 128_bits = null; 133_bits = new uint[1]; 139_bits = new uint[2]; 166_bits = null; 213_bits = new uint[cu + 2]; 246_bits = null; 250_bits = new uint[size]; 323_bits = null; 347_bits = null; 354_bits = new uint[1] { unchecked((uint)_sign) }; 448_bits = null; 460_bits = new uint[len]; 466_bits = val; 472_bits = val; 486_bits = rgu; 519_bits = null; 529_bits = [value[0]]; 535_bits = value.ToArray(); 595_bits = null; 601_bits = [value[0]]; 606_bits = null; 625_bits = value.ToArray();
319 references to _bits
System.Runtime.Numerics (319)
System\Number.BigInteger.cs (3)
765if (value._bits == null) 787int cuSrc = value._bits.Length; 802uint uCarry = value._bits[iuSrc];
System\Numerics\BigInteger.cs (316)
76_bits[0] = value; 109_bits[0] = (uint)x; 114_bits[0] = unchecked((uint)x); 115_bits[1] = (uint)(x >> kcbitUint); 134_bits[0] = (uint)value; 140_bits[0] = unchecked((uint)value); 141_bits[1] = (uint)(value >> kcbitUint); 214_bits[cu + 1] = (uint)(man >> (cbit + kcbitUint)); 215_bits[cu] = unchecked((uint)(man >> cbit)); 217_bits[cu - 1] = unchecked((uint)man) << (kcbitUint - cbit); 254_bits[0] = (uint)bits[0]; 256_bits[1] = (uint)bits[1]; 258_bits[2] = (uint)bits[2]; 461Array.Copy(val, _bits, len); 642if (_bits == null) 648int iu = _bits.Length - 1; 650return BitOperations.IsPow2(_bits[iu]) && !_bits.AsSpan(0, iu).ContainsAnyExcept(0u); 656public bool IsOne { get { AssertValid(); return _sign == 1 && _bits == null; } } 658public bool IsEven { get { AssertValid(); return _bits == null ? (_sign & 1) == 0 : (_bits[0] & 1) == 0; } } 751bool trivialDividend = dividend._bits == null; 752bool trivialDivisor = divisor._bits == null; 769Debug.Assert(dividend._bits != null); 776int size = dividend._bits.Length; 784BigIntegerCalculator.Divide(dividend._bits, NumericsHelpers.Abs(divisor._sign), quotient, out rest); 796Debug.Assert(divisor._bits != null); 798if (dividend._bits.Length < divisor._bits.Length) 806int size = dividend._bits.Length; 812size = dividend._bits.Length - divisor._bits.Length + 1; 817BigIntegerCalculator.Divide(dividend._bits, divisor._bits, quotient, rest); 850if (value._bits == null) 853ulong h = value._bits[value._bits.Length - 1]; 854ulong m = value._bits.Length > 1 ? value._bits[value._bits.Length - 2] : 0; 855ulong l = value._bits.Length > 2 ? value._bits[value._bits.Length - 3] : 0; 859long b = (long)value._bits.Length * 32 - c; 879bool trivialLeft = left._bits == null; 880bool trivialRight = right._bits == null; 889Debug.Assert(right._bits != null); 891? BigIntegerCalculator.Gcd(right._bits, NumericsHelpers.Abs(left._sign)) 892: new BigInteger(right._bits, negative: false); 897Debug.Assert(left._bits != null); 899? BigIntegerCalculator.Gcd(left._bits, NumericsHelpers.Abs(right._sign)) 900: new BigInteger(left._bits, negative: false); 903Debug.Assert(left._bits != null && right._bits != null); 905if (BigIntegerCalculator.Compare(left._bits, right._bits) < 0) 907return GreatestCommonDivisor(right._bits, left._bits); 911return GreatestCommonDivisor(left._bits, right._bits); 979bool trivialValue = value._bits == null; 980bool trivialExponent = exponent._bits == null; 981bool trivialModulus = modulus._bits == null; 988trivialValue ? BigIntegerCalculator.Pow(NumericsHelpers.Abs(value._sign), exponent._bits!, NumericsHelpers.Abs(modulus._sign)) : 989trivialExponent ? BigIntegerCalculator.Pow(value._bits!, NumericsHelpers.Abs(exponent._sign), NumericsHelpers.Abs(modulus._sign)) : 990BigIntegerCalculator.Pow(value._bits!, exponent._bits!, NumericsHelpers.Abs(modulus._sign)); 996int size = (modulus._bits?.Length ?? 1) << 1; 1006BigIntegerCalculator.Pow(NumericsHelpers.Abs(value._sign), NumericsHelpers.Abs(exponent._sign), modulus._bits!, bits); 1010BigIntegerCalculator.Pow(NumericsHelpers.Abs(value._sign), exponent._bits!, modulus._bits!, bits); 1015BigIntegerCalculator.Pow(value._bits!, NumericsHelpers.Abs(exponent._sign), modulus._bits!, bits); 1019BigIntegerCalculator.Pow(value._bits!, exponent._bits!, modulus._bits!, bits); 1042bool trivialValue = value._bits == null; 1068int size = BigIntegerCalculator.PowBound(power, value._bits!.Length); 1074BigIntegerCalculator.Pow(value._bits, power, bits); 1088if (_bits is null) 1092hash.AddBytes(MemoryMarshal.AsBytes(_bits.AsSpan())); 1108if (_bits == null) 1112if ((_sign ^ other) < 0 || (cu = _bits.Length) > 2) 1117return _bits[0] == uu; 1119return NumericsHelpers.MakeUInt64(_bits[1], _bits[0]) == uu; 1129if (_bits == null) 1132int cu = _bits.Length; 1136return _bits[0] == other; 1137return NumericsHelpers.MakeUInt64(_bits[1], _bits[0]) == other; 1145return _sign == other._sign && _bits.AsSpan().SequenceEqual(other._bits); 1152if (_bits == null) 1155if ((_sign ^ other) < 0 || (cu = _bits.Length) > 2) 1158ulong uuTmp = cu == 2 ? NumericsHelpers.MakeUInt64(_bits[1], _bits[0]) : _bits[0]; 1169if (_bits == null) 1171int cu = _bits.Length; 1174ulong uuTmp = cu == 2 ? NumericsHelpers.MakeUInt64(_bits[1], _bits[0]) : _bits[0]; 1190if (_bits == null) 1192if (other._bits == null) 1197if (other._bits == null) 1200int bitsResult = BigIntegerCalculator.Compare(_bits, other._bits); 1360uint[]? bits = _bits; 1517Debug.Assert(_bits is null || _sign == 0 ? buffer.Length == 2 : buffer.Length >= _bits.Length + 1); 1521if (_bits is null) 1528_bits.CopyTo(buffer); 1529buffer = buffer.Slice(0, _bits.Length + 1); 1593if ((_bits is null) || (_bits.Length <= 4)) 1603ulong highBits = ((ulong)_bits[^1] << kcbitUint) + _bits[^2]; 1604double lowBitsCount32 = _bits.Length - 2; // if Length > int.MaxValue/32, counting in bits can cause overflow 1714if (left._bits == null && right._bits == null) 1718return Add(left._bits, left._sign, right._bits, -1 * right._sign); 1719return Subtract(left._bits, left._sign, right._bits, right._sign); 1805if (value._bits == null) 1808int length = value._bits.Length; 1815if (length > 2) hi = (int)value._bits[2]; 1816if (length > 1) mi = (int)value._bits[1]; 1817if (length > 0) lo = (int)value._bits[0]; 1828uint[]? bits = value._bits; 1876if (value._bits == null) 1880if (value._bits.Length > 1) 1887return checked((int)value._bits[0]); 1889if (value._bits[0] > kuMaskHighBit) 1894return unchecked(-(int)value._bits[0]); 1900if (value._bits == null) 1905int len = value._bits.Length; 1914uu = NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 1918uu = value._bits[0]; 1937if (value._bits is null) 1942int len = value._bits.Length; 1954NumericsHelpers.MakeUInt64((len > 3) ? value._bits[3] : 0, value._bits[2]), 1955NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]) 1960uu = NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 1964uu = value._bits[0]; 2013if (value._bits == null) 2017else if (value._bits.Length > 1 || value._sign < 0) 2023return value._bits[0]; 2031if (value._bits == null) 2036int len = value._bits.Length; 2044return NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 2046return value._bits[0]; 2057if (value._bits is null) 2062int len = value._bits.Length; 2072NumericsHelpers.MakeUInt64((len > 3) ? value._bits[3] : 0, value._bits[2]), 2073NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]) 2078return NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 2080return value._bits[0]; 2338if (left._bits is null && right._bits is null) 2347int size = (left._bits?.Length ?? 1) + 1; 2354size = (right._bits?.Length ?? 1) + 1; 2394if (left._bits is null && right._bits is null) 2403int size = (left._bits?.Length ?? 1) + 1; 2410size = (right._bits?.Length ?? 1) + 1; 2445if (left._bits is null && right._bits is null) 2454int size = (left._bits?.Length ?? 1) + 1; 2461size = (right._bits?.Length ?? 1) + 1; 2508int xl = value._bits?.Length ?? 1; 2569int xl = value._bits?.Length ?? 1; 2654return new BigInteger(-value._sign, value._bits); 2678if (left._bits == null && right._bits == null) 2682return Subtract(left._bits, left._sign, right._bits, -1 * right._sign); 2683return Add(left._bits, left._sign, right._bits, right._sign); 2691if (left._bits == null && right._bits == null) 2694return Multiply(left._bits, left._sign, right._bits, right._sign); 2779bool trivialDividend = dividend._bits == null; 2780bool trivialDivisor = divisor._bits == null; 2798Debug.Assert(dividend._bits != null); 2800int size = dividend._bits.Length; 2808BigIntegerCalculator.Divide(dividend._bits, NumericsHelpers.Abs(divisor._sign), quotient); 2818Debug.Assert(dividend._bits != null && divisor._bits != null); 2820if (dividend._bits.Length < divisor._bits.Length) 2826int size = dividend._bits.Length - divisor._bits.Length + 1; 2831BigIntegerCalculator.Divide(dividend._bits, divisor._bits, quotient); 2846bool trivialDividend = dividend._bits == null; 2847bool trivialDivisor = divisor._bits == null; 2863Debug.Assert(dividend._bits != null); 2864uint remainder = BigIntegerCalculator.Remainder(dividend._bits, NumericsHelpers.Abs(divisor._sign)); 2868Debug.Assert(dividend._bits != null && divisor._bits != null); 2870if (dividend._bits.Length < divisor._bits.Length) 2876int size = dividend._bits.Length; 2881BigIntegerCalculator.Remainder(dividend._bits, divisor._bits, bits); 3063uint[]? bits = _bits; 3113Debug.Assert(_bits is null ? xd.Length == 1 : xd.Length == _bits.Length); 3115if (_bits is null) 3121_bits.CopyTo(xd); 3129if (_bits != null) 3134Debug.Assert(_bits.Length > 0); 3136Debug.Assert(_bits.Length > 1 || _bits[0] >= kuMaskHighBit); 3138Debug.Assert(_bits[_bits.Length - 1] != 0); 3140Debug.Assert(_bits.Length <= MaxLength); 3172if (value._bits is null) 3180return (value._sign >= 0) ? uint.LeadingZeroCount(value._bits[^1]) : 0; 3188if (value._bits is null) 3199for (int i = 0; i < value._bits.Length; i++) 3201uint part = value._bits[i]; 3217part = ~value._bits[i] + 1; 3222while ((part == 0) && (i < value._bits.Length)); 3224while (i < value._bits.Length) 3228part = ~value._bits[i]; 3242int byteCount = (value._bits is null) ? sizeof(int) : (value._bits.Length * 4); 3259int xl = value._bits?.Length ?? 1; 3377int byteCount = (value._bits is null) ? sizeof(int) : (value._bits.Length * 4); 3394int xl = value._bits?.Length ?? 1; 3512if (value._bits is null) 3522uint part = value._bits[0]; 3524for (int i = 1; (part == 0) && (i < value._bits.Length); i++) 3526part = value._bits[i]; 3553uint[]? bits = _bits; 3605uint[]? bits = _bits; 3707uint[]? bits = _bits; 3807uint[]? bits = _bits; 3864if (value._bits is null) 3869return ((value._bits.Length * 32) - 1) ^ uint.LeadingZeroCount(value._bits[^1]); 3922if (value._bits is null) 3929if (sign._bits is null) 3948if (value._bits is null) 4031if (value._bits is null) 4035return (value._bits[0] & 1) == 0; 4071if (value._bits is null) 4075return (value._bits[0] & 1) != 0; 4632if (value._bits is not null) 4649if (value._bits is not null) 4685if (value._bits is not null) 4702if (value._bits is not null) 4746if (value._bits is not null) 4769if (value._bits is not null) 4825if (value._bits is not null) 4827uint bits = value._bits[0]; 4848if (value._bits is not null) 4850uint bits = value._bits[0]; 4890if (value._bits is not null) 4892actualResult = IsNegative(value) ? (short)(~value._bits[0] + 1) : (short)value._bits[0]; 4906if (value._bits is not null) 4908actualResult = IsNegative(value) ? (int)(~value._bits[0] + 1) : (int)value._bits[0]; 4922if (value._bits is not null) 4926if (value._bits.Length >= 2) 4928bits = value._bits[1]; 4932bits |= value._bits[0]; 4953if (value._bits is not null) 4958if (value._bits.Length >= 4) 4960upperBits = value._bits[3]; 4964if (value._bits.Length >= 3) 4966upperBits |= value._bits[2]; 4969if (value._bits.Length >= 2) 4971lowerBits = value._bits[1]; 4975lowerBits |= value._bits[0]; 4998if (value._bits is not null) 5002if (Environment.Is64BitProcess && (value._bits.Length >= 2)) 5004bits = value._bits[1]; 5008bits |= value._bits[0]; 5035if (value._bits is not null) 5037actualResult = IsNegative(value) ? (sbyte)(~value._bits[0] + 1) : (sbyte)value._bits[0]; 5057if (value._bits is not null) 5059uint bits = value._bits[0]; 5080if (value._bits is not null) 5082uint bits = value._bits[0]; 5103if (value._bits is not null) 5107if (value._bits.Length >= 2) 5109bits = value._bits[1]; 5113bits |= value._bits[0]; 5134if (value._bits is not null) 5139if (value._bits.Length >= 4) 5141upperBits = value._bits[3]; 5145if (value._bits.Length >= 3) 5147upperBits |= value._bits[2]; 5150if (value._bits.Length >= 2) 5152lowerBits = value._bits[1]; 5156lowerBits |= value._bits[0]; 5179if (value._bits is not null) 5183if (Environment.Is64BitProcess && (value._bits.Length >= 2)) 5185bits = value._bits[1]; 5189bits |= value._bits[0];