commit 39488b84529284914cf4956fd8634f7c77d78f13
parent c7ab7d558dce1b89576a08f99df9b7beceebf7cc
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date: Tue, 18 Dec 2018 21:17:12 +0000
Fix amp_to_dB
Diffstat:
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/include/kfr/dsp/units.hpp b/include/kfr/dsp/units.hpp
@@ -27,6 +27,7 @@
#include "../base/basic_expressions.hpp"
#include "../base/log_exp.hpp"
+#include "../base/abs.hpp"
#include "../base/vec.hpp"
namespace kfr
@@ -39,7 +40,7 @@ namespace intrinsics
template <typename T, typename TF = flt_type<T>>
KFR_SINTRIN TF amp_to_dB(const T& amp)
{
- return log(static_cast<TF>(amp)) * subtype<TF>(8.6858896380650365530225783783322);
+ return log(static_cast<TF>(abs(amp))) * subtype<TF>(8.6858896380650365530225783783322);
// return T( 20.0 ) * log10( level );
}
@@ -53,7 +54,7 @@ KFR_SINTRIN TF dB_to_amp(const T& dB)
template <typename T, typename TF = flt_type<T>>
KFR_SINTRIN TF amp_to_dB(const T& amp, const T& offset)
{
- return log_fmadd(amp, subtype<TF>(8.6858896380650365530225783783322), offset);
+ return log_fmadd(static_cast<TF>(abs(amp)), subtype<TF>(8.6858896380650365530225783783322), offset);
// return T( 20.0 ) * log10( level );
}
@@ -68,7 +69,7 @@ KFR_SINTRIN TF dB_to_amp(const T& dB, const T& offset)
template <typename T, typename Tout = flt_type<T>>
KFR_SINTRIN Tout power_to_dB(const T& x)
{
- return log(x) * (10 * c_recip_log_10<Tout>);
+ return log(static_cast<Tout>(abs(x))) * (10 * c_recip_log_10<Tout>);
}
template <typename T, typename Tout = flt_type<T>>