Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <Jean-Marc.Valin@csiro.au>2008-03-05 09:34:45 +0300
committerJean-Marc Valin <Jean-Marc.Valin@csiro.au>2008-03-05 09:34:45 +0300
commit9d312b97565ab179ff0291a537b87db3d9865f3a (patch)
treee9bc8def3143a713ca96f2978a3bb26e8350739e /libcelt/kiss_fft.c
parentf93747c44ab8e1c2d31b458ae1ffc0f85952b67c (diff)
Defining RADIX_TWO_ONLY removes all butterflies, except for radix 2 and 4.
Diffstat (limited to 'libcelt/kiss_fft.c')
-rw-r--r--libcelt/kiss_fft.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/libcelt/kiss_fft.c b/libcelt/kiss_fft.c
index b072044..275a117 100644
--- a/libcelt/kiss_fft.c
+++ b/libcelt/kiss_fft.c
@@ -188,6 +188,7 @@ static void ki_bfly4(
}
}
+#ifndef RADIX_TWO_ONLY
static void kf_bfly3(
kiss_fft_cpx * Fout,
@@ -477,6 +478,7 @@ static void ki_bfly_generic(
}
}
}
+#endif
static
void compute_bitrev_table(
@@ -534,10 +536,14 @@ void kf_work(
switch (p) {
case 2: kf_bfly2(Fout,fstride,st,m, N, m2); break;
- case 3: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; kf_bfly3(Fout,fstride,st,m);} break;
case 4: kf_bfly4(Fout,fstride,st,m, N, m2); break;
+#ifndef RADIX_TWO_ONLY
+ case 3: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; kf_bfly3(Fout,fstride,st,m);} break;
case 5: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; kf_bfly5(Fout,fstride,st,m);} break;
default: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; kf_bfly_generic(Fout,fstride,st,m,p);} break;
+#else
+ default: celt_fatal("kiss_fft: only powers of two enabled");
+#endif
}
}
@@ -564,10 +570,14 @@ void ki_work(
switch (p) {
case 2: ki_bfly2(Fout,fstride,st,m, N, m2); break;
- case 3: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; ki_bfly3(Fout,fstride,st,m);} break;
case 4: ki_bfly4(Fout,fstride,st,m, N, m2); break;
+#ifndef RADIX_TWO_ONLY
+ case 3: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; ki_bfly3(Fout,fstride,st,m);} break;
case 5: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; ki_bfly5(Fout,fstride,st,m);} break;
default: for (i=0;i<N;i++){Fout=Fout_beg+i*m2; ki_bfly_generic(Fout,fstride,st,m,p);} break;
+#else
+ default: celt_fatal("kiss_fft: only powers of two enabled");
+#endif
}
}