BitMagic-C++
|
Bit manipulation primitives (internal) More...
Go to the source code of this file.
Data Structures | |
struct | bm::bit_block_t |
bit-block array wrapped into union for correct interpretation of 32-bit vs 64-bit access vs SIMD More... | |
union | bm::bit_block_t::bunion_t |
class | bm::ptr_guard< T > |
Mini auto-pointer for internal memory management. More... | |
Namespaces | |
bm | |
Functions | |
template<typename T > | |
T | bm::min_value (T v1, T v2) |
Get minimum of 2 values. More... | |
template<typename T > | |
T | bm::ilog2 (T x) |
Fast loop-less function to find LOG2. More... | |
template<> | |
bm::gap_word_t | bm::ilog2 (gap_word_t x) |
unsigned | bm::count_leading_zeros (unsigned x) |
Portable LZCNT with (uses minimal LUT) More... | |
unsigned | bm::count_trailing_zeros (unsigned v) |
Portable TZCNT with (uses 37-LUT) More... | |
template<typename T > | |
T | bm::ilog2_LUT (T x) |
Lookup table based integer LOG2. More... | |
template<> | |
bm::gap_word_t | bm::ilog2_LUT< bm::gap_word_t > (bm::gap_word_t x) |
Lookup table based short integer LOG2. More... | |
template<typename T > | |
T | bm::bit_scan_fwd (T v) |
unsigned | bm::bit_scan_reverse32 (unsigned value) |
unsigned | bm::bit_scan_forward32 (unsigned value) |
BMFORCEINLINE unsigned long long | bm::bmi_bslr_u64 (unsigned long long w) |
BMFORCEINLINE unsigned long long | bm::bmi_blsi_u64 (unsigned long long w) |
unsigned | bm::count_leading_zeros_u64 (bm::id64_t w) |
64-bit bit-scan reverse More... | |
unsigned | bm::count_trailing_zeros_u64 (bm::id64_t w) |
Bit manipulation primitives (internal)
Definition in file bmutil.h.