Allow CircuitData
construction from PackedOperation
s and with_capacity
(backport #12943 + part of #12809)
#13038
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
As the title says 🙂 This allows to construct more general circuits than using just
CircuitData::from_standard_gates
, including e.g. barriers.Details and comments
This is essentially a copy of
CircuitData::from_standard_gates
. Qubits and Clbits are nowVec
, becauseSmallVec
cannot be used as we cannot predict the maximum length&[Qubit]
) turned out to be a bit restrictive as the length must be known at compile-time (but maybe there's some trick to use this in the signature but pass vectors or something?)I didn't yet add a test since it's essentially a copy of the standard gates constructor, and this will be used a bunch by the circuit library refactor. But we could add some
cfg
test that maybe checks this gives the same circuit data as using the standard gates construct -- though not sure how difficult that comparison is 🙂Example usage:
This is an automatic backport of pull request #12943 done by [Mergify](https://mergify.com).