arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-hal/src/reference/fft64/mod.rs
poulpy-hal/src/reference/fft64/mod.rsRaw
 1pub mod convolution;
 2pub mod reim;
 3pub mod reim4;
 4pub mod svp;
 5pub mod vec_znx_big;
 6pub mod vec_znx_dft;
 7pub mod vmp;
 8
 9pub(crate) fn assert_approx_eq_slice(a: &[f64], b: &[f64], tol: f64) {
10    assert_eq!(a.len(), b.len(), "Slices have different lengths");
11
12    for (i, (x, y)) in a.iter().zip(b.iter()).enumerate() {
13        let diff: f64 = (x - y).abs();
14        let scale: f64 = x.abs().max(y.abs()).max(1.0);
15        assert!(
16            diff <= tol * scale,
17            "Difference at index {}: left={} right={} rel_diff={} > tol={}",
18            i,
19            x,
20            y,
21            diff / scale,
22            tol
23        );
24    }
25}