自动从 code.google.com/p/farmhash 导出
FarmHash 是一系列哈希函数。 1.1 版本
FarmHash 系列的所有成员都是在大量借鉴 Jyrki Alakuijala、Austin Appleby、Bob Jenkins 等人的以前工作的基础上设计的。 我们的信念是,典型的哈希函数主要用于内存哈希表和类似的场景。 这种用例允许在不同平台上使用不同的哈希函数,并且这些函数会不时发生变化。 为此,我建议在 .h 文件中使用包装函数,并添加如“可能会随时变化,可能在不同平台上不同,并且可能会根据 NDEBUG 而变化”等注释。
有些项目也可能需要一个永久固定的可移植哈希函数。 同样,我们建议在 .h 文件中使用包装函数,但在这种情况下,对它们的注释会有很大不同。
我们在 src/farmhash.h 中提供了这些包装函数的示例。 我们希望大多数人只需要 src/farmhash.h 和 src/farmhash.cc 这两个文件即可。 这两个文件是一个可用且相对可移植的库。 (一个移植性问题: 如果您的编译器没有 __builtin_expect,则可能需要定义 FARMHASH_NO_BUILTIN_EXPECT。) 对于那些喜欢使用配置脚本的人(可能是因为他们以后想要"make install"), FarmHash 有一个配置脚本,但对于大多数人最好忽略它。
请注意,src/farmhash.h中的Hash()等包装函数可以选择多种哈希函数。选择是在编译时完成的,根据您的机器架构(例如, sizeof(size_t))和向量指令的可用性(例如, SSE4.1)。
暂无开放 Issues,或尚未同步最近议题。