Skip to content

Commit b6ff168

Browse files
committed
Use a const generic SIMD type instead of a concrete one
1 parent 22e880d commit b6ff168

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/twiddles.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::{f64::consts::PI, simd::f64x8};
1+
use std::{f64::consts::PI, simd::Simd};
22

33
use crate::kernels::Float;
44

@@ -71,7 +71,7 @@ pub fn generate_twiddles(dist: usize) -> (Vec<f64>, Vec<f64>) {
7171
}
7272

7373
pub(crate) fn generate_twiddles_simd(dist: usize) -> (Vec<f64>, Vec<f64>) {
74-
const SIMD_WIDTH: usize = 8; // TODO: make this a const generic?
74+
const SIMD_WIDTH: usize = 8; // TODO: make this a const generic and multiversion this function
7575
assert!(dist >= SIMD_WIDTH * 2);
7676
assert_eq!(dist % SIMD_WIDTH, 0);
7777
let mut twiddles_re = vec![0.0; dist];
@@ -90,8 +90,8 @@ pub(crate) fn generate_twiddles_simd(dist: usize) -> (Vec<f64>, Vec<f64>) {
9090
};
9191

9292
let apply_symmetry_re = |input: &[Float], output: &mut [Float]| {
93-
let first_re = f64x8::from_slice(input);
94-
let minus_one = f64x8::splat(-1.0);
93+
let first_re: Simd<f64, SIMD_WIDTH> = Simd::from_slice(input);
94+
let minus_one: Simd<f64, SIMD_WIDTH> = Simd::splat(-1.0);
9595
let negated = (first_re * minus_one).reverse();
9696
output.copy_from_slice(negated.as_array());
9797
};

0 commit comments

Comments
 (0)