52 new BigNumber(1291845632
u, 1166090902
u, 4235164736
u, 103, 0
u),
54 new BigNumber(1019177842
u, 4291798741
u, 3262652233
u, 213, 1
u),
55 new BigNumber(3318737231
u, 3315274914
u, 4021529366
u, 319, 1
u),
56 new BigNumber(3329176428
u, 2162789599
u, 2478458825
u, 426, 1
u),
57 new BigNumber(1467717739
u, 2145785770
u, 3054936363
u, 532, 1
u),
59 new BigNumber(2193451889
u, 3812411695
u, 2320668415
u, 745, 1
u),
60 new BigNumber(3720056860
u, 2650398349
u, 2860444667
u, 851, 1
u),
61 new BigNumber(1937977068
u, 1550462860
u, 3525770265
u, 957, 1
u),
62 new BigNumber(3869316483
u, 4073513845
u, 2172923689
u, 1064, 1
u),
63 new BigNumber(1589582007
u, 3683650258
u, 2678335232
u, 1170, 1
u),
64 new BigNumber(271056885
u, 2935532055
u, 3301303056
u, 1276, 1
u),
65 new BigNumber(3051704177
u, 3920665688
u, 4069170183
u, 1382, 1
u),
66 new BigNumber(2817170568
u, 3958895571
u, 2507819745
u, 1489, 1
u),
75 new BigNumber(3552796947
u, 3793315115
u, 3518437208
u, -13, 1
u),
77 new BigNumber(2789186122
u, 2943117749
u, 2251799813
u, -19, 1
u),
78 new BigNumber(1026723958
u, 3849994940
u, 3602879701
u, -23, 1
u),
79 new BigNumber(4257353003
u, 2221002492
u, 2882303761
u, -26, 1
u),
81 new BigNumber(3044230158
u, 3186480574
u, 3689348814
u, -33, 1
u),
82 new BigNumber(4153371045
u, 3408177918
u, 2951479051
u, -36, 1
u),
83 new BigNumber(4181690295
u, 1867548875
u, 2361183241
u, -39, 1
u),
87 new BigNumber(1278131816
u, 3293438299
u, 3868562622
u, -53, 1
u),
91 new BigNumber(2297740061
u, 2450594538
u, 3169126500
u, -66, 1
u),
92 new BigNumber(3556178967
u, 1960475630
u, 2535301200
u, -69, 1
u),
93 new BigNumber(1394919051
u, 3136761009
u, 4056481920
u, -73, 1
u),
94 new BigNumber(1974928700
u, 2509408807
u, 3245185536
u, -76, 1
u),
95 new BigNumber(3297929878
u, 1148533586
u, 2596148429
u, -79, 1
u),
97 new BigNumber(2503363326
u, 1985519066
u, 3323069989
u, -86, 1
u),
98 new BigNumber(2002690661
u, 2447408712
u, 2658455991
u, -89, 1
u),
99 new BigNumber(2345311598
u, 2197867021
u, 4253529586
u, -93, 1
u),
101 new BigNumber(2703590266
u, 1578433585
u, 2722258935
u, -99, 1
u),
102 new BigNumber(2162872213
u, 1262746868
u, 2177807148
u, -102, 1
u),
103 new BigNumber(1742608622
u, 1161401530
u, 3484491437
u, -106, 1
u),
104 new BigNumber(1059297495
u, 2772036005
u, 2826955303
u, -212, 1
u),
105 new BigNumber(299617026
u, 4252324763
u, 2293498615
u, -318, 1
u),
106 new BigNumber(2893853687
u, 1690100896
u, 3721414268
u, -425, 1
u),
107 new BigNumber(1508712807
u, 3681788051
u, 3019169939
u, -531, 1
u),
108 new BigNumber(2070087331
u, 1411632134
u, 2449441655
u, -637, 1
u),
109 new BigNumber(2767765334
u, 1244745405
u, 3974446316
u, -744, 1
u),
110 new BigNumber(4203811158
u, 1668946233
u, 3224453925
u, -850, 1
u),
111 new BigNumber(1323526137
u, 2204812663
u, 2615987810
u, -956, 1
u),
112 new BigNumber(2300620953
u, 1199716560
u, 4244682903
u, -1063, 1
u),
113 new BigNumber(9598332
u, 1190350717
u, 3443695891
u, -1169, 1
u),
114 new BigNumber(2296094720
u, 2971338839
u, 2793858024
u, -1275, 1
u),
115 new BigNumber(441364487
u, 1073506470
u, 2266646913
u, -1381, 1
u),
116 new BigNumber(2227594191
u, 3053929028
u, 3677844889
u, -1488, 1
u),
117 new BigNumber(1642812130
u, 2030073654
u, 2983822260
u, -1594, 1
u)
148 _u2 = (uint)(
dec[num] << 28);
198 for (
int i = 0; i < 5; i++)
204 int num = 3 - (
_exp >> 5);
392 if (
u2 != 0 ||
u != 0 || num != 0)
403 return double.PositiveInfinity;
410 u = (uint)(num << 20) | ((
bn._u2 & 0x7FFFFFFF) >> 11);
429 int num4 = -num - 20;
457 uint result =
_u2 >> 32 -
_exp;
458 _u2 &= (uint)(
int.MaxValue >>>
_exp - 1);
465 uint num =
_error + 1 >> 1;
477 uint num =
_error + 1 >> 1;
494 int num4 = (int)((
num2 >> 20) & 0x7FF);
617 if (
num8 >= 100000000)
660 if (
num8 < 100000000)
715 uint num =
DblHi(dbl);
720 uint
num4 = num & 0xFFFFF
u;
758 num7 = (
num7 - 1.5) * 0.289529654602168 + 0.1760912590558 + (double)
num8 * 0.301029995663981;
888 if ((
num15 > 0 || (
num15 == 0 && ((uint)
b & (
true ? 1
u : 0
u)) != 0)) &&
b++ == 9)
973 for (
int i = 0; i <
cu; i++)
1001 if (1000000000 ==
num2)
1008 num = num * 10 +
dec[i];
1015 for (
int i = 0; i <
_length; i++)
1035 int num = (
c5 + 12) / 13;
1063 int num =
cbit >> 5;
1086 if (num <= 0 &&
num3 == 0)
1099 for (
int i = 0; i < num; i++)
1129 int num =
cbit >> 5;
1220 while (num != 0 && i <
length)
1239 for (i = 0; i <
bi._length; i++)
1241 uint
num2 =
bi._digits[i];
1242 if (
num2 != 0 || num == 0)
1247 while (num == 0 && i <
_length)
1255 while (--i >= 0 &&
_digits[i] == 0)
1284 for (i = 0; i <
length; i++)
1289 if (
u2 != 0 ||
num2 == 0)
1294 while (--i >= 0 &&
_digits[i] == 0)
1423 else if (
dec._exponent >= 310)
1425 num3 =
double.PositiveInfinity;
1427 else if (
dec._exponent <= -325)
1481 int num8 = (int)((
num6 >> 20) & 0x7FF);
1634 public static readonly
double[]
C10toN =
new double[23]
1636 1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0,
1637 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000000000000000.0, 1
E+17, 1
E+18, 1
E+19,
1677 ulong num = (ulong)
u1 * (ulong)
u2;
1678 uHi = (uint)(num >> 32);
1737 if (
double.IsNaN(dbl))
1782 while (--
num2 != 0);
1807 return (uint)(
ch - 48) <= 9
u;
1812 if (
ch !=
' ' &&
ch !=
'\t' &&
ch !=
'\n')
1919 if (
num3 == 0 && num <= 9)
1937 if (*(--
ptr2) ==
'0')
1942 else if (*
ptr2 !=
'.')
static unsafe double Int64BitsToDouble(long value)
static ulong DoubleToUInt64Bits(double value)
static unsafe long DoubleToInt64Bits(double value)
static double UInt64BitsToDouble(ulong value)
static CultureInfo InvariantCulture
static double Floor(double d)
uint DivRem(BigInteger bi)
void InitFromFloatingDecimal(FloatingDecimal dec)
void Subtract(BigInteger bi)
void InitFromDigits(uint u0, uint u1, int cu)
void ShiftUsRight(int cu)
void MulAdd(uint uMul, uint uAdd)
int CompareTo(object obj)
void InitFromRgu(uint[] rgu, int cu)
void InitFromBigint(BigInteger biSrc)
void ShiftRight(int cbit)
void InitFromDouble(double dbl)
FloatingDecimal(double dbl)
double AdjustDbl(double dbl)
readonly byte[] _mantissa
static uint MulU(uint u1, uint u2, out uint uHi)
static uint NotZero(uint u)
static bool IsWhitespace(char ch)
static int CbitZeroLeft(uint u)
static unsafe double StringToDouble(string s)
static unsafe string DoubleToString(double dbl)
static bool IsAsciiDigit(char ch)
static bool IsInteger(double dbl, out int value)
static readonly double[] C10toN
static bool IsSpecial(double dbl)
static unsafe char * SkipWhitespace(char *pch)
static uint AddU(ref uint u1, uint u2)
static uint DblLo(double dbl)
static uint DblHi(double dbl)
BigNumber(uint u0, uint u1, uint u2, int exp, uint error)
void Mul(ref BigNumber numOp)
static void DblToRgbPrecise(double dbl, byte[] mantissa, out int exponent, out int mantissaSize)
static bool DblToRgbFast(double dbl, byte[] mantissa, out int exponent, out int mantissaSize)
static readonly BigNumber[] s_tenPowersNeg
static readonly BigNumber[] s_tenPowersPos
BigNumber(FloatingDecimal dec)
unsafe uint MulTenAdd(uint digit)