Skip to content

Conversation

geonove
Copy link
Contributor

@geonove geonove commented Oct 18, 2025

Description

This PR implements DDSketch and closes #457.
The design follows the core ideas of the original DDSketch paper and the implementations in other libraries.
I have aimed to keep the API consistent with the existing sketches, especially the other quantile sketches.
There might still be some work to do (e.g., adding additional methods or refinements), but I’d like to hear your opinions on the design and implementation so far before proceeding further.

Implementation

This implementation currently requires C++20, primarily for the use of concepts and constrained templates.
DDSketch is templated over a Store concept, rather than relying on a common base class and virtual methods.

If C++20 adoption is not desired, I can rework the code to remain compatible with C++11 by limiting the implementation to collapsing dense stores and removing concept-based templates. I’d appreciate the maintainers’ input on which direction to take before finalizing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: Add DDSketch (Relative-Error Quantile Sketch)

1 participant