const uint64_t* pa = reinterpret_cast<const uint64_t*>(a);
const uint64_t* pb = reinterpret_cast<const uint64_t*>(b);
ResultType result = 0;
- size /= (sizeof(uint64_t)/sizeof(unsigned char));
+ size /= long_word_size_;
for(size_t i = 0; i < size; ++i ) {
result += popcnt64(*pa ^ *pb);
++pa;
const uint32_t* pa = reinterpret_cast<const uint32_t*>(a);
const uint32_t* pb = reinterpret_cast<const uint32_t*>(b);
ResultType result = 0;
- size /= (sizeof(uint32_t)/sizeof(unsigned char));
+ size /= long_word_size_;
for(size_t i = 0; i < size; ++i ) {
result += popcnt32(*pa ^ *pb);
++pa;
#endif
return result;
}
+
+private:
+#ifdef FLANN_PLATFORM_64_BIT
+ static const size_t long_word_size_ = sizeof(uint64_t)/sizeof(unsigned char);
+#else
+ static const size_t long_word_size_ = sizeof(uint32_t)/sizeof(unsigned char);
+#endif
};