EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
Loading...
Searching...
No Matches
FFTWBuffers.hpp
Go to the documentation of this file.
1
9
10#ifndef ECHOMAP_FFTWBUFFERS_HPP
11#define ECHOMAP_FFTWBUFFERS_HPP
12
13#include <cstddef>
14#include <optional>
15#include <span>
16
17namespace echomap
18{
19
27{
28 using fftwf_complex_fwd = float[2];
29
30public:
31 fftwf_complex_fwd* const coefficients;
32 float* input;
34
47 explicit FFTWBuffers(
48 std::size_t size,
49 const std::optional<std::span<const float>>& inplace_input
50 );
51
55 ~FFTWBuffers() noexcept;
56
57private:
59};
60
61} // namespace echomap
62
63#endif // ECHOMAP_FFTWBUFFERS_HPP
~FFTWBuffers() noexcept
Deallocate the buffers.
bool is_input_managed
Are we responsible for the input buffer?
FFTWBuffers(std::size_t size, const std::optional< std::span< const float > > &inplace_input)
Setup contextual buffers for FFTW.
std::size_t input_size
Size of the input vector.
fftwf_complex_fwd *const coefficients
Complex coefficients (output of real-to-complex FFT).
float * input
Real-valued inputs, either managed by us or aliased by the user.
The main EchoMap outermost namespace for all non-exported symbols.