mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Added a ScopedNoDenormal class to temporarily disable denormals
This commit is contained in:
parent
71d10e750a
commit
e2c8e30d72
10 changed files with 73 additions and 5 deletions
|
|
@ -166,6 +166,23 @@
|
|||
#define JUCE_DSP_USE_STATIC_FFTW 0
|
||||
#endif
|
||||
|
||||
/** Config: JUCE_DSP_ENABLE_SNAP_TO_ZERO
|
||||
|
||||
Enables code in the dsp module to avoid floating point denormals during the
|
||||
processing of some of the dsp module's filters.
|
||||
|
||||
Enabling this will add a slight performance overhead to the DSP module's
|
||||
filters and algorithms. If your audio app already disables denormals altogether
|
||||
(for exmaple, by using the ScopedNoDenormals class or the
|
||||
FloatVectorOperations::disableDenormalisedNumberSupport method), then you
|
||||
can safely disable this flag to shave off a few cpu cycles from the DSP module's
|
||||
filters and algorithms.
|
||||
*/
|
||||
#ifndef JUCE_DSP_ENABLE_SNAP_TO_ZERO
|
||||
#define JUCE_DSP_ENABLE_SNAP_TO_ZERO 1
|
||||
#endif
|
||||
|
||||
|
||||
//==============================================================================
|
||||
#undef Complex // apparently some C libraries actually define these symbols (!)
|
||||
#undef Factor
|
||||
|
|
@ -185,11 +202,19 @@ namespace juce
|
|||
|
||||
This function will work with both primitives and simple containers.
|
||||
*/
|
||||
#if JUCE_DSP_ENABLE_SNAP_TO_ZERO
|
||||
inline void snapToZero (float& x) noexcept { JUCE_SNAP_TO_ZERO (x); }
|
||||
#ifndef DOXYGEN
|
||||
inline void snapToZero (double& x) noexcept { JUCE_SNAP_TO_ZERO (x); }
|
||||
inline void snapToZero (long double& x) noexcept { JUCE_SNAP_TO_ZERO (x); }
|
||||
#endif
|
||||
#else
|
||||
inline void snapToZero (float& x) noexcept { ignoreUnused (x); }
|
||||
#ifndef DOXYGEN
|
||||
inline void snapToZero (double& x) noexcept { ignoreUnused (x); }
|
||||
inline void snapToZero (long double& x) noexcept { ignoreUnused (x); }
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue