prototype-qrao icon indicating copy to clipboard operation
prototype-qrao copied to clipboard

Implement alternative Qiskit gates for (3,1,p) QRAC basis rotation

Open garrison opened this issue 3 years ago • 0 comments

What is the expected enhancement?

Currently, we use the the Qiskit r gate to return the basis rotation corresponding to the (3,1,p) QRAC:

https://github.com/qiskit-community/prototype-qrao/blob/38527fd1bcce038a6e407592831e5f2023307461/qrao/encoding.py#L83-L90

However, this obscures the connection to the math in the paper. It would be more clear and helpful to the user if we instead implemented these basis transformations explicitly as written in Appendix IV of the paper (that is, with the relevant combination of rx, rz, and pauli x, y, z gates).

I have previously considered that we ought to keep it as a single gate, as that is the most precise way to specify the operation. However, I've since learned abou the Optimize1qGates[Decomposition] passes, which should be able to transpile to the optimal operations on hardware even if given as multiple single-qubit gates.

However, this might be at odds with parameterizing the gates for use with the primitives (#21), so we might want to see how that goes first.

garrison avatar May 24 '22 20:05 garrison