1*08b48e0bSAndroid Build Coastguard Worker /* test cases for floating point comparison transformations 2*08b48e0bSAndroid Build Coastguard Worker * compile with -DFLOAT_TYPE=float 3*08b48e0bSAndroid Build Coastguard Worker * or -DFLOAT_TYPE=double 4*08b48e0bSAndroid Build Coastguard Worker * or -DFLOAT_TYPE="long double" 5*08b48e0bSAndroid Build Coastguard Worker */ 6*08b48e0bSAndroid Build Coastguard Worker 7*08b48e0bSAndroid Build Coastguard Worker #include <assert.h> 8*08b48e0bSAndroid Build Coastguard Worker #define _GNU_SOURCE 9*08b48e0bSAndroid Build Coastguard Worker #include <math.h> /* for NaNs and infinity values */ 10*08b48e0bSAndroid Build Coastguard Worker main()11*08b48e0bSAndroid Build Coastguard Workerint main() { 12*08b48e0bSAndroid Build Coastguard Worker 13*08b48e0bSAndroid Build Coastguard Worker volatile FLOAT_TYPE a, b; 14*08b48e0bSAndroid Build Coastguard Worker 15*08b48e0bSAndroid Build Coastguard Worker /* negative zero */ 16*08b48e0bSAndroid Build Coastguard Worker a = 1.0 / -(1.0 / 0.0); /* negative 0 */ 17*08b48e0bSAndroid Build Coastguard Worker b = 0.0; /* positive 0 */ 18*08b48e0bSAndroid Build Coastguard Worker assert(!(a < b)); 19*08b48e0bSAndroid Build Coastguard Worker assert((a <= b)); 20*08b48e0bSAndroid Build Coastguard Worker assert(!(a > b)); 21*08b48e0bSAndroid Build Coastguard Worker assert((a >= b)); 22*08b48e0bSAndroid Build Coastguard Worker assert(!(a != b)); 23*08b48e0bSAndroid Build Coastguard Worker assert((a == b)); 24*08b48e0bSAndroid Build Coastguard Worker 25*08b48e0bSAndroid Build Coastguard Worker a = 1.0 / -(1.0 / 0.0); /* negative 0 */ 26*08b48e0bSAndroid Build Coastguard Worker b = 1.0 / -(1.0 / 0.0); /* negative 0 */ 27*08b48e0bSAndroid Build Coastguard Worker assert(!(a < b)); 28*08b48e0bSAndroid Build Coastguard Worker assert((a <= b)); 29*08b48e0bSAndroid Build Coastguard Worker assert(!(a > b)); 30*08b48e0bSAndroid Build Coastguard Worker assert((a >= b)); 31*08b48e0bSAndroid Build Coastguard Worker assert(!(a != b)); 32*08b48e0bSAndroid Build Coastguard Worker assert((a == b)); 33*08b48e0bSAndroid Build Coastguard Worker 34*08b48e0bSAndroid Build Coastguard Worker } 35*08b48e0bSAndroid Build Coastguard Worker 36