8[TypeForwardedFrom(
"System.Numerics, Version=4.0.0.0, PublicKeyToken=b77a5c561934e089")]
 
   54            int num = _bits.Length - 1;
 
 
   90                return (
_bits[0] & 1) == 0;
 
   92            return (
_sign & 1) == 0;
 
 
  100        if (
value == 
int.MinValue)
 
 
  109    [CLSCompliant(
false)]
 
  112        if (
value <= 
int.MaxValue)
 
 
  127        if (
int.MinValue < 
value && 
value <= 
int.MaxValue)
 
  133        if (
value == 
int.MinValue)
 
  141            num = (ulong)(-
value);
 
  149        if (num <= uint.MaxValue)
 
  152            _bits[0] = (uint)num;
 
  157            _bits[0] = (uint)num;
 
  158            _bits[1] = (uint)(num >> 32);
 
 
  162    [CLSCompliant(
false)]
 
  165        if (
value <= 
int.MaxValue)
 
  170        else if (
value <= uint.MaxValue)
 
 
  186        : this((double)
value)
 
 
  192        if (!
double.IsFinite(
value))
 
  194            if (
double.IsInfinity(
value))
 
  233        int num = (exp - 1) / 32 + 1;
 
  234        int num2 = num * 32 - exp;
 
  235        _bits = 
new uint[num + 2];
 
  236        _bits[num + 1] = (uint)(man >> num2 + 32);
 
  237        _bits[num] = (uint)(man >> num2);
 
  240            _bits[num - 1] = (uint)((
int)man << 32 - num2);
 
 
  269        _bits = 
new uint[num];
 
 
  282    [CLSCompliant(
false)]
 
  290        int num = 
value.Length;
 
  294            byte b = (isBigEndian ? 
value[0] : 
value[num - 1]);
 
  295            flag = (b & 0x80u) != 0 && !isUnsigned;
 
  301                    for (i = 1; i < num && 
value[i] == 0; i++)
 
  310                    while (num >= 0 && 
value[num] == 0)
 
  330            _sign = (flag ? (-1) : 0);
 
  333                for (
int j = 0; j < num; j++)
 
  340                for (
int num2 = num - 1; num2 >= 0; num2--)
 
  346            if (
_sign < 0 && !flag)
 
  351            if (
_sign == 
int.MinValue)
 
  358        int num4 = num / 4 + ((num3 != 0) ? 1 : 0);
 
  359        uint[] 
array = 
new uint[num4];
 
  365            for (k = 0; k < num4 - ((num3 != 0) ? 1 : 0); k++)
 
  367                for (
int l = 0; l < 4; l++)
 
  369                    byte b2 = 
value[num6];
 
  379            for (k = 0; k < num4 - ((num3 != 0) ? 1 : 0); k++)
 
  381                for (
int m = 0; m < 4; m++)
 
  383                    byte b3 = 
value[num6];
 
  394                array[num4 - 1] = uint.MaxValue;
 
  398                for (
int num6 = 0; num6 < num3; num6++)
 
  400                    byte b4 = 
value[num6];
 
  406                for (
int num6 = num5; num6 >= num - num3; num6--)
 
  408                    byte b5 = 
value[num6];
 
  416            int num7 = array.Length - 1;
 
  417            while (num7 >= 0 && 
array[num7] == 0)
 
  433                if ((
int)
array[0] > 0)
 
  440            if (num7 != 
array.Length)
 
  443                _bits = 
new uint[num7];
 
 
  469            int num = value.Length - 1;
 
  470            while (num > 0 && 
value[num - 1] == 0)
 
  481        else if (
value.Length == 1 && 
value[0] < 2147483648u)
 
  485            if (
_sign == 
int.MinValue)
 
  492            _sign = ((!negative) ? 1 : (-1));
 
 
  503        int num = 
value.Length;
 
  504        bool flag = num > 0 && (
value[num - 1] & 0x80000000u) == 2147483648u;
 
  505        while (num > 0 && 
value[num - 1] == 0)
 
  515            if ((
int)
value[0] < 0 && !flag)
 
  521            else if (
int.MinValue == (
int)
value[0])
 
  534            if (num != 
value.Length)
 
  537                _bits = 
