Fix bug in cirq-ft due to which T-complexity fails for gates with an empty decomposition / no-op #6252
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes two bugs in Cirq-FT
SelectSwapQROM
is now hashablecirq_ft.t_complexity(gate)
failed for some corner cases likecirq_ft.SwapWithZeroGate(0,4,1)**-1)
because if a gate has an empty decomposition (i.e. it's a no-op) the_decompose_once_considering_known_decomposition
method would return aNone
instead of an empty list. The former implies we don't know the decomposition whereas the latter means the T-complexity is all 0.