Commit Graph

551 Commits

Author SHA1 Message Date
Matt Borland
140e8d5f44 Fix normalizing the significand 2023-07-05 15:04:40 +02:00
Matt Borland
5a3a9b3999 Increase precision of masking operations
[ci skip]
2023-06-30 17:40:12 +02:00
Matt Borland
dc6ce63e01 Fix 256-bit high bit calculation 2023-06-30 17:27:52 +02:00
Matt Borland
5808c27206 Add operator& 2023-06-30 17:23:57 +02:00
Matt Borland
fd61faaa51 Add conversion operators 2023-06-30 17:15:43 +02:00
Matt Borland
0f1970706d Add numeric_limits specialization 2023-06-30 17:03:58 +02:00
Matt Borland
cfc9382469 Add 64-bit comparisons 2023-06-30 16:58:39 +02:00
Matt Borland
bfaf185ac3 Add 64-bit compatible operators/ and % 2023-06-30 16:20:27 +02:00
Matt Borland
7d18408c0c Fix precision during calculation of z 2023-06-30 16:15:19 +02:00
Matt Borland
8243c2d387 Add sub operator 2023-06-30 16:08:42 +02:00
Matt Borland
112d3ece6b Add operator| 2023-06-30 16:00:25 +02:00
Matt Borland
3d26f26c9b Add operators >>= and <<= 2023-06-30 15:45:10 +02:00
Matt Borland
7ed86677ab Add 256 bit comp operators 2023-06-30 15:03:01 +02:00
Matt Borland
1c9573344c Improve final calculation 2023-06-30 14:42:40 +02:00
Matt Borland
38752a1e10 Fix calculation of u and p 2023-06-30 13:40:58 +02:00
Matt Borland
e0adbd0855 Add portable shifting for significant bit
[ci skip]
2023-06-29 15:05:32 +02:00
Matt Borland
b26cd77e9c Improve portability of masking operation 2023-06-29 14:25:27 +02:00
Matt Borland
b1cbcab893 Fix calculation in step 5 2023-06-29 13:50:30 +02:00
Matt Borland
3331f04f7b Change max and min powers 2023-06-29 13:49:33 +02:00
Matt Borland
a4a3c64f5a Improve handling of out of range values 2023-06-29 13:37:12 +02:00
Matt Borland
487b70c554 Rework algorithm 2023-06-29 11:42:26 +02:00
Matt Borland
fe0726d5c5 Add left shift for u256 2023-06-28 18:59:58 +02:00
Matt Borland
f1c9a7d866 Add diagnostic for use of BOOST_UNLIKELY fallback routine 2023-06-27 16:24:46 +02:00
Matt Borland
7522d6306e Add random value test 2023-06-26 16:51:55 +02:00
Matt Borland
c68e1ab080 Use runtime calculation for fallback path 2023-06-26 14:51:09 +02:00
Matt Borland
d2d6bd59d4 Add runtime computation of power of 5 2023-06-26 14:37:55 +02:00
Matt Borland
29873873ab Add 512 bit multiplication 2023-06-26 14:16:08 +02:00
Matt Borland
6bb0df05db Add 256bit operator+ 2023-06-26 14:15:32 +02:00
Matt Borland
ccedcd6ef5 Remove unneeded fallback path 2023-06-23 14:25:22 +02:00
Matt Borland
8420f2aed0 Add unary operators 2023-06-23 13:36:24 +02:00
Matt Borland
95de15ee94 Add emulated128 from_chars detail overload 2023-06-23 13:29:31 +02:00
Matt Borland
a8542b3ba4 Adjust max and minimum powers to compensate for w 2023-06-23 11:28:39 +02:00
Matt Borland
9e3e945bd8 Use new algo in from_chars 2023-06-23 10:41:48 +02:00
Matt Borland
baa8f2071b Rework parser for 128-bit significands 2023-06-23 10:36:05 +02:00
Matt Borland
ba5312dcba Change success type to std::errc 2023-06-23 10:33:59 +02:00
Matt Borland
66b729a151 Rename table to avoid collision 2023-06-23 10:33:45 +02:00
Matt Borland
a3f9329d81 Fix conversion rank errors 2023-06-23 09:47:03 +02:00
Matt Borland
d4ee583a95 Fix ambiguous conversion to boost::uint128_type 2023-06-22 16:55:47 +02:00
Matt Borland
a2f801ee6b Specialize umul256 2023-06-22 16:51:36 +02:00
Matt Borland
3b57902418 Add testing of clinger's fast path 2023-06-22 16:51:36 +02:00
Matt Borland
459c87b27d First full cut 2023-06-22 16:51:36 +02:00
Matt Borland
614d2b6d85 Add XOR operator 2023-06-22 16:51:36 +02:00
Matt Borland
a9c6f87500 Split table into high 128bits and low 128bits 2023-06-22 12:00:47 +02:00
Matt Borland
a88770fe60 Change minimum exact range 2023-06-22 11:48:48 +02:00
Matt Borland
5374cec6fb Handle unrepresentative numbers for __float128 2023-06-22 11:18:09 +02:00
Matt Borland
b3d628cc42 Rework to allow 1 impl for both 80 and 128 bit types 2023-06-22 10:35:10 +02:00
Matt Borland
5d5760e5c7 Add u256 struct 2023-06-22 10:35:10 +02:00
Matt Borland
5cbd3411f5 Calculate powers of 10 with 256-bit significands 2023-06-22 10:35:10 +02:00
Matt Borland
6dd9511380 Add clz for unsigned 128-bit ints 2023-06-22 10:35:10 +02:00
Matt Borland
19b79fc326 Add 80-bit fast-path 2023-06-22 10:35:10 +02:00