diff options
-rw-r--r-- | tests/tiny_psnr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tests/tiny_psnr.c b/tests/tiny_psnr.c index 84ad90ebce..572dd27558 100644 --- a/tests/tiny_psnr.c +++ b/tests/tiny_psnr.c @@ -68,9 +68,10 @@ static uint64_t log16(uint64_t a){ a<<=16; for(i=19;i>=0;i--){ - if(a<(exp16_table[i]<<16)) continue; + int64_t b= exp16_table[i]; + if(a<(b<<16)) continue; out |= 1<<i; - a = ((a<<16) + exp16_table[i]/2)/exp16_table[i]; + a = ((a/b)<<16) + (((a%b)<<16) + b/2)/b; } return out; } |