20 #ifndef RAJA_util_BitMask_HPP
21 #define RAJA_util_BitMask_HPP
23 #include "RAJA/config.hpp"
28 template<camp::
idx_t N>
38 static constexpr camp::idx_t
value = -1;
54 template<
int W
idth,
int Shift>
57 static constexpr
int shift = Shift;
58 static constexpr
int width = Width;
66 return ((input >> (
static_cast<T
>(Shift))) &
67 static_cast<T
>((1 << (Width)) - 1));
73 return ((input >> (
static_cast<T
>(Shift))) >> Width);
79 return (input & (
static_cast<T
>(-1) << (Width + Shift)));
#define RAJA_HOST_DEVICE
Definition: macros.hpp:65
Definition: AlignedRangeIndexSetBuilders.cpp:35
Definition: BitMask.hpp:56
static constexpr int max_shifted_size
Definition: BitMask.hpp:61
static constexpr int max_input_size
Definition: BitMask.hpp:59
static constexpr int shift
Definition: BitMask.hpp:57
static constexpr int width
Definition: BitMask.hpp:58
static constexpr int max_masked_size
Definition: BitMask.hpp:60
static constexpr RAJA_HOST_DEVICE T getOuter(T input)
Definition: BitMask.hpp:71
static constexpr RAJA_HOST_DEVICE T maskOuter(T input)
Definition: BitMask.hpp:77
static constexpr RAJA_HOST_DEVICE T maskValue(T input)
Definition: BitMask.hpp:64
Definition: BitMask.hpp:30
static constexpr camp::idx_t value
Definition: BitMask.hpp:31
static constexpr bool is_exact
Definition: BitMask.hpp:32