Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::detail::FftRealSplit Struct Reference

The packed split-complex form of a real transform, for Pulp's own frequency-domain stages (the overlap-add ConvolverT). More...

#include <fft.hpp>

Static Public Member Functions

template<typename SampleType>
static void forward (const FftT< SampleType > &fft, const SampleType *input, SampleType *re, SampleType *im, SampleType scale)
template<typename SampleType>
static void inverse (const FftT< SampleType > &fft, const SampleType *re, const SampleType *im, SampleType *output, SampleType scale)

Detailed Description

The packed split-complex form of a real transform, for Pulp's own frequency-domain stages (the overlap-add ConvolverT).

re and im each hold size() / 2 values: re[0] is the DC bin and im[0] the Nyquist bin (both purely real), and re[k], im[k] for k = 1..N/2-1 are bin k, scaled as by forward_real_half(). It is the layout vDSP's real transform produces, so a stage that stays in it skips the interleave on the way in and out. Not public API: the partitioned engines keep interleaved bins, which their complex multiply-accumulate kernels run fastest on.

Member Function Documentation

◆ forward()

template<typename SampleType>
void pulp::signal::detail::FftRealSplit::forward ( const FftT< SampleType > & fft,
const SampleType * input,
SampleType * re,
SampleType * im,
SampleType scale )
inlinestatic

◆ inverse()

template<typename SampleType>
void pulp::signal::detail::FftRealSplit::inverse ( const FftT< SampleType > & fft,
const SampleType * re,
const SampleType * im,
SampleType * output,
SampleType scale )
inlinestatic

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