new uint[num];
 
  548        int num2 = 
value.Length;
 
  549        while (num2 > 0 && 
value[num2 - 1] == 0)
 
  553        if (num2 == 1 && (
int)
value[0] > 0)
 
  560            if (
value[0] == 2147483648u)
 
  568        else if (num2 != 
value.Length)
 
  571            _bits = 
new uint[num2];
 
 
  657        return dividend / divisor;
 
 
  662        return dividend % divisor;
 
 
  667        bool flag = dividend._bits == 
null;
 
  668        bool flag2 = divisor._bits == 
null;
 
  675            remainder = bigInteger2;
 
  680            remainder = dividend;
 
  687            remainder = ((dividend._sign < 0) ? (-1 * remainder2) : remainder2);
 
  690        if (dividend.
_bits.Length < divisor.
_bits.Length)
 
  692            remainder = dividend;
 
  697        remainder = 
new BigInteger(remainder3, remainder3, dividend.
_sign < 0);
 
 
  713        if (
value._sign < 0 || baseValue == 1.0)
 
  717        if (baseValue == 
double.PositiveInfinity)
 
  725        if (baseValue == 0.0 && !
value.IsOne)
 
  729        if (
value._bits == 
null)
 
  733        ulong num = 
value._bits[value._bits.Length - 1];
 
  734        ulong num2 = ((value._bits.Length > 1) ? 
value._bits[
value._bits.Length - 2] : 0u);
 
  735        ulong num3 = ((value._bits.Length > 2) ? 
value._bits[
value._bits.Length - 3] : 0u);
 
  737        long num5 = (long)
value._bits.Length * 32
L - num4;
 
  738        ulong num6 = (num << 32 + num4) | (num2 << num4) | (num3 >> 32 - num4);
 
  739        return Math.
Log(num6, baseValue) + (double)(num5 - 64) / 
Math.
Log(baseValue, 2.0);
 
 
  749        bool flag = left._bits == 
null;
 
  750        bool flag2 = right._bits == 
null;
 
  765            if (right.
_sign == 0)
 
 
  780        if (rightBits.Length == 1)
 
  785        if (rightBits.Length == 2)
 
  788            ulong left = ((ulong)rightBits[1] << 32) | rightBits[0];
 
  789            ulong right2 = ((ulong)
array[1] << 32) | 
array[0];
 
  793        return new BigInteger(array2, array2, negative: 
false);
 
 
  816        if (exponent.
Sign < 0)
 
  820        bool flag = value._bits == 
null;
 
  821        bool flag2 = exponent._bits == 
null;
 
  822        if (modulus.
_bits == 
null)
 
  825            return (
value._sign < 0 && !exponent.
IsEven) ? (-1 * num) : num;
 
 
  845            bool flag = value._bits == 
null;
 
  848                if (
value._sign == 1)
 
  852                if (
value._sign == -1)
 
  854                    if ((exponent & 1) == 0)
 
  860                if (
value._sign == 0)
 
 
  878        int num2 = 
_bits.Length;
 
 
  886    public override bool Equals([NotNullWhen(
true)] 
object? 
obj)
 
 
  909            return _bits[0] == num2;
 
 
  914    [CLSCompliant(
false)]
 
  925        int num = 
_bits.Length;
 
 
  951        int num = 
_bits.Length;
 
  952        if (num != 
other._bits.Length)
 
  957        return diffLength == 0;
 
 
  976    [CLSCompliant(
false)]
 
  987        int num = 
_bits.Length;
 
 
 1007            if (
other._bits == 
null)
 
 1019            return -
other._sign;
 
 1023        if (
other._bits == 
null || (num = 
_bits.Length) > (num2 = 
other._bits.Length))
 
 1032        if (diffLength == 0)
 
 1036        if (
_bits[diffLength - 1] >= 
other._bits[diffLength - 1])
 
 
 1058        return ToByteArray(isUnsigned: 
false, isBigEndian: 
false);
 
 
 1061    public byte[] 
ToByteArray(
bool isUnsigned = 
false, 
bool isBigEndian = 
false)
 
 1063        int bytesWritten = 0;
 
 
 1086        int bytesWritten = 0;
 
 1088        return bytesWritten;
 
 
 1113        if (isUnsigned && sign < 0)
 
 1118        uint[] bits = 
