31#ifndef ETL_SCALED_ROUNDING_INCLUDED
32#define ETL_SCALED_ROUNDING_INCLUDED
35#include "static_assert.h"
66 template <u
int32_t Scaling,
typename T>
71 typedef typename scaled_rounding_t<T>::type scale_t;
93 template <u
int32_t Scaling,
typename T>
98 typedef typename scaled_rounding_t<T>::type scale_t;
108 template <u
int32_t Scaling,
typename T>
113 typedef typename scaled_rounding_t<T>::type scale_t;
134 template <u
int32_t Scaling,
typename T>
139 typedef typename scaled_rounding_t<T>::type scale_t;
150 template <u
int32_t Scaling,
typename T>
155 typedef typename scaled_rounding_t<T>::type scale_t;
180 template <u
int32_t Scaling,
typename T>
185 typedef typename scaled_rounding_t<T>::type scale_t;
196 template <u
int32_t Scaling,
typename T>
201 typedef typename scaled_rounding_t<T>::type scale_t;
224 template <u
int32_t Scaling,
typename T>
229 typedef typename scaled_rounding_t<T>::type scale_t;
239 template <u
int32_t Scaling,
typename T>
244 typedef typename scaled_rounding_t<T>::type scale_t;
261 template <u
int32_t Scaling,
typename T>
266 typedef typename scaled_rounding_t<T>::type scale_t;
276 template <u
int32_t Scaling,
typename T>
296 template <u
int32_t Scaling,
typename T>
301 typedef typename scaled_rounding_t<T>::type scale_t;
312 template <u
int32_t Scaling,
typename T>
317 typedef typename scaled_rounding_t<T>::type scale_t;
326 if ((etl::absolute(value) % scale_t(
Scaling)) == scale_t(
Scaling / 2U))
329 if ((value / scale_t(
Scaling)) & 1U)
351 template <u
int32_t Scaling,
typename T>
356 typedef typename scaled_rounding_t<T>::type scale_t;
367 template <u
int32_t Scaling,
typename T>
372 typedef typename scaled_rounding_t<T>::type scale_t;
381 if ((etl::absolute(value) % scale_t(
Scaling)) == scale_t(
Scaling / 2U))
384 if ((value / scale_t(
Scaling)) & 1U)
406 template <u
int32_t Scaling,
typename T>
411 typedef typename scaled_rounding_t<T>::type scale_t;
conditional
Definition type_traits_generator.h:1223
bitset_ext
Definition absolute.h:39
ETL_NODISCARD ETL_CONSTEXPR14 T round_infinity_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:279
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_odd_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:370
ETL_NODISCARD ETL_CONSTEXPR14 T round_floor_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:137
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_down_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:227
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_down_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:199
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:354
ETL_NODISCARD ETL_CONSTEXPR14 T round_infinity_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:299
ETL_NODISCARD ETL_CONSTEXPR14 T round_floor_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:111
ETL_NODISCARD ETL_CONSTEXPR14 T round_zero_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:242
ETL_NODISCARD ETL_CONSTEXPR14 T round_zero_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:264
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_up_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:153
ETL_NODISCARD ETL_CONSTEXPR14 T round_ceiling_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:96
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_up_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:183
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:315
ETL_NODISCARD ETL_CONSTEXPR14 T round_ceiling_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:69
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_odd_scaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:409
Definition scaled_rounding.h:43