31#ifndef ETL_SCALED_ROUNDING_INCLUDED
32#define ETL_SCALED_ROUNDING_INCLUDED
34#include "static_assert.h"
65 template <u
int32_t Scaling,
typename T>
70 typedef typename scaled_rounding_t<T>::type scale_t;
92 template <u
int32_t Scaling,
typename T>
97 typedef typename scaled_rounding_t<T>::type scale_t;
107 template <u
int32_t Scaling,
typename T>
112 typedef typename scaled_rounding_t<T>::type scale_t;
133 template <u
int32_t Scaling,
typename T>
138 typedef typename scaled_rounding_t<T>::type scale_t;
149 template <u
int32_t Scaling,
typename T>
154 typedef typename scaled_rounding_t<T>::type scale_t;
179 template <u
int32_t Scaling,
typename T>
184 typedef typename scaled_rounding_t<T>::type scale_t;
195 template <u
int32_t Scaling,
typename T>
200 typedef typename scaled_rounding_t<T>::type scale_t;
223 template <u
int32_t Scaling,
typename T>
228 typedef typename scaled_rounding_t<T>::type scale_t;
238 template <u
int32_t Scaling,
typename T>
243 typedef typename scaled_rounding_t<T>::type scale_t;
260 template <u
int32_t Scaling,
typename T>
265 typedef typename scaled_rounding_t<T>::type scale_t;
275 template <u
int32_t Scaling,
typename T>
295 template <u
int32_t Scaling,
typename T>
300 typedef typename scaled_rounding_t<T>::type scale_t;
311 template <u
int32_t Scaling,
typename T>
316 typedef typename scaled_rounding_t<T>::type scale_t;
325 if ((etl::absolute(value) % scale_t(
Scaling)) == scale_t(
Scaling / 2U))
328 if ((value / scale_t(
Scaling)) & 1U)
350 template <u
int32_t Scaling,
typename T>
355 typedef typename scaled_rounding_t<T>::type scale_t;
366 template <u
int32_t Scaling,
typename T>
371 typedef typename scaled_rounding_t<T>::type scale_t;
380 if ((etl::absolute(value) % scale_t(
Scaling)) == scale_t(
Scaling / 2U))
383 if ((value / scale_t(
Scaling)) & 1U)
405 template <u
int32_t Scaling,
typename T>
410 typedef typename scaled_rounding_t<T>::type scale_t;
conditional
Definition type_traits_generator.h:1199
bitset_ext
Definition absolute.h:38
ETL_NODISCARD ETL_CONSTEXPR14 T round_infinity_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:278
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_odd_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:369
ETL_NODISCARD ETL_CONSTEXPR14 T round_floor_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:136
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_down_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:226
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_down_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:198
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:353
ETL_NODISCARD ETL_CONSTEXPR14 T round_infinity_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:298
ETL_NODISCARD ETL_CONSTEXPR14 T round_floor_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:110
ETL_NODISCARD ETL_CONSTEXPR14 T round_zero_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:241
ETL_NODISCARD ETL_CONSTEXPR14 T round_zero_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:263
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_up_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:152
ETL_NODISCARD ETL_CONSTEXPR14 T round_ceiling_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:95
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_up_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:182
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:314
ETL_NODISCARD ETL_CONSTEXPR14 T round_ceiling_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:68
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_odd_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:408
Definition scaled_rounding.h:42