1#include <tgmath.h> 2#include "test.h" 3 4int main(void) 5{ 6 long i; 7 8 i = lrint(123456789.1f) & 0x7fffffff; 9 if (i != 123456792) 10 t_error("lrint(123456789.1f)&0x7fffffff want 123456792 got %ld\n", i); 11 i = lrint(123456789.1) & 0x7fffffff; 12 if (i != 123456789) 13 t_error("lrint(123456789.1)&0x7fffffff want 123456789 got %ld\n", i); 14 15 if (sqrt(2.0f) != 1.41421353816986083984375) 16 t_error("sqrt(2.0f) want 0x1.6a09e6p+0 got %a\n", sqrt(2.0f)); 17 if (sqrt(2.0) != 1.414213562373095145474621858738828450441360) 18 t_error("sqrt(2.0) want 0x1.6a09e667f3bcdp+0 got %a\n", sqrt(2.0)); 19 if (sqrt(2) != 1.414213562373095145474621858738828450441360) 20 t_error("sqrt(2) want 0x1.6a09e667f3bcdp+0 got %a\n", sqrt(2.0)); 21 22 if (sizeof pow(sqrt(8),0.5f) != sizeof(double)) 23 t_error("sizeof pow(sqrt(8),0.5f) want %d got %d\n", (int)sizeof(double), (int)sizeof pow(sqrt(8),0.5f)); 24 if (sizeof pow(2.0,0.5) != sizeof(double)) 25 t_error("sizeof pow(2.0,0.5) want %d got %d\n", (int)sizeof(double), (int)sizeof pow(2.0,0.5)); 26 if (sizeof pow(2.0f,0.5f) != sizeof(float)) 27 t_error("sizeof pow(2.0f,0.5f) want %d got %d\n", (int)sizeof(float), (int)sizeof pow(2.0f,0.5f)); 28 if (sizeof pow(2.0,0.5+0*I) != sizeof(double complex)) 29 t_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)); 30 31 if (pow(2.0,0.5) != 1.414213562373095145474621858738828450441360) 32 t_error("pow(2.0,0.5) want 0x1.6a09e667f3bcdp+0 got %a\n", pow(2.0,0.5)); 33 if (pow(2,0.5) != 1.414213562373095145474621858738828450441360) 34 t_error("pow(2,0.5) want 0x1.6a09e667f3bcdp+0 got %a\n", pow(2,0.5)); 35 if (pow(2,0.5f) != 1.414213562373095145474621858738828450441360) 36 t_error("pow(2,0.5f) want 0x1.6a09e667f3bcdp+0 got %a\n", pow(2,0.5f)); 37 38 return t_status; 39} 40