[Groonga-commit] groonga/grnxx at f96542b [master] Use grnxx::GeoPoint::interleave().

Back to archive index

susumu.yata null+****@clear*****
Sat May 11 10:03:41 JST 2013


susumu.yata	2013-05-11 10:03:41 +0900 (Sat, 11 May 2013)

  New Revision: f96542b67a854f2b73e2567eccac4d388dc3d8e6
  https://github.com/groonga/grnxx/commit/f96542b67a854f2b73e2567eccac4d388dc3d8e6

  Message:
    Use grnxx::GeoPoint::interleave().

  Modified files:
    lib/grnxx/alpha/map/double_array.cpp

  Modified: lib/grnxx/alpha/map/double_array.cpp (+1 -13)
===================================================================
--- lib/grnxx/alpha/map/double_array.cpp    2013-05-11 10:03:05 +0900 (29f6d3c)
+++ lib/grnxx/alpha/map/double_array.cpp    2013-05-11 10:03:41 +0900 (fdb70cd)
@@ -172,19 +172,7 @@ void convert_key(double key, uint8_t *key_buf) {
 }
 
 void convert_key(GeoPoint key, uint8_t *key_buf) {
-  uint64_t latitude = static_cast<uint32_t>(key.latitude());
-  uint64_t longitude = static_cast<uint32_t>(key.longitude());
-  latitude = (latitude | (latitude << 16)) & 0x0000FFFF0000FFFFULL;
-  latitude = (latitude | (latitude <<  8)) & 0x00FF00FF00FF00FFULL;
-  latitude = (latitude | (latitude <<  4)) & 0x0F0F0F0F0F0F0F0FULL;
-  latitude = (latitude | (latitude <<  2)) & 0x3333333333333333ULL;
-  latitude = (latitude | (latitude <<  1)) & 0x5555555555555555ULL;
-  longitude = (longitude | (longitude << 16)) & 0x0000FFFF0000FFFFULL;
-  longitude = (longitude | (longitude <<  8)) & 0x00FF00FF00FF00FFULL;
-  longitude = (longitude | (longitude <<  4)) & 0x0F0F0F0F0F0F0F0FULL;
-  longitude = (longitude | (longitude <<  2)) & 0x3333333333333333ULL;
-  longitude = (longitude | (longitude <<  1)) & 0x5555555555555555ULL;
-  uint64_t interleaved_key = (latitude << 1) | longitude;
+  uint64_t interleaved_key = key.interleave();
 #ifndef WORDS_BIGENDIAN
   interleaved_key = byte_swap(interleaved_key);
 #endif  // WORDS_BIGENDIAN
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index