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();
316 references to _bits
System.Runtime.Numerics (316)
System\Number.BigInteger.cs (3)
765if (value._bits == null) 787int cuSrc = value._bits.Length; 802uint uCarry = value._bits[iuSrc];
System\Numerics\BigInteger.cs (313)
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; 1544Debug.Assert(_bits is null || _sign == 0 ? buffer.Length == 2 : buffer.Length >= _bits.Length + 1); 1548if (_bits is null) 1555_bits.CopyTo(buffer); 1556buffer = buffer.Slice(0, _bits.Length + 1); 1620if ((_bits is null) || (_bits.Length <= 4)) 1630ulong highBits = ((ulong)_bits[^1] << kcbitUint) + _bits[^2]; 1631double lowBitsCount32 = _bits.Length - 2; // if Length > int.MaxValue/32, counting in bits can cause overflow 1741if (left._bits == null && right._bits == null) 1745return Add(left._bits, left._sign, right._bits, -1 * right._sign); 1746return Subtract(left._bits, left._sign, right._bits, right._sign); 1832if (value._bits == null) 1835int length = value._bits.Length; 1842if (length > 2) hi = (int)value._bits[2]; 1843if (length > 1) mi = (int)value._bits[1]; 1844if (length > 0) lo = (int)value._bits[0]; 1855uint[]? bits = value._bits; 1903if (value._bits == null) 1907if (value._bits.Length > 1) 1914return checked((int)value._bits[0]); 1916if (value._bits[0] > kuMaskHighBit) 1921return unchecked(-(int)value._bits[0]); 1927if (value._bits == null) 1932int len = value._bits.Length; 1941uu = NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 1945uu = value._bits[0]; 1964if (value._bits is null) 1969int len = value._bits.Length; 1981NumericsHelpers.MakeUInt64((len > 3) ? value._bits[3] : 0, value._bits[2]), 1982NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]) 1987uu = NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 1991uu = value._bits[0]; 2040if (value._bits == null) 2044else if (value._bits.Length > 1 || value._sign < 0) 2050return value._bits[0]; 2058if (value._bits == null) 2063int len = value._bits.Length; 2071return NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 2073return value._bits[0]; 2084if (value._bits is null) 2089int len = value._bits.Length; 2099NumericsHelpers.MakeUInt64((len > 3) ? value._bits[3] : 0, value._bits[2]), 2100NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]) 2105return NumericsHelpers.MakeUInt64(value._bits[1], value._bits[0]); 2107return value._bits[0]; 2365if (left._bits is null && right._bits is null) 2374int size = (left._bits?.Length ?? 1) + 1; 2381size = (right._bits?.Length ?? 1) + 1; 2421if (left._bits is null && right._bits is null) 2430int size = (left._bits?.Length ?? 1) + 1; 2437size = (right._bits?.Length ?? 1) + 1; 2472if (left._bits is null && right._bits is null) 2481int size = (left._bits?.Length ?? 1) + 1; 2488size = (right._bits?.Length ?? 1) + 1; 2535int xl = value._bits?.Length ?? 1; 2596int xl = value._bits?.Length ?? 1; 2681return new BigInteger(-value._sign, value._bits); 2705if (left._bits == null && right._bits == null) 2709return Subtract(left._bits, left._sign, right._bits, -1 * right._sign); 2710return Add(left._bits, left._sign, right._bits, right._sign); 2718if (left._bits == null && right._bits == null) 2721return Multiply(left._bits, left._sign, right._bits, right._sign); 2806bool trivialDividend = dividend._bits == null; 2807bool trivialDivisor = divisor._bits == null; 2825Debug.Assert(dividend._bits != null); 2827int size = dividend._bits.Length; 2835BigIntegerCalculator.Divide(dividend._bits, NumericsHelpers.Abs(divisor._sign), quotient); 2845Debug.Assert(dividend._bits != null && divisor._bits != null); 2847if (dividend._bits.Length < divisor._bits.Length) 2853int size = dividend._bits.Length - divisor._bits.Length + 1; 2858BigIntegerCalculator.Divide(dividend._bits, divisor._bits, quotient); 2873bool trivialDividend = dividend._bits == null; 2874bool trivialDivisor = divisor._bits == null; 2890Debug.Assert(dividend._bits != null); 2891uint remainder = BigIntegerCalculator.Remainder(dividend._bits, NumericsHelpers.Abs(divisor._sign)); 2895Debug.Assert(dividend._bits != null && divisor._bits != null); 2897if (dividend._bits.Length < divisor._bits.Length) 2903int size = dividend._bits.Length; 2908BigIntegerCalculator.Remainder(dividend._bits, divisor._bits, bits); 3090uint[]? bits = _bits; 3140Debug.Assert(_bits is null ? xd.Length == 1 : xd.Length == _bits.Length); 3142if (_bits is null) 3148_bits.CopyTo(xd); 3156if (_bits != null) 3161Debug.Assert(_bits.Length > 0); 3163Debug.Assert(_bits.Length > 1 || _bits[0] >= kuMaskHighBit); 3165Debug.Assert(_bits[_bits.Length - 1] != 0); 3167Debug.Assert(_bits.Length <= MaxLength); 3199if (value._bits is null) 3207return (value._sign >= 0) ? uint.LeadingZeroCount(value._bits[^1]) : 0; 3215if (value._bits is null) 3226for (int i = 0; i < value._bits.Length; i++) 3228uint part = value._bits[i]; 3244part = ~value._bits[i] + 1; 3249while ((part == 0) && (i < value._bits.Length)); 3251while (i < value._bits.Length) 3255part = ~value._bits[i]; 3272scoped ReadOnlySpan<uint> bits = value._bits; 3427scoped ReadOnlySpan<uint> bits = value._bits; 3571if (value._bits is null) 3581uint part = value._bits[0]; 3583for (int i = 1; (part == 0) && (i < value._bits.Length); i++) 3585part = value._bits[i]; 3612uint[]? bits = _bits; 3664uint[]? bits = _bits; 3766uint[]? bits = _bits; 3866uint[]? bits = _bits; 3923if (value._bits is null) 3928return ((value._bits.Length * 32) - 1) ^ uint.LeadingZeroCount(value._bits[^1]); 3981if (value._bits is null) 3988if (sign._bits is null) 4007if (value._bits is null) 4090if (value._bits is null) 4094return (value._bits[0] & 1) == 0; 4130if (value._bits is null) 4134return (value._bits[0] & 1) != 0; 4691if (value._bits is not null) 4708if (value._bits is not null) 4744if (value._bits is not null) 4761if (value._bits is not null) 4805if (value._bits is not null) 4828if (value._bits is not null) 4884if (value._bits is not null) 4886uint bits = value._bits[0]; 4907if (value._bits is not null) 4909uint bits = value._bits[0]; 4949if (value._bits is not null) 4951actualResult = IsNegative(value) ? (short)(~value._bits[0] + 1) : (short)value._bits[0]; 4965if (value._bits is not null) 4967actualResult = IsNegative(value) ? (int)(~value._bits[0] + 1) : (int)value._bits[0]; 4981if (value._bits is not null) 4985if (value._bits.Length >= 2) 4987bits = value._bits[1]; 4991bits |= value._bits[0]; 5012if (value._bits is not null) 5017if (value._bits.Length >= 4) 5019upperBits = value._bits[3]; 5023if (value._bits.Length >= 3) 5025upperBits |= value._bits[2]; 5028if (value._bits.Length >= 2) 5030lowerBits = value._bits[1]; 5034lowerBits |= value._bits[0]; 5057if (value._bits is not null) 5061if (Environment.Is64BitProcess && (value._bits.Length >= 2)) 5063bits = value._bits[1]; 5067bits |= value._bits[0]; 5094if (value._bits is not null) 5096actualResult = IsNegative(value) ? (sbyte)(~value._bits[0] + 1) : (sbyte)value._bits[0]; 5116if (value._bits is not null) 5118uint bits = value._bits[0]; 5139if (value._bits is not null) 5141uint bits = value._bits[0]; 5162if (value._bits is not null) 5166if (value._bits.Length >= 2) 5168bits = value._bits[1]; 5172bits |= value._bits[0]; 5193if (value._bits is not null) 5198if (value._bits.Length >= 4) 5200upperBits = value._bits[3]; 5204if (value._bits.Length >= 3) 5206upperBits |= value._bits[2]; 5209if (value._bits.Length >= 2) 5211lowerBits = value._bits[1]; 5215lowerBits |= value._bits[0]; 5238if (value._bits is not null) 5242if (Environment.Is64BitProcess && (value._bits.Length >= 2)) 5244bits = value._bits[1]; 5248bits |= value._bits[0]; 5303scoped ReadOnlySpan<uint> bits = value._bits;