https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82004
--- Comment #11 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 11 Sep 2017, wilco at gcc dot gnu.org wrote: > 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? Not sure, it depends on whether we can make sure libm is prefered over libgfortran. Maybe we have existing cases in libgfortran already.