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)) &&
70 template <
typename TDestination,
typename TSource>
74 (
sizeof(TDestination) ==
sizeof(TSource)), TDestination>::type
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
154 return std::bit_width(value);
163 template <
typename T>
164 ETL_NODISCARD ETL_CONSTEXPR14
168#if ETL_USING_CPP20 && ETL_USING_STL
169 return std::bit_ceil(value);
185 template <
typename T>
186 ETL_NODISCARD ETL_CONSTEXPR14
190#if ETL_USING_CPP20 && ETL_USING_STL
191 return std::bit_floor(value);
207 template <
typename T>
208 ETL_NODISCARD ETL_CONSTEXPR14
225 template <
typename T>
226 ETL_NODISCARD ETL_CONSTEXPR14
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:1387
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:922
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:1141
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:1873
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:1627
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:739
ETL_CONSTEXPR14 T rotate_right(T value)
Definition binary.h:161
Definition integral_limits.h:516
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:2115
pair holds two objects of arbitrary type
Definition utility.h:164