OSDN Git Service

avutil/softfloat: Add tests for exponent underflows
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 8 Nov 2015 13:07:22 +0000 (14:07 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 8 Nov 2015 13:23:38 +0000 (14:23 +0100)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavutil/softfloat.c

index a9d1b0c..1691de8 100644 (file)
@@ -97,6 +97,18 @@ int main(void){
     sf1 = av_int2sf(0xE0000001, 0);
     printf("test4 softfloat: %.10lf (0x%08x %d)\n", (double)av_sf2double(sf1), sf1.mant, sf1.exp);
 
+
+    sf1 = (SoftFloat){ 0x20000000,   MIN_EXP };
+    sf1 = av_mul_sf(sf1, sf1);
+    printf("test5 softfloat: %.10lf (0x%08x %d)\n", (double)av_sf2double(sf1), sf1.mant, sf1.exp);
+
+    sf1 = (SoftFloat){ 0x20000000,   MIN_EXP };
+    sf2 = (SoftFloat){ 0x20000000,   MAX_EXP };
+    i = av_cmp_sf(sf1, sf2);
+    j = av_cmp_sf(sf2, sf1);
+    sf1 = av_div_sf(sf1, sf2);
+    printf("test6 softfloat: %.10lf (0x%08x %d) %d %d\n", (double)av_sf2double(sf1), sf1.mant, sf1.exp, i, j);
+
     for(i= 0; i<4*36; i++){
         int s, c;
         double errs, errc;