@@ -30,6 +30,8 @@ void test_fft_complex (int N, bool use_avx = false)
3030 auto * fft_setup = chowdsp::fft::fft_new_setup (N, chowdsp::fft::FFT_COMPLEX, use_avx);
3131 REQUIRE (fft_setup != nullptr );
3232 auto * pffft_setup = pffft_new_setup (N, PFFFT_COMPLEX);
33+ if (! use_avx)
34+ REQUIRE (chowdsp::fft::fft_simd_width_bytes (fft_setup) == 16 );
3335
3436 chowdsp::fft::fft_transform (fft_setup, data, data, work_data, chowdsp::fft::FFT_FORWARD);
3537 pffft_transform_ordered (pffft_setup, data_ref, data_ref, work_data_ref, PFFFT_FORWARD);
@@ -75,7 +77,7 @@ void test_fft_real (int N, bool use_avx = false)
7577
7678 chowdsp::fft::fft_transform (fft_setup, data, data, work_data, chowdsp::fft::FFT_FORWARD);
7779 pffft_transform_ordered (pffft_setup, data_ref, data_ref, work_data_ref, PFFFT_FORWARD);
78-
80+
7981 compare (data_ref, data, N);
8082
8183 chowdsp::fft::fft_transform (fft_setup, data, data, work_data, chowdsp::fft::FFT_BACKWARD);
@@ -176,13 +178,16 @@ void test_convolution_real (int N, bool use_avx = false)
176178 pffft_transform (pffft_setup, sine2_ref, sine2_ref, work_data_ref, PFFFT_FORWARD);
177179 pffft_zconvolve_accumulate (pffft_setup, sine1_ref, sine2_ref, out_ref, norm_gain);
178180 pffft_transform (pffft_setup, out_ref, out_ref, work_data_ref, PFFFT_BACKWARD);
181+ for (int i = 0 ; i < N; ++i)
182+ out_ref[i] += sine1_ref[i];
179183
180184 auto * fft_setup = chowdsp::fft::fft_new_setup (N, chowdsp::fft::FFT_REAL, use_avx);
181185 REQUIRE (fft_setup != nullptr );
182186 chowdsp::fft::fft_transform_unordered (fft_setup, sine1, sine1, work_data, chowdsp::fft::FFT_FORWARD);
183187 chowdsp::fft::fft_transform_unordered (fft_setup, sine2, sine2, work_data, chowdsp::fft::FFT_FORWARD);
184188 chowdsp::fft::fft_convolve_unordered (fft_setup, sine1, sine2, out, norm_gain);
185189 chowdsp::fft::fft_transform_unordered (fft_setup, out, out, work_data, chowdsp::fft::FFT_BACKWARD);
190+ chowdsp::fft::fft_accumulate (fft_setup, out, sine1_ref, out, N);
186191
187192 compare (out_ref, out, N);
188193
0 commit comments