Collaboration diagram for GAP functions:
![]() |
Data Structures | |
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... | |
Functions | |
template<typename T> | |
unsigned | bm::gap_test (const T *buf, unsigned pos) |
Tests if bit = pos is true. | |
template<typename T> | |
unsigned | bm::gap_bit_count (const T *buf) |
Calculates number of bits ON in GAP buffer. | |
template<typename T> | |
int | bm::gapcmp (const T *buf1, const T *buf2) |
Lexicographical comparison of GAP buffers. | |
template<typename T, class F> | |
void | bm::gap_buff_op (T *BMRESTRICT dest, const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F f) |
Abstract operation for GAP buffers. Receives functor F as a template argument. | |
template<typename T> | |
unsigned | bm::gap_set_value (unsigned val, T *BMRESTRICT buf, unsigned pos, unsigned *BMRESTRICT is_set) |
Abstract distance(similarity) operation for GAP buffers. Receives functor F as a template argument Sets or clears bit in the GAP buffer. | |
template<typename T> | |
int | bm::gap_find_in_block (const T *buf, unsigned nbit, bm::id_t *prev) |
Searches for the next 1 bit in the GAP block. | |
template<typename T> | |
void | bm::gap_sub_to_bitset (unsigned *dest, const T *buf) |
SUB (AND NOT) GAP block to bitblock. | |
template<typename T> | |
void | bm::gap_xor_to_bitset (unsigned *dest, const T *buf) |
XOR GAP block to bitblock. | |
template<typename T> | |
void | bm::gap_add_to_bitset (unsigned *dest, const T *buf) |
Adds(OR) GAP block to bitblock. | |
template<typename T> | |
void | bm::gap_and_to_bitset (unsigned *dest, const T *buf) |
ANDs GAP block to bitblock. | |
template<typename T> | |
void | bm::gap_convert_to_bitset (unsigned *dest, const T *buf) |
GAP block to bitblock conversion. | |
template<typename T> | |
void | bm::gap_convert_to_bitset (unsigned *dest, const T *buf, unsigned dest_len) |
GAP block to bitblock conversion. | |
template<typename T> | |
unsigned * | bm::gap_convert_to_bitset_smart (unsigned *dest, const T *buf, id_t set_max) |
Smart GAP block to bitblock conversion. | |
template<typename T> | |
unsigned | bm::gap_control_sum (const T *buf) |
Calculates sum of all words in GAP block. (For debugging purposes). | |
template<class T> | |
void | bm::gap_set_all (T *buf, unsigned set_max, unsigned value) |
Sets all bits to 0 or 1 (GAP). | |
template<class T> | |
void | bm::gap_init_range_block (T *buf, unsigned from, unsigned to, unsigned value, unsigned set_max) |
Init gap block so it has block in it (can be whole block). | |
template<typename T> | |
void | bm::gap_invert (T *buf) |
Inverts all bits in the GAP buffer. | |
template<typename T> | |
bool | bm::gap_is_all_zero (const T *buf, unsigned set_max) |
Temporary inverts all bits in the GAP buffer. Checks if GAP block is all-zero. | |
template<typename T> | |
bool | bm::gap_is_all_one (const T *buf, unsigned set_max) |
Checks if GAP block is all-one. | |
template<typename T> | |
unsigned | bm::gap_length (const T *buf) |
Returs GAP block length. | |
template<typename T> | |
unsigned | bm::gap_capacity (const T *buf, const T *glevel_len) |
Returs GAP block capacity. | |
template<typename T> | |
unsigned | bm::gap_limit (const T *buf, const T *glevel_len) |
Returs GAP block capacity limit. | |
template<typename T> | |
unsigned | bm::gap_level (const T *buf) |
Returs GAP blocks capacity level. | |
template<typename T> | |
void | bm::set_gap_level (T *buf, unsigned level) |
Sets GAP block capacity level. | |
template<typename T> | |
int | bm::gap_calc_level (int len, const T *glevel_len) |
Calculates GAP block capacity level. | |
template<typename T> | |
unsigned | bm::gap_free_elements (const T *buf, const T *glevel_len) |
Returns number of free elements in GAP block array. Difference between GAP block capacity on this level and actual GAP length. | |
template<typename T> | |
unsigned | bm::bit_convert_to_gap (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, bm::id_t bits, unsigned dest_len) |
Converts bit block to GAP. | |
template<typename D, typename T> | |
D | bm::gap_convert_to_arr (D *BMRESTRICT dest, const T *BMRESTRICT buf, unsigned dest_len) |
Convert gap block into array of ints corresponding to 1 bits. | |
gap_word_t * | bm::gap_operation_and (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf) |
GAP AND operation. | |
gap_word_t * | bm::gap_operation_xor (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf) |
GAP XOR operation. | |
gap_word_t * | bm::gap_operation_or (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf) |
GAP OR operation. | |
gap_word_t * | bm::gap_operation_sub (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf) |
GAP SUB (AND NOT) operation. | |
template<typename T> | |
unsigned | bm::gap_overhead (const T *length, const T *length_end, const T *glevel_len) |
Calculates memory overhead for number of gap blocks sharing the same memory allocation table (level lengths table). | |
template<typename T> | |
bool | bm::improve_gap_levels (const T *length, const T *length_end, T *glevel_len) |
Finds optimal gap blocks lengths. |
|
Converts bit block to GAP.
Definition at line 1820 of file bmfunc.h. References BM_ASSERT, and BMRESTRICT. |
|
Adds(OR) GAP block to bitblock.
Definition at line 1215 of file bmfunc.h. References BM_ASSERT, and bm::or_bit_block(). Referenced by bm::gap_convert_to_bitset(). |
|
ANDs GAP block to bitblock.
Definition at line 1247 of file bmfunc.h. References BM_ASSERT, and bm::sub_bit_block(). |
|
Calculates number of bits ON in GAP buffer.
Definition at line 547 of file bmfunc.h. Referenced by bm::combine_count_operation_with_block(), and bm::bvector< Alloc, MS >::stat(). |
|
Abstract operation for GAP buffers. Receives functor F as a template argument.
Definition at line 691 of file bmfunc.h. Referenced by bm::gap_operation_and(), bm::gap_operation_or(), bm::gap_operation_sub(), and bm::gap_operation_xor(). |
|
Calculates GAP block capacity level.
Definition at line 1747 of file bmfunc.h. References BM_ASSERT. Referenced by bm::gap_overhead(). |
|
Returs GAP block capacity.
Definition at line 1689 of file bmfunc.h. Referenced by bm::gap_free_elements(). |
|
Calculates sum of all words in GAP block. (For debugging purposes).
Definition at line 1515 of file bmfunc.h. References BM_ASSERT. Referenced by bm::bvector< Alloc, MS >::stat(). |
|
Convert gap block into array of ints corresponding to 1 bits.
Definition at line 1909 of file bmfunc.h. References BMRESTRICT. |
|
GAP block to bitblock conversion.
Definition at line 1472 of file bmfunc.h. References bm::gap_add_to_bitset(). |
|
GAP block to bitblock conversion.
Definition at line 1456 of file bmfunc.h. References bm::bit_block_set(), and bm::gap_add_to_bitset(). Referenced by bm::combine_count_operation_with_block(), bm::bvector< Alloc, MS >::compare(), and bm::gap_convert_to_bitset_smart(). |
|
Smart GAP block to bitblock conversion. Checks if GAP block is ALL-ZERO or ALL-ON. In those cases returns pointer on special static bitblocks.
Definition at line 1493 of file bmfunc.h. References FULL_BLOCK_ADDR, and bm::gap_convert_to_bitset(). |
|
Searches for the next 1 bit in the GAP block.
Definition at line 935 of file bmfunc.h. References BM_ASSERT, and bm::gap_bfind(). |
|
Returns number of free elements in GAP block array. Difference between GAP block capacity on this level and actual GAP length.
Definition at line 1768 of file bmfunc.h. References bm::gap_capacity(), and bm::gap_length(). |
|
Init gap block so it has block in it (can be whole block).
Definition at line 1567 of file bmfunc.h. References BM_ASSERT, and bm::gap_set_all(). |
|
Inverts all bits in the GAP buffer.
Definition at line 1617 of file bmfunc.h. Referenced by bm::gap_operation_or(). |
|
Checks if GAP block is all-one.
|
|
Temporary inverts all bits in the GAP buffer. Checks if GAP block is all-zero.
Definition at line 1649 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::compare(). |
|
Returs GAP block length.
Definition at line 1675 of file bmfunc.h. Referenced by bm::gap_free_elements(), and bm::bvector< Alloc, MS >::stat(). |
|
Returs GAP blocks capacity level.
Definition at line 1717 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::stat(). |
|
Returs GAP block capacity limit.
Definition at line 1704 of file bmfunc.h. Referenced by bm::combine_or(), bm::combine_sub(), and bm::combine_xor(). |
|
GAP AND operation. Function performs AND logical oparation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.
Definition at line 2357 of file bmfunc.h. References bm::gap_buff_op(). Referenced by bm::combine_count_operation_with_block(). |
|
GAP OR operation. Function performs OR logical oparation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.
Definition at line 2408 of file bmfunc.h. References bm::gap_buff_op(), and bm::gap_invert(). Referenced by bm::combine_count_operation_with_block(). |
|
GAP SUB (AND NOT) operation. Function performs SUB logical oparation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.
Definition at line 2440 of file bmfunc.h. References bm::gap_buff_op(). Referenced by bm::combine_count_operation_with_block(). |
|
GAP XOR operation. Function performs XOR logical oparation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.
Definition at line 2382 of file bmfunc.h. References bm::gap_buff_op(). Referenced by bm::combine_count_operation_with_block(). |
|
Calculates memory overhead for number of gap blocks sharing the same memory allocation table (level lengths table).
Definition at line 3221 of file bmfunc.h. References BM_ASSERT, and bm::gap_calc_level(). Referenced by bm::improve_gap_levels(). |
|
Sets all bits to 0 or 1 (GAP).
Definition at line 1546 of file bmfunc.h. References BM_ASSERT. Referenced by bm::gap_init_range_block(). |
|
Abstract distance(similarity) operation for GAP buffers. Receives functor F as a template argument Sets or clears bit in the GAP buffer.
Definition at line 843 of file bmfunc.h. References BM_ASSERT, and bm::gap_bfind(). Referenced by bm::combine_or(), bm::combine_sub(), bm::combine_xor(), and bm::miniset< A, N >::set(). |
|
SUB (AND NOT) GAP block to bitblock.
Definition at line 1151 of file bmfunc.h. References BM_ASSERT, and bm::sub_bit_block(). |
|
Tests if bit = pos is true.
Definition at line 399 of file bmfunc.h. References BM_ASSERT. Referenced by bm::combine_sub(), bm::combine_xor(), bm::bvector< Alloc, MS >::get_bit(), and bm::miniset< A, N >::test(). |
|
XOR GAP block to bitblock.
Definition at line 1183 of file bmfunc.h. References BM_ASSERT, and bm::xor_bit_block(). |
|
Lexicographical comparison of GAP buffers.
Definition at line 627 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::compare(). |
|
Finds optimal gap blocks lengths.
Definition at line 3249 of file bmfunc.h. References BM_ASSERT, and bm::gap_overhead(). Referenced by bm::bvector< Alloc, MS >::optimize_gap_size(). |
|
Sets GAP block capacity level.
Definition at line 1730 of file bmfunc.h. References BM_ASSERT. |