You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From discussions with @alexanderivrii: It would be nice if we could detect a discrete basis set in transpile or the preset PMs and then use a discrete basis synthesis, like the Solovay-Kitaev algorithm (or others in the future). Something like
One way to do this could be to write a default plugin for discrete basis that takes n-qubits unitaries to U + {2q-gates in the basis gates} (e.g. using the existing unitary synthesis workflow) and then uses the Solovay-Kitaev algorithm to decompose the 1-qubit U gates.
It would be even nicer to skip the translation_method="synthesis" argument, but that might be necessary to distinguish the command from trying to use the basis translator (alternatively, we could auto-select based on the basis gates and users can force a behavior by setting this arg).
The text was updated successfully, but these errors were encountered:
introduce a new translation_method="default" plugin, so we're not tying the default to a concrete implementation, and we can have "default" include this circuit-based dispatch
consider if we'll eventually need a whole other pipeline for discrete optimisation - it's going to matter a lot more when we need to target EC backends, and our current pipeline is pretty heavily assumed to be targetting a continuous basis.
What should we add?
From discussions with @alexanderivrii: It would be nice if we could detect a discrete basis set in
transpile
or the preset PMs and then use a discrete basis synthesis, like the Solovay-Kitaev algorithm (or others in the future). Something likeOne way to do this could be to write a default plugin for discrete basis that takes
n
-qubits unitaries toU + {2q-gates in the basis gates}
(e.g. using the existing unitary synthesis workflow) and then uses the Solovay-Kitaev algorithm to decompose the 1-qubitU
gates.It would be even nicer to skip the
translation_method="synthesis"
argument, but that might be necessary to distinguish the command from trying to use the basis translator (alternatively, we could auto-select based on the basis gates and users can force a behavior by setting this arg).The text was updated successfully, but these errors were encountered: