|
BitMagic-C++
|

Enumerations | |
| enum | bm::distance_metric { bm::COUNT_AND = set_COUNT_AND , bm::COUNT_XOR = set_COUNT_XOR , bm::COUNT_OR = set_COUNT_OR , bm::COUNT_SUB_AB = set_COUNT_SUB_AB , bm::COUNT_SUB_BA = set_COUNT_SUB_BA , bm::COUNT_A = set_COUNT_A , bm::COUNT_B = set_COUNT_B } |
| Distance metrics codes defined for vectors A and B. More... | |
Functions | |
| distance_metric | bm::operation2metric (set_operation op) BMNOEXCEPT |
| Convert set operation into compatible distance metric. | |
| template<class BV> | |
| void | bm::distance_operation (const BV &bv1, const BV &bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end) BMNOEXCEPT |
| Distance computing template function. | |
| template<class BV> | |
| BV::size_type | bm::distance_and_operation (const BV &bv1, const BV &bv2) BMNOEXCEPT |
| Distance AND computing template function. | |
| template<class BV> | |
| void | bm::distance_operation_any (const BV &bv1, const BV &bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end) BMNOEXCEPT |
| Distance screening template function. | |
Distance metrics and algorithms to compute binary distances
| enum bm::distance_metric |
Distance metrics codes defined for vectors A and B.
| Enumerator | |
|---|---|
| COUNT_AND | (A & B).count() |
| COUNT_XOR | (A ^ B).count() |
| COUNT_OR | (A | B).count() |
| COUNT_SUB_AB | (A - B).count() |
| COUNT_SUB_BA | (B - A).count() |
| COUNT_A | A.count(). |
| COUNT_B | B.count(). |
Definition at line 57 of file bmalgo_impl.h.
| BV::size_type bm::distance_and_operation | ( | const BV & | bv1, |
| const BV & | bv2 ) |
Distance AND computing template function.
| bv1 | - argument bitvector 1 (A) |
| bv2 | - argument bitvector 2 (B) |
Definition at line 853 of file bmalgo_impl.h.
References BLOCK_ADDR_SAN, BMNOEXCEPT, combine_count_and_operation_with_block(), FULL_BLOCK_FAKE_ADDR, FULL_SUB_BLOCK_REAL_ADDR, min_value(), and set_sub_array_size.
Referenced by count_and().
| void bm::distance_operation | ( | const BV & | bv1, |
| const BV & | bv2, | ||
| distance_metric_descriptor * | dmit, | ||
| distance_metric_descriptor * | dmit_end ) |
Distance computing template function.
Function receives two bitvectors and an array of distance metrics (metrics pipeline). Function computes all metrics saves result into corresponding pipeline results (distance_metric_descriptor::result) An important detail is that function reuses metric descriptors, incrementing received values. It allows you to accumulate results from different calls in the pipeline.
| bv1 | - argument bitvector 1 (A) |
| bv2 | - argument bitvector 2 (B) |
| dmit | - pointer to first element of metric descriptors array Input-Output parameter, receives metric code as input, computation is added to "result" field |
| dmit_end | - pointer to (last+1) element of metric descriptors array |
Definition at line 766 of file bmalgo_impl.h.
References BMNOEXCEPT, combine_count_operation_with_block(), distance_stage(), and set_sub_array_size.
Referenced by bm::similarity_batch< SDESCR >::calculate(), count_or(), count_sub(), count_xor(), and main().
| void bm::distance_operation_any | ( | const BV & | bv1, |
| const BV & | bv2, | ||
| distance_metric_descriptor * | dmit, | ||
| distance_metric_descriptor * | dmit_end ) |
Distance screening template function.
Function receives two bitvectors and an array of distance metrics (metrics pipeline). Function computes possybility of a metric(any bit) saves result into corresponding pipeline results (distance_metric_descriptor::result) An important detail is that function reuses metric descriptors, incrementing received values. It allows you to accumulate results from different calls in the pipeline.
| bv1 | - argument bitvector 1 (A) |
| bv2 | - argument bitvector 2 (B) |
| dmit | - pointer to first element of metric descriptors array Input-Output parameter, receives metric code as input, computation is added to "result" field |
| dmit_end | - pointer to (last+1) element of metric descriptors array |
Definition at line 922 of file bmalgo_impl.h.
References BM_IS_GAP, BMNOEXCEPT, combine_any_operation_with_block(), distance_stage(), bm::distance_metric_descriptor::result, and set_sub_array_size.
Referenced by any_and(), any_or(), any_sub(), and any_xor().
|
inline |
Convert set operation into compatible distance metric.
Definition at line 73 of file bmalgo_impl.h.
References BM_ASSERT, BMNOEXCEPT, is_const_set_operation(), set_COUNT, and set_COUNT_B.
Referenced by bm::iterator_deserializer< BV, SerialIterator >::deserialize().