Mercurial > hg > audiodb
changeset 558:18b3d4c9e93d multiprobeLSH
Simplified (logically reduced) bit-processing operations in lshlib
author | mas01mc |
---|---|
date | Sat, 21 Feb 2009 12:00:03 +0000 |
parents | 4d6e2ac4de7a |
children | f6363bfdad80 |
files | lshlib.cpp |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lshlib.cpp Fri Feb 20 19:03:17 2009 +0000 +++ b/lshlib.cpp Sat Feb 21 12:00:03 2009 +0000 @@ -1657,7 +1657,7 @@ // Retrieval is performed by generating a hash key query_t2 for query point q // We identify the row that t2 is stored in using a secondary hash t1, this row is the entry // point for retrieve_from_core_hashtable_array -#define SKIP_BITS (0xC0000000) +#define SKIP_BITS (0xC0000000U) void G::retrieve_from_core_hashtable_array(Uns32T* p, Uns32T qpos){ Uns32T skip; Uns32T t2; @@ -1674,9 +1674,9 @@ p2 = *p++; skip = (( p1 & SKIP_BITS ) >> SKIP_BITS_RIGHT_SHIFT_LSB) + (( p2 & SKIP_BITS ) >> SKIP_BITS_RIGHT_SHIFT_MSB); if( t2 == H::t2 ){ - add_point_callback(calling_instance, p1 ^ (p1 & SKIP_BITS), qpos, radius); + add_point_callback(calling_instance, p1 & !SKIP_BITS, qpos, radius); if(skip--){ - add_point_callback(calling_instance, p2 ^ (p2 & SKIP_BITS), qpos, radius); + add_point_callback(calling_instance, p2 & !SKIP_BITS, qpos, radius); while(skip-- ) add_point_callback(calling_instance, *p++, qpos, radius); } @@ -1721,9 +1721,9 @@ p1 = *p++; p2 = *p++; skip = (( p1 & SKIP_BITS ) >> SKIP_BITS_RIGHT_SHIFT_LSB) + (( p2 & SKIP_BITS ) >> SKIP_BITS_RIGHT_SHIFT_MSB); - printf("(%0x, %0x)", t2, p1 ^ (p1 & SKIP_BITS)); + printf("(%0x, %0x)", t2, p1 & !SKIP_BITS); if(skip--){ - printf("(%0x, %0x)", t2, p2 ^ (p2 & SKIP_BITS)); + printf("(%0x, %0x)", t2, p2 & !SKIP_BITS); while(skip-- ) printf("(%0x, %0x)", t2, *p++); }