Failure: Test: yn (2, 0X1.B12ED58FD5169P+1) == -0X1.6541FD948522FP-58 Result: is: 5.96046447753906250000e-08 0x1.00000000000000000000p-24 should be: -4.84174579203368124914e-18 -0x1.6541fe00000000000000p-58 difference: 5.96046447753906250000e-08 0x1.00000000000000000000p-24 ulp : 144115188075855872.0000 max.ulp : 0.0000
Suspended until somebody comes up with a patch.
When that argument is rounded to float the correct result becomes 0x1.663952P-26. But the result glibc gives is still 0X1P-24, so confirmed (though I don't know how practical getting this very accurate is).
for n=42, x=0x1.0c2d26p+9, rnd=RNDZ I get an error of -62183 ulps with glibc 2.18.90 (see http://www.loria.fr/~zimmerma/glibc/). Paul