BitMagic-C++
bm::xor_scanner< BV > Class Template Reference

XOR scanner to search for complement-similarities in collections of bit-vectors. More...

#include <bmxor.h>

Inheritance diagram for bm::xor_scanner< BV >:

Public Types

typedef bm::bv_ref_vector< BV > bv_ref_vector_type
 
typedef BV bvector_type
 
typedef bvector_type::size_type size_type
 

Public Member Functions

void set_ref_vector (const bv_ref_vector_type *ref_vect) BMNOEXCEPT
 
const bv_ref_vector_typeget_ref_vector () const BMNOEXCEPT
 
void compute_x_block_stats (const bm::word_t *block) BMNOEXCEPT
 Compute statistics for the anchor search vector.
 
bool search_best_xor_mask (const bm::word_t *block, size_type ridx_from, size_type ridx_to, unsigned i, unsigned j, bm::word_t *tb)
 Scan for all candidate bit-blocks to find mask or match.
 
bool search_best_xor_gap (const bm::word_t *block, size_type ridx_from, size_type ridx_to, unsigned i, unsigned j)
 Scan all candidate gap-blocks to find best XOR match.
 
bool validate_found (bm::word_t *xor_block, const bm::word_t *block) const BMNOEXCEPT
 Validate serialization target.
 
size_type found_ridx () const BMNOEXCEPT
 
const bm::word_tget_found_block () const BMNOEXCEPT
 
unsigned get_x_best_metric () const BMNOEXCEPT
 
bm::id64_t get_xor_digest () const BMNOEXCEPT
 
bool is_eq_found () const BMNOEXCEPT
 true if completely identical vector found
 
unsigned get_x_bc () const BMNOEXCEPT
 
unsigned get_x_gc () const BMNOEXCEPT
 
unsigned get_x_block_best () const BMNOEXCEPT
 
bm::block_waves_xor_descrget_descr () BMNOEXCEPT
 

Detailed Description

template<typename BV>
class bm::xor_scanner< BV >

XOR scanner to search for complement-similarities in collections of bit-vectors.

Definition at line 330 of file bmxor.h.

Member Typedef Documentation

◆ bv_ref_vector_type

template<typename BV >
bm::bv_ref_vector<BV> bm::xor_scanner< BV >::bv_ref_vector_type

Definition at line 333 of file bmxor.h.

◆ bvector_type

template<typename BV >
BV bm::xor_scanner< BV >::bvector_type

Definition at line 334 of file bmxor.h.

◆ size_type

template<typename BV >
bvector_type::size_type bm::xor_scanner< BV >::size_type

Definition at line 335 of file bmxor.h.

Member Function Documentation

◆ compute_x_block_stats()

template<typename BV >
void bm::xor_scanner< BV >::compute_x_block_stats ( const bm::word_t * block)

Compute statistics for the anchor search vector.

Parameters
block- bit-block target

Definition at line 411 of file bmxor.h.

References bm::bit_block_change_bc(), BM_ASSERT, BM_IS_GAP, bm::compute_complexity_descr(), and IS_VALID_ADDR.

◆ found_ridx()

template<typename BV >
size_type bm::xor_scanner< BV >::found_ridx ( ) const
inline

Definition at line 371 of file bmxor.h.

◆ get_descr()

template<typename BV >
bm::block_waves_xor_descr & bm::xor_scanner< BV >::get_descr ( )
inline

Definition at line 387 of file bmxor.h.

◆ get_found_block()

template<typename BV >
const bm::word_t * bm::xor_scanner< BV >::get_found_block ( ) const
inline

Definition at line 372 of file bmxor.h.

◆ get_ref_vector()

template<typename BV >
const bv_ref_vector_type & bm::xor_scanner< BV >::get_ref_vector ( ) const
inline

Definition at line 341 of file bmxor.h.

◆ get_x_bc()

template<typename BV >
unsigned bm::xor_scanner< BV >::get_x_bc ( ) const
inline

Definition at line 381 of file bmxor.h.

◆ get_x_best_metric()

template<typename BV >
unsigned bm::xor_scanner< BV >::get_x_best_metric ( ) const
inline

Definition at line 374 of file bmxor.h.

◆ get_x_block_best()

template<typename BV >
unsigned bm::xor_scanner< BV >::get_x_block_best ( ) const
inline

Definition at line 383 of file bmxor.h.

◆ get_x_gc()

template<typename BV >
unsigned bm::xor_scanner< BV >::get_x_gc ( ) const
inline

Definition at line 382 of file bmxor.h.

◆ get_xor_digest()

template<typename BV >
bm::id64_t bm::xor_scanner< BV >::get_xor_digest ( ) const
inline

Definition at line 375 of file bmxor.h.

◆ is_eq_found()

template<typename BV >
bool bm::xor_scanner< BV >::is_eq_found ( ) const
inline

true if completely identical vector found

Definition at line 378 of file bmxor.h.

◆ search_best_xor_gap()

template<typename BV >
bool bm::xor_scanner< BV >::search_best_xor_gap ( const bm::word_t * block,
size_type ridx_from,
size_type ridx_to,
unsigned i,
unsigned j )

Scan all candidate gap-blocks to find best XOR match.

Definition at line 512 of file bmxor.h.

References BM_ASSERT, BM_IS_GAP, BMGAP_PTR, bm::gap_length(), bm::gap_operation_dry_xor(), and IS_VALID_ADDR.

◆ search_best_xor_mask()

template<typename BV >
bool bm::xor_scanner< BV >::search_best_xor_mask ( const bm::word_t * block,
size_type ridx_from,
size_type ridx_to,
unsigned i,
unsigned j,
bm::word_t * tb )

Scan for all candidate bit-blocks to find mask or match.

Returns
true if XOR complement or matching vector found

Definition at line 425 of file bmxor.h.

References bm::bie_cut_off, bm::bit_block_change_bc(), bm::bit_block_xor(), bm::bit_find_first_diff(), BM_ASSERT, BM_IS_GAP, bm::compute_xor_complexity_descr(), and IS_VALID_ADDR.

◆ set_ref_vector()

template<typename BV >
void bm::xor_scanner< BV >::set_ref_vector ( const bv_ref_vector_type * ref_vect)
inline

Definition at line 338 of file bmxor.h.

◆ validate_found()

template<typename BV >
bool bm::xor_scanner< BV >::validate_found ( bm::word_t * xor_block,
const bm::word_t * block ) const

Validate serialization target.

Definition at line 566 of file bmxor.h.

References bm::bie_cut_off, bm::bit_block_change_bc(), bm::bit_block_xor(), and BM_ASSERT.


The documentation for this class was generated from the following file: