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

Use pyquil symmetrization functionality #194

Merged
merged 8 commits into from
Sep 18, 2019
Merged

Use pyquil symmetrization functionality #194

merged 8 commits into from
Sep 18, 2019

Conversation

kylegulshen
Copy link
Contributor

@kylegulshen kylegulshen commented Sep 16, 2019

Description

We moved and expanded the symmetrization functionality from observable_estimation over to pyquil. This PR makes use of the pyquil functionality. Calibration hasn't yet been made to work with all options of symmetrization. A warning is thrown if the weight of a calibrated observable is greater than the symmetrization strength (symm_type).

Checklist

  • The above description motivates these changes.
  • There is a unit test that covers these changes.
  • The code respects the API separation discussed in .github/CONTRIBUTING.md.
  • Relevant references and equations are cited using our standard reference style.
  • All new and existing tests pass locally and on Semaphore.
  • Parameters have type hints with PEP 484 syntax.
  • Functions and classes have useful sphinx-style docstrings.
  • (New Feature) The docs and example notebooks have been updated accordingly.
  • (Bugfix) The associated issue is referenced above using
    auto-close keywords.
  • The changelog (docs/source/changes.rst) has a description of this change.

@kylegulshen kylegulshen requested a review from a team as a code owner September 16, 2019 21:42
Copy link
Contributor

@joshcombes joshcombes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is much easier to under stand and shorter now that symmetrization is in pyquil.


for expt_result in expt_results:
# TODO: allow weight > symm_type
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One possibility is to use exhaustive if weight > strength of current sym_type.

Realistically the stabilizers are usually weight 4, for codes people care about. (This suggests, as a separate pyQuil PR, that we might consider trying to find a family of strength 4 OAs.) In general but you might find some use in up to weight 6.

Copy link
Contributor

@karalekas karalekas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Happy we're deduping. Will approve when tests pass.

@karalekas karalekas self-requested a review September 18, 2019 19:45
@karalekas karalekas merged commit e4700cd into master Sep 18, 2019
@karalekas karalekas deleted the symm branch September 18, 2019 19:46
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.

3 participants