mul_db.h 475 B

12345678910111213141516171819202122232425262728
  1. #ifndef MUL_DB
  2. #define MUL_DB
  3. #include <math.h>
  4. #ifdef _MSC_VER
  5. #include <float.h>
  6. #pragma warning(push)
  7. #pragma warning(disable : 4056)
  8. #pragma warning(disable : 4756)
  9. #endif
  10. static inline float mul_to_db(const float mul)
  11. {
  12. return (mul == 0.0f) ? -INFINITY : (20.0f * log10f(mul));
  13. }
  14. static inline float db_to_mul(const float db)
  15. {
  16. return isfinite((double) db) ? powf(10.0f, db / 20.0f) : 0.0f;
  17. }
  18. #ifdef _MSC_VER
  19. #pragma warning(pop)
  20. #endif
  21. #endif // !MUL_DB