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, class F> | |
unsigned | bm::gap_buff_any_op (const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F f) |
Abstract distance test 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. | |
unsigned | bm::gap_operation_any_and (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2) |
GAP AND operation test. | |
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. | |
unsigned | bm::gap_operation_any_xor (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2) |
GAP XOR operation test. | |
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. | |
unsigned | bm::gap_operation_any_sub (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2) |
GAP SUB operation test. | |
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 2172 of file bmfunc.h. References BM_ASSERT, and BMRESTRICT. |
|
Adds(OR) GAP block to bitblock.
Definition at line 1399 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 1431 of file bmfunc.h. References BM_ASSERT, and bm::sub_bit_block(). |
|
Calculates number of bits ON in GAP buffer.
Definition at line 659 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::stat(). |
|
Abstract distance test operation for GAP buffers. Receives functor F as a template argument.
Definition at line 884 of file bmfunc.h. Referenced by bm::gap_operation_any_and(), bm::gap_operation_any_sub(), and bm::gap_operation_any_xor(). |
|
Abstract operation for GAP buffers. Receives functor F as a template argument.
Definition at line 803 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 2099 of file bmfunc.h. References BM_ASSERT. Referenced by bm::gap_overhead(). |
|
Returs GAP block capacity.
Definition at line 2041 of file bmfunc.h. Referenced by bm::gap_free_elements(). |
|
Calculates sum of all words in GAP block. (For debugging purposes).
Definition at line 1867 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 2261 of file bmfunc.h. References BMRESTRICT. |
|
GAP block to bitblock conversion.
Definition at line 1824 of file bmfunc.h. References bm::gap_add_to_bitset(). |
|
GAP block to bitblock conversion.
Definition at line 1808 of file bmfunc.h. References bm::bit_block_set(), and bm::gap_add_to_bitset(). Referenced by 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 1845 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 1119 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 2120 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 1919 of file bmfunc.h. References BM_ASSERT, and bm::gap_set_all(). |
|
Inverts all bits in the GAP buffer.
Definition at line 1969 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 2001 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::compare(). |
|
Returs GAP block length.
Definition at line 2027 of file bmfunc.h. Referenced by bm::gap_free_elements(), and bm::bvector< Alloc, MS >::stat(). |
|
Returs GAP blocks capacity level.
Definition at line 2069 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::stat(). |
|
Returs GAP block capacity limit.
|
|
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 2777 of file bmfunc.h. References bm::gap_buff_op(). |
|
GAP AND operation test. 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 2800 of file bmfunc.h. References bm::gap_buff_any_op(). |
|
GAP SUB operation test. 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 2919 of file bmfunc.h. References bm::gap_buff_any_op(). |
|
GAP XOR operation test. 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 2846 of file bmfunc.h. References bm::gap_buff_any_op(). |
|
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 2869 of file bmfunc.h. References bm::gap_buff_op(), and bm::gap_invert(). |
|
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 2896 of file bmfunc.h. References bm::gap_buff_op(). |
|
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 2823 of file bmfunc.h. References bm::gap_buff_op(). |
|
Calculates memory overhead for number of gap blocks sharing the same memory allocation table (level lengths table).
Definition at line 3949 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 1898 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 1027 of file bmfunc.h. References BM_ASSERT, and bm::gap_bfind(). Referenced by bm::miniset< A, N >::set(). |
|
SUB (AND NOT) GAP block to bitblock.
Definition at line 1335 of file bmfunc.h. References BM_ASSERT, and bm::sub_bit_block(). |
|
Tests if bit = pos is true.
Definition at line 497 of file bmfunc.h. References BM_ASSERT. Referenced by bm::bvector< Alloc, MS >::get_bit(), and bm::miniset< A, N >::test(). |
|
XOR GAP block to bitblock.
Definition at line 1367 of file bmfunc.h. References BM_ASSERT, and bm::xor_bit_block(). |
|
Lexicographical comparison of GAP buffers.
Definition at line 739 of file bmfunc.h. Referenced by bm::bvector< Alloc, MS >::compare(). |
|
Finds optimal gap blocks lengths.
Definition at line 3977 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 2082 of file bmfunc.h. References BM_ASSERT. |