E.V.E  0.1-beta

Scalar and SIMD version of basic bitwise functions. More...

Detailed Description

Scalar and SIMD version of basic bitwise functions.

These functions provide scalar and SIMD version of bit operations. These operations are extended to work on any value types by considering the bitwise operation to apply on the value bit patterns while retaining its original types, thus following the Bitwise Functions semantic.

If a bitwise operation implies a negation – as in bit_andnot– the position of the negation in the function's name matches the position of the negated parameter. For example, bit_andnot(x,y) is semantically equivalent to bit_and(x,bit_not(y)) but may be optimized.

Convenience header:

#include <eve/function/bits.hpp>

Variables

constexpr callable_bit_cast_ eve::bit_cast = {}
 Callable object computing a bitwise reinterpretation of the object. More...
 
constexpr callable_bit_and_ eve::bit_and = {}
 Callable object computing the bitwise AND operation. More...
 
constexpr callable_bit_andnot_ eve::bit_andnot = {}
 Callable object computing the bitwise ANDNOT operation. More...
 
constexpr callable_bit_ceil_ eve::bit_ceil = {}
 Callable object computing the bit_ceil operation. More...
 
constexpr callable_bit_floor_ eve::bit_floor = {}
 Callable object computing the bit_floor operation. More...
 
constexpr callable_bit_mask_ eve::bit_mask = {}
 Callable object computing a bit mask. More...
 
constexpr callable_bit_not_ eve::bit_not = {}
 Callable object computing the ones' complement operation. More...
 
constexpr callable_bit_notand_ eve::bit_notand = {}
 Callable object computing the bitwise NOTAND operation. More...
 
constexpr callable_bit_notor_ eve::bit_notor = {}
 Callable object computing the bitwise NOTOR operation. More...
 
constexpr callable_bit_or_ eve::bit_or = {}
 Callable object computing the bitwise OR operation. More...
 
constexpr callable_bit_ornot_ eve::bit_ornot = {}
 Callable object computing the bitwise ORNOT operation. More...
 
constexpr callable_bit_select_ eve::bit_select = {}
 Callable object computing the bit_select operation. More...
 
detail::callable_object< tag::shl_ > const eve::bit_shl = {}
 Callable object computing the logical left shift operation. More...
 
constexpr callable_bit_shr_ eve::bit_shr = {}
 Callable object computing the logical right shift operation. More...
 
constexpr callable_bit_width_ eve::bit_width = {}
 Callable object computing the bit_width operation. More...
 
constexpr callable_bit_xor_ eve::bit_xor = {}
 Callable object computing the bitwise XOR operation. More...
 
constexpr callable_countl_one_ eve::countl_one = {}
 Callable object computing the number of consecutive 1 bits left. More...
 
constexpr callable_countl_zero_ eve::countl_zero = {}
 Callable object computing the number of consecutive 1 bits left. More...
 
constexpr callable_countr_one_ eve::countr_one = {}
 Callable object computing the number of consecutive 1 bits right. More...
 
constexpr callable_countr_zero_ eve::countr_zero = {}
 Callable object computing the number of consecutive 1 bits right. More...
 
constexpr callable_ffs_ eve::ffs = {}
 Callable object computing the ffs operation. More...
 
constexpr callable_firstbitset_ eve::firstbitset = {}
 Callable object computing the firstbitset operation. More...
 
constexpr callable_firstbitunset_ eve::firstbitunset = {}
 Callable object computing the firstbitunset operation. More...
 
constexpr callable_fls_ eve::fls = {}
 Callable object computing the fls operation. More...
 
constexpr callable_is_pow2_ eve::is_pow2 = {}
 Callable object computing the is_pow2 predicate. More...
 
constexpr callable_next_ eve::next = {}
 Callable object computing the next operation. More...
 
constexpr callable_popcount_ eve::popcount = {}
 Callable object computing the number of bits set. More...
 
constexpr callable_prev_ eve::prev = {}
 Callable object computing the prevt operation. More...