_bits;
 
 1123            b = (byte)((sign < 0) ? 255u : 0u);
 
 1126        else if (sign == -1)
 
 1129            for (; bits[i] == 0; i++)
 
 1133            if (bits.Length - 1 == i)
 
 1145        if ((b2 = (
byte)(num >> 24)) != b)
 
 1149        else if ((b2 = (
byte)(num >> 16)) != b)
 
 1153        else if ((b2 = (
byte)(num >> 8)) != b)
 
 1162        bool flag = (b2 & 0x80) != (b & 0x80) && !isUnsigned;
 
 1163        int num3 = num2 + 1 + (flag ? 1 : 0);
 
 1166            num3 = checked(4 * (bits.Length - 1) + num3);
 
 1175            bytesWritten = num3;
 
 1178            bytesWritten = num3;
 
 1186        int num4 = (isBigEndian ? (num3 - 1) : 0);
 
 1187        int num5 = ((!isBigEndian) ? 1 : (-1));
 
 1190            for (
int j = 0; j < bits.Length - 1; j++)
 
 1192                uint num6 = bits[j];
 
 
 1240            return scratch.
Slice(0, 1);
 
 1247            span[0] = (uint)
_sign;
 
 1248            span = span.
Slice(0, 1);
 
 1249            num = ((
_sign < 0) ? uint.MaxValue : 0u);
 
 1251        else if (
_sign == -1)
 
 1255                _bits.AsSpan().CopyTo(span);
 
 1260                span = (uint[])
_bits.Clone();
 
 1263            num = uint.MaxValue;
 
 1271        int num2 = span.Length - 1;
 
 1272        while (num2 > 0 && span[num2] == num)
 
 1276        bool flag2 = (span[num2] & 0x80000000u) != (num & 0x80000000u);
 
 1277        int num3 = num2 + 1 + (flag2 ? 1 : 0);
 
 1279        if (num3 <= scratch.
Length)
 
 1281            scratch = scratch.
Slice(0, num3);
 
 1286            scratch = 
new uint[num3];
 
 1290            span.
Slice(0, num2 + 1).CopyTo(scratch);
 
 
 1324    private static BigInteger Add(uint[] leftBits, 
int leftSign, uint[] rightBits, 
int rightSign)
 
 1326        bool flag = leftBits == 
null;
 
 1327        bool flag2 = rightBits == 
null;
 
 1330            return (
long)leftSign + (long)rightSign;
 
 1340            return new BigInteger(array2, array2, leftSign < 0);
 
 1342        if (leftBits.Length < rightBits.Length)
 
 1345            return new BigInteger(array3, array3, leftSign < 0);
 
 1348        return new BigInteger(array4, array4, leftSign < 0);
 
 
 1362        bool flag = leftBits == 
null;
 
 1363        bool flag2 = rightBits == 
null;
 
 1366            return (
long)leftSign - (long)rightSign;
 
 1376            return new BigInteger(array2, array2, leftSign < 0);
 
 1381            return new BigInteger(array3, array3, leftSign >= 0);
 
 1384        return new BigInteger(array4, array4, leftSign < 0);
 
 
 1392    [CLSCompliant(
false)]
 
 1403    [CLSCompliant(
false)]
 
 1414    [CLSCompliant(
false)]
 
 1425    [CLSCompliant(
false)]
 
 1448        return checked((
byte)(
int)
value);
 
 
 1451    [CLSCompliant(
false)]
 
 1454        return checked((sbyte)(
int)
value);
 
 
 1459        return checked((
short)(
int)
value);
 
 
 1462    [CLSCompliant(
false)]
 
 1465        return checked((ushort)(
int)
value);
 
 
 1470        if (
value._bits == 
null)
 
 1474        if (
value._bits.Length > 1)
 
 1478        if (
value._sign > 0)
 
 1480            return checked((
int)
value._bits[0]);
 
 1482        if (
value._bits[0] > 2147483648u)
 
 1486        return (
int)(0 - 
value._bits[0]);
 
 
 1489    [CLSCompliant(
false)]
 
 1492        if (
value._bits == 
null)
 
 1494            return checked((uint)
value._sign);
 
 1496        if (
value._bits.Length > 1 || 
value._sign < 0)
 
 1500        return value._bits[0];
 
 
 1505        if (
value._bits == 
null)
 
 1509        int num = 
