HART  0.1.0
High level Audio Regression and Testing
Loading...
Searching...
No Matches
hart_units.hpp
Go to the documentation of this file.
1#pragma once
2
3// Define this macro if those literals clash with existing ones in your codebase
4#ifndef HART_DO_NOT_ADD_UNITS
5
6#include "hart_utils.hpp" // pi
7
8/// @defgroup Units Units
9/// @brief Better readability
10/// @{
11
12constexpr double inf_dB = hart::inf;
13constexpr double oo_dB = hart::inf;
14constexpr double pi_rad = hart::pi;
15constexpr double twoPi_rad = hart::twoPi;
16constexpr double halfPi_rad = hart::halfPi;
17
18constexpr double operator"" _s (long double val) { return static_cast<double> (val); }
19constexpr double operator"" _s (unsigned long long int val) { return static_cast<double> (val); }
20constexpr double operator"" _ms (long double val) { return static_cast<double> (1e-3 * val); }
21constexpr double operator"" _ms (unsigned long long int val) { return static_cast<double> (1e-3 * val); }
22constexpr double operator"" _us (long double val) { return static_cast<double> (1e-6 * val); }
23constexpr double operator"" _us (unsigned long long int val) { return static_cast<double> (1e-6 * val); }
24constexpr double operator"" _dB (long double val) { return static_cast<double> (val); }
25constexpr double operator"" _dB (unsigned long long int val) { return static_cast<double> (val); }
26constexpr double operator"" _Hz (long double val) { return static_cast<double> (val); }
27constexpr double operator"" _Hz (unsigned long long int val) { return static_cast<double> (val); }
28constexpr double operator"" _kHz (long double val) { return static_cast<double> (1e3 * val); }
29constexpr double operator"" _kHz (unsigned long long val) { return static_cast<double> (1e3 * val); }
30constexpr double operator"" _rad (long double val) { return static_cast<double> (val); }
31constexpr double operator"" _rad (unsigned long long val) { return static_cast<double>(val); }
32constexpr double operator"" _deg (long double val) { return static_cast<double> (val * hart::pi / 180.0); }
33constexpr double operator"" _deg (unsigned long long val) { return static_cast<double>(val) * hart::pi / 180.0; }
34
35/// @}
36
37#endif // HART_DO_NOT_ADD_UNITS
constexpr double oo_dB
constexpr double operator""_us(unsigned long long int val)
constexpr double operator""_kHz(unsigned long long val)
constexpr double halfPi_rad
constexpr double twoPi_rad
constexpr double operator""_Hz(unsigned long long int val)
constexpr double operator""_s(long double val)
constexpr double operator""_dB(unsigned long long int val)
constexpr double operator""_rad(long double val)
constexpr double operator""_s(unsigned long long int val)
constexpr double operator""_ms(unsigned long long int val)
constexpr double operator""_dB(long double val)
constexpr double pi_rad
constexpr double operator""_deg(long double val)
constexpr double operator""_kHz(long double val)
constexpr double operator""_deg(unsigned long long val)
constexpr double operator""_us(long double val)
constexpr double operator""_rad(unsigned long long val)
constexpr double operator""_Hz(long double val)
constexpr double operator""_ms(long double val)
constexpr double inf_dB
constexpr double twoPi
2 * pi
constexpr double halfPi
pi / 2
constexpr double inf
Infinity.
constexpr double pi
pi