Audio Processing Framework (APF) version 0.5.0
Classes | Functions
apf::conv Namespace Reference

Convolution engine. More...

Classes

struct  Convolver
 Combination of Input and Output. More...
 
struct  fft_node
 Two blocks of time-domain or FFT (half-complex) data. More...
 
struct  Filter
 Container holding a number of FFT blocks. More...
 
struct  Input
 Input stage of convolution. More...
 
class  Output
 Convolution engine (output part). More...
 
class  OutputBase
 Base class for Output and StaticOutput. More...
 
struct  StaticConvolver
 Combination of Input and StaticOutput. More...
 
class  StaticOutput
 Convolver output stage with static filter. More...
 
struct  Transform
 Helper class to prepare filters. More...
 
class  TransformBase
 Forward-FFT-related functions. More...
 

Functions

static size_t min_partitions (size_t block_size, size_t filter_size)
 Calculate necessary number of partitions for a given filter length. More...
 
template<typename BinaryFunction >
void transform_nested (const Filter &in1, const Filter &in2, Filter &out, BinaryFunction f)
 Apply std::transform to a container of fft_nodes. More...
 

Detailed Description

Convolution engine.

A convolution engine normally consists of an Input, a Filter and an Output / StaticOutput. There are also combinations: Input + Output = Convolver; Input + StaticOutput = StaticConvolver

Uses (uniformly) partitioned convolution.

TODO: describe thread (un)safety

Function Documentation

◆ min_partitions()

static size_t apf::conv::min_partitions ( size_t  block_size,
size_t  filter_size 
)
static

Calculate necessary number of partitions for a given filter length.

Definition at line 63 of file convolver.h.

◆ transform_nested()

template<typename BinaryFunction >
void apf::conv::transform_nested ( const Filter in1,
const Filter in2,
Filter out,
BinaryFunction  f 
)

Apply std::transform to a container of fft_nodes.

Definition at line 792 of file convolver.h.