value._bits.Length;
 
 1515        long num3 = (long)((
value._sign > 0) ? num2 : (0
L - num2));
 
 1516        if ((num3 > 0 && 
value._sign > 0) || (num3 < 0 && value._sign < 0))
 
 
 1523    [CLSCompliant(
false)]
 
 1526        if (
value._bits == 
null)
 
 1528            return checked((ulong)
value._sign);
 
 1530        int num = 
value._bits.Length;
 
 1531        if (num > 2 || 
value._sign < 0)
 
 1539        return value._bits[0];
 
 
 1544        return (
float)(double)
value;
 
 
 1549        int sign = 
value._sign;
 
 1550        uint[] bits = 
value._bits;
 
 1555        int num = bits.Length;
 
 1560                return double.PositiveInfinity;
 
 1562            return double.NegativeInfinity;
 
 1564        ulong num2 = bits[num - 1];
 
 1565        ulong num3 = ((num > 1) ? bits[num - 2] : 0u);
 
 1566        ulong num4 = ((num > 2) ? bits[num - 3] : 0u);
 
 1568        int exp = (num - 2) * 32 - num5;
 
 1569        ulong man = (num2 << 32 + num5) | (num3 << num5) | (num4 >> 32 - num5);
 
 
 1575        if (
value._bits == 
null)
 
 1579        int num = 
value._bits.Length;
 
 1589            hi = (int)
value._bits[2];
 
 1593            mid = (int)
value._bits[1];
 
 1597            lo = (int)
value._bits[0];
 
 1599        return new decimal(lo, mid, hi, 
value._sign < 0, 0);
 
 
 1608        if (left.
_bits == 
null && right.
_bits == 
null)
 
 1610            return left._sign & right.
_sign;
 
 1614        scratch = stackalloc uint[32];
 
 1617        uint num = ((left._sign < 0) ? uint.MaxValue : 0u);
 
 1618        uint num2 = ((right._sign < 0) ? uint.MaxValue : 0u);
 
 1619        for (
int i = 0; i < 
array.Length; i++)
 
 1621            uint num3 = ((i < readOnlySpan.
Length) ? readOnlySpan[i] : num);
 
 1622            uint num4 = ((i < readOnlySpan2.
Length) ? readOnlySpan2[i] : num2);
 
 1623            array[i] = num3 & num4;
 
 
 1638        if (left.
_bits == 
null && right.
_bits == 
null)
 
 1640            return left._sign | right.
_sign;
 
 1644        scratch = stackalloc uint[32];
 
 1647        uint num = ((left._sign < 0) ? uint.MaxValue : 0u);
 
 1648        uint num2 = ((right._sign < 0) ? uint.MaxValue : 0u);
 
 1649        for (
int i = 0; i < 
array.Length; i++)
 
 1651            uint num3 = ((i < readOnlySpan.
Length) ? readOnlySpan[i] : num);
 
 1652            uint num4 = ((i < readOnlySpan2.
Length) ? readOnlySpan2[i] : num2);
 
 1653            array[i] = num3 | num4;
 
 
 1660        if (left.
_bits == 
null && right.
_bits == 
null)
 
 1662            return left._sign ^ right.
_sign;
 
 1666        scratch = stackalloc uint[32];
 
 1669        uint num = ((left._sign < 0) ? uint.MaxValue : 0u);
 
 1670        uint num2 = ((right._sign < 0) ? uint.MaxValue : 0u);
 
 1671        for (
int i = 0; i < 
array.Length; i++)
 
 1673            uint num3 = ((i < readOnlySpan.
Length) ? readOnlySpan[i] : num);
 
 1674            uint num4 = ((i < readOnlySpan2.
Length) ? readOnlySpan2[i] : num2);
 
 1675            array[i] = num3 ^ num4;
 
 
 1686        if (shift == 
int.MinValue)
 
 1688            return value >> int.MaxValue >> 1;
 
 1692            return value >> -shift;
 
 1695        int item = tuple.Quotient;
 
 1696        int item2 = tuple.Remainder;
 
 1700        int num = xd.Length + 
