[libc-commits] [PATCH] D150399: [libc] add options to printf	decimal floats
    Tue Ly via Phabricator via libc-commits 
    libc-commits at lists.llvm.org
       
    Thu May 11 21:51:21 PDT 2023
    
    
  
lntue added inline comments.
================
Comment at: libc/src/__support/float_to_string.h:171
+  // calculation as above. Due to floating point imprecision it is only accurate
+  // for the first 50 digits, but it's much faster. This is ideal for embedded
+  // situations that want to avoid the table altogether, and are willing to
----------------
You could also mention that 50 digits is more than enough for the round trip `long double -> decimal string -> long double` to be correct, even when `long double` is quad precision (i.e. float128).
================
Comment at: libc/src/__support/float_to_string.h:193
+    fputil::DyadicFloat<INT_SIZE> fives = fputil::pow_n(FIVE_EXP_MINUS_NINE, i);
+    num = fputil::quick_mul(num, fives);
+  }
----------------
You can add a `mul_pow_2` method that simply adds the exponent field in-place for a DyadicFloat.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150399/new/
https://reviews.llvm.org/D150399
    
    
More information about the libc-commits
mailing list