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

Add method for tapering gate operations #3002

Merged
merged 38 commits into from
Sep 15, 2022
Merged

Conversation

obliviateandsurrender
Copy link
Contributor

@obliviateandsurrender obliviateandsurrender commented Aug 28, 2022

Context:
This PR adds the final missing piece 🧩 for the tapered variational routine.

Description of the Change:
Adds a function for tapering the gate operations, which are then exponentiated using qml.PauliRot.

Benefits:
One can now taper individual gate operations and build tapered variants of templates.

Possible Drawbacks:
N/A

Related GitHub Issues:
N/A

@github-actions
Copy link
Contributor

Hello. You may have forgotten to update the changelog!
Please edit doc/releases/changelog-dev.md with:

  • A one-to-two sentence description of the change. You may include a small working example for new features.
  • A link back to this PR.
  • Your name (or GitHub username) in the contributors section.

@codecov
Copy link

codecov bot commented Aug 28, 2022

Codecov Report

Merging #3002 (35e4c4c) into master (bebc2f4) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #3002   +/-   ##
=======================================
  Coverage   99.67%   99.67%           
=======================================
  Files         273      273           
  Lines       23138    23175   +37     
=======================================
+ Hits        23062    23099   +37     
  Misses         76       76           
Impacted Files Coverage Δ
pennylane/qchem/__init__.py 100.00% <ø> (ø)
pennylane/__init__.py 100.00% <100.00%> (ø)
pennylane/qchem/tapering.py 100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
@obliviateandsurrender
Copy link
Contributor Author

Based on the feedback, I have updated the previous taper_excitation method to a more general taper_operation method which can be used on any arbitrary gate.

@rmoyard rmoyard added this to the v0.26.0 milestone Sep 6, 2022
@obliviateandsurrender obliviateandsurrender changed the title Add method for Tapering Excitations Add method for tapering gate operations Sep 7, 2022
Copy link
Contributor

@Jaybsoni Jaybsoni left a comment

Choose a reason for hiding this comment

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

Hey, left some comments, some suggestions and some small fixes.

pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
@rmoyard rmoyard removed this from the v0.26.0 milestone Sep 9, 2022
Copy link
Contributor

@Jaybsoni Jaybsoni left a comment

Choose a reason for hiding this comment

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

Looks good to me 👍🏼, Nice work!

pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
doc/releases/changelog-dev.md Outdated Show resolved Hide resolved
doc/releases/changelog-dev.md Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
pennylane/qchem/tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
tests/qchem/test_tapering.py Outdated Show resolved Hide resolved
pennylane/qchem/tapering.py Show resolved Hide resolved
@obliviateandsurrender obliviateandsurrender merged commit b9d27ff into master Sep 15, 2022
@obliviateandsurrender obliviateandsurrender deleted the taper_excitations branch September 15, 2022 19:48
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.

9 participants