You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.5 KiB

  1. #![feature(test)]
  2. extern crate complex;
  3. extern crate dft;
  4. extern crate test;
  5. use complex::c64;
  6. use test::{Bencher, black_box};
  7. #[bench] fn complex_forward_0004(bencher: &mut Bencher) { complex_forward( 4, bencher); }
  8. #[bench] fn complex_forward_0016(bencher: &mut Bencher) { complex_forward( 16, bencher); }
  9. #[bench] fn complex_forward_0064(bencher: &mut Bencher) { complex_forward( 64, bencher); }
  10. #[bench] fn complex_forward_0256(bencher: &mut Bencher) { complex_forward( 256, bencher); }
  11. #[bench] fn complex_forward_1024(bencher: &mut Bencher) { complex_forward(1024, bencher); }
  12. #[bench] fn complex_forward_4096(bencher: &mut Bencher) { complex_forward(4096, bencher); }
  13. #[bench] fn real_forward_0004(bencher: &mut Bencher) { real_forward( 4, bencher); }
  14. #[bench] fn real_forward_0016(bencher: &mut Bencher) { real_forward( 16, bencher); }
  15. #[bench] fn real_forward_0064(bencher: &mut Bencher) { real_forward( 64, bencher); }
  16. #[bench] fn real_forward_0256(bencher: &mut Bencher) { real_forward( 256, bencher); }
  17. #[bench] fn real_forward_1024(bencher: &mut Bencher) { real_forward(1024, bencher); }
  18. #[bench] fn real_forward_4096(bencher: &mut Bencher) { real_forward(4096, bencher); }
  19. fn complex_forward(size: usize, bencher: &mut Bencher) {
  20. let mut data = vec![c64(42.0, 69.0); size];
  21. bencher.iter(|| black_box(dft::complex::forward(&mut data)));
  22. }
  23. fn real_forward(size: usize, bencher: &mut Bencher) {
  24. let mut data = vec![42.0; 2 * size];
  25. bencher.iter(|| black_box(dft::real::forward(&mut data)));
  26. }