MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / main

Function main

libavutil/softfloat.c:30–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28#undef printf
29
30int main(void){
31 SoftFloat one= av_int2sf(1, 0);
32 SoftFloat sf1, sf2;
33 double d1, d2;
34 int i, j;
35 av_log_set_level(AV_LOG_DEBUG);
36
37 d1= 1;
38 for(i= 0; i<10; i++){
39 d1= 1/(d1+1);
40 }
41 printf("test1 double=%d\n", (int)(d1 * (1<<24)));
42
43 sf1= one;
44 for(i= 0; i<10; i++){
45 sf1= av_div_sf(one, av_normalize_sf(av_add_sf(one, sf1)));
46 }
47 printf("test1 sf =%d\n", av_sf2int(sf1, 24));
48
49
50 for(i= 0; i<100; i++){
51 START_TIMER
52 d1= i;
53 d2= i/100.0;
54 for(j= 0; j<1000; j++){
55 d1= (d1+1)*d2;
56 }
57 STOP_TIMER("float add mul")
58 }
59 printf("test2 double=%d\n", (int)(d1 * (1<<24)));
60
61 for(i= 0; i<100; i++){
62 START_TIMER
63 sf1= av_int2sf(i, 0);
64 sf2= av_div_sf(av_int2sf(i, 2), av_int2sf(200, 3));
65 for(j= 0; j<1000; j++){
66 sf1= av_mul_sf(av_add_sf(sf1, one),sf2);
67 }
68 STOP_TIMER("softfloat add mul")
69 }
70 printf("test2 sf =%d (%d %d)\n", av_sf2int(sf1, 24), sf1.exp, sf1.mant);
71 return 0;
72}

Callers

nothing calls this directly

Calls 7

av_int2sfFunction · 0.85
av_log_set_levelFunction · 0.85
av_div_sfFunction · 0.85
av_normalize_sfFunction · 0.85
av_add_sfFunction · 0.85
av_sf2intFunction · 0.85
av_mul_sfFunction · 0.85

Tested by

no test coverage detected