35 std::same_as<float, std::remove_cvref_t<T>> ||
36 std::same_as<double, std::remove_cvref_t<T>> ||
37 std::same_as<simd, std::remove_cvref_t<T>>;
39 template<CFloatOrSIMD T>
46 if constexpr (std::same_as<T, simd>)
48 static const T
ln10div20(std::numbers::ln10_v<float> * 0.05f);
53 static constexpr T
ln10div20 = std::numbers::ln10_v<T> * T(0.05);
58 template<CFloatOrSIMD T>
62 if constexpr (std::same_as<T, simd>)
64 static const T
ln10div10 = std::numbers::ln10_v<float> * 0.1f;
69 static const T
ln10div10 = std::numbers::ln10_v<T> * T(0.1);
74 template<CFloatOrSIMD T>
77 if constexpr (std::same_as<T, simd>)
80 return static_cast<T
>(-20.0) * std::log10(
gainFactor);
83 template<CFloatOrSIMD T>
86 if constexpr (std::same_as<T, simd>)
Definition DecibelsAndGain.h:34
Definition AcousticMaterial.h:36
simd exp(simd x) noexcept
Exponent for 4-wide 32-bit float vector.
Definition SIMDMath.h:298
JPL_INLINE T dBToGain(const T &dB) noexcept
Definition DecibelsAndGain.h:40
JPL_INLINE constexpr T IntencityTodB(const T &intencityFactor) noexcept
Definition DecibelsAndGain.h:84
JPL_INLINE T dBToIntencity(const T &dB) noexcept
Definition DecibelsAndGain.h:59
JPL_INLINE T GainTodB(const T &gainFactor) noexcept
Definition DecibelsAndGain.h:75
JPL_INLINE simd min(const simd &a, const simd &b) noexcept
Element-wise min.
Definition SIMD.h:1813
JPL_INLINE simd log10(const simd &vec) noexcept
log10 for 4-wide 32-bit float vector
Definition SIMDMath.h:241