@@ -87,14 +87,25 @@ are not recommended to be adjusted except by persons familiar with the Printf
87
87
Ryu Algorithm. Additionally they have no effect when float conversions are
88
88
disabled.
89
89
90
+ LIBC_COPT_FLOAT_TO_STR_NO_SPECIALIZE_LD
91
+ ---------------------------------------
92
+ This flag disables the separate long double conversion implementation. It is
93
+ not based on the Ryu algorithm, instead generating the digits by
94
+ multiplying/dividing the written-out number by 10^9 to get blocks. It's
95
+ significantly faster than INT_CALC, only about 10x slower than MEGA_TABLE,
96
+ and is small in binary size. Its downside is that it always calculates all
97
+ of the digits above the decimal point, making it slightly ineffecient for %e
98
+ calls with large exponents. This is the default. If this flag is not set, no
99
+ other flags will change the long double behavior.
100
+
90
101
LIBC_COPT_FLOAT_TO_STR_USE_MEGA_LONG_DOUBLE_TABLE
91
102
-------------------------------------------------
92
103
When set, the float to string decimal conversion algorithm will use a larger
93
104
table to accelerate long double conversions. This larger table is around 5MB of
94
- size when compiled. This flag is enabled by default in the CMake.
105
+ size when compiled.
95
106
96
- LIBC_COPT_FLOAT_TO_STR_USE_DYADIC_FLOAT(_LD)
97
- --------------------------------------------
107
+ LIBC_COPT_FLOAT_TO_STR_USE_DYADIC_FLOAT
108
+ ---------------------------------------
98
109
When set, the float to string decimal conversion algorithm will use dyadic
99
110
floats instead of a table when performing floating point conversions. This
100
111
results in ~50 digits of accuracy in the result, then zeroes for the remaining
@@ -107,8 +118,7 @@ LIBC_COPT_FLOAT_TO_STR_USE_INT_CALC
107
118
When set, the float to string decimal conversion algorithm will use wide
108
119
integers instead of a table when performing floating point conversions. This
109
120
gives the same results as the table, but is very slow at the extreme ends of
110
- the long double range. If no flags are set this is the default behavior for
111
- long double conversions.
121
+ the long double range.
112
122
113
123
LIBC_COPT_FLOAT_TO_STR_NO_TABLE
114
124
-------------------------------
0 commit comments