Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
preshed / bloom.pxd
Size: Mime:
from libc.stdint cimport uint64_t, uint32_t
from cymem.cymem cimport Pool

ctypedef uint64_t key_t

cdef struct BloomStruct:
    key_t* bitfield
    key_t hcount # hash count, number of hash functions
    key_t length
    uint32_t seed


cdef class BloomFilter:
    cdef Pool mem
    cdef BloomStruct* c_bloom
    cdef inline bint contains(self, key_t item) nogil


cdef void bloom_init(Pool mem, BloomStruct* bloom, key_t hcount, key_t length, uint32_t seed) except *

cdef void bloom_add(BloomStruct* bloom, key_t item) nogil

cdef bint bloom_contains(const BloomStruct* bloom, key_t item) nogil

cdef void bloom_add(BloomStruct* bloom, key_t item) nogil