Update to rustfft 6.0 and Rust 2018 edition#6
Open
sunsided wants to merge 13 commits intosnd:masterfrom
Open
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.
2542bda to
bc09103
Compare
|
It seems like the author has abandoned this project, @sunsided would you be able to release your version under a new name on crates.io to ensure that it has a working build? Maybe it could be called |
Author
|
@rohansatapathy Will do. I've reached out to @snd by mail first to see if he can add me as a maintainer, too. In that case we don't require the parallel crates. |
Author
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.