Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(BV,CP): Ephemeral API for domain updates #1055

Merged
merged 2 commits into from
Mar 20, 2024

Commits on Mar 20, 2024

  1. feat(BV,CP): Ephemeral API for domain updates

    This patch adds a new ephemeral (imperative) interface to the `Domains`
    API, and uses it for constraint propagation. The conversion between the
    persistent and ephemeral APIs is provided by a function `edit` that
    returns an ephemeral domain (implemented using a hash table) from a
    persistent one, and a `snapshot` function that performs the inverse
    operation.
    
    Ephemeral domains are only used internally during constraint propagation
    so that the external API of the `Bitv_rel` module stays persistent.
    
    This leads to more readable code for the constraints, and should be more
    efficient on large problems as we do not keep looking up the domains in
    a `Map`.
    bclement-ocp committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    50e0fc5 View commit details
    Browse the repository at this point in the history
  2. Address review

    bclement-ocp committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    d18e230 View commit details
    Browse the repository at this point in the history