rust-math/fftw

Buffer: in-place transformation

termoshtt opened this issue · 2 comments

Plan-based implementation in FFTW is unconformable with the borrow checker in Rust since fftw_execute(plan) modify in/out arrays.
The transformation in FFTW has two types: in-place and out-place. Current implementation using Pair corresponding to out-place conversion.
I will implement in-place by Buffer struct.

High-level interface (Pair, Buffer) and lower level interface (Plan, RawVec) should be treated separately. This lower-level interface is almost-safe, i.e. Plan::execute is not safe due to design of FFTW. To create safe wrapper of this have to include design issue, which has various resolution. This crate should keep this variety, and thus expose almost-safe interface with documents #19 .

Pair/Buffer interface will be removed in new-array execution interface