@@ -18,18 +18,19 @@ namespace BTNRH_FFT {
1818 ilog2 (int n)
1919 {
2020 int m;
21-
21+
2222 for (m = 1 ; m < 32 ; m++)
2323 if (n == (1 << m))
2424 return (m);
2525 return (-1 );
2626 }
27-
27+
2828 static __inline int
2929 bitrev (int ii, int m)
3030 {
31- register int jj;
32-
31+ // Was: register int jj; RSL 9 Oct 2024
32+ int jj;
33+
3334 jj = ii & 1 ;
3435 --m;
3536 while (--m > 0 ) {
@@ -39,26 +40,26 @@ namespace BTNRH_FFT {
3940 }
4041 return (jj);
4142 }
42-
43+
4344 static __inline void
4445 rad2 (int ii, float *x0, float *x1)
4546 {
4647 int k;
4748 float t;
48-
49+
4950 for (k = 0 ; k < ii; k++) {
5051 t = x0[k] + x1[k];
5152 x1[k] = x0[k] - x1[k];
5253 x0[k] = t;
5354 }
5455 }
55-
56+
5657 static __inline void
5758 reorder1 (int m, float *x)
5859 {
5960 int j, k, kl, n;
6061 float t;
61-
62+
6263 k = 4 ;
6364 kl = 2 ;
6465 n = 1 << m;
@@ -75,13 +76,13 @@ namespace BTNRH_FFT {
7576 }
7677 }
7778 }
78-
79+
7980 static __inline void
8081 reorder2 (int m, float *x)
8182 {
8283 int ji, ij, n;
8384 float t;
84-
85+
8586 n = 1 << m;
8687 for (ij = 0 ; ij <= (n - 2 ); ij += 2 ) {
8788 ji = bitrev (ij >> 1 , m) << 1 ;
@@ -95,11 +96,11 @@ namespace BTNRH_FFT {
9596 }
9697 }
9798 }
98-
99+
99100 /* **********************************************************/
100-
101+
101102 // rcfft
102-
103+
103104 static void
104105 rcrad4 (int ii, int nn,
105106 float *x0, float *x1, float *x2, float *x3,
@@ -109,7 +110,7 @@ namespace BTNRH_FFT {
109110 float c1, c2, c3, s1, s2, s3, pr, pi, r1, r5;
110111 float t0, t1, t2, t3, t4, t5, t6, t7;
111112 int i0, i4, j, j0, ji, jl, jr, jlast, k, k0, kl, m, n, ni;
112-
113+
113114 n = nn / 4 ;
114115 for (m = 1 ; (1 << m) < n; m++)
115116 continue ;
@@ -186,29 +187,29 @@ namespace BTNRH_FFT {
186187 }
187188 }
188189 }
189-
190+
190191 // -----------------------------------------------------------
191-
192+
192193 static int
193194 rcfft2 (float *x, int m)
194195 {
195196 int ii, nn, m2, it, n;
196-
197+
197198 n = 1 << m;;
198199 m2 = m / 2 ;
199-
200+
200201 // radix 2
201-
202+
202203 if (m <= m2 * 2 ) {
203204 nn = 1 ;
204205 } else {
205206 nn = 2 ;
206207 ii = n / nn;
207208 rad2 (ii, x, x + ii);
208209 }
209-
210+
210211 // radix 4
211-
212+
212213 if (m2 != 0 ) {
213214 for (it = 0 ; it < m2; it++) {
214215 nn = nn * 4 ;
@@ -217,24 +218,24 @@ namespace BTNRH_FFT {
217218 x, x + ii, x + 2 * ii, x + 3 * ii);
218219 }
219220 }
220-
221+
221222 // re-order
222-
223+
223224 reorder1 (m, x);
224225 reorder2 (m, x);
225226 for (it = 3 ; it < n; it += 2 )
226227 x[it] = -x[it];
227228 x[n] = x[1 ];
228229 x[1 ] = 0.0 ;
229230 x[n + 1 ] = 0.0 ;
230-
231+
231232 return (0 );
232233 }
233-
234+
234235 /* **********************************************************/
235-
236+
236237 // rcfft
237-
238+
238239 static void
239240 crrad4 (int jj, int nn,
240241 float *x0, float *x1, float *x2, float *x3,
@@ -244,7 +245,7 @@ namespace BTNRH_FFT {
244245 float c1, c2, c3, s1, s2, s3;
245246 float t0, t1, t2, t3, t4, t5, t6, t7;
246247 int ii, j, j0, ji, jr, jl, jlast, j4, k, k0, kl, m, n, ni;
247-
248+
248249 tpiovn = 2 * M_PI / nn;
249250 ji = 3 ;
250251 jl = 2 ;
@@ -317,27 +318,27 @@ namespace BTNRH_FFT {
317318 }
318319 }
319320 }
320-
321+
321322 // -----------------------------------------------------------
322-
323+
323324 static int
324325 crfft2 (float *x, int m)
325326 {
326327 int n, i, it, nn, jj, m2;
327-
328+
328329 n = 1 << m;
329330 x[1 ] = x[n];
330331 m2 = m / 2 ;
331-
332+
332333 // re-order
333-
334+
334335 for (i = 3 ; i < n; i += 2 )
335336 x[i] = -x[i];
336337 reorder2 (m, x);
337338 reorder1 (m, x);
338-
339+
339340 // radix 4
340-
341+
341342 if (m2 != 0 ) {
342343 nn = 4 * n;
343344 for (it = 0 ; it < m2; it++) {
@@ -347,39 +348,39 @@ namespace BTNRH_FFT {
347348 x, x + jj, x + 2 * jj, x + 3 * jj);
348349 }
349350 }
350-
351+
351352 // radix 2
352-
353+
353354 if (m > m2 * 2 ) {
354355 jj = n / 2 ;
355356 rad2 (jj, x, x + jj);
356357 }
357-
358+
358359 return (0 );
359360 }
360-
361+
361362 /* **********************************************************/
362-
363+
363364 // real-to-complex FFT
364-
365+
365366 // FUNC(void)
366367 void cha_fft_rc (float *x, int n)
367368 {
368369 int m;
369-
370- // assume n is a power of two
370+
371+ // assume n is a power of two
371372 m = ilog2 (n);
372373 rcfft2 (x, m);
373374 }
374-
375+
375376 // complex-to-real inverse FFT
376-
377+
377378 // FUNC(void)
378379 void cha_fft_cr (float *x, int n)
379380 {
380381 int i, m;
381-
382- // assume n is a power of two
382+
383+ // assume n is a power of two
383384 m = ilog2 (n);
384385 crfft2 (x, m);
385386 // scale inverse by 1/n
@@ -390,4 +391,4 @@ namespace BTNRH_FFT {
390391
391392};
392393
393- // endif
394+ // endif
0 commit comments