item + 1;
 
 1701        uint[] valueArray = 
null;
 
 1705            span = stackalloc uint[64];
 
 1706            span2 = span.
Slice(0, num);
 
 1712            span2 = (valueArray = 
new uint[num]);
 
 1717            for (
int i = 0; i < xd.
Length; i++)
 
 1719                span2[i + 
item] = xd[i];
 
 1724            int num3 = 32 - item2;
 
 1725            for (
int j = 0; j < xd.
Length; j++)
 
 1728                span2[j + 
item] = (num4 << item2) | num2;
 
 1729                num2 = num4 >> num3;
 
 1733        return new BigInteger(span2, valueArray, partsForBitManipulation);
 
 
 1742        if (shift == 
int.MinValue)
 
 1744            return value << int.MaxValue << 1;
 
 1748            return value << -shift;
 
 1751        int item = tuple.Quotient;
 
 1752        int item2 = tuple.Remainder;
 
 1758        if (partsForBitManipulation)
 
 1760            if (shift >= 32 * xd.
Length)
 
 1768                    span = stackalloc uint[64];
 
 1779            flag = item2 == 0 && xd[^1] == 0;
 
 1781        int num = xd.Length - 
item + (flag ? 1 : 0);
 
 1782        uint[] valueArray = 
null;
 
 1789                span = stackalloc uint[64];
 
 1790                span4 = span.
Slice(0, num);
 
 1794                span4 = (valueArray = 
new uint[num]);
 
 1800            for (
int num2 = xd.
Length - 1; num2 >= 
item; num2--)
 
 1802                span3[num2 - 
item] = xd[num2];
 
 1807            int num3 = 32 - item2;
 
 1809            for (
int num5 = xd.
Length - 1; num5 >= 
item; num5--)
 
 1811                uint num6 = xd[num5];
 
 1812                if (partsForBitManipulation && num5 == xd.
Length - 1)
 
 1814                    span3[num5 - 
item] = (num6 >> item2) | (uint)(-1 << num3);
 
 1818                    span3[num5 - 
item] = (num6 >> item2) | num4;
 
 1820                num4 = num6 << num3;
 
 1823        if (partsForBitManipulation)
 
 1827                span3[^1] = uint.MaxValue;
 
 1831        return new BigInteger(span3, valueArray, partsForBitManipulation);
 
 
 1870        bool flag = left._bits == 
null;
 
 1871        bool flag2 = right._bits == 
null;
 
 1874            return (
long)left._sign * (long)right.
_sign;
 
 
 1902        bool flag = dividend._bits == 
null;
 
 1903        bool flag2 = divisor._bits == 
null;
 
 1906            return dividend._sign / divisor.
_sign;
 
 1917        if (dividend.
_bits.Length < divisor.
_bits.Length)
 
 
 1927        bool flag = dividend._bits == 
null;
 
 1928        bool flag2 = divisor._bits == 
null;
 
 1931            return dividend._sign % divisor.
_sign;
 
 1940            return (dividend.
_sign < 0) ? (-1 * num) : num;
 
 1942        if (dividend.
_bits.Length < divisor.
_bits.Length)
 
 
 1972        return left.
Equals(right);
 
 
 1977        return !left.
Equals(right);
 
 
 2002        return left.
Equals(right);
 
 
 2007        return !left.
Equals(right);
 
 
 2032        return right.
Equals(left);
 
 
 2037        return !right.
Equals(left);
 
 
 2040    [CLSCompliant(
false)]
 
 2046    [CLSCompliant(
false)]
 
 2052    [CLSCompliant(
false)]
 
 2058    [CLSCompliant(
false)]
 
 2064    [CLSCompliant(
false)]
 
 2067        return left.
Equals(right);
 
 
 2070    [CLSCompliant(
false)]
 
 2073        return !left.
Equals(right);
 
 
 2076    [CLSCompliant(
false)]
 
 2082    [CLSCompliant(
false)]
 
 2088    [CLSCompliant(
false)]
 
 2094    [CLSCompliant(
false)]
 
 2100    [CLSCompliant(
false)]
 
 2103        return right.
