Re-enables test cases, including the rotation test
[opus.git] / libcelt / kiss_fft.c
index 4909231..98b3eff 100644 (file)
@@ -119,7 +119,7 @@ static void kf_bfly4(
          C_MUL4(scratch[0],Fout[m] , *tw1 );
          C_MUL4(scratch[1],Fout[m2] , *tw2 );
          C_MUL4(scratch[2],Fout[m3] , *tw3 );
-             
+
          Fout->r = PSHR(Fout->r, 2);
          Fout->i = PSHR(Fout->i, 2);
          C_SUB( scratch[5] , *Fout, scratch[1] );
@@ -133,7 +133,7 @@ static void kf_bfly4(
          tw2 += fstride*2;
          tw3 += fstride*3;
          C_ADDTO( *Fout , scratch[3] );
-             
+
          Fout[m].r = scratch[5].r + scratch[4].i;
          Fout[m].i = scratch[5].i - scratch[4].r;
          Fout[m3].r = scratch[5].r - scratch[4].i;
@@ -168,7 +168,7 @@ static void ki_bfly4(
          C_MULC(scratch[0],Fout[m] , *tw1 );
          C_MULC(scratch[1],Fout[m2] , *tw2 );
          C_MULC(scratch[2],Fout[m3] , *tw3 );
-             
+
          C_SUB( scratch[5] , *Fout, scratch[1] );
          C_ADDTO(*Fout, scratch[1]);
          C_ADD( scratch[3] , scratch[0] , scratch[2] );
@@ -178,7 +178,7 @@ static void ki_bfly4(
          tw2 += fstride*2;
          tw3 += fstride*3;
          C_ADDTO( *Fout , scratch[3] );
-             
+
          Fout[m].r = scratch[5].r - scratch[4].i;
          Fout[m].i = scratch[5].i + scratch[4].r;
          Fout[m3].r = scratch[5].r + scratch[4].i;
@@ -292,7 +292,6 @@ static void ki_bfly3(
    }
 }
 
-
 static void kf_bfly5(
                      kiss_fft_cpx * Fout,
                      const size_t fstride,
@@ -437,7 +436,7 @@ static void kf_work(
         const kiss_fft_cpx * f,
         size_t fstride,
         int in_stride,
-        const celt_int16 * factors,
+        const opus_int16 * factors,
         const kiss_fft_state *st,
         int N,
         int m2
@@ -446,7 +445,7 @@ static void kf_work(
     const int p=*factors++; /* the radix  */
     const int m=*factors++; /* stage's fft length/p */
     /*printf ("fft %d %d %d %d %d %d %d\n", p*m, m, p, s2, fstride*in_stride, N, m2);*/
-    if (m!=1) 
+    if (m!=1)
         kf_work( Fout , f, fstride*p, in_stride, factors,st, N*p, m);
 
     /* Compensate for longer twiddles table (when sharing) */
@@ -459,16 +458,15 @@ static void kf_work(
         case 3: kf_bfly3(Fout,fstride,st,m, N, m2); break;
         case 5: kf_bfly5(Fout,fstride,st,m, N, m2); break;
 #endif
-    }    
+    }
 }
 
-
 static void ki_work(
              kiss_fft_cpx * Fout,
              const kiss_fft_cpx * f,
              size_t fstride,
              int in_stride,
-             const celt_int16 * factors,
+             const opus_int16 * factors,
              const kiss_fft_state *st,
              int N,
              int m2
@@ -477,7 +475,7 @@ static void ki_work(
    const int p=*factors++; /* the radix  */
    const int m=*factors++; /* stage's fft length/p */
    /*printf ("fft %d %d %d %d %d %d %d\n", p*m, m, p, s2, fstride*in_stride, N, m2);*/
-   if (m!=1) 
+   if (m!=1)
       ki_work( Fout , f, fstride*p, in_stride, factors,st, N*p, m);
 
    /* Compensate for longer twiddles table (when sharing) */
@@ -490,19 +488,18 @@ static void ki_work(
       case 3: ki_bfly3(Fout,fstride,st,m, N, m2); break;
       case 5: ki_bfly5(Fout,fstride,st,m, N, m2); break;
 #endif
-   }    
+   }
 }
 
-
 #ifdef CUSTOM_MODES
 
 static
 void compute_bitrev_table(
          int Fout,
-         celt_int16 *f,
+         opus_int16 *f,
          const size_t fstride,
          int in_stride,
-         celt_int16 * factors,
+         opus_int16 * factors,
          const kiss_fft_state *st
             )
 {
@@ -529,13 +526,12 @@ void compute_bitrev_table(
    }
 }
 
-
 /*  facbuf is populated by p1,m1,p2,m2, ...
-    where 
+    where
     p[i] * m[i] = m[i-1]
     m0 = n                  */
-static 
-int kf_factor(int n,celt_int16 * facbuf)
+static
+int kf_factor(int n,opus_int16 * facbuf)
 {
     int p=4;
 
@@ -547,7 +543,7 @@ int kf_factor(int n,celt_int16 * facbuf)
                 case 2: p = 3; break;
                 default: p += 2; break;
             }
-            if (p>32000 || (celt_int32)p*(celt_int32)p > n)
+            if (p>32000 || (opus_int32)p*(opus_int32)p > n)
                 p = n;          /* no more factors, skip to end */
         }
         n /= p;
@@ -570,7 +566,7 @@ static void compute_twiddles(kiss_twiddle_cpx *twiddles, int nfft)
    int i;
 #ifdef FIXED_POINT
    for (i=0;i<nfft;++i) {
-      celt_word32 phase = -i;
+      opus_val32 phase = -i;
       kf_cexp2(twiddles+i, DIV32(SHL32(phase,17),nfft));
    }
 #else
@@ -582,7 +578,6 @@ static void compute_twiddles(kiss_twiddle_cpx *twiddles, int nfft)
 #endif
 }
 
-
 /*
  *
  * User-callable function to allocate all necessary storage space for the fft.
@@ -603,7 +598,7 @@ kiss_fft_state *kiss_fft_alloc_twiddles(int nfft,void * mem,size_t * lenmem,  co
         *lenmem = memneeded;
     }
     if (st) {
-        celt_int16 *bitrev;
+        opus_int16 *bitrev;
         kiss_twiddle_cpx *twiddles;
 
         st->nfft=nfft;
@@ -616,9 +611,8 @@ kiss_fft_state *kiss_fft_alloc_twiddles(int nfft,void * mem,size_t * lenmem,  co
            st->shift = 0;
            while (nfft<<st->shift != base->nfft && st->shift < 32)
               st->shift++;
-           /* FIXME: Report error and do proper cleanup */
            if (st->shift>=32)
-              return NULL;
+              goto fail;
         } else {
            st->twiddles = twiddles = (kiss_twiddle_cpx*)KISS_FFT_MALLOC(sizeof(kiss_twiddle_cpx)*nfft);
            compute_twiddles(twiddles, nfft);
@@ -627,14 +621,19 @@ kiss_fft_state *kiss_fft_alloc_twiddles(int nfft,void * mem,size_t * lenmem,  co
         if (!kf_factor(nfft,st->factors))
         {
            kiss_fft_free(st);
-           return NULL;
+           goto fail;
         }
 
         /* bitrev */
-        st->bitrev = bitrev = (celt_int16*)KISS_FFT_MALLOC(sizeof(celt_int16)*nfft);
+        st->bitrev = bitrev = (opus_int16*)KISS_FFT_MALLOC(sizeof(opus_int16)*nfft);
+        if (st->bitrev==NULL)
+            goto fail;
         compute_bitrev_table(0, bitrev, 1,1, st->factors,st);
     }
     return st;
+fail:
+    kiss_fft_free(st);
+    return NULL;
 }
 
 kiss_fft_state *kiss_fft_alloc(int nfft,void * mem,size_t * lenmem )
@@ -646,7 +645,7 @@ void kiss_fft_free(const kiss_fft_state *cfg)
 {
    if (cfg)
    {
-      celt_free((celt_int16*)cfg->bitrev);
+      celt_free((opus_int16*)cfg->bitrev);
       if (cfg->shift < 0)
          celt_free((kiss_twiddle_cpx*)cfg->twiddles);
       celt_free((kiss_fft_state*)cfg);