adix/bltab

Source   Edit  

This module specializes to the case where keys are 1..k-bit ints & values are 0..v-bit ints (k+v<=8*int.sizeof) using one SeqUInt as backing store. (Mnemonically, "BL" = "Bit Level" or start of "BLoom Filter", a sometimes competing data structure.) Users must give a number of bits for the key. Bits for values and the sentinel key default to 0. BLTab otherwise tries to be similar to hash variants of multisets.

Types

BLTab = object
RobinHoodLP set of B-bit int keys w/small false pos. rate Source   Edit  

Vars

blDenom = 1'u8
default denominator for lg(n) probe depth limit Source   Edit  
blGrowPow2 = 1'u8
default growth power of 2; 1 means double Source   Edit  
blInitialSize = 2
default initial size aka capacity aka cap Source   Edit  
blMinFree = 1'u8
default min free slots; (>= 1) Source   Edit  
blNumer = 3'u8
default numerator for lg(n) probe depth limit Source   Edit  
blRehash = false
default hcode rehashing behavior; auto-activated Source   Edit  
blRobinHood = false
default to Robin Hood re-org; auto-activated Source   Edit  
blSentinel = 0'u8
default sentinel value for k+v-bit uint Source   Edit  
blValueBits = 0'u8
default bits for value in k+v-bit uint Source   Edit  

Procs

proc clear(s: var BLTab) {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc contains(s: BLTab; hc: Hash): bool {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc containsOrIncl(s: var BLTab; hc: Hash): bool {.inline,
    ...raises: [ResourceExhaustedError], tags: [], forbids: [].}
Source   Edit  
proc debugDump(s: BLTab; label = "") {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc depths(s: BLTab): seq[int] {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc getCap(s: BLTab): int {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc init(s: var BLTab; size, mask: int) {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc initBLTab(size, mask: int): BLTab {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc len(s: BLTab): int {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc load(t: var BLTab; path: string) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc loadBLTab(path: string): BLTab {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc missingOrExcl(s: var BLTab; hc: Hash): bool {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc mmap(t: var BLTab; path: string) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc save(t: BLTab; pathStub: string) {....raises: [], tags: [], forbids: [].}
Source   Edit  

Iterators

iterator items(s: BLTab): Hash {....raises: [], tags: [], forbids: [].}
Source   Edit  
iterator pairs(s: BLTab): tuple[a: int, b: Hash] {....raises: [], tags: [],
    forbids: [].}
Source   Edit