xtensor-stack / xtensor-fftw

FFTW bindings for the xtensor C++14 multi-dimensional array library
BSD 3-Clause "New" or "Revised" License
47 stars 16 forks source link

Implement high performance interface #7

Open egpbos opened 7 years ago

egpbos commented 7 years ago

The simple numpy-style interface (#6) will by default hide some of FFTW's features, opting for simplicity and default settings for decent performance. We will also implement a high performance interface to access functions like

egpbos commented 7 years ago

When implementing this, keep in mind that many FFTW functions destroy input and/or output arrays! E.g. FFTW_MEASURE destroys both during measurement, c2r functions always destroy input by default (unless for 1D transforms if you pass FFTW_PRESERVE_INPUT), etc. More info: http://www.fftw.org/fftw3_doc/Complex-One_002dDimensional-DFTs.html#Complex-One_002dDimensional-DFTs

ghost commented 5 years ago

do you plan to implement multi-threaded FFTW in the future?

egpbos commented 5 years ago

@cuber12 yes, in time, for sure. I'm using multithreaded FFTW in barcode. My plan is to migrate that code to xtensor and use xtensor-fftw for FFTW. At that point, I will have to optimize xtensor-fftw. However, in the mean time, if you already need it now, please feel free to make a PR for it. FFTW is not difficult to use in multithreaded mode. I just didn't think about how to integrate that into xtensor-fftw nicely. If you have ideas on that, I'd also love to hear them. Preferably start a separate issue for that.