Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals | Examples

Distance metrics
[Set algorithms]

Collaboration diagram for Distance metrics:


Enumerations

enum  bm::distance_metric {
  bm::COUNT_AND, bm::COUNT_XOR, bm::COUNT_OR, bm::COUNT_SUB_AB,
  bm::COUNT_SUB_BA, bm::COUNT_A, bm::COUNT_B
}
 Distance metrics codes defined for vectors A and B. More...

Functions

template<class BV>
void bm::distance_operation (const BV &bv1, const BV &bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)
 Distance computing template function.
template<class BV>
bm::id_t bm::count_and (const BV &bv1, const BV &bv2)
 Computes bitcount of AND operation of two bitsets.
template<class BV>
bm::id_t bm::count_xor (const BV &bv1, const BV &bv2)
 Computes bitcount of XOR operation of two bitsets.
template<class BV>
bm::id_t bm::count_sub (const BV &bv1, const BV &bv2)
 Computes bitcount of SUB operation of two bitsets.
template<class BV>
bm::id_t bm::count_or (const BV &bv1, const BV &bv2)
 Computes bitcount of OR operation of two bitsets.

Detailed Description

Algorithms to compute binary distance metrics

Enumeration Type Documentation

enum bm::distance_metric
 

Distance metrics codes defined for vectors A and B.

Enumeration values:
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 52 of file bmalgo.h.


Function Documentation

template<class BV>
bm::id_t count_and const BV &  bv1,
const BV &  bv2
 

Computes bitcount of AND operation of two bitsets.

Parameters:
bv1 - Argument bit-vector.
bv2 - Argument bit-vector.
Returns:
bitcount of the result

Definition at line 455 of file bmalgo.h.

References bm::distance_operation(), and bm::distance_metric_descriptor::result.

template<class BV>
bm::id_t count_or const BV &  bv1,
const BV &  bv2
 

Computes bitcount of OR operation of two bitsets.

Parameters:
bv1 - Argument bit-vector.
bv2 - Argument bit-vector.
Returns:
bitcount of the result

Definition at line 506 of file bmalgo.h.

References bm::distance_operation(), and bm::distance_metric_descriptor::result.

template<class BV>
bm::id_t count_sub const BV &  bv1,
const BV &  bv2
 

Computes bitcount of SUB operation of two bitsets.

Parameters:
bv1 - Argument bit-vector.
bv2 - Argument bit-vector.
Returns:
bitcount of the result

Definition at line 489 of file bmalgo.h.

References bm::distance_operation(), and bm::distance_metric_descriptor::result.

template<class BV>
bm::id_t count_xor const BV &  bv1,
const BV &  bv2
 

Computes bitcount of XOR operation of two bitsets.

Parameters:
bv1 - Argument bit-vector.
bv2 - Argument bit-vector.
Returns:
bitcount of the result
Examples:
sample9.cpp.

Definition at line 472 of file bmalgo.h.

References bm::distance_operation(), and bm::distance_metric_descriptor::result.

Referenced by main().

template<class BV>
void 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.

Parameters:
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
Examples:
sample9.cpp.

Definition at line 352 of file bmalgo.h.

References BM_IS_GAP, BM_SET_MMX_GUARD, and bm::combine_count_operation_with_block().

Referenced by bm::count_and(), bm::count_or(), bm::count_sub(), bm::count_xor(), and main().


Generated on Thu Apr 20 13:29:10 2006 for BitMagic by  doxygen 1.4.1