资源简介
redis 3.2.9 tar.gz
代码片段和文件信息
/*
* Copyright (c) 2013-2014 yinqiwen
* Copyright (c) 2014 Matt Stancliff .
* Copyright (c) 2015-2016 Salvatore Sanfilippo .
* All rights reserved.
*
* Redistribution and use in source and binary forms with or without
* modification are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Redis nor the names of its contributors may be used
* to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS“
* AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR
* CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE DATA OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN
* CONTRACT STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#include “geohash.h“
/**
* Hashing works like this:
* Divide the world into 4 buckets. Label each one as such:
* -----------------
* | | |
* | | |
* | 01 | 11 |
* -----------------
* | | |
* | | |
* | 00 | 10 |
* -----------------
*/
/* Interleave lower bits of x and y so the bits of x
* are in the even positions and bits from y in the odd;
* x and y must initially be less than 2**32 (65536).
* From: https://graphics.stanford.edu/~seander/bithacks.html#InterleaveBMN
*/
static inline uint64_t interleave64(uint32_t xlo uint32_t ylo) {
static const uint64_t B[] = {0x5555555555555555ULL 0x3333333333333333ULL
0x0F0F0F0F0F0F0F0FULL 0x00FF00FF00FF00FFULL
0x0000FFFF0000FFFFULL};
static const unsigned int S[] = {1 2 4 8 16};
uint64_t x = xlo;
uint64_t y = ylo;
x = (x | (x << S[4])) & B[4];
y = (y | (y << S[4])) & B[4];
x = (x | (x << S[3])) & B[3];
y = (y | (y << S[3])) & B[3];
x = (x | (x << S[2])) & B[2];
y = (y | (y << S[2])) & B[2];
x = (x | (x << S[1])) & B[1];
y = (y | (y << S[1])) & B[1];
x = (x | (x << S[0])) & B[0];
y = (y | (y << S[0])) & B[0];
相关资源
- tomcat-6.0.26.tar.gz
- flex-2.6.4.tar.gz
- 分布式集群Session共享 简单多tomcat8+
- openssl-1.0.2n.tar.gz
- apache-tomcat-8.5.8.tar.gz
- redis64-latest.zip
- KoolShare-LEDE-酷软中心-缺失的插件之
- libsodium-1.0.10.tar.gz
- apache-maven-3.5.0-bin.tar.gz
- apache-tomcat-7.0.79.tar.gz
- netcdf-4.1.3.tar.gz
- 最新 redis-4.0.2.tar.gz 包
- scikit-learn-0.17.tar.gz
- nginx服务器插件之net-snmp-5.6.1.1.tar.gz
- snort-2.9.8.0.tar.gz
- httpd-2.4.9.tar.gz
- SSHSecureShellClient-3.2.9(服务器连接软件
- httpd-2.2.3.tar.gz
- pcre-8.21.tar.gz
- redis desktop manager for windows 0.9.8
- tk8.6.8-src.tar.gz
- apr-1.4.6.tar.gz、apr-iconv-1.2.1.tar.gz、ap
- coreseek-4.1-beta.tar.gz
- tomcat8、8.5、9与redis实现session共享
- automake-1.16.tar.gz
- x-waf-admin0.1-linux-amd64.tar.gz
- protobuf-3.6.1.tar.gz
- 用VS2015编译的hiredis.dll
- hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.g
- readline-7.0.tar.gz
评论
共有 条评论