21 #ifndef ROCPRIM_DEVICE_DETAIL_UINT_FAST_DIV_HPP_ 22 #define ROCPRIM_DEVICE_DETAIL_UINT_FAST_DIV_HPP_ 24 #include "../../config.hpp" 26 BEGIN_ROCPRIM_NAMESPACE
37 ROCPRIM_HOST_DEVICE
inline 40 ROCPRIM_HOST_DEVICE
inline 54 unsigned int p32 = 1, q, r, delta;
65 if(q >= 0x7FFFFFFF) add = 1;
71 if(q >= 0x80000000) add = 1;
76 }
while (p < 64 && p32 < delta);
84 ROCPRIM_HOST_DEVICE
inline 85 unsigned int operator/(
unsigned int n,
const uint_fast_div& divisor)
87 if(divisor.magic == 0)
94 unsigned int q = (
static_cast<unsigned long long>(divisor.magic) * static_cast<unsigned long long>(n)) >> 32;
97 q = ((n - q) >> 1) + q;
99 return q >> divisor.shift;
104 END_ROCPRIM_NAMESPACE
106 #endif // ROCPRIM_DEVICE_DETAIL_UINT_FAST_DIV_HPP_ Deprecated: Configuration of device-level scan primitives.
Definition: block_histogram.hpp:62
Definition: uint_fast_div.hpp:31