Equals(left);
 
 
 2106    [CLSCompliant(
false)]
 
 2109        return !right.
Equals(left);
 
 
 2115        uint[] bits = 
_bits;
 
 2121            num2 = (uint)((sign < 0) ? (-sign) : sign);
 
 2126            num2 = bits[num - 1];
 
 2133        if ((num2 & (num2 - 1)) != 0)
 
 2137        for (
int num4 = num - 2; num4 >= 0; num4--)
 
 2139            if (bits[num4] != 0)
 
 
 2149        if (x._bits == 
null)
 
 2151            xd[0] = (uint)((x._sign < 0) ? (-x._sign) : x._sign);
 
 
 2165            if (rgu1[num] != rgu2[num])
 
 
 
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
 
static double Log(double d)
 
static int DivRem(int a, int b, out int result)
 
static byte Max(byte val1, byte val2)
 
static uint[] Divide(uint[] left, uint right, out uint remainder)
 
static uint Gcd(uint left, uint right)
 
static uint[] Pow(uint value, uint power)
 
static uint[] Add(uint[] left, uint right)
 
static uint[] Multiply(uint[] left, uint right)
 
static uint[] Subtract(uint[] left, uint right)
 
static uint Remainder(uint[] left, uint right)
 
static unsafe uint[] Square(uint[] value)
 
static int Compare(uint[] left, uint[] right)
 
static bool TryParseBigInteger(string value, NumberStyles style, NumberFormatInfo info, out BigInteger result)
 
static BigInteger ParseBigInteger(string value, NumberStyles style, NumberFormatInfo info)
 
static string FormatBigInteger(BigInteger value, string format, NumberFormatInfo info)
 
static bool TryFormatBigInteger(BigInteger value, ReadOnlySpan< char > format, NumberFormatInfo info, Span< char > destination, out int charsWritten)
 
static int LeadingZeroCount(uint value)
 
static int CbitHighZero(uint u)
 
static uint CombineHash(uint u1, uint u2)
 
static double GetDoubleFromParts(int sign, int exp, ulong man)
 
static void GetDoubleParts(double dbl, out int sign, out int exp, out ulong man, out bool fFinite)
 
static ulong MakeUlong(uint uHi, uint uLo)
 
static void DangerousMakeTwosComplement(Span< uint > d)
 
static string Overflow_NotANumber
 
static string Overflow_Int32
 
static string Overflow_UInt64
 
static string Overflow_BigIntInfinity
 
static string ArgumentOutOfRange_MustBeNonNeg
 
static string Overflow_Int64
 
static string Overflow_Negative_Unsigned
 
static string Argument_MustBeBigInt
 
static string Overflow_Decimal
 
static string Overflow_UInt32
 
int CompareTo(ulong other)
 
static bool TryParse(ReadOnlySpan< char > value, out BigInteger result)
 
bool TryWriteOrCountBytes(Span< byte > destination, out int bytesWritten, bool isUnsigned=false, bool isBigEndian=false)
 
static BigInteger operator/(BigInteger dividend, BigInteger divisor)
 
static bool operator<(BigInteger left, BigInteger right)
 
static BigInteger ModPow(BigInteger value, BigInteger exponent, BigInteger modulus)
 
bool TryFormat(Span< char > destination, out int charsWritten, ReadOnlySpan< char > format=default(ReadOnlySpan< char >), IFormatProvider? provider=null)
 
static BigInteger Divide(BigInteger dividend, BigInteger divisor)
 
static BigInteger operator|(BigInteger left, BigInteger right)
 
static BigInteger Subtract(BigInteger left, BigInteger right)
 
static bool operator!=(BigInteger left, BigInteger right)
 
static BigInteger operator*(BigInteger left, BigInteger right)
 
byte[] TryGetBytes(GetBytesMode mode, Span< byte > destination, bool isUnsigned, bool isBigEndian, ref int bytesWritten)
 
static readonly BigInteger s_bnMinusOneInt
 
static BigInteger Parse(string value)
 
static BigInteger DivRem(BigInteger dividend, BigInteger divisor, out BigInteger remainder)
 
static readonly BigInteger s_bnOneInt
 
