Fix parameter handling for NLocal(..., flatten=True)
and standard gates (backport #13482)
#13495
+54
−7
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.
Summary
Fixes #13478.
The fast-path for parameterizing standard gates caused an inconsistent state of the circuit, which is now fixed by using the explicit
circuit._append_standard_gate
method.Details and comments
I'm not 100% sure what exactly the inconsistency was. Another way to fix this issue was to have the Rust-side
assign_parameter_inner
to explicitly re-assign theparams
attribute of the cached Python gate. So I'm assuming the old path didn't correctly register the gate in the cache, but I couldn't pin point the exact location in the code. If someone has more insight that would be great to know 🙂This is an automatic backport of pull request #13482 done by [Mergify](https://mergify.com).