From 7d8d553aba815e00bf9759e2e49808763e908ae5 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Sat, 15 Dec 2012 10:52:15 +0100 Subject: [PATCH] general: simple tgmath test --- src/general/tgmath.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/general/tgmath.c diff --git a/src/general/tgmath.c b/src/general/tgmath.c new file mode 100644 index 0000000..8cc2c3e --- /dev/null +++ b/src/general/tgmath.c @@ -0,0 +1,39 @@ +#include +#include "test.h" + +int main(void) +{ + long i; + + i = lrint(123456789.1f) & 0x7fffffff; + if (i != 123456792) + error("lrint(123456789.1f)&0x7fffffff want 123456792 got %ld\n", i); + i = lrint(123456789.1) & 0x7fffffff; + if (i != 123456789) + error("lrint(123456789.1)&0x7fffffff want 123456789 got %ld\n", i); + + if (sqrt(2.0f) != 1.41421353816986083984375) + error("sqrt(2.0f) want 0x1.6a09e6p+0 got %a\n", sqrt(2.0f)); + if (sqrt(2.0) != 1.414213562373095145474621858738828450441360) + error("sqrt(2.0) want 0x1.6a09e667f3bcdp+0 got %a\n", sqrt(2.0)); + if (sqrt(2) != 1.414213562373095145474621858738828450441360) + error("sqrt(2) want 0x1.6a09e667f3bcdp+0 got %a\n", sqrt(2.0)); + + if (sizeof pow(sqrt(8),0.5f) != sizeof(double)) + error("sizeof pow(sqrt(8),0.5f) want %d got %d\n", (int)sizeof(double), (int)sizeof pow(sqrt(8),0.5f)); + if (sizeof pow(2.0,0.5) != sizeof(double)) + error("sizeof pow(2.0,0.5) want %d got %d\n", (int)sizeof(double), (int)sizeof pow(2.0,0.5)); + if (sizeof pow(2.0f,0.5f) != sizeof(float)) + error("sizeof pow(2.0f,0.5f) want %d got %d\n", (int)sizeof(float), (int)sizeof pow(2.0f,0.5f)); + if (sizeof pow(2.0,0.5+0*I) != sizeof(double complex)) + error("sizeof pow(2.0,0.5+0*I) want %d got %d\n", (int)sizeof(double complex), (int)sizeof pow(2.0,0.5+0*I)); + + if (pow(2.0,0.5) != 1.414213562373095145474621858738828450441360) + error("pow(2.0,0.5) want 0x1.6a09e667f3bcdp+0 got %a\n", pow(2.0,0.5)); + if (pow(2,0.5) != 1.414213562373095145474621858738828450441360) + error("pow(2,0.5) want 0x1.6a09e667f3bcdp+0 got %a\n", pow(2,0.5)); + if (pow(2,0.5f) != 1.414213562373095145474621858738828450441360) + error("pow(2,0.5f) want 0x1.6a09e667f3bcdp+0 got %a\n", pow(2,0.5f)); + + return test_status; +} -- 2.20.1