int main(void) { assert(floor(2.7) == 2.0); assert(floor(-2.7) == -3.0); double c = floor(-0.0); assert(c == -0.0); assert(sizeof(c) == sizeof(float) ? __signbitf(c) : sizeof(c) == sizeof(double) ? __signbit(c) : __signbitl(c)); c = floor(-(__builtin_inff())); assert(sizeof((__builtin_inff())) == sizeof(float) ? __isinff((__builtin_inff())) : sizeof((__builtin_inff())) == sizeof(double) ? __isinf((__builtin_inff())) : __isinfl((__builtin_inff()))); assert(sizeof(c) == sizeof(float) ? __signbitf(c) : sizeof(c) == sizeof(double) ? __signbit(c) : __signbitl(c)); return 0; }
int main(void) { float NaN = 0.0f / 0.0f; float Inf = 1.0f / 0.0f; float negInf = -1.0f / 0.0f; assert(floorf(2.9f) == 2.0f); float val = __VERIFIER_nondet_float(); if (!__isnanf(val) && !__isinff(val) && !__iszerof(val)) { assert(floorf(val) <= val); assert(floorf(val) >= val - 1); } assert(floorf(0.0f) == 0.0f); assert(floorf(-0.0f) == -0.0f); int isNeg = __signbitf(floorf(-0.0f)); assert(isNeg); assert(floorf(Inf) == Inf); assert(floorf(negInf) == negInf); assert(__isnanf(floorf(NaN))); return 0; }
int main(void) { float NaN = 0.0f / 0.0f; float Inf = 1.0f / 0.0f; float negInf = -1.0f / 0.0f; float x = 2.0f; float y = -8.5; float a = 5.1; float b = -3.0f; float c = fmodf(a, b); assert(fabsf(c - 2.1) < 1e-8); if (!__isnanf(y)) { assert(__isnanf(fmodf(Inf, y))); assert(__isnanf(fmodf(negInf, y))); } if (!__isnanf(x)) { assert(__isnanf(fmodf(x, 0.0f))); assert(__isnanf(fmodf(x, -0.0f))); } if (!__isnanf(x) && !__isinff(x)) { assert(fmodf(x, Inf) == x); assert(fmodf(x, negInf) == x); } if (!__isnanf(y) && !__iszerof(y)) { assert(fmodf(0.0f, y) == 0.0f); assert(fmodf(-0.0f, y) == -0.0f); int isNeg = __signbitf(fmodf(-0.0f, y)); assert(isNeg); } assert(__isnanf(fmodf(NaN, y))); assert(__isnanf(fmodf(x, NaN))); return 0; }
TEST(math, __signbitf) { ASSERT_EQ(0, __signbitf(0.0f)); ASSERT_EQ(0, __signbitf(1.0f)); ASSERT_NE(0, __signbitf(-1.0f)); }