use num_complex::Complex32;
use slatec::transforms::fft::complex::ComplexFftPlan32;
fn main() {
let original = vec![
Complex32::new(1.0, 0.0),
Complex32::new(0.0, 1.0),
Complex32::new(-1.0, 0.0),
Complex32::new(0.0, -1.0),
];
let mut values = original.clone();
let mut plan = ComplexFftPlan32::new(values.len()).expect("valid complex FFT plan");
plan.forward(&mut values).expect("CFFTF1 forward transform");
plan.backward(&mut values)
.expect("CFFTB1 backward transform");
for (actual, expected) in values.iter().zip(&original) {
assert!((actual.re - 4.0 * expected.re).abs() < 1.0e-4);
assert!((actual.im - 4.0 * expected.im).abs() < 1.0e-4);
}
}