Skip to content
This repository was archived by the owner on May 10, 2023. It is now read-only.

Commit 01c9e6c

Browse files
committed
yFFT: rustfmt
1 parent 5043acb commit 01c9e6c

28 files changed

+652
-517
lines changed

src/benchmark.rs

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@ fn run_single_benchmark(size: usize, b: &mut Bencher) {
2222
output_data_format: DataFormat::Complex,
2323
len: size,
2424
inverse: false,
25-
}).unwrap();
25+
})
26+
.unwrap();
2627
let mut senv = Env::new(&setup);
2728
let mut buf = vec![0f32; size * 2];
28-
b.iter(move || { senv.transform(buf.as_mut_slice()); })
29+
b.iter(move || {
30+
senv.transform(buf.as_mut_slice());
31+
})
2932
}
3033

3134
#[bench]
@@ -97,10 +100,13 @@ fn run_single_real_benchmark(size: usize, b: &mut Bencher) {
97100
output_data_format: DataFormat::HalfComplex,
98101
len: size,
99102
inverse: false,
100-
}).unwrap();
103+
})
104+
.unwrap();
101105
let mut senv = Env::new(&setup);
102106
let mut buf = vec![0f32; size];
103-
b.iter(move || { senv.transform(buf.as_mut_slice()); })
107+
b.iter(move || {
108+
senv.transform(buf.as_mut_slice());
109+
})
104110
}
105111

106112
#[bench]
@@ -171,10 +177,13 @@ fn run_dif_benchmark(size: usize, b: &mut Bencher) {
171177
output_data_format: DataFormat::Complex,
172178
len: size,
173179
inverse: false,
174-
}).unwrap();
180+
})
181+
.unwrap();
175182
let mut senv = Env::new(&setup);
176183
let mut buf = vec![0f32; size * 2];
177-
b.iter(move || { senv.transform(buf.as_mut_slice()); })
184+
b.iter(move || {
185+
senv.transform(buf.as_mut_slice());
186+
})
178187
}
179188

180189
#[bench]
@@ -206,10 +215,13 @@ fn run_dit_benchmark(size: usize, b: &mut Bencher) {
206215
output_data_format: DataFormat::Complex,
207216
len: size,
208217
inverse: false,
209-
}).unwrap();
218+
})
219+
.unwrap();
210220
let mut senv = Env::new(&setup);
211221
let mut buf = vec![0f32; size * 2];
212-
b.iter(move || { senv.transform(buf.as_mut_slice()); })
222+
b.iter(move || {
223+
senv.transform(buf.as_mut_slice());
224+
})
213225
}
214226

215227
#[bench]

src/bin/ysr2-benchmark.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
// This source code is a part of Nightingales.
55
//
66
extern crate yfft;
7-
use yfft::{Env, Setup, DataOrder, DataFormat, Options};
87
use std::time;
8+
use yfft::{DataFormat, DataOrder, Env, Options, Setup};
99

1010
fn duration_to_secs(d: time::Duration) -> f64 {
1111
d.as_secs() as f64 + d.subsec_nanos() as f64 * 1.0e-9
@@ -82,10 +82,13 @@ fn run_single_benchmark(size: usize) {
8282
output_data_format: DataFormat::Complex,
8383
len: size,
8484
inverse: false,
85-
}).unwrap();
85+
})
86+
.unwrap();
8687
let mut senv = Env::new(&setup);
8788
let mut buf = vec![0f32; size * 2];
88-
let (iter_time, sd) = benchmark(move || { senv.transform(buf.as_mut_slice()); });
89+
let (iter_time, sd) = benchmark(move || {
90+
senv.transform(buf.as_mut_slice());
91+
});
8992
let size_f = size as f64;
9093
let num_fops = size_f * size_f.log2() * 5.0;
9194
let mflops = num_fops / iter_time * 1.0e-6;

src/env.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
//
44
// This source code is a part of Nightingales.
55
//
6-
use std::borrow::Borrow;
7-
use super::{Setup, Num};
8-
use num_traits::Zero;
96
use super::kernel::KernelParams;
7+
use super::{Num, Setup};
8+
use num_traits::Zero;
9+
use std::borrow::Borrow;
1010

1111
/// Encapsulates the working area required for a transformation.
1212
#[derive(Debug, Clone)]

src/kernel/accessor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//! Defines the `SliceAccessor` type that can be used to bypass bounds checking
88
//! on the release builds.
99
10-
use std::{ops, convert};
10+
use std::{convert, ops};
1111

1212
#[cfg(not(debug_assertions))]
1313
use std::slice;

src/kernel/bitreversal.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ pub fn new_bit_reversal_kernel<T>(radixes: &[usize]) -> Box<Kernel<T>>
1616
where
1717
T: Num,
1818
{
19-
2019
let len = radixes.iter().product();
2120
let mut indices = vec![0; len];
2221

@@ -45,9 +44,8 @@ where
4544
}
4645
}
4746

