31#ifndef ETL_BIT_INCLUDED
32#define ETL_BIT_INCLUDED
43#if ETL_USING_CPP20 && ETL_USING_STL
52 template <
typename TDestination,
typename TSource>
55 (
sizeof(TDestination) ==
sizeof(TSource)) &&
60 TDestination destination;
62 memcpy(&destination, &source,
sizeof(TDestination));
70 template <
typename TDestination,
typename TSource>
74 (
sizeof(TDestination) ==
sizeof(TSource)), TDestination>::type
77 return static_cast<TDestination
>(source);
95 ETL_NODISCARD ETL_CONSTEXPR14
98 return (value & (value - 1)) == 0;
103 template <
typename T>
104 ETL_NODISCARD ETL_CONSTEXPR14
114 template <
typename T>
115 ETL_NODISCARD ETL_CONSTEXPR14
125 template <
typename T>
126 ETL_NODISCARD ETL_CONSTEXPR14
136 template <
typename T>
137 ETL_NODISCARD ETL_CONSTEXPR14
148 template <
typename T>
153#if ETL_USING_CPP20 && ETL_USING_STL
163 template <
typename T>
164 ETL_NODISCARD ETL_CONSTEXPR14
168#if ETL_USING_CPP20 && ETL_USING_STL
185 template <
typename T>
186 ETL_NODISCARD ETL_CONSTEXPR14
190#if ETL_USING_CPP20 && ETL_USING_STL
207 template <
typename T>
208 ETL_NODISCARD ETL_CONSTEXPR14
210 rotl(T value,
int n) ETL_NOEXCEPT
225 template <
typename T>
226 ETL_NODISCARD ETL_CONSTEXPR14
228 rotr(T value,
int n) ETL_NOEXCEPT
243 template <
typename T>
244 ETL_NODISCARD ETL_CONSTEXPR14
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value &&etl::is_unsigned< T >::value &&(etl::integral_limits< T >::bits==16U), uint_least8_t >::type count_trailing_ones(T value)
Definition: binary.h:1421
ETL_CONSTEXPR14 T rotate_left(T value)
Definition: binary.h:116
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value &&etl::is_unsigned< T >::value &&(etl::integral_limits< T >::bits==16U), uint_least8_t >::type count_bits(T value)
Definition: binary.h:956
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value &&etl::is_unsigned< T >::value &&(etl::integral_limits< T >::bits==16U), uint_least8_t >::type count_trailing_zeros(T value)
Definition: binary.h:1175
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value &&etl::is_unsigned< T >::value &&(etl::integral_limits< T >::bits==16U), uint_least8_t >::type count_leading_ones(T value)
Definition: binary.h:1907
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value &&etl::is_unsigned< T >::value &&(etl::integral_limits< T >::bits==16U), uint_least8_t >::type count_leading_zeros(T value)
Definition: binary.h:1661
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value &&etl::is_unsigned< T >::value &&(etl::integral_limits< T >::bits==16U), T >::type reverse_bytes(T value)
Definition: binary.h:773
ETL_CONSTEXPR14 T rotate_right(T value)
Definition: binary.h:161
Definition: integral_limits.h:468
enable_if
Definition: type_traits_generator.h:1191
is_integral
Definition: type_traits_generator.h:1001
bitset_ext
Definition: absolute.h:38
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, T >::type rotr(T value, int n) ETL_NOEXCEPT
rotr
Definition: bit.h:228
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, int >::type countl_one(T value) ETL_NOEXCEPT
countl_one
Definition: bit.h:117
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, T >::type rotl(T value, int n) ETL_NOEXCEPT
rotl
Definition: bit.h:210
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, T >::type bit_floor(T value) ETL_NOEXCEPT
bit_floor
Definition: bit.h:188
ETL_CONSTEXPR14 etl::enable_if< etl::is_integral< T >::value, T >::type byteswap(T value) ETL_NOEXCEPT
byteswap
Definition: bit.h:86
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, int >::type popcount(T value) ETL_NOEXCEPT
popcount
Definition: bit.h:246
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, bool >::type has_single_bit(T value) ETL_NOEXCEPT
has_single_bit
Definition: bit.h:96
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, int >::type countr_one(T value) ETL_NOEXCEPT
countr_one
Definition: bit.h:139
ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, T >::type bit_width(T value) ETL_NOEXCEPT
bit_width
Definition: bit.h:151
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, int >::type countr_zero(T value) ETL_NOEXCEPT
countr_zero
Definition: bit.h:128
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, T >::type bit_ceil(T value)
bit_ceil
Definition: bit.h:166
ETL_NODISCARD ETL_CONSTEXPR14 etl::enable_if< etl::is_unsigned< T >::value, int >::type countl_zero(T value) ETL_NOEXCEPT
countl_zero
Definition: bit.h:106
ETL_NODISCARD etl::enable_if<!(etl::is_integral< TDestination >::value &&etl::is_integral< TSource >::value)&&(sizeof(TDestination)==sizeof(TSource))&&etl::is_trivially_copyable< TSource >::value &&etl::is_trivially_copyable< TDestination >::value, TDestination >::type bit_cast(const TSource &source) ETL_NOEXCEPT
bit_cast - Type to different type.
Definition: bit.h:58
Definition: type_traits_generator.h:2069