Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A rough implementation of FFT #2637

Merged
merged 15 commits into from
Jul 13, 2020
Merged

A rough implementation of FFT #2637

merged 15 commits into from
Jul 13, 2020

Conversation

pleroy
Copy link
Member

@pleroy pleroy commented Jul 11, 2020

Will be useful for #2400.


// This class computes Fourier[{...}, FourierParameters -> {1, -1}] in
// Mathematica notation. (The "signal processing" Fourier transform.)
template<typename Container, int size_>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not use Container outside the constructors: templatize on Scalar instead, templatize the constructors.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Template parameter sizes that interact with containers have to be std::size_t, otherwise deductions break down.

Sorry, something went wrong.

// in C++, Dr. Dobbs, 2007.

template<int array_size_, int chunk_size_ = array_size_>
class DanielsonLánczos {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class could use a comment (and maybe a citation of Some improvements in practical Fourier analysis and their application to X-ray scattering from liquids).

Shouldn’t we have the names of Cooley and Tukey somewhere as well?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added stuff to the bibliography. Cooley-Tukey (🆒🦃) is for any length (with small prime factors). Danielson-Lánczos is for powers of 2.

@eggrobin eggrobin added the LGTM label Jul 13, 2020
@pleroy pleroy merged commit 9bb3310 into mockingbirdnest:master Jul 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants