|
@@ -190,14 +190,13 @@ static inline int ff_sqrt(int a) |
|
|
{ |
|
|
{ |
|
|
int ret=0; |
|
|
int ret=0; |
|
|
int s; |
|
|
int s; |
|
|
int ret_sq=0; |
|
|
|
|
|
|
|
|
|
|
|
if(a<128) return ff_sqrt_tab[a]; |
|
|
if(a<128) return ff_sqrt_tab[a]; |
|
|
|
|
|
|
|
|
for(s=15; s>=0; s--){ |
|
|
for(s=15; s>=0; s--){ |
|
|
int b= ret_sq + (1<<(s*2)) + (ret<<s)*2; |
|
|
|
|
|
|
|
|
int b= (1<<(s*2)) + (ret<<s)*2; |
|
|
if(b<=a){ |
|
|
if(b<=a){ |
|
|
ret_sq=b; |
|
|
|
|
|
|
|
|
a-=b; |
|
|
ret+= 1<<s; |
|
|
ret+= 1<<s; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|