Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /**************************************************************** | 1 /**************************************************************** |
| 2 * | 2 * |
| 3 * The author of this software is David M. Gay. | 3 * The author of this software is David M. Gay. |
| 4 * | 4 * |
| 5 * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. | 5 * Copyright (c) 1991, 2000, 2001 by Lucent Technologies. |
| 6 * Copyright (C) 2002, 2005, 2006, 2007, 2008, 2010, 2012 Apple Inc. All rights reserved. | 6 * Copyright (C) 2002, 2005, 2006, 2007, 2008, 2010, 2012 Apple Inc. All rights reserved. |
| 7 * | 7 * |
| 8 * Permission to use, copy, modify, and distribute this software for any | 8 * Permission to use, copy, modify, and distribute this software for any |
| 9 * purpose without fee is hereby granted, provided that this entire notice | 9 * purpose without fee is hereby granted, provided that this entire notice |
| 10 * is included in all copies of any software which is or includes a copy | 10 * is included in all copies of any software which is or includes a copy |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 596 #undef d0 | 596 #undef d0 |
| 597 #undef d1 | 597 #undef d1 |
| 598 | 598 |
| 599 static const double tens[] = { | 599 static const double tens[] = { |
| 600 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, | 600 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, |
| 601 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, | 601 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, |
| 602 1e20, 1e21, 1e22 | 602 1e20, 1e21, 1e22 |
| 603 }; | 603 }; |
| 604 | 604 |
| 605 static const double bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 }; | 605 static const double bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 }; |
| 606 static const double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128, | |
| 607 9007199254740992. * 9007199254740992.e-256 | |
| 608 /* = 2^106 * 1e-256 */ | |
| 609 }; | |
| 610 | 606 |
| 611 /* The factor of 2^53 in tinytens[4] helps us avoid setting the underflow */ | |
| 612 /* flag unnecessarily. It leads to a song and dance at the end of strtod. */ | |
| 613 #define Scale_Bit 0x10 | 607 #define Scale_Bit 0x10 |
|
Nico
2013/10/31 21:03:40
Scale_Bit can go too, right?
lgombos
2013/10/31 21:07:08
Yep, indeed, but it does not seems to cause me any
| |
| 614 #define n_bigtens 5 | 608 #define n_bigtens 5 |
| 615 | 609 |
| 616 static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S) | 610 static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S) |
| 617 { | 611 { |
| 618 size_t n; | 612 size_t n; |
| 619 uint32_t* bx; | 613 uint32_t* bx; |
| 620 uint32_t* bxe; | 614 uint32_t* bxe; |
| 621 uint32_t q; | 615 uint32_t q; |
| 622 uint32_t* sx; | 616 uint32_t* sx; |
| 623 uint32_t* sxe; | 617 uint32_t* sxe; |
| (...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1311 { | 1305 { |
| 1312 Vector<LChar> conversionBuffer(length); | 1306 Vector<LChar> conversionBuffer(length); |
| 1313 for (size_t i = 0; i < length; ++i) | 1307 for (size_t i = 0; i < length; ++i) |
| 1314 conversionBuffer[i] = isASCII(string[i]) ? string[i] : 0; | 1308 conversionBuffer[i] = isASCII(string[i]) ? string[i] : 0; |
| 1315 return parseDouble(conversionBuffer.data(), length, parsedLength); | 1309 return parseDouble(conversionBuffer.data(), length, parsedLength); |
| 1316 } | 1310 } |
| 1317 | 1311 |
| 1318 } // namespace Internal | 1312 } // namespace Internal |
| 1319 | 1313 |
| 1320 } // namespace WTF | 1314 } // namespace WTF |
| OLD | NEW |