48-
unsafe {
49-
super::x86::new_x86_bit_reversal_kernel(&indices)
50-
}.unwrap_or_else(|| BitReversalKernel::new(indices))
47+
unsafe { super::x86::new_x86_bit_reversal_kernel(&indices) }
48+
.unwrap_or_else(|| BitReversalKernel::new(indices))
5149
}
5250

5351
#[derive(Debug)]

src/kernel/generic.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,29 @@
1515
use super::{Kernel, KernelCreationParams, KernelParams, KernelType, SliceAccessor};
1616

1717
use num_complex::Complex;
18-
use num_traits::{Zero, One};
1918
use num_iter::range_step;
19+
use num_traits::{One, Zero};
2020

21-
use super::super::{Num, complex_from_slice};
22-
21+
use super::super::{complex_from_slice, Num};
2322

2423
pub fn new_generic_kernel<T: 'static>(cparams: &KernelCreationParams) -> Box<Kernel<T>>
2524
where
2625
T: Num,
2726
{
28-
2927
let full_circle = if cparams.inverse { 2 } else { -2 };
3028
let twiddle_delta = Complex::new(
3129
Zero::zero(),
32-
T::from(cparams.size / cparams.radix / cparams.unit).unwrap() *
33-
T::from(full_circle).unwrap() * T::PI() /
34-
T::from(cparams.size).unwrap(),
35-
).exp();
30+
T::from(cparams.size / cparams.radix / cparams.unit).unwrap()
31+
* T::from(full_circle).unwrap()
32+
* T::PI()
33+
/ T::from(cparams.size).unwrap(),
34+
)
35+
.exp();
3636
let coef_delta = Complex::new(
3737
Zero::zero(),
3838
T::from(full_circle).unwrap() * T::PI() / T::from(cparams.radix).unwrap(),
39-
).exp();
39+
)
40+
.exp();
4041

