# UltraLogLog v0.1.0 - Table of Contents

> Space-efficient distinct counting for the BEAM. Implements UltraLogLog (Ertl, VLDB 2024), a 2024 successor to HyperLogLog with 24–28% less memory at the same accuracy. Includes FGRA, MLE, and martingale estimators, CRDT merge, and bit-exact validation against the Hash4j Java reference.

## Pages

- [UltraLogLog](readme.md)
- [Changelog](changelog.md)
- [Contributing](contributing.md)

## Modules

- Core
  - [UltraLogLog](UltraLogLog.md): Space-efficient approximate distinct counting on the BEAM.
  - [UltraLogLog.Encoding](UltraLogLog.Encoding.md): Register encoding and merge operations for UltraLogLog.
  - [UltraLogLog.Hash](UltraLogLog.Hash.md): 64-bit hash function for UltraLogLog.

- Estimators
  - [UltraLogLog.Estimator.FGRA](UltraLogLog.Estimator.FGRA.md): Default UltraLogLog cardinality estimator — Further Generalized Remaining
Area (FGRA), a faithful translation of **Algorithm 6** from Ertl 2024
(PVLDB 2024, p. 1664).
  - [UltraLogLog.Estimator.MLE](UltraLogLog.Estimator.MLE.md): Maximum-likelihood cardinality estimator for UltraLogLog.
  - [UltraLogLog.Estimator.Martingale](UltraLogLog.Estimator.Martingale.md): Martingale (Historic Inverse Probability) estimator for UltraLogLog.

