Skip to content

Use OpenDP accountant for budget composition and look into decimal or rational #14

@tholop

Description

@tholop

We have a Budget trait to define filter capacity and requests. It's currently only a marker trait, and we can keep it this way. The marker trait is implemented for our PureDP budget struct and the corresponding filters. We should change the struct to use OpenDP's MaxDivergence, then call the composition function inside the filter: https://docs.rs/opendp/0.12.0-nightly.20250205.1/src/opendp/combinators/sequential_compositor/noninteractive/mod.rs.html#111-118. I haven't checked in detail if this is enough to obtain a filter and whether this will require to import all sorts of OpenDP traits, but it seems quite doable.

We can even be a bit more general and implement a generic filter for any type implementing https://docs.rs/opendp/0.12.0-nightly.20250205.1/opendp/combinators/trait.BasicCompositionMeasure.html, which could give us RDP and zCDP for free, but needs a bit more investigation. We'd also need to match the mechanism/noise scale to the appropriate measure, e.g. use only PureDP for Laplace noise. See #10 (non blocking, either issue can be tackled first).

Metadata

Metadata

Assignees

No one assigned

    Labels

    laterImprovements that are not urgent

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions