Your Name 1912bcd25b
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
chore: sync all remaining local workspace changes
2026-05-08 11:26:57 +08:00

75 lines
2.1 KiB
JavaScript

/*
* Extracted from browser-delivered Turbopack chunk: 5d5b47876e53e564.da1ba52a93.js
* Module id: 232077
* For reading/searching only; this factory depends on the original Turbopack runtime.
*/
const moduleFactory = (e, t, r) => {
"use strict";
Object.defineProperty(r, "__esModule", { value: !0 }),
Object.defineProperty(r, "BloomFilter", {
enumerable: !0,
get: function () {
return n;
},
});
class n {
constructor(e, t = 1e-4) {
(this.numItems = e),
(this.errorRate = t),
(this.numBits = Math.ceil(
-(e * Math.log(t)) / (Math.log(2) * Math.log(2)),
)),
(this.numHashes = Math.ceil((this.numBits / e) * Math.log(2))),
(this.bitArray = Array(this.numBits).fill(0));
}
static from(e, t = 1e-4) {
let r = new n(e.length, t);
for (let t of e) r.add(t);
return r;
}
export() {
return {
numItems: this.numItems,
errorRate: this.errorRate,
numBits: this.numBits,
numHashes: this.numHashes,
bitArray: this.bitArray,
};
}
import(e) {
(this.numItems = e.numItems),
(this.errorRate = e.errorRate),
(this.numBits = e.numBits),
(this.numHashes = e.numHashes),
(this.bitArray = e.bitArray);
}
add(e) {
this.getHashValues(e).forEach((e) => {
this.bitArray[e] = 1;
});
}
contains(e) {
return this.getHashValues(e).every((e) => this.bitArray[e]);
}
getHashValues(e) {
let t = [];
for (let r = 1; r <= this.numHashes; r++) {
let n =
(function (e) {
let t = 0;
for (let r = 0; r < e.length; r++)
(t = Math.imul(t ^ e.charCodeAt(r), 0x5bd1e995)),
(t ^= t >>> 13),
(t = Math.imul(t, 0x5bd1e995));
return t >>> 0;
})(`${e}${r}`) % this.numBits;
t.push(n);
}
return t;
}
}
};
export default moduleFactory;