SASGIS

Веб-картография и навигация


View Revisions: Issue #1927 All Revisions ] Back to Issue ]
Summary 0001927: Собрать dll с реализацией CityHash
Revision 13-05-2013 14:10 by vdemidov
Description Для реализации эффективного кэширования линий полигонов и бинарных тайлов нужно иметь хорошую быструю хэш функцию с выходом 64 бита. Под Delphi я нашел только CRC64, но у нее плохо с равномерностью. Хорошая функция CityHash но она достаточно сложная для портирования под делфи, поэтому эффективнее будет вынести ее в отдельную dll.

Исходники живут по адресу http://code.google.com/p/cityhash/

Нужны такие функции:

// Hash function for a byte array.
uint64 CityHash64(const char *buf, size_t len);


// Hash function for a byte array. For convenience, a 64-bit seed is also
// hashed into the result.
uint64 CityHash64WithSeed(const char *buf, size_t len, uint64 seed);


// Hash function for a byte array. For convenience, two seeds are also
// hashed into the result.
uint64 CityHash64WithSeeds(const char *buf, size_t len, uint64 seed0, uint64 seed1);
Revision 13-05-2013 14:08 by vdemidov
Description Для реализации эффективного кэширования линий полигонов и бинарных тайлов нужно иметь хорошую быструю хэш функцию с выходом 64 бита. Под Delphi я нашел только CRC64, но у нее плохо с равномерностью. Хорошая функция CityHash но она достаточно сложная для портирования под делфи, поэтому эффективнее будет вынести ее в отдельную dll.
Нужны такие функции:

// Hash function for a byte array.
uint64 CityHash64(const char *buf, size_t len);


// Hash function for a byte array. For convenience, a 64-bit seed is also
// hashed into the result.
uint64 CityHash64WithSeed(const char *buf, size_t len, uint64 seed);


// Hash function for a byte array. For convenience, two seeds are also
// hashed into the result.
uint64 CityHash64WithSeeds(const char *buf, size_t len, uint64 seed0, uint64 seed1);



Copyright © 2007 - 2024 SAS.Planet Team