BitMagicC++Library
Data Structures | Namespaces | Macros | Typedefs | Enumerations | Variables
bmconst.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  bm::_copyright< T >
 Internal structure. More...
 
struct  bm::DeBruijn_bit_position< T >
 
struct  bm::first_bit_table< T >
 Structure keeps index of first right 1 bit for every byte. More...
 
struct  bm::bit_count_table< T >
 Structure to aid in counting bits table contains count of bits in 0-255 diapason of numbers. More...
 
struct  bm::block_set_table< T >
 Structure keeps all-left/right ON bits masks. More...
 
struct  bm::gap_len_table< T >
 Default GAP lengths table. More...
 
struct  bm::gap_len_table_min< T >
 Alternative GAP lengths table. Good for for memory saver mode and very sparse bitsets. More...
 
struct  bm::gap_len_table_nl< T >
 Non-linear size growth GAP lengths table. More...
 

Namespaces

 bm
 

Macros

#define BM_DECLARE_TEMP_BLOCK(x)   unsigned BM_VECT_ALIGN x[bm::set_block_size] BM_VECT_ALIGN_ATTR;
 

Typedefs

typedef unsigned long long int bm::id64_t
 
typedef unsigned int bm::id_t
 
typedef unsigned int bm::word_t
 
typedef unsigned short bm::short_t
 
typedef unsigned short bm::gap_word_t
 
typedef id64_t bm::wordop_t
 

Enumerations

enum  bm::strategy { bm::BM_BIT = 0, bm::BM_GAP = 1 }
 Block allocation strategies. More...
 
enum  bm::set_representation { bm::set_bitset = 0, bm::set_gap = 1, bm::set_array1 = 2, bm::set_array0 = 3 }
 set representation variants More...
 
enum  bm::simd_codes { bm::simd_none = 0, bm::simd_sse2 = 1, bm::simd_sse42 = 2, bm::simd_avx2 = 5 }
 codes for supported SIMD optimizations More...
 

Variables

const unsigned bm::id_max = 0xFFFFFFFF
 
const unsigned bm::set_block_size = 2048u
 
const unsigned bm::set_block_shift = 16u
 
const unsigned bm::set_block_mask = 0xFFFFu
 
const unsigned bm::set_blkblk_mask = 0xFFFFFFu
 
const unsigned bm::set_block_plain_size = set_block_size / 32u
 
const unsigned bm::set_block_plain_cnt = (unsigned)(sizeof(bm::word_t) * 8u)
 
const unsigned bm::set_word_shift = 5u
 
const unsigned bm::set_word_mask = 0x1Fu
 
const unsigned bm::gap_max_buff_len = 1280
 
const unsigned bm::gap_max_bits = 65536
 
const unsigned bm::gap_equiv_len
 
const unsigned bm::gap_levels = 4
 
const unsigned bm::gap_max_level = bm::gap_levels - 1
 
const unsigned bm::set_array_size = 256u
 
const unsigned bm::set_array_shift = 8u
 
const unsigned bm::set_array_mask = 0xFFu
 
const unsigned bm::set_total_blocks = (bm::set_array_size * bm::set_array_size)
 
const unsigned bm::bits_in_block = bm::set_block_size * (unsigned)(sizeof(bm::word_t) * 8)
 
const unsigned bm::bits_in_array = bm::bits_in_block * bm::set_array_size
 
const id64_t bm::all_bits_mask = 0xffffffffffffffff
 
const unsigned bm::set_block_size_op = bm::set_block_size / 2
 

Macro Definition Documentation

◆ BM_DECLARE_TEMP_BLOCK

#define BM_DECLARE_TEMP_BLOCK (   x)    unsigned BM_VECT_ALIGN x[bm::set_block_size] BM_VECT_ALIGN_ATTR;