• S
    add IEEE binary128 long double support to floatscan · f3f29795
    Szabolcs Nagy 提交于
    just defining the necessary constants:
    
     LD_B1B_MAX is 2^113 - 1 in base 10^9
     KMAX is 2048 so the x array can hold up to 18432 decimal digits
    
    (the worst case is converting 2^-16495 = 5^16495 * 10^-16495 to
    binary, it requires the processing of int(log10(5)*16495)+1 = 11530
    decimal digits after discarding the leading zeros, the conversion
    requires some headroom in x, but KMAX is more than enough for that)
    
    However this code is not optimal on archs with IEEE binary128
    long double because the arithmetics is software emulated (on
    all such platforms as far as i know) which means big and slow
    strtod.
    f3f29795
floatscan.c 9.6 KB