Daniel Lemire
b50a729d93
Merge pull request #182 from leni536/constexpr-from_chars
...
Constexpr from_chars
2023-03-25 17:30:55 -04:00
Lenard Szolnoki
5b8290433c
Fix clang workaround for parsing -0 on non-nearest rounding mode
2023-03-25 19:38:44 +00:00
Lenard Szolnoki
e464bd7785
Replace memmove with copy_backward
2023-03-24 17:18:58 +00:00
Lenard Szolnoki
d34d0d7405
Fix amalgamate.ph and add header for constexpr macros
2023-03-12 10:50:25 +00:00
filipecosta90
c8886eb31d
Added missing FASTFLOAT_ALLOWS_LEADING_PLUS ifdef check in parse_infnan
2023-03-07 00:31:14 +00:00
Lenard Szolnoki
e05858a0f8
Work around clang bug.
...
https://godbolt.org/z/zedh7rrhc
This is similar to https://github.com/llvm/llvm-project/issues/47746 ,
except I needed to use a different workaround.
2023-03-04 23:02:15 +00:00
Lenard Szolnoki
6732e397d8
Add constexpr testing
...
When enabled, modify `verify` macro to also verify at compile time,
when the arguments are constant expressions.
2023-03-04 22:36:58 +00:00
Lenard Szolnoki
e4d4e43b21
Constexpr from_chars
2023-03-04 20:53:43 +00:00
Lenard Szolnoki
82ee3b1b5f
Constexpr parse_number_string
2023-03-04 17:18:25 +00:00
Lenard Szolnoki
5243dd97fe
Constexpr bigint
2023-03-03 23:13:52 +00:00
Lenard Szolnoki
52618851fd
Make all float_common.h functions constexpr in C++20
2023-03-03 22:43:52 +00:00
Lenard Szolnoki
6d2fb68f5c
Simplify to_float
...
* Use right-sized uint type for bit fiddling
** This removes the need to special casing on endianness
* Replace ternary with just shifting the sign at the right place
** This seems to improve codegen (less instructions, no cmov)
2023-03-01 23:39:01 +00:00
Daniel Lemire
b1d27734c5
Merge pull request #173 from fastfloat/nofallbacknecessary
...
We do not need a fallback.
2023-02-28 17:19:57 -05:00
Lenard Szolnoki
e320512755
Fix power_of_five_128 to be usable in constexpr in MSVC, clang
2023-02-25 18:34:22 +00:00
Lenard Szolnoki
0e4b873d81
Fix space_lut so it's accepted by MSVC and clang
2023-02-25 18:27:10 +00:00
Lenard Szolnoki
a6991ea44f
Add comment to the FASTFLOAT_CONSTEXPR14 macro definition
2023-02-25 11:11:09 +00:00
Lenard Szolnoki
be6084863c
Low-risk C++14 constexpr functions
2023-02-25 10:50:45 +00:00
Daniel Lemire
252a1c9dce
Minor fix.
2023-02-06 17:22:11 -05:00
Daniel Lemire
39e04ea766
We do not need a fallback.
2023-01-27 20:59:56 -05:00
Daniel Lemire
3e2da540ef
Support rccpfastfloat.
2023-01-19 20:28:10 -05:00
Sergey Fedorov
ff7fba01d0
float_common.h: add support for ppc32
2023-01-18 14:15:14 +08:00
Daniel Lemire
c8aac4a63d
Guard endian
2023-01-07 13:28:12 -05:00
Joao Paulo Magalhaes
7f7838b36a
Fix compile warning: implicit double->float type conversion
...
With Intel 2021.1:
```
/home/runner/work/c4core/c4core/src/c4/ext/fast_float_all.h:319:49: error: implicit conversion between floating point types of different sizes [-Werror,-Wimplicit-float-size-conversion]
constexpr static float powers_of_ten_float[] = {1e0, 1e1, 1e2, 1e3,
1e4, 1e5,
```
2022-12-27 11:09:17 +00:00
Joao Paulo Magalhaes
ca13367ff7
Suppress warning when comparing floats
2022-12-27 01:39:41 +00:00
Daniel Lemire
102e74891f
Merge pull request #160 from huangqinjin/uint64-to-bool
...
Fix compile warning of unit64_t to bool
2022-12-23 10:39:33 -05:00
huangqinjin
293ca61c76
Fix compile warning of unit64_t to bool
2022-12-23 19:20:28 +08:00
huangqinjin
9c4c20dd7f
Replace utf8 chars.
2022-12-18 11:04:16 +08:00
Sutou Kouhei
ff5855813f
Add missing namespace end comments
...
Other files have it.
2022-12-02 11:42:38 +09:00
Daniel Lemire
76537e1695
Fixing issue 154.
2022-11-25 15:58:54 -05:00
Daniel Lemire
003a983188
Simplifying the justification.
2022-11-18 15:38:21 -05:00
Daniel Lemire
8b7a55a03c
Minor optimization.
2022-11-18 15:33:44 -05:00
Daniel Lemire
3d0e448940
Added a remark.
2022-11-18 12:27:38 -05:00
Daniel Lemire
39ea41b84a
Adopting proposal.
2022-11-18 11:28:34 -05:00
Daniel Lemire
bfc0478feb
More tweaks.
2022-11-16 16:45:01 -05:00
Daniel Lemire
29b1a03d5b
Make sure that macros have actual values when defined (makes debugging easier)
2022-11-16 15:49:09 -05:00
Daniel Lemire
8f27b7e921
More tuning.
2022-11-16 15:42:56 -05:00
Daniel Lemire
fd9d9effda
More tweaking around clangcl
2022-11-16 15:25:03 -05:00
Daniel Lemire
d225059873
Fix for Win32+ClangCL
2022-11-16 14:35:31 -05:00
Daniel Lemire
2c8e738950
Cleaning.
2022-11-16 12:06:33 -05:00
Daniel Lemire
6ceb29a7e4
We might reenable clinger.
2022-11-16 16:21:34 +00:00
Daniel Lemire
6484c73696
Trimming out one eight-digit optimization.
2022-11-15 11:38:06 -05:00
Daniel Lemire
a2cf502395
Typo.
2022-11-03 19:41:30 -04:00
Daniel Lemire
3e29bf78c7
Nicer constants.
2022-11-03 19:40:05 -04:00
Daniel Lemire
e958ff4269
Simplified clinger.
2022-11-03 18:51:37 -04:00
Sutou Kouhei
5a71e5bc40
Don't use __umulh() with MinGW on ARM64
2022-10-28 15:33:37 +09:00
Dirk Stolle
3fddb89508
Fix some typos
2022-08-30 22:55:34 +02:00
Daniel Lemire
6876616f0f
Update float_common.h
2022-08-04 15:05:22 -04:00
Daniel Lemire
ac81b01696
Added __EMSCRIPTEN__ patch
2022-08-04 13:58:48 -04:00
Daniel Lemire
32d21dcecb
Merge pull request #122 from jwakely/patch-1
...
Fix deduction failure for std::min call
2022-01-18 14:30:38 -05:00
Jonathan Wakely
61f4840188
Make endianness detection more portable
...
The current check for endianness fails on platforms using newlib as the
C library, because it provides <machine/endian.h> not <endian.h>. This
could be fixed by adding `|| defined(__NEWLIB__)` to the check for
targets that provide <machine/endian.h> (i.e. BSD-like targets).
A more portable solution is to just check if the compiler has already
defined the necessary macros (which is true for GCC and Clang and Intel,
at least). Then no header is needed, and it works for platforms that
aren't explicitly listed in the conditionals.
2022-01-18 10:17:01 +00:00