Commit Graph

523 Commits

Author SHA1 Message Date
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
Matt Borland
c9afd46251 Fix printing of 1 character 2023-06-22 09:16:12 +02:00
Matt Borland
4b608310b6 Fix macro definitions 2023-06-22 09:16:01 +02:00
Matt Borland
554bc47ad0 Fix typo in macro name 2023-06-21 13:02:01 +02:00
Matt Borland
56e4bc799c Suppress warning MSVC C4127 2023-06-21 11:44:21 +02:00
Matt Borland
e2339ce864 Fix for 64-bit LDBL systems 2023-06-21 11:36:10 +02:00
Matt Borland
43a0386a88 Refactor to_chars_hex to remove duplication 2023-06-21 11:09:25 +02:00
Matt Borland
e1599dd2e9 Refactor hex edge case handling 2023-06-21 10:15:57 +02:00
Matt Borland
800db63b33 Add cmake testing macro 2023-06-21 09:51:31 +02:00
Matt Borland
5cc61b80f2 Re-enable debug macros 2023-06-20 16:29:33 +02:00
Matt Borland
dfb483dcf2 Add olegth of 0 code path 2023-06-20 16:29:20 +02:00
Matt Borland
424e9072f6 Fix bounds checking and error code 2023-06-20 15:53:41 +02:00
Matt Borland
b534710233 Fix ASAN errors 2023-06-20 15:20:30 +02:00
Matt Borland
24a1df11a6 Change 128-bit long double bit pattern 2023-06-20 14:50:59 +02:00
Matt Borland
8f23cb8f02 Add debug info 2023-06-20 14:42:07 +02:00
Matt Borland
b768f3da27 Fix offset when inserting into middle of existing number 2023-06-20 14:41:59 +02:00
Matt Borland
0689eca432 Add bounds checking 2023-06-20 13:31:03 +02:00
Matt Borland
5114152ffb Add precision in scientific mode 2023-06-20 09:57:32 +02:00
Matt Borland
619120e547 Fix continued rounding 2023-06-20 09:37:39 +02:00
Matt Borland
e11a26f6f1 Don't print trailing zeros 2023-06-20 09:23:33 +02:00
Matt Borland
5001ce744d Fix definition of precision 2023-06-19 18:08:20 +02:00
Matt Borland
a7c06c30aa Add precision argument to general case 2023-06-19 16:51:00 +02:00
Matt Borland
facd00f02c Add precision argument 2023-06-19 16:14:59 +02:00
Matt Borland
a51be9e467 Allow to_chars for integers to be used with emulated128 2023-06-16 16:22:21 +02:00
Matt Borland
38f04ba2a2 Add debug macros 2023-06-16 15:19:01 +02:00
Matt Borland
153909cf86 Implement option 3 2023-06-16 14:46:50 +02:00
Matt Borland
b60677fb5b Add implementations for cases 1, 3, and 4
[ci skip]
2023-06-16 14:08:32 +02:00
Matt Borland
5d48340670 Refactor to_chars 2023-06-16 13:40:51 +02:00
Matt Borland
05505d42c0 Fix type switching macros 2023-06-16 10:15:27 +02:00