/* Test of rounding towards zero.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <stdio.h>
#include <stdlib.h>
-#include "isnan.h"
+#include "isnand.h"
#define ASSERT(expr) \
do \
static int
equal (DOUBLE x, DOUBLE y)
{
- return (isnan (x) ? isnan (y) : x == y);
+ return (isnand (x) ? isnand (y) : x == y);
}
/* Test whether the result for a given argument is correct. */
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)));
}