unsafe fn dot_one_soa(a: &mut [Complex4], b: &[Complex4])Examples found in repository?
crates/competitive/src/math/fast_fourier_transform.rs (line 315)
305 pub unsafe fn convolve_f64_avx2(
306 a: impl ExactSizeIterator<Item = f64>,
307 b: impl ExactSizeIterator<Item = f64>,
308 range: std::ops::Range<usize>,
309 ) -> Vec<f64> {
310 let n = (range.end.next_power_of_two() / 2).max(4);
311 let mut fa = pack_f64(a, n);
312 let mut fb = pack_f64(b, n);
313 fft_soa(&mut fa);
314 fft_soa(&mut fb);
315 dot_one_soa(&mut fa, &fb);
316 drop(fb);
317 ifft_soa(&mut fa);
318 range
319 .map(|i| {
320 if i < n {
321 fa[i >> 2].re[i & 3]
322 } else {
323 fa[(i - n) >> 2].im[i & 3]
324 }
325 })
326 .collect()
327 }