static bool operator<=(BigInteger left, BigInteger right)
 
int CompareTo(object? obj)
 
int CompareTo(BigInteger other)
 
static BigInteger Parse(ReadOnlySpan< char > value, NumberStyles style=NumberStyles.Integer, IFormatProvider? provider=null)
 
byte[] ToByteArray(bool isUnsigned=false, bool isBigEndian=false)
 
static double Log10(BigInteger value)
 
static BigInteger operator<<(BigInteger value, int shift)
 
static BigInteger Abs(BigInteger value)
 
static double Log(BigInteger value, double baseValue)
 
int GetByteCount(bool isUnsigned=false)
 
static int Compare(BigInteger left, BigInteger right)
 
bool Equals(BigInteger other)
 
static readonly BigInteger s_bnZeroInt
 
static BigInteger GreatestCommonDivisor(uint[] leftBits, uint[] rightBits)
 
static BigInteger Pow(BigInteger value, int exponent)
 
static bool GetPartsForBitManipulation(ref BigInteger x, ref Span< uint > xd)
 
override int GetHashCode()
 
static bool operator>(BigInteger left, BigInteger right)
 
override string ToString()
 
static double Log(BigInteger value)
 
static bool operator==(BigInteger left, BigInteger right)
 
static BigInteger operator~(BigInteger value)
 
static BigInteger operator+(BigInteger value)
 
static readonly BigInteger s_bnMinInt
 
static BigInteger operator--(BigInteger value)
 
static BigInteger Multiply(BigInteger left, BigInteger right)
 
static bool TryParse([NotNullWhen(true)] string? value, NumberStyles style, IFormatProvider? provider, out BigInteger result)
 
static BigInteger GreatestCommonDivisor(BigInteger left, BigInteger right)
 
BigInteger(decimal value)
 
static BigInteger operator++(BigInteger value)
 
string ToString(string? format)
 
static BigInteger operator%(BigInteger dividend, BigInteger divisor)
 
override bool Equals([NotNullWhen(true)] object? obj)
 
static bool operator>=(BigInteger left, BigInteger right)
 
static BigInteger Parse(string value, NumberStyles style)
 
static BigInteger operator^(BigInteger left, BigInteger right)
 
string ToString(IFormatProvider? provider)
 
BigInteger(ReadOnlySpan< byte > value, bool isUnsigned=false, bool isBigEndian=false)
 
static readonly byte[] s_success
 
static bool TryParse(ReadOnlySpan< char > value, NumberStyles style, IFormatProvider? provider, out BigInteger result)
 
static BigInteger Parse(string value, NumberStyles style, IFormatProvider? provider)
 
static BigInteger MinusOne
 
static BigInteger Negate(BigInteger value)
 
string ToString(string? format, IFormatProvider? provider)
 
static BigInteger Add(BigInteger left, BigInteger right)
 
static BigInteger operator>>(BigInteger value, int shift)
 
static BigInteger Add(uint[] leftBits, int leftSign, uint[] rightBits, int rightSign)
 
static bool TryParse([NotNullWhen(true)] string? value, out BigInteger result)
 
static BigInteger Parse(string value, IFormatProvider? provider)
 
BigInteger(int n, uint[] rgu)
 
static BigInteger operator&(BigInteger left, BigInteger right)
 
static BigInteger Remainder(BigInteger dividend, BigInteger divisor)
 
BigInteger(ReadOnlySpan< uint > value, uint[] valueArray, bool negative)
 
ReadOnlySpan< uint > ToUInt32Span(Span< uint > scratch)
 
static BigInteger Min(BigInteger left, BigInteger right)
 
static BigInteger Subtract(uint[] leftBits, int leftSign, uint[] rightBits, int rightSign)
 
static int GetDiffLength(uint[] rgu1, uint[] rgu2, int cu)
 
int CompareTo(long other)
 
static BigInteger operator-(BigInteger left, BigInteger right)
 
bool TryWriteBytes(Span< byte > destination, out int bytesWritten, bool isUnsigned=false, bool isBigEndian=false)
 
static BigInteger Max(BigInteger left, BigInteger right)
 
void CopyTo(Span< T > destination)
 
Span< T > Slice(int start)