if the CPU rounds correctly to nearest.
+2007-10-20 Bruno Haible <bruno@clisp.org>
+
+ * tests/test-floorf2.c (correct_result_p): Don't rely on excess
+ precision in the comparison result > x - 1 or similar.
+ * tests/test-ceilf2.c (correct_result_p): Likewise.
+ * tests/test-truncf2.c (correct_result_p): Likewise.
+ * tests/test-trunc2.c (correct_result_p): Likewise.
+ Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
+
2007-10-20 Bruno Haible <bruno@clisp.org>
* modules/ceil: New file.
{
return
(x > 0 && x <= 1 ? result == L_(1.0) :
- x + 1 > x ? result >= x && result < x + 1 :
+ x + 1 > x ? result >= x && result <= x + 1 && result - x < 1 :
equal (result, x));
}
{
return
(x < 0 && x >= -1 ? result == - L_(1.0) :
- x - 1 < x ? result <= x && result > x - 1 :
+ x - 1 < x ? result <= x && result >= x - 1 && x - result < 1 :
equal (result, x));
}
return
(x >= 0
? (x < 1 ? result == L_(0.0) :
- x - 1 < x ? result <= x && result > x - 1 :
+ x - 1 < x ? result <= x && result >= x - 1 && x - result < 1 :
equal (result, x))
: (x > -1 ? result == L_(0.0) :
- x + 1 > x ? result >= x && result < x + 1 :
+ x + 1 > x ? result >= x && result <= x + 1 && result - x < 1 :
equal (result, x)));
}
return
(x >= 0
? (x < 1 ? result == L_(0.0) :
- x - 1 < x ? result <= x && result > x - 1 :
+ x - 1 < x ? result <= x && result >= x - 1 && x - result < 1 :
equal (result, x))
: (x > -1 ? result == L_(0.0) :
- x + 1 > x ? result >= x && result < x + 1 :
+ x + 1 > x ? result >= x && result <= x + 1 && result - x < 1 :
equal (result, x)));
}