BitMagic-C++
Data Structures | Namespaces | Functions
bmutil.h File Reference

Bit manipulation primitives (internal) More...

#include "bmdef.h"
#include "bmconst.h"
#include <emmintrin.h>
Include dependency graph for bmutil.h:
This graph shows which files directly or indirectly include this file:

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 >
bm::min_value (T v1, T v2)
 Get minimum of 2 values. More...
 
template<typename 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 >
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 >
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)
 

Detailed Description

Bit manipulation primitives (internal)

Definition in file bmutil.h.