Trait realfft::RealToComplex
source · pub trait RealToComplex<T>: Sync + Send {
// Required methods
fn process(
&self,
input: &mut [T],
output: &mut [Complex<T>]
) -> Result<(), FftError>;
fn process_with_scratch(
&self,
input: &mut [T],
output: &mut [Complex<T>],
scratch: &mut [Complex<T>]
) -> Result<(), FftError>;
fn get_scratch_len(&self) -> usize;
fn len(&self) -> usize;
fn make_input_vec(&self) -> Vec<T>;
fn make_output_vec(&self) -> Vec<Complex<T>>;
fn make_scratch_vec(&self) -> Vec<Complex<T>>;
// Provided method
fn complex_len(&self) -> usize { ... }
}
Expand description
A forward FFT that takes a real-valued input signal of length N and transforms it to a complex spectrum of length N/2+1.
Required Methods§
sourcefn process(
&self,
input: &mut [T],
output: &mut [Complex<T>]
) -> Result<(), FftError>
fn process( &self, input: &mut [T], output: &mut [Complex<T>] ) -> Result<(), FftError>
Transform a signal of N real-valued samples, storing the resulting complex spectrum in the N/2+1 (with N/2 rounded down) element long output slice. The input buffer is used as scratch space, so the contents of input should be considered garbage after calling. It also allocates additional scratch space as needed. An error is returned if any of the given slices has the wrong length.
sourcefn process_with_scratch(
&self,
input: &mut [T],
output: &mut [Complex<T>],
scratch: &mut [Complex<T>]
) -> Result<(), FftError>
fn process_with_scratch( &self, input: &mut [T], output: &mut [Complex<T>], scratch: &mut [Complex<T>] ) -> Result<(), FftError>
Transform a signal of N real-valued samples,
similar to process()
.
The difference is that this method uses the provided
scratch buffer instead of allocating new scratch space.
This is faster if the same scratch buffer is used for multiple calls.
sourcefn get_scratch_len(&self) -> usize
fn get_scratch_len(&self) -> usize
Get the minimum length of the scratch buffer needed for process_with_scratch
.
sourcefn len(&self) -> usize
fn len(&self) -> usize
The FFT length. Get the length of the real signal that this FFT takes as input.
sourcefn make_input_vec(&self) -> Vec<T>
fn make_input_vec(&self) -> Vec<T>
Convenience method to make an input vector of the right type and length.
sourcefn make_output_vec(&self) -> Vec<Complex<T>>
fn make_output_vec(&self) -> Vec<Complex<T>>
Convenience method to make an output vector of the right type and length.
sourcefn make_scratch_vec(&self) -> Vec<Complex<T>>
fn make_scratch_vec(&self) -> Vec<Complex<T>>
Convenience method to make a scratch vector of the right type and length.
Provided Methods§
sourcefn complex_len(&self) -> usize
fn complex_len(&self) -> usize
Get the number of complex data points that this FFT returns.