4142
match cparams.kernel_type {
4243
KernelType::Dit => Box::new(GenericDitKernel {

src/kernel/generic2.rs

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
//! According to a benchmark result, this kernel runs about 10x slower than a commercial-level FFT library on a Skylake
1414
//! machine.
1515
16+
use super::utils::{branch_on_static_params, StaticParams, StaticParamsConsumer};
1617
use super::{Kernel, KernelCreationParams, KernelParams, KernelType, SliceAccessor};
17-
use super::utils::{StaticParams, StaticParamsConsumer, branch_on_static_params};
1818

1919
use num_complex::Complex;
20-
use num_traits::{Zero, One};
2120
use num_iter::range_step;
21+
use num_traits::{One, Zero};
2222

23-
use super::super::{Num, mul_pos_i};
23+
use super::super::{mul_pos_i, Num};
2424

2525
use std::fmt::Debug;
2626
use std::marker::PhantomData;
@@ -29,8 +29,12 @@ pub fn new_specialized_generic_kernel<T>(cparams: &KernelCreationParams) -> Opti
2929
where
3030
T: Num,
3131
{
32-
33-
branch_on_static_params(cparams, Factory::<T> { phantom: PhantomData })
32+
branch_on_static_params(
33+
cparams,
34+
Factory::<T> {
35+
phantom: PhantomData,
36+
},
37+
)
3438
}
3539

3640
struct Factory<T> {
@@ -46,32 +50,37 @@ impl<T: Num> StaticParamsConsumer<Option<Box<Kernel<T>>>> for Factory<T> {
4650
TSParams: StaticParams,
4751
T: Num,
4852
{
49-
5053
let full_circle = if cparams.inverse { 2 } else { -2 };
5154
let twiddle_delta = Complex::new(
5255
Zero::zero(),
53-
T::from(cparams.size / cparams.radix / cparams.unit).unwrap() *
54-
T::from(full_circle).unwrap() * T::PI() /
55-
T::from(cparams.size).unwrap(),
56-
).exp();
56+
T::from(cparams.size / cparams.radix / cparams.unit).unwrap()
57+
* T::from(full_circle).unwrap()
58+
* T::PI()
59+
/ T::from(cparams.size).unwrap(),
60+
)
61+
.exp();
5762

5863
match cparams.radix {
59-
2 => Some(Box::new(
60-
SpecializedGenericDitKernel::<T, SmallFFT2<T>, TSParams> {
61-
cparams: *cparams,
62-
twiddle_delta: twiddle_delta,
63-
small_fft: PhantomData,
64-
sparams: sparams,
65-
},
66-
)),
67-
4 => Some(Box::new(
68-
SpecializedGenericDitKernel::<T, SmallFFT4<T>, TSParams> {
69-
cparams: *cparams,
70-
twiddle_delta: twiddle_delta,
71-
small_fft: PhantomData,
72-
sparams: sparams,
73-
},
74-
)),
64+
2 => Some(Box::new(SpecializedGenericDitKernel::<
65+
T,
66+
SmallFFT2<T>,
67+
TSParams,
68+
> {
69+
cparams: *cparams,
70+
twiddle_delta: twiddle_delta,
71+
small_fft: PhantomData,
72+
sparams: sparams,
73+
})),
74+
4 => Some(Box::new(SpecializedGenericDitKernel::<
75+
T,
76+
SmallFFT4<T>,
77+
TSParams,
78+
> {
79+
cparams: *cparams,
80+
twiddle_delta: twiddle_delta,
81+
small_fft: PhantomData,
82+
sparams: sparams,
83+
})),
7584
_ => None,
7685
}
7786
}
@@ -202,14 +211,15 @@ struct SpecializedGenericDitKernel<T, TSmallFFT, TSParams> {
202211
}
203212

204213
impl<T, TSmallFFT, TSParams> Kernel<T> for SpecializedGenericDitKernel<T, TSmallFFT, TSParams>
205-
where T : Num,
206-
TSmallFFT : SmallFFT<T>,
207-
TSParams : StaticParams {
208-
214+
where
215+
T: Num,
216+
TSmallFFT: SmallFFT<T>,
217+
TSParams: StaticParams,
218+
{
209219
fn transform(&self, params: &mut KernelParams<T>) {
210220
let cparams = &self.cparams;
211221
let sparams = &self.sparams;
212-
let mut data = unsafe { SliceAccessor::new(&mut params.coefs[0 .. cparams.size * 2]) };
222+
let mut data = unsafe { SliceAccessor::new(&mut params.coefs[0..cparams.size * 2]) };
213223

214224
let twiddle_delta = self.twiddle_delta;
215225
let mut small_fft = TSmallFFT::default();
@@ -222,7 +232,7 @@ impl<T, TSmallFFT, TSParams> Kernel<T> for SpecializedGenericDitKernel<T, TSmall
222232

223233
for x in range_step(0, cparams.size, cparams.unit * radix) {
224234
let mut twiddle_1: Complex<T> = Complex::one();
225-
for y in 0 .. cparams.unit {
235+
for y in 0..cparams.unit {
226236
small_fft.load(&data, (x + y) * 2, cparams.unit * 2);
227237

228238
if pre_twiddle {

src/kernel/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
// This source code is a part of Nightingales.
55
//
66
mod accessor;
7-
mod convert;
87
mod bitreversal;
8+
mod convert;
99
mod generic;
1010
mod generic2;
1111
mod realfft;
@@ -31,8 +31,8 @@ mod x86 {
3131
}
3232
}
3333

34-
use std::fmt::Debug;
3534
use super::Num;
35+
use std::fmt::Debug;
3636

3737
use self::accessor::SliceAccessor;
3838

src/kernel/realfft.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//
66
use super::{Kernel, KernelParams, SliceAccessor};
77

8-
use {mul_pos_i, Num, Complex};
8+
use {mul_pos_i, Complex, Num};
99

1010
/// Creates a real FFT post-processing or backward real FFT pre-processing kernel.
1111
pub fn new_real_fft_pre_post_process_kernel<T>(len: usize, inverse: bool) -> Box<Kernel<T>>
@@ -33,7 +33,8 @@ where
3333
let c = Complex::new(
3434
T::zero(),
3535
T::from(i).unwrap() * -T::PI() / T::from(len / 2).unwrap(),
36-
).exp();
36+
)
37+
.exp();
3738

3839
let a = (Complex::new(T::one(), T::zero()) - mul_pos_i(c)) * half;
3940
let b = (Complex::new(T::one(), T::zero()) + mul_pos_i(c)) * half;

src/kernel/utils.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
//
44
// This source code is a part of Nightingales.
55
//
6-
use super::{Kernel, KernelType, KernelCreationParams, KernelParams};
7-
use std::{fmt, ptr};
6+
use super::{Kernel, KernelCreationParams, KernelParams, KernelType};
87
use std::any::Any;
8+
use std::{fmt, ptr};
99

1010
pub trait StaticParams: fmt::Debug + 'static + Sync + Send {
1111
fn inverse(&self) -> bool;
@@ -77,7 +77,6 @@ pub fn branch_on_static_params<F, T>(cparams: &KernelCreationParams, f: F) -> T
7777
where
7878
F: StaticParamsConsumer<T>,
7979
{
80-
8180
match (cparams.kernel_type, cparams.inverse) {
8281
(KernelType::Dit, false) => f.consume(cparams, StaticParamsDitForward {}),
8382
(KernelType::Dif, false) => f.consume(cparams, StaticParamsDifForward {}),

0 commit comments

Comments
 (0)