Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::MultiBackendFft Class Reference

Multi-backend FFT. More...

#include <fft_backend.hpp>

Public Member Functions

 MultiBackendFft (int size, FftBackend backend=FftBackend::auto_)
 Construct for a given power-of-2 size.
 ~MultiBackendFft ()
 MultiBackendFft (const MultiBackendFft &)=delete
MultiBackendFft & operator= (const MultiBackendFft &)=delete
 MultiBackendFft (MultiBackendFft &&) noexcept
MultiBackendFft & operator= (MultiBackendFft &&) noexcept
int size () const noexcept
FftBackend backend () const noexcept
void forward (std::complex< float > *data) const
 Forward complex FFT (in-place).
void inverse (std::complex< float > *data) const
 Inverse complex FFT (in-place), normalized by 1/N.

Detailed Description

Multi-backend FFT.

Pinned at construction to a single backend so the audio thread never has to branch on backend selection during process().

RT contract: construction/destruction and backend availability probes may load libraries, allocate plans, or throw, so run them off the audio thread. forward(), inverse(), size(), and backend() are allocation-free after construction when callers provide a valid buffer.

Constructor & Destructor Documentation

◆ MultiBackendFft() [1/3]

pulp::signal::MultiBackendFft::MultiBackendFft ( int size,
FftBackend backend = FftBackend::auto_ )
explicit

Construct for a given power-of-2 size.

backend=auto_ picks via resolve_fft_backend(). Throws std::invalid_argument if size is not a power of two, or std::runtime_error if the requested backend cannot be initialized.

◆ ~MultiBackendFft()

pulp::signal::MultiBackendFft::~MultiBackendFft ( )

◆ MultiBackendFft() [2/3]

pulp::signal::MultiBackendFft::MultiBackendFft ( const MultiBackendFft & )
delete

◆ MultiBackendFft() [3/3]

pulp::signal::MultiBackendFft::MultiBackendFft ( MultiBackendFft && )
noexcept

Member Function Documentation

◆ backend()

FftBackend pulp::signal::MultiBackendFft::backend ( ) const
noexcept

◆ forward()

void pulp::signal::MultiBackendFft::forward ( std::complex< float > * data) const

Forward complex FFT (in-place).

◆ inverse()

void pulp::signal::MultiBackendFft::inverse ( std::complex< float > * data) const

Inverse complex FFT (in-place), normalized by 1/N.

◆ operator=() [1/2]

MultiBackendFft & pulp::signal::MultiBackendFft::operator= ( const MultiBackendFft & )
delete

◆ operator=() [2/2]

MultiBackendFft & pulp::signal::MultiBackendFft::operator= ( MultiBackendFft && )
noexcept

◆ size()

int pulp::signal::MultiBackendFft::size ( ) const
noexcept

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/fft_backend.hpp