Failure: Test: nearbyint (0X1.3041C6P+21) == 0X1.3041C8P+21 Result: is: 2.49247200000000000000e+06 0x1.3041c000000000000000p+21 should be: 2.49247300000000000000e+06 0x1.3041c800000000000000p+21 difference: 1.00000000000000000000e+00 0x1.00000000000000000000p+0 ulp : 4.0000 max.ulp : 0.0000
The problem is: The nearbyint() functions round their argument to an integer value in floating point format, using the current rounding direction and without raising the inexact exception. But ieee754/flt-32/s_nearbyintf.c doesn't check the current rounding direction at all.
Suspended until somebody comes up with a patch.
Fixed. commit 6cbeae4719aeb3edb6143fe5dd6d2a5ab45c0248 Author: Joseph Myers <joseph@codesourcery.com> Date: Wed Feb 22 13:03:40 2012 +0000 Fix nearbyintf rounding.