A fixed number of equal-length spectra in one contiguous, 64-byte-aligned block, each starting on a 64-byte boundary. More...
#include <convolver_messages.hpp>
Public Types | |
| using | value_type = std::complex<SampleType> |
Public Member Functions | |
| ConvolverSpectrumArenaT ()=default | |
| ConvolverSpectrumArenaT (std::size_t count, std::size_t bins) | |
| ConvolverSpectrumArenaT (const ConvolverSpectrumArenaT &)=delete | |
| ConvolverSpectrumArenaT & | operator= (const ConvolverSpectrumArenaT &)=delete |
| ConvolverSpectrumArenaT (ConvolverSpectrumArenaT &&) noexcept=default | |
| ConvolverSpectrumArenaT & | operator= (ConvolverSpectrumArenaT &&) noexcept=default |
| void | assign (std::size_t count, std::size_t bins) |
| Allocate count zeroed spectra of bins values each. | |
| std::size_t | size () const noexcept |
| bool | empty () const noexcept |
| std::size_t | bins () const noexcept |
| std::size_t | stride () const noexcept |
| std::size_t | footprint_bytes () const noexcept |
| Bytes this arena holds, including its alignment slack. | |
| std::span< value_type > | operator[] (std::size_t i) noexcept |
| std::span< const value_type > | operator[] (std::size_t i) const noexcept |
| void | fill_zero () noexcept |
| Zero every spectrum. Allocation-free. | |
Static Public Member Functions | |
| static constexpr std::size_t | stride_for (std::size_t bins) noexcept |
| Distance between consecutive spectra in value_types: bins rounded up to a whole number of 64-byte lines. | |
A fixed number of equal-length spectra in one contiguous, 64-byte-aligned block, each starting on a 64-byte boundary.
The partitioned convolver keeps its IR partition spectra and its input history in these. One block per set keeps the per-block multiply-accumulate walking a compact address range: separately allocated spectra, or spectra padded to the full FFT width, spread the same data over twice the memory, which costs most when several convolvers run side by side.
operator[] returns a span of bins() values. Allocation happens only in the sizing constructor and assign(); everything else is allocation-free.
| using pulp::signal::ConvolverSpectrumArenaT< SampleType >::value_type = std::complex<SampleType> |
|
default |
|
inline |
|
delete |
|
defaultnoexcept |
|
inline |
Allocate count zeroed spectra of bins values each.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Zero every spectrum. Allocation-free.
|
inlinenoexcept |
Bytes this arena holds, including its alignment slack.
|
delete |
|
defaultnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinestaticconstexprnoexcept |
Distance between consecutive spectra in value_types: bins rounded up to a whole number of 64-byte lines.