Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

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

Open
garrison opened this issue May 24, 2022 · 0 comments
Open
Labels
encoding quantum random access codes

Comments

@garrison
Copy link
Member

garrison commented May 24, 2022

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:

if base == 0:
circ.r(-BETA, -np.pi / 4, i)
elif base == 1:
circ.r(np.pi - BETA, np.pi / 4, i)
elif base == 2:
circ.r(np.pi + BETA, np.pi / 4, i)
elif base == 3:
circ.r(BETA, -np.pi / 4, i)

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 garrison added the encoding quantum random access codes label May 24, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
encoding quantum random access codes
Projects
None yet
Development

No branches or pull requests

1 participant