bmconst.h File Reference

Constants, lookup tables and typedefs. More...

`#include <cstdint>`
`#include <inttypes.h>`
Include dependency graph for bmconst.h:
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 >
| DeBruijn majic table. More...
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::lzcnt_table< T >
| Structure for LZCNT constants (4-bit). More...
struct | bm::tzcnt_table< T >
| Structure for TZCNT constants. 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...
struct | bm::globals< T >
| Internal structure. More...
struct | bm::globals< T >::bo

## Namespaces

namespace | bm

## Macros

#define | BM_DEFAULT_POOL_SIZE 4096
#define | BM_VERSION_MAJOR 7
#define | BM_VERSION_MINOR 13
#define | BM_VERSION_PATCH 4
#define | BM_SCALAR_VERSION (((BM_VERSION_MAJOR) << 16) + ((BM_VERSION_MINOR) << 8) + (BM_VERSION_PATCH))

## 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 class | bm::finalization { bm::finalization::UNDEFINED = 0 , bm::finalization::READONLY = 1 , bm::finalization::READWRITE = 2 }
| copy strategy More...
enum | bm::set_operation { bm::set_AND = 0 , bm::set_OR = 1 , bm::set_SUB = 2 , bm::set_XOR = 3 , bm::set_ASSIGN = 4 , bm::set_COUNT = 5 , bm::set_COUNT_AND = 6 , bm::set_COUNT_XOR = 7 , bm::set_COUNT_OR = 8 , bm::set_COUNT_SUB_AB = 9 , bm::set_COUNT_SUB_BA = 10 , bm::set_COUNT_A = 11 , bm::set_COUNT_B = 12 , bm::set_END }
| Codes of set operations. More...
enum | bm::operation { bm::BM_AND = set_AND , bm::BM_OR = set_OR , bm::BM_SUB = set_SUB , bm::BM_XOR = set_XOR }
| Bit operations. More...
enum | bm::sort_order { bm::BM_UNSORTED = 0 , bm::BM_SORTED = 1 , bm::BM_SORTED_UNIFORM = 2 , bm::BM_UNKNOWN = 3 }
| Sort order declaration. 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::null_support { bm::use_null = 0 , bm::no_null = 1 }
| NULL-able value support. More...
enum | bm::simd_codes { bm::simd_none = 0 , bm::simd_sse2 = 1 , bm::simd_sse42 = 2 , bm::simd_avx2 = 5 , bm::simd_avx512 = 6 , bm::simd_wasm128 = 7 , bm::simd_neon = 8 }
| codes for supported SIMD optimizations More...
enum | bm::ByteOrder { bm::BigEndian = 0 , bm::LittleEndian = 1 }
| Byte orders recognized by the library. More...

## Variables

const unsigned | bm::id_max32 = 0xFFFFFFFFu
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_alloc_size = bm::set_block_size * unsigned(sizeof(bm::word_t))
const unsigned | bm::set_block_plane_size = bm::set_block_size / 32u
const unsigned | bm::set_block_plane_cnt = (unsigned)(sizeof(bm::word_t) * 8u)
const unsigned | bm::block_waves = 64
const unsigned | bm::set_block_digest_wave_size = bm::set_block_size / bm::block_waves
const unsigned | bm::set_block_digest_pos_shift = 10
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_max_bits_cmrz = bm::gap_max_bits / 2
const unsigned | bm::gap_levels = 4
const unsigned | bm::gap_max_level = bm::gap_levels - 1
const unsigned | bm::bie_cut_off = 16384
const unsigned | bm::set_array_size32 = 256u
const unsigned | bm::set_sub_array_size = set_array_size32
const unsigned | bm::set_array_shift = 8u
const unsigned | bm::set_array_mask = 0xFFu
const unsigned | bm::set_total_blocks32 = (bm::set_array_size32 * bm::set_array_size32)
const unsigned | bm::set_sub_total_bits = bm::set_sub_array_size * bm::gap_max_bits
const unsigned | bm::id_max = bm::id_max32
const unsigned | bm::set_top_array_size = bm::set_array_size32
const unsigned | bm::set_total_blocks = bm::set_total_blocks32
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_size32
const unsigned | bm::rs3_border0 = 21824
const unsigned | bm::rs3_border1 = (rs3_border0 * 2)
const unsigned | bm::rs3_half_span = rs3_border0 / 2
const unsigned | bm::rs3_border0_1 = rs3_border0 + rs3_half_span
const unsigned | bm::rs3_border1_1 = rs3_border1 + rs3_half_span
const id64_t | bm::all_bits_mask = 0xffffffffffffffffULL
const unsigned | bm::set_block_size_op = bm::set_block_size / 2
template<bool T>
const char | bm::_copyright< T >::_p []
template<bool T>
const unsigned | bm::_copyright< T >::_v [3]
template<bool T>
const unsigned | bm::DeBruijn_bit_position< T >::_multiply [32]
template<bool T>
const signed char | bm::first_bit_table< T >::_idx [256]
template<bool T>
const unsigned char | bm::bit_count_table< T >::_count [256]
template<bool T>
const unsigned char | bm::lzcnt_table< T >::_lut [16]
template<bool T>
const unsigned char | bm::tzcnt_table< T >::_lut [37]
template<bool T>
const unsigned | bm::block_set_table< T >::_left [32]
template<bool T>
const unsigned | bm::block_set_table< T >::_right [32]
template<bool T>
const gap_word_t | bm::gap_len_table< T >::_len [bm::gap_levels]
template<bool T>
const gap_word_t | bm::gap_len_table_min< T >::_len [bm::gap_levels]
template<bool T>
const gap_word_t | bm::gap_len_table_nl< T >::_len [bm::gap_levels]
template<bool T>
globals< T >::bo | bm::globals< T >::_bo

## Detailed Description

Constants, lookup tables and typedefs.

Definition in file bmconst.h.

## Macro Definition Documentation

## BM_DEFAULT_POOL_SIZE

#define BM_DEFAULT_POOL_SIZE 4096

Definition at line 43 of file bmconst.h.

## BM_SCALAR_VERSION

#define BM_SCALAR_VERSION (((BM_VERSION_MAJOR) << 16) + ((BM_VERSION_MINOR) << 8) + (BM_VERSION_PATCH))

Definition at line 254 of file bmconst.h.

## BM_VERSION_MAJOR

#define BM_VERSION_MAJOR 7

Definition at line 245 of file bmconst.h.

## BM_VERSION_MINOR

#define BM_VERSION_MINOR 13

Definition at line 246 of file bmconst.h.

## BM_VERSION_PATCH

#define BM_VERSION_PATCH 4

Definition at line 247 of file bmconst.h.