1 /* Copyright (C) 2003 Free Software Foundation.
2 by Roger Sayle <roger@eyesopen.com>, derived from mzero3.c
4 Constant folding of sin(-0.0), tan(-0.0) and atan(-0.0) should
5 all return -0.0, for both double and float forms. */
8 typedef __SIZE_TYPE__
size_t;
9 extern int memcmp (const void *, const void *, size_t);
19 void expectd (double, double);
20 void expectf (float, float);
23 expectd (double value
, double expected
)
26 || memcmp ((void *)&value
, (void *) &expected
, sizeof (double)) != 0)
31 expectf (float value
, float expected
)
34 || memcmp ((void *)&value
, (void *) &expected
, sizeof (float)) != 0)
40 expectd (sin (0.0), 0.0);
41 expectd (tan (0.0), 0.0);
42 expectd (atan (0.0), 0.0);
44 expectd (sin (-0.0), -0.0);
45 expectd (tan (-0.0), -0.0);
46 expectd (atan (-0.0), -0.0);
48 expectf (sinf (0.0f
), 0.0f
);
49 expectf (tanf (0.0f
), 0.0f
);
50 expectf (atanf (0.0f
), 0.0f
);
52 expectf (sinf (-0.0f
), -0.0f
);
53 expectf (tanf (-0.0f
), -0.0f
);
54 expectf (atanf (-0.0f
), -0.0f
);