Don't use pow/powf functions where we just need integer arithmetic.
authorAlexander Strasser <eclipse7@gmx.net>
Fri, 10 Feb 2006 11:59:38 +0000 (11:59 +0000)
committerAlexander Strasser <eclipse7@gmx.net>
Fri, 10 Feb 2006 11:59:38 +0000 (11:59 +0000)
approved by Benjamin

Originally committed as revision 4973 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/cook.c

index 4140be1..07368ca 100644 (file)
@@ -185,8 +185,8 @@ static void init_pow2table(COOKContext *q){
     int i;
     q->pow2tab[63] = 1.0;
     for (i=1 ; i<64 ; i++){
-        q->pow2tab[63+i]=(float)pow(2.0,(double)i);
-        q->pow2tab[63-i]=1.0/(float)pow(2.0,(double)i);
+        q->pow2tab[63+i]=(float)((uint64_t)1<<i);
+        q->pow2tab[63-i]=1.0/(float)((uint64_t)1<<i);
     }
 }
 
@@ -195,8 +195,8 @@ static void init_rootpow2table(COOKContext *q){
     int i;
     q->rootpow2tab[63] = 1.0;
     for (i=1 ; i<64 ; i++){
-        q->rootpow2tab[63+i]=sqrt((float)powf(2.0,(float)i));
-        q->rootpow2tab[63-i]=sqrt(1.0/(float)powf(2.0,(float)i));
+        q->rootpow2tab[63+i]=sqrt((float)((uint64_t)1<<i));
+        q->rootpow2tab[63-i]=sqrt(1.0/(float)((uint64_t)1<<i));
     }
 }