Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow multiple precision modes #6

Draft
wants to merge 20 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0d1d95c
Initial try to support a variety of byte sizes for cuckoofilter.
panmari Nov 15, 2021
ac182fd
Use config for constructing filter.
panmari Nov 17, 2021
69c4f39
Simplified and sped up insert method.
panmari Jan 16, 2022
6a19792
Fixing typo in method name.
panmari Jan 23, 2022
286a8bc
Making insert benchmark less biased towards completely full behavior.
panmari Jan 23, 2022
7fac49b
Moving rand call to more optimized version.
panmari Jan 23, 2022
0c45ada
Restructuring benchmarks to narrow down on important code.
panmari Jan 23, 2022
e43f263
Passing fingerprint size instead of dynamic function.
panmari Jul 11, 2022
e099372
Making benchmarks and tests deterministic.
panmari Aug 10, 2022
b8d4b9c
Passing around fingerprint size in bits.
panmari Aug 10, 2022
91602ce
Fully implementing Encode/Decode for generic version.
panmari Aug 13, 2022
b7f9905
Fixing bug with insert
panmari Aug 13, 2022
a1dc6a8
Extending tests to cover all types of de- and encoding.
panmari Aug 13, 2022
e8be750
Small cleanup of Encode function.
panmari Aug 18, 2022
b66c920
Inlining bucket initialization.
panmari Sep 22, 2022
f768a1f
Putting commented variant of alternative code into getAltIndex.
panmari Sep 22, 2022
10258d9
Merge branch 'master' into generic_fp_type
panmari Sep 22, 2022
6cf2b26
Merge branch 'master' into generic_fp_type
panmari Sep 24, 2022
b9b2432
Bumping testing matrix to only include supported go versions.
panmari Sep 24, 2022
2e23dc5
Merge branch 'master' into generic_fp_type
panmari Oct 5, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Inlining bucket initialization.
panmari committed Sep 22, 2022
commit b66c920fbabb66c416db4387db955984ee87403d
15 changes: 6 additions & 9 deletions cuckoofilter.go
Original file line number Diff line number Diff line change
@@ -66,29 +66,26 @@ func NewFilter(cfg Config) Filter {
numBuckets := numBuckets(cfg.NumElements)
switch cfg.Precision {
case Low:
buckets := make([]bucket[uint8], numBuckets)
return &filter[uint8]{
buckets: buckets,
buckets: make([]bucket[uint8], numBuckets),
count: 0,
bucketIndexMask: uint(len(buckets) - 1),
bucketIndexMask: uint(numBuckets - 1),
fingerprintSizeBits: 8,
maxFingerprintMinusOne: maxFingerprintMinusOne(8),
}
case High:
buckets := make([]bucket[uint32], numBuckets)
return &filter[uint32]{
buckets: buckets,
buckets: make([]bucket[uint32], numBuckets),
count: 0,
bucketIndexMask: uint(len(buckets) - 1),
bucketIndexMask: uint(numBuckets - 1),
fingerprintSizeBits: 32,
maxFingerprintMinusOne: maxFingerprintMinusOne(32),
}
default:
buckets := make([]bucket[uint16], numBuckets)
return &filter[uint16]{
buckets: buckets,
buckets: make([]bucket[uint16], numBuckets),
count: 0,
bucketIndexMask: uint(len(buckets) - 1),
bucketIndexMask: uint(numBuckets - 1),
fingerprintSizeBits: 16,
maxFingerprintMinusOne: maxFingerprintMinusOne(16),
}