@hazemaltakriti/hyperloglog
v1.0.1
Published
TypeScript implementation of HyperLogLog algorithm
Maintainers
Readme
HyperLogLog
A TypeScript implementation of the HyperLogLog algorithm for cardinality estimation.
Installation
npm install @hazemaltakriti/hyperloglogUsage
import { HyperLogLog } from '@hazemaltakriti/hyperloglog';
// Create a new HyperLogLog instance with default precision (14)
const hll = new HyperLogLog();
// Add elements
hll.add('item1');
hll.add('item2');
hll.add('item3');
// Get the estimated cardinality
const count = hll.count();
console.log(`Estimated unique elements: ${count}`);API
Constructor
new HyperLogLog(precision?: number)precision: Optional. Number between 4 and 16. Default is 14. Higher precision means better accuracy but more memory usage.
Methods
add(element: string | number): void
Adds an element to the HyperLogLog counter.
count(): number
Returns the estimated cardinality (number of unique elements).
Development
# Install dependencies
npm install
# Run tests
npm test
# Build the project
npm run buildAuthors
Acknowledgments
This implementation is based on the seminal paper:
- Flajolet, P., Fusy, É., Gandouet, O., & Meunier, F. (2007). HyperLogLog: the analysis of a near-optimal cardinality estimation algorithm. In Proceedings of the 2007 International Conference on Analysis of Algorithms.
