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 argument for repeating transformations to optimize_for_target_gateset #6426

Closed
wants to merge 3 commits into from

Conversation

NoureldinYosri
Copy link
Collaborator

@NoureldinYosri NoureldinYosri commented Jan 26, 2024

related to #6422

@NoureldinYosri NoureldinYosri requested review from vtomole, cduck and a team as code owners January 26, 2024 21:10
Comment on lines 160 to 162
circuit = circuits.Circuit(
op for op in circuit.all_operations()
) # Ensure the circuit is contracted.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This leads to a loss of moment structure. When we wrote this function originally, preserving moment structure was an important requirement. Are you sure we want to do this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

what was the original requirement exactly? the circuit in the issue is supposed to endup with 3 moments as per @eliottrosenberg which can't happen without some sort of contraction. probably there is a way to do the contraction without destroying the moment structure. but we need to clarify what it's exactly that we want to preserve or if we simply need another preserve_moment_structure parameter

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yeah, I think reducing the number of moments is generally a good thing. In general, this can't preserve the number of moments (i.e. if I ask it to transform a cirq.ISWAP gate into CZ).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@tanujkhattar apart from this line. the current implementation doesn't preserve the moment structure, for example look at the output in the issue. CZ(4, 5) is earlier than it should and PhXZ(a=0,x=1,z=0)(6)───PhXZ(a=0.5,x=-0.5,z=1)(6)-CZ(5, 6) are a lot later than they should.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's continue the discussion on the original issue here - #6422 (comment)

Copy link

codecov bot commented Jan 30, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (2ef1909) 97.81% compared to head (1e744bf) 97.81%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6426   +/-   ##
=======================================
  Coverage   97.81%   97.81%           
=======================================
  Files        1111     1111           
  Lines       97143    97161   +18     
=======================================
+ Hits        95022    95040   +18     
  Misses       2121     2121           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@NoureldinYosri
Copy link
Collaborator Author

@tanujkhattar now this PR just introduces the max_num_passes parameter and updates the docstring

@CirqBot CirqBot added the size: M 50< lines changed <250 label Feb 1, 2024
@tanujkhattar
Copy link
Collaborator

I've reviewed the other one, maybe we can directly merge that once my comments are addressed ?

@NoureldinYosri
Copy link
Collaborator Author

superseded by #6433

@pavoljuhas pavoljuhas deleted the optimize_for_target_gateset branch January 22, 2025 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size: M 50< lines changed <250
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants