28#ifndef PULP_DSP_ENABLE_SNAP_TO_ZERO
29#define PULP_DSP_ENABLE_SNAP_TO_ZERO 1
46#if PULP_DSP_ENABLE_SNAP_TO_ZERO
75#if defined(__aarch64__) || defined(_M_ARM64)
94#if PULP_DSP_ENABLE_SNAP_TO_ZERO
95 for (
int i = 0;
i < n; ++
i)
139 explicit constexpr SnapChunks(std::size_t num_samples) noexcept : size_(num_samples) {}
144 : begin_(
begin), size_(size) {}
154 return begin_ != other.begin_;
166 return {size_, size_};
181 return x != T(0) && std::fpclassify(x) == FP_SUBNORMAL;
Definition denormal.hpp:141
constexpr iterator & operator++() noexcept
Definition denormal.hpp:149
constexpr bool operator!=(const iterator &other) const noexcept
Definition denormal.hpp:153
constexpr iterator(std::size_t begin, std::size_t size) noexcept
Definition denormal.hpp:143
constexpr SnapChunk operator*() const noexcept
Definition denormal.hpp:145
The chunks of [0, num_samples), consecutive and at most kSnapChunkSamples long, as a range.
Definition denormal.hpp:137
constexpr SnapChunks(std::size_t num_samples) noexcept
Definition denormal.hpp:139
constexpr iterator end() const noexcept
Definition denormal.hpp:165
constexpr iterator begin() const noexcept
Definition denormal.hpp:162
Definition additive_bank.hpp:218
constexpr T snap_threshold()
Threshold in absolute value below which a sample is treated as zero.
Definition denormal.hpp:36
constexpr std::size_t kSnapChunkSamples
Samples a block path runs between denormal snaps of its recursive state.
Definition denormal.hpp:113
constexpr bool kSubnormalsAreFree
Whether subnormal arithmetic runs at full speed on this target.
Definition denormal.hpp:74
T snap_to_zero(T x)
Returns 0 if |x| < snap_threshold, else x.
Definition denormal.hpp:45
@ i
Definition formant_filter_bank.hpp:20
@ e
Definition formant_filter_bank.hpp:20
bool is_denormal(T x)
Return true if x is a denormal (subnormal) float.
Definition denormal.hpp:180
constexpr SnapChunks snap_chunks(std::size_t num_samples) noexcept
Definition denormal.hpp:173
T snap_recursion_state(T x)
Snap a per-sample recursion's state: snap_to_zero() where subnormals are slow, the identity where kSu...
Definition denormal.hpp:84
One chunk of a block: samples [begin, end).
Definition denormal.hpp:116
std::size_t end
Definition denormal.hpp:118
std::size_t begin
Definition denormal.hpp:117