Fix construction of IQP circuits (backport #14363) #14373
Merged
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 documented in https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.library.iqp_function, an Instantaneous quantum polynomial time (IQP) circuit consists of Hadamard gates, powers of T-gate, powers of CS-gate, and more Hadamard gates. However, a T-gate is P($\pi$ /4), not P($\pi$ /8), see https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.library.PhaseGate. This PR fixes the construction as used both within
iqp_function
andIQP
.Trivia
The bug was introduced in the original commit #4266 and survived porting to Rust #13241. Incidentally, the original commit pertains to one of the questions from (the internal) Qiskit 2.0 quiz.
This is an automatic backport of pull request #14363 done by Mergify.