Update to rustfft 6.0 and Rust 2018 edition#1
Merged
Conversation
This also adds explicit zero-padding of the input/output buffer to ensure that previous calculations don't "spill over".
In addition, the FFT calculation is now performed twice to ensure that the shared input/output buffer does not affect future calculations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Heya! When I tried to use stft from crates.io it failed with an error related to
nalgebra-0.5. I poked around in the forks and found YoshieraHuang/stft which adds some modernizations on which this PR is based:STFT::new_with_zero_padding()(via YoshieraHuang@3695eb8)The latter commit allows
cargo benchandcargo criterionto be run with stable Rust.From there, I updated the
Cargo.tomlto useedition = "2018"and updated the dependencies torustfft = "6.0",num = "0.4"andapodize = "1.0". I made sure to sanitize the code using rustfmt and Clippy.The newer rustfft version appears to do FFT in-place now, but has support for an externally allocated scratch buffer. I added this to the
STFTstruct - the benchmarks indicate a slight performance increase with that change.The existing integration tests were lacking an assertion to actually ensure the correct results are calculated. I added a dev dependency on
approx = "0.5"to do perform said comparisons; the calculations are now also performed twice to ensure that a call tocompute_column()does notcorrupt the internal state.
This duplicates snd#6 as a merge into my own fork of the repo.