https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82004
Wilco <wilco at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wilco at gcc dot gnu.org --- Comment #10 from Wilco <wilco at gcc dot gnu.org> --- Using latest GLIBC, exp(log(10),-3) is only 3ULP different from 0.001. Since (double)0.001 is rounded up, any <1ULP POW implementation could round down and fail the test. So yes the first element in chlcnc really needs to be fixed to 0.00099999999999999 to allow for a few ULP of error in POW. > As a last resort we can always choose to not touch 10**x Unfortunately almost all useful cases are 10**x... So it would be great if we can allow use of exp10 and exp2 to get more accurate results. This requires a real implementation in GLIBC, and a way to disable it. Would it be feasible to add a exp10 symbol to libgcc/libgfortran in case the math libraries don't support it?