diff options
author | 2020-09-24 07:53:11 +0200 | |
---|---|---|
committer | 2020-09-24 15:22:22 +0200 | |
commit | 1bb99466bcfa188bca00855f80bd6098b0882419 (patch) | |
tree | 57b4b8d68d6efdeb18d424e4ef4a353a011d6fe8 /src/lib/netlist/plib/pmath.h | |
parent | 2fb9f38b83270cac34428738313cd2eee79f421e (diff) |
netlist: code refactoring
* use default move and copy constructors
* various minor edits like adding noexcept
* removed a lot of inline keywords - you can't beat the compiler
Diffstat (limited to 'src/lib/netlist/plib/pmath.h')
-rw-r--r-- | src/lib/netlist/plib/pmath.h | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/src/lib/netlist/plib/pmath.h b/src/lib/netlist/plib/pmath.h index 02d634529a0..01912dd2183 100644 --- a/src/lib/netlist/plib/pmath.h +++ b/src/lib/netlist/plib/pmath.h @@ -30,50 +30,50 @@ namespace plib template <typename T> struct constants { - static inline constexpr T zero() noexcept { return static_cast<T>(0); } // NOLINT - static inline constexpr T half() noexcept { return static_cast<T>(0.5); } // NOLINT - static inline constexpr T one() noexcept { return static_cast<T>(1); } // NOLINT - static inline constexpr T two() noexcept { return static_cast<T>(2); } // NOLINT - static inline constexpr T three() noexcept { return static_cast<T>(3); } // NOLINT - static inline constexpr T four() noexcept { return static_cast<T>(4); } // NOLINT - static inline constexpr T hundred()noexcept { return static_cast<T>(100); } // NOLINT - - static inline constexpr T one_thirds() noexcept { return fraction(one(), three()); } - static inline constexpr T two_thirds() noexcept { return fraction(two(), three()); } - - static inline constexpr T ln2() noexcept { return static_cast<T>(0.6931471805599453094172321214581766L); } // NOLINT - static inline constexpr T sqrt2() noexcept { return static_cast<T>(1.4142135623730950488016887242096982L); } // NOLINT - static inline constexpr T sqrt3() noexcept { return static_cast<T>(1.7320508075688772935274463415058723L); } // NOLINT - static inline constexpr T sqrt3_2() noexcept { return static_cast<T>(0.8660254037844386467637231707529362L); } // NOLINT - static inline constexpr T pi() noexcept { return static_cast<T>(3.1415926535897932384626433832795029L); } // NOLINT + static constexpr T zero() noexcept { return static_cast<T>(0); } // NOLINT + static constexpr T half() noexcept { return static_cast<T>(0.5); } // NOLINT + static constexpr T one() noexcept { return static_cast<T>(1); } // NOLINT + static constexpr T two() noexcept { return static_cast<T>(2); } // NOLINT + static constexpr T three() noexcept { return static_cast<T>(3); } // NOLINT + static constexpr T four() noexcept { return static_cast<T>(4); } // NOLINT + static constexpr T hundred()noexcept { return static_cast<T>(100); } // NOLINT + + static constexpr T one_thirds() noexcept { return fraction(one(), three()); } + static constexpr T two_thirds() noexcept { return fraction(two(), three()); } + + static constexpr T ln2() noexcept { return static_cast<T>(0.6931471805599453094172321214581766L); } // NOLINT + static constexpr T sqrt2() noexcept { return static_cast<T>(1.4142135623730950488016887242096982L); } // NOLINT + static constexpr T sqrt3() noexcept { return static_cast<T>(1.7320508075688772935274463415058723L); } // NOLINT + static constexpr T sqrt3_2() noexcept { return static_cast<T>(0.8660254037844386467637231707529362L); } // NOLINT + static constexpr T pi() noexcept { return static_cast<T>(3.1415926535897932384626433832795029L); } // NOLINT /// \brief Electric constant of vacuum /// - static inline constexpr T eps_0() noexcept { return static_cast<T>(8.854187817e-12); } // NOLINT + static constexpr T eps_0() noexcept { return static_cast<T>(8.854187817e-12); } // NOLINT // \brief Relative permittivity of Silicon dioxide /// - static inline constexpr T eps_SiO2() noexcept { return static_cast<T>(3.9); } // NOLINT + static constexpr T eps_SiO2() noexcept { return static_cast<T>(3.9); } // NOLINT /// \brief Relative permittivity of Silicon /// - static inline constexpr T eps_Si() noexcept { return static_cast<T>(11.7); } // NOLINT + static constexpr T eps_Si() noexcept { return static_cast<T>(11.7); } // NOLINT /// \brief Boltzmann constant /// - static inline constexpr T k_b() noexcept { return static_cast<T>(1.38064852e-23); } // NOLINT + static constexpr T k_b() noexcept { return static_cast<T>(1.38064852e-23); } // NOLINT /// \brief room temperature (gives VT = 0.02585 at T=300) /// - static inline constexpr T T0() noexcept { return static_cast<T>(300); } // NOLINT + static constexpr T T0() noexcept { return static_cast<T>(300); } // NOLINT /// \brief Elementary charge /// - static inline constexpr T Q_e() noexcept { return static_cast<T>(1.6021765314e-19); } // NOLINT + static constexpr T Q_e() noexcept { return static_cast<T>(1.6021765314e-19); } // NOLINT /// \brief Intrinsic carrier concentration in 1/m^3 of Silicon /// - static inline constexpr T NiSi() noexcept { return static_cast<T>(1.45e16); } // NOLINT + static constexpr T NiSi() noexcept { return static_cast<T>(1.45e16); } // NOLINT /// \brief clearly identify magic numbers in code /// @@ -82,10 +82,10 @@ namespace plib /// later. /// template <typename V> - static inline constexpr T magic(V &&v) noexcept { return static_cast<T>(v); } + static constexpr T magic(V &&v) noexcept { return static_cast<T>(v); } template <typename V> - static inline constexpr T fraction(V &&v1, V &&v2) noexcept { return static_cast<T>(v1 / v2); } + static constexpr T fraction(V &&v1, V &&v2) noexcept { return static_cast<T>(v1 / v2); } }; /// \brief typesafe reciprocal function @@ -95,7 +95,7 @@ namespace plib /// \return reciprocal of argument /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> reciprocal(T v) noexcept { return constants<T>::one() / v; @@ -108,7 +108,7 @@ namespace plib /// \return absolute value of argument /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> abs(T v) noexcept { return std::abs(v); @@ -121,7 +121,7 @@ namespace plib /// \return absolute value of argument /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> sqrt(T v) noexcept { return std::sqrt(v); @@ -135,7 +135,7 @@ namespace plib /// \return sqrt(v1*v1+v2*v2) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> hypot(T v1, T v2) noexcept { return std::hypot(v1, v2); @@ -148,7 +148,7 @@ namespace plib /// \return exp(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> exp(T v) noexcept { return std::exp(v); @@ -161,7 +161,7 @@ namespace plib /// \return log(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> log(T v) noexcept { return std::log(v); @@ -174,7 +174,7 @@ namespace plib /// \return tanh(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> tanh(T v) noexcept { return std::tanh(v); @@ -187,7 +187,7 @@ namespace plib /// \return floor(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> floor(T v) noexcept { return std::floor(v); @@ -200,7 +200,7 @@ namespace plib /// \return log(1 + v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> log1p(T v) noexcept { return std::log1p(v); @@ -213,7 +213,7 @@ namespace plib /// \return sin(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> sin(T v) noexcept { return std::sin(v); @@ -226,7 +226,7 @@ namespace plib /// \return cos(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> cos(T v) noexcept { return std::cos(v); @@ -239,7 +239,7 @@ namespace plib /// \return trunc(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> trunc(T v) noexcept { return std::trunc(v); @@ -253,7 +253,7 @@ namespace plib /// \return signum(v) /// template <typename T> - static inline constexpr std::enable_if_t<std::is_floating_point<T>::value, T> + static constexpr std::enable_if_t<std::is_floating_point<T>::value, T> signum(T v, T r = static_cast<T>(1)) { constexpr const auto z(static_cast<T>(0)); @@ -271,80 +271,80 @@ namespace plib /// FIXME: limited implementation /// template <typename T1, typename T2> - static inline + static auto pow(T1 v, T2 p) noexcept -> decltype(std::pow(v, p)) { return std::pow(v, p); } #if (PUSE_FLOAT128) - static inline constexpr FLOAT128 reciprocal(FLOAT128 v) noexcept + static constexpr FLOAT128 reciprocal(FLOAT128 v) noexcept { return constants<FLOAT128>::one() / v; } - static inline FLOAT128 abs(FLOAT128 v) noexcept + static FLOAT128 abs(FLOAT128 v) noexcept { return fabsq(v); } - static inline FLOAT128 sqrt(FLOAT128 v) noexcept + static FLOAT128 sqrt(FLOAT128 v) noexcept { return sqrtq(v); } - static inline FLOAT128 hypot(FLOAT128 v1, FLOAT128 v2) noexcept + static FLOAT128 hypot(FLOAT128 v1, FLOAT128 v2) noexcept { return hypotq(v1, v2); } - static inline FLOAT128 exp(FLOAT128 v) noexcept + static FLOAT128 exp(FLOAT128 v) noexcept { return expq(v); } - static inline FLOAT128 log(FLOAT128 v) noexcept + static FLOAT128 log(FLOAT128 v) noexcept { return logq(v); } - static inline FLOAT128 tanh(FLOAT128 v) noexcept + static FLOAT128 tanh(FLOAT128 v) noexcept { return tanhq(v); } - static inline FLOAT128 floor(FLOAT128 v) noexcept + static FLOAT128 floor(FLOAT128 v) noexcept { return floorq(v); } - static inline FLOAT128 log1p(FLOAT128 v) noexcept + static FLOAT128 log1p(FLOAT128 v) noexcept { return log1pq(v); } - static inline FLOAT128 sin(FLOAT128 v) noexcept + static FLOAT128 sin(FLOAT128 v) noexcept { return sinq(v); } - static inline FLOAT128 cos(FLOAT128 v) noexcept + static FLOAT128 cos(FLOAT128 v) noexcept { return cosq(v); } - static inline FLOAT128 trunc(FLOAT128 v) noexcept + static FLOAT128 trunc(FLOAT128 v) noexcept { return truncq(v); } template <typename T> - static inline FLOAT128 pow(FLOAT128 v, T p) noexcept + static FLOAT128 pow(FLOAT128 v, T p) noexcept { return powq(v, static_cast<FLOAT128>(p)); } - static inline FLOAT128 pow(FLOAT128 v, int p) noexcept + static FLOAT128 pow(FLOAT128 v, int p) noexcept { if (p==2) return v*v; |