Evet arkadaslar,
picocoin maceramiz yavas yavas ilerlemeye devam ediyor: Buguen
bloom filter
kodunu C'den C++'a port ettim; gerci bir cok sey
copy & paste .. ama yinede C ile C++ ayni dil olmadigindan, port olayi kodu anlami sagliyor:
Bloom filter'leri bir bilgisayarci acisindan baya ilginc bir yapi: Bir elemanin bir kuemeye ait olup olmadigini hizli bir sekilde test (
probabilistic) edebiliyor; daha cok bilgi icin
https://en.wikipedia.org/wiki/Bloom_filter tavsiye ederim.
Header dosyasi:
struct bloom {
GString *v_data; unsigned int n_hash_funcs;
};
namespace Bloom { // 20k items with FP rate < 0.1% or 10k items and < 0.0001%
enum {
MAX_FILTER_SIZE = 36000, // bytes
MAX_HASH_FUNCS = 50,
};
bool init(struct bloom *bf, unsigned int n_elements, double fp_rate);
void free(struct bloom *bf);
void insert(struct bloom *bf, const void *data, size_t length);
bool contains(struct bloom *bf, const void *data, size_t length);
}
Altyapi yavas yavas ortaya cikmaya basladi, ama daha cok is var: Bir sonra ki adim herhal
key
ve
keyset
kodunu